Imported Upstream version 610c11 88/182788/1 upstream/610c11
authorDongHun Kwak <dh0128.kwak@samsung.com>
Thu, 28 Jun 2018 05:21:45 +0000 (14:21 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Thu, 28 Jun 2018 05:21:51 +0000 (14:21 +0900)
Change-Id: Id7ddab4d257f10ac9fc227b01df4c4621eae7001
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
107 files changed:
History.610
INSTALL
bzip2/CHANGES [new file with mode: 0644]
bzip2/LICENSE [new file with mode: 0644]
bzip2/Makefile [new file with mode: 0644]
bzip2/Makefile-libbz2_so [new file with mode: 0644]
bzip2/README [new file with mode: 0644]
bzip2/README.COMPILATION.PROBLEMS [new file with mode: 0644]
bzip2/README.XML.STUFF [new file with mode: 0644]
bzip2/README_bz2.txt
bzip2/blocksort.c [new file with mode: 0644]
bzip2/bz-common.xsl [new file with mode: 0644]
bzip2/bz-fo.xsl [new file with mode: 0644]
bzip2/bz-html.xsl [new file with mode: 0644]
bzip2/bzdiff [new file with mode: 0644]
bzip2/bzdiff.1 [new file with mode: 0644]
bzip2/bzgrep [new file with mode: 0644]
bzip2/bzgrep.1 [new file with mode: 0644]
bzip2/bzip.css [new file with mode: 0644]
bzip2/bzip2.1 [new file with mode: 0644]
bzip2/bzip2.1.preformatted [new file with mode: 0644]
bzip2/bzip2.c [new file with mode: 0644]
bzip2/bzip2.c_orig [new file with mode: 0644]
bzip2/bzip2.txt [new file with mode: 0644]
bzip2/bzip2recover.c [new file with mode: 0644]
bzip2/bzip2recover.c_orig [new file with mode: 0644]
bzip2/bzlib.c [new file with mode: 0644]
bzip2/bzlib.c_orig [new file with mode: 0644]
bzip2/bzlib.h [new file with mode: 0644]
bzip2/bzlib.h_orig [new file with mode: 0644]
bzip2/bzlib_private.h [new file with mode: 0644]
bzip2/bzlib_private.h_orig [new file with mode: 0644]
bzip2/bzmore [new file with mode: 0644]
bzip2/bzmore.1 [new file with mode: 0644]
bzip2/compress.c [new file with mode: 0644]
bzip2/crctable.c [new file with mode: 0644]
bzip2/decompress.c [new file with mode: 0644]
bzip2/descrbz2.mms [deleted file]
bzip2/dlltest.c [new file with mode: 0644]
bzip2/dlltest.dsp [new file with mode: 0644]
bzip2/entities.xml [new file with mode: 0644]
bzip2/format.pl [new file with mode: 0644]
bzip2/huffman.c [new file with mode: 0644]
bzip2/libbz2.def [new file with mode: 0644]
bzip2/libbz2.dsp [new file with mode: 0644]
bzip2/makefile.msc [new file with mode: 0644]
bzip2/manual.html [new file with mode: 0644]
bzip2/manual.pdf [new file with mode: 0644]
bzip2/manual.ps [new file with mode: 0644]
bzip2/manual.xml [new file with mode: 0644]
bzip2/mk251.c [new file with mode: 0644]
bzip2/randtable.c [new file with mode: 0644]
bzip2/sample1.bz2 [new file with mode: 0644]
bzip2/sample1.ref [new file with mode: 0644]
bzip2/sample2.bz2 [new file with mode: 0644]
bzip2/sample2.ref [new file with mode: 0644]
bzip2/sample3.bz2 [new file with mode: 0644]
bzip2/sample3.ref [new file with mode: 0644]
bzip2/spewG.c [new file with mode: 0644]
bzip2/unzcrash.c [new file with mode: 0644]
bzip2/vms/DESCRIP_DEPS.MMS [new file with mode: 0644]
bzip2/vms/collect_deps.com [new file with mode: 0644]
bzip2/vms/decc_ver.c [new file with mode: 0644]
bzip2/vms/descrip.mms [new file with mode: 0644]
bzip2/vms/descrip_mkdeps.mms [new file with mode: 0644]
bzip2/vms/descrip_src.mms [new file with mode: 0644]
bzip2/vms/mod_dep.com [new file with mode: 0644]
bzip2/vms/my_module_name.h [new file with mode: 0644]
bzip2/vms/vms_misc.c [new file with mode: 0644]
bzip2/vms/vms_misc.h [new file with mode: 0644]
bzip2/vms/vms_notes.txt [new file with mode: 0644]
bzip2/words0 [new file with mode: 0644]
bzip2/words1 [new file with mode: 0644]
bzip2/words2 [new file with mode: 0644]
bzip2/words3 [new file with mode: 0644]
bzip2/xmlproc.sh [new file with mode: 0644]
crypt.c
crypt.h
docs/unzip.txt
fileio.c
man/man1/unzip.1
unix/Contents
unix/Makefile
unix/Makefile_old [deleted file]
unix/configure
unix/configure.txt [deleted file]
unix/configure_old [deleted file]
unix/unsafe_prod.sh
unzip.c
unzip.h
unzip610c.ann
unzvers.h
vms/Contents
vms/DESCRIP_DEPS.MMS
vms/INSTALL_VMS.txt
vms/build_unzip.com
vms/check_large.com [new file with mode: 0755]
vms/cmdline.c
vms/collect_deps.com
vms/descrip.mms
vms/descrip_mkdeps.mms
vms/descrip_src.mms
vms/unz_cli.cld
vms/unzip_cli.help
vms/vms.c
windll/windll.c
zipinfo.c

index a8c3bc6..6b5ca97 100644 (file)
@@ -513,12 +513,44 @@ Features added (or removed):
    windll/vc10/unzipstb/unzipstb.vcxproj,
    windll/vc10/unzipstb/unzipstb.vcxproj.filters) [SMS]
 
-6.10c10 (? ??? 2014):
+6.10c10 (18 Aug 2014):
  - Added initial support for Windows directory symlinks (using a symlink
    name with a trailing slash) on Unix, VMS, and Windows.  (extract.c,
    process.c, unzpriv.h, zipinfo.c, unix/unix.c, vms/vms.c,
    win32/w32cfg.h, win32/win32.c) [EG, SMS]
 
+6.10c11 (10 Oct 2014):
+ - Added option -0/--no-char-set (/NAMES = [NO]CHAR_SET) to suppress
+   certain character mapping (CP850) in some extracted file names.
+   ("-0" is hyphen+zero.)  Historically a particular character mapping
+   was applied (and still is, by default) to the names of archive
+   members which originated on a FAT or NTFS file system (typically on
+   an MS-DOS or Windows system).  This can cause unexpected characters
+   in extracted file names if the corresponding (inverse) mapping was
+   not used when the archive was created.  With -0/--no-char-set, the
+   extracted file name should agree with the name stored in the archive.
+   -0/--no-char-set is supported on all operating systems.  On Unix (or
+   BeOS) it effectively overrides any -I/--iso-char-set or
+   -O/--oem-char-set option which may also be specified. Forum topic:
+   http://www.info-zip.org/phpBB3/viewtopic.php?f=4&t=447
+   (fileio.c, unzip.c, unzip.h, man/man1/unzip.1, vms/cmdline.c,
+   vms/unzip_cli.help, vms/unz_cli.cld) [SMS, JBCarpen]
+ - A Bzip2 source kit (version 1.0.6, modified for better VMS support)
+   is now included in the kit.  (Old bzip2/descrbz2.mms removed. 
+   bzip2/README_bz2.txt, bzip2/)  [SMS]
+ - Changed Unix and VMS builders:
+    - Enable bzip2, LZMA, and PPMd compression support by default.
+    - On VMS, enable large-file support by default on Alpha and IA64
+      (with a run-time check on Alpha, using a new DCL script).
+    - On Unix, enable AES_WG support by default, if AES_WG source kit is
+      available.
+    - On VMS, notify user if AES_WG source is available but not used.
+    - Minor typography changes.
+   (INSTALL, unix/configure, unix/Makefile, unix/unsafe_prod.sh,
+   vms/build_unzip.com, vms/check_large.com (new), vms/collect_deps.com,
+   vms/descrip.mms, vms/descrip_mkdeps.mms, vms/descrip_src.mms,
+   vms/INSTALL_VMS.txt) [SMS]
+
 
 Bugs fixed:
 
@@ -1470,3 +1502,17 @@ Bugs fixed:
  - Unix builder script was ignoring some early test results when running
    later tests, causing erroneous configuration related to wide
    characters and Unicode.  (unix/configure)  [EG, SMS]
+
+6.10c11 (09 Oct 2014):
+ - Windows DLL interface/entry functions Wiz_SingleEntryUnzip() and
+   Wiz_UnzipToMemory() were not setting the global flag has_win32_wide,
+   causing problems with Unicode/wide file/member names. 
+   (windll/windll.c) [Andreas Schniertshauer, SMS]
+ - Work around MS compiler quirk which caused bad behavior in the
+   Windows DLL.  Forum topic:
+   http://www.info-zip.org/phpBB3/viewtopic.php?f=4&t=447
+   (windll/windll.c)  [JBCarpen, SMS]
+ - ZipInfo displayed wrong data for MD5 extra block (ID = 0x4b46). 
+   (zipinfo.c) [Wojtek Michalski]
+
+
diff --git a/INSTALL b/INSTALL
index efdddc1..ceadad3 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
       INSTALL -- Info-ZIP UnZip Installation Instructions
       ===================================================
 
-   UnZip version 6.10.  Revised: 2014-05-14
+   UnZip version 6.10.  Revised: 2014-10-06
 
 ------------------------------------------------------------------------
 
@@ -133,9 +133,9 @@ It might be wise to read that before downloading any particular
 IZ_AES_WG kit.
 
    The IZ_AES_WG kit should be unpacked in the main UnZip directory,
-where it should populate the "aes_wg" subdirectory.  For example, if the
-proper IZ_AES_WG kit is "iz_aes_wg13.zip", then use commands like the
-following:
+where it should populate the "aes_wg" subdirectory.  For example, if
+the proper IZ_AES_WG kit is "iz_aes_wg13.zip", then use commands like
+the following:
 
       cd unzip61                        # (If not already there.)
       unzip ../iz_aes_wg13.zip
@@ -148,47 +148,28 @@ with AES encryption support.
    Bzip2 Compression
    -----------------
 
-   To enable support for the bzip2 compression method, the UnZip
-programs must be linked with a bzip2 object library, such as "libbz2.a".
-For proper error handling, the bzip2 object library should be built with
-the C macro BZ_NO_STDIO defined (which is not the bzip2 default).  For
-general information on bzip2 compression, or to download a bzip2 source
-kit:
+   All the source files needed to enable support for the bzip2
+compression method are included in the UnZip source kit.  The "bzip2"
+subdirectory contains a bzip2 (version 1.0.6) source kit, with some
+modifications for better VMS compatibility.  For general information on
+bzip2 compression, or to download a different bzip2 source kit:
 
       http://www.bzip.org/
 
-Any bzip2 version from 1.0.3 up should be compatible.  Bzip2 version
-1.0.6 was current when this UnZip version was developed.
-
-   The UnZip builders for Unix systems can use a pre-built (BZ_NO_STDIO)
-object library, or they can build a proper bzip2 object library, if they
-find bzip2 source files in the "bzip2" subdirectory of the main UnZip
-directory.  To have the UnZip builders do the work, let's assume that
-you have downloaded a bzip2 kit, like, say, "bzip2-1.0.6.tar.gz", and
-put it in the same directory as the UnZip source kit.  To unpack that
-kit, and put its contents where the UnZip builders expect them, use
-commands like the following:
-
-      cd unzip61                        # (If not already there.)
-      gzip -dc ../bzip2-1.0.6.tar.gz | tar xf -
-      mv bzip2-1.0.6/* bzip2
+   The UnZip builders for Unix, VMS, and Windows wiil, by default, use
+the bzip2 source kit which is included in the UnZip source kit to create
+the required bzip2 object library.  The Unix and VMS builders can also
+use an existing bzip2 object library, which could be supplied by the
+user or included with the OS.  For details on how to use an existing
+bzip2 object library, or how to disable bzip2 compression support, look
+for IZ_BZIP2 in the "Build" section below, or in an appropriate
+OS-specific build document.
 
    The UnZip builders will attempt to build a bzip2 object library from
 sources only in the "bzip2" subdirectory of the main UnZip directory.
 Existing bzip2 kits in other directory trees should be safe from damage
 by UnZip builders.
 
-   See the "Build" section, below, for details on how to build UnZip
-with bzip2 compression support.
-
-. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
-
-   LZMA and PPMd Compression
-   -------------------------
-
-   All the source files needed to enable support for the LZMA and PPMd
-compression methods are included in the UnZip source kit.
-
 ------------------------------------------------------------------------
 
       Build
@@ -206,8 +187,9 @@ limited.  On Amiga, an additional executable, MakeSFX, is provided,
 because a self-extracting archive on Amiga cannot be created by simple
 concatenation ("cat", COPY), as it can on other systems.
 
-   Various documentation files (Unix "man" files, VMS HELP files, and so
-on) may also be created, if they were not already included in the kit.
+   Various documentation files (formatted Unix "man" files, VMS HELP
+files, and so on) may also be created, if they were not already included
+in the kit.
 
    Additional shell scripts, utility programs, and so on may also reside
 in system-dependent subdirectories.
@@ -374,14 +356,16 @@ a LOCAL_UNZIP environment variable.  Also, beware of changes to these
    Building with Bzip2 Compression
    -------------------------------
 
-   The Unix and VMS builders for UnZip can use a bzip2 source kit which
-has been placed in the "bzip2" subdirectory of the main UnZip directory,
-as described above ("Optional Source Kits").  Users who regularly work
-with multiple UnZip versions can avoid duplicating the bzip2 code by
-manually building a bzip2 object library ("libbz2.a" on Unix) with
-BZ_NO_STDIO defined, in some common location.  Then, when building
-UnZip, specify that bzip2 directory as the value of the "make" macro
-IZ_BZIP2.  For example:
+   By default, the Unix, VMS, and Windows builders for UnZip will use
+the bzip2 source kit which is supplied in the "bzip2" subdirectory of
+the main UnZip directory, as described above ("Optional Source Kits").
+
+   Unix and VMS users who regularly work with multiple UnZip versions
+(or optional configurations) can avoid repeatedly building the bzip2
+object library by manually building a bzip2 object library ("libbz2.a"
+on Unix), with BZ_NO_STDIO defined, in some common location.  Then, when
+building UnZip, specify that bzip2 directory as the value of the "make"
+macro IZ_BZIP2.  For example:
 
       make -f unix/Makefile IZ_BZIP2=../../bzip2/bzip-1.0.6 generic
 
@@ -903,17 +887,12 @@ BZIP2_SFX
    bzip2 compression support is disabled in UnZipSFX even when it's
    enabled in UnZip itself.
 
-BZIP2_SUPPORT   (requires additional external code distribution)
+BZIP2_SUPPORT   (requires bzip2 object library)
    Enable support for bzip2 compression.  UnZip can optionally support
    the "bzip2" compression algorithm on most ports on 32-bit (or higher)
    platforms.  Currently, this support is integrated in the builders for
    MSDOS 32-bit (DJGPP), Unix, VMS, and Windows.
 
-      Prerequisites:
-      You have to obtain the bzip2 source kit (version 1.03 or higher).
-      To have the UnZip builder build the bzip2 object library, extract
-      the source files into the "bzip2" subdirectory.
-
       Compilation:
       - MSDOS, Windows: You have to supply the macro definition
         "USEBZ2=1" on the command line when you invoke the "make"
diff --git a/bzip2/CHANGES b/bzip2/CHANGES
new file mode 100644 (file)
index 0000000..81e97ca
--- /dev/null
@@ -0,0 +1,327 @@
+ ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.6 of 6 September 2010
+ Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------
+
+
+0.9.0
+~~~~~
+First version.
+
+
+0.9.0a
+~~~~~~
+Removed 'ranlib' from Makefile, since most modern Unix-es 
+don't need it, or even know about it.
+
+
+0.9.0b
+~~~~~~
+Fixed a problem with error reporting in bzip2.c.  This does not effect
+the library in any way.  Problem is: versions 0.9.0 and 0.9.0a (of the
+program proper) compress and decompress correctly, but give misleading
+error messages (internal panics) when an I/O error occurs, instead of
+reporting the problem correctly.  This shouldn't give any data loss
+(as far as I can see), but is confusing.
+
+Made the inline declarations disappear for non-GCC compilers.
+
+
+0.9.0c
+~~~~~~
+Fixed some problems in the library pertaining to some boundary cases.
+This makes the library behave more correctly in those situations.  The
+fixes apply only to features (calls and parameters) not used by
+bzip2.c, so the non-fixedness of them in previous versions has no
+effect on reliability of bzip2.c.
+
+In bzlib.c:
+   * made zero-length BZ_FLUSH work correctly in bzCompress().
+   * fixed bzWrite/bzRead to ignore zero-length requests.
+   * fixed bzread to correctly handle read requests after EOF.
+   * wrong parameter order in call to bzDecompressInit in
+     bzBuffToBuffDecompress.  Fixed.
+
+In compress.c:
+   * changed setting of nGroups in sendMTFValues() so as to 
+     do a bit better on small files.  This _does_ effect
+     bzip2.c.
+
+
+0.9.5a
+~~~~~~
+Major change: add a fallback sorting algorithm (blocksort.c)
+to give reasonable behaviour even for very repetitive inputs.
+Nuked --repetitive-best and --repetitive-fast since they are
+no longer useful.
+
+Minor changes: mostly a whole bunch of small changes/
+bugfixes in the driver (bzip2.c).  Changes pertaining to the
+user interface are:
+
+   allow decompression of symlink'd files to stdout
+   decompress/test files even without .bz2 extension
+   give more accurate error messages for I/O errors
+   when compressing/decompressing to stdout, don't catch control-C
+   read flags from BZIP2 and BZIP environment variables
+   decline to break hard links to a file unless forced with -f
+   allow -c flag even with no filenames
+   preserve file ownerships as far as possible
+   make -s -1 give the expected block size (100k)
+   add a flag -q --quiet to suppress nonessential warnings
+   stop decoding flags after --, so files beginning in - can be handled
+   resolved inconsistent naming: bzcat or bz2cat ?
+   bzip2 --help now returns 0
+
+Programming-level changes are:
+
+   fixed syntax error in GET_LL4 for Borland C++ 5.02
+   let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC}
+   fix overshoot of mode-string end in bzopen_or_bzdopen
+   wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... }
+   close file handles under all error conditions
+   added minor mods so it compiles with DJGPP out of the box
+   fixed Makefile so it doesn't give problems with BSD make
+   fix uninitialised memory reads in dlltest.c
+
+0.9.5b
+~~~~~~
+Open stdin/stdout in binary mode for DJGPP.
+
+0.9.5c
+~~~~~~
+Changed BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1.  The + 1
+version could cause the sorted order to be wrong in some extremely
+obscure cases.  Also changed setting of quadrant in blocksort.c.
+
+0.9.5d
+~~~~~~
+The only functional change is to make bzlibVersion() in the library
+return the correct string.  This has no effect whatsoever on the
+functioning of the bzip2 program or library.  Added a couple of casts
+so the library compiles without warnings at level 3 in MS Visual
+Studio 6.0.  Included a Y2K statement in the file Y2K_INFO.  All other
+changes are minor documentation changes.
+
+1.0
+~~~
+Several minor bugfixes and enhancements:
+
+* Large file support.  The library uses 64-bit counters to
+  count the volume of data passing through it.  bzip2.c 
+  is now compiled with -D_FILE_OFFSET_BITS=64 to get large
+  file support from the C library.  -v correctly prints out
+  file sizes greater than 4 gigabytes.  All these changes have
+  been made without assuming a 64-bit platform or a C compiler
+  which supports 64-bit ints, so, except for the C library
+  aspect, they are fully portable.
+
+* Decompression robustness.  The library/program should be
+  robust to any corruption of compressed data, detecting and
+  handling _all_ corruption, instead of merely relying on
+  the CRCs.  What this means is that the program should 
+  never crash, given corrupted data, and the library should
+  always return BZ_DATA_ERROR.
+
+* Fixed an obscure race-condition bug only ever observed on
+  Solaris, in which, if you were very unlucky and issued
+  control-C at exactly the wrong time, both input and output
+  files would be deleted.
+
+* Don't run out of file handles on test/decompression when
+  large numbers of files have invalid magic numbers.
+
+* Avoid library namespace pollution.  Prefix all exported 
+  symbols with BZ2_.
+
+* Minor sorting enhancements from my DCC2000 paper.
+
+* Advance the version number to 1.0, so as to counteract the
+  (false-in-this-case) impression some people have that programs 
+  with version numbers less than 1.0 are in some way, experimental,
+  pre-release versions.
+
+* Create an initial Makefile-libbz2_so to build a shared library.
+  Yes, I know I should really use libtool et al ...
+
+* Make the program exit with 2 instead of 0 when decompression
+  fails due to a bad magic number (ie, an invalid bzip2 header).
+  Also exit with 1 (as the manual claims :-) whenever a diagnostic
+  message would have been printed AND the corresponding operation 
+  is aborted, for example
+     bzip2: Output file xx already exists.
+  When a diagnostic message is printed but the operation is not 
+  aborted, for example
+     bzip2: Can't guess original name for wurble -- using wurble.out
+  then the exit value 0 is returned, unless some other problem is
+  also detected.
+
+  I think it corresponds more closely to what the manual claims now.
+
+
+1.0.1
+~~~~~
+* Modified dlltest.c so it uses the new BZ2_ naming scheme.
+* Modified makefile-msc to fix minor build probs on Win2k.
+* Updated README.COMPILATION.PROBLEMS.
+
+There are no functionality changes or bug fixes relative to version
+1.0.0.  This is just a documentation update + a fix for minor Win32
+build problems.  For almost everyone, upgrading from 1.0.0 to 1.0.1 is
+utterly pointless.  Don't bother.
+
+
+1.0.2
+~~~~~
+A bug fix release, addressing various minor issues which have appeared
+in the 18 or so months since 1.0.1 was released.  Most of the fixes
+are to do with file-handling or documentation bugs.  To the best of my
+knowledge, there have been no data-loss-causing bugs reported in the
+compression/decompression engine of 1.0.0 or 1.0.1.
+
+Note that this release does not improve the rather crude build system
+for Unix platforms.  The general plan here is to autoconfiscate/
+libtoolise 1.0.2 soon after release, and release the result as 1.1.0
+or perhaps 1.2.0.  That, however, is still just a plan at this point.
+
+Here are the changes in 1.0.2.  Bug-reporters and/or patch-senders in
+parentheses.
+
+* Fix an infinite segfault loop in 1.0.1 when a directory is
+  encountered in -f (force) mode.
+     (Trond Eivind Glomsrod, Nicholas Nethercote, Volker Schmidt)
+
+* Avoid double fclose() of output file on certain I/O error paths.
+     (Solar Designer)
+
+* Don't fail with internal error 1007 when fed a long stream (> 48MB)
+  of byte 251.  Also print useful message suggesting that 1007s may be
+  caused by bad memory.
+     (noticed by Juan Pedro Vallejo, fixed by me)
+
+* Fix uninitialised variable silly bug in demo prog dlltest.c.
+     (Jorj Bauer)
+
+* Remove 512-MB limitation on recovered file size for bzip2recover
+  on selected platforms which support 64-bit ints.  At the moment
+  all GCC supported platforms, and Win32.
+     (me, Alson van der Meulen)
+
+* Hard-code header byte values, to give correct operation on platforms
+  using EBCDIC as their native character set (IBM's OS/390).
+     (Leland Lucius)
+
+* Copy file access times correctly.
+     (Marty Leisner)
+
+* Add distclean and check targets to Makefile.
+     (Michael Carmack)
+
+* Parameterise use of ar and ranlib in Makefile.  Also add $(LDFLAGS).
+     (Rich Ireland, Bo Thorsen)
+
+* Pass -p (create parent dirs as needed) to mkdir during make install.
+     (Jeremy Fusco)
+
+* Dereference symlinks when copying file permissions in -f mode.
+     (Volker Schmidt)
+
+* Majorly simplify implementation of uInt64_qrm10.
+     (Bo Lindbergh)
+
+* Check the input file still exists before deleting the output one,
+  when aborting in cleanUpAndFail().
+     (Joerg Prante, Robert Linden, Matthias Krings)
+
+Also a bunch of patches courtesy of Philippe Troin, the Debian maintainer
+of bzip2:
+
+* Wrapper scripts (with manpages): bzdiff, bzgrep, bzmore.
+
+* Spelling changes and minor enhancements in bzip2.1.
+
+* Avoid race condition between creating the output file and setting its
+  interim permissions safely, by using fopen_output_safely().
+  No changes to bzip2recover since there is no issue with file
+  permissions there.
+
+* do not print senseless report with -v when compressing an empty
+  file.
+
+* bzcat -f works on non-bzip2 files.
+
+* do not try to escape shell meta-characters on unix (the shell takes
+  care of these).
+
+* added --fast and --best aliases for -1 -9 for gzip compatibility.
+
+
+1.0.3 (15 Feb 05)
+~~~~~~~~~~~~~~~~~
+Fixes some minor bugs since the last version, 1.0.2.
+
+* Further robustification against corrupted compressed data.
+  There are currently no known bitstreams which can cause the
+  decompressor to crash, loop or access memory which does not
+  belong to it.  If you are using bzip2 or the library to 
+  decompress bitstreams from untrusted sources, an upgrade
+  to 1.0.3 is recommended.  This fixes CAN-2005-1260.
+
+* The documentation has been converted to XML, from which html
+  and pdf can be derived.
+
+* Various minor bugs in the documentation have been fixed.
+
+* Fixes for various compilation warnings with newer versions of
+  gcc, and on 64-bit platforms.
+
+* The BZ_NO_STDIO cpp symbol was not properly observed in 1.0.2.
+  This has been fixed.
+
+
+1.0.4 (20 Dec 06)
+~~~~~~~~~~~~~~~~~
+Fixes some minor bugs since the last version, 1.0.3.
+
+* Fix file permissions race problem (CAN-2005-0953).
+
+* Avoid possible segfault in BZ2_bzclose.  From Coverity's NetBSD
+  scan.
+
+* 'const'/prototype cleanups in the C code.
+
+* Change default install location to /usr/local, and handle multiple
+  'make install's without error.
+
+* Sanitise file names more carefully in bzgrep.  Fixes CAN-2005-0758
+  to the extent that applies to bzgrep.
+
+* Use 'mktemp' rather than 'tempfile' in bzdiff.
+
+* Tighten up a couple of assertions in blocksort.c following automated
+  analysis.
+
+* Fix minor doc/comment bugs.
+
+
+1.0.5 (10 Dec 07)
+~~~~~~~~~~~~~~~~~
+Security fix only.  Fixes CERT-FI 20469 as it applies to bzip2.
+
+
+1.0.6 (6 Sept 10)
+~~~~~~~~~~~~~~~~~
+
+* Security fix for CVE-2010-0405.  This was reported by Mikolaj
+  Izdebski.
+
+* Make the documentation build on Ubuntu 10.04
diff --git a/bzip2/LICENSE b/bzip2/LICENSE
new file mode 100644 (file)
index 0000000..cc61417
--- /dev/null
@@ -0,0 +1,42 @@
+
+--------------------------------------------------------------------------
+
+This program, "bzip2", the associated library "libbzip2", and all
+documentation, are copyright (C) 1996-2010 Julian R Seward.  All
+rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. The origin of this software must not be misrepresented; you must 
+   not claim that you wrote the original software.  If you use this 
+   software in a product, an acknowledgment in the product 
+   documentation would be appreciated but is not required.
+
+3. Altered source versions must be plainly marked as such, and must
+   not be misrepresented as being the original software.
+
+4. The name of the author may not be used to endorse or promote 
+   products derived from this software without specific prior written 
+   permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Julian Seward, jseward@bzip.org
+bzip2/libbzip2 version 1.0.6 of 6 September 2010
+
+--------------------------------------------------------------------------
diff --git a/bzip2/Makefile b/bzip2/Makefile
new file mode 100644 (file)
index 0000000..9754ddf
--- /dev/null
@@ -0,0 +1,217 @@
+# ------------------------------------------------------------------
+# This file is part of bzip2/libbzip2, a program and library for
+# lossless, block-sorting data compression.
+#
+# bzip2/libbzip2 version 1.0.6 of 6 September 2010
+# Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+#
+# Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+# README file.
+#
+# This program is released under the terms of the license contained
+# in the file LICENSE.
+# ------------------------------------------------------------------
+
+SHELL=/bin/sh
+
+# To assist in cross-compiling
+CC=gcc
+AR=ar
+RANLIB=ranlib
+LDFLAGS=
+
+BIGFILES=-D_FILE_OFFSET_BITS=64
+CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
+
+# Where you want it installed when you do 'make install'
+PREFIX=/usr/local
+
+
+OBJS= blocksort.o  \
+      huffman.o    \
+      crctable.o   \
+      randtable.o  \
+      compress.o   \
+      decompress.o \
+      bzlib.o
+
+all: libbz2.a bzip2 bzip2recover test
+
+bzip2: libbz2.a bzip2.o
+       $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2
+
+bzip2recover: bzip2recover.o
+       $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o
+
+libbz2.a: $(OBJS)
+       rm -f libbz2.a
+       $(AR) cq libbz2.a $(OBJS)
+       @if ( test -f $(RANLIB) -o -f /usr/bin/ranlib -o \
+               -f /bin/ranlib -o -f /usr/ccs/bin/ranlib ) ; then \
+               echo $(RANLIB) libbz2.a ; \
+               $(RANLIB) libbz2.a ; \
+       fi
+
+check: test
+test: bzip2
+       @cat words1
+       ./bzip2 -1  < sample1.ref > sample1.rb2
+       ./bzip2 -2  < sample2.ref > sample2.rb2
+       ./bzip2 -3  < sample3.ref > sample3.rb2
+       ./bzip2 -d  < sample1.bz2 > sample1.tst
+       ./bzip2 -d  < sample2.bz2 > sample2.tst
+       ./bzip2 -ds < sample3.bz2 > sample3.tst
+       cmp sample1.bz2 sample1.rb2 
+       cmp sample2.bz2 sample2.rb2
+       cmp sample3.bz2 sample3.rb2
+       cmp sample1.tst sample1.ref
+       cmp sample2.tst sample2.ref
+       cmp sample3.tst sample3.ref
+       @cat words3
+
+install: bzip2 bzip2recover
+       if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
+       if ( test ! -d $(PREFIX)/lib ) ; then mkdir -p $(PREFIX)/lib ; fi
+       if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi
+       if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi
+       if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi
+       cp -f bzip2 $(PREFIX)/bin/bzip2
+       cp -f bzip2 $(PREFIX)/bin/bunzip2
+       cp -f bzip2 $(PREFIX)/bin/bzcat
+       cp -f bzip2recover $(PREFIX)/bin/bzip2recover
+       chmod a+x $(PREFIX)/bin/bzip2
+       chmod a+x $(PREFIX)/bin/bunzip2
+       chmod a+x $(PREFIX)/bin/bzcat
+       chmod a+x $(PREFIX)/bin/bzip2recover
+       cp -f bzip2.1 $(PREFIX)/man/man1
+       chmod a+r $(PREFIX)/man/man1/bzip2.1
+       cp -f bzlib.h $(PREFIX)/include
+       chmod a+r $(PREFIX)/include/bzlib.h
+       cp -f libbz2.a $(PREFIX)/lib
+       chmod a+r $(PREFIX)/lib/libbz2.a
+       cp -f bzgrep $(PREFIX)/bin/bzgrep
+       ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep
+       ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep
+       chmod a+x $(PREFIX)/bin/bzgrep
+       cp -f bzmore $(PREFIX)/bin/bzmore
+       ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless
+       chmod a+x $(PREFIX)/bin/bzmore
+       cp -f bzdiff $(PREFIX)/bin/bzdiff
+       ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp
+       chmod a+x $(PREFIX)/bin/bzdiff
+       cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
+       chmod a+r $(PREFIX)/man/man1/bzgrep.1
+       chmod a+r $(PREFIX)/man/man1/bzmore.1
+       chmod a+r $(PREFIX)/man/man1/bzdiff.1
+       echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzegrep.1
+       echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzfgrep.1
+       echo ".so man1/bzmore.1" > $(PREFIX)/man/man1/bzless.1
+       echo ".so man1/bzdiff.1" > $(PREFIX)/man/man1/bzcmp.1
+
+clean: 
+       rm -f *.o libbz2.a bzip2 bzip2recover \
+       sample1.rb2 sample2.rb2 sample3.rb2 \
+       sample1.tst sample2.tst sample3.tst
+
+blocksort.o: blocksort.c
+       @cat words0
+       $(CC) $(CFLAGS) -c blocksort.c
+huffman.o: huffman.c
+       $(CC) $(CFLAGS) -c huffman.c
+crctable.o: crctable.c
+       $(CC) $(CFLAGS) -c crctable.c
+randtable.o: randtable.c
+       $(CC) $(CFLAGS) -c randtable.c
+compress.o: compress.c
+       $(CC) $(CFLAGS) -c compress.c
+decompress.o: decompress.c
+       $(CC) $(CFLAGS) -c decompress.c
+bzlib.o: bzlib.c
+       $(CC) $(CFLAGS) -c bzlib.c
+bzip2.o: bzip2.c
+       $(CC) $(CFLAGS) -c bzip2.c
+bzip2recover.o: bzip2recover.c
+       $(CC) $(CFLAGS) -c bzip2recover.c
+
+
+distclean: clean
+       rm -f manual.ps manual.html manual.pdf
+
+DISTNAME=bzip2-1.0.6
+dist: check manual
+       rm -f $(DISTNAME)
+       ln -s -f . $(DISTNAME)
+       tar cvf $(DISTNAME).tar \
+          $(DISTNAME)/blocksort.c \
+          $(DISTNAME)/huffman.c \
+          $(DISTNAME)/crctable.c \
+          $(DISTNAME)/randtable.c \
+          $(DISTNAME)/compress.c \
+          $(DISTNAME)/decompress.c \
+          $(DISTNAME)/bzlib.c \
+          $(DISTNAME)/bzip2.c \
+          $(DISTNAME)/bzip2recover.c \
+          $(DISTNAME)/bzlib.h \
+          $(DISTNAME)/bzlib_private.h \
+          $(DISTNAME)/Makefile \
+          $(DISTNAME)/LICENSE \
+          $(DISTNAME)/bzip2.1 \
+          $(DISTNAME)/bzip2.1.preformatted \
+          $(DISTNAME)/bzip2.txt \
+          $(DISTNAME)/words0 \
+          $(DISTNAME)/words1 \
+          $(DISTNAME)/words2 \
+          $(DISTNAME)/words3 \
+          $(DISTNAME)/sample1.ref \
+          $(DISTNAME)/sample2.ref \
+          $(DISTNAME)/sample3.ref \
+          $(DISTNAME)/sample1.bz2 \
+          $(DISTNAME)/sample2.bz2 \
+          $(DISTNAME)/sample3.bz2 \
+          $(DISTNAME)/dlltest.c \
+          $(DISTNAME)/manual.html \
+          $(DISTNAME)/manual.pdf \
+          $(DISTNAME)/manual.ps \
+          $(DISTNAME)/README \
+          $(DISTNAME)/README.COMPILATION.PROBLEMS \
+          $(DISTNAME)/README.XML.STUFF \
+          $(DISTNAME)/CHANGES \
+          $(DISTNAME)/libbz2.def \
+          $(DISTNAME)/libbz2.dsp \
+          $(DISTNAME)/dlltest.dsp \
+          $(DISTNAME)/makefile.msc \
+          $(DISTNAME)/unzcrash.c \
+          $(DISTNAME)/spewG.c \
+          $(DISTNAME)/mk251.c \
+          $(DISTNAME)/bzdiff \
+          $(DISTNAME)/bzdiff.1 \
+          $(DISTNAME)/bzmore \
+          $(DISTNAME)/bzmore.1 \
+          $(DISTNAME)/bzgrep \
+          $(DISTNAME)/bzgrep.1 \
+          $(DISTNAME)/Makefile-libbz2_so \
+          $(DISTNAME)/bz-common.xsl \
+          $(DISTNAME)/bz-fo.xsl \
+          $(DISTNAME)/bz-html.xsl \
+          $(DISTNAME)/bzip.css \
+          $(DISTNAME)/entities.xml \
+          $(DISTNAME)/manual.xml \
+          $(DISTNAME)/format.pl \
+          $(DISTNAME)/xmlproc.sh
+       gzip -v $(DISTNAME).tar
+
+# For rebuilding the manual from sources on my SuSE 9.1 box
+
+MANUAL_SRCS=   bz-common.xsl bz-fo.xsl bz-html.xsl bzip.css \
+               entities.xml manual.xml 
+
+manual: manual.html manual.ps manual.pdf
+
+manual.ps: $(MANUAL_SRCS)
+       ./xmlproc.sh -ps manual.xml
+
+manual.pdf: $(MANUAL_SRCS)
+       ./xmlproc.sh -pdf manual.xml
+
+manual.html: $(MANUAL_SRCS)
+       ./xmlproc.sh -html manual.xml
diff --git a/bzip2/Makefile-libbz2_so b/bzip2/Makefile-libbz2_so
new file mode 100644 (file)
index 0000000..e58791b
--- /dev/null
@@ -0,0 +1,59 @@
+
+# This Makefile builds a shared version of the library, 
+# libbz2.so.1.0.6, with soname libbz2.so.1.0,
+# at least on x86-Linux (RedHat 7.2), 
+# with gcc-2.96 20000731 (Red Hat Linux 7.1 2.96-98).  
+# Please see the README file for some important info 
+# about building the library like this.
+
+# ------------------------------------------------------------------
+# This file is part of bzip2/libbzip2, a program and library for
+# lossless, block-sorting data compression.
+#
+# bzip2/libbzip2 version 1.0.6 of 6 September 2010
+# Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+#
+# Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+# README file.
+#
+# This program is released under the terms of the license contained
+# in the file LICENSE.
+# ------------------------------------------------------------------
+
+
+SHELL=/bin/sh
+CC=gcc
+BIGFILES=-D_FILE_OFFSET_BITS=64
+CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
+
+OBJS= blocksort.o  \
+      huffman.o    \
+      crctable.o   \
+      randtable.o  \
+      compress.o   \
+      decompress.o \
+      bzlib.o
+
+all: $(OBJS)
+       $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS)
+       $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.6
+       rm -f libbz2.so.1.0
+       ln -s libbz2.so.1.0.6 libbz2.so.1.0
+
+clean: 
+       rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared
+
+blocksort.o: blocksort.c
+       $(CC) $(CFLAGS) -c blocksort.c
+huffman.o: huffman.c
+       $(CC) $(CFLAGS) -c huffman.c
+crctable.o: crctable.c
+       $(CC) $(CFLAGS) -c crctable.c
+randtable.o: randtable.c
+       $(CC) $(CFLAGS) -c randtable.c
+compress.o: compress.c
+       $(CC) $(CFLAGS) -c compress.c
+decompress.o: decompress.c
+       $(CC) $(CFLAGS) -c decompress.c
+bzlib.o: bzlib.c
+       $(CC) $(CFLAGS) -c bzlib.c
diff --git a/bzip2/README b/bzip2/README
new file mode 100644 (file)
index 0000000..9fb0f63
--- /dev/null
@@ -0,0 +1,215 @@
+
+This is the README for bzip2/libzip2.
+This version is fully compatible with the previous public releases.
+
+------------------------------------------------------------------
+This file is part of bzip2/libbzip2, a program and library for
+lossless, block-sorting data compression.
+
+bzip2/libbzip2 version 1.0.6 of 6 September 2010
+Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+Please read the WARNING, DISCLAIMER and PATENTS sections in this file.
+
+This program is released under the terms of the license contained
+in the file LICENSE.
+------------------------------------------------------------------
+
+Complete documentation is available in Postscript form (manual.ps),
+PDF (manual.pdf) or html (manual.html).  A plain-text version of the
+manual page is available as bzip2.txt.
+
+
+HOW TO BUILD -- UNIX
+
+Type 'make'.  This builds the library libbz2.a and then the programs
+bzip2 and bzip2recover.  Six self-tests are run.  If the self-tests
+complete ok, carry on to installation:
+
+To install in /usr/local/bin, /usr/local/lib, /usr/local/man and
+/usr/local/include, type
+
+   make install
+
+To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type
+
+   make install PREFIX=/xxx/yyy
+
+If you are (justifiably) paranoid and want to see what 'make install'
+is going to do, you can first do
+
+   make -n install                      or
+   make -n install PREFIX=/xxx/yyy      respectively.
+
+The -n instructs make to show the commands it would execute, but not
+actually execute them.
+
+
+HOW TO BUILD -- UNIX, shared library libbz2.so.
+
+Do 'make -f Makefile-libbz2_so'.  This Makefile seems to work for
+Linux-ELF (RedHat 7.2 on an x86 box), with gcc.  I make no claims
+that it works for any other platform, though I suspect it probably
+will work for most platforms employing both ELF and gcc.
+
+bzip2-shared, a client of the shared library, is also built, but not
+self-tested.  So I suggest you also build using the normal Makefile,
+since that conducts a self-test.  A second reason to prefer the
+version statically linked to the library is that, on x86 platforms,
+building shared objects makes a valuable register (%ebx) unavailable
+to gcc, resulting in a slowdown of 10%-20%, at least for bzip2.
+
+Important note for people upgrading .so's from 0.9.0/0.9.5 to version
+1.0.X.  All the functions in the library have been renamed, from (eg)
+bzCompress to BZ2_bzCompress, to avoid namespace pollution.
+Unfortunately this means that the libbz2.so created by
+Makefile-libbz2_so will not work with any program which used an older
+version of the library.  I do encourage library clients to make the
+effort to upgrade to use version 1.0, since it is both faster and more
+robust than previous versions.
+
+
+HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc.
+
+It's difficult for me to support compilation on all these platforms.
+My approach is to collect binaries for these platforms, and put them
+on the master web site (http://www.bzip.org).  Look there.  However
+(FWIW), bzip2-1.0.X is very standard ANSI C and should compile
+unmodified with MS Visual C.  If you have difficulties building, you
+might want to read README.COMPILATION.PROBLEMS.
+
+At least using MS Visual C++ 6, you can build from the unmodified
+sources by issuing, in a command shell: 
+
+   nmake -f makefile.msc
+
+(you may need to first run the MSVC-provided script VCVARS32.BAT
+ so as to set up paths to the MSVC tools correctly).
+
+
+VALIDATION
+
+Correct operation, in the sense that a compressed file can always be
+decompressed to reproduce the original, is obviously of paramount
+importance.  To validate bzip2, I used a modified version of Mark
+Nelson's churn program.  Churn is an automated test driver which
+recursively traverses a directory structure, using bzip2 to compress
+and then decompress each file it encounters, and checking that the
+decompressed data is the same as the original.
+
+
+
+Please read and be aware of the following:
+
+WARNING:
+
+   This program and library (attempts to) compress data by 
+   performing several non-trivial transformations on it.  
+   Unless you are 100% familiar with *all* the algorithms 
+   contained herein, and with the consequences of modifying them, 
+   you should NOT meddle with the compression or decompression 
+   machinery.  Incorrect changes can and very likely *will* 
+   lead to disastrous loss of data.
+
+
+DISCLAIMER:
+
+   I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE
+   USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED.
+
+   Every compression of a file implies an assumption that the
+   compressed file can be decompressed to reproduce the original.
+   Great efforts in design, coding and testing have been made to
+   ensure that this program works correctly.  However, the complexity
+   of the algorithms, and, in particular, the presence of various
+   special cases in the code which occur with very low but non-zero
+   probability make it impossible to rule out the possibility of bugs
+   remaining in the program.  DO NOT COMPRESS ANY DATA WITH THIS
+   PROGRAM UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER
+   SMALL, THAT THE DATA WILL NOT BE RECOVERABLE.
+
+   That is not to say this program is inherently unreliable.  
+   Indeed, I very much hope the opposite is true.  bzip2/libbzip2 
+   has been carefully constructed and extensively tested.
+
+
+PATENTS:
+
+   To the best of my knowledge, bzip2/libbzip2 does not use any 
+   patented algorithms.  However, I do not have the resources 
+   to carry out a patent search.  Therefore I cannot give any 
+   guarantee of the above statement.
+
+
+
+WHAT'S NEW IN 0.9.0 (as compared to 0.1pl2) ?
+
+   * Approx 10% faster compression, 30% faster decompression
+   * -t (test mode) is a lot quicker
+   * Can decompress concatenated compressed files
+   * Programming interface, so programs can directly read/write .bz2 files
+   * Less restrictive (BSD-style) licensing
+   * Flag handling more compatible with GNU gzip
+   * Much more documentation, i.e., a proper user manual
+   * Hopefully, improved portability (at least of the library)
+
+WHAT'S NEW IN 0.9.5 ?
+
+   * Compression speed is much less sensitive to the input
+     data than in previous versions.  Specifically, the very
+     slow performance caused by repetitive data is fixed.
+   * Many small improvements in file and flag handling.
+   * A Y2K statement.
+
+WHAT'S NEW IN 1.0.0 ?
+
+   See the CHANGES file.
+
+WHAT'S NEW IN 1.0.2 ?
+
+   See the CHANGES file.
+
+WHAT'S NEW IN 1.0.3 ?
+
+   See the CHANGES file.
+
+WHAT'S NEW IN 1.0.4 ?
+
+   See the CHANGES file.
+
+WHAT'S NEW IN 1.0.5 ?
+
+   See the CHANGES file.
+
+WHAT'S NEW IN 1.0.6 ?
+
+   See the CHANGES file.
+
+
+I hope you find bzip2 useful.  Feel free to contact me at
+   jseward@bzip.org
+if you have any suggestions or queries.  Many people mailed me with
+comments, suggestions and patches after the releases of bzip-0.15,
+bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1,
+1.0.2 and 1.0.3, and the changes in bzip2 are largely a result of this
+feedback.  I thank you for your comments.
+
+bzip2's "home" is http://www.bzip.org/
+
+Julian Seward
+jseward@bzip.org
+Cambridge, UK.
+
+18     July 1996 (version 0.15)
+25   August 1996 (version 0.21)
+ 7   August 1997 (bzip2, version 0.1)
+29   August 1997 (bzip2, version 0.1pl2)
+23   August 1998 (bzip2, version 0.9.0)
+ 8     June 1999 (bzip2, version 0.9.5)
+ 4     Sept 1999 (bzip2, version 0.9.5d)
+ 5      May 2000 (bzip2, version 1.0pre8)
+30 December 2001 (bzip2, version 1.0.2pre1)
+15 February 2005 (bzip2, version 1.0.3)
+20 December 2006 (bzip2, version 1.0.4)
+10 December 2007 (bzip2, version 1.0.5)
+ 6     Sept 2010 (bzip2, version 1.0.6)
diff --git a/bzip2/README.COMPILATION.PROBLEMS b/bzip2/README.COMPILATION.PROBLEMS
new file mode 100644 (file)
index 0000000..667d0d6
--- /dev/null
@@ -0,0 +1,58 @@
+------------------------------------------------------------------
+This file is part of bzip2/libbzip2, a program and library for
+lossless, block-sorting data compression.
+
+bzip2/libbzip2 version 1.0.6 of 6 September 2010
+Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+README file.
+
+This program is released under the terms of the license contained
+in the file LICENSE.
+------------------------------------------------------------------
+
+bzip2-1.0.6 should compile without problems on the vast majority of
+platforms.  Using the supplied Makefile, I've built and tested it
+myself for x86-linux and amd64-linux.  With makefile.msc, Visual C++
+6.0 and nmake, you can build a native Win32 version too.  Large file
+support seems to work correctly on at least on amd64-linux.
+
+When I say "large file" I mean a file of size 2,147,483,648 (2^31)
+bytes or above.  Many older OSs can't handle files above this size,
+but many newer ones can.  Large files are pretty huge -- most files
+you'll encounter are not Large Files.
+
+Early versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a wide variety
+of platforms without difficulty, and I hope this version will continue
+in that tradition.  However, in order to support large files, I've had
+to include the define -D_FILE_OFFSET_BITS=64 in the Makefile.  This
+can cause problems.
+
+The technique of adding -D_FILE_OFFSET_BITS=64 to get large file
+support is, as far as I know, the Recommended Way to get correct large
+file support.  For more details, see the Large File Support
+Specification, published by the Large File Summit, at
+
+   http://ftp.sas.com/standards/large.file
+
+As a general comment, if you get compilation errors which you think
+are related to large file support, try removing the above define from
+the Makefile, ie, delete the line
+
+   BIGFILES=-D_FILE_OFFSET_BITS=64 
+
+from the Makefile, and do 'make clean ; make'.  This will give you a
+version of bzip2 without large file support, which, for most
+applications, is probably not a problem.  
+
+Alternatively, try some of the platform-specific hints listed below.
+
+You can use the spewG.c program to generate huge files to test bzip2's
+large file support, if you are feeling paranoid.  Be aware though that
+any compilation problems which affect bzip2 will also affect spewG.c,
+alas.
+
+AIX: I have reports that for large file support, you need to specify
+-D_LARGE_FILES rather than -D_FILE_OFFSET_BITS=64.  I have not tested
+this myself.
diff --git a/bzip2/README.XML.STUFF b/bzip2/README.XML.STUFF
new file mode 100644 (file)
index 0000000..3a57f3f
--- /dev/null
@@ -0,0 +1,45 @@
+  ----------------------------------------------------------------
+  This file is part of bzip2/libbzip2, a program and library for
+  lossless, block-sorting data compression.
+
+  bzip2/libbzip2 version 1.0.6 of 6 September 2010
+  Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+  Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+  README file.
+
+  This program is released under the terms of the license contained
+  in the file LICENSE.
+  ----------------------------------------------------------------
+
+The script xmlproc.sh takes an xml file as input,
+and processes it to create .pdf, .html or .ps output.
+It uses format.pl, a perl script to format <pre> blocks nicely,
+ and add CDATA tags so writers do not have to use eg. &lt; 
+
+The file "entities.xml" must be edited to reflect current
+version, year, etc.
+
+
+Usage:
+
+  ./xmlproc.sh -v manual.xml
+  Validates an xml file to ensure no dtd-compliance errors
+
+  ./xmlproc.sh -html manual.xml
+  Output: manual.html
+
+  ./xmlproc.sh -pdf manual.xml
+  Output: manual.pdf
+
+  ./xmlproc.sh -ps manual.xml
+  Output: manual.ps
+
+
+Notum bene: 
+- pdfxmltex barfs if given a filename with an underscore in it
+
+- xmltex won't work yet - there's a bug in passivetex
+    which we are all waiting for Sebastian to fix.
+  So we are going the xml -> pdf -> ps route for the time being,
+    using pdfxmltex.
index 0bae2e2..457e54b 100644 (file)
@@ -1,9 +1,9 @@
-This folder is the root folder for the externally supplied bzip2 source code.
-Additionally, this folder contains the following Info-ZIP-specific files:
+   This directory contains a bzip2 source kit (version 1.0.6, with
+changes for better VMS support), plus the following additional,
+Info-ZIP-specific files:
 
-  00README.IZ   this file
-  Makebz2.iz    "generic" make script for the base bzip2 lib used in UnZip
-  makbz2iz.msc  make script for the bzip2 support, win32 port, MS VC++
-  makbz2iz.wat  make script for bzip2 support, msdos & win32, OpenWatcom C++
-  descrbz2.mms  MMS/MMK make script for OpenVMS
-  buildbz2.com  OpenVMS DCL procedure to build the base bz2 lib used in UnZip
+   README_bz2.txt   This file.
+   Makebz2.iz       Generic "make" file.
+   makbz2iz.msc     MS VC++ "make" file.
+   makbz2iz.wat     OpenWatcom C++ "make" file.
+   buildbz2.com     VMS DCL script.
diff --git a/bzip2/blocksort.c b/bzip2/blocksort.c
new file mode 100644 (file)
index 0000000..d0d662c
--- /dev/null
@@ -0,0 +1,1094 @@
+
+/*-------------------------------------------------------------*/
+/*--- Block sorting machinery                               ---*/
+/*---                                           blocksort.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#include "bzlib_private.h"
+
+/*---------------------------------------------*/
+/*--- Fallback O(N log(N)^2) sorting        ---*/
+/*--- algorithm, for repetitive blocks      ---*/
+/*---------------------------------------------*/
+
+/*---------------------------------------------*/
+static 
+__inline__
+void fallbackSimpleSort ( UInt32* fmap, 
+                          UInt32* eclass, 
+                          Int32   lo, 
+                          Int32   hi )
+{
+   Int32 i, j, tmp;
+   UInt32 ec_tmp;
+
+   if (lo == hi) return;
+
+   if (hi - lo > 3) {
+      for ( i = hi-4; i >= lo; i-- ) {
+         tmp = fmap[i];
+         ec_tmp = eclass[tmp];
+         for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 )
+            fmap[j-4] = fmap[j];
+         fmap[j-4] = tmp;
+      }
+   }
+
+   for ( i = hi-1; i >= lo; i-- ) {
+      tmp = fmap[i];
+      ec_tmp = eclass[tmp];
+      for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ )
+         fmap[j-1] = fmap[j];
+      fmap[j-1] = tmp;
+   }
+}
+
+
+/*---------------------------------------------*/
+#define fswap(zz1, zz2) \
+   { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
+
+#define fvswap(zzp1, zzp2, zzn)       \
+{                                     \
+   Int32 yyp1 = (zzp1);               \
+   Int32 yyp2 = (zzp2);               \
+   Int32 yyn  = (zzn);                \
+   while (yyn > 0) {                  \
+      fswap(fmap[yyp1], fmap[yyp2]);  \
+      yyp1++; yyp2++; yyn--;          \
+   }                                  \
+}
+
+
+#define fmin(a,b) ((a) < (b)) ? (a) : (b)
+
+#define fpush(lz,hz) { stackLo[sp] = lz; \
+                       stackHi[sp] = hz; \
+                       sp++; }
+
+#define fpop(lz,hz) { sp--;              \
+                      lz = stackLo[sp];  \
+                      hz = stackHi[sp]; }
+
+#define FALLBACK_QSORT_SMALL_THRESH 10
+#define FALLBACK_QSORT_STACK_SIZE   100
+
+
+static
+void fallbackQSort3 ( UInt32* fmap, 
+                      UInt32* eclass,
+                      Int32   loSt, 
+                      Int32   hiSt )
+{
+   Int32 unLo, unHi, ltLo, gtHi, n, m;
+   Int32 sp, lo, hi;
+   UInt32 med, r, r3;
+   Int32 stackLo[FALLBACK_QSORT_STACK_SIZE];
+   Int32 stackHi[FALLBACK_QSORT_STACK_SIZE];
+
+   r = 0;
+
+   sp = 0;
+   fpush ( loSt, hiSt );
+
+   while (sp > 0) {
+
+      AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 );
+
+      fpop ( lo, hi );
+      if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) {
+         fallbackSimpleSort ( fmap, eclass, lo, hi );
+         continue;
+      }
+
+      /* Random partitioning.  Median of 3 sometimes fails to
+         avoid bad cases.  Median of 9 seems to help but 
+         looks rather expensive.  This too seems to work but
+         is cheaper.  Guidance for the magic constants 
+         7621 and 32768 is taken from Sedgewick's algorithms
+         book, chapter 35.
+      */
+      r = ((r * 7621) + 1) % 32768;
+      r3 = r % 3;
+      if (r3 == 0) med = eclass[fmap[lo]]; else
+      if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else
+                   med = eclass[fmap[hi]];
+
+      unLo = ltLo = lo;
+      unHi = gtHi = hi;
+
+      while (1) {
+         while (1) {
+            if (unLo > unHi) break;
+            n = (Int32)eclass[fmap[unLo]] - (Int32)med;
+            if (n == 0) { 
+               fswap(fmap[unLo], fmap[ltLo]); 
+               ltLo++; unLo++; 
+               continue; 
+            };
+            if (n > 0) break;
+            unLo++;
+         }
+         while (1) {
+            if (unLo > unHi) break;
+            n = (Int32)eclass[fmap[unHi]] - (Int32)med;
+            if (n == 0) { 
+               fswap(fmap[unHi], fmap[gtHi]); 
+               gtHi--; unHi--; 
+               continue; 
+            };
+            if (n < 0) break;
+            unHi--;
+         }
+         if (unLo > unHi) break;
+         fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--;
+      }
+
+      AssertD ( unHi == unLo-1, "fallbackQSort3(2)" );
+
+      if (gtHi < ltLo) continue;
+
+      n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n);
+      m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m);
+
+      n = lo + unLo - ltLo - 1;
+      m = hi - (gtHi - unHi) + 1;
+
+      if (n - lo > hi - m) {
+         fpush ( lo, n );
+         fpush ( m, hi );
+      } else {
+         fpush ( m, hi );
+         fpush ( lo, n );
+      }
+   }
+}
+
+#undef fmin
+#undef fpush
+#undef fpop
+#undef fswap
+#undef fvswap
+#undef FALLBACK_QSORT_SMALL_THRESH
+#undef FALLBACK_QSORT_STACK_SIZE
+
+
+/*---------------------------------------------*/
+/* Pre:
+      nblock > 0
+      eclass exists for [0 .. nblock-1]
+      ((UChar*)eclass) [0 .. nblock-1] holds block
+      ptr exists for [0 .. nblock-1]
+
+   Post:
+      ((UChar*)eclass) [0 .. nblock-1] holds block
+      All other areas of eclass destroyed
+      fmap [0 .. nblock-1] holds sorted order
+      bhtab [ 0 .. 2+(nblock/32) ] destroyed
+*/
+
+#define       SET_BH(zz)  bhtab[(zz) >> 5] |= (1 << ((zz) & 31))
+#define     CLEAR_BH(zz)  bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31))
+#define     ISSET_BH(zz)  (bhtab[(zz) >> 5] & (1 << ((zz) & 31)))
+#define      WORD_BH(zz)  bhtab[(zz) >> 5]
+#define UNALIGNED_BH(zz)  ((zz) & 0x01f)
+
+static
+void fallbackSort ( UInt32* fmap, 
+                    UInt32* eclass, 
+                    UInt32* bhtab,
+                    Int32   nblock,
+                    Int32   verb )
+{
+   Int32 ftab[257];
+   Int32 ftabCopy[256];
+   Int32 H, i, j, k, l, r, cc, cc1;
+   Int32 nNotDone;
+   Int32 nBhtab;
+   UChar* eclass8 = (UChar*)eclass;
+
+   /*--
+      Initial 1-char radix sort to generate
+      initial fmap and initial BH bits.
+   --*/
+   if (verb >= 4)
+      VPrintf0 ( "        bucket sorting ...\n" );
+   for (i = 0; i < 257;    i++) ftab[i] = 0;
+   for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
+   for (i = 0; i < 256;    i++) ftabCopy[i] = ftab[i];
+   for (i = 1; i < 257;    i++) ftab[i] += ftab[i-1];
+
+   for (i = 0; i < nblock; i++) {
+      j = eclass8[i];
+      k = ftab[j] - 1;
+      ftab[j] = k;
+      fmap[k] = i;
+   }
+
+   nBhtab = 2 + (nblock / 32);
+   for (i = 0; i < nBhtab; i++) bhtab[i] = 0;
+   for (i = 0; i < 256; i++) SET_BH(ftab[i]);
+
+   /*--
+      Inductively refine the buckets.  Kind-of an
+      "exponential radix sort" (!), inspired by the
+      Manber-Myers suffix array construction algorithm.
+   --*/
+
+   /*-- set sentinel bits for block-end detection --*/
+   for (i = 0; i < 32; i++) { 
+      SET_BH(nblock + 2*i);
+      CLEAR_BH(nblock + 2*i + 1);
+   }
+
+   /*-- the log(N) loop --*/
+   H = 1;
+   while (1) {
+
+      if (verb >= 4) 
+         VPrintf1 ( "        depth %6d has ", H );
+
+      j = 0;
+      for (i = 0; i < nblock; i++) {
+         if (ISSET_BH(i)) j = i;
+         k = fmap[i] - H; if (k < 0) k += nblock;
+         eclass[k] = j;
+      }
+
+      nNotDone = 0;
+      r = -1;
+      while (1) {
+
+        /*-- find the next non-singleton bucket --*/
+         k = r + 1;
+         while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;
+         if (ISSET_BH(k)) {
+            while (WORD_BH(k) == 0xffffffff) k += 32;
+            while (ISSET_BH(k)) k++;
+         }
+         l = k - 1;
+         if (l >= nblock) break;
+         while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++;
+         if (!ISSET_BH(k)) {
+            while (WORD_BH(k) == 0x00000000) k += 32;
+            while (!ISSET_BH(k)) k++;
+         }
+         r = k - 1;
+         if (r >= nblock) break;
+
+         /*-- now [l, r] bracket current bucket --*/
+         if (r > l) {
+            nNotDone += (r - l + 1);
+            fallbackQSort3 ( fmap, eclass, l, r );
+
+            /*-- scan bucket and generate header bits-- */
+            cc = -1;
+            for (i = l; i <= r; i++) {
+               cc1 = eclass[fmap[i]];
+               if (cc != cc1) { SET_BH(i); cc = cc1; };
+            }
+         }
+      }
+
+      if (verb >= 4) 
+         VPrintf1 ( "%6d unresolved strings\n", nNotDone );
+
+      H *= 2;
+      if (H > nblock || nNotDone == 0) break;
+   }
+
+   /*-- 
+      Reconstruct the original block in
+      eclass8 [0 .. nblock-1], since the
+      previous phase destroyed it.
+   --*/
+   if (verb >= 4)
+      VPrintf0 ( "        reconstructing block ...\n" );
+   j = 0;
+   for (i = 0; i < nblock; i++) {
+      while (ftabCopy[j] == 0) j++;
+      ftabCopy[j]--;
+      eclass8[fmap[i]] = (UChar)j;
+   }
+   AssertH ( j < 256, 1005 );
+}
+
+#undef       SET_BH
+#undef     CLEAR_BH
+#undef     ISSET_BH
+#undef      WORD_BH
+#undef UNALIGNED_BH
+
+
+/*---------------------------------------------*/
+/*--- The main, O(N^2 log(N)) sorting       ---*/
+/*--- algorithm.  Faster for "normal"       ---*/
+/*--- non-repetitive blocks.                ---*/
+/*---------------------------------------------*/
+
+/*---------------------------------------------*/
+static
+__inline__
+Bool mainGtU ( UInt32  i1, 
+               UInt32  i2,
+               UChar*  block, 
+               UInt16* quadrant,
+               UInt32  nblock,
+               Int32*  budget )
+{
+   Int32  k;
+   UChar  c1, c2;
+   UInt16 s1, s2;
+
+   AssertD ( i1 != i2, "mainGtU" );
+   /* 1 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 2 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 3 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 4 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 5 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 6 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 7 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 8 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 9 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 10 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 11 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+   /* 12 */
+   c1 = block[i1]; c2 = block[i2];
+   if (c1 != c2) return (c1 > c2);
+   i1++; i2++;
+
+   k = nblock + 8;
+
+   do {
+      /* 1 */
+      c1 = block[i1]; c2 = block[i2];
+      if (c1 != c2) return (c1 > c2);
+      s1 = quadrant[i1]; s2 = quadrant[i2];
+      if (s1 != s2) return (s1 > s2);
+      i1++; i2++;
+      /* 2 */
+      c1 = block[i1]; c2 = block[i2];
+      if (c1 != c2) return (c1 > c2);
+      s1 = quadrant[i1]; s2 = quadrant[i2];
+      if (s1 != s2) return (s1 > s2);
+      i1++; i2++;
+      /* 3 */
+      c1 = block[i1]; c2 = block[i2];
+      if (c1 != c2) return (c1 > c2);
+      s1 = quadrant[i1]; s2 = quadrant[i2];
+      if (s1 != s2) return (s1 > s2);
+      i1++; i2++;
+      /* 4 */
+      c1 = block[i1]; c2 = block[i2];
+      if (c1 != c2) return (c1 > c2);
+      s1 = quadrant[i1]; s2 = quadrant[i2];
+      if (s1 != s2) return (s1 > s2);
+      i1++; i2++;
+      /* 5 */
+      c1 = block[i1]; c2 = block[i2];
+      if (c1 != c2) return (c1 > c2);
+      s1 = quadrant[i1]; s2 = quadrant[i2];
+      if (s1 != s2) return (s1 > s2);
+      i1++; i2++;
+      /* 6 */
+      c1 = block[i1]; c2 = block[i2];
+      if (c1 != c2) return (c1 > c2);
+      s1 = quadrant[i1]; s2 = quadrant[i2];
+      if (s1 != s2) return (s1 > s2);
+      i1++; i2++;
+      /* 7 */
+      c1 = block[i1]; c2 = block[i2];
+      if (c1 != c2) return (c1 > c2);
+      s1 = quadrant[i1]; s2 = quadrant[i2];
+      if (s1 != s2) return (s1 > s2);
+      i1++; i2++;
+      /* 8 */
+      c1 = block[i1]; c2 = block[i2];
+      if (c1 != c2) return (c1 > c2);
+      s1 = quadrant[i1]; s2 = quadrant[i2];
+      if (s1 != s2) return (s1 > s2);
+      i1++; i2++;
+
+      if (i1 >= nblock) i1 -= nblock;
+      if (i2 >= nblock) i2 -= nblock;
+
+      k -= 8;
+      (*budget)--;
+   }
+      while (k >= 0);
+
+   return False;
+}
+
+
+/*---------------------------------------------*/
+/*--
+   Knuth's increments seem to work better
+   than Incerpi-Sedgewick here.  Possibly
+   because the number of elems to sort is
+   usually small, typically <= 20.
+--*/
+static
+Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280,
+                   9841, 29524, 88573, 265720,
+                   797161, 2391484 };
+
+static
+void mainSimpleSort ( UInt32* ptr,
+                      UChar*  block,
+                      UInt16* quadrant,
+                      Int32   nblock,
+                      Int32   lo, 
+                      Int32   hi, 
+                      Int32   d,
+                      Int32*  budget )
+{
+   Int32 i, j, h, bigN, hp;
+   UInt32 v;
+
+   bigN = hi - lo + 1;
+   if (bigN < 2) return;
+
+   hp = 0;
+   while (incs[hp] < bigN) hp++;
+   hp--;
+
+   for (; hp >= 0; hp--) {
+      h = incs[hp];
+
+      i = lo + h;
+      while (True) {
+
+         /*-- copy 1 --*/
+         if (i > hi) break;
+         v = ptr[i];
+         j = i;
+         while ( mainGtU ( 
+                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
+                 ) ) {
+            ptr[j] = ptr[j-h];
+            j = j - h;
+            if (j <= (lo + h - 1)) break;
+         }
+         ptr[j] = v;
+         i++;
+
+         /*-- copy 2 --*/
+         if (i > hi) break;
+         v = ptr[i];
+         j = i;
+         while ( mainGtU ( 
+                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
+                 ) ) {
+            ptr[j] = ptr[j-h];
+            j = j - h;
+            if (j <= (lo + h - 1)) break;
+         }
+         ptr[j] = v;
+         i++;
+
+         /*-- copy 3 --*/
+         if (i > hi) break;
+         v = ptr[i];
+         j = i;
+         while ( mainGtU ( 
+                    ptr[j-h]+d, v+d, block, quadrant, nblock, budget 
+                 ) ) {
+            ptr[j] = ptr[j-h];
+            j = j - h;
+            if (j <= (lo + h - 1)) break;
+         }
+         ptr[j] = v;
+         i++;
+
+         if (*budget < 0) return;
+      }
+   }
+}
+
+
+/*---------------------------------------------*/
+/*--
+   The following is an implementation of
+   an elegant 3-way quicksort for strings,
+   described in a paper "Fast Algorithms for
+   Sorting and Searching Strings", by Robert
+   Sedgewick and Jon L. Bentley.
+--*/
+
+#define mswap(zz1, zz2) \
+   { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
+
+#define mvswap(zzp1, zzp2, zzn)       \
+{                                     \
+   Int32 yyp1 = (zzp1);               \
+   Int32 yyp2 = (zzp2);               \
+   Int32 yyn  = (zzn);                \
+   while (yyn > 0) {                  \
+      mswap(ptr[yyp1], ptr[yyp2]);    \
+      yyp1++; yyp2++; yyn--;          \
+   }                                  \
+}
+
+static 
+__inline__
+UChar mmed3 ( UChar a, UChar b, UChar c )
+{
+   UChar t;
+   if (a > b) { t = a; a = b; b = t; };
+   if (b > c) { 
+      b = c;
+      if (a > b) b = a;
+   }
+   return b;
+}
+
+#define mmin(a,b) ((a) < (b)) ? (a) : (b)
+
+#define mpush(lz,hz,dz) { stackLo[sp] = lz; \
+                          stackHi[sp] = hz; \
+                          stackD [sp] = dz; \
+                          sp++; }
+
+#define mpop(lz,hz,dz) { sp--;             \
+                         lz = stackLo[sp]; \
+                         hz = stackHi[sp]; \
+                         dz = stackD [sp]; }
+
+
+#define mnextsize(az) (nextHi[az]-nextLo[az])
+
+#define mnextswap(az,bz)                                        \
+   { Int32 tz;                                                  \
+     tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \
+     tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \
+     tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; }
+
+
+#define MAIN_QSORT_SMALL_THRESH 20
+#define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT)
+#define MAIN_QSORT_STACK_SIZE 100
+
+static
+void mainQSort3 ( UInt32* ptr,
+                  UChar*  block,
+                  UInt16* quadrant,
+                  Int32   nblock,
+                  Int32   loSt, 
+                  Int32   hiSt, 
+                  Int32   dSt,
+                  Int32*  budget )
+{
+   Int32 unLo, unHi, ltLo, gtHi, n, m, med;
+   Int32 sp, lo, hi, d;
+
+   Int32 stackLo[MAIN_QSORT_STACK_SIZE];
+   Int32 stackHi[MAIN_QSORT_STACK_SIZE];
+   Int32 stackD [MAIN_QSORT_STACK_SIZE];
+
+   Int32 nextLo[3];
+   Int32 nextHi[3];
+   Int32 nextD [3];
+
+   sp = 0;
+   mpush ( loSt, hiSt, dSt );
+
+   while (sp > 0) {
+
+      AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 );
+
+      mpop ( lo, hi, d );
+      if (hi - lo < MAIN_QSORT_SMALL_THRESH || 
+          d > MAIN_QSORT_DEPTH_THRESH) {
+         mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget );
+         if (*budget < 0) return;
+         continue;
+      }
+
+      med = (Int32) 
+            mmed3 ( block[ptr[ lo         ]+d],
+                    block[ptr[ hi         ]+d],
+                    block[ptr[ (lo+hi)>>1 ]+d] );
+
+      unLo = ltLo = lo;
+      unHi = gtHi = hi;
+
+      while (True) {
+         while (True) {
+            if (unLo > unHi) break;
+            n = ((Int32)block[ptr[unLo]+d]) - med;
+            if (n == 0) { 
+               mswap(ptr[unLo], ptr[ltLo]); 
+               ltLo++; unLo++; continue; 
+            };
+            if (n >  0) break;
+            unLo++;
+         }
+         while (True) {
+            if (unLo > unHi) break;
+            n = ((Int32)block[ptr[unHi]+d]) - med;
+            if (n == 0) { 
+               mswap(ptr[unHi], ptr[gtHi]); 
+               gtHi--; unHi--; continue; 
+            };
+            if (n <  0) break;
+            unHi--;
+         }
+         if (unLo > unHi) break;
+         mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--;
+      }
+
+      AssertD ( unHi == unLo-1, "mainQSort3(2)" );
+
+      if (gtHi < ltLo) {
+         mpush(lo, hi, d+1 );
+         continue;
+      }
+
+      n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n);
+      m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m);
+
+      n = lo + unLo - ltLo - 1;
+      m = hi - (gtHi - unHi) + 1;
+
+      nextLo[0] = lo;  nextHi[0] = n;   nextD[0] = d;
+      nextLo[1] = m;   nextHi[1] = hi;  nextD[1] = d;
+      nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1;
+
+      if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
+      if (mnextsize(1) < mnextsize(2)) mnextswap(1,2);
+      if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
+
+      AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" );
+      AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" );
+
+      mpush (nextLo[0], nextHi[0], nextD[0]);
+      mpush (nextLo[1], nextHi[1], nextD[1]);
+      mpush (nextLo[2], nextHi[2], nextD[2]);
+   }
+}
+
+#undef mswap
+#undef mvswap
+#undef mpush
+#undef mpop
+#undef mmin
+#undef mnextsize
+#undef mnextswap
+#undef MAIN_QSORT_SMALL_THRESH
+#undef MAIN_QSORT_DEPTH_THRESH
+#undef MAIN_QSORT_STACK_SIZE
+
+
+/*---------------------------------------------*/
+/* Pre:
+      nblock > N_OVERSHOOT
+      block32 exists for [0 .. nblock-1 +N_OVERSHOOT]
+      ((UChar*)block32) [0 .. nblock-1] holds block
+      ptr exists for [0 .. nblock-1]
+
+   Post:
+      ((UChar*)block32) [0 .. nblock-1] holds block
+      All other areas of block32 destroyed
+      ftab [0 .. 65536 ] destroyed
+      ptr [0 .. nblock-1] holds sorted order
+      if (*budget < 0), sorting was abandoned
+*/
+
+#define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8])
+#define SETMASK (1 << 21)
+#define CLEARMASK (~(SETMASK))
+
+static
+void mainSort ( UInt32* ptr, 
+                UChar*  block,
+                UInt16* quadrant, 
+                UInt32* ftab,
+                Int32   nblock,
+                Int32   verb,
+                Int32*  budget )
+{
+   Int32  i, j, k, ss, sb;
+   Int32  runningOrder[256];
+   Bool   bigDone[256];
+   Int32  copyStart[256];
+   Int32  copyEnd  [256];
+   UChar  c1;
+   Int32  numQSorted;
+   UInt16 s;
+   if (verb >= 4) VPrintf0 ( "        main sort initialise ...\n" );
+
+   /*-- set up the 2-byte frequency table --*/
+   for (i = 65536; i >= 0; i--) ftab[i] = 0;
+
+   j = block[0] << 8;
+   i = nblock-1;
+   for (; i >= 3; i -= 4) {
+      quadrant[i] = 0;
+      j = (j >> 8) | ( ((UInt16)block[i]) << 8);
+      ftab[j]++;
+      quadrant[i-1] = 0;
+      j = (j >> 8) | ( ((UInt16)block[i-1]) << 8);
+      ftab[j]++;
+      quadrant[i-2] = 0;
+      j = (j >> 8) | ( ((UInt16)block[i-2]) << 8);
+      ftab[j]++;
+      quadrant[i-3] = 0;
+      j = (j >> 8) | ( ((UInt16)block[i-3]) << 8);
+      ftab[j]++;
+   }
+   for (; i >= 0; i--) {
+      quadrant[i] = 0;
+      j = (j >> 8) | ( ((UInt16)block[i]) << 8);
+      ftab[j]++;
+   }
+
+   /*-- (emphasises close relationship of block & quadrant) --*/
+   for (i = 0; i < BZ_N_OVERSHOOT; i++) {
+      block   [nblock+i] = block[i];
+      quadrant[nblock+i] = 0;
+   }
+
+   if (verb >= 4) VPrintf0 ( "        bucket sorting ...\n" );
+
+   /*-- Complete the initial radix sort --*/
+   for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1];
+
+   s = block[0] << 8;
+   i = nblock-1;
+   for (; i >= 3; i -= 4) {
+      s = (s >> 8) | (block[i] << 8);
+      j = ftab[s] -1;
+      ftab[s] = j;
+      ptr[j] = i;
+      s = (s >> 8) | (block[i-1] << 8);
+      j = ftab[s] -1;
+      ftab[s] = j;
+      ptr[j] = i-1;
+      s = (s >> 8) | (block[i-2] << 8);
+      j = ftab[s] -1;
+      ftab[s] = j;
+      ptr[j] = i-2;
+      s = (s >> 8) | (block[i-3] << 8);
+      j = ftab[s] -1;
+      ftab[s] = j;
+      ptr[j] = i-3;
+   }
+   for (; i >= 0; i--) {
+      s = (s >> 8) | (block[i] << 8);
+      j = ftab[s] -1;
+      ftab[s] = j;
+      ptr[j] = i;
+   }
+
+   /*--
+      Now ftab contains the first loc of every small bucket.
+      Calculate the running order, from smallest to largest
+      big bucket.
+   --*/
+   for (i = 0; i <= 255; i++) {
+      bigDone     [i] = False;
+      runningOrder[i] = i;
+   }
+
+   {
+      Int32 vv;
+      Int32 h = 1;
+      do h = 3 * h + 1; while (h <= 256);
+      do {
+         h = h / 3;
+         for (i = h; i <= 255; i++) {
+            vv = runningOrder[i];
+            j = i;
+            while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) {
+               runningOrder[j] = runningOrder[j-h];
+               j = j - h;
+               if (j <= (h - 1)) goto zero;
+            }
+            zero:
+            runningOrder[j] = vv;
+         }
+      } while (h != 1);
+   }
+
+   /*--
+      The main sorting loop.
+   --*/
+
+   numQSorted = 0;
+
+   for (i = 0; i <= 255; i++) {
+
+      /*--
+         Process big buckets, starting with the least full.
+         Basically this is a 3-step process in which we call
+         mainQSort3 to sort the small buckets [ss, j], but
+         also make a big effort to avoid the calls if we can.
+      --*/
+      ss = runningOrder[i];
+
+      /*--
+         Step 1:
+         Complete the big bucket [ss] by quicksorting
+         any unsorted small buckets [ss, j], for j != ss.  
+         Hopefully previous pointer-scanning phases have already
+         completed many of the small buckets [ss, j], so
+         we don't have to sort them at all.
+      --*/
+      for (j = 0; j <= 255; j++) {
+         if (j != ss) {
+            sb = (ss << 8) + j;
+            if ( ! (ftab[sb] & SETMASK) ) {
+               Int32 lo = ftab[sb]   & CLEARMASK;
+               Int32 hi = (ftab[sb+1] & CLEARMASK) - 1;
+               if (hi > lo) {
+                  if (verb >= 4)
+                     VPrintf4 ( "        qsort [0x%x, 0x%x]   "
+                                "done %d   this %d\n",
+                                ss, j, numQSorted, hi - lo + 1 );
+                  mainQSort3 ( 
+                     ptr, block, quadrant, nblock, 
+                     lo, hi, BZ_N_RADIX, budget 
+                  );   
+                  numQSorted += (hi - lo + 1);
+                  if (*budget < 0) return;
+               }
+            }
+            ftab[sb] |= SETMASK;
+         }
+      }
+
+      AssertH ( !bigDone[ss], 1006 );
+
+      /*--
+         Step 2:
+         Now scan this big bucket [ss] so as to synthesise the
+         sorted order for small buckets [t, ss] for all t,
+         including, magically, the bucket [ss,ss] too.
+         This will avoid doing Real Work in subsequent Step 1's.
+      --*/
+      {
+         for (j = 0; j <= 255; j++) {
+            copyStart[j] =  ftab[(j << 8) + ss]     & CLEARMASK;
+            copyEnd  [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1;
+         }
+         for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) {
+            k = ptr[j]-1; if (k < 0) k += nblock;
+            c1 = block[k];
+            if (!bigDone[c1])
+               ptr[ copyStart[c1]++ ] = k;
+         }
+         for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) {
+            k = ptr[j]-1; if (k < 0) k += nblock;
+            c1 = block[k];
+            if (!bigDone[c1]) 
+               ptr[ copyEnd[c1]-- ] = k;
+         }
+      }
+
+      AssertH ( (copyStart[ss]-1 == copyEnd[ss])
+                || 
+                /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1.
+                   Necessity for this case is demonstrated by compressing 
+                   a sequence of approximately 48.5 million of character 
+                   251; 1.0.0/1.0.1 will then die here. */
+                (copyStart[ss] == 0 && copyEnd[ss] == nblock-1),
+                1007 )
+
+      for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK;
+
+      /*--
+         Step 3:
+         The [ss] big bucket is now done.  Record this fact,
+         and update the quadrant descriptors.  Remember to
+         update quadrants in the overshoot area too, if
+         necessary.  The "if (i < 255)" test merely skips
+         this updating for the last bucket processed, since
+         updating for the last bucket is pointless.
+
+         The quadrant array provides a way to incrementally
+         cache sort orderings, as they appear, so as to 
+         make subsequent comparisons in fullGtU() complete
+         faster.  For repetitive blocks this makes a big
+         difference (but not big enough to be able to avoid
+         the fallback sorting mechanism, exponential radix sort).
+
+         The precise meaning is: at all times:
+
+            for 0 <= i < nblock and 0 <= j <= nblock
+
+            if block[i] != block[j], 
+
+               then the relative values of quadrant[i] and 
+                    quadrant[j] are meaningless.
+
+               else {
+                  if quadrant[i] < quadrant[j]
+                     then the string starting at i lexicographically
+                     precedes the string starting at j
+
+                  else if quadrant[i] > quadrant[j]
+                     then the string starting at j lexicographically
+                     precedes the string starting at i
+
+                  else
+                     the relative ordering of the strings starting
+                     at i and j has not yet been determined.
+               }
+      --*/
+      bigDone[ss] = True;
+
+      if (i < 255) {
+         Int32 bbStart  = ftab[ss << 8] & CLEARMASK;
+         Int32 bbSize   = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart;
+         Int32 shifts   = 0;
+
+         while ((bbSize >> shifts) > 65534) shifts++;
+
+         for (j = bbSize-1; j >= 0; j--) {
+            Int32 a2update     = ptr[bbStart + j];
+            UInt16 qVal        = (UInt16)(j >> shifts);
+            quadrant[a2update] = qVal;
+            if (a2update < BZ_N_OVERSHOOT)
+               quadrant[a2update + nblock] = qVal;
+         }
+         AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 );
+      }
+
+   }
+
+   if (verb >= 4)
+      VPrintf3 ( "        %d pointers, %d sorted, %d scanned\n",
+                 nblock, numQSorted, nblock - numQSorted );
+}
+
+#undef BIGFREQ
+#undef SETMASK
+#undef CLEARMASK
+
+
+/*---------------------------------------------*/
+/* Pre:
+      nblock > 0
+      arr2 exists for [0 .. nblock-1 +N_OVERSHOOT]
+      ((UChar*)arr2)  [0 .. nblock-1] holds block
+      arr1 exists for [0 .. nblock-1]
+
+   Post:
+      ((UChar*)arr2) [0 .. nblock-1] holds block
+      All other areas of block destroyed
+      ftab [ 0 .. 65536 ] destroyed
+      arr1 [0 .. nblock-1] holds sorted order
+*/
+void BZ2_blockSort ( EState* s )
+{
+   UInt32* ptr    = s->ptr; 
+   UChar*  block  = s->block;
+   UInt32* ftab   = s->ftab;
+   Int32   nblock = s->nblock;
+   Int32   verb   = s->verbosity;
+   Int32   wfact  = s->workFactor;
+   UInt16* quadrant;
+   Int32   budget;
+   Int32   budgetInit;
+   Int32   i;
+
+   if (nblock < 10000) {
+      fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
+   } else {
+      /* Calculate the location for quadrant, remembering to get
+         the alignment right.  Assumes that &(block[0]) is at least
+         2-byte aligned -- this should be ok since block is really
+         the first section of arr2.
+      */
+      i = nblock+BZ_N_OVERSHOOT;
+      if (i & 1) i++;
+      quadrant = (UInt16*)(&(block[i]));
+
+      /* (wfact-1) / 3 puts the default-factor-30
+         transition point at very roughly the same place as 
+         with v0.1 and v0.9.0.  
+         Not that it particularly matters any more, since the
+         resulting compressed stream is now the same regardless
+         of whether or not we use the main sort or fallback sort.
+      */
+      if (wfact < 1  ) wfact = 1;
+      if (wfact > 100) wfact = 100;
+      budgetInit = nblock * ((wfact-1) / 3);
+      budget = budgetInit;
+
+      mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget );
+      if (verb >= 3) 
+         VPrintf3 ( "      %d work, %d block, ratio %5.2f\n",
+                    budgetInit - budget,
+                    nblock, 
+                    (float)(budgetInit - budget) /
+                    (float)(nblock==0 ? 1 : nblock) ); 
+      if (budget < 0) {
+         if (verb >= 2) 
+            VPrintf0 ( "    too repetitive; using fallback"
+                       " sorting algorithm\n" );
+         fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
+      }
+   }
+
+   s->origPtr = -1;
+   for (i = 0; i < s->nblock; i++)
+      if (ptr[i] == 0)
+         { s->origPtr = i; break; };
+
+   AssertH( s->origPtr != -1, 1003 );
+}
+
+
+/*-------------------------------------------------------------*/
+/*--- end                                       blocksort.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/bz-common.xsl b/bzip2/bz-common.xsl
new file mode 100644 (file)
index 0000000..66fcd6f
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0"?> <!-- -*- sgml -*- -->
+<xsl:stylesheet 
+     xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- we like '1.2 Title' -->
+<xsl:param name="section.autolabel" select="'1'"/> 
+<xsl:param name="section.label.includes.component.label" select="'1'"/>
+
+<!-- Do not put 'Chapter' at the start of eg 'Chapter 1. Doing This' -->
+<xsl:param name="local.l10n.xml" select="document('')"/> 
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"> 
+  <l:l10n language="en"> 
+    <l:context name="title-numbered">
+      <l:template name="chapter" text="%n.&#160;%t"/>
+    </l:context> 
+  </l:l10n>
+</l:i18n>
+
+<!-- don't generate sub-tocs for qanda sets -->
+<xsl:param name="generate.toc">
+set       toc,title
+book      toc,title,figure,table,example,equation
+chapter   toc,title
+section   toc
+sect1     toc
+sect2     toc
+sect3     toc
+sect4     nop
+sect5     nop
+qandaset  toc
+qandadiv  nop
+appendix  toc,title
+article/appendix  nop
+article   toc,title
+preface   toc,title
+reference toc,title
+</xsl:param>
+
+</xsl:stylesheet>
diff --git a/bzip2/bz-fo.xsl b/bzip2/bz-fo.xsl
new file mode 100644 (file)
index 0000000..ba3e301
--- /dev/null
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?> <!-- -*- sgml -*- -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+     xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
+<xsl:import href="bz-common.xsl"/>
+
+<!-- set indent = yes while debugging, then change to NO -->
+<xsl:output method="xml" indent="yes"/>
+
+<!-- ensure only passivetex extensions are on -->
+<xsl:param name="stylesheet.result.type" select="'fo'"/>
+<!-- fo extensions: PDF bookmarks and index terms -->
+<xsl:param name="use.extensions" select="'1'"/>
+<xsl:param name="xep.extensions" select="0"/>      
+<xsl:param name="fop.extensions" select="0"/>     
+<xsl:param name="saxon.extensions" select="0"/>   
+<xsl:param name="passivetex.extensions" select="1"/>
+<xsl:param name="tablecolumns.extension" select="'1'"/>
+
+<!-- ensure we are using single sided -->
+<xsl:param name="double.sided" select="'0'"/> 
+
+<!-- insert cross references to page numbers -->
+<xsl:param name="insert.xref.page.number" select="1"/>
+
+<!-- <?custom-pagebreak?> inserts a page break at this point -->
+<xsl:template match="processing-instruction('custom-pagebreak')">
+  <fo:block break-before='page'/>
+</xsl:template>
+
+<!-- show links in color -->
+<xsl:attribute-set name="xref.properties">
+  <xsl:attribute name="color">blue</xsl:attribute>
+</xsl:attribute-set>
+
+<!-- make pre listings indented a bit + a bg colour -->
+<xsl:template match="programlisting | screen">
+  <fo:block start-indent="0.25in" wrap-option="no-wrap" 
+            white-space-collapse="false" text-align="start" 
+            font-family="monospace" background-color="#f2f2f9"
+            linefeed-treatment="preserve" 
+            xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+<!-- make verbatim output prettier -->
+<xsl:template match="literallayout">
+  <fo:block start-indent="0.25in" wrap-option="no-wrap" 
+            white-space-collapse="false" text-align="start" 
+            font-family="monospace" background-color="#edf7f4"
+            linefeed-treatment="preserve" 
+            space-before="0em" space-after="0em">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- workaround bug in passivetex fo output for itemizedlist -->
+<xsl:template match="itemizedlist/listitem">
+  <xsl:variable name="id">
+  <xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:variable name="itemsymbol">
+    <xsl:call-template name="list.itemsymbol">
+      <xsl:with-param name="node" select="parent::itemizedlist"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="item.contents">
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block>
+        <xsl:choose>
+          <xsl:when test="$itemsymbol='disc'">&#x2022;</xsl:when>
+          <xsl:when test="$itemsymbol='bullet'">&#x2022;</xsl:when>
+          <xsl:otherwise>&#x2022;</xsl:otherwise>
+        </xsl:choose>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:apply-templates/>    <!-- removed extra block wrapper -->
+    </fo:list-item-body>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="parent::*/@spacing = 'compact'">
+      <fo:list-item id="{$id}" 
+          xsl:use-attribute-sets="compact.list.item.spacing">
+        <xsl:copy-of select="$item.contents"/>
+      </fo:list-item>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing">
+        <xsl:copy-of select="$item.contents"/>
+      </fo:list-item>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- workaround bug in passivetex fo output for orderedlist -->
+<xsl:template match="orderedlist/listitem">
+  <xsl:variable name="id">
+  <xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:variable name="item.contents">
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block>
+        <xsl:apply-templates select="." mode="item-number"/>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:apply-templates/>    <!-- removed extra block wrapper -->
+    </fo:list-item-body>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="parent::*/@spacing = 'compact'">
+      <fo:list-item id="{$id}" 
+          xsl:use-attribute-sets="compact.list.item.spacing">
+        <xsl:copy-of select="$item.contents"/>
+      </fo:list-item>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing">
+        <xsl:copy-of select="$item.contents"/>
+      </fo:list-item>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- workaround bug in passivetex fo output for variablelist -->
+<xsl:param name="variablelist.as.blocks" select="1"/>
+<xsl:template match="varlistentry" mode="vl.as.blocks">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/></xsl:variable>
+  <fo:block id="{$id}" xsl:use-attribute-sets="list.item.spacing"  
+      keep-together.within-column="always" 
+      keep-with-next.within-column="always">
+    <xsl:apply-templates select="term"/>
+  </fo:block>
+  <fo:block start-indent="0.5in" end-indent="0in" 
+            space-after.minimum="0.2em" 
+            space-after.optimum="0.4em" 
+            space-after.maximum="0.6em">
+    <fo:block>
+      <xsl:apply-templates select="listitem"/>
+    </fo:block>
+  </fo:block>
+</xsl:template>
+
+
+<!-- workaround bug in footers: force right-align w/two 80|30 cols -->
+<xsl:template name="footer.table">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+  <xsl:choose>
+    <xsl:when test="$pageclass = 'index'">
+      <xsl:attribute name="margin-left">0pt</xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+  <xsl:variable name="candidate">
+    <fo:table table-layout="fixed" width="100%">
+      <fo:table-column column-number="1" column-width="80%"/>
+      <fo:table-column column-number="2" column-width="20%"/>
+      <fo:table-body>
+        <fo:table-row height="14pt">
+          <fo:table-cell text-align="left" display-align="after">
+            <xsl:attribute name="relative-align">baseline</xsl:attribute>
+            <fo:block> 
+              <fo:block> </fo:block><!-- empty cell -->
+            </fo:block>
+          </fo:table-cell>
+          <fo:table-cell text-align="center" display-align="after">
+            <xsl:attribute name="relative-align">baseline</xsl:attribute>
+            <fo:block>
+              <xsl:call-template name="footer.content">
+                <xsl:with-param name="pageclass" select="$pageclass"/>
+                <xsl:with-param name="sequence" select="$sequence"/>
+                <xsl:with-param name="position" select="'center'"/>
+                <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              </xsl:call-template>
+            </fo:block>
+          </fo:table-cell>
+        </fo:table-row>
+      </fo:table-body>
+    </fo:table>
+  </xsl:variable>
+  <!-- Really output a footer? -->
+  <xsl:choose>
+    <xsl:when test="$pageclass='titlepage' and $gentext-key='book'
+                    and $sequence='first'">
+      <!-- no, book titlepages have no footers at all -->
+    </xsl:when>
+    <xsl:when test="$sequence = 'blank' and $footers.on.blank.pages = 0">
+      <!-- no output -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$candidate"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+<!-- fix bug in headers: force right-align w/two 40|60 cols -->
+<xsl:template name="header.table">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+  <xsl:choose>
+    <xsl:when test="$pageclass = 'index'">
+      <xsl:attribute name="margin-left">0pt</xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
+  <xsl:variable name="candidate">
+    <fo:table table-layout="fixed" width="100%">
+      <xsl:call-template name="head.sep.rule">
+        <xsl:with-param name="pageclass" select="$pageclass"/>
+        <xsl:with-param name="sequence" select="$sequence"/>
+        <xsl:with-param name="gentext-key" select="$gentext-key"/>
+      </xsl:call-template>
+      <fo:table-column column-number="1" column-width="40%"/>
+      <fo:table-column column-number="2" column-width="60%"/>
+      <fo:table-body>
+        <fo:table-row height="14pt">
+          <fo:table-cell text-align="left" display-align="before">
+            <xsl:attribute name="relative-align">baseline</xsl:attribute>
+            <fo:block>
+              <fo:block> </fo:block><!-- empty cell -->
+            </fo:block>
+          </fo:table-cell>
+          <fo:table-cell text-align="center" display-align="before">
+            <xsl:attribute name="relative-align">baseline</xsl:attribute>
+            <fo:block>
+              <xsl:call-template name="header.content">
+                <xsl:with-param name="pageclass" select="$pageclass"/>
+                <xsl:with-param name="sequence" select="$sequence"/>
+                <xsl:with-param name="position" select="'center'"/>
+                <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              </xsl:call-template>
+            </fo:block>
+          </fo:table-cell>
+        </fo:table-row>
+      </fo:table-body>
+    </fo:table>
+  </xsl:variable>
+  <!-- Really output a header? -->
+  <xsl:choose>
+    <xsl:when test="$pageclass = 'titlepage' and $gentext-key = 'book'
+                    and $sequence='first'">
+      <!-- no, book titlepages have no headers at all -->
+    </xsl:when>
+    <xsl:when test="$sequence = 'blank' and $headers.on.blank.pages = 0">
+      <!-- no output -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$candidate"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+<!-- Bug-fix for Suse 10 PassiveTex version -->
+<!-- Precompute attribute values 'cos PassiveTex is too stupid: -->
+<xsl:attribute-set name="component.title.properties">
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">
+    <xsl:value-of select="concat($body.font.master, 'pt')"/>
+  </xsl:attribute>
+  <xsl:attribute name="space-before.minimum">
+    <xsl:value-of select="$body.font.master * 0.8"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+  <xsl:attribute name="space-before.maximum">
+    <xsl:value-of select="$body.font.master * 1.2"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+</xsl:attribute-set>
+
+
+</xsl:stylesheet>
diff --git a/bzip2/bz-html.xsl b/bzip2/bz-html.xsl
new file mode 100644 (file)
index 0000000..1785fff
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0"?> <!-- -*- sgml -*- -->
+<!DOCTYPE xsl:stylesheet [ <!ENTITY bz-css SYSTEM "./bzip.css"> ]>
+
+<xsl:stylesheet 
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
+<xsl:import href="bz-common.xsl"/>
+
+<!-- use 8859-1 encoding -->
+<xsl:output method="html" encoding="ISO-8859-1" indent="yes"/>
+
+<!-- we include the css directly when generating one large file -->
+<xsl:template name="user.head.content">  
+  <style type="text/css" media="screen">
+    <xsl:text>&bz-css;</xsl:text>
+  </style>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/bzip2/bzdiff b/bzip2/bzdiff
new file mode 100644 (file)
index 0000000..6fc38f9
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/sh
+# sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh
+
+# Bzcmp/diff wrapped for bzip2, 
+# adapted from zdiff by Philippe Troin <phil@fifi.org> for Debian GNU/Linux.
+
+# Bzcmp and bzdiff are used to invoke the cmp or the  diff  pro-
+# gram  on compressed files.  All options specified are passed
+# directly to cmp or diff.  If only 1 file is specified,  then
+# the  files  compared  are file1 and an uncompressed file1.gz.
+# If two files are specified, then they are  uncompressed  (if
+# necessary) and fed to cmp or diff.  The exit status from cmp
+# or diff is preserved.
+
+PATH="/usr/bin:/bin:$PATH"; export PATH
+prog=`echo $0 | sed 's|.*/||'`
+case "$prog" in
+  *cmp) comp=${CMP-cmp}   ;;
+  *)    comp=${DIFF-diff} ;;
+esac
+
+OPTIONS=
+FILES=
+for ARG
+do
+    case "$ARG" in
+    -*)        OPTIONS="$OPTIONS $ARG";;
+     *)        if test -f "$ARG"; then
+            FILES="$FILES $ARG"
+        else
+            echo "${prog}: $ARG not found or not a regular file"
+           exit 1
+        fi ;;
+    esac
+done
+if test -z "$FILES"; then
+       echo "Usage: $prog [${comp}_options] file [file]"
+       exit 1
+fi
+tmp=`mktemp ${TMPDIR:-/tmp}/bzdiff.XXXXXXXXXX` || {
+      echo 'cannot create a temporary file' >&2
+      exit 1
+}
+set $FILES
+if test $# -eq 1; then
+       FILE=`echo "$1" | sed 's/.bz2$//'`
+       bzip2 -cd "$FILE.bz2" | $comp $OPTIONS - "$FILE"
+       STAT="$?"
+
+elif test $# -eq 2; then
+       case "$1" in
+        *.bz2)
+                case "$2" in
+               *.bz2)
+                       F=`echo "$2" | sed 's|.*/||;s|.bz2$||'`
+                        bzip2 -cdfq "$2" > $tmp
+                        bzip2 -cdfq "$1" | $comp $OPTIONS - $tmp
+                        STAT="$?"
+                       /bin/rm -f $tmp;;
+
+                *)      bzip2 -cdfq "$1" | $comp $OPTIONS - "$2"
+                        STAT="$?";;
+                esac;;
+        *)      case "$2" in
+               *.bz2)
+                        bzip2 -cdfq "$2" | $comp $OPTIONS "$1" -
+                        STAT="$?";;
+                *)      $comp $OPTIONS "$1" "$2"
+                        STAT="$?";;
+                esac;;
+       esac
+        exit "$STAT"
+else
+       echo "Usage: $prog [${comp}_options] file [file]"
+       exit 1
+fi
diff --git a/bzip2/bzdiff.1 b/bzip2/bzdiff.1
new file mode 100644 (file)
index 0000000..adb7a8e
--- /dev/null
@@ -0,0 +1,47 @@
+\"Shamelessly copied from zmore.1 by Philippe Troin <phil@fifi.org>
+\"for Debian GNU/Linux
+.TH BZDIFF 1
+.SH NAME
+bzcmp, bzdiff \- compare bzip2 compressed files
+.SH SYNOPSIS
+.B bzcmp
+[ cmp_options ] file1
+[ file2 ]
+.br
+.B bzdiff
+[ diff_options ] file1
+[ file2 ]
+.SH DESCRIPTION
+.I  Bzcmp
+and 
+.I bzdiff
+are used to invoke the
+.I cmp
+or the
+.I diff
+program on bzip2 compressed files.  All options specified are passed
+directly to
+.I cmp
+or
+.IR diff "."
+If only 1 file is specified, then the files compared are
+.I file1
+and an uncompressed
+.IR file1 ".bz2."
+If two files are specified, then they are uncompressed if necessary and fed to
+.I cmp
+or
+.IR diff "."
+The exit status from 
+.I cmp
+or
+.I diff
+is preserved.
+.SH "SEE ALSO"
+cmp(1), diff(1), bzmore(1), bzless(1), bzgrep(1), bzip2(1)
+.SH BUGS
+Messages from the
+.I cmp
+or
+.I diff
+programs refer to temporary filenames instead of those specified.
diff --git a/bzip2/bzgrep b/bzip2/bzgrep
new file mode 100644 (file)
index 0000000..9a04b83
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+# Bzgrep wrapped for bzip2, 
+# adapted from zgrep by Philippe Troin <phil@fifi.org> for Debian GNU/Linux.
+## zgrep notice:
+## zgrep -- a wrapper around a grep program that decompresses files as needed
+## Adapted from a version sent by Charles Levert <charles@comm.polymtl.ca>
+
+PATH="/usr/bin:$PATH"; export PATH
+
+prog=`echo $0 | sed 's|.*/||'`
+case "$prog" in
+       *egrep) grep=${EGREP-egrep}     ;;
+       *fgrep) grep=${FGREP-fgrep}     ;;
+       *)      grep=${GREP-grep}       ;;
+esac
+pat=""
+while test $# -ne 0; do
+  case "$1" in
+  -e | -f) opt="$opt $1"; shift; pat="$1"
+           if test "$grep" = grep; then  # grep is buggy with -e on SVR4
+             grep=egrep
+           fi;;
+  -A | -B) opt="$opt $1 $2"; shift;;
+  -*)     opt="$opt $1";;
+   *)      if test -z "$pat"; then
+            pat="$1"
+          else
+            break;
+           fi;;
+  esac
+  shift
+done
+
+if test -z "$pat"; then
+  echo "grep through bzip2 files"
+  echo "usage: $prog [grep_options] pattern [files]"
+  exit 1
+fi
+
+list=0
+silent=0
+op=`echo "$opt" | sed -e 's/ //g' -e 's/-//g'`
+case "$op" in
+  *l*) list=1
+esac
+case "$op" in
+  *h*) silent=1
+esac
+
+if test $# -eq 0; then
+  bzip2 -cdfq | $grep $opt "$pat"
+  exit $?
+fi
+
+res=0
+for i do
+  if test -f "$i"; then :; else if test -f "$i.bz2"; then i="$i.bz2"; fi; fi
+  if test $list -eq 1; then
+    bzip2 -cdfq "$i" | $grep $opt "$pat" 2>&1 > /dev/null && echo $i
+    r=$?
+  elif test $# -eq 1 -o $silent -eq 1; then
+    bzip2 -cdfq "$i" | $grep $opt "$pat"
+    r=$?
+  else
+    j=${i//\\/\\\\}
+    j=${j//|/\\|}
+    j=${j//&/\\&}
+    j=`printf "%s" "$j" | tr '\n' ' '`
+    bzip2 -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${j}:|"
+    r=$?
+  fi
+  test "$r" -ne 0 && res="$r"
+done
+exit $res
diff --git a/bzip2/bzgrep.1 b/bzip2/bzgrep.1
new file mode 100644 (file)
index 0000000..930af8c
--- /dev/null
@@ -0,0 +1,56 @@
+\"Shamelessly copied from zmore.1 by Philippe Troin <phil@fifi.org>
+\"for Debian GNU/Linux
+.TH BZGREP 1
+.SH NAME
+bzgrep, bzfgrep, bzegrep \- search possibly bzip2 compressed files for a regular expression
+.SH SYNOPSIS
+.B bzgrep
+[ grep_options ]
+.BI  [\ -e\ ] " pattern"
+.IR filename ".\|.\|."
+.br
+.B bzegrep
+[ egrep_options ]
+.BI  [\ -e\ ] " pattern"
+.IR filename ".\|.\|."
+.br
+.B bzfgrep
+[ fgrep_options ]
+.BI  [\ -e\ ] " pattern"
+.IR filename ".\|.\|."
+.SH DESCRIPTION
+.IR  Bzgrep
+is used to invoke the
+.I grep
+on bzip2-compressed files. All options specified are passed directly to
+.I grep.
+If no file is specified, then the standard input is decompressed
+if necessary and fed to grep.
+Otherwise the given files are uncompressed if necessary and fed to
+.I grep.
+.PP
+If
+.I bzgrep
+is invoked as
+.I bzegrep
+or
+.I bzfgrep
+then
+.I egrep
+or
+.I fgrep
+is used instead of
+.I grep.
+If the GREP environment variable is set,
+.I bzgrep
+uses it as the
+.I grep
+program to be invoked. For example:
+
+    for sh:  GREP=fgrep  bzgrep string files
+    for csh: (setenv GREP fgrep; bzgrep string files)
+.SH AUTHOR
+Charles Levert (charles@comm.polymtl.ca). Adapted to bzip2 by Philippe
+Troin <phil@fifi.org> for Debian GNU/Linux.
+.SH "SEE ALSO"
+grep(1), egrep(1), fgrep(1), bzdiff(1), bzmore(1), bzless(1), bzip2(1)
diff --git a/bzip2/bzip.css b/bzip2/bzip.css
new file mode 100644 (file)
index 0000000..43193d8
--- /dev/null
@@ -0,0 +1,74 @@
+/* Colours:
+#74240f  dark brown      h1, h2, h3, h4
+#336699  medium blue     links
+#339999  turquoise       link hover colour
+#202020  almost black    general text
+#761596  purple          md5sum text
+#626262  dark gray       pre border
+#eeeeee  very light gray pre background
+#f2f2f9  very light blue nav table background
+#3366cc  medium blue     nav table border
+*/
+
+a, a:link, a:visited, a:active { color: #336699; }
+a:hover { color: #339999; }
+
+body { font: 80%/126% sans-serif; }
+h1, h2, h3, h4 { color: #74240f; }
+
+dt { color: #336699; font-weight: bold }
+dd { 
+ margin-left: 1.5em; 
+ padding-bottom: 0.8em;
+}
+
+/* -- ruler -- */
+div.hr_blue { 
+  height:  3px; 
+  background:#ffffff url("/images/hr_blue.png") repeat-x; }
+div.hr_blue hr { display:none; }
+
+/* release styles */
+#release p { margin-top: 0.4em; }
+#release .md5sum { color: #761596; }
+
+
+/* ------ styles for docs|manuals|howto ------ */
+/* -- lists -- */
+ul  { 
+ margin:     0px 4px 16px 16px;
+ padding:    0px;
+ list-style: url("/images/li-blue.png"); 
+}
+ul li { 
+ margin-bottom: 10px;
+}
+ul ul  { 
+ list-style-type:  none; 
+ list-style-image: none; 
+ margin-left:      0px; 
+}
+
+/* header / footer nav tables */
+table.nav {
+ border:     solid 1px #3366cc;
+ background: #f2f2f9;
+ background-color: #f2f2f9;
+ margin-bottom: 0.5em;
+}
+/* don't have underlined links in chunked nav menus */
+table.nav a { text-decoration: none; }
+table.nav a:hover { text-decoration: underline; }
+table.nav td { font-size: 85%; }
+
+code, tt, pre { font-size: 120%; }
+code, tt { color: #761596; }
+
+div.literallayout, pre.programlisting, pre.screen {
+ color:      #000000;
+ padding:    0.5em;
+ background: #eeeeee;
+ border:     1px solid #626262;
+ background-color: #eeeeee;
+ margin: 4px 0px 4px 0px; 
+}
diff --git a/bzip2/bzip2.1 b/bzip2/bzip2.1
new file mode 100644 (file)
index 0000000..ce3a78e
--- /dev/null
@@ -0,0 +1,454 @@
+.PU
+.TH bzip2 1
+.SH NAME
+bzip2, bunzip2 \- a block-sorting file compressor, v1.0.6
+.br
+bzcat \- decompresses files to stdout
+.br
+bzip2recover \- recovers data from damaged bzip2 files
+
+.SH SYNOPSIS
+.ll +8
+.B bzip2
+.RB [ " \-cdfkqstvzVL123456789 " ]
+[
+.I "filenames \&..."
+]
+.ll -8
+.br
+.B bunzip2
+.RB [ " \-fkvsVL " ]
+[ 
+.I "filenames \&..."
+]
+.br
+.B bzcat
+.RB [ " \-s " ]
+[ 
+.I "filenames \&..."
+]
+.br
+.B bzip2recover
+.I "filename"
+
+.SH DESCRIPTION
+.I bzip2
+compresses files using the Burrows-Wheeler block sorting
+text compression algorithm, and Huffman coding.  Compression is
+generally considerably better than that achieved by more conventional
+LZ77/LZ78-based compressors, and approaches the performance of the PPM
+family of statistical compressors.
+
+The command-line options are deliberately very similar to 
+those of 
+.I GNU gzip, 
+but they are not identical.
+
+.I bzip2
+expects a list of file names to accompany the
+command-line flags.  Each file is replaced by a compressed version of
+itself, with the name "original_name.bz2".  
+Each compressed file
+has the same modification date, permissions, and, when possible,
+ownership as the corresponding original, so that these properties can
+be correctly restored at decompression time.  File name handling is
+naive in the sense that there is no mechanism for preserving original
+file names, permissions, ownerships or dates in filesystems which lack
+these concepts, or have serious file name length restrictions, such as
+MS-DOS.
+
+.I bzip2
+and
+.I bunzip2
+will by default not overwrite existing
+files.  If you want this to happen, specify the \-f flag.
+
+If no file names are specified,
+.I bzip2
+compresses from standard
+input to standard output.  In this case,
+.I bzip2
+will decline to
+write compressed output to a terminal, as this would be entirely
+incomprehensible and therefore pointless.
+
+.I bunzip2
+(or
+.I bzip2 \-d) 
+decompresses all
+specified files.  Files which were not created by 
+.I bzip2
+will be detected and ignored, and a warning issued.  
+.I bzip2
+attempts to guess the filename for the decompressed file 
+from that of the compressed file as follows:
+
+       filename.bz2    becomes   filename
+       filename.bz     becomes   filename
+       filename.tbz2   becomes   filename.tar
+       filename.tbz    becomes   filename.tar
+       anyothername    becomes   anyothername.out
+
+If the file does not end in one of the recognised endings, 
+.I .bz2, 
+.I .bz, 
+.I .tbz2
+or
+.I .tbz, 
+.I bzip2 
+complains that it cannot
+guess the name of the original file, and uses the original name
+with
+.I .out
+appended.
+
+As with compression, supplying no
+filenames causes decompression from 
+standard input to standard output.
+
+.I bunzip2 
+will correctly decompress a file which is the
+concatenation of two or more compressed files.  The result is the
+concatenation of the corresponding uncompressed files.  Integrity
+testing (\-t) 
+of concatenated 
+compressed files is also supported.
+
+You can also compress or decompress files to the standard output by
+giving the \-c flag.  Multiple files may be compressed and
+decompressed like this.  The resulting outputs are fed sequentially to
+stdout.  Compression of multiple files 
+in this manner generates a stream
+containing multiple compressed file representations.  Such a stream
+can be decompressed correctly only by
+.I bzip2 
+version 0.9.0 or
+later.  Earlier versions of
+.I bzip2
+will stop after decompressing
+the first file in the stream.
+
+.I bzcat
+(or
+.I bzip2 -dc) 
+decompresses all specified files to
+the standard output.
+
+.I bzip2
+will read arguments from the environment variables
+.I BZIP2
+and
+.I BZIP,
+in that order, and will process them
+before any arguments read from the command line.  This gives a 
+convenient way to supply default arguments.
+
+Compression is always performed, even if the compressed 
+file is slightly
+larger than the original.  Files of less than about one hundred bytes
+tend to get larger, since the compression mechanism has a constant
+overhead in the region of 50 bytes.  Random data (including the output
+of most file compressors) is coded at about 8.05 bits per byte, giving
+an expansion of around 0.5%.
+
+As a self-check for your protection, 
+.I 
+bzip2
+uses 32-bit CRCs to
+make sure that the decompressed version of a file is identical to the
+original.  This guards against corruption of the compressed data, and
+against undetected bugs in
+.I bzip2
+(hopefully very unlikely).  The
+chances of data corruption going undetected is microscopic, about one
+chance in four billion for each file processed.  Be aware, though, that
+the check occurs upon decompression, so it can only tell you that
+something is wrong.  It can't help you 
+recover the original uncompressed
+data.  You can use 
+.I bzip2recover
+to try to recover data from
+damaged files.
+
+Return values: 0 for a normal exit, 1 for environmental problems (file
+not found, invalid flags, I/O errors, &c), 2 to indicate a corrupt
+compressed file, 3 for an internal consistency error (eg, bug) which
+caused
+.I bzip2
+to panic.
+
+.SH OPTIONS
+.TP
+.B \-c --stdout
+Compress or decompress to standard output.
+.TP
+.B \-d --decompress
+Force decompression.  
+.I bzip2, 
+.I bunzip2 
+and
+.I bzcat 
+are
+really the same program, and the decision about what actions to take is
+done on the basis of which name is used.  This flag overrides that
+mechanism, and forces 
+.I bzip2
+to decompress.
+.TP
+.B \-z --compress
+The complement to \-d: forces compression, regardless of the
+invocation name.
+.TP
+.B \-t --test
+Check integrity of the specified file(s), but don't decompress them.
+This really performs a trial decompression and throws away the result.
+.TP
+.B \-f --force
+Force overwrite of output files.  Normally,
+.I bzip2 
+will not overwrite
+existing output files.  Also forces 
+.I bzip2 
+to break hard links
+to files, which it otherwise wouldn't do.
+
+bzip2 normally declines to decompress files which don't have the
+correct magic header bytes.  If forced (-f), however, it will pass
+such files through unmodified.  This is how GNU gzip behaves.
+.TP
+.B \-k --keep
+Keep (don't delete) input files during compression
+or decompression.
+.TP
+.B \-s --small
+Reduce memory usage, for compression, decompression and testing.  Files
+are decompressed and tested using a modified algorithm which only
+requires 2.5 bytes per block byte.  This means any file can be
+decompressed in 2300k of memory, albeit at about half the normal speed.
+
+During compression, \-s selects a block size of 200k, which limits
+memory use to around the same figure, at the expense of your compression
+ratio.  In short, if your machine is low on memory (8 megabytes or
+less), use \-s for everything.  See MEMORY MANAGEMENT below.
+.TP
+.B \-q --quiet
+Suppress non-essential warning messages.  Messages pertaining to
+I/O errors and other critical events will not be suppressed.
+.TP
+.B \-v --verbose
+Verbose mode -- show the compression ratio for each file processed.
+Further \-v's increase the verbosity level, spewing out lots of
+information which is primarily of interest for diagnostic purposes.
+.TP
+.B \-L --license -V --version
+Display the software version, license terms and conditions.
+.TP
+.B \-1 (or \-\-fast) to \-9 (or \-\-best)
+Set the block size to 100 k, 200 k ..  900 k when compressing.  Has no
+effect when decompressing.  See MEMORY MANAGEMENT below.
+The \-\-fast and \-\-best aliases are primarily for GNU gzip 
+compatibility.  In particular, \-\-fast doesn't make things
+significantly faster.  
+And \-\-best merely selects the default behaviour.
+.TP
+.B \--
+Treats all subsequent arguments as file names, even if they start
+with a dash.  This is so you can handle files with names beginning
+with a dash, for example: bzip2 \-- \-myfilename.
+.TP
+.B \--repetitive-fast --repetitive-best
+These flags are redundant in versions 0.9.5 and above.  They provided
+some coarse control over the behaviour of the sorting algorithm in
+earlier versions, which was sometimes useful.  0.9.5 and above have an
+improved algorithm which renders these flags irrelevant.
+
+.SH MEMORY MANAGEMENT
+.I bzip2 
+compresses large files in blocks.  The block size affects
+both the compression ratio achieved, and the amount of memory needed for
+compression and decompression.  The flags \-1 through \-9
+specify the block size to be 100,000 bytes through 900,000 bytes (the
+default) respectively.  At decompression time, the block size used for
+compression is read from the header of the compressed file, and
+.I bunzip2
+then allocates itself just enough memory to decompress
+the file.  Since block sizes are stored in compressed files, it follows
+that the flags \-1 to \-9 are irrelevant to and so ignored
+during decompression.
+
+Compression and decompression requirements, 
+in bytes, can be estimated as:
+
+       Compression:   400k + ( 8 x block size )
+
+       Decompression: 100k + ( 4 x block size ), or
+                      100k + ( 2.5 x block size )
+
+Larger block sizes give rapidly diminishing marginal returns.  Most of
+the compression comes from the first two or three hundred k of block
+size, a fact worth bearing in mind when using
+.I bzip2
+on small machines.
+It is also important to appreciate that the decompression memory
+requirement is set at compression time by the choice of block size.
+
+For files compressed with the default 900k block size,
+.I bunzip2
+will require about 3700 kbytes to decompress.  To support decompression
+of any file on a 4 megabyte machine, 
+.I bunzip2
+has an option to
+decompress using approximately half this amount of memory, about 2300
+kbytes.  Decompression speed is also halved, so you should use this
+option only where necessary.  The relevant flag is -s.
+
+In general, try and use the largest block size memory constraints allow,
+since that maximises the compression achieved.  Compression and
+decompression speed are virtually unaffected by block size.
+
+Another significant point applies to files which fit in a single block
+-- that means most files you'd encounter using a large block size.  The
+amount of real memory touched is proportional to the size of the file,
+since the file is smaller than a block.  For example, compressing a file
+20,000 bytes long with the flag -9 will cause the compressor to
+allocate around 7600k of memory, but only touch 400k + 20000 * 8 = 560
+kbytes of it.  Similarly, the decompressor will allocate 3700k but only
+touch 100k + 20000 * 4 = 180 kbytes.
+
+Here is a table which summarises the maximum memory usage for different
+block sizes.  Also recorded is the total compressed size for 14 files of
+the Calgary Text Compression Corpus totalling 3,141,622 bytes.  This
+column gives some feel for how compression varies with block size.
+These figures tend to understate the advantage of larger block sizes for
+larger files, since the Corpus is dominated by smaller files.
+
+           Compress   Decompress   Decompress   Corpus
+    Flag     usage      usage       -s usage     Size
+
+     -1      1200k       500k         350k      914704
+     -2      2000k       900k         600k      877703
+     -3      2800k      1300k         850k      860338
+     -4      3600k      1700k        1100k      846899
+     -5      4400k      2100k        1350k      845160
+     -6      5200k      2500k        1600k      838626
+     -7      6100k      2900k        1850k      834096
+     -8      6800k      3300k        2100k      828642
+     -9      7600k      3700k        2350k      828642
+
+.SH RECOVERING DATA FROM DAMAGED FILES
+.I bzip2
+compresses files in blocks, usually 900kbytes long.  Each
+block is handled independently.  If a media or transmission error causes
+a multi-block .bz2
+file to become damaged, it may be possible to
+recover data from the undamaged blocks in the file.
+
+The compressed representation of each block is delimited by a 48-bit
+pattern, which makes it possible to find the block boundaries with
+reasonable certainty.  Each block also carries its own 32-bit CRC, so
+damaged blocks can be distinguished from undamaged ones.
+
+.I bzip2recover
+is a simple program whose purpose is to search for
+blocks in .bz2 files, and write each block out into its own .bz2 
+file.  You can then use
+.I bzip2 
+\-t
+to test the
+integrity of the resulting files, and decompress those which are
+undamaged.
+
+.I bzip2recover
+takes a single argument, the name of the damaged file, 
+and writes a number of files "rec00001file.bz2",
+"rec00002file.bz2", etc, containing the  extracted  blocks.
+The  output  filenames  are  designed  so  that the use of
+wildcards in subsequent processing -- for example,  
+"bzip2 -dc  rec*file.bz2 > recovered_data" -- processes the files in
+the correct order.
+
+.I bzip2recover
+should be of most use dealing with large .bz2
+files,  as  these will contain many blocks.  It is clearly
+futile to use it on damaged single-block  files,  since  a
+damaged  block  cannot  be recovered.  If you wish to minimise 
+any potential data loss through media  or  transmission errors, 
+you might consider compressing with a smaller
+block size.
+
+.SH PERFORMANCE NOTES
+The sorting phase of compression gathers together similar strings in the
+file.  Because of this, files containing very long runs of repeated
+symbols, like "aabaabaabaab ..."  (repeated several hundred times) may
+compress more slowly than normal.  Versions 0.9.5 and above fare much
+better than previous versions in this respect.  The ratio between
+worst-case and average-case compression time is in the region of 10:1.
+For previous versions, this figure was more like 100:1.  You can use the
+\-vvvv option to monitor progress in great detail, if you want.
+
+Decompression speed is unaffected by these phenomena.
+
+.I bzip2
+usually allocates several megabytes of memory to operate
+in, and then charges all over it in a fairly random fashion.  This means
+that performance, both for compressing and decompressing, is largely
+determined by the speed at which your machine can service cache misses.
+Because of this, small changes to the code to reduce the miss rate have
+been observed to give disproportionately large performance improvements.
+I imagine 
+.I bzip2
+will perform best on machines with very large caches.
+
+.SH CAVEATS
+I/O error messages are not as helpful as they could be.
+.I bzip2
+tries hard to detect I/O errors and exit cleanly, but the details of
+what the problem is sometimes seem rather misleading.
+
+This manual page pertains to version 1.0.6 of
+.I bzip2.  
+Compressed data created by this version is entirely forwards and
+backwards compatible with the previous public releases, versions
+0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 and above, but with the following
+exception: 0.9.0 and above can correctly decompress multiple
+concatenated compressed files.  0.1pl2 cannot do this; it will stop
+after decompressing just the first file in the stream.
+
+.I bzip2recover
+versions prior to 1.0.2 used 32-bit integers to represent
+bit positions in compressed files, so they could not handle compressed
+files more than 512 megabytes long.  Versions 1.0.2 and above use
+64-bit ints on some platforms which support them (GNU supported
+targets, and Windows).  To establish whether or not bzip2recover was
+built with such a limitation, run it without arguments.  In any event
+you can build yourself an unlimited version if you can recompile it
+with MaybeUInt64 set to be an unsigned 64-bit integer.
+
+
+
+.SH AUTHOR
+Julian Seward, jsewardbzip.org.
+
+http://www.bzip.org
+
+The ideas embodied in
+.I bzip2
+are due to (at least) the following
+people: Michael Burrows and David Wheeler (for the block sorting
+transformation), David Wheeler (again, for the Huffman coder), Peter
+Fenwick (for the structured coding model in the original
+.I bzip,
+and many refinements), and Alistair Moffat, Radford Neal and Ian Witten
+(for the arithmetic coder in the original
+.I bzip).  
+I am much
+indebted for their help, support and advice.  See the manual in the
+source distribution for pointers to sources of documentation.  Christian
+von Roques encouraged me to look for faster sorting algorithms, so as to
+speed up compression.  Bela Lubkin encouraged me to improve the
+worst-case compression performance.  
+Donna Robinson XMLised the documentation.
+The bz* scripts are derived from those of GNU gzip.
+Many people sent patches, helped
+with portability problems, lent machines, gave advice and were generally
+helpful.
diff --git a/bzip2/bzip2.1.preformatted b/bzip2/bzip2.1.preformatted
new file mode 100644 (file)
index 0000000..63c33be
--- /dev/null
@@ -0,0 +1,399 @@
+bzip2(1)                                                 bzip2(1)
+
+
+
+N\bNA\bAM\bME\bE
+       bzip2, bunzip2 − a block‐sorting file compressor, v1.0.6
+       bzcat − decompresses files to stdout
+       bzip2recover − recovers data from damaged bzip2 files
+
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       b\bbz\bzi\bip\bp2\b2 [ −\b−c\bcd\bdf\bfk\bkq\bqs\bst\btv\bvz\bzV\bVL\bL1\b12\b23\b34\b45\b56\b67\b78\b89\b9 ] [ _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\bs _\b._\b._\b.  ]
+       b\bbu\bun\bnz\bzi\bip\bp2\b2 [ −\b−f\bfk\bkv\bvs\bsV\bVL\bL ] [ _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\bs _\b._\b._\b.  ]
+       b\bbz\bzc\bca\bat\bt [ −\b−s\bs ] [ _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\bs _\b._\b._\b.  ]
+       b\bbz\bzi\bip\bp2\b2r\bre\bec\bco\bov\bve\ber\br _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
+
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bb_\bz_\bi_\bp_\b2  compresses  files  using  the Burrows‐Wheeler block
+       sorting text compression algorithm,  and  Huffman  coding.
+       Compression  is  generally  considerably  better than that
+       achieved by more conventional LZ77/LZ78‐based compressors,
+       and  approaches  the performance of the PPM family of sta­
+       tistical compressors.
+
+       The command‐line options are deliberately very similar  to
+       those of _\bG_\bN_\bU _\bg_\bz_\bi_\bp_\b, but they are not identical.
+
+       _\bb_\bz_\bi_\bp_\b2  expects  a list of file names to accompany the com­
+       mand‐line flags.  Each file is replaced  by  a  compressed
+       version  of  itself,  with  the  name "original_name.bz2".
+       Each compressed file has the same modification date,  per­
+       missions, and, when possible, ownership as the correspond­
+       ing original, so that these properties  can  be  correctly
+       restored  at  decompression  time.   File name handling is
+       naive in the sense that there is no mechanism for preserv­
+       ing  original file names, permissions, ownerships or dates
+       in filesystems which lack these concepts, or have  serious
+       file name length restrictions, such as MS‐DOS.
+
+       _\bb_\bz_\bi_\bp_\b2  and  _\bb_\bu_\bn_\bz_\bi_\bp_\b2 will by default not overwrite existing
+       files.  If you want this to happen, specify the −f flag.
+
+       If no file names  are  specified,  _\bb_\bz_\bi_\bp_\b2  compresses  from
+       standard  input  to  standard output.  In this case, _\bb_\bz_\bi_\bp_\b2
+       will decline to write compressed output to a terminal,  as
+       this  would  be  entirely  incomprehensible  and therefore
+       pointless.
+
+       _\bb_\bu_\bn_\bz_\bi_\bp_\b2 (or _\bb_\bz_\bi_\bp_\b2 _\b−_\bd_\b) decompresses  all  specified  files.
+       Files which were not created by _\bb_\bz_\bi_\bp_\b2 will be detected and
+       ignored, and a warning issued.  _\bb_\bz_\bi_\bp_\b2  attempts  to  guess
+       the  filename  for  the decompressed file from that of the
+       compressed file as follows:
+
+              filename.bz2    becomes   filename
+              filename.bz     becomes   filename
+              filename.tbz2   becomes   filename.tar
+              filename.tbz    becomes   filename.tar
+              anyothername    becomes   anyothername.out
+
+       If the file does not end in one of the recognised endings,
+       _\b._\bb_\bz_\b2_\b,  _\b._\bb_\bz_\b,  _\b._\bt_\bb_\bz_\b2 or _\b._\bt_\bb_\bz_\b, _\bb_\bz_\bi_\bp_\b2 complains that it cannot
+       guess the name of the original file, and uses the original
+       name with _\b._\bo_\bu_\bt appended.
+
+       As  with compression, supplying no filenames causes decom­
+       pression from standard input to standard output.
+
+       _\bb_\bu_\bn_\bz_\bi_\bp_\b2 will correctly decompress a file which is the con­
+       catenation of two or more compressed files.  The result is
+       the concatenation of the corresponding uncompressed files.
+       Integrity testing (−t) of concatenated compressed files is
+       also supported.
+
+       You can also compress or decompress files to the  standard
+       output  by giving the −c flag.  Multiple files may be com­
+       pressed and decompressed like this.  The resulting outputs
+       are  fed  sequentially to stdout.  Compression of multiple
+       files in this manner generates a stream containing  multi­
+       ple compressed file representations.  Such a stream can be
+       decompressed correctly only  by  _\bb_\bz_\bi_\bp_\b2  version  0.9.0  or
+       later.   Earlier  versions of _\bb_\bz_\bi_\bp_\b2 will stop after decom­
+       pressing the first file in the stream.
+
+       _\bb_\bz_\bc_\ba_\bt (or _\bb_\bz_\bi_\bp_\b2 _\b‐_\bd_\bc_\b) decompresses all specified  files  to
+       the standard output.
+
+       _\bb_\bz_\bi_\bp_\b2  will  read arguments from the environment variables
+       _\bB_\bZ_\bI_\bP_\b2 and _\bB_\bZ_\bI_\bP_\b, in  that  order,  and  will  process  them
+       before  any  arguments  read  from the command line.  This
+       gives a convenient way to supply default arguments.
+
+       Compression is always performed, even  if  the  compressed
+       file  is slightly larger than the original.  Files of less
+       than about one hundred bytes tend to get larger, since the
+       compression  mechanism  has  a  constant  overhead  in the
+       region of 50 bytes.  Random data (including the output  of
+       most  file  compressors)  is  coded at about 8.05 bits per
+       byte, giving an expansion of around 0.5%.
+
+       As a self‐check for your  protection,  _\bb_\bz_\bi_\bp_\b2  uses  32‐bit
+       CRCs  to make sure that the decompressed version of a file
+       is identical to the original.  This guards against corrup­
+       tion  of  the compressed data, and against undetected bugs
+       in _\bb_\bz_\bi_\bp_\b2 (hopefully very unlikely).  The chances  of  data
+       corruption  going  undetected  is  microscopic,  about one
+       chance in four billion for each file processed.  Be aware,
+       though,  that  the  check occurs upon decompression, so it
+       can only tell you that something is wrong.  It can’t  help
+       you  recover  the original uncompressed data.  You can use
+       _\bb_\bz_\bi_\bp_\b2_\br_\be_\bc_\bo_\bv_\be_\br to try to recover data from damaged files.
+
+       Return values: 0 for a normal exit,  1  for  environmental
+       problems  (file not found, invalid flags, I/O errors, &c),
+       2 to indicate a corrupt compressed file, 3 for an internal
+       consistency error (eg, bug) which caused _\bb_\bz_\bi_\bp_\b2 to panic.
+
+
+O\bOP\bPT\bTI\bIO\bON\bNS\bS
+       −\b−c\bc ‐\b‐‐\b‐s\bst\btd\bdo\bou\but\bt
+              Compress or decompress to standard output.
+
+       −\b−d\bd ‐\b‐‐\b‐d\bde\bec\bco\bom\bmp\bpr\bre\bes\bss\bs
+              Force  decompression.  _\bb_\bz_\bi_\bp_\b2_\b, _\bb_\bu_\bn_\bz_\bi_\bp_\b2 and _\bb_\bz_\bc_\ba_\bt are
+              really the same program,  and  the  decision  about
+              what  actions to take is done on the basis of which
+              name is used.  This flag overrides that  mechanism,
+              and forces _\bb_\bz_\bi_\bp_\b2 to decompress.
+
+       −\b−z\bz ‐\b‐‐\b‐c\bco\bom\bmp\bpr\bre\bes\bss\bs
+              The   complement   to   −d:   forces   compression,
+              regardless of the invocation name.
+
+       −\b−t\bt ‐\b‐‐\b‐t\bte\bes\bst\bt
+              Check integrity of the specified file(s), but don’t
+              decompress  them.   This  really  performs  a trial
+              decompression and throws away the result.
+
+       −\b−f\bf ‐\b‐‐\b‐f\bfo\bor\brc\bce\be
+              Force overwrite of output files.   Normally,  _\bb_\bz_\bi_\bp_\b2
+              will  not  overwrite  existing  output files.  Also
+              forces _\bb_\bz_\bi_\bp_\b2 to break hard links to files, which it
+              otherwise wouldn’t do.
+
+              bzip2  normally  declines to decompress files which
+              don’t have the  correct  magic  header  bytes.   If
+              forced  (‐f),  however,  it  will  pass  such files
+              through unmodified.  This is how GNU gzip  behaves.
+
+       −\b−k\bk ‐\b‐‐\b‐k\bke\bee\bep\bp
+              Keep  (don’t delete) input files during compression
+              or decompression.
+
+       −\b−s\bs ‐\b‐‐\b‐s\bsm\bma\bal\bll\bl
+              Reduce memory usage, for compression, decompression
+              and  testing.   Files  are  decompressed and tested
+              using a modified algorithm which only requires  2.5
+              bytes  per  block byte.  This means any file can be
+              decompressed in 2300k of memory,  albeit  at  about
+              half the normal speed.
+
+              During  compression,  −s  selects  a  block size of
+              200k, which limits memory use to  around  the  same
+              figure,  at  the expense of your compression ratio.
+              In short, if your  machine  is  low  on  memory  (8
+              megabytes  or  less),  use  −s for everything.  See
+              MEMORY MANAGEMENT below.
+
+       −\b−q\bq ‐\b‐‐\b‐q\bqu\bui\bie\bet\bt
+              Suppress non‐essential warning messages.   Messages
+              pertaining  to I/O errors and other critical events
+              will not be suppressed.
+
+       −\b−v\bv ‐\b‐‐\b‐v\bve\ber\brb\bbo\bos\bse\be
+              Verbose mode ‐‐ show the compression ratio for each
+              file  processed.   Further  −v’s  increase the ver­
+              bosity level, spewing out lots of information which
+              is primarily of interest for diagnostic purposes.
+
+       −\b−L\bL ‐\b‐‐\b‐l\bli\bic\bce\ben\bns\bse\be ‐\b‐V\bV ‐\b‐‐\b‐v\bve\ber\brs\bsi\bio\bon\bn
+              Display  the  software  version,  license terms and
+              conditions.
+
+       −\b−1\b1 (\b(o\bor\br −\b−−\b−f\bfa\bas\bst\bt)\b) t\bto\bo −\b−9\b9 (\b(o\bor\br −\b−−\b−b\bbe\bes\bst\bt)\b)
+              Set the block size to 100 k, 200 k ..  900  k  when
+              compressing.   Has  no  effect  when decompressing.
+              See MEMORY MANAGEMENT below.  The −−fast and −−best
+              aliases  are  primarily for GNU gzip compatibility.
+              In particular, −−fast doesn’t make things  signifi­
+              cantly  faster.   And  −−best  merely  selects  the
+              default behaviour.
+
+       −\b−‐\b‐     Treats all subsequent arguments as file names, even
+              if they start with a dash.  This is so you can han­
+              dle files with names beginning  with  a  dash,  for
+              example: bzip2 −‐ −myfilename.
+
+       −\b−‐\b‐r\bre\bep\bpe\bet\bti\bit\bti\biv\bve\be‐\b‐f\bfa\bas\bst\bt ‐\b‐‐\b‐r\bre\bep\bpe\bet\bti\bit\bti\biv\bve\be‐\b‐b\bbe\bes\bst\bt
+              These  flags  are  redundant  in versions 0.9.5 and
+              above.  They provided some coarse control over  the
+              behaviour  of the sorting algorithm in earlier ver­
+              sions, which was sometimes useful.  0.9.5 and above
+              have  an  improved  algorithm  which  renders these
+              flags irrelevant.
+
+
+M\bME\bEM\bMO\bOR\bRY\bY M\bMA\bAN\bNA\bAG\bGE\bEM\bME\bEN\bNT\bT
+       _\bb_\bz_\bi_\bp_\b2 compresses large files in blocks.   The  block  size
+       affects  both  the  compression  ratio  achieved,  and the
+       amount of memory needed for compression and decompression.
+       The  flags  −1  through  −9  specify  the block size to be
+       100,000 bytes through 900,000 bytes (the default)  respec­
+       tively.   At  decompression  time, the block size used for
+       compression is read from  the  header  of  the  compressed
+       file, and _\bb_\bu_\bn_\bz_\bi_\bp_\b2 then allocates itself just enough memory
+       to decompress the file.  Since block sizes are  stored  in
+       compressed  files,  it follows that the flags −1 to −9 are
+       irrelevant to and so ignored during decompression.
+
+       Compression and decompression requirements, in bytes,  can
+       be estimated as:
+
+              Compression:   400k + ( 8 x block size )
+
+              Decompression: 100k + ( 4 x block size ), or
+                             100k + ( 2.5 x block size )
+
+       Larger  block  sizes  give  rapidly  diminishing  marginal
+       returns.  Most of the compression comes from the first two
+       or  three hundred k of block size, a fact worth bearing in
+       mind when using _\bb_\bz_\bi_\bp_\b2  on  small  machines.   It  is  also
+       important  to  appreciate  that  the  decompression memory
+       requirement is set at compression time by  the  choice  of
+       block size.
+
+       For  files  compressed  with  the default 900k block size,
+       _\bb_\bu_\bn_\bz_\bi_\bp_\b2 will require about 3700 kbytes to decompress.   To
+       support decompression of any file on a 4 megabyte machine,
+       _\bb_\bu_\bn_\bz_\bi_\bp_\b2 has an option to  decompress  using  approximately
+       half this amount of memory, about 2300 kbytes.  Decompres­
+       sion speed is also halved, so you should use  this  option
+       only where necessary.  The relevant flag is ‐s.
+
+       In general, try and use the largest block size memory con­
+       straints  allow,  since  that  maximises  the  compression
+       achieved.   Compression and decompression speed are virtu­
+       ally unaffected by block size.
+
+       Another significant point applies to files which fit in  a
+       single  block  ‐‐  that  means  most files you’d encounter
+       using a large block  size.   The  amount  of  real  memory
+       touched is proportional to the size of the file, since the
+       file is smaller than a block.  For example, compressing  a
+       file  20,000  bytes  long  with the flag ‐9 will cause the
+       compressor to allocate around 7600k of  memory,  but  only
+       touch 400k + 20000 * 8 = 560 kbytes of it.  Similarly, the
+       decompressor will allocate 3700k but  only  touch  100k  +
+       20000 * 4 = 180 kbytes.
+
+       Here  is a table which summarises the maximum memory usage
+       for different block sizes.  Also  recorded  is  the  total
+       compressed  size for 14 files of the Calgary Text Compres­
+       sion Corpus totalling 3,141,622 bytes.  This column  gives
+       some  feel  for  how  compression  varies with block size.
+       These figures tend to understate the advantage  of  larger
+       block  sizes  for  larger files, since the Corpus is domi­
+       nated by smaller files.
+
+                  Compress   Decompress   Decompress   Corpus
+           Flag     usage      usage       ‐s usage     Size
+
+            ‐1      1200k       500k         350k      914704
+            ‐2      2000k       900k         600k      877703
+            ‐3      2800k      1300k         850k      860338
+            ‐4      3600k      1700k        1100k      846899
+            ‐5      4400k      2100k        1350k      845160
+            ‐6      5200k      2500k        1600k      838626
+            ‐7      6100k      2900k        1850k      834096
+            ‐8      6800k      3300k        2100k      828642
+            ‐9      7600k      3700k        2350k      828642
+
+
+R\bRE\bEC\bCO\bOV\bVE\bER\bRI\bIN\bNG\bG D\bDA\bAT\bTA\bA F\bFR\bRO\bOM\bM D\bDA\bAM\bMA\bAG\bGE\bED\bD F\bFI\bIL\bLE\bES\bS
+       _\bb_\bz_\bi_\bp_\b2 compresses files in blocks, usually 900kbytes  long.
+       Each block is handled independently.  If a media or trans­
+       mission error causes a multi‐block  .bz2  file  to  become
+       damaged,  it  may  be  possible  to  recover data from the
+       undamaged blocks in the file.
+
+       The compressed representation of each block  is  delimited
+       by  a  48‐bit pattern, which makes it possible to find the
+       block boundaries with reasonable  certainty.   Each  block
+       also  carries its own 32‐bit CRC, so damaged blocks can be
+       distinguished from undamaged ones.
+
+       _\bb_\bz_\bi_\bp_\b2_\br_\be_\bc_\bo_\bv_\be_\br is a  simple  program  whose  purpose  is  to
+       search  for blocks in .bz2 files, and write each block out
+       into its own .bz2 file.  You can then use _\bb_\bz_\bi_\bp_\b2 −t to test
+       the integrity of the resulting files, and decompress those
+       which are undamaged.
+
+       _\bb_\bz_\bi_\bp_\b2_\br_\be_\bc_\bo_\bv_\be_\br takes a single argument, the name of the dam­
+       aged    file,    and    writes    a    number   of   files
+       "rec00001file.bz2",  "rec00002file.bz2",  etc,  containing
+       the   extracted   blocks.   The   output   filenames   are
+       designed  so  that the use of wildcards in subsequent pro­
+       cessing  ‐‐ for example, "bzip2 ‐dc  rec*file.bz2 > recov­
+       ered_data" ‐‐ processes the files in the correct order.
+
+       _\bb_\bz_\bi_\bp_\b2_\br_\be_\bc_\bo_\bv_\be_\br should be of most use dealing with large .bz2
+       files,  as  these will contain many blocks.  It is clearly
+       futile to use it on damaged single‐block  files,  since  a
+       damaged  block  cannot  be recovered.  If you wish to min­
+       imise any potential data loss through media  or  transmis­
+       sion errors, you might consider compressing with a smaller
+       block size.
+
+
+P\bPE\bER\bRF\bFO\bOR\bRM\bMA\bAN\bNC\bCE\bE N\bNO\bOT\bTE\bES\bS
+       The sorting phase of compression gathers together  similar
+       strings  in  the  file.  Because of this, files containing
+       very long runs of  repeated  symbols,  like  "aabaabaabaab
+       ..."   (repeated  several hundred times) may compress more
+       slowly than normal.  Versions 0.9.5 and  above  fare  much
+       better  than previous versions in this respect.  The ratio
+       between worst‐case and average‐case compression time is in
+       the  region  of  10:1.  For previous versions, this figure
+       was more like 100:1.  You can use the −vvvv option to mon­
+       itor progress in great detail, if you want.
+
+       Decompression speed is unaffected by these phenomena.
+
+       _\bb_\bz_\bi_\bp_\b2  usually  allocates  several  megabytes of memory to
+       operate in, and then charges all over it in a fairly  ran­
+       dom  fashion.   This means that performance, both for com­
+       pressing and decompressing, is largely determined  by  the
+       speed  at  which  your  machine  can service cache misses.
+       Because of this, small changes to the code to  reduce  the
+       miss  rate  have  been observed to give disproportionately
+       large performance improvements.  I imagine _\bb_\bz_\bi_\bp_\b2 will per­
+       form best on machines with very large caches.
+
+
+C\bCA\bAV\bVE\bEA\bAT\bTS\bS
+       I/O  error  messages  are not as helpful as they could be.
+       _\bb_\bz_\bi_\bp_\b2 tries hard to detect I/O errors  and  exit  cleanly,
+       but  the  details  of  what  the problem is sometimes seem
+       rather misleading.
+
+       This manual page pertains to version 1.0.6 of _\bb_\bz_\bi_\bp_\b2_\b.  Com­
+       pressed  data created by this version is entirely forwards
+       and  backwards  compatible  with   the   previous   public
+       releases,  versions  0.1pl2,  0.9.0,  0.9.5, 1.0.0, 1.0.1, 
+       1.0.2 and above, but with the  following  exception: 0.9.0
+       and above can  correctly decompress  multiple concatenated
+       compressed files.  0.1pl2  cannot do this;  it  will  stop 
+       after  decompressing just the first file in the stream.
+
+       _\bb_\bz_\bi_\bp_\b2_\br_\be_\bc_\bo_\bv_\be_\br  versions prior to 1.0.2 used 32‐bit integers
+       to represent bit positions in compressed  files,  so  they
+       could  not handle compressed files more than 512 megabytes
+       long.  Versions 1.0.2 and above use 64‐bit  ints  on  some
+       platforms  which  support them (GNU supported targets, and
+       Windows).  To establish whether or  not  bzip2recover  was
+       built  with  such  a limitation, run it without arguments.
+       In any event you can build yourself an  unlimited  version
+       if  you  can  recompile  it  with MaybeUInt64 set to be an
+       unsigned 64‐bit integer.
+
+
+
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+       Julian Seward, jsewardbzip.org.
+
+       http://www.bzip.org
+
+       The ideas embodied in _\bb_\bz_\bi_\bp_\b2 are due to (at least) the fol­
+       lowing  people: Michael Burrows and David Wheeler (for the
+       block sorting transformation), David Wheeler  (again,  for
+       the Huffman coder), Peter Fenwick (for the structured cod­
+       ing model in the original _\bb_\bz_\bi_\bp_\b, and many refinements), and
+       Alistair  Moffat,  Radford  Neal  and  Ian Witten (for the
+       arithmetic  coder  in  the  original  _\bb_\bz_\bi_\bp_\b)_\b.   I  am  much
+       indebted for their help, support and advice.  See the man­
+       ual in the source distribution for pointers to sources  of
+       documentation.  Christian von Roques encouraged me to look
+       for faster sorting algorithms, so as to speed up  compres­
+       sion.  Bela Lubkin encouraged me to improve the worst‐case
+       compression performance.  Donna Robinson XMLised the docu­
+       mentation.   The bz* scripts are derived from those of GNU
+       gzip.  Many people sent patches, helped  with  portability
+       problems,  lent  machines,  gave advice and were generally
+       helpful.
+
+
+
+                                                         bzip2(1)
diff --git a/bzip2/bzip2.c b/bzip2/bzip2.c
new file mode 100644 (file)
index 0000000..35c5e37
--- /dev/null
@@ -0,0 +1,2254 @@
+
+/*-----------------------------------------------------------*/
+/*--- A block-sorting, lossless compressor        bzip2.c ---*/
+/*-----------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+/* Place a 1 beside your platform, and 0 elsewhere.
+   Generic 32-bit Unix.
+   Also works on 64-bit Unix boxes.
+   This is the default.
+*/
+#define BZ_UNIX      1
+
+#if defined(__VMS)
+#undef  BZ_UNIX
+#define BZ_VMS       1
+#define VERSION_SUFFIX "a"
+/* Accomodation for /NAMES = AS_IS with old header files. */
+#define cma$tis_errno_get_addr CMA$TIS_ERRNO_GET_ADDR
+#endif /* defined(__VMS) */
+
+/*--
+  Win32, as seen by Jacob Navia's excellent
+  port of (Chris Fraser & David Hanson)'s excellent
+  lcc compiler.  Or with MS Visual C.
+  This is selected automatically if compiled by a compiler which
+  defines _WIN32, not including the Cygwin GCC.
+--*/
+#define BZ_LCCWIN32  0
+
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#undef  BZ_LCCWIN32
+#define BZ_LCCWIN32 1
+#undef  BZ_UNIX
+#define BZ_UNIX 0
+#endif
+
+
+#if BZ_VMS
+#   define FOPEN_INPUT( name) \
+     fopen( name, "rb", "ctx=stm", "acc", acc_cb, &fopr_id)
+#else /* BZ_VMS */
+#   define FOPEN_INPUT( name) fopen( name, "rb")
+#endif /* BZ_VMS */
+
+#ifndef VERSION_SUFFIX
+#   define VERSION_SUFFIX ""
+#endif /* ndef VERSION_SUFFIX */
+
+
+/*---------------------------------------------*/
+/*--
+  Some stuff for all platforms.
+--*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <signal.h>
+#include <math.h>
+#include <errno.h>
+#include <ctype.h>
+#include "bzlib.h"
+
+#define ERROR_IF_EOF(i)       { if ((i) == EOF)  ioError(); }
+#define ERROR_IF_NOT_ZERO(i)  { if ((i) != 0)    ioError(); }
+#define ERROR_IF_MINUS_ONE(i) { if ((i) == (-1)) ioError(); }
+
+
+/*---------------------------------------------*/
+/*--
+   Platform-specific stuff.
+--*/
+
+#if BZ_UNIX
+#   define HAVE_UTIME 1
+#   include <fcntl.h>
+#   include <sys/types.h>
+#   include <utime.h>
+#   include <unistd.h>
+#   include <sys/stat.h>
+#   include <sys/times.h>
+
+#   define PATH_SEP    '/'
+#   define MY_LSTAT    lstat
+#   define MY_STAT     stat
+#   define MY_S_ISREG  S_ISREG
+#   define MY_S_ISDIR  S_ISDIR
+
+#   define APPEND_FILESPEC(root, name) \
+      root=snocString((root), (name))
+
+#   define APPEND_FLAG(root, name) \
+      root=snocString((root), (name))
+
+#   define SET_BINARY_MODE(fd) /**/
+
+#   ifdef __GNUC__
+#      define NORETURN __attribute__ ((noreturn))
+#   else
+#      define NORETURN /**/
+#   endif
+
+#   ifdef __DJGPP__
+#     include <io.h>
+#     include <fcntl.h>
+#     undef MY_LSTAT
+#     undef MY_STAT
+#     define MY_LSTAT stat
+#     define MY_STAT stat
+#     undef SET_BINARY_MODE
+#     define SET_BINARY_MODE(fd)                        \
+        do {                                            \
+           int retVal = setmode ( fileno ( fd ),        \
+                                  O_BINARY );           \
+           ERROR_IF_MINUS_ONE ( retVal );               \
+        } while ( 0 )
+#   endif
+
+#   ifdef __CYGWIN__
+#     include <io.h>
+#     include <fcntl.h>
+#     undef SET_BINARY_MODE
+#     define SET_BINARY_MODE(fd)                        \
+        do {                                            \
+           int retVal = setmode ( fileno ( fd ),        \
+                                  O_BINARY );           \
+           ERROR_IF_MINUS_ONE ( retVal );               \
+        } while ( 0 )
+#   endif
+#endif /* BZ_UNIX */
+
+
+
+#if BZ_VMS
+#   if __CRTL_VER >= 70300000
+#      define HAVE_UTIME 1
+#   endif /* __CRTL_VER >= 70300000 */
+
+#   include <fcntl.h>
+#   include <sys/types.h>
+#   ifdef HAVE_UTIME
+#      include <utime.h>
+#   endif /* def HAVE_UTIME */
+#   include <unistd.h>
+#   include <unixio.h>          /* Needed for old VMS versions. */
+#   include <sys/stat.h>
+#if 0
+#   include <sys/times.h>
+#endif /* 0 */
+
+#   include "vms_misc.h"
+
+#   define PATH_SEP    ']'
+#   if defined(__VAX) || __CRTL_VER < 70301000
+#      define MY_LSTAT    stat
+#   else /* defined(__VAX) || __CRTL_VER < 70301000 */
+#      define MY_LSTAT    lstat
+#   endif /* defined(__VAX) || __CRTL_VER < 70301000 [else] */
+#   define MY_STAT     stat
+
+#   ifndef __S_IFMT
+#      define __S_IFMT   0170000        /* type of file */
+#   endif /* ndef __S_IFMT */
+#   ifndef __S_IFDIR
+#      define __S_IFDIR  0040000        /* directory */
+#   endif /* ndef __S_IFDIR */
+#   ifndef __S_IFREG
+#      define __S_IFREG  0100000        /* regular */
+#   endif /* ndef __S_IFREG */
+
+#   ifndef S_IRUSR
+#      define S_IRUSR 0000400
+#   endif /* ndef S_IRUSR */            /* read permission: owner */
+#   ifndef S_IWUSR
+#      define S_IWUSR 0000200
+#   endif /* ndef S_IWUSR */            /* write permission: owner */
+#   ifndef S_ISDIR
+#      define S_ISDIR(m)  (((m)& __S_IFMT) == __S_IFDIR)
+#   endif /* ndef S_ISDIR */
+#   ifndef S_ISREG
+#      define S_ISREG(m)  (((m)& __S_IFMT) == __S_IFREG)
+#   endif /* ndef S_ISREG */
+#   define MY_S_ISREG  S_ISREG
+#   define MY_S_ISDIR  S_ISDIR
+
+#   define APPEND_FILESPEC( root, name) \
+      root = append_vms_filespec( (root), (name))
+
+#   define APPEND_FLAG(root, name) \
+      root=snocString((root), (name))
+
+#   define SET_BINARY_MODE(fd) /**/
+
+#   ifdef __GNUC__
+#      define NORETURN __attribute__ ((noreturn))
+#   else
+#      define NORETURN /**/
+#   endif
+#endif /* BZ_VMS */
+
+
+
+#if BZ_LCCWIN32
+#   define HAVE_UTIME 1
+#   include <io.h>
+#   include <fcntl.h>
+#   include <sys\stat.h>
+
+#   define NORETURN       /**/
+#   define PATH_SEP       '\\'
+#   define MY_LSTAT       _stat
+#   define MY_STAT        _stat
+#   define MY_S_ISREG(x)  ((x) & _S_IFREG)
+#   define MY_S_ISDIR(x)  ((x) & _S_IFDIR)
+
+#   define APPEND_FLAG(root, name) \
+      root=snocString((root), (name))
+
+#   define APPEND_FILESPEC(root, name) \
+      root = snocString ((root), (name))
+
+#   define SET_BINARY_MODE(fd)                        \
+      do {                                            \
+         int retVal = setmode ( fileno ( fd ),        \
+                                O_BINARY );           \
+         ERROR_IF_MINUS_ONE ( retVal );               \
+      } while ( 0 )
+
+#endif /* BZ_LCCWIN32 */
+
+
+/*---------------------------------------------*/
+/*--
+  Some more stuff for all platforms :-)
+--*/
+
+typedef char            Char;
+typedef unsigned char   Bool;
+typedef unsigned char   UChar;
+typedef int             Int32;
+typedef unsigned int    UInt32;
+typedef short           Int16;
+typedef unsigned short  UInt16;
+                                       
+#define True  ((Bool)1)
+#define False ((Bool)0)
+
+/*--
+  IntNative is your platform's `native' int size.
+  Only here to avoid probs with 64-bit platforms.
+--*/
+typedef int IntNative;
+
+
+/*---------------------------------------------------*/
+/*--- Misc (file handling) data decls             ---*/
+/*---------------------------------------------------*/
+
+Int32   verbosity;
+Bool    keepInputFiles, smallMode, deleteOutputOnInterrupt;
+Bool    forceOverwrite, testFailsExist, unzFailsExist, noisy;
+Int32   numFileNames, numFilesProcessed, blockSize100k;
+Int32   exitValue;
+
+/*-- source modes; F==file, I==stdin, O==stdout --*/
+#define SM_I2O           1
+#define SM_F2O           2
+#define SM_F2F           3
+
+/*-- operation modes --*/
+#define OM_Z             1
+#define OM_UNZ           2
+#define OM_TEST          3
+
+Int32   opMode;
+Int32   srcMode;
+
+#define FILE_NAME_LEN 1034
+
+Int32   longestFileName;
+Char    inName [FILE_NAME_LEN];
+Char    outName[FILE_NAME_LEN];
+Char    tmpName[FILE_NAME_LEN];
+Char    *progName;
+Char    progNameReally[FILE_NAME_LEN];
+FILE    *outputHandleJustInCase;
+Int32   workFactor;
+
+static void    panic                 ( const Char* ) NORETURN;
+static void    ioError               ( void )        NORETURN;
+static void    outOfMemory           ( void )        NORETURN;
+static void    configError           ( void )        NORETURN;
+static void    crcError              ( void )        NORETURN;
+static void    cleanUpAndFail        ( Int32 )       NORETURN;
+static void    compressedStreamEOF   ( void )        NORETURN;
+
+static void    copyFileName ( Char*, Char* );
+static void*   myMalloc     ( Int32 );
+static void    applySavedFileAttrToOutputFile ( IntNative fd );
+
+
+
+/*---------------------------------------------------*/
+/*--- An implementation of 64-bit ints.  Sigh.    ---*/
+/*--- Roll on widespread deployment of ANSI C9X ! ---*/
+/*---------------------------------------------------*/
+
+typedef
+   struct { UChar b[8]; } 
+   UInt64;
+
+
+static
+void uInt64_from_UInt32s ( UInt64* n, UInt32 lo32, UInt32 hi32 )
+{
+   n->b[7] = (UChar)((hi32 >> 24) & 0xFF);
+   n->b[6] = (UChar)((hi32 >> 16) & 0xFF);
+   n->b[5] = (UChar)((hi32 >> 8)  & 0xFF);
+   n->b[4] = (UChar) (hi32        & 0xFF);
+   n->b[3] = (UChar)((lo32 >> 24) & 0xFF);
+   n->b[2] = (UChar)((lo32 >> 16) & 0xFF);
+   n->b[1] = (UChar)((lo32 >> 8)  & 0xFF);
+   n->b[0] = (UChar) (lo32        & 0xFF);
+}
+
+
+static
+double uInt64_to_double ( UInt64* n )
+{
+   Int32  i;
+   double base = 1.0;
+   double sum  = 0.0;
+   for (i = 0; i < 8; i++) {
+      sum  += base * (double)(n->b[i]);
+      base *= 256.0;
+   }
+   return sum;
+}
+
+
+static
+Bool uInt64_isZero ( UInt64* n )
+{
+   Int32 i;
+   for (i = 0; i < 8; i++)
+      if (n->b[i] != 0) return 0;
+   return 1;
+}
+
+
+/* Divide *n by 10, and return the remainder.  */
+static 
+Int32 uInt64_qrm10 ( UInt64* n )
+{
+   UInt32 rem, tmp;
+   Int32  i;
+   rem = 0;
+   for (i = 7; i >= 0; i--) {
+      tmp = rem * 256 + n->b[i];
+      n->b[i] = tmp / 10;
+      rem = tmp % 10;
+   }
+   return rem;
+}
+
+
+/* ... and the Whole Entire Point of all this UInt64 stuff is
+   so that we can supply the following function.
+*/
+static
+void uInt64_toAscii ( char* outbuf, UInt64* n )
+{
+   Int32  i, q;
+   UChar  buf[32];
+   Int32  nBuf   = 0;
+   UInt64 n_copy = *n;
+   do {
+      q = uInt64_qrm10 ( &n_copy );
+      buf[nBuf] = q + '0';
+      nBuf++;
+   } while (!uInt64_isZero(&n_copy));
+   outbuf[nBuf] = 0;
+   for (i = 0; i < nBuf; i++) 
+      outbuf[i] = buf[nBuf-i-1];
+}
+
+
+/*---------------------------------------------------*/
+/*--- Processing of complete files and streams    ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------*/
+static 
+Bool myfeof ( FILE* f )
+{
+   Int32 c = fgetc ( f );
+   if (c == EOF) return True;
+   ungetc ( c, f );
+   return False;
+}
+
+
+/*---------------------------------------------*/
+static 
+void compressStream ( FILE *stream, FILE *zStream )
+{
+   BZFILE* bzf = NULL;
+   UChar   ibuf[5000];
+   Int32   nIbuf;
+   UInt32  nbytes_in_lo32, nbytes_in_hi32;
+   UInt32  nbytes_out_lo32, nbytes_out_hi32;
+   Int32   bzerr, bzerr_dummy, ret;
+
+   SET_BINARY_MODE(stream);
+   SET_BINARY_MODE(zStream);
+
+   if (ferror(stream)) goto errhandler_io;
+   if (ferror(zStream)) goto errhandler_io;
+
+   bzf = BZ2_bzWriteOpen ( &bzerr, zStream, 
+                           blockSize100k, verbosity, workFactor );   
+   if (bzerr != BZ_OK) goto errhandler;
+
+   if (verbosity >= 2) fprintf ( stderr, "\n" );
+
+   while (True) {
+
+      if (myfeof(stream)) break;
+      nIbuf = fread ( ibuf, sizeof(UChar), 5000, stream );
+      if (ferror(stream)) goto errhandler_io;
+      if (nIbuf > 0) BZ2_bzWrite ( &bzerr, bzf, (void*)ibuf, nIbuf );
+      if (bzerr != BZ_OK) goto errhandler;
+
+   }
+
+   BZ2_bzWriteClose64 ( &bzerr, bzf, 0, 
+                        &nbytes_in_lo32, &nbytes_in_hi32,
+                        &nbytes_out_lo32, &nbytes_out_hi32 );
+   if (bzerr != BZ_OK) goto errhandler;
+
+   if (ferror(zStream)) goto errhandler_io;
+   ret = fflush ( zStream );
+   if (ret == EOF) goto errhandler_io;
+   if (zStream != stdout) {
+      Int32 fd = fileno ( zStream );
+      if (fd < 0) goto errhandler_io;
+      applySavedFileAttrToOutputFile ( fd );
+      ret = fclose ( zStream );
+      outputHandleJustInCase = NULL;
+      if (ret == EOF) goto errhandler_io;
+   }
+   outputHandleJustInCase = NULL;
+   if (ferror(stream)) goto errhandler_io;
+   ret = fclose ( stream );
+   if (ret == EOF) goto errhandler_io;
+
+   if (verbosity >= 1) {
+      if (nbytes_in_lo32 == 0 && nbytes_in_hi32 == 0) {
+        fprintf ( stderr, " no data compressed.\n");
+      } else {
+        Char   buf_nin[32], buf_nout[32];
+        UInt64 nbytes_in,   nbytes_out;
+        double nbytes_in_d, nbytes_out_d;
+        uInt64_from_UInt32s ( &nbytes_in, 
+                              nbytes_in_lo32, nbytes_in_hi32 );
+        uInt64_from_UInt32s ( &nbytes_out, 
+                              nbytes_out_lo32, nbytes_out_hi32 );
+        nbytes_in_d  = uInt64_to_double ( &nbytes_in );
+        nbytes_out_d = uInt64_to_double ( &nbytes_out );
+        uInt64_toAscii ( buf_nin, &nbytes_in );
+        uInt64_toAscii ( buf_nout, &nbytes_out );
+        fprintf ( stderr, "%6.3f:1, %6.3f bits/byte, "
+                  "%5.2f%% saved, %s in, %s out.\n",
+                  nbytes_in_d / nbytes_out_d,
+                  (8.0 * nbytes_out_d) / nbytes_in_d,
+                  100.0 * (1.0 - nbytes_out_d / nbytes_in_d),
+                  buf_nin,
+                  buf_nout
+                );
+      }
+   }
+
+   return;
+
+   errhandler:
+   BZ2_bzWriteClose64 ( &bzerr_dummy, bzf, 1, 
+                        &nbytes_in_lo32, &nbytes_in_hi32,
+                        &nbytes_out_lo32, &nbytes_out_hi32 );
+   switch (bzerr) {
+      case BZ_CONFIG_ERROR:
+         configError(); break;
+      case BZ_MEM_ERROR:
+         outOfMemory (); break;
+      case BZ_IO_ERROR:
+         errhandler_io:
+         ioError(); break;
+      default:
+         panic ( "compress:unexpected error" );
+   }
+
+   panic ( "compress:end" );
+   /*notreached*/
+}
+
+
+
+/*---------------------------------------------*/
+static 
+Bool uncompressStream ( FILE *zStream, FILE *stream )
+{
+   BZFILE* bzf = NULL;
+   Int32   bzerr, bzerr_dummy, ret, nread, streamNo, i;
+   UChar   obuf[5000];
+   UChar   unused[BZ_MAX_UNUSED];
+   Int32   nUnused;
+   void*   unusedTmpV;
+   UChar*  unusedTmp;
+
+   nUnused = 0;
+   streamNo = 0;
+
+   SET_BINARY_MODE(stream);
+   SET_BINARY_MODE(zStream);
+
+   if (ferror(stream)) goto errhandler_io;
+   if (ferror(zStream)) goto errhandler_io;
+
+   while (True) {
+
+      bzf = BZ2_bzReadOpen ( 
+               &bzerr, zStream, verbosity, 
+               (int)smallMode, unused, nUnused
+            );
+      if (bzf == NULL || bzerr != BZ_OK) goto errhandler;
+      streamNo++;
+
+      while (bzerr == BZ_OK) {
+         nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 );
+         if (bzerr == BZ_DATA_ERROR_MAGIC) goto trycat;
+         if ((bzerr == BZ_OK || bzerr == BZ_STREAM_END) && nread > 0)
+            fwrite ( obuf, sizeof(UChar), nread, stream );
+         if (ferror(stream)) goto errhandler_io;
+      }
+      if (bzerr != BZ_STREAM_END) goto errhandler;
+
+      BZ2_bzReadGetUnused ( &bzerr, bzf, &unusedTmpV, &nUnused );
+      if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" );
+
+      unusedTmp = (UChar*)unusedTmpV;
+      for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i];
+
+      BZ2_bzReadClose ( &bzerr, bzf );
+      if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" );
+
+      if (nUnused == 0 && myfeof(zStream)) break;
+   }
+
+   closeok:
+   if (ferror(zStream)) goto errhandler_io;
+   if (stream != stdout) {
+      Int32 fd = fileno ( stream );
+      if (fd < 0) goto errhandler_io;
+      applySavedFileAttrToOutputFile ( fd );
+   }
+   ret = fclose ( zStream );
+   if (ret == EOF) goto errhandler_io;
+
+   if (ferror(stream)) goto errhandler_io;
+   ret = fflush ( stream );
+   if (ret != 0) goto errhandler_io;
+   if (stream != stdout) {
+      ret = fclose ( stream );
+      outputHandleJustInCase = NULL;
+      if (ret == EOF) goto errhandler_io;
+   }
+   outputHandleJustInCase = NULL;
+   if (verbosity >= 2) fprintf ( stderr, "\n    " );
+   return True;
+
+   trycat: 
+   if (forceOverwrite) {
+      rewind(zStream);
+      while (True) {
+        if (myfeof(zStream)) break;
+        nread = fread ( obuf, sizeof(UChar), 5000, zStream );
+        if (ferror(zStream)) goto errhandler_io;
+        if (nread > 0) fwrite ( obuf, sizeof(UChar), nread, stream );
+        if (ferror(stream)) goto errhandler_io;
+      }
+      goto closeok;
+   }
+  
+   errhandler:
+   BZ2_bzReadClose ( &bzerr_dummy, bzf );
+   switch (bzerr) {
+      case BZ_CONFIG_ERROR:
+         configError(); break;
+      case BZ_IO_ERROR:
+         errhandler_io:
+         ioError(); break;
+      case BZ_DATA_ERROR:
+         crcError();
+      case BZ_MEM_ERROR:
+         outOfMemory();
+      case BZ_UNEXPECTED_EOF:
+         compressedStreamEOF();
+      case BZ_DATA_ERROR_MAGIC:
+         if (zStream != stdin) fclose(zStream);
+         if (stream != stdout) fclose(stream);
+         if (streamNo == 1) {
+            return False;
+         } else {
+            if (noisy)
+            fprintf ( stderr, 
+                      "\n%s: %s: trailing garbage after EOF ignored\n",
+                      progName, inName );
+            return True;       
+         }
+      default:
+         panic ( "decompress:unexpected error" );
+   }
+
+   panic ( "decompress:end" );
+   return True; /*notreached*/
+}
+
+
+/*---------------------------------------------*/
+static 
+Bool testStream ( FILE *zStream )
+{
+   BZFILE* bzf = NULL;
+   Int32   bzerr, bzerr_dummy, ret, nread, streamNo, i;
+   UChar   obuf[5000];
+   UChar   unused[BZ_MAX_UNUSED];
+   Int32   nUnused;
+   void*   unusedTmpV;
+   UChar*  unusedTmp;
+
+   nUnused = 0;
+   streamNo = 0;
+
+   SET_BINARY_MODE(zStream);
+   if (ferror(zStream)) goto errhandler_io;
+
+   while (True) {
+
+      bzf = BZ2_bzReadOpen ( 
+               &bzerr, zStream, verbosity, 
+               (int)smallMode, unused, nUnused
+            );
+      if (bzf == NULL || bzerr != BZ_OK) goto errhandler;
+      streamNo++;
+
+      while (bzerr == BZ_OK) {
+         nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 );
+         if (bzerr == BZ_DATA_ERROR_MAGIC) goto errhandler;
+      }
+      if (bzerr != BZ_STREAM_END) goto errhandler;
+
+      BZ2_bzReadGetUnused ( &bzerr, bzf, &unusedTmpV, &nUnused );
+      if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" );
+
+      unusedTmp = (UChar*)unusedTmpV;
+      for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i];
+
+      BZ2_bzReadClose ( &bzerr, bzf );
+      if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" );
+      if (nUnused == 0 && myfeof(zStream)) break;
+
+   }
+
+   if (ferror(zStream)) goto errhandler_io;
+   ret = fclose ( zStream );
+   if (ret == EOF) goto errhandler_io;
+
+   if (verbosity >= 2) fprintf ( stderr, "\n    " );
+   return True;
+
+   errhandler:
+   BZ2_bzReadClose ( &bzerr_dummy, bzf );
+   if (verbosity == 0) 
+      fprintf ( stderr, "%s: %s: ", progName, inName );
+   switch (bzerr) {
+      case BZ_CONFIG_ERROR:
+         configError(); break;
+      case BZ_IO_ERROR:
+         errhandler_io:
+         ioError(); break;
+      case BZ_DATA_ERROR:
+         fprintf ( stderr,
+                   "data integrity (CRC) error in data\n" );
+         return False;
+      case BZ_MEM_ERROR:
+         outOfMemory();
+      case BZ_UNEXPECTED_EOF:
+         fprintf ( stderr,
+                   "file ends unexpectedly\n" );
+         return False;
+      case BZ_DATA_ERROR_MAGIC:
+         if (zStream != stdin) fclose(zStream);
+         if (streamNo == 1) {
+          fprintf ( stderr, 
+                    "bad magic number (file not created by bzip2)\n" );
+            return False;
+         } else {
+            if (noisy)
+            fprintf ( stderr, 
+                      "trailing garbage after EOF ignored\n" );
+            return True;       
+         }
+      default:
+         panic ( "test:unexpected error" );
+   }
+
+   panic ( "test:end" );
+   return True; /*notreached*/
+}
+
+
+/*---------------------------------------------------*/
+/*--- Error [non-] handling grunge                ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------*/
+static
+void setExit ( Int32 v )
+{
+   if (v > exitValue) exitValue = v;
+}
+
+
+/*---------------------------------------------*/
+static 
+void cadvise ( void )
+{
+   if (noisy)
+   fprintf (
+      stderr,
+      "\nIt is possible that the compressed file(s) have become corrupted.\n"
+        "You can use the -tvv option to test integrity of such files.\n\n"
+        "You can use the `bzip2recover' program to attempt to recover\n"
+        "data from undamaged sections of corrupted files.\n\n"
+    );
+}
+
+
+/*---------------------------------------------*/
+static 
+void showFileNames ( void )
+{
+   if (noisy)
+   fprintf (
+      stderr,
+      "\tInput file = %s, output file = %s\n",
+      inName, outName 
+   );
+}
+
+
+/*---------------------------------------------*/
+static 
+void cleanUpAndFail ( Int32 ec )
+{
+   IntNative      retVal;
+   struct MY_STAT statBuf;
+
+   if ( srcMode == SM_F2F 
+        && opMode != OM_TEST
+        && deleteOutputOnInterrupt ) {
+
+      /* Check whether input file still exists.  Delete output file
+         only if input exists to avoid loss of data.  Joerg Prante, 5
+         January 2002.  (JRS 06-Jan-2002: other changes in 1.0.2 mean
+         this is less likely to happen.  But to be ultra-paranoid, we
+         do the check anyway.)  */
+      retVal = MY_STAT ( inName, &statBuf );
+      if (retVal == 0) {
+         if (noisy)
+            fprintf ( stderr, 
+                      "%s: Deleting output file %s, if it exists.\n",
+                      progName, outName );
+         if (outputHandleJustInCase != NULL)
+            fclose ( outputHandleJustInCase );
+         retVal = remove ( outName );
+         if (retVal != 0)
+            fprintf ( stderr,
+                      "%s: WARNING: deletion of output file "
+                      "(apparently) failed.\n",
+                      progName );
+      } else {
+         fprintf ( stderr,
+                   "%s: WARNING: deletion of output file suppressed\n",
+                    progName );
+         fprintf ( stderr,
+                   "%s:    since input file no longer exists.  Output file\n",
+                   progName );
+         fprintf ( stderr,
+                   "%s:    `%s' may be incomplete.\n",
+                   progName, outName );
+         fprintf ( stderr, 
+                   "%s:    I suggest doing an integrity test (bzip2 -tv)"
+                   " of it.\n",
+                   progName );
+      }
+   }
+
+   if (noisy && numFileNames > 0 && numFilesProcessed < numFileNames) {
+      fprintf ( stderr, 
+                "%s: WARNING: some files have not been processed:\n"
+                "%s:    %d specified on command line, %d not processed yet.\n\n",
+                progName, progName,
+                numFileNames, numFileNames - numFilesProcessed );
+   }
+   setExit(ec);
+   exit(exitValue);
+}
+
+
+/*---------------------------------------------*/
+static 
+void panic ( const Char* s )
+{
+   fprintf ( stderr,
+             "\n%s: PANIC -- internal consistency error:\n"
+             "\t%s\n"
+             "\tThis is a BUG.  Please report it to me at:\n"
+             "\tjseward@bzip.org\n",
+             progName, s );
+   showFileNames();
+   cleanUpAndFail( 3 );
+}
+
+
+/*---------------------------------------------*/
+static 
+void crcError ( void )
+{
+   fprintf ( stderr,
+             "\n%s: Data integrity error when decompressing.\n",
+             progName );
+   showFileNames();
+   cadvise();
+   cleanUpAndFail( 2 );
+}
+
+
+/*---------------------------------------------*/
+static 
+void compressedStreamEOF ( void )
+{
+  if (noisy) {
+    fprintf ( stderr,
+             "\n%s: Compressed file ends unexpectedly;\n\t"
+             "perhaps it is corrupted?  *Possible* reason follows.\n",
+             progName );
+    perror ( progName );
+    showFileNames();
+    cadvise();
+  }
+  cleanUpAndFail( 2 );
+}
+
+
+/*---------------------------------------------*/
+static 
+void ioError ( void )
+{
+   fprintf ( stderr,
+             "\n%s: I/O or other error, bailing out.  "
+             "Possible reason follows.\n",
+             progName );
+   perror ( progName );
+   showFileNames();
+   cleanUpAndFail( 1 );
+}
+
+
+/*---------------------------------------------*/
+static 
+void mySignalCatcher ( IntNative n )
+{
+   fprintf ( stderr,
+             "\n%s: Control-C or similar caught, quitting.\n",
+             progName );
+   cleanUpAndFail(1);
+}
+
+
+/*---------------------------------------------*/
+static 
+void mySIGSEGVorSIGBUScatcher ( IntNative n )
+{
+   if (opMode == OM_Z)
+      fprintf ( 
+      stderr,
+      "\n%s: Caught a SIGSEGV or SIGBUS whilst compressing.\n"
+      "\n"
+      "   Possible causes are (most likely first):\n"
+      "   (1) This computer has unreliable memory or cache hardware\n"
+      "       (a surprisingly common problem; try a different machine.)\n"
+      "   (2) A bug in the compiler used to create this executable\n"
+      "       (unlikely, if you didn't compile bzip2 yourself.)\n"
+      "   (3) A real bug in bzip2 -- I hope this should never be the case.\n"
+      "   The user's manual, Section 4.3, has more info on (1) and (2).\n"
+      "   \n"
+      "   If you suspect this is a bug in bzip2, or are unsure about (1)\n"
+      "   or (2), feel free to report it to me at: jseward@bzip.org.\n"
+      "   Section 4.3 of the user's manual describes the info a useful\n"
+      "   bug report should have.  If the manual is available on your\n"
+      "   system, please try and read it before mailing me.  If you don't\n"
+      "   have the manual or can't be bothered to read it, mail me anyway.\n"
+      "\n",
+      progName );
+      else
+      fprintf ( 
+      stderr,
+      "\n%s: Caught a SIGSEGV or SIGBUS whilst decompressing.\n"
+      "\n"
+      "   Possible causes are (most likely first):\n"
+      "   (1) The compressed data is corrupted, and bzip2's usual checks\n"
+      "       failed to detect this.  Try bzip2 -tvv my_file.bz2.\n"
+      "   (2) This computer has unreliable memory or cache hardware\n"
+      "       (a surprisingly common problem; try a different machine.)\n"
+      "   (3) A bug in the compiler used to create this executable\n"
+      "       (unlikely, if you didn't compile bzip2 yourself.)\n"
+      "   (4) A real bug in bzip2 -- I hope this should never be the case.\n"
+      "   The user's manual, Section 4.3, has more info on (2) and (3).\n"
+      "   \n"
+      "   If you suspect this is a bug in bzip2, or are unsure about (2)\n"
+      "   or (3), feel free to report it to me at: jseward@bzip.org.\n"
+      "   Section 4.3 of the user's manual describes the info a useful\n"
+      "   bug report should have.  If the manual is available on your\n"
+      "   system, please try and read it before mailing me.  If you don't\n"
+      "   have the manual or can't be bothered to read it, mail me anyway.\n"
+      "\n",
+      progName );
+
+   showFileNames();
+   if (opMode == OM_Z)
+      cleanUpAndFail( 3 ); else
+      { cadvise(); cleanUpAndFail( 2 ); }
+}
+
+
+/*---------------------------------------------*/
+static 
+void outOfMemory ( void )
+{
+   fprintf ( stderr,
+             "\n%s: couldn't allocate enough memory\n",
+             progName );
+   showFileNames();
+   cleanUpAndFail(1);
+}
+
+
+/*---------------------------------------------*/
+static 
+void configError ( void )
+{
+   fprintf ( stderr,
+             "bzip2: I'm not configured correctly for this platform!\n"
+             "\tI require Int32, Int16 and Char to have sizes\n"
+             "\tof 4, 2 and 1 bytes to run properly, and they don't.\n"
+             "\tProbably you can fix this by defining them correctly,\n"
+             "\tand recompiling.  Bye!\n" );
+   setExit(3);
+   exit(exitValue);
+}
+
+
+/*---------------------------------------------------*/
+/*--- The main driver machinery                   ---*/
+/*---------------------------------------------------*/
+
+/* All rather crufty.  The main problem is that input files
+   are stat()d multiple times before use.  This should be
+   cleaned up. 
+*/
+
+/*---------------------------------------------*/
+static 
+void pad ( Char *s )
+{
+   Int32 i;
+   if ( (Int32)strlen(s) >= longestFileName ) return;
+   for (i = 1; i <= longestFileName - (Int32)strlen(s); i++)
+      fprintf ( stderr, " " );
+}
+
+
+/*---------------------------------------------*/
+static 
+void copyFileName ( Char* to, Char* from ) 
+{
+   if ( strlen(from) > FILE_NAME_LEN-10 )  {
+      fprintf (
+         stderr,
+         "bzip2: file name\n`%s'\n"
+         "is suspiciously (more than %d chars) long.\n"
+         "Try using a reasonable file name instead.  Sorry! :-)\n",
+         from, FILE_NAME_LEN-10
+      );
+      setExit(1);
+      exit(exitValue);
+   }
+
+  strncpy(to,from,FILE_NAME_LEN-10);
+  to[FILE_NAME_LEN-10]='\0';
+}
+
+
+/*---------------------------------------------*/
+static 
+Bool fileExists ( Char* name )
+{
+   FILE *tmp   = FOPEN_INPUT( name);
+   Bool exists = (tmp != NULL);
+   if (tmp != NULL) fclose ( tmp );
+   return exists;
+}
+
+
+/*---------------------------------------------*/
+/* Open an output file safely with O_EXCL and good permissions.
+   This avoids a race condition in versions < 1.0.2, in which
+   the file was first opened and then had its interim permissions
+   set safely.  We instead use open() to create the file with
+   the interim permissions required. (--- --- rw-).
+
+   For non-Unix platforms, if we are not worrying about
+   security issues, simple this simply behaves like fopen.
+*/
+static
+FILE* fopen_output_safely ( Char* name)
+{
+#  if BZ_UNIX | BZ_VMS
+   FILE*     fp;
+   IntNative fh;
+
+#     if BZ_VMS
+#        define MODE "w"
+#        define OPEN_OPTS , "ctx=stm", "acc", acc_cb, &fopw_id
+#     else /* BZ_VMS */
+#        define MODE "wb"
+#        define OPEN_OPTS
+#     endif /* BZ_VMS [else] */
+
+   fh = open(name, O_WRONLY|O_CREAT|O_EXCL, S_IWUSR|S_IRUSR OPEN_OPTS);
+   if (fh == -1) return NULL;
+
+   fp = fdopen(fh, MODE);
+   if (fp == NULL) close(fh);
+   return fp;
+#  else
+   return fopen(name, "wb");
+#  endif
+}
+
+
+/*---------------------------------------------*/
+/*--
+  if in doubt, return True
+--*/
+static 
+Bool notAStandardFile ( Char* name )
+{
+   IntNative      i;
+   struct MY_STAT statBuf;
+
+   i = MY_LSTAT ( name, &statBuf );
+   if (i != 0) return True;
+   if (MY_S_ISREG(statBuf.st_mode)) return False;
+   return True;
+}
+
+
+/*---------------------------------------------*/
+/*--
+  rac 11/21/98 see if file has hard links to it
+--*/
+static 
+Int32 countHardLinks ( Char* name )
+{  
+   IntNative      i;
+   struct MY_STAT statBuf;
+
+   i = MY_LSTAT ( name, &statBuf );
+   if (i != 0) return 0;
+   return (statBuf.st_nlink - 1);
+}
+
+
+/*---------------------------------------------*/
+/* Copy modification date, access date, permissions and owner from the
+   source to destination file.  We have to copy this meta-info off
+   into fileMetaInfo before starting to compress / decompress it,
+   because doing it afterwards means we get the wrong access time.
+
+   To complicate matters, in compress() and decompress() below, the
+   sequence of tests preceding the call to saveInputFileMetaInfo()
+   involves calling fileExists(), which in turn establishes its result
+   by attempting to fopen() the file, and if successful, immediately
+   fclose()ing it again.  So we have to assume that the fopen() call
+   does not cause the access time field to be updated.
+
+   Reading of the man page for stat() (man 2 stat) on RedHat 7.2 seems
+   to imply that merely doing open() will not affect the access time.
+   Therefore we merely need to hope that the C library only does
+   open() as a result of fopen(), and not any kind of read()-ahead
+   cleverness.
+
+   It sounds pretty fragile to me.  Whether this carries across
+   robustly to arbitrary Unix-like platforms (or even works robustly
+   on this one, RedHat 7.2) is unknown to me.  Nevertheless ...  
+*/
+#if BZ_UNIX | BZ_VMS
+static 
+struct MY_STAT fileMetaInfo;
+#endif
+
+static 
+void saveInputFileMetaInfo ( Char *srcName )
+{
+#  if BZ_UNIX | BZ_VMS
+   IntNative retVal;
+   /* Note use of stat here, not lstat. */
+   retVal = MY_STAT( srcName, &fileMetaInfo );
+   ERROR_IF_NOT_ZERO ( retVal );
+#  endif
+}
+
+
+static 
+void applySavedTimeInfoToOutputFile ( Char *dstName )
+{
+#  if BZ_UNIX | BZ_VMS
+#ifdef HAVE_UTIME
+   IntNative      retVal;
+   struct utimbuf uTimBuf;
+
+   uTimBuf.actime = fileMetaInfo.st_atime;
+   uTimBuf.modtime = fileMetaInfo.st_mtime;
+
+   retVal = utime ( dstName, &uTimBuf );
+   ERROR_IF_NOT_ZERO ( retVal );
+#endif /* def HAVE_UTIME */
+#  endif
+}
+
+static 
+void applySavedFileAttrToOutputFile ( IntNative fd )
+{
+#  if BZ_UNIX | BZ_VMS
+   IntNative retVal;
+
+   retVal = fchmod ( fd, fileMetaInfo.st_mode );
+   ERROR_IF_NOT_ZERO ( retVal );
+
+   (void) fchown ( fd, fileMetaInfo.st_uid, fileMetaInfo.st_gid );
+   /* chown() will in many cases return with EPERM, which can
+      be safely ignored.
+   */
+#  endif
+}
+
+
+/*---------------------------------------------*/
+static 
+Bool containsDubiousChars ( Char* name )
+{
+#  if BZ_UNIX
+   /* On unix, files can contain any characters and the file expansion
+    * is performed by the shell.
+    */
+   return False;
+#  elif BZ_VMS
+   int wild;
+   /* On VMS, re-parse and use the fresh result. */
+   vms_wild( name, &wild);
+   return wild;
+#  else /* ! BZ_UNIX */
+   /* On non-unix (Win* platforms), wildcard characters are not allowed in 
+    * filenames.
+    */
+   for (; *name != '\0'; name++)
+      if (*name == '?' || *name == '*') return True;
+   return False;
+#  endif /* BZ_UNIX */
+}
+
+
+/*---------------------------------------------*/
+/* 2005-09-27 SMS.
+   Should the suffixes used by VMS be accepted everywhere?
+   If you decide not, change "1" to "BZ_VMS" here.
+*/
+#define ACCEPT_VMS_SUFFIXES 1
+
+#if ACCEPT_VMS_SUFFIXES
+#  define BZ_N_SUFFIX_PAIRS 6
+#else /* ACCEPT_VMS_SUFFIXES */
+#  define BZ_N_SUFFIX_PAIRS 4
+#endif /* ACCEPT_VMS_SUFFIXES [else] */
+
+Char* zSuffix[BZ_N_SUFFIX_PAIRS]
+   = {
+#if ACCEPT_VMS_SUFFIXES
+       "-bz2", "-bz",
+#endif /* ACCEPT_VMS_SUFFIXES */
+       ".bz2", ".bz", ".tbz2", ".tbz" };
+
+Char* unzSuffix[BZ_N_SUFFIX_PAIRS]
+   = {
+#if ACCEPT_VMS_SUFFIXES
+       "", "",
+#endif /* ACCEPT_VMS_SUFFIXES */
+       "", "", ".tar", ".tar" };
+
+static 
+Bool hasSuffix ( Char* s, const Char* suffix )
+{
+   Int32 ns;
+   Int32 nx;
+   Bool sts = False;
+
+   /* On VMS, avoid including the file version in the suffix test. */
+
+#if BZ_VMS
+#   define FILE_NAME_CMP strcasecmp
+#   define S snv
+   Char *snv;
+
+    snv = strdup( s);
+    if (snv == NULL) outOfMemory ();
+    trimFileNameVersion( snv);
+#else /* BZ_VMS */
+#   define FILE_NAME_CMP strcmp
+#   define S s
+#endif /* BZ_VMS */
+
+   ns = strlen(S);
+   nx = strlen(suffix);
+   if (ns >= nx) {
+      sts = (FILE_NAME_CMP(S + ns - nx, suffix) == 0);
+   }
+#if BZ_VMS
+   free( snv);
+#endif /* BZ_VMS */
+   return sts;
+}
+
+
+static 
+Bool mapSuffix ( Char* name, 
+                 const Char* oldSuffix, 
+                 const Char* newSuffix )
+{
+   if (!hasSuffix(name,oldSuffix)) return False;
+   name[strlen(name)-strlen(oldSuffix)] = 0;
+   strcat ( name, newSuffix );
+#if BZ_VMS
+   vms_redot( name);
+#endif /* BZ_VMS */
+   return True;
+}
+
+
+/*---------------------------------------------*/
+static 
+void compress ( Char *name )
+{
+   FILE  *inStr;
+   FILE  *outStr;
+   Int32 n, i;
+   struct MY_STAT statBuf;
+
+#if BZ_VMS
+#  define EXT_BZ2 "-bz2"
+#else /* BZ_VMS */
+#  define EXT_BZ2 ".bz2"
+#endif /* BZ_VMS [else] */
+
+   deleteOutputOnInterrupt = False;
+
+   if (name == NULL && srcMode != SM_I2O)
+      panic ( "compress: bad modes\n" );
+
+   switch (srcMode) {
+      case SM_I2O: 
+         copyFileName ( inName, (Char*)"(stdin)" );
+         copyFileName ( outName, (Char*)"(stdout)" ); 
+         break;
+      case SM_F2F: 
+         copyFileName ( inName, name );
+         copyFileName ( outName, name );
+#if BZ_VMS
+         trimFileNameVersion( outName);
+#endif /* BZ_VMS */
+         strcat ( outName, EXT_BZ2 );
+         break;
+      case SM_F2O: 
+         copyFileName ( inName, name );
+         copyFileName ( outName, (Char*)"(stdout)" ); 
+         break;
+   }
+
+   if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
+      if (noisy)
+      fprintf ( stderr, "%s: There are no files matching `%s'.\n",
+                progName, inName );
+      setExit(1);
+      return;
+   }
+   if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
+      fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+                progName, inName, strerror(errno) );
+      setExit(1);
+      return;
+   }
+   for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++) {
+      if (hasSuffix(inName, zSuffix[i])) {
+         if (noisy)
+         fprintf ( stderr, 
+                   "%s: Input file %s already has %s suffix.\n",
+                   progName, inName, zSuffix[i] );
+         setExit(1);
+         return;
+      }
+   }
+   if ( srcMode == SM_F2F || srcMode == SM_F2O ) {
+      MY_STAT(inName, &statBuf);
+      if ( MY_S_ISDIR(statBuf.st_mode) ) {
+         fprintf( stderr,
+                  "%s: Input file %s is a directory.\n",
+                  progName,inName);
+         setExit(1);
+         return;
+      }
+   }
+   if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) {
+      if (noisy)
+      fprintf ( stderr, "%s: Input file %s is not a normal file.\n",
+                progName, inName );
+      setExit(1);
+      return;
+   }
+   if ( srcMode == SM_F2F && fileExists ( outName ) ) {
+      if (forceOverwrite) {
+        remove(outName);
+      } else {
+        fprintf ( stderr, "%s: Output file %s already exists.\n",
+                  progName, outName );
+        setExit(1);
+        return;
+      }
+   }
+   if ( srcMode == SM_F2F && !forceOverwrite &&
+        (n=countHardLinks ( inName )) > 0) {
+      fprintf ( stderr, "%s: Input file %s has %d other link%s.\n",
+                progName, inName, n, n > 1 ? "s" : "" );
+      setExit(1);
+      return;
+   }
+
+   if ( srcMode == SM_F2F ) {
+      /* Save the file's meta-info before we open it.  Doing it later
+         means we mess up the access times. */
+      saveInputFileMetaInfo ( inName );
+   }
+
+   switch ( srcMode ) {
+
+      case SM_I2O:
+         inStr = stdin;
+         outStr = stdout;
+         if ( isatty ( fileno ( stdout ) ) ) {
+            fprintf ( stderr,
+                      "%s: I won't write compressed data to a terminal.\n",
+                      progName );
+            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+                              progName, progName );
+            setExit(1);
+            return;
+         };
+         break;
+
+      case SM_F2O:
+         inStr = FOPEN_INPUT( inName);
+         outStr = stdout;
+         if ( isatty ( fileno ( stdout ) ) ) {
+            fprintf ( stderr,
+                      "%s: I won't write compressed data to a terminal.\n",
+                      progName );
+            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+                              progName, progName );
+            if ( inStr != NULL ) fclose ( inStr );
+            setExit(1);
+            return;
+         };
+         if ( inStr == NULL ) {
+            fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+                      progName, inName, strerror(errno) );
+            setExit(1);
+            return;
+         };
+         break;
+
+      case SM_F2F:
+         inStr = FOPEN_INPUT( inName);
+         outStr = fopen_output_safely ( outName );
+         if ( outStr == NULL) {
+            fprintf ( stderr, "%s: Can't create output file %s: %s.\n",
+                      progName, outName, strerror(errno) );
+            if ( inStr != NULL ) fclose ( inStr );
+            setExit(1);
+            return;
+         }
+         if ( inStr == NULL ) {
+            fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+                      progName, inName, strerror(errno) );
+            if ( outStr != NULL ) fclose ( outStr );
+            setExit(1);
+            return;
+         };
+         break;
+
+      default:
+         panic ( "compress: bad srcMode" );
+         break;
+   }
+
+   if (verbosity >= 1) {
+      fprintf ( stderr,  "  %s: ", inName );
+      pad ( inName );
+      fflush ( stderr );
+   }
+
+   /*--- Now the input and output handles are sane.  Do the Biz. ---*/
+   outputHandleJustInCase = outStr;
+   deleteOutputOnInterrupt = True;
+   compressStream ( inStr, outStr );
+   outputHandleJustInCase = NULL;
+
+   /*--- If there was an I/O error, we won't get here. ---*/
+   if ( srcMode == SM_F2F ) {
+      applySavedTimeInfoToOutputFile ( outName );
+      deleteOutputOnInterrupt = False;
+      if ( !keepInputFiles ) {
+         IntNative retVal = remove ( inName );
+         ERROR_IF_NOT_ZERO ( retVal );
+      }
+   }
+
+   deleteOutputOnInterrupt = False;
+}
+
+
+/*---------------------------------------------*/
+static 
+void uncompress ( Char *name )
+{
+   FILE  *inStr;
+   FILE  *outStr;
+   Int32 n, i;
+   Bool  magicNumberOK;
+   Bool  cantGuess;
+   struct MY_STAT statBuf;
+
+#if BZ_VMS
+#  define EXT_OUT "-out"
+#else /* BZ_VMS */
+#  define EXT_OUT ".out"
+#endif /* BZ_VMS [else] */
+
+   deleteOutputOnInterrupt = False;
+
+   if (name == NULL && srcMode != SM_I2O)
+      panic ( "uncompress: bad modes\n" );
+
+   cantGuess = False;
+   switch (srcMode) {
+      case SM_I2O: 
+         copyFileName ( inName, (Char*)"(stdin)" );
+         copyFileName ( outName, (Char*)"(stdout)" ); 
+         break;
+      case SM_F2F: 
+         copyFileName ( inName, name );
+         copyFileName ( outName, name );
+#if BZ_VMS
+         trimFileNameVersion( outName);
+#endif /* BZ_VMS */
+         for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++)
+            if (mapSuffix(outName,zSuffix[i],unzSuffix[i]))
+               goto zzz; 
+         cantGuess = True;
+         strcat ( outName, EXT_OUT );
+         break;
+      case SM_F2O: 
+         copyFileName ( inName, name );
+         copyFileName ( outName, (Char*)"(stdout)" ); 
+         break;
+   }
+
+   zzz:
+   if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
+      if (noisy)
+      fprintf ( stderr, "%s: There are no files matching `%s'.\n",
+                progName, inName );
+      setExit(1);
+      return;
+   }
+   if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
+      fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+                progName, inName, strerror(errno) );
+      setExit(1);
+      return;
+   }
+   if ( srcMode == SM_F2F || srcMode == SM_F2O ) {
+      MY_STAT(inName, &statBuf);
+      if ( MY_S_ISDIR(statBuf.st_mode) ) {
+         fprintf( stderr,
+                  "%s: Input file %s is a directory.\n",
+                  progName,inName);
+         setExit(1);
+         return;
+      }
+   }
+   if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) {
+      if (noisy)
+      fprintf ( stderr, "%s: Input file %s is not a normal file.\n",
+                progName, inName );
+      setExit(1);
+      return;
+   }
+   if ( /* srcMode == SM_F2F implied && */ cantGuess ) {
+      if (noisy)
+      fprintf ( stderr, 
+                "%s: Can't guess original name for %s -- using %s\n",
+                progName, inName, outName );
+      /* just a warning, no return */
+   }   
+   if ( srcMode == SM_F2F && fileExists ( outName ) ) {
+      if (forceOverwrite) {
+       remove(outName);
+      } else {
+        fprintf ( stderr, "%s: Output file %s already exists.\n",
+                  progName, outName );
+        setExit(1);
+        return;
+      }
+   }
+   if ( srcMode == SM_F2F && !forceOverwrite &&
+        (n=countHardLinks ( inName ) ) > 0) {
+      fprintf ( stderr, "%s: Input file %s has %d other link%s.\n",
+                progName, inName, n, n > 1 ? "s" : "" );
+      setExit(1);
+      return;
+   }
+
+   if ( srcMode == SM_F2F ) {
+      /* Save the file's meta-info before we open it.  Doing it later
+         means we mess up the access times. */
+      saveInputFileMetaInfo ( inName );
+   }
+
+   switch ( srcMode ) {
+
+      case SM_I2O:
+         inStr = stdin;
+         outStr = stdout;
+         if ( isatty ( fileno ( stdin ) ) ) {
+            fprintf ( stderr,
+                      "%s: I won't read compressed data from a terminal.\n",
+                      progName );
+            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+                              progName, progName );
+            setExit(1);
+            return;
+         };
+         break;
+
+      case SM_F2O:
+         inStr = FOPEN_INPUT( inName);
+         outStr = stdout;
+         if ( inStr == NULL ) {
+            fprintf ( stderr, "%s: Can't open input file %s:%s.\n",
+                      progName, inName, strerror(errno) );
+            if ( inStr != NULL ) fclose ( inStr );
+            setExit(1);
+            return;
+         };
+         break;
+
+      case SM_F2F:
+         inStr = FOPEN_INPUT( inName);
+         outStr = fopen_output_safely ( outName );
+         if ( outStr == NULL) {
+            fprintf ( stderr, "%s: Can't create output file %s: %s.\n",
+                      progName, outName, strerror(errno) );
+            if ( inStr != NULL ) fclose ( inStr );
+            setExit(1);
+            return;
+         }
+         if ( inStr == NULL ) {
+            fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+                      progName, inName, strerror(errno) );
+            if ( outStr != NULL ) fclose ( outStr );
+            setExit(1);
+            return;
+         };
+         break;
+
+      default:
+         panic ( "uncompress: bad srcMode" );
+         break;
+   }
+
+   if (verbosity >= 1) {
+      fprintf ( stderr, "  %s: ", inName );
+      pad ( inName );
+      fflush ( stderr );
+   }
+
+   /*--- Now the input and output handles are sane.  Do the Biz. ---*/
+   outputHandleJustInCase = outStr;
+   deleteOutputOnInterrupt = True;
+   magicNumberOK = uncompressStream ( inStr, outStr );
+   outputHandleJustInCase = NULL;
+
+   /*--- If there was an I/O error, we won't get here. ---*/
+   if ( magicNumberOK ) {
+      if ( srcMode == SM_F2F ) {
+         applySavedTimeInfoToOutputFile ( outName );
+         deleteOutputOnInterrupt = False;
+         if ( !keepInputFiles ) {
+            IntNative retVal = remove ( inName );
+            ERROR_IF_NOT_ZERO ( retVal );
+         }
+      }
+   } else {
+      unzFailsExist = True;
+      deleteOutputOnInterrupt = False;
+      if ( srcMode == SM_F2F ) {
+         IntNative retVal = remove ( outName );
+         ERROR_IF_NOT_ZERO ( retVal );
+      }
+   }
+   deleteOutputOnInterrupt = False;
+
+   if ( magicNumberOK ) {
+      if (verbosity >= 1)
+         fprintf ( stderr, "done\n" );
+   } else {
+      setExit(2);
+      if (verbosity >= 1)
+         fprintf ( stderr, "not a bzip2 file.\n" ); else
+         fprintf ( stderr,
+                   "%s: %s is not a bzip2 file.\n",
+                   progName, inName );
+   }
+
+}
+
+
+/*---------------------------------------------*/
+static 
+void testf ( Char *name )
+{
+   FILE *inStr;
+   Bool allOK;
+   struct MY_STAT statBuf;
+
+   deleteOutputOnInterrupt = False;
+
+   if (name == NULL && srcMode != SM_I2O)
+      panic ( "testf: bad modes\n" );
+
+   copyFileName ( outName, (Char*)"(none)" );
+   switch (srcMode) {
+      case SM_I2O: copyFileName ( inName, (Char*)"(stdin)" ); break;
+      case SM_F2F: copyFileName ( inName, name ); break;
+      case SM_F2O: copyFileName ( inName, name ); break;
+   }
+
+   if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
+      if (noisy)
+      fprintf ( stderr, "%s: There are no files matching `%s'.\n",
+                progName, inName );
+      setExit(1);
+      return;
+   }
+   if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
+      fprintf ( stderr, "%s: Can't open input %s: %s.\n",
+                progName, inName, strerror(errno) );
+      setExit(1);
+      return;
+   }
+   if ( srcMode != SM_I2O ) {
+      MY_STAT(inName, &statBuf);
+      if ( MY_S_ISDIR(statBuf.st_mode) ) {
+         fprintf( stderr,
+                  "%s: Input file %s is a directory.\n",
+                  progName,inName);
+         setExit(1);
+         return;
+      }
+   }
+
+   switch ( srcMode ) {
+
+      case SM_I2O:
+         if ( isatty ( fileno ( stdin ) ) ) {
+            fprintf ( stderr,
+                      "%s: I won't read compressed data from a terminal.\n",
+                      progName );
+            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+                              progName, progName );
+            setExit(1);
+            return;
+         };
+         inStr = stdin;
+         break;
+
+      case SM_F2O: case SM_F2F:
+         inStr = FOPEN_INPUT( inName);
+         if ( inStr == NULL ) {
+            fprintf ( stderr, "%s: Can't open input file %s:%s.\n",
+                      progName, inName, strerror(errno) );
+            setExit(1);
+            return;
+         };
+         break;
+
+      default:
+         panic ( "testf: bad srcMode" );
+         break;
+   }
+
+   if (verbosity >= 1) {
+      fprintf ( stderr, "  %s: ", inName );
+      pad ( inName );
+      fflush ( stderr );
+   }
+
+   /*--- Now the input handle is sane.  Do the Biz. ---*/
+   outputHandleJustInCase = NULL;
+   allOK = testStream ( inStr );
+
+   if (allOK && verbosity >= 1) fprintf ( stderr, "ok\n" );
+   if (!allOK) testFailsExist = True;
+}
+
+
+/*---------------------------------------------*/
+static 
+void license ( void )
+{
+   fprintf ( stderr,
+
+    "bzip2, a block-sorting file compressor.  "
+    "Version %s%s, %s.\n"
+    "   \n"
+    "   Copyright (C) 1996-2010 by Julian Seward.\n"
+    "   \n"
+    "   This program is free software; you can redistribute it and/or modify\n"
+    "   it under the terms set out in the LICENSE file, which is included\n"
+    "   in the bzip2-1.0.6 source distribution.\n"
+    "   \n"
+    "   This program is distributed in the hope that it will be useful,\n"
+    "   but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+    "   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+    "   LICENSE file for more details.\n"
+    "   \n",
+    BZ2_bzlibVersionBase(), VERSION_SUFFIX, BZ2_bzlibVersionDate()
+   );
+}
+
+
+/*---------------------------------------------*/
+static 
+void usage ( Char *fullProgName )
+{
+   fprintf (
+      stderr,
+      "bzip2, a block-sorting file compressor.  "
+      "Version %s%s, %s.\n"
+      "\n   usage: %s [flags and input files in any order]\n"
+      "\n"
+      "   -h --help           print this message\n"
+      "   -d --decompress     force decompression\n"
+      "   -z --compress       force compression\n"
+      "   -k --keep           keep (don't delete) input files\n"
+      "   -f --force          overwrite existing output files\n"
+      "   -t --test           test compressed file integrity\n"
+      "   -c --stdout         output to standard out\n"
+      "   -q --quiet          suppress noncritical error messages\n"
+      "   -v --verbose        be verbose (a 2nd -v gives more)\n"
+      "   -L --license        display software version & license\n"
+      "   -V --version        display software version & license\n"
+      "   -s --small          use less memory (at most 2500k)\n"
+      "   -1 .. -9            set block size to 100k .. 900k\n"
+      "   --fast              alias for -1\n"
+      "   --best              alias for -9\n"
+      "\n"
+      "   If invoked as `bzip2', default action is to compress.\n"
+      "              as `bunzip2',  default action is to decompress.\n"
+      "              as `bzcat', default action is to decompress to stdout.\n"
+      "\n"
+      "   If no file names are given, bzip2 compresses or decompresses\n"
+      "   from standard input to standard output.  You can combine\n"
+      "   short flags, so `-v -4' means the same as -v4 or -4v, &c.\n"
+#     if BZ_UNIX | BZ_VMS
+      "\n"
+#     endif
+      ,
+
+      BZ2_bzlibVersionBase(), VERSION_SUFFIX, BZ2_bzlibVersionDate(),
+      fullProgName
+   );
+}
+
+
+/*---------------------------------------------*/
+static 
+void redundant ( Char* flag )
+{
+   fprintf ( 
+      stderr, 
+      "%s: %s is redundant in versions 0.9.5 and above\n",
+      progName, flag );
+}
+
+
+/*---------------------------------------------*/
+/*--
+  All the garbage from here to main() is purely to
+  implement a linked list of command-line arguments,
+  into which main() copies argv[1 .. argc-1].
+
+  The purpose of this exercise is to facilitate 
+  the expansion of wildcard characters * and ? in 
+  filenames for OSs which don't know how to do it
+  themselves, like MSDOS, Windows 95 and NT.
+
+  The actual Dirty Work is done by the platform-
+  specific macro APPEND_FILESPEC.
+--*/
+
+typedef
+   struct zzzz {
+      Char        *name;
+      struct zzzz *link;
+   }
+   Cell;
+
+
+/*---------------------------------------------*/
+static 
+void *myMalloc ( Int32 n )
+{
+   void* p;
+
+   p = malloc ( (size_t)n );
+   if (p == NULL) outOfMemory ();
+   return p;
+}
+
+
+/*---------------------------------------------*/
+static 
+Cell *mkCell ( void )
+{
+   Cell *c;
+
+   c = (Cell*) myMalloc ( sizeof ( Cell ) );
+   c->name = NULL;
+   c->link = NULL;
+   return c;
+}
+
+
+/*---------------------------------------------*/
+static 
+Cell *snocString ( Cell *root, Char *name )
+{
+   if (root == NULL) {
+      Cell *tmp = mkCell();
+      tmp->name = (Char*) myMalloc ( 5 + strlen(name) );
+      strcpy ( tmp->name, name );
+      return tmp;
+   } else {
+      Cell *tmp = root;
+      while (tmp->link != NULL) tmp = tmp->link;
+      tmp->link = snocString ( tmp->link, name );
+      return root;
+   }
+}
+
+
+#if BZ_VMS
+/*---------------------------------------------*/
+static
+Cell *append_vms_filespec( Cell *root, char *name)
+{
+   char *nm;
+   int wild;
+
+   nm = vms_wild( name, &wild);
+   if (wild)
+   {
+      /* Wild-card file spec.  Use the full (resultant) name. */
+      while (nm != NULL)
+      {
+         root = snocString( root, nm);
+         nm = vms_wild( NULL, NULL);
+      }
+   }
+   else
+   {
+      /* No wild-card.  Use the user-specified name directly. */
+      root = snocString( root, name);
+   }
+   return root;
+}
+#endif /* BZ_VMS */
+
+
+/*---------------------------------------------*/
+static 
+void addFlagsFromEnvVar ( Cell** argList, Char* varName ) 
+{
+   Int32 i, j, k;
+   Char *envbase, *p;
+
+   envbase = getenv(varName);
+   if (envbase != NULL) {
+      p = envbase;
+      i = 0;
+      while (True) {
+         if (p[i] == 0) break;
+         p += i;
+         i = 0;
+         while (isspace((Int32)(p[0]))) p++;
+         while (p[i] != 0 && !isspace((Int32)(p[i]))) i++;
+         if (i > 0) {
+            k = i; if (k > FILE_NAME_LEN-10) k = FILE_NAME_LEN-10;
+            for (j = 0; j < k; j++) tmpName[j] = p[j];
+            tmpName[k] = 0;
+            APPEND_FLAG(*argList, tmpName);
+         }
+      }
+   }
+}
+
+
+/*---------------------------------------------*/
+#define ISFLAG(s) (strcmp(aa->name, (s))==0)
+
+IntNative main ( IntNative argc, Char *argv[] )
+{
+   Int32  i, j;
+   Char   *tmp;
+   Cell   *argList;
+   Cell   *aa;
+   Bool   decode;
+
+   /*-- Be really really really paranoid :-) --*/
+   if (sizeof(Int32) != 4 || sizeof(UInt32) != 4  ||
+       sizeof(Int16) != 2 || sizeof(UInt16) != 2  ||
+       sizeof(Char)  != 1 || sizeof(UChar)  != 1)
+      configError();
+
+   /*-- Initialise --*/
+   outputHandleJustInCase  = NULL;
+   smallMode               = False;
+   keepInputFiles          = False;
+   forceOverwrite          = False;
+   noisy                   = True;
+   verbosity               = 0;
+   blockSize100k           = 9;
+   testFailsExist          = False;
+   unzFailsExist           = False;
+   numFileNames            = 0;
+   numFilesProcessed       = 0;
+   workFactor              = 30;
+   deleteOutputOnInterrupt = False;
+   exitValue               = 0;
+   i = j = 0; /* avoid bogus warning from egcs-1.1.X */
+
+   /*-- Set up signal handlers for mem access errors --*/
+   signal (SIGSEGV, mySIGSEGVorSIGBUScatcher);
+#  if BZ_UNIX | BZ_VMS
+#  ifndef __DJGPP__
+   signal (SIGBUS,  mySIGSEGVorSIGBUScatcher);
+#  endif
+#  endif
+
+   copyFileName ( inName,  (Char*)"(none)" );
+   copyFileName ( outName, (Char*)"(none)" );
+
+#if BZ_VMS
+   progName = strcpy( progNameReally, vms_basename( argv[ 0]));
+#else /* BZ_VMS */
+   copyFileName ( progNameReally, argv[0] );
+   progName = &progNameReally[0];
+   for (tmp = &progNameReally[0]; *tmp != '\0'; tmp++)
+      if (*tmp == PATH_SEP) progName = tmp + 1;
+#endif /* BZ_VMS [else] */
+
+   /*-- Copy flags from env var BZIP2, and 
+        expand filename wildcards in arg list.
+   --*/
+   /* On VMS, use BZIP_OPTS or BZIP2_OPTS to avoid colliding with a
+      foreign command symbol.  (As in the Info-ZIP [Un]Zip programs.)
+   */
+#if BZ_VMS
+#define ENV2 "BZIP2_OPTS"
+#define ENV1 "BZIP_OPTS"
+#else /* BZ_VMS */
+#define ENV2 "BZIP2"
+#define ENV1 "BZIP"
+#endif /* BZ_VMS [else] */
+
+   argList = NULL;
+   addFlagsFromEnvVar ( &argList,  (Char*)ENV2 );
+   addFlagsFromEnvVar ( &argList,  (Char*)ENV1 );
+   decode = True;
+   for (i = 1; i <= argc-1; i++)
+   {
+      if (strcmp( argv[ i], "--") == 0) { decode = False; continue; }
+      if (decode && *argv[ i] == '-')
+         APPEND_FLAG( argList, argv[i]);
+      else
+         APPEND_FILESPEC( argList, argv[i]);
+   }
+
+   /*-- Find the length of the longest filename --*/
+   longestFileName = 7;
+   numFileNames    = 0;
+   decode          = True;
+   for (aa = argList; aa != NULL; aa = aa->link) {
+      if (ISFLAG("--")) { decode = False; continue; }
+      if (aa->name[0] == '-' && decode) continue;
+      numFileNames++;
+      if (longestFileName < (Int32)strlen(aa->name) )
+         longestFileName = (Int32)strlen(aa->name);
+   }
+
+
+   /*-- Determine source modes; flag handling may change this too. --*/
+   if (numFileNames == 0)
+      srcMode = SM_I2O; else srcMode = SM_F2F;
+
+
+   /*-- Determine what to do (compress/uncompress/test/cat). --*/
+   /*-- Note that subsequent flag handling may change this. --*/
+   opMode = OM_Z;
+
+   if ( (strstr ( progName, "unzip" ) != 0) ||
+        (strstr ( progName, "UNZIP" ) != 0) )
+      opMode = OM_UNZ;
+
+   if ( (strstr ( progName, "z2cat" ) != 0) ||
+        (strstr ( progName, "Z2CAT" ) != 0) ||
+        (strstr ( progName, "zcat" ) != 0)  ||
+        (strstr ( progName, "ZCAT" ) != 0) )  {
+      opMode = OM_UNZ;
+      srcMode = (numFileNames == 0) ? SM_I2O : SM_F2O;
+   }
+
+
+   /*-- Look at the flags. --*/
+   for (aa = argList; aa != NULL; aa = aa->link) {
+      if (ISFLAG("--")) break;
+      if (aa->name[0] == '-' && aa->name[1] != '-') {
+         for (j = 1; aa->name[j] != '\0'; j++) {
+            switch (aa->name[j]) {
+               case 'c': srcMode          = SM_F2O; break;
+               case 'd': opMode           = OM_UNZ; break;
+               case 'z': opMode           = OM_Z; break;
+               case 'f': forceOverwrite   = True; break;
+               case 't': opMode           = OM_TEST; break;
+               case 'k': keepInputFiles   = True; break;
+               case 's': smallMode        = True; break;
+               case 'q': noisy            = False; break;
+               case '1': blockSize100k    = 1; break;
+               case '2': blockSize100k    = 2; break;
+               case '3': blockSize100k    = 3; break;
+               case '4': blockSize100k    = 4; break;
+               case '5': blockSize100k    = 5; break;
+               case '6': blockSize100k    = 6; break;
+               case '7': blockSize100k    = 7; break;
+               case '8': blockSize100k    = 8; break;
+               case '9': blockSize100k    = 9; break;
+               case 'V':
+               case 'L': license();            break;
+               case 'v': verbosity++; break;
+               case 'h': usage ( progName );
+                         exit ( 0 );
+                         break;
+               default:  fprintf ( stderr, "%s: Bad flag `%s'\n",
+                                   progName, aa->name );
+                         usage ( progName );
+                         exit ( 1 );
+                         break;
+            }
+         }
+      }
+   }
+   
+   /*-- And again ... --*/
+   for (aa = argList; aa != NULL; aa = aa->link) {
+      if (ISFLAG("--")) break;
+      if (ISFLAG("--stdout"))            srcMode          = SM_F2O;  else
+      if (ISFLAG("--decompress"))        opMode           = OM_UNZ;  else
+      if (ISFLAG("--compress"))          opMode           = OM_Z;    else
+      if (ISFLAG("--force"))             forceOverwrite   = True;    else
+      if (ISFLAG("--test"))              opMode           = OM_TEST; else
+      if (ISFLAG("--keep"))              keepInputFiles   = True;    else
+      if (ISFLAG("--small"))             smallMode        = True;    else
+      if (ISFLAG("--quiet"))             noisy            = False;   else
+      if (ISFLAG("--version"))           license();                  else
+      if (ISFLAG("--license"))           license();                  else
+      if (ISFLAG("--exponential"))       workFactor = 1;             else 
+      if (ISFLAG("--repetitive-best"))   redundant(aa->name);        else
+      if (ISFLAG("--repetitive-fast"))   redundant(aa->name);        else
+      if (ISFLAG("--fast"))              blockSize100k = 1;          else
+      if (ISFLAG("--best"))              blockSize100k = 9;          else
+      if (ISFLAG("--verbose"))           verbosity++;                else
+      if (ISFLAG("--help"))              { usage ( progName ); exit ( 0 ); }
+         else
+         if (strncmp ( aa->name, "--", 2) == 0) {
+            fprintf ( stderr, "%s: Bad flag `%s'\n", progName, aa->name );
+            usage ( progName );
+            exit ( 1 );
+         }
+   }
+
+   if (verbosity > 4) verbosity = 4;
+   if (opMode == OM_Z && smallMode && blockSize100k > 2) 
+      blockSize100k = 2;
+
+   if (opMode == OM_TEST && srcMode == SM_F2O) {
+      fprintf ( stderr, "%s: -c and -t cannot be used together.\n",
+                progName );
+      exit ( 1 );
+   }
+
+   if (srcMode == SM_F2O && numFileNames == 0)
+      srcMode = SM_I2O;
+
+   if (opMode != OM_Z) blockSize100k = 0;
+
+   if (srcMode == SM_F2F) {
+      signal (SIGINT,  mySignalCatcher);
+      signal (SIGTERM, mySignalCatcher);
+#     if BZ_UNIX
+      signal (SIGHUP,  mySignalCatcher);
+#     endif
+   }
+
+   if (opMode == OM_Z) {
+     if (srcMode == SM_I2O) {
+        compress ( NULL );
+     } else {
+        decode = True;
+        for (aa = argList; aa != NULL; aa = aa->link) {
+           if (ISFLAG("--")) { decode = False; continue; }
+           if (aa->name[0] == '-' && decode) continue;
+           numFilesProcessed++;
+           compress ( aa->name );
+        }
+     }
+   } 
+   else
+
+   if (opMode == OM_UNZ) {
+      unzFailsExist = False;
+      if (srcMode == SM_I2O) {
+         uncompress ( NULL );
+      } else {
+         decode = True;
+         for (aa = argList; aa != NULL; aa = aa->link) {
+            if (ISFLAG("--")) { decode = False; continue; }
+            if (aa->name[0] == '-' && decode) continue;
+            numFilesProcessed++;
+            uncompress ( aa->name );
+         }      
+      }
+      if (unzFailsExist) { 
+         setExit(2); 
+         exit(exitValue);
+      }
+   } 
+
+   else {
+      testFailsExist = False;
+      if (srcMode == SM_I2O) {
+         testf ( NULL );
+      } else {
+         decode = True;
+         for (aa = argList; aa != NULL; aa = aa->link) {
+           if (ISFLAG("--")) { decode = False; continue; }
+            if (aa->name[0] == '-' && decode) continue;
+            numFilesProcessed++;
+            testf ( aa->name );
+        }
+      }
+      if (testFailsExist && noisy) {
+         fprintf ( stderr,
+           "\n"
+           "You can use the `bzip2recover' program to attempt to recover\n"
+           "data from undamaged sections of corrupted files.\n\n"
+         );
+         setExit(2);
+         exit(exitValue);
+      }
+   }
+
+   /* Free the argument list memory to mollify leak detectors 
+      (eg) Purify, Checker.  Serves no other useful purpose.
+   */
+   aa = argList;
+   while (aa != NULL) {
+      Cell* aa2 = aa->link;
+      if (aa->name != NULL) free(aa->name);
+      free(aa);
+      aa = aa2;
+   }
+
+   return exitValue;
+}
+
+
+/*-----------------------------------------------------------*/
+/*--- end                                         bzip2.c ---*/
+/*-----------------------------------------------------------*/
diff --git a/bzip2/bzip2.c_orig b/bzip2/bzip2.c_orig
new file mode 100644 (file)
index 0000000..6de9d1d
--- /dev/null
@@ -0,0 +1,2034 @@
+
+/*-----------------------------------------------------------*/
+/*--- A block-sorting, lossless compressor        bzip2.c ---*/
+/*-----------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+/* Place a 1 beside your platform, and 0 elsewhere.
+   Generic 32-bit Unix.
+   Also works on 64-bit Unix boxes.
+   This is the default.
+*/
+#define BZ_UNIX      1
+
+/*--
+  Win32, as seen by Jacob Navia's excellent
+  port of (Chris Fraser & David Hanson)'s excellent
+  lcc compiler.  Or with MS Visual C.
+  This is selected automatically if compiled by a compiler which
+  defines _WIN32, not including the Cygwin GCC.
+--*/
+#define BZ_LCCWIN32  0
+
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#undef  BZ_LCCWIN32
+#define BZ_LCCWIN32 1
+#undef  BZ_UNIX
+#define BZ_UNIX 0
+#endif
+
+
+/*---------------------------------------------*/
+/*--
+  Some stuff for all platforms.
+--*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <signal.h>
+#include <math.h>
+#include <errno.h>
+#include <ctype.h>
+#include "bzlib.h"
+
+#define ERROR_IF_EOF(i)       { if ((i) == EOF)  ioError(); }
+#define ERROR_IF_NOT_ZERO(i)  { if ((i) != 0)    ioError(); }
+#define ERROR_IF_MINUS_ONE(i) { if ((i) == (-1)) ioError(); }
+
+
+/*---------------------------------------------*/
+/*--
+   Platform-specific stuff.
+--*/
+
+#if BZ_UNIX
+#   include <fcntl.h>
+#   include <sys/types.h>
+#   include <utime.h>
+#   include <unistd.h>
+#   include <sys/stat.h>
+#   include <sys/times.h>
+
+#   define PATH_SEP    '/'
+#   define MY_LSTAT    lstat
+#   define MY_STAT     stat
+#   define MY_S_ISREG  S_ISREG
+#   define MY_S_ISDIR  S_ISDIR
+
+#   define APPEND_FILESPEC(root, name) \
+      root=snocString((root), (name))
+
+#   define APPEND_FLAG(root, name) \
+      root=snocString((root), (name))
+
+#   define SET_BINARY_MODE(fd) /**/
+
+#   ifdef __GNUC__
+#      define NORETURN __attribute__ ((noreturn))
+#   else
+#      define NORETURN /**/
+#   endif
+
+#   ifdef __DJGPP__
+#     include <io.h>
+#     include <fcntl.h>
+#     undef MY_LSTAT
+#     undef MY_STAT
+#     define MY_LSTAT stat
+#     define MY_STAT stat
+#     undef SET_BINARY_MODE
+#     define SET_BINARY_MODE(fd)                        \
+        do {                                            \
+           int retVal = setmode ( fileno ( fd ),        \
+                                  O_BINARY );           \
+           ERROR_IF_MINUS_ONE ( retVal );               \
+        } while ( 0 )
+#   endif
+
+#   ifdef __CYGWIN__
+#     include <io.h>
+#     include <fcntl.h>
+#     undef SET_BINARY_MODE
+#     define SET_BINARY_MODE(fd)                        \
+        do {                                            \
+           int retVal = setmode ( fileno ( fd ),        \
+                                  O_BINARY );           \
+           ERROR_IF_MINUS_ONE ( retVal );               \
+        } while ( 0 )
+#   endif
+#endif /* BZ_UNIX */
+
+
+
+#if BZ_LCCWIN32
+#   include <io.h>
+#   include <fcntl.h>
+#   include <sys\stat.h>
+
+#   define NORETURN       /**/
+#   define PATH_SEP       '\\'
+#   define MY_LSTAT       _stat
+#   define MY_STAT        _stat
+#   define MY_S_ISREG(x)  ((x) & _S_IFREG)
+#   define MY_S_ISDIR(x)  ((x) & _S_IFDIR)
+
+#   define APPEND_FLAG(root, name) \
+      root=snocString((root), (name))
+
+#   define APPEND_FILESPEC(root, name)                \
+      root = snocString ((root), (name))
+
+#   define SET_BINARY_MODE(fd)                        \
+      do {                                            \
+         int retVal = setmode ( fileno ( fd ),        \
+                                O_BINARY );           \
+         ERROR_IF_MINUS_ONE ( retVal );               \
+      } while ( 0 )
+
+#endif /* BZ_LCCWIN32 */
+
+
+/*---------------------------------------------*/
+/*--
+  Some more stuff for all platforms :-)
+--*/
+
+typedef char            Char;
+typedef unsigned char   Bool;
+typedef unsigned char   UChar;
+typedef int             Int32;
+typedef unsigned int    UInt32;
+typedef short           Int16;
+typedef unsigned short  UInt16;
+                                       
+#define True  ((Bool)1)
+#define False ((Bool)0)
+
+/*--
+  IntNative is your platform's `native' int size.
+  Only here to avoid probs with 64-bit platforms.
+--*/
+typedef int IntNative;
+
+
+/*---------------------------------------------------*/
+/*--- Misc (file handling) data decls             ---*/
+/*---------------------------------------------------*/
+
+Int32   verbosity;
+Bool    keepInputFiles, smallMode, deleteOutputOnInterrupt;
+Bool    forceOverwrite, testFailsExist, unzFailsExist, noisy;
+Int32   numFileNames, numFilesProcessed, blockSize100k;
+Int32   exitValue;
+
+/*-- source modes; F==file, I==stdin, O==stdout --*/
+#define SM_I2O           1
+#define SM_F2O           2
+#define SM_F2F           3
+
+/*-- operation modes --*/
+#define OM_Z             1
+#define OM_UNZ           2
+#define OM_TEST          3
+
+Int32   opMode;
+Int32   srcMode;
+
+#define FILE_NAME_LEN 1034
+
+Int32   longestFileName;
+Char    inName [FILE_NAME_LEN];
+Char    outName[FILE_NAME_LEN];
+Char    tmpName[FILE_NAME_LEN];
+Char    *progName;
+Char    progNameReally[FILE_NAME_LEN];
+FILE    *outputHandleJustInCase;
+Int32   workFactor;
+
+static void    panic                 ( const Char* ) NORETURN;
+static void    ioError               ( void )        NORETURN;
+static void    outOfMemory           ( void )        NORETURN;
+static void    configError           ( void )        NORETURN;
+static void    crcError              ( void )        NORETURN;
+static void    cleanUpAndFail        ( Int32 )       NORETURN;
+static void    compressedStreamEOF   ( void )        NORETURN;
+
+static void    copyFileName ( Char*, Char* );
+static void*   myMalloc     ( Int32 );
+static void    applySavedFileAttrToOutputFile ( IntNative fd );
+
+
+
+/*---------------------------------------------------*/
+/*--- An implementation of 64-bit ints.  Sigh.    ---*/
+/*--- Roll on widespread deployment of ANSI C9X ! ---*/
+/*---------------------------------------------------*/
+
+typedef
+   struct { UChar b[8]; } 
+   UInt64;
+
+
+static
+void uInt64_from_UInt32s ( UInt64* n, UInt32 lo32, UInt32 hi32 )
+{
+   n->b[7] = (UChar)((hi32 >> 24) & 0xFF);
+   n->b[6] = (UChar)((hi32 >> 16) & 0xFF);
+   n->b[5] = (UChar)((hi32 >> 8)  & 0xFF);
+   n->b[4] = (UChar) (hi32        & 0xFF);
+   n->b[3] = (UChar)((lo32 >> 24) & 0xFF);
+   n->b[2] = (UChar)((lo32 >> 16) & 0xFF);
+   n->b[1] = (UChar)((lo32 >> 8)  & 0xFF);
+   n->b[0] = (UChar) (lo32        & 0xFF);
+}
+
+
+static
+double uInt64_to_double ( UInt64* n )
+{
+   Int32  i;
+   double base = 1.0;
+   double sum  = 0.0;
+   for (i = 0; i < 8; i++) {
+      sum  += base * (double)(n->b[i]);
+      base *= 256.0;
+   }
+   return sum;
+}
+
+
+static
+Bool uInt64_isZero ( UInt64* n )
+{
+   Int32 i;
+   for (i = 0; i < 8; i++)
+      if (n->b[i] != 0) return 0;
+   return 1;
+}
+
+
+/* Divide *n by 10, and return the remainder.  */
+static 
+Int32 uInt64_qrm10 ( UInt64* n )
+{
+   UInt32 rem, tmp;
+   Int32  i;
+   rem = 0;
+   for (i = 7; i >= 0; i--) {
+      tmp = rem * 256 + n->b[i];
+      n->b[i] = tmp / 10;
+      rem = tmp % 10;
+   }
+   return rem;
+}
+
+
+/* ... and the Whole Entire Point of all this UInt64 stuff is
+   so that we can supply the following function.
+*/
+static
+void uInt64_toAscii ( char* outbuf, UInt64* n )
+{
+   Int32  i, q;
+   UChar  buf[32];
+   Int32  nBuf   = 0;
+   UInt64 n_copy = *n;
+   do {
+      q = uInt64_qrm10 ( &n_copy );
+      buf[nBuf] = q + '0';
+      nBuf++;
+   } while (!uInt64_isZero(&n_copy));
+   outbuf[nBuf] = 0;
+   for (i = 0; i < nBuf; i++) 
+      outbuf[i] = buf[nBuf-i-1];
+}
+
+
+/*---------------------------------------------------*/
+/*--- Processing of complete files and streams    ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------*/
+static 
+Bool myfeof ( FILE* f )
+{
+   Int32 c = fgetc ( f );
+   if (c == EOF) return True;
+   ungetc ( c, f );
+   return False;
+}
+
+
+/*---------------------------------------------*/
+static 
+void compressStream ( FILE *stream, FILE *zStream )
+{
+   BZFILE* bzf = NULL;
+   UChar   ibuf[5000];
+   Int32   nIbuf;
+   UInt32  nbytes_in_lo32, nbytes_in_hi32;
+   UInt32  nbytes_out_lo32, nbytes_out_hi32;
+   Int32   bzerr, bzerr_dummy, ret;
+
+   SET_BINARY_MODE(stream);
+   SET_BINARY_MODE(zStream);
+
+   if (ferror(stream)) goto errhandler_io;
+   if (ferror(zStream)) goto errhandler_io;
+
+   bzf = BZ2_bzWriteOpen ( &bzerr, zStream, 
+                           blockSize100k, verbosity, workFactor );   
+   if (bzerr != BZ_OK) goto errhandler;
+
+   if (verbosity >= 2) fprintf ( stderr, "\n" );
+
+   while (True) {
+
+      if (myfeof(stream)) break;
+      nIbuf = fread ( ibuf, sizeof(UChar), 5000, stream );
+      if (ferror(stream)) goto errhandler_io;
+      if (nIbuf > 0) BZ2_bzWrite ( &bzerr, bzf, (void*)ibuf, nIbuf );
+      if (bzerr != BZ_OK) goto errhandler;
+
+   }
+
+   BZ2_bzWriteClose64 ( &bzerr, bzf, 0, 
+                        &nbytes_in_lo32, &nbytes_in_hi32,
+                        &nbytes_out_lo32, &nbytes_out_hi32 );
+   if (bzerr != BZ_OK) goto errhandler;
+
+   if (ferror(zStream)) goto errhandler_io;
+   ret = fflush ( zStream );
+   if (ret == EOF) goto errhandler_io;
+   if (zStream != stdout) {
+      Int32 fd = fileno ( zStream );
+      if (fd < 0) goto errhandler_io;
+      applySavedFileAttrToOutputFile ( fd );
+      ret = fclose ( zStream );
+      outputHandleJustInCase = NULL;
+      if (ret == EOF) goto errhandler_io;
+   }
+   outputHandleJustInCase = NULL;
+   if (ferror(stream)) goto errhandler_io;
+   ret = fclose ( stream );
+   if (ret == EOF) goto errhandler_io;
+
+   if (verbosity >= 1) {
+      if (nbytes_in_lo32 == 0 && nbytes_in_hi32 == 0) {
+        fprintf ( stderr, " no data compressed.\n");
+      } else {
+        Char   buf_nin[32], buf_nout[32];
+        UInt64 nbytes_in,   nbytes_out;
+        double nbytes_in_d, nbytes_out_d;
+        uInt64_from_UInt32s ( &nbytes_in, 
+                              nbytes_in_lo32, nbytes_in_hi32 );
+        uInt64_from_UInt32s ( &nbytes_out, 
+                              nbytes_out_lo32, nbytes_out_hi32 );
+        nbytes_in_d  = uInt64_to_double ( &nbytes_in );
+        nbytes_out_d = uInt64_to_double ( &nbytes_out );
+        uInt64_toAscii ( buf_nin, &nbytes_in );
+        uInt64_toAscii ( buf_nout, &nbytes_out );
+        fprintf ( stderr, "%6.3f:1, %6.3f bits/byte, "
+                  "%5.2f%% saved, %s in, %s out.\n",
+                  nbytes_in_d / nbytes_out_d,
+                  (8.0 * nbytes_out_d) / nbytes_in_d,
+                  100.0 * (1.0 - nbytes_out_d / nbytes_in_d),
+                  buf_nin,
+                  buf_nout
+                );
+      }
+   }
+
+   return;
+
+   errhandler:
+   BZ2_bzWriteClose64 ( &bzerr_dummy, bzf, 1, 
+                        &nbytes_in_lo32, &nbytes_in_hi32,
+                        &nbytes_out_lo32, &nbytes_out_hi32 );
+   switch (bzerr) {
+      case BZ_CONFIG_ERROR:
+         configError(); break;
+      case BZ_MEM_ERROR:
+         outOfMemory (); break;
+      case BZ_IO_ERROR:
+         errhandler_io:
+         ioError(); break;
+      default:
+         panic ( "compress:unexpected error" );
+   }
+
+   panic ( "compress:end" );
+   /*notreached*/
+}
+
+
+
+/*---------------------------------------------*/
+static 
+Bool uncompressStream ( FILE *zStream, FILE *stream )
+{
+   BZFILE* bzf = NULL;
+   Int32   bzerr, bzerr_dummy, ret, nread, streamNo, i;
+   UChar   obuf[5000];
+   UChar   unused[BZ_MAX_UNUSED];
+   Int32   nUnused;
+   void*   unusedTmpV;
+   UChar*  unusedTmp;
+
+   nUnused = 0;
+   streamNo = 0;
+
+   SET_BINARY_MODE(stream);
+   SET_BINARY_MODE(zStream);
+
+   if (ferror(stream)) goto errhandler_io;
+   if (ferror(zStream)) goto errhandler_io;
+
+   while (True) {
+
+      bzf = BZ2_bzReadOpen ( 
+               &bzerr, zStream, verbosity, 
+               (int)smallMode, unused, nUnused
+            );
+      if (bzf == NULL || bzerr != BZ_OK) goto errhandler;
+      streamNo++;
+
+      while (bzerr == BZ_OK) {
+         nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 );
+         if (bzerr == BZ_DATA_ERROR_MAGIC) goto trycat;
+         if ((bzerr == BZ_OK || bzerr == BZ_STREAM_END) && nread > 0)
+            fwrite ( obuf, sizeof(UChar), nread, stream );
+         if (ferror(stream)) goto errhandler_io;
+      }
+      if (bzerr != BZ_STREAM_END) goto errhandler;
+
+      BZ2_bzReadGetUnused ( &bzerr, bzf, &unusedTmpV, &nUnused );
+      if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" );
+
+      unusedTmp = (UChar*)unusedTmpV;
+      for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i];
+
+      BZ2_bzReadClose ( &bzerr, bzf );
+      if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" );
+
+      if (nUnused == 0 && myfeof(zStream)) break;
+   }
+
+   closeok:
+   if (ferror(zStream)) goto errhandler_io;
+   if (stream != stdout) {
+      Int32 fd = fileno ( stream );
+      if (fd < 0) goto errhandler_io;
+      applySavedFileAttrToOutputFile ( fd );
+   }
+   ret = fclose ( zStream );
+   if (ret == EOF) goto errhandler_io;
+
+   if (ferror(stream)) goto errhandler_io;
+   ret = fflush ( stream );
+   if (ret != 0) goto errhandler_io;
+   if (stream != stdout) {
+      ret = fclose ( stream );
+      outputHandleJustInCase = NULL;
+      if (ret == EOF) goto errhandler_io;
+   }
+   outputHandleJustInCase = NULL;
+   if (verbosity >= 2) fprintf ( stderr, "\n    " );
+   return True;
+
+   trycat: 
+   if (forceOverwrite) {
+      rewind(zStream);
+      while (True) {
+        if (myfeof(zStream)) break;
+        nread = fread ( obuf, sizeof(UChar), 5000, zStream );
+        if (ferror(zStream)) goto errhandler_io;
+        if (nread > 0) fwrite ( obuf, sizeof(UChar), nread, stream );
+        if (ferror(stream)) goto errhandler_io;
+      }
+      goto closeok;
+   }
+  
+   errhandler:
+   BZ2_bzReadClose ( &bzerr_dummy, bzf );
+   switch (bzerr) {
+      case BZ_CONFIG_ERROR:
+         configError(); break;
+      case BZ_IO_ERROR:
+         errhandler_io:
+         ioError(); break;
+      case BZ_DATA_ERROR:
+         crcError();
+      case BZ_MEM_ERROR:
+         outOfMemory();
+      case BZ_UNEXPECTED_EOF:
+         compressedStreamEOF();
+      case BZ_DATA_ERROR_MAGIC:
+         if (zStream != stdin) fclose(zStream);
+         if (stream != stdout) fclose(stream);
+         if (streamNo == 1) {
+            return False;
+         } else {
+            if (noisy)
+            fprintf ( stderr, 
+                      "\n%s: %s: trailing garbage after EOF ignored\n",
+                      progName, inName );
+            return True;       
+         }
+      default:
+         panic ( "decompress:unexpected error" );
+   }
+
+   panic ( "decompress:end" );
+   return True; /*notreached*/
+}
+
+
+/*---------------------------------------------*/
+static 
+Bool testStream ( FILE *zStream )
+{
+   BZFILE* bzf = NULL;
+   Int32   bzerr, bzerr_dummy, ret, nread, streamNo, i;
+   UChar   obuf[5000];
+   UChar   unused[BZ_MAX_UNUSED];
+   Int32   nUnused;
+   void*   unusedTmpV;
+   UChar*  unusedTmp;
+
+   nUnused = 0;
+   streamNo = 0;
+
+   SET_BINARY_MODE(zStream);
+   if (ferror(zStream)) goto errhandler_io;
+
+   while (True) {
+
+      bzf = BZ2_bzReadOpen ( 
+               &bzerr, zStream, verbosity, 
+               (int)smallMode, unused, nUnused
+            );
+      if (bzf == NULL || bzerr != BZ_OK) goto errhandler;
+      streamNo++;
+
+      while (bzerr == BZ_OK) {
+         nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 );
+         if (bzerr == BZ_DATA_ERROR_MAGIC) goto errhandler;
+      }
+      if (bzerr != BZ_STREAM_END) goto errhandler;
+
+      BZ2_bzReadGetUnused ( &bzerr, bzf, &unusedTmpV, &nUnused );
+      if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" );
+
+      unusedTmp = (UChar*)unusedTmpV;
+      for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i];
+
+      BZ2_bzReadClose ( &bzerr, bzf );
+      if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" );
+      if (nUnused == 0 && myfeof(zStream)) break;
+
+   }
+
+   if (ferror(zStream)) goto errhandler_io;
+   ret = fclose ( zStream );
+   if (ret == EOF) goto errhandler_io;
+
+   if (verbosity >= 2) fprintf ( stderr, "\n    " );
+   return True;
+
+   errhandler:
+   BZ2_bzReadClose ( &bzerr_dummy, bzf );
+   if (verbosity == 0) 
+      fprintf ( stderr, "%s: %s: ", progName, inName );
+   switch (bzerr) {
+      case BZ_CONFIG_ERROR:
+         configError(); break;
+      case BZ_IO_ERROR:
+         errhandler_io:
+         ioError(); break;
+      case BZ_DATA_ERROR:
+         fprintf ( stderr,
+                   "data integrity (CRC) error in data\n" );
+         return False;
+      case BZ_MEM_ERROR:
+         outOfMemory();
+      case BZ_UNEXPECTED_EOF:
+         fprintf ( stderr,
+                   "file ends unexpectedly\n" );
+         return False;
+      case BZ_DATA_ERROR_MAGIC:
+         if (zStream != stdin) fclose(zStream);
+         if (streamNo == 1) {
+          fprintf ( stderr, 
+                    "bad magic number (file not created by bzip2)\n" );
+            return False;
+         } else {
+            if (noisy)
+            fprintf ( stderr, 
+                      "trailing garbage after EOF ignored\n" );
+            return True;       
+         }
+      default:
+         panic ( "test:unexpected error" );
+   }
+
+   panic ( "test:end" );
+   return True; /*notreached*/
+}
+
+
+/*---------------------------------------------------*/
+/*--- Error [non-] handling grunge                ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------*/
+static
+void setExit ( Int32 v )
+{
+   if (v > exitValue) exitValue = v;
+}
+
+
+/*---------------------------------------------*/
+static 
+void cadvise ( void )
+{
+   if (noisy)
+   fprintf (
+      stderr,
+      "\nIt is possible that the compressed file(s) have become corrupted.\n"
+        "You can use the -tvv option to test integrity of such files.\n\n"
+        "You can use the `bzip2recover' program to attempt to recover\n"
+        "data from undamaged sections of corrupted files.\n\n"
+    );
+}
+
+
+/*---------------------------------------------*/
+static 
+void showFileNames ( void )
+{
+   if (noisy)
+   fprintf (
+      stderr,
+      "\tInput file = %s, output file = %s\n",
+      inName, outName 
+   );
+}
+
+
+/*---------------------------------------------*/
+static 
+void cleanUpAndFail ( Int32 ec )
+{
+   IntNative      retVal;
+   struct MY_STAT statBuf;
+
+   if ( srcMode == SM_F2F 
+        && opMode != OM_TEST
+        && deleteOutputOnInterrupt ) {
+
+      /* Check whether input file still exists.  Delete output file
+         only if input exists to avoid loss of data.  Joerg Prante, 5
+         January 2002.  (JRS 06-Jan-2002: other changes in 1.0.2 mean
+         this is less likely to happen.  But to be ultra-paranoid, we
+         do the check anyway.)  */
+      retVal = MY_STAT ( inName, &statBuf );
+      if (retVal == 0) {
+         if (noisy)
+            fprintf ( stderr, 
+                      "%s: Deleting output file %s, if it exists.\n",
+                      progName, outName );
+         if (outputHandleJustInCase != NULL)
+            fclose ( outputHandleJustInCase );
+         retVal = remove ( outName );
+         if (retVal != 0)
+            fprintf ( stderr,
+                      "%s: WARNING: deletion of output file "
+                      "(apparently) failed.\n",
+                      progName );
+      } else {
+         fprintf ( stderr,
+                   "%s: WARNING: deletion of output file suppressed\n",
+                    progName );
+         fprintf ( stderr,
+                   "%s:    since input file no longer exists.  Output file\n",
+                   progName );
+         fprintf ( stderr,
+                   "%s:    `%s' may be incomplete.\n",
+                   progName, outName );
+         fprintf ( stderr, 
+                   "%s:    I suggest doing an integrity test (bzip2 -tv)"
+                   " of it.\n",
+                   progName );
+      }
+   }
+
+   if (noisy && numFileNames > 0 && numFilesProcessed < numFileNames) {
+      fprintf ( stderr, 
+                "%s: WARNING: some files have not been processed:\n"
+                "%s:    %d specified on command line, %d not processed yet.\n\n",
+                progName, progName,
+                numFileNames, numFileNames - numFilesProcessed );
+   }
+   setExit(ec);
+   exit(exitValue);
+}
+
+
+/*---------------------------------------------*/
+static 
+void panic ( const Char* s )
+{
+   fprintf ( stderr,
+             "\n%s: PANIC -- internal consistency error:\n"
+             "\t%s\n"
+             "\tThis is a BUG.  Please report it to me at:\n"
+             "\tjseward@bzip.org\n",
+             progName, s );
+   showFileNames();
+   cleanUpAndFail( 3 );
+}
+
+
+/*---------------------------------------------*/
+static 
+void crcError ( void )
+{
+   fprintf ( stderr,
+             "\n%s: Data integrity error when decompressing.\n",
+             progName );
+   showFileNames();
+   cadvise();
+   cleanUpAndFail( 2 );
+}
+
+
+/*---------------------------------------------*/
+static 
+void compressedStreamEOF ( void )
+{
+  if (noisy) {
+    fprintf ( stderr,
+             "\n%s: Compressed file ends unexpectedly;\n\t"
+             "perhaps it is corrupted?  *Possible* reason follows.\n",
+             progName );
+    perror ( progName );
+    showFileNames();
+    cadvise();
+  }
+  cleanUpAndFail( 2 );
+}
+
+
+/*---------------------------------------------*/
+static 
+void ioError ( void )
+{
+   fprintf ( stderr,
+             "\n%s: I/O or other error, bailing out.  "
+             "Possible reason follows.\n",
+             progName );
+   perror ( progName );
+   showFileNames();
+   cleanUpAndFail( 1 );
+}
+
+
+/*---------------------------------------------*/
+static 
+void mySignalCatcher ( IntNative n )
+{
+   fprintf ( stderr,
+             "\n%s: Control-C or similar caught, quitting.\n",
+             progName );
+   cleanUpAndFail(1);
+}
+
+
+/*---------------------------------------------*/
+static 
+void mySIGSEGVorSIGBUScatcher ( IntNative n )
+{
+   if (opMode == OM_Z)
+      fprintf ( 
+      stderr,
+      "\n%s: Caught a SIGSEGV or SIGBUS whilst compressing.\n"
+      "\n"
+      "   Possible causes are (most likely first):\n"
+      "   (1) This computer has unreliable memory or cache hardware\n"
+      "       (a surprisingly common problem; try a different machine.)\n"
+      "   (2) A bug in the compiler used to create this executable\n"
+      "       (unlikely, if you didn't compile bzip2 yourself.)\n"
+      "   (3) A real bug in bzip2 -- I hope this should never be the case.\n"
+      "   The user's manual, Section 4.3, has more info on (1) and (2).\n"
+      "   \n"
+      "   If you suspect this is a bug in bzip2, or are unsure about (1)\n"
+      "   or (2), feel free to report it to me at: jseward@bzip.org.\n"
+      "   Section 4.3 of the user's manual describes the info a useful\n"
+      "   bug report should have.  If the manual is available on your\n"
+      "   system, please try and read it before mailing me.  If you don't\n"
+      "   have the manual or can't be bothered to read it, mail me anyway.\n"
+      "\n",
+      progName );
+      else
+      fprintf ( 
+      stderr,
+      "\n%s: Caught a SIGSEGV or SIGBUS whilst decompressing.\n"
+      "\n"
+      "   Possible causes are (most likely first):\n"
+      "   (1) The compressed data is corrupted, and bzip2's usual checks\n"
+      "       failed to detect this.  Try bzip2 -tvv my_file.bz2.\n"
+      "   (2) This computer has unreliable memory or cache hardware\n"
+      "       (a surprisingly common problem; try a different machine.)\n"
+      "   (3) A bug in the compiler used to create this executable\n"
+      "       (unlikely, if you didn't compile bzip2 yourself.)\n"
+      "   (4) A real bug in bzip2 -- I hope this should never be the case.\n"
+      "   The user's manual, Section 4.3, has more info on (2) and (3).\n"
+      "   \n"
+      "   If you suspect this is a bug in bzip2, or are unsure about (2)\n"
+      "   or (3), feel free to report it to me at: jseward@bzip.org.\n"
+      "   Section 4.3 of the user's manual describes the info a useful\n"
+      "   bug report should have.  If the manual is available on your\n"
+      "   system, please try and read it before mailing me.  If you don't\n"
+      "   have the manual or can't be bothered to read it, mail me anyway.\n"
+      "\n",
+      progName );
+
+   showFileNames();
+   if (opMode == OM_Z)
+      cleanUpAndFail( 3 ); else
+      { cadvise(); cleanUpAndFail( 2 ); }
+}
+
+
+/*---------------------------------------------*/
+static 
+void outOfMemory ( void )
+{
+   fprintf ( stderr,
+             "\n%s: couldn't allocate enough memory\n",
+             progName );
+   showFileNames();
+   cleanUpAndFail(1);
+}
+
+
+/*---------------------------------------------*/
+static 
+void configError ( void )
+{
+   fprintf ( stderr,
+             "bzip2: I'm not configured correctly for this platform!\n"
+             "\tI require Int32, Int16 and Char to have sizes\n"
+             "\tof 4, 2 and 1 bytes to run properly, and they don't.\n"
+             "\tProbably you can fix this by defining them correctly,\n"
+             "\tand recompiling.  Bye!\n" );
+   setExit(3);
+   exit(exitValue);
+}
+
+
+/*---------------------------------------------------*/
+/*--- The main driver machinery                   ---*/
+/*---------------------------------------------------*/
+
+/* All rather crufty.  The main problem is that input files
+   are stat()d multiple times before use.  This should be
+   cleaned up. 
+*/
+
+/*---------------------------------------------*/
+static 
+void pad ( Char *s )
+{
+   Int32 i;
+   if ( (Int32)strlen(s) >= longestFileName ) return;
+   for (i = 1; i <= longestFileName - (Int32)strlen(s); i++)
+      fprintf ( stderr, " " );
+}
+
+
+/*---------------------------------------------*/
+static 
+void copyFileName ( Char* to, Char* from ) 
+{
+   if ( strlen(from) > FILE_NAME_LEN-10 )  {
+      fprintf (
+         stderr,
+         "bzip2: file name\n`%s'\n"
+         "is suspiciously (more than %d chars) long.\n"
+         "Try using a reasonable file name instead.  Sorry! :-)\n",
+         from, FILE_NAME_LEN-10
+      );
+      setExit(1);
+      exit(exitValue);
+   }
+
+  strncpy(to,from,FILE_NAME_LEN-10);
+  to[FILE_NAME_LEN-10]='\0';
+}
+
+
+/*---------------------------------------------*/
+static 
+Bool fileExists ( Char* name )
+{
+   FILE *tmp   = fopen ( name, "rb" );
+   Bool exists = (tmp != NULL);
+   if (tmp != NULL) fclose ( tmp );
+   return exists;
+}
+
+
+/*---------------------------------------------*/
+/* Open an output file safely with O_EXCL and good permissions.
+   This avoids a race condition in versions < 1.0.2, in which
+   the file was first opened and then had its interim permissions
+   set safely.  We instead use open() to create the file with
+   the interim permissions required. (--- --- rw-).
+
+   For non-Unix platforms, if we are not worrying about
+   security issues, simple this simply behaves like fopen.
+*/
+static
+FILE* fopen_output_safely ( Char* name, const char* mode )
+{
+#  if BZ_UNIX
+   FILE*     fp;
+   IntNative fh;
+   fh = open(name, O_WRONLY|O_CREAT|O_EXCL, S_IWUSR|S_IRUSR);
+   if (fh == -1) return NULL;
+   fp = fdopen(fh, mode);
+   if (fp == NULL) close(fh);
+   return fp;
+#  else
+   return fopen(name, mode);
+#  endif
+}
+
+
+/*---------------------------------------------*/
+/*--
+  if in doubt, return True
+--*/
+static 
+Bool notAStandardFile ( Char* name )
+{
+   IntNative      i;
+   struct MY_STAT statBuf;
+
+   i = MY_LSTAT ( name, &statBuf );
+   if (i != 0) return True;
+   if (MY_S_ISREG(statBuf.st_mode)) return False;
+   return True;
+}
+
+
+/*---------------------------------------------*/
+/*--
+  rac 11/21/98 see if file has hard links to it
+--*/
+static 
+Int32 countHardLinks ( Char* name )
+{  
+   IntNative      i;
+   struct MY_STAT statBuf;
+
+   i = MY_LSTAT ( name, &statBuf );
+   if (i != 0) return 0;
+   return (statBuf.st_nlink - 1);
+}
+
+
+/*---------------------------------------------*/
+/* Copy modification date, access date, permissions and owner from the
+   source to destination file.  We have to copy this meta-info off
+   into fileMetaInfo before starting to compress / decompress it,
+   because doing it afterwards means we get the wrong access time.
+
+   To complicate matters, in compress() and decompress() below, the
+   sequence of tests preceding the call to saveInputFileMetaInfo()
+   involves calling fileExists(), which in turn establishes its result
+   by attempting to fopen() the file, and if successful, immediately
+   fclose()ing it again.  So we have to assume that the fopen() call
+   does not cause the access time field to be updated.
+
+   Reading of the man page for stat() (man 2 stat) on RedHat 7.2 seems
+   to imply that merely doing open() will not affect the access time.
+   Therefore we merely need to hope that the C library only does
+   open() as a result of fopen(), and not any kind of read()-ahead
+   cleverness.
+
+   It sounds pretty fragile to me.  Whether this carries across
+   robustly to arbitrary Unix-like platforms (or even works robustly
+   on this one, RedHat 7.2) is unknown to me.  Nevertheless ...  
+*/
+#if BZ_UNIX
+static 
+struct MY_STAT fileMetaInfo;
+#endif
+
+static 
+void saveInputFileMetaInfo ( Char *srcName )
+{
+#  if BZ_UNIX
+   IntNative retVal;
+   /* Note use of stat here, not lstat. */
+   retVal = MY_STAT( srcName, &fileMetaInfo );
+   ERROR_IF_NOT_ZERO ( retVal );
+#  endif
+}
+
+
+static 
+void applySavedTimeInfoToOutputFile ( Char *dstName )
+{
+#  if BZ_UNIX
+   IntNative      retVal;
+   struct utimbuf uTimBuf;
+
+   uTimBuf.actime = fileMetaInfo.st_atime;
+   uTimBuf.modtime = fileMetaInfo.st_mtime;
+
+   retVal = utime ( dstName, &uTimBuf );
+   ERROR_IF_NOT_ZERO ( retVal );
+#  endif
+}
+
+static 
+void applySavedFileAttrToOutputFile ( IntNative fd )
+{
+#  if BZ_UNIX
+   IntNative retVal;
+
+   retVal = fchmod ( fd, fileMetaInfo.st_mode );
+   ERROR_IF_NOT_ZERO ( retVal );
+
+   (void) fchown ( fd, fileMetaInfo.st_uid, fileMetaInfo.st_gid );
+   /* chown() will in many cases return with EPERM, which can
+      be safely ignored.
+   */
+#  endif
+}
+
+
+/*---------------------------------------------*/
+static 
+Bool containsDubiousChars ( Char* name )
+{
+#  if BZ_UNIX
+   /* On unix, files can contain any characters and the file expansion
+    * is performed by the shell.
+    */
+   return False;
+#  else /* ! BZ_UNIX */
+   /* On non-unix (Win* platforms), wildcard characters are not allowed in 
+    * filenames.
+    */
+   for (; *name != '\0'; name++)
+      if (*name == '?' || *name == '*') return True;
+   return False;
+#  endif /* BZ_UNIX */
+}
+
+
+/*---------------------------------------------*/
+#define BZ_N_SUFFIX_PAIRS 4
+
+const Char* zSuffix[BZ_N_SUFFIX_PAIRS] 
+   = { ".bz2", ".bz", ".tbz2", ".tbz" };
+const Char* unzSuffix[BZ_N_SUFFIX_PAIRS] 
+   = { "", "", ".tar", ".tar" };
+
+static 
+Bool hasSuffix ( Char* s, const Char* suffix )
+{
+   Int32 ns = strlen(s);
+   Int32 nx = strlen(suffix);
+   if (ns < nx) return False;
+   if (strcmp(s + ns - nx, suffix) == 0) return True;
+   return False;
+}
+
+static 
+Bool mapSuffix ( Char* name, 
+                 const Char* oldSuffix, 
+                 const Char* newSuffix )
+{
+   if (!hasSuffix(name,oldSuffix)) return False;
+   name[strlen(name)-strlen(oldSuffix)] = 0;
+   strcat ( name, newSuffix );
+   return True;
+}
+
+
+/*---------------------------------------------*/
+static 
+void compress ( Char *name )
+{
+   FILE  *inStr;
+   FILE  *outStr;
+   Int32 n, i;
+   struct MY_STAT statBuf;
+
+   deleteOutputOnInterrupt = False;
+
+   if (name == NULL && srcMode != SM_I2O)
+      panic ( "compress: bad modes\n" );
+
+   switch (srcMode) {
+      case SM_I2O: 
+         copyFileName ( inName, (Char*)"(stdin)" );
+         copyFileName ( outName, (Char*)"(stdout)" ); 
+         break;
+      case SM_F2F: 
+         copyFileName ( inName, name );
+         copyFileName ( outName, name );
+         strcat ( outName, ".bz2" ); 
+         break;
+      case SM_F2O: 
+         copyFileName ( inName, name );
+         copyFileName ( outName, (Char*)"(stdout)" ); 
+         break;
+   }
+
+   if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
+      if (noisy)
+      fprintf ( stderr, "%s: There are no files matching `%s'.\n",
+                progName, inName );
+      setExit(1);
+      return;
+   }
+   if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
+      fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+                progName, inName, strerror(errno) );
+      setExit(1);
+      return;
+   }
+   for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++) {
+      if (hasSuffix(inName, zSuffix[i])) {
+         if (noisy)
+         fprintf ( stderr, 
+                   "%s: Input file %s already has %s suffix.\n",
+                   progName, inName, zSuffix[i] );
+         setExit(1);
+         return;
+      }
+   }
+   if ( srcMode == SM_F2F || srcMode == SM_F2O ) {
+      MY_STAT(inName, &statBuf);
+      if ( MY_S_ISDIR(statBuf.st_mode) ) {
+         fprintf( stderr,
+                  "%s: Input file %s is a directory.\n",
+                  progName,inName);
+         setExit(1);
+         return;
+      }
+   }
+   if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) {
+      if (noisy)
+      fprintf ( stderr, "%s: Input file %s is not a normal file.\n",
+                progName, inName );
+      setExit(1);
+      return;
+   }
+   if ( srcMode == SM_F2F && fileExists ( outName ) ) {
+      if (forceOverwrite) {
+        remove(outName);
+      } else {
+        fprintf ( stderr, "%s: Output file %s already exists.\n",
+                  progName, outName );
+        setExit(1);
+        return;
+      }
+   }
+   if ( srcMode == SM_F2F && !forceOverwrite &&
+        (n=countHardLinks ( inName )) > 0) {
+      fprintf ( stderr, "%s: Input file %s has %d other link%s.\n",
+                progName, inName, n, n > 1 ? "s" : "" );
+      setExit(1);
+      return;
+   }
+
+   if ( srcMode == SM_F2F ) {
+      /* Save the file's meta-info before we open it.  Doing it later
+         means we mess up the access times. */
+      saveInputFileMetaInfo ( inName );
+   }
+
+   switch ( srcMode ) {
+
+      case SM_I2O:
+         inStr = stdin;
+         outStr = stdout;
+         if ( isatty ( fileno ( stdout ) ) ) {
+            fprintf ( stderr,
+                      "%s: I won't write compressed data to a terminal.\n",
+                      progName );
+            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+                              progName, progName );
+            setExit(1);
+            return;
+         };
+         break;
+
+      case SM_F2O:
+         inStr = fopen ( inName, "rb" );
+         outStr = stdout;
+         if ( isatty ( fileno ( stdout ) ) ) {
+            fprintf ( stderr,
+                      "%s: I won't write compressed data to a terminal.\n",
+                      progName );
+            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+                              progName, progName );
+            if ( inStr != NULL ) fclose ( inStr );
+            setExit(1);
+            return;
+         };
+         if ( inStr == NULL ) {
+            fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+                      progName, inName, strerror(errno) );
+            setExit(1);
+            return;
+         };
+         break;
+
+      case SM_F2F:
+         inStr = fopen ( inName, "rb" );
+         outStr = fopen_output_safely ( outName, "wb" );
+         if ( outStr == NULL) {
+            fprintf ( stderr, "%s: Can't create output file %s: %s.\n",
+                      progName, outName, strerror(errno) );
+            if ( inStr != NULL ) fclose ( inStr );
+            setExit(1);
+            return;
+         }
+         if ( inStr == NULL ) {
+            fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+                      progName, inName, strerror(errno) );
+            if ( outStr != NULL ) fclose ( outStr );
+            setExit(1);
+            return;
+         };
+         break;
+
+      default:
+         panic ( "compress: bad srcMode" );
+         break;
+   }
+
+   if (verbosity >= 1) {
+      fprintf ( stderr,  "  %s: ", inName );
+      pad ( inName );
+      fflush ( stderr );
+   }
+
+   /*--- Now the input and output handles are sane.  Do the Biz. ---*/
+   outputHandleJustInCase = outStr;
+   deleteOutputOnInterrupt = True;
+   compressStream ( inStr, outStr );
+   outputHandleJustInCase = NULL;
+
+   /*--- If there was an I/O error, we won't get here. ---*/
+   if ( srcMode == SM_F2F ) {
+      applySavedTimeInfoToOutputFile ( outName );
+      deleteOutputOnInterrupt = False;
+      if ( !keepInputFiles ) {
+         IntNative retVal = remove ( inName );
+         ERROR_IF_NOT_ZERO ( retVal );
+      }
+   }
+
+   deleteOutputOnInterrupt = False;
+}
+
+
+/*---------------------------------------------*/
+static 
+void uncompress ( Char *name )
+{
+   FILE  *inStr;
+   FILE  *outStr;
+   Int32 n, i;
+   Bool  magicNumberOK;
+   Bool  cantGuess;
+   struct MY_STAT statBuf;
+
+   deleteOutputOnInterrupt = False;
+
+   if (name == NULL && srcMode != SM_I2O)
+      panic ( "uncompress: bad modes\n" );
+
+   cantGuess = False;
+   switch (srcMode) {
+      case SM_I2O: 
+         copyFileName ( inName, (Char*)"(stdin)" );
+         copyFileName ( outName, (Char*)"(stdout)" ); 
+         break;
+      case SM_F2F: 
+         copyFileName ( inName, name );
+         copyFileName ( outName, name );
+         for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++)
+            if (mapSuffix(outName,zSuffix[i],unzSuffix[i]))
+               goto zzz; 
+         cantGuess = True;
+         strcat ( outName, ".out" );
+         break;
+      case SM_F2O: 
+         copyFileName ( inName, name );
+         copyFileName ( outName, (Char*)"(stdout)" ); 
+         break;
+   }
+
+   zzz:
+   if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
+      if (noisy)
+      fprintf ( stderr, "%s: There are no files matching `%s'.\n",
+                progName, inName );
+      setExit(1);
+      return;
+   }
+   if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
+      fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+                progName, inName, strerror(errno) );
+      setExit(1);
+      return;
+   }
+   if ( srcMode == SM_F2F || srcMode == SM_F2O ) {
+      MY_STAT(inName, &statBuf);
+      if ( MY_S_ISDIR(statBuf.st_mode) ) {
+         fprintf( stderr,
+                  "%s: Input file %s is a directory.\n",
+                  progName,inName);
+         setExit(1);
+         return;
+      }
+   }
+   if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) {
+      if (noisy)
+      fprintf ( stderr, "%s: Input file %s is not a normal file.\n",
+                progName, inName );
+      setExit(1);
+      return;
+   }
+   if ( /* srcMode == SM_F2F implied && */ cantGuess ) {
+      if (noisy)
+      fprintf ( stderr, 
+                "%s: Can't guess original name for %s -- using %s\n",
+                progName, inName, outName );
+      /* just a warning, no return */
+   }   
+   if ( srcMode == SM_F2F && fileExists ( outName ) ) {
+      if (forceOverwrite) {
+       remove(outName);
+      } else {
+        fprintf ( stderr, "%s: Output file %s already exists.\n",
+                  progName, outName );
+        setExit(1);
+        return;
+      }
+   }
+   if ( srcMode == SM_F2F && !forceOverwrite &&
+        (n=countHardLinks ( inName ) ) > 0) {
+      fprintf ( stderr, "%s: Input file %s has %d other link%s.\n",
+                progName, inName, n, n > 1 ? "s" : "" );
+      setExit(1);
+      return;
+   }
+
+   if ( srcMode == SM_F2F ) {
+      /* Save the file's meta-info before we open it.  Doing it later
+         means we mess up the access times. */
+      saveInputFileMetaInfo ( inName );
+   }
+
+   switch ( srcMode ) {
+
+      case SM_I2O:
+         inStr = stdin;
+         outStr = stdout;
+         if ( isatty ( fileno ( stdin ) ) ) {
+            fprintf ( stderr,
+                      "%s: I won't read compressed data from a terminal.\n",
+                      progName );
+            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+                              progName, progName );
+            setExit(1);
+            return;
+         };
+         break;
+
+      case SM_F2O:
+         inStr = fopen ( inName, "rb" );
+         outStr = stdout;
+         if ( inStr == NULL ) {
+            fprintf ( stderr, "%s: Can't open input file %s:%s.\n",
+                      progName, inName, strerror(errno) );
+            if ( inStr != NULL ) fclose ( inStr );
+            setExit(1);
+            return;
+         };
+         break;
+
+      case SM_F2F:
+         inStr = fopen ( inName, "rb" );
+         outStr = fopen_output_safely ( outName, "wb" );
+         if ( outStr == NULL) {
+            fprintf ( stderr, "%s: Can't create output file %s: %s.\n",
+                      progName, outName, strerror(errno) );
+            if ( inStr != NULL ) fclose ( inStr );
+            setExit(1);
+            return;
+         }
+         if ( inStr == NULL ) {
+            fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+                      progName, inName, strerror(errno) );
+            if ( outStr != NULL ) fclose ( outStr );
+            setExit(1);
+            return;
+         };
+         break;
+
+      default:
+         panic ( "uncompress: bad srcMode" );
+         break;
+   }
+
+   if (verbosity >= 1) {
+      fprintf ( stderr, "  %s: ", inName );
+      pad ( inName );
+      fflush ( stderr );
+   }
+
+   /*--- Now the input and output handles are sane.  Do the Biz. ---*/
+   outputHandleJustInCase = outStr;
+   deleteOutputOnInterrupt = True;
+   magicNumberOK = uncompressStream ( inStr, outStr );
+   outputHandleJustInCase = NULL;
+
+   /*--- If there was an I/O error, we won't get here. ---*/
+   if ( magicNumberOK ) {
+      if ( srcMode == SM_F2F ) {
+         applySavedTimeInfoToOutputFile ( outName );
+         deleteOutputOnInterrupt = False;
+         if ( !keepInputFiles ) {
+            IntNative retVal = remove ( inName );
+            ERROR_IF_NOT_ZERO ( retVal );
+         }
+      }
+   } else {
+      unzFailsExist = True;
+      deleteOutputOnInterrupt = False;
+      if ( srcMode == SM_F2F ) {
+         IntNative retVal = remove ( outName );
+         ERROR_IF_NOT_ZERO ( retVal );
+      }
+   }
+   deleteOutputOnInterrupt = False;
+
+   if ( magicNumberOK ) {
+      if (verbosity >= 1)
+         fprintf ( stderr, "done\n" );
+   } else {
+      setExit(2);
+      if (verbosity >= 1)
+         fprintf ( stderr, "not a bzip2 file.\n" ); else
+         fprintf ( stderr,
+                   "%s: %s is not a bzip2 file.\n",
+                   progName, inName );
+   }
+
+}
+
+
+/*---------------------------------------------*/
+static 
+void testf ( Char *name )
+{
+   FILE *inStr;
+   Bool allOK;
+   struct MY_STAT statBuf;
+
+   deleteOutputOnInterrupt = False;
+
+   if (name == NULL && srcMode != SM_I2O)
+      panic ( "testf: bad modes\n" );
+
+   copyFileName ( outName, (Char*)"(none)" );
+   switch (srcMode) {
+      case SM_I2O: copyFileName ( inName, (Char*)"(stdin)" ); break;
+      case SM_F2F: copyFileName ( inName, name ); break;
+      case SM_F2O: copyFileName ( inName, name ); break;
+   }
+
+   if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
+      if (noisy)
+      fprintf ( stderr, "%s: There are no files matching `%s'.\n",
+                progName, inName );
+      setExit(1);
+      return;
+   }
+   if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
+      fprintf ( stderr, "%s: Can't open input %s: %s.\n",
+                progName, inName, strerror(errno) );
+      setExit(1);
+      return;
+   }
+   if ( srcMode != SM_I2O ) {
+      MY_STAT(inName, &statBuf);
+      if ( MY_S_ISDIR(statBuf.st_mode) ) {
+         fprintf( stderr,
+                  "%s: Input file %s is a directory.\n",
+                  progName,inName);
+         setExit(1);
+         return;
+      }
+   }
+
+   switch ( srcMode ) {
+
+      case SM_I2O:
+         if ( isatty ( fileno ( stdin ) ) ) {
+            fprintf ( stderr,
+                      "%s: I won't read compressed data from a terminal.\n",
+                      progName );
+            fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+                              progName, progName );
+            setExit(1);
+            return;
+         };
+         inStr = stdin;
+         break;
+
+      case SM_F2O: case SM_F2F:
+         inStr = fopen ( inName, "rb" );
+         if ( inStr == NULL ) {
+            fprintf ( stderr, "%s: Can't open input file %s:%s.\n",
+                      progName, inName, strerror(errno) );
+            setExit(1);
+            return;
+         };
+         break;
+
+      default:
+         panic ( "testf: bad srcMode" );
+         break;
+   }
+
+   if (verbosity >= 1) {
+      fprintf ( stderr, "  %s: ", inName );
+      pad ( inName );
+      fflush ( stderr );
+   }
+
+   /*--- Now the input handle is sane.  Do the Biz. ---*/
+   outputHandleJustInCase = NULL;
+   allOK = testStream ( inStr );
+
+   if (allOK && verbosity >= 1) fprintf ( stderr, "ok\n" );
+   if (!allOK) testFailsExist = True;
+}
+
+
+/*---------------------------------------------*/
+static 
+void license ( void )
+{
+   fprintf ( stderr,
+
+    "bzip2, a block-sorting file compressor.  "
+    "Version %s.\n"
+    "   \n"
+    "   Copyright (C) 1996-2010 by Julian Seward.\n"
+    "   \n"
+    "   This program is free software; you can redistribute it and/or modify\n"
+    "   it under the terms set out in the LICENSE file, which is included\n"
+    "   in the bzip2-1.0.6 source distribution.\n"
+    "   \n"
+    "   This program is distributed in the hope that it will be useful,\n"
+    "   but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+    "   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
+    "   LICENSE file for more details.\n"
+    "   \n",
+    BZ2_bzlibVersion()
+   );
+}
+
+
+/*---------------------------------------------*/
+static 
+void usage ( Char *fullProgName )
+{
+   fprintf (
+      stderr,
+      "bzip2, a block-sorting file compressor.  "
+      "Version %s.\n"
+      "\n   usage: %s [flags and input files in any order]\n"
+      "\n"
+      "   -h --help           print this message\n"
+      "   -d --decompress     force decompression\n"
+      "   -z --compress       force compression\n"
+      "   -k --keep           keep (don't delete) input files\n"
+      "   -f --force          overwrite existing output files\n"
+      "   -t --test           test compressed file integrity\n"
+      "   -c --stdout         output to standard out\n"
+      "   -q --quiet          suppress noncritical error messages\n"
+      "   -v --verbose        be verbose (a 2nd -v gives more)\n"
+      "   -L --license        display software version & license\n"
+      "   -V --version        display software version & license\n"
+      "   -s --small          use less memory (at most 2500k)\n"
+      "   -1 .. -9            set block size to 100k .. 900k\n"
+      "   --fast              alias for -1\n"
+      "   --best              alias for -9\n"
+      "\n"
+      "   If invoked as `bzip2', default action is to compress.\n"
+      "              as `bunzip2',  default action is to decompress.\n"
+      "              as `bzcat', default action is to decompress to stdout.\n"
+      "\n"
+      "   If no file names are given, bzip2 compresses or decompresses\n"
+      "   from standard input to standard output.  You can combine\n"
+      "   short flags, so `-v -4' means the same as -v4 or -4v, &c.\n"
+#     if BZ_UNIX
+      "\n"
+#     endif
+      ,
+
+      BZ2_bzlibVersion(),
+      fullProgName
+   );
+}
+
+
+/*---------------------------------------------*/
+static 
+void redundant ( Char* flag )
+{
+   fprintf ( 
+      stderr, 
+      "%s: %s is redundant in versions 0.9.5 and above\n",
+      progName, flag );
+}
+
+
+/*---------------------------------------------*/
+/*--
+  All the garbage from here to main() is purely to
+  implement a linked list of command-line arguments,
+  into which main() copies argv[1 .. argc-1].
+
+  The purpose of this exercise is to facilitate 
+  the expansion of wildcard characters * and ? in 
+  filenames for OSs which don't know how to do it
+  themselves, like MSDOS, Windows 95 and NT.
+
+  The actual Dirty Work is done by the platform-
+  specific macro APPEND_FILESPEC.
+--*/
+
+typedef
+   struct zzzz {
+      Char        *name;
+      struct zzzz *link;
+   }
+   Cell;
+
+
+/*---------------------------------------------*/
+static 
+void *myMalloc ( Int32 n )
+{
+   void* p;
+
+   p = malloc ( (size_t)n );
+   if (p == NULL) outOfMemory ();
+   return p;
+}
+
+
+/*---------------------------------------------*/
+static 
+Cell *mkCell ( void )
+{
+   Cell *c;
+
+   c = (Cell*) myMalloc ( sizeof ( Cell ) );
+   c->name = NULL;
+   c->link = NULL;
+   return c;
+}
+
+
+/*---------------------------------------------*/
+static 
+Cell *snocString ( Cell *root, Char *name )
+{
+   if (root == NULL) {
+      Cell *tmp = mkCell();
+      tmp->name = (Char*) myMalloc ( 5 + strlen(name) );
+      strcpy ( tmp->name, name );
+      return tmp;
+   } else {
+      Cell *tmp = root;
+      while (tmp->link != NULL) tmp = tmp->link;
+      tmp->link = snocString ( tmp->link, name );
+      return root;
+   }
+}
+
+
+/*---------------------------------------------*/
+static 
+void addFlagsFromEnvVar ( Cell** argList, Char* varName ) 
+{
+   Int32 i, j, k;
+   Char *envbase, *p;
+
+   envbase = getenv(varName);
+   if (envbase != NULL) {
+      p = envbase;
+      i = 0;
+      while (True) {
+         if (p[i] == 0) break;
+         p += i;
+         i = 0;
+         while (isspace((Int32)(p[0]))) p++;
+         while (p[i] != 0 && !isspace((Int32)(p[i]))) i++;
+         if (i > 0) {
+            k = i; if (k > FILE_NAME_LEN-10) k = FILE_NAME_LEN-10;
+            for (j = 0; j < k; j++) tmpName[j] = p[j];
+            tmpName[k] = 0;
+            APPEND_FLAG(*argList, tmpName);
+         }
+      }
+   }
+}
+
+
+/*---------------------------------------------*/
+#define ISFLAG(s) (strcmp(aa->name, (s))==0)
+
+IntNative main ( IntNative argc, Char *argv[] )
+{
+   Int32  i, j;
+   Char   *tmp;
+   Cell   *argList;
+   Cell   *aa;
+   Bool   decode;
+
+   /*-- Be really really really paranoid :-) --*/
+   if (sizeof(Int32) != 4 || sizeof(UInt32) != 4  ||
+       sizeof(Int16) != 2 || sizeof(UInt16) != 2  ||
+       sizeof(Char)  != 1 || sizeof(UChar)  != 1)
+      configError();
+
+   /*-- Initialise --*/
+   outputHandleJustInCase  = NULL;
+   smallMode               = False;
+   keepInputFiles          = False;
+   forceOverwrite          = False;
+   noisy                   = True;
+   verbosity               = 0;
+   blockSize100k           = 9;
+   testFailsExist          = False;
+   unzFailsExist           = False;
+   numFileNames            = 0;
+   numFilesProcessed       = 0;
+   workFactor              = 30;
+   deleteOutputOnInterrupt = False;
+   exitValue               = 0;
+   i = j = 0; /* avoid bogus warning from egcs-1.1.X */
+
+   /*-- Set up signal handlers for mem access errors --*/
+   signal (SIGSEGV, mySIGSEGVorSIGBUScatcher);
+#  if BZ_UNIX
+#  ifndef __DJGPP__
+   signal (SIGBUS,  mySIGSEGVorSIGBUScatcher);
+#  endif
+#  endif
+
+   copyFileName ( inName,  (Char*)"(none)" );
+   copyFileName ( outName, (Char*)"(none)" );
+
+   copyFileName ( progNameReally, argv[0] );
+   progName = &progNameReally[0];
+   for (tmp = &progNameReally[0]; *tmp != '\0'; tmp++)
+      if (*tmp == PATH_SEP) progName = tmp + 1;
+
+
+   /*-- Copy flags from env var BZIP2, and 
+        expand filename wildcards in arg list.
+   --*/
+   argList = NULL;
+   addFlagsFromEnvVar ( &argList,  (Char*)"BZIP2" );
+   addFlagsFromEnvVar ( &argList,  (Char*)"BZIP" );
+   for (i = 1; i <= argc-1; i++)
+      APPEND_FILESPEC(argList, argv[i]);
+
+
+   /*-- Find the length of the longest filename --*/
+   longestFileName = 7;
+   numFileNames    = 0;
+   decode          = True;
+   for (aa = argList; aa != NULL; aa = aa->link) {
+      if (ISFLAG("--")) { decode = False; continue; }
+      if (aa->name[0] == '-' && decode) continue;
+      numFileNames++;
+      if (longestFileName < (Int32)strlen(aa->name) )
+         longestFileName = (Int32)strlen(aa->name);
+   }
+
+
+   /*-- Determine source modes; flag handling may change this too. --*/
+   if (numFileNames == 0)
+      srcMode = SM_I2O; else srcMode = SM_F2F;
+
+
+   /*-- Determine what to do (compress/uncompress/test/cat). --*/
+   /*-- Note that subsequent flag handling may change this. --*/
+   opMode = OM_Z;
+
+   if ( (strstr ( progName, "unzip" ) != 0) ||
+        (strstr ( progName, "UNZIP" ) != 0) )
+      opMode = OM_UNZ;
+
+   if ( (strstr ( progName, "z2cat" ) != 0) ||
+        (strstr ( progName, "Z2CAT" ) != 0) ||
+        (strstr ( progName, "zcat" ) != 0)  ||
+        (strstr ( progName, "ZCAT" ) != 0) )  {
+      opMode = OM_UNZ;
+      srcMode = (numFileNames == 0) ? SM_I2O : SM_F2O;
+   }
+
+
+   /*-- Look at the flags. --*/
+   for (aa = argList; aa != NULL; aa = aa->link) {
+      if (ISFLAG("--")) break;
+      if (aa->name[0] == '-' && aa->name[1] != '-') {
+         for (j = 1; aa->name[j] != '\0'; j++) {
+            switch (aa->name[j]) {
+               case 'c': srcMode          = SM_F2O; break;
+               case 'd': opMode           = OM_UNZ; break;
+               case 'z': opMode           = OM_Z; break;
+               case 'f': forceOverwrite   = True; break;
+               case 't': opMode           = OM_TEST; break;
+               case 'k': keepInputFiles   = True; break;
+               case 's': smallMode        = True; break;
+               case 'q': noisy            = False; break;
+               case '1': blockSize100k    = 1; break;
+               case '2': blockSize100k    = 2; break;
+               case '3': blockSize100k    = 3; break;
+               case '4': blockSize100k    = 4; break;
+               case '5': blockSize100k    = 5; break;
+               case '6': blockSize100k    = 6; break;
+               case '7': blockSize100k    = 7; break;
+               case '8': blockSize100k    = 8; break;
+               case '9': blockSize100k    = 9; break;
+               case 'V':
+               case 'L': license();            break;
+               case 'v': verbosity++; break;
+               case 'h': usage ( progName );
+                         exit ( 0 );
+                         break;
+               default:  fprintf ( stderr, "%s: Bad flag `%s'\n",
+                                   progName, aa->name );
+                         usage ( progName );
+                         exit ( 1 );
+                         break;
+            }
+         }
+      }
+   }
+   
+   /*-- And again ... --*/
+   for (aa = argList; aa != NULL; aa = aa->link) {
+      if (ISFLAG("--")) break;
+      if (ISFLAG("--stdout"))            srcMode          = SM_F2O;  else
+      if (ISFLAG("--decompress"))        opMode           = OM_UNZ;  else
+      if (ISFLAG("--compress"))          opMode           = OM_Z;    else
+      if (ISFLAG("--force"))             forceOverwrite   = True;    else
+      if (ISFLAG("--test"))              opMode           = OM_TEST; else
+      if (ISFLAG("--keep"))              keepInputFiles   = True;    else
+      if (ISFLAG("--small"))             smallMode        = True;    else
+      if (ISFLAG("--quiet"))             noisy            = False;   else
+      if (ISFLAG("--version"))           license();                  else
+      if (ISFLAG("--license"))           license();                  else
+      if (ISFLAG("--exponential"))       workFactor = 1;             else 
+      if (ISFLAG("--repetitive-best"))   redundant(aa->name);        else
+      if (ISFLAG("--repetitive-fast"))   redundant(aa->name);        else
+      if (ISFLAG("--fast"))              blockSize100k = 1;          else
+      if (ISFLAG("--best"))              blockSize100k = 9;          else
+      if (ISFLAG("--verbose"))           verbosity++;                else
+      if (ISFLAG("--help"))              { usage ( progName ); exit ( 0 ); }
+         else
+         if (strncmp ( aa->name, "--", 2) == 0) {
+            fprintf ( stderr, "%s: Bad flag `%s'\n", progName, aa->name );
+            usage ( progName );
+            exit ( 1 );
+         }
+   }
+
+   if (verbosity > 4) verbosity = 4;
+   if (opMode == OM_Z && smallMode && blockSize100k > 2) 
+      blockSize100k = 2;
+
+   if (opMode == OM_TEST && srcMode == SM_F2O) {
+      fprintf ( stderr, "%s: -c and -t cannot be used together.\n",
+                progName );
+      exit ( 1 );
+   }
+
+   if (srcMode == SM_F2O && numFileNames == 0)
+      srcMode = SM_I2O;
+
+   if (opMode != OM_Z) blockSize100k = 0;
+
+   if (srcMode == SM_F2F) {
+      signal (SIGINT,  mySignalCatcher);
+      signal (SIGTERM, mySignalCatcher);
+#     if BZ_UNIX
+      signal (SIGHUP,  mySignalCatcher);
+#     endif
+   }
+
+   if (opMode == OM_Z) {
+     if (srcMode == SM_I2O) {
+        compress ( NULL );
+     } else {
+        decode = True;
+        for (aa = argList; aa != NULL; aa = aa->link) {
+           if (ISFLAG("--")) { decode = False; continue; }
+           if (aa->name[0] == '-' && decode) continue;
+           numFilesProcessed++;
+           compress ( aa->name );
+        }
+     }
+   } 
+   else
+
+   if (opMode == OM_UNZ) {
+      unzFailsExist = False;
+      if (srcMode == SM_I2O) {
+         uncompress ( NULL );
+      } else {
+         decode = True;
+         for (aa = argList; aa != NULL; aa = aa->link) {
+            if (ISFLAG("--")) { decode = False; continue; }
+            if (aa->name[0] == '-' && decode) continue;
+            numFilesProcessed++;
+            uncompress ( aa->name );
+         }      
+      }
+      if (unzFailsExist) { 
+         setExit(2); 
+         exit(exitValue);
+      }
+   } 
+
+   else {
+      testFailsExist = False;
+      if (srcMode == SM_I2O) {
+         testf ( NULL );
+      } else {
+         decode = True;
+         for (aa = argList; aa != NULL; aa = aa->link) {
+           if (ISFLAG("--")) { decode = False; continue; }
+            if (aa->name[0] == '-' && decode) continue;
+            numFilesProcessed++;
+            testf ( aa->name );
+        }
+      }
+      if (testFailsExist && noisy) {
+         fprintf ( stderr,
+           "\n"
+           "You can use the `bzip2recover' program to attempt to recover\n"
+           "data from undamaged sections of corrupted files.\n\n"
+         );
+         setExit(2);
+         exit(exitValue);
+      }
+   }
+
+   /* Free the argument list memory to mollify leak detectors 
+      (eg) Purify, Checker.  Serves no other useful purpose.
+   */
+   aa = argList;
+   while (aa != NULL) {
+      Cell* aa2 = aa->link;
+      if (aa->name != NULL) free(aa->name);
+      free(aa);
+      aa = aa2;
+   }
+
+   return exitValue;
+}
+
+
+/*-----------------------------------------------------------*/
+/*--- end                                         bzip2.c ---*/
+/*-----------------------------------------------------------*/
diff --git a/bzip2/bzip2.txt b/bzip2/bzip2.txt
new file mode 100644 (file)
index 0000000..d2deb39
--- /dev/null
@@ -0,0 +1,391 @@
+
+NAME
+       bzip2, bunzip2 - a block-sorting file compressor, v1.0.6
+       bzcat - decompresses files to stdout
+       bzip2recover - recovers data from damaged bzip2 files
+
+
+SYNOPSIS
+       bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ...  ]
+       bunzip2 [ -fkvsVL ] [ filenames ...  ]
+       bzcat [ -s ] [ filenames ...  ]
+       bzip2recover filename
+
+
+DESCRIPTION
+       bzip2  compresses  files  using  the Burrows-Wheeler block
+       sorting text compression algorithm,  and  Huffman  coding.
+       Compression  is  generally  considerably  better than that
+       achieved by more conventional LZ77/LZ78-based compressors,
+       and  approaches  the performance of the PPM family of sta-
+       tistical compressors.
+
+       The command-line options are deliberately very similar  to
+       those of GNU gzip, but they are not identical.
+
+       bzip2  expects  a list of file names to accompany the com-
+       mand-line flags.  Each file is replaced  by  a  compressed
+       version  of  itself,  with  the  name "original_name.bz2".
+       Each compressed file has the same modification date,  per-
+       missions, and, when possible, ownership as the correspond-
+       ing original, so that these properties  can  be  correctly
+       restored  at  decompression  time.   File name handling is
+       naive in the sense that there is no mechanism for preserv-
+       ing  original file names, permissions, ownerships or dates
+       in filesystems which lack these concepts, or have  serious
+       file name length restrictions, such as MS-DOS.
+
+       bzip2  and  bunzip2 will by default not overwrite existing
+       files.  If you want this to happen, specify the -f flag.
+
+       If no file names  are  specified,  bzip2  compresses  from
+       standard  input  to  standard output.  In this case, bzip2
+       will decline to write compressed output to a terminal,  as
+       this  would  be  entirely  incomprehensible  and therefore
+       pointless.
+
+       bunzip2 (or bzip2 -d) decompresses  all  specified  files.
+       Files which were not created by bzip2 will be detected and
+       ignored, and a warning issued.  bzip2  attempts  to  guess
+       the  filename  for  the decompressed file from that of the
+       compressed file as follows:
+
+              filename.bz2    becomes   filename
+              filename.bz     becomes   filename
+              filename.tbz2   becomes   filename.tar
+              filename.tbz    becomes   filename.tar
+              anyothername    becomes   anyothername.out
+
+       If the file does not end in one of the recognised endings,
+       .bz2,  .bz,  .tbz2 or .tbz, bzip2 complains that it cannot
+       guess the name of the original file, and uses the original
+       name with .out appended.
+
+       As  with compression, supplying no filenames causes decom-
+       pression from standard input to standard output.
+
+       bunzip2 will correctly decompress a file which is the con-
+       catenation of two or more compressed files.  The result is
+       the concatenation of the corresponding uncompressed files.
+       Integrity testing (-t) of concatenated compressed files is
+       also supported.
+
+       You can also compress or decompress files to the  standard
+       output  by giving the -c flag.  Multiple files may be com-
+       pressed and decompressed like this.  The resulting outputs
+       are  fed  sequentially to stdout.  Compression of multiple
+       files in this manner generates a stream containing  multi-
+       ple compressed file representations.  Such a stream can be
+       decompressed correctly only  by  bzip2  version  0.9.0  or
+       later.   Earlier  versions of bzip2 will stop after decom-
+       pressing the first file in the stream.
+
+       bzcat (or bzip2 -dc) decompresses all specified  files  to
+       the standard output.
+
+       bzip2  will  read arguments from the environment variables
+       BZIP2 and BZIP, in  that  order,  and  will  process  them
+       before  any  arguments  read  from the command line.  This
+       gives a convenient way to supply default arguments.
+
+       Compression is always performed, even  if  the  compressed
+       file  is slightly larger than the original.  Files of less
+       than about one hundred bytes tend to get larger, since the
+       compression  mechanism  has  a  constant  overhead  in the
+       region of 50 bytes.  Random data (including the output  of
+       most  file  compressors)  is  coded at about 8.05 bits per
+       byte, giving an expansion of around 0.5%.
+
+       As a self-check for your  protection,  bzip2  uses  32-bit
+       CRCs  to make sure that the decompressed version of a file
+       is identical to the original.  This guards against corrup-
+       tion  of  the compressed data, and against undetected bugs
+       in bzip2 (hopefully very unlikely).  The chances  of  data
+       corruption  going  undetected  is  microscopic,  about one
+       chance in four billion for each file processed.  Be aware,
+       though,  that  the  check occurs upon decompression, so it
+       can only tell you that something is wrong.  It can't  help
+       you  recover  the original uncompressed data.  You can use
+       bzip2recover to try to recover data from damaged files.
+
+       Return values: 0 for a normal exit,  1  for  environmental
+       problems  (file not found, invalid flags, I/O errors, &c),
+       2 to indicate a corrupt compressed file, 3 for an internal
+       consistency error (eg, bug) which caused bzip2 to panic.
+
+
+OPTIONS
+       -c --stdout
+              Compress or decompress to standard output.
+
+       -d --decompress
+              Force  decompression.  bzip2, bunzip2 and bzcat are
+              really the same program,  and  the  decision  about
+              what  actions to take is done on the basis of which
+              name is used.  This flag overrides that  mechanism,
+              and forces bzip2 to decompress.
+
+       -z --compress
+              The   complement   to   -d:   forces   compression,
+              regardless of the invocation name.
+
+       -t --test
+              Check integrity of the specified file(s), but don't
+              decompress  them.   This  really  performs  a trial
+              decompression and throws away the result.
+
+       -f --force
+              Force overwrite of output files.   Normally,  bzip2
+              will  not  overwrite  existing  output files.  Also
+              forces bzip2 to break hard links to files, which it
+              otherwise wouldn't do.
+
+              bzip2  normally  declines to decompress files which
+              don't have the  correct  magic  header  bytes.   If
+              forced  (-f),  however,  it  will  pass  such files
+              through unmodified.  This is how GNU gzip  behaves.
+
+       -k --keep
+              Keep  (don't delete) input files during compression
+              or decompression.
+
+       -s --small
+              Reduce memory usage, for compression, decompression
+              and  testing.   Files  are  decompressed and tested
+              using a modified algorithm which only requires  2.5
+              bytes  per  block byte.  This means any file can be
+              decompressed in 2300k of memory,  albeit  at  about
+              half the normal speed.
+
+              During  compression,  -s  selects  a  block size of
+              200k, which limits memory use to  around  the  same
+              figure,  at  the expense of your compression ratio.
+              In short, if your  machine  is  low  on  memory  (8
+              megabytes  or  less),  use  -s for everything.  See
+              MEMORY MANAGEMENT below.
+
+       -q --quiet
+              Suppress non-essential warning messages.   Messages
+              pertaining  to I/O errors and other critical events
+              will not be suppressed.
+
+       -v --verbose
+              Verbose mode -- show the compression ratio for each
+              file  processed.   Further  -v's  increase the ver-
+              bosity level, spewing out lots of information which
+              is primarily of interest for diagnostic purposes.
+
+       -L --license -V --version
+              Display  the  software  version,  license terms and
+              conditions.
+
+       -1 (or --fast) to -9 (or --best)
+              Set the block size to 100 k, 200 k ..  900  k  when
+              compressing.   Has  no  effect  when decompressing.
+              See MEMORY MANAGEMENT below.  The --fast and --best
+              aliases  are  primarily for GNU gzip compatibility.
+              In particular, --fast doesn't make things  signifi-
+              cantly  faster.   And  --best  merely  selects  the
+              default behaviour.
+
+       --     Treats all subsequent arguments as file names, even
+              if they start with a dash.  This is so you can han-
+              dle files with names beginning  with  a  dash,  for
+              example: bzip2 -- -myfilename.
+
+       --repetitive-fast --repetitive-best
+              These  flags  are  redundant  in versions 0.9.5 and
+              above.  They provided some coarse control over  the
+              behaviour  of the sorting algorithm in earlier ver-
+              sions, which was sometimes useful.  0.9.5 and above
+              have  an  improved  algorithm  which  renders these
+              flags irrelevant.
+
+
+MEMORY MANAGEMENT
+       bzip2 compresses large files in blocks.   The  block  size
+       affects  both  the  compression  ratio  achieved,  and the
+       amount of memory needed for compression and decompression.
+       The  flags  -1  through  -9  specify  the block size to be
+       100,000 bytes through 900,000 bytes (the default)  respec-
+       tively.   At  decompression  time, the block size used for
+       compression is read from  the  header  of  the  compressed
+       file, and bunzip2 then allocates itself just enough memory
+       to decompress the file.  Since block sizes are  stored  in
+       compressed  files,  it follows that the flags -1 to -9 are
+       irrelevant to and so ignored during decompression.
+
+       Compression and decompression requirements, in bytes,  can
+       be estimated as:
+
+              Compression:   400k + ( 8 x block size )
+
+              Decompression: 100k + ( 4 x block size ), or
+                             100k + ( 2.5 x block size )
+
+       Larger  block  sizes  give  rapidly  diminishing  marginal
+       returns.  Most of the compression comes from the first two
+       or  three hundred k of block size, a fact worth bearing in
+       mind when using bzip2  on  small  machines.   It  is  also
+       important  to  appreciate  that  the  decompression memory
+       requirement is set at compression time by  the  choice  of
+       block size.
+
+       For  files  compressed  with  the default 900k block size,
+       bunzip2 will require about 3700 kbytes to decompress.   To
+       support decompression of any file on a 4 megabyte machine,
+       bunzip2 has an option to  decompress  using  approximately
+       half this amount of memory, about 2300 kbytes.  Decompres-
+       sion speed is also halved, so you should use  this  option
+       only where necessary.  The relevant flag is -s.
+
+       In general, try and use the largest block size memory con-
+       straints  allow,  since  that  maximises  the  compression
+       achieved.   Compression and decompression speed are virtu-
+       ally unaffected by block size.
+
+       Another significant point applies to files which fit in  a
+       single  block  --  that  means  most files you'd encounter
+       using a large block  size.   The  amount  of  real  memory
+       touched is proportional to the size of the file, since the
+       file is smaller than a block.  For example, compressing  a
+       file  20,000  bytes  long  with the flag -9 will cause the
+       compressor to allocate around 7600k of  memory,  but  only
+       touch 400k + 20000 * 8 = 560 kbytes of it.  Similarly, the
+       decompressor will allocate 3700k but  only  touch  100k  +
+       20000 * 4 = 180 kbytes.
+
+       Here  is a table which summarises the maximum memory usage
+       for different block sizes.  Also  recorded  is  the  total
+       compressed  size for 14 files of the Calgary Text Compres-
+       sion Corpus totalling 3,141,622 bytes.  This column  gives
+       some  feel  for  how  compression  varies with block size.
+       These figures tend to understate the advantage  of  larger
+       block  sizes  for  larger files, since the Corpus is domi-
+       nated by smaller files.
+
+                  Compress   Decompress   Decompress   Corpus
+           Flag     usage      usage       -s usage     Size
+
+            -1      1200k       500k         350k      914704
+            -2      2000k       900k         600k      877703
+            -3      2800k      1300k         850k      860338
+            -4      3600k      1700k        1100k      846899
+            -5      4400k      2100k        1350k      845160
+            -6      5200k      2500k        1600k      838626
+            -7      6100k      2900k        1850k      834096
+            -8      6800k      3300k        2100k      828642
+            -9      7600k      3700k        2350k      828642
+
+
+RECOVERING DATA FROM DAMAGED FILES
+       bzip2 compresses files in blocks, usually 900kbytes  long.
+       Each block is handled independently.  If a media or trans-
+       mission error causes a multi-block  .bz2  file  to  become
+       damaged,  it  may  be  possible  to  recover data from the
+       undamaged blocks in the file.
+
+       The compressed representation of each block  is  delimited
+       by  a  48-bit pattern, which makes it possible to find the
+       block boundaries with reasonable  certainty.   Each  block
+       also  carries its own 32-bit CRC, so damaged blocks can be
+       distinguished from undamaged ones.
+
+       bzip2recover is a  simple  program  whose  purpose  is  to
+       search  for blocks in .bz2 files, and write each block out
+       into its own .bz2 file.  You can then use bzip2 -t to test
+       the integrity of the resulting files, and decompress those
+       which are undamaged.
+
+       bzip2recover takes a single argument, the name of the dam-
+       aged    file,    and    writes    a    number   of   files
+       "rec00001file.bz2",  "rec00002file.bz2",  etc,  containing
+       the   extracted   blocks.   The   output   filenames   are
+       designed  so  that the use of wildcards in subsequent pro-
+       cessing  -- for example, "bzip2 -dc  rec*file.bz2 > recov-
+       ered_data" -- processes the files in the correct order.
+
+       bzip2recover should be of most use dealing with large .bz2
+       files,  as  these will contain many blocks.  It is clearly
+       futile to use it on damaged single-block  files,  since  a
+       damaged  block  cannot  be recovered.  If you wish to min-
+       imise any potential data loss through media  or  transmis-
+       sion errors, you might consider compressing with a smaller
+       block size.
+
+
+PERFORMANCE NOTES
+       The sorting phase of compression gathers together  similar
+       strings  in  the  file.  Because of this, files containing
+       very long runs of  repeated  symbols,  like  "aabaabaabaab
+       ..."   (repeated  several hundred times) may compress more
+       slowly than normal.  Versions 0.9.5 and  above  fare  much
+       better  than previous versions in this respect.  The ratio
+       between worst-case and average-case compression time is in
+       the  region  of  10:1.  For previous versions, this figure
+       was more like 100:1.  You can use the -vvvv option to mon-
+       itor progress in great detail, if you want.
+
+       Decompression speed is unaffected by these phenomena.
+
+       bzip2  usually  allocates  several  megabytes of memory to
+       operate in, and then charges all over it in a fairly  ran-
+       dom  fashion.   This means that performance, both for com-
+       pressing and decompressing, is largely determined  by  the
+       speed  at  which  your  machine  can service cache misses.
+       Because of this, small changes to the code to  reduce  the
+       miss  rate  have  been observed to give disproportionately
+       large performance improvements.  I imagine bzip2 will per-
+       form best on machines with very large caches.
+
+
+CAVEATS
+       I/O  error  messages  are not as helpful as they could be.
+       bzip2 tries hard to detect I/O errors  and  exit  cleanly,
+       but  the  details  of  what  the problem is sometimes seem
+       rather misleading.
+
+       This manual page pertains to version 1.0.6 of bzip2.  Com-
+       pressed  data created by this version is entirely forwards
+       and  backwards  compatible  with   the   previous   public
+       releases,  versions  0.1pl2,  0.9.0,  0.9.5, 1.0.0, 1.0.1,
+       1.0.2 and above, but with the  following  exception: 0.9.0
+       and above can  correctly decompress  multiple concatenated
+       compressed files.  0.1pl2  cannot do this;  it  will  stop
+       after  decompressing just the first file in the stream.
+
+       bzip2recover  versions prior to 1.0.2 used 32-bit integers
+       to represent bit positions in compressed  files,  so  they
+       could  not handle compressed files more than 512 megabytes
+       long.  Versions 1.0.2 and above use 64-bit  ints  on  some
+       platforms  which  support them (GNU supported targets, and
+       Windows).  To establish whether or  not  bzip2recover  was
+       built  with  such  a limitation, run it without arguments.
+       In any event you can build yourself an  unlimited  version
+       if  you  can  recompile  it  with MaybeUInt64 set to be an
+       unsigned 64-bit integer.
+
+
+AUTHOR
+       Julian Seward, jsewardbzip.org.
+
+       http://www.bzip.org
+
+       The ideas embodied in bzip2 are due to (at least) the fol-
+       lowing  people: Michael Burrows and David Wheeler (for the
+       block sorting transformation), David Wheeler  (again,  for
+       the Huffman coder), Peter Fenwick (for the structured cod-
+       ing model in the original bzip, and many refinements), and
+       Alistair  Moffat,  Radford  Neal  and  Ian Witten (for the
+       arithmetic  coder  in  the  original  bzip).   I  am  much
+       indebted for their help, support and advice.  See the man-
+       ual in the source distribution for pointers to sources  of
+       documentation.  Christian von Roques encouraged me to look
+       for faster sorting algorithms, so as to speed up  compres-
+       sion.  Bela Lubkin encouraged me to improve the worst-case
+       compression performance.  Donna Robinson XMLised the docu-
+       mentation.   The bz* scripts are derived from those of GNU
+       gzip.  Many people sent patches, helped  with  portability
+       problems,  lent  machines,  gave advice and were generally
+       helpful.
+
diff --git a/bzip2/bzip2recover.c b/bzip2/bzip2recover.c
new file mode 100644 (file)
index 0000000..1d3f5d2
--- /dev/null
@@ -0,0 +1,522 @@
+/*-----------------------------------------------------------*/
+/*--- Block recoverer program for bzip2                   ---*/
+/*---                                      bzip2recover.c ---*/
+/*-----------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+/* This program is a complete hack and should be rewritten properly.
+        It isn't very complicated. */
+
+#ifdef __VMS
+/* Accomodation for /NAMES = AS_IS with old header files. */
+#define cma$tis_errno_get_addr CMA$TIS_ERRNO_GET_ADDR
+#endif /* def __VMS */
+
+
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+/* This program records bit locations in the file to be recovered.
+   That means that if 64-bit ints are not supported, we will not
+   be able to recover .bz2 files over 512MB (2^32 bits) long.
+   On GNU supported platforms, we take advantage of the 64-bit
+   int support to circumvent this problem.  Ditto MSVC.
+
+   This change occurred in version 1.0.2; all prior versions have
+   the 512MB limitation.
+*/
+#ifdef __GNUC__
+   typedef  unsigned long long int  MaybeUInt64;
+#  define MaybeUInt64_FMT "%Lu"
+#else
+#ifdef _MSC_VER
+   typedef  unsigned __int64  MaybeUInt64;
+#  define MaybeUInt64_FMT "%I64u"
+#else
+   typedef  unsigned int   MaybeUInt64;
+#  define MaybeUInt64_FMT "%u"
+#endif
+#endif
+
+typedef  unsigned int   UInt32;
+typedef  int            Int32;
+typedef  unsigned char  UChar;
+typedef  char           Char;
+typedef  unsigned char  Bool;
+#define True    ((Bool)1)
+#define False   ((Bool)0)
+
+int verbosity = 0;
+
+
+#define BZ_MAX_FILENAME 2000
+
+Char inFileName[BZ_MAX_FILENAME];
+Char outFileName[BZ_MAX_FILENAME];
+Char progName[BZ_MAX_FILENAME];
+
+MaybeUInt64 bytesOut = 0;
+MaybeUInt64 bytesIn  = 0;
+
+
+/*---------------------------------------------------*/
+/*--- Header bytes                                ---*/
+/*---------------------------------------------------*/
+
+#define BZ_HDR_B 0x42                         /* 'B' */
+#define BZ_HDR_Z 0x5a                         /* 'Z' */
+#define BZ_HDR_h 0x68                         /* 'h' */
+#define BZ_HDR_0 0x30                         /* '0' */
+
+/*---------------------------------------------------*/
+/*--- I/O errors                                  ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------*/
+static void readError ( void )
+{
+   fprintf ( stderr,
+             "%s: I/O error reading `%s', possible reason follows.\n",
+            progName, inFileName );
+   perror ( progName );
+   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
+             progName );
+   exit ( 1 );
+}
+
+
+/*---------------------------------------------*/
+static void writeError ( void )
+{
+   fprintf ( stderr,
+             "%s: I/O error reading `%s', possible reason follows.\n",
+            progName, inFileName );
+   perror ( progName );
+   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
+             progName );
+   exit ( 1 );
+}
+
+
+/*---------------------------------------------*/
+static void mallocFail ( Int32 n )
+{
+   fprintf ( stderr,
+             "%s: malloc failed on request for %d bytes.\n",
+            progName, n );
+   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
+             progName );
+   exit ( 1 );
+}
+
+
+/*---------------------------------------------*/
+static void tooManyBlocks ( Int32 max_handled_blocks )
+{
+   fprintf ( stderr,
+             "%s: `%s' appears to contain more than %d blocks\n",
+            progName, inFileName, max_handled_blocks );
+   fprintf ( stderr,
+             "%s: and cannot be handled.  To fix, increase\n",
+             progName );
+   fprintf ( stderr, 
+             "%s: BZ_MAX_HANDLED_BLOCKS in bzip2recover.c, and recompile.\n",
+             progName );
+   exit ( 1 );
+}
+
+
+
+/*---------------------------------------------------*/
+/*--- Bit stream I/O                              ---*/
+/*---------------------------------------------------*/
+
+typedef
+   struct {
+      FILE*  handle;
+      Int32  buffer;
+      Int32  buffLive;
+      Char   mode;
+   }
+   BitStream;
+
+
+/*---------------------------------------------*/
+static BitStream* bsOpenReadStream ( FILE* stream )
+{
+   BitStream *bs = malloc ( sizeof(BitStream) );
+   if (bs == NULL) mallocFail ( sizeof(BitStream) );
+   bs->handle = stream;
+   bs->buffer = 0;
+   bs->buffLive = 0;
+   bs->mode = 'r';
+   return bs;
+}
+
+
+/*---------------------------------------------*/
+static BitStream* bsOpenWriteStream ( FILE* stream )
+{
+   BitStream *bs = malloc ( sizeof(BitStream) );
+   if (bs == NULL) mallocFail ( sizeof(BitStream) );
+   bs->handle = stream;
+   bs->buffer = 0;
+   bs->buffLive = 0;
+   bs->mode = 'w';
+   return bs;
+}
+
+
+/*---------------------------------------------*/
+static void bsPutBit ( BitStream* bs, Int32 bit )
+{
+   if (bs->buffLive == 8) {
+      Int32 retVal = putc ( (UChar) bs->buffer, bs->handle );
+      if (retVal == EOF) writeError();
+      bytesOut++;
+      bs->buffLive = 1;
+      bs->buffer = bit & 0x1;
+   } else {
+      bs->buffer = ( (bs->buffer << 1) | (bit & 0x1) );
+      bs->buffLive++;
+   };
+}
+
+
+/*---------------------------------------------*/
+/*--
+   Returns 0 or 1, or 2 to indicate EOF.
+--*/
+static Int32 bsGetBit ( BitStream* bs )
+{
+   if (bs->buffLive > 0) {
+      bs->buffLive --;
+      return ( ((bs->buffer) >> (bs->buffLive)) & 0x1 );
+   } else {
+      Int32 retVal = getc ( bs->handle );
+      if ( retVal == EOF ) {
+         if (errno != 0) readError();
+         return 2;
+      }
+      bs->buffLive = 7;
+      bs->buffer = retVal;
+      return ( ((bs->buffer) >> 7) & 0x1 );
+   }
+}
+
+
+/*---------------------------------------------*/
+static void bsClose ( BitStream* bs )
+{
+   Int32 retVal;
+
+   if ( bs->mode == 'w' ) {
+      while ( bs->buffLive < 8 ) {
+         bs->buffLive++;
+         bs->buffer <<= 1;
+      };
+      retVal = putc ( (UChar) (bs->buffer), bs->handle );
+      if (retVal == EOF) writeError();
+      bytesOut++;
+      retVal = fflush ( bs->handle );
+      if (retVal == EOF) writeError();
+   }
+   retVal = fclose ( bs->handle );
+   if (retVal == EOF) {
+      if (bs->mode == 'w') writeError(); else readError();
+   }
+   free ( bs );
+}
+
+
+/*---------------------------------------------*/
+static void bsPutUChar ( BitStream* bs, UChar c )
+{
+   Int32 i;
+   for (i = 7; i >= 0; i--)
+      bsPutBit ( bs, (((UInt32) c) >> i) & 0x1 );
+}
+
+
+/*---------------------------------------------*/
+static void bsPutUInt32 ( BitStream* bs, UInt32 c )
+{
+   Int32 i;
+
+   for (i = 31; i >= 0; i--)
+      bsPutBit ( bs, (c >> i) & 0x1 );
+}
+
+
+/*---------------------------------------------*/
+static Bool endsInBz2 ( Char* name )
+{
+   Int32 n = strlen ( name );
+   if (n <= 4) return False;
+   return
+      (name[n-4] == '.' &&
+       name[n-3] == 'b' &&
+       name[n-2] == 'z' &&
+       name[n-1] == '2');
+}
+
+
+/*---------------------------------------------------*/
+/*---                                             ---*/
+/*---------------------------------------------------*/
+
+/* This logic isn't really right when it comes to Cygwin. */
+#ifdef _WIN32
+#  define  BZ_SPLIT_SYM  '\\'  /* path splitter on Windows platform */
+#else
+#  define  BZ_SPLIT_SYM  '/'   /* path splitter on Unix platform */
+#endif
+
+#define BLOCK_HEADER_HI  0x00003141UL
+#define BLOCK_HEADER_LO  0x59265359UL
+
+#define BLOCK_ENDMARK_HI 0x00001772UL
+#define BLOCK_ENDMARK_LO 0x45385090UL
+
+/* Increase if necessary.  However, a .bz2 file with > 50000 blocks
+   would have an uncompressed size of at least 40GB, so the chances
+   are low you'll need to up this.
+*/
+#define BZ_MAX_HANDLED_BLOCKS 50000
+
+MaybeUInt64 bStart [BZ_MAX_HANDLED_BLOCKS];
+MaybeUInt64 bEnd   [BZ_MAX_HANDLED_BLOCKS];
+MaybeUInt64 rbStart[BZ_MAX_HANDLED_BLOCKS];
+MaybeUInt64 rbEnd  [BZ_MAX_HANDLED_BLOCKS];
+
+Int32 main ( Int32 argc, Char** argv )
+{
+   FILE*       inFile;
+   FILE*       outFile;
+   BitStream*  bsIn, *bsWr;
+   Int32       b, wrBlock, currBlock, rbCtr;
+   MaybeUInt64 bitsRead;
+
+   UInt32      buffHi, buffLo, blockCRC;
+   Char*       p;
+
+   strcpy ( progName, argv[0] );
+   inFileName[0] = outFileName[0] = 0;
+
+   fprintf ( stderr, 
+             "bzip2recover 1.0.6: extracts blocks from damaged .bz2 files.\n" );
+
+   if (argc != 2) {
+      fprintf ( stderr, "%s: usage is `%s damaged_file_name'.\n",
+                        progName, progName );
+      switch (sizeof(MaybeUInt64)) {
+         case 8:
+            fprintf(stderr, 
+                    "\trestrictions on size of recovered file: None\n");
+            break;
+         case 4:
+            fprintf(stderr, 
+                    "\trestrictions on size of recovered file: 512 MB\n");
+            fprintf(stderr, 
+                    "\tto circumvent, recompile with MaybeUInt64 as an\n"
+                    "\tunsigned 64-bit int.\n");
+            break;
+         default:
+            fprintf(stderr, 
+                    "\tsizeof(MaybeUInt64) is not 4 or 8 -- "
+                    "configuration error.\n");
+            break;
+      }
+      exit(1);
+   }
+
+   if (strlen(argv[1]) >= BZ_MAX_FILENAME-20) {
+      fprintf ( stderr, 
+                "%s: supplied filename is suspiciously (>= %d chars) long.  Bye!\n",
+                progName, (int)strlen(argv[1]) );
+      exit(1);
+   }
+
+   strcpy ( inFileName, argv[1] );
+
+   inFile = fopen ( inFileName, "rb" );
+   if (inFile == NULL) {
+      fprintf ( stderr, "%s: can't read `%s'\n", progName, inFileName );
+      exit(1);
+   }
+
+   bsIn = bsOpenReadStream ( inFile );
+   fprintf ( stderr, "%s: searching for block boundaries ...\n", progName );
+
+   bitsRead = 0;
+   buffHi = buffLo = 0;
+   currBlock = 0;
+   bStart[currBlock] = 0;
+
+   rbCtr = 0;
+
+   while (True) {
+      b = bsGetBit ( bsIn );
+      bitsRead++;
+      if (b == 2) {
+         if (bitsRead >= bStart[currBlock] &&
+            (bitsRead - bStart[currBlock]) >= 40) {
+            bEnd[currBlock] = bitsRead-1;
+            if (currBlock > 0)
+               fprintf ( stderr, "   block %d runs from " MaybeUInt64_FMT 
+                                 " to " MaybeUInt64_FMT " (incomplete)\n",
+                         currBlock,  bStart[currBlock], bEnd[currBlock] );
+         } else
+            currBlock--;
+         break;
+      }
+      buffHi = (buffHi << 1) | (buffLo >> 31);
+      buffLo = (buffLo << 1) | (b & 1);
+      if ( ( (buffHi & 0x0000ffff) == BLOCK_HEADER_HI 
+             && buffLo == BLOCK_HEADER_LO)
+           || 
+           ( (buffHi & 0x0000ffff) == BLOCK_ENDMARK_HI 
+             && buffLo == BLOCK_ENDMARK_LO)
+         ) {
+         if (bitsRead > 49) {
+            bEnd[currBlock] = bitsRead-49;
+         } else {
+            bEnd[currBlock] = 0;
+         }
+         if (currBlock > 0 &&
+            (bEnd[currBlock] - bStart[currBlock]) >= 130) {
+            fprintf ( stderr, "   block %d runs from " MaybeUInt64_FMT 
+                              " to " MaybeUInt64_FMT "\n",
+                      rbCtr+1,  bStart[currBlock], bEnd[currBlock] );
+            rbStart[rbCtr] = bStart[currBlock];
+            rbEnd[rbCtr] = bEnd[currBlock];
+            rbCtr++;
+         }
+         if (currBlock >= BZ_MAX_HANDLED_BLOCKS)
+            tooManyBlocks(BZ_MAX_HANDLED_BLOCKS);
+         currBlock++;
+
+         bStart[currBlock] = bitsRead;
+      }
+   }
+
+   bsClose ( bsIn );
+
+   /*-- identified blocks run from 1 to rbCtr inclusive. --*/
+
+   if (rbCtr < 1) {
+      fprintf ( stderr,
+                "%s: sorry, I couldn't find any block boundaries.\n",
+                progName );
+      exit(1);
+   };
+
+   fprintf ( stderr, "%s: splitting into blocks\n", progName );
+
+   inFile = fopen ( inFileName, "rb" );
+   if (inFile == NULL) {
+      fprintf ( stderr, "%s: can't open `%s'\n", progName, inFileName );
+      exit(1);
+   }
+   bsIn = bsOpenReadStream ( inFile );
+
+   /*-- placate gcc's dataflow analyser --*/
+   blockCRC = 0; bsWr = 0;
+
+   bitsRead = 0;
+   outFile = NULL;
+   wrBlock = 0;
+   while (True) {
+      b = bsGetBit(bsIn);
+      if (b == 2) break;
+      buffHi = (buffHi << 1) | (buffLo >> 31);
+      buffLo = (buffLo << 1) | (b & 1);
+      if (bitsRead == 47+rbStart[wrBlock]) 
+         blockCRC = (buffHi << 16) | (buffLo >> 16);
+
+      if (outFile != NULL && bitsRead >= rbStart[wrBlock]
+                          && bitsRead <= rbEnd[wrBlock]) {
+         bsPutBit ( bsWr, b );
+      }
+
+      bitsRead++;
+
+      if (bitsRead == rbEnd[wrBlock]+1) {
+         if (outFile != NULL) {
+            bsPutUChar ( bsWr, 0x17 ); bsPutUChar ( bsWr, 0x72 );
+            bsPutUChar ( bsWr, 0x45 ); bsPutUChar ( bsWr, 0x38 );
+            bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 );
+            bsPutUInt32 ( bsWr, blockCRC );
+            bsClose ( bsWr );
+         }
+         if (wrBlock >= rbCtr) break;
+         wrBlock++;
+      } else
+      if (bitsRead == rbStart[wrBlock]) {
+         /* Create the output file name, correctly handling leading paths. 
+            (31.10.2001 by Sergey E. Kusikov) */
+         Char* split;
+         Int32 ofs, k;
+         for (k = 0; k < BZ_MAX_FILENAME; k++) 
+            outFileName[k] = 0;
+         strcpy (outFileName, inFileName);
+         split = strrchr (outFileName, BZ_SPLIT_SYM);
+         if (split == NULL) {
+            split = outFileName;
+         } else {
+            ++split;
+        }
+        /* Now split points to the start of the basename. */
+         ofs  = split - outFileName;
+         sprintf (split, "rec%5d", wrBlock+1);
+         for (p = split; *p != 0; p++) if (*p == ' ') *p = '0';
+         strcat (outFileName, inFileName + ofs);
+
+         if ( !endsInBz2(outFileName)) strcat ( outFileName, ".bz2" );
+
+         fprintf ( stderr, "   writing block %d to `%s' ...\n",
+                           wrBlock+1, outFileName );
+
+         outFile = fopen ( outFileName, "wb" );
+         if (outFile == NULL) {
+            fprintf ( stderr, "%s: can't write `%s'\n",
+                      progName, outFileName );
+            exit(1);
+         }
+         bsWr = bsOpenWriteStream ( outFile );
+         bsPutUChar ( bsWr, BZ_HDR_B );    
+         bsPutUChar ( bsWr, BZ_HDR_Z );    
+         bsPutUChar ( bsWr, BZ_HDR_h );    
+         bsPutUChar ( bsWr, BZ_HDR_0 + 9 );
+         bsPutUChar ( bsWr, 0x31 ); bsPutUChar ( bsWr, 0x41 );
+         bsPutUChar ( bsWr, 0x59 ); bsPutUChar ( bsWr, 0x26 );
+         bsPutUChar ( bsWr, 0x53 ); bsPutUChar ( bsWr, 0x59 );
+      }
+   }
+
+   fprintf ( stderr, "%s: finished\n", progName );
+   return 0;
+}
+
+
+
+/*-----------------------------------------------------------*/
+/*--- end                                  bzip2recover.c ---*/
+/*-----------------------------------------------------------*/
diff --git a/bzip2/bzip2recover.c_orig b/bzip2/bzip2recover.c_orig
new file mode 100644 (file)
index 0000000..f9de049
--- /dev/null
@@ -0,0 +1,514 @@
+/*-----------------------------------------------------------*/
+/*--- Block recoverer program for bzip2                   ---*/
+/*---                                      bzip2recover.c ---*/
+/*-----------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+/* This program is a complete hack and should be rewritten properly.
+        It isn't very complicated. */
+
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+/* This program records bit locations in the file to be recovered.
+   That means that if 64-bit ints are not supported, we will not
+   be able to recover .bz2 files over 512MB (2^32 bits) long.
+   On GNU supported platforms, we take advantage of the 64-bit
+   int support to circumvent this problem.  Ditto MSVC.
+
+   This change occurred in version 1.0.2; all prior versions have
+   the 512MB limitation.
+*/
+#ifdef __GNUC__
+   typedef  unsigned long long int  MaybeUInt64;
+#  define MaybeUInt64_FMT "%Lu"
+#else
+#ifdef _MSC_VER
+   typedef  unsigned __int64  MaybeUInt64;
+#  define MaybeUInt64_FMT "%I64u"
+#else
+   typedef  unsigned int   MaybeUInt64;
+#  define MaybeUInt64_FMT "%u"
+#endif
+#endif
+
+typedef  unsigned int   UInt32;
+typedef  int            Int32;
+typedef  unsigned char  UChar;
+typedef  char           Char;
+typedef  unsigned char  Bool;
+#define True    ((Bool)1)
+#define False   ((Bool)0)
+
+
+#define BZ_MAX_FILENAME 2000
+
+Char inFileName[BZ_MAX_FILENAME];
+Char outFileName[BZ_MAX_FILENAME];
+Char progName[BZ_MAX_FILENAME];
+
+MaybeUInt64 bytesOut = 0;
+MaybeUInt64 bytesIn  = 0;
+
+
+/*---------------------------------------------------*/
+/*--- Header bytes                                ---*/
+/*---------------------------------------------------*/
+
+#define BZ_HDR_B 0x42                         /* 'B' */
+#define BZ_HDR_Z 0x5a                         /* 'Z' */
+#define BZ_HDR_h 0x68                         /* 'h' */
+#define BZ_HDR_0 0x30                         /* '0' */
+
+/*---------------------------------------------------*/
+/*--- I/O errors                                  ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------*/
+static void readError ( void )
+{
+   fprintf ( stderr,
+             "%s: I/O error reading `%s', possible reason follows.\n",
+            progName, inFileName );
+   perror ( progName );
+   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
+             progName );
+   exit ( 1 );
+}
+
+
+/*---------------------------------------------*/
+static void writeError ( void )
+{
+   fprintf ( stderr,
+             "%s: I/O error reading `%s', possible reason follows.\n",
+            progName, inFileName );
+   perror ( progName );
+   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
+             progName );
+   exit ( 1 );
+}
+
+
+/*---------------------------------------------*/
+static void mallocFail ( Int32 n )
+{
+   fprintf ( stderr,
+             "%s: malloc failed on request for %d bytes.\n",
+            progName, n );
+   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
+             progName );
+   exit ( 1 );
+}
+
+
+/*---------------------------------------------*/
+static void tooManyBlocks ( Int32 max_handled_blocks )
+{
+   fprintf ( stderr,
+             "%s: `%s' appears to contain more than %d blocks\n",
+            progName, inFileName, max_handled_blocks );
+   fprintf ( stderr,
+             "%s: and cannot be handled.  To fix, increase\n",
+             progName );
+   fprintf ( stderr, 
+             "%s: BZ_MAX_HANDLED_BLOCKS in bzip2recover.c, and recompile.\n",
+             progName );
+   exit ( 1 );
+}
+
+
+
+/*---------------------------------------------------*/
+/*--- Bit stream I/O                              ---*/
+/*---------------------------------------------------*/
+
+typedef
+   struct {
+      FILE*  handle;
+      Int32  buffer;
+      Int32  buffLive;
+      Char   mode;
+   }
+   BitStream;
+
+
+/*---------------------------------------------*/
+static BitStream* bsOpenReadStream ( FILE* stream )
+{
+   BitStream *bs = malloc ( sizeof(BitStream) );
+   if (bs == NULL) mallocFail ( sizeof(BitStream) );
+   bs->handle = stream;
+   bs->buffer = 0;
+   bs->buffLive = 0;
+   bs->mode = 'r';
+   return bs;
+}
+
+
+/*---------------------------------------------*/
+static BitStream* bsOpenWriteStream ( FILE* stream )
+{
+   BitStream *bs = malloc ( sizeof(BitStream) );
+   if (bs == NULL) mallocFail ( sizeof(BitStream) );
+   bs->handle = stream;
+   bs->buffer = 0;
+   bs->buffLive = 0;
+   bs->mode = 'w';
+   return bs;
+}
+
+
+/*---------------------------------------------*/
+static void bsPutBit ( BitStream* bs, Int32 bit )
+{
+   if (bs->buffLive == 8) {
+      Int32 retVal = putc ( (UChar) bs->buffer, bs->handle );
+      if (retVal == EOF) writeError();
+      bytesOut++;
+      bs->buffLive = 1;
+      bs->buffer = bit & 0x1;
+   } else {
+      bs->buffer = ( (bs->buffer << 1) | (bit & 0x1) );
+      bs->buffLive++;
+   };
+}
+
+
+/*---------------------------------------------*/
+/*--
+   Returns 0 or 1, or 2 to indicate EOF.
+--*/
+static Int32 bsGetBit ( BitStream* bs )
+{
+   if (bs->buffLive > 0) {
+      bs->buffLive --;
+      return ( ((bs->buffer) >> (bs->buffLive)) & 0x1 );
+   } else {
+      Int32 retVal = getc ( bs->handle );
+      if ( retVal == EOF ) {
+         if (errno != 0) readError();
+         return 2;
+      }
+      bs->buffLive = 7;
+      bs->buffer = retVal;
+      return ( ((bs->buffer) >> 7) & 0x1 );
+   }
+}
+
+
+/*---------------------------------------------*/
+static void bsClose ( BitStream* bs )
+{
+   Int32 retVal;
+
+   if ( bs->mode == 'w' ) {
+      while ( bs->buffLive < 8 ) {
+         bs->buffLive++;
+         bs->buffer <<= 1;
+      };
+      retVal = putc ( (UChar) (bs->buffer), bs->handle );
+      if (retVal == EOF) writeError();
+      bytesOut++;
+      retVal = fflush ( bs->handle );
+      if (retVal == EOF) writeError();
+   }
+   retVal = fclose ( bs->handle );
+   if (retVal == EOF) {
+      if (bs->mode == 'w') writeError(); else readError();
+   }
+   free ( bs );
+}
+
+
+/*---------------------------------------------*/
+static void bsPutUChar ( BitStream* bs, UChar c )
+{
+   Int32 i;
+   for (i = 7; i >= 0; i--)
+      bsPutBit ( bs, (((UInt32) c) >> i) & 0x1 );
+}
+
+
+/*---------------------------------------------*/
+static void bsPutUInt32 ( BitStream* bs, UInt32 c )
+{
+   Int32 i;
+
+   for (i = 31; i >= 0; i--)
+      bsPutBit ( bs, (c >> i) & 0x1 );
+}
+
+
+/*---------------------------------------------*/
+static Bool endsInBz2 ( Char* name )
+{
+   Int32 n = strlen ( name );
+   if (n <= 4) return False;
+   return
+      (name[n-4] == '.' &&
+       name[n-3] == 'b' &&
+       name[n-2] == 'z' &&
+       name[n-1] == '2');
+}
+
+
+/*---------------------------------------------------*/
+/*---                                             ---*/
+/*---------------------------------------------------*/
+
+/* This logic isn't really right when it comes to Cygwin. */
+#ifdef _WIN32
+#  define  BZ_SPLIT_SYM  '\\'  /* path splitter on Windows platform */
+#else
+#  define  BZ_SPLIT_SYM  '/'   /* path splitter on Unix platform */
+#endif
+
+#define BLOCK_HEADER_HI  0x00003141UL
+#define BLOCK_HEADER_LO  0x59265359UL
+
+#define BLOCK_ENDMARK_HI 0x00001772UL
+#define BLOCK_ENDMARK_LO 0x45385090UL
+
+/* Increase if necessary.  However, a .bz2 file with > 50000 blocks
+   would have an uncompressed size of at least 40GB, so the chances
+   are low you'll need to up this.
+*/
+#define BZ_MAX_HANDLED_BLOCKS 50000
+
+MaybeUInt64 bStart [BZ_MAX_HANDLED_BLOCKS];
+MaybeUInt64 bEnd   [BZ_MAX_HANDLED_BLOCKS];
+MaybeUInt64 rbStart[BZ_MAX_HANDLED_BLOCKS];
+MaybeUInt64 rbEnd  [BZ_MAX_HANDLED_BLOCKS];
+
+Int32 main ( Int32 argc, Char** argv )
+{
+   FILE*       inFile;
+   FILE*       outFile;
+   BitStream*  bsIn, *bsWr;
+   Int32       b, wrBlock, currBlock, rbCtr;
+   MaybeUInt64 bitsRead;
+
+   UInt32      buffHi, buffLo, blockCRC;
+   Char*       p;
+
+   strcpy ( progName, argv[0] );
+   inFileName[0] = outFileName[0] = 0;
+
+   fprintf ( stderr, 
+             "bzip2recover 1.0.6: extracts blocks from damaged .bz2 files.\n" );
+
+   if (argc != 2) {
+      fprintf ( stderr, "%s: usage is `%s damaged_file_name'.\n",
+                        progName, progName );
+      switch (sizeof(MaybeUInt64)) {
+         case 8:
+            fprintf(stderr, 
+                    "\trestrictions on size of recovered file: None\n");
+            break;
+         case 4:
+            fprintf(stderr, 
+                    "\trestrictions on size of recovered file: 512 MB\n");
+            fprintf(stderr, 
+                    "\tto circumvent, recompile with MaybeUInt64 as an\n"
+                    "\tunsigned 64-bit int.\n");
+            break;
+         default:
+            fprintf(stderr, 
+                    "\tsizeof(MaybeUInt64) is not 4 or 8 -- "
+                    "configuration error.\n");
+            break;
+      }
+      exit(1);
+   }
+
+   if (strlen(argv[1]) >= BZ_MAX_FILENAME-20) {
+      fprintf ( stderr, 
+                "%s: supplied filename is suspiciously (>= %d chars) long.  Bye!\n",
+                progName, (int)strlen(argv[1]) );
+      exit(1);
+   }
+
+   strcpy ( inFileName, argv[1] );
+
+   inFile = fopen ( inFileName, "rb" );
+   if (inFile == NULL) {
+      fprintf ( stderr, "%s: can't read `%s'\n", progName, inFileName );
+      exit(1);
+   }
+
+   bsIn = bsOpenReadStream ( inFile );
+   fprintf ( stderr, "%s: searching for block boundaries ...\n", progName );
+
+   bitsRead = 0;
+   buffHi = buffLo = 0;
+   currBlock = 0;
+   bStart[currBlock] = 0;
+
+   rbCtr = 0;
+
+   while (True) {
+      b = bsGetBit ( bsIn );
+      bitsRead++;
+      if (b == 2) {
+         if (bitsRead >= bStart[currBlock] &&
+            (bitsRead - bStart[currBlock]) >= 40) {
+            bEnd[currBlock] = bitsRead-1;
+            if (currBlock > 0)
+               fprintf ( stderr, "   block %d runs from " MaybeUInt64_FMT 
+                                 " to " MaybeUInt64_FMT " (incomplete)\n",
+                         currBlock,  bStart[currBlock], bEnd[currBlock] );
+         } else
+            currBlock--;
+         break;
+      }
+      buffHi = (buffHi << 1) | (buffLo >> 31);
+      buffLo = (buffLo << 1) | (b & 1);
+      if ( ( (buffHi & 0x0000ffff) == BLOCK_HEADER_HI 
+             && buffLo == BLOCK_HEADER_LO)
+           || 
+           ( (buffHi & 0x0000ffff) == BLOCK_ENDMARK_HI 
+             && buffLo == BLOCK_ENDMARK_LO)
+         ) {
+         if (bitsRead > 49) {
+            bEnd[currBlock] = bitsRead-49;
+         } else {
+            bEnd[currBlock] = 0;
+         }
+         if (currBlock > 0 &&
+            (bEnd[currBlock] - bStart[currBlock]) >= 130) {
+            fprintf ( stderr, "   block %d runs from " MaybeUInt64_FMT 
+                              " to " MaybeUInt64_FMT "\n",
+                      rbCtr+1,  bStart[currBlock], bEnd[currBlock] );
+            rbStart[rbCtr] = bStart[currBlock];
+            rbEnd[rbCtr] = bEnd[currBlock];
+            rbCtr++;
+         }
+         if (currBlock >= BZ_MAX_HANDLED_BLOCKS)
+            tooManyBlocks(BZ_MAX_HANDLED_BLOCKS);
+         currBlock++;
+
+         bStart[currBlock] = bitsRead;
+      }
+   }
+
+   bsClose ( bsIn );
+
+   /*-- identified blocks run from 1 to rbCtr inclusive. --*/
+
+   if (rbCtr < 1) {
+      fprintf ( stderr,
+                "%s: sorry, I couldn't find any block boundaries.\n",
+                progName );
+      exit(1);
+   };
+
+   fprintf ( stderr, "%s: splitting into blocks\n", progName );
+
+   inFile = fopen ( inFileName, "rb" );
+   if (inFile == NULL) {
+      fprintf ( stderr, "%s: can't open `%s'\n", progName, inFileName );
+      exit(1);
+   }
+   bsIn = bsOpenReadStream ( inFile );
+
+   /*-- placate gcc's dataflow analyser --*/
+   blockCRC = 0; bsWr = 0;
+
+   bitsRead = 0;
+   outFile = NULL;
+   wrBlock = 0;
+   while (True) {
+      b = bsGetBit(bsIn);
+      if (b == 2) break;
+      buffHi = (buffHi << 1) | (buffLo >> 31);
+      buffLo = (buffLo << 1) | (b & 1);
+      if (bitsRead == 47+rbStart[wrBlock]) 
+         blockCRC = (buffHi << 16) | (buffLo >> 16);
+
+      if (outFile != NULL && bitsRead >= rbStart[wrBlock]
+                          && bitsRead <= rbEnd[wrBlock]) {
+         bsPutBit ( bsWr, b );
+      }
+
+      bitsRead++;
+
+      if (bitsRead == rbEnd[wrBlock]+1) {
+         if (outFile != NULL) {
+            bsPutUChar ( bsWr, 0x17 ); bsPutUChar ( bsWr, 0x72 );
+            bsPutUChar ( bsWr, 0x45 ); bsPutUChar ( bsWr, 0x38 );
+            bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 );
+            bsPutUInt32 ( bsWr, blockCRC );
+            bsClose ( bsWr );
+         }
+         if (wrBlock >= rbCtr) break;
+         wrBlock++;
+      } else
+      if (bitsRead == rbStart[wrBlock]) {
+         /* Create the output file name, correctly handling leading paths. 
+            (31.10.2001 by Sergey E. Kusikov) */
+         Char* split;
+         Int32 ofs, k;
+         for (k = 0; k < BZ_MAX_FILENAME; k++) 
+            outFileName[k] = 0;
+         strcpy (outFileName, inFileName);
+         split = strrchr (outFileName, BZ_SPLIT_SYM);
+         if (split == NULL) {
+            split = outFileName;
+         } else {
+            ++split;
+        }
+        /* Now split points to the start of the basename. */
+         ofs  = split - outFileName;
+         sprintf (split, "rec%5d", wrBlock+1);
+         for (p = split; *p != 0; p++) if (*p == ' ') *p = '0';
+         strcat (outFileName, inFileName + ofs);
+
+         if ( !endsInBz2(outFileName)) strcat ( outFileName, ".bz2" );
+
+         fprintf ( stderr, "   writing block %d to `%s' ...\n",
+                           wrBlock+1, outFileName );
+
+         outFile = fopen ( outFileName, "wb" );
+         if (outFile == NULL) {
+            fprintf ( stderr, "%s: can't write `%s'\n",
+                      progName, outFileName );
+            exit(1);
+         }
+         bsWr = bsOpenWriteStream ( outFile );
+         bsPutUChar ( bsWr, BZ_HDR_B );    
+         bsPutUChar ( bsWr, BZ_HDR_Z );    
+         bsPutUChar ( bsWr, BZ_HDR_h );    
+         bsPutUChar ( bsWr, BZ_HDR_0 + 9 );
+         bsPutUChar ( bsWr, 0x31 ); bsPutUChar ( bsWr, 0x41 );
+         bsPutUChar ( bsWr, 0x59 ); bsPutUChar ( bsWr, 0x26 );
+         bsPutUChar ( bsWr, 0x53 ); bsPutUChar ( bsWr, 0x59 );
+      }
+   }
+
+   fprintf ( stderr, "%s: finished\n", progName );
+   return 0;
+}
+
+
+
+/*-----------------------------------------------------------*/
+/*--- end                                  bzip2recover.c ---*/
+/*-----------------------------------------------------------*/
diff --git a/bzip2/bzlib.c b/bzip2/bzlib.c
new file mode 100644 (file)
index 0000000..8169035
--- /dev/null
@@ -0,0 +1,1602 @@
+
+/*-------------------------------------------------------------*/
+/*--- Library top-level functions.                          ---*/
+/*---                                               bzlib.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+/* CHANGES
+   0.9.0    -- original version.
+   0.9.0a/b -- no changes in this file.
+   0.9.0c   -- made zero-length BZ_FLUSH work correctly in bzCompress().
+     fixed bzWrite/bzRead to ignore zero-length requests.
+     fixed bzread to correctly handle read requests after EOF.
+     wrong parameter order in call to bzDecompressInit in
+     bzBuffToBuffDecompress.  Fixed.
+*/
+
+#include "bzlib_private.h"
+
+
+/*---------------------------------------------------*/
+/*--- Compression stuff                           ---*/
+/*---------------------------------------------------*/
+
+
+/*---------------------------------------------------*/
+#ifndef BZ_NO_STDIO
+void BZ2_bz__AssertH__fail ( int errcode )
+{
+   fprintf(stderr, 
+      "\n\nbzip2/libbzip2: internal error number %d.\n"
+      "This is a bug in bzip2/libbzip2, %s.\n"
+      "Please report it to me at: jseward@bzip.org.  If this happened\n"
+      "when you were using some program which uses libbzip2 as a\n"
+      "component, you should also report this bug to the author(s)\n"
+      "of that program.  Please make an effort to report this bug;\n"
+      "timely and accurate bug reports eventually lead to higher\n"
+      "quality software.  Thanks.  Julian Seward, 10 December 2007.\n\n",
+      errcode,
+      BZ2_bzlibVersion()
+   );
+
+   if (errcode == 1007) {
+   fprintf(stderr,
+      "\n*** A special note about internal error number 1007 ***\n"
+      "\n"
+      "Experience suggests that a common cause of i.e. 1007\n"
+      "is unreliable memory or other hardware.  The 1007 assertion\n"
+      "just happens to cross-check the results of huge numbers of\n"
+      "memory reads/writes, and so acts (unintendedly) as a stress\n"
+      "test of your memory system.\n"
+      "\n"
+      "I suggest the following: try compressing the file again,\n"
+      "possibly monitoring progress in detail with the -vv flag.\n"
+      "\n"
+      "* If the error cannot be reproduced, and/or happens at different\n"
+      "  points in compression, you may have a flaky memory system.\n"
+      "  Try a memory-test program.  I have used Memtest86\n"
+      "  (www.memtest86.com).  At the time of writing it is free (GPLd).\n"
+      "  Memtest86 tests memory much more thorougly than your BIOSs\n"
+      "  power-on test, and may find failures that the BIOS doesn't.\n"
+      "\n"
+      "* If the error can be repeatably reproduced, this is a bug in\n"
+      "  bzip2, and I would very much like to hear about it.  Please\n"
+      "  let me know, and, ideally, save a copy of the file causing the\n"
+      "  problem -- without which I will be unable to investigate it.\n"
+      "\n"
+   );
+   }
+
+   exit(3);
+}
+#endif
+
+
+/*---------------------------------------------------*/
+static
+int bz_config_ok ( void )
+{
+   if (sizeof(int)   != 4) return 0;
+   if (sizeof(short) != 2) return 0;
+   if (sizeof(char)  != 1) return 0;
+   return 1;
+}
+
+
+/*---------------------------------------------------*/
+static
+void* default_bzalloc ( void* opaque, Int32 items, Int32 size )
+{
+   void* v = malloc ( items * size );
+   return v;
+}
+
+static
+void default_bzfree ( void* opaque, void* addr )
+{
+   if (addr != NULL) free ( addr );
+}
+
+
+/*---------------------------------------------------*/
+static
+void prepare_new_block ( EState* s )
+{
+   Int32 i;
+   s->nblock = 0;
+   s->numZ = 0;
+   s->state_out_pos = 0;
+   BZ_INITIALISE_CRC ( s->blockCRC );
+   for (i = 0; i < 256; i++) s->inUse[i] = False;
+   s->blockNo++;
+}
+
+
+/*---------------------------------------------------*/
+static
+void init_RL ( EState* s )
+{
+   s->state_in_ch  = 256;
+   s->state_in_len = 0;
+}
+
+
+static
+Bool isempty_RL ( EState* s )
+{
+   if (s->state_in_ch < 256 && s->state_in_len > 0)
+      return False; else
+      return True;
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzCompressInit) 
+                    ( bz_stream* strm, 
+                     int        blockSize100k,
+                     int        verbosity,
+                     int        workFactor )
+{
+   Int32   n;
+   EState* s;
+
+   if (!bz_config_ok()) return BZ_CONFIG_ERROR;
+
+   if (strm == NULL || 
+       blockSize100k < 1 || blockSize100k > 9 ||
+       workFactor < 0 || workFactor > 250)
+     return BZ_PARAM_ERROR;
+
+   if (workFactor == 0) workFactor = 30;
+   if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
+   if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
+
+   s = BZALLOC( sizeof(EState) );
+   if (s == NULL) return BZ_MEM_ERROR;
+   s->strm = strm;
+
+   s->arr1 = NULL;
+   s->arr2 = NULL;
+   s->ftab = NULL;
+
+   n       = 100000 * blockSize100k;
+   s->arr1 = BZALLOC( n                  * sizeof(UInt32) );
+   s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) );
+   s->ftab = BZALLOC( 65537              * sizeof(UInt32) );
+
+   if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) {
+      if (s->arr1 != NULL) BZFREE(s->arr1);
+      if (s->arr2 != NULL) BZFREE(s->arr2);
+      if (s->ftab != NULL) BZFREE(s->ftab);
+      if (s       != NULL) BZFREE(s);
+      return BZ_MEM_ERROR;
+   }
+
+   s->blockNo           = 0;
+   s->state             = BZ_S_INPUT;
+   s->mode              = BZ_M_RUNNING;
+   s->combinedCRC       = 0;
+   s->blockSize100k     = blockSize100k;
+   s->nblockMAX         = 100000 * blockSize100k - 19;
+   s->verbosity         = verbosity;
+   s->workFactor        = workFactor;
+
+   s->block             = (UChar*)s->arr2;
+   s->mtfv              = (UInt16*)s->arr1;
+   s->zbits             = NULL;
+   s->ptr               = (UInt32*)s->arr1;
+
+   strm->state          = s;
+   strm->total_in_lo32  = 0;
+   strm->total_in_hi32  = 0;
+   strm->total_out_lo32 = 0;
+   strm->total_out_hi32 = 0;
+   init_RL ( s );
+   prepare_new_block ( s );
+   return BZ_OK;
+}
+
+
+/*---------------------------------------------------*/
+static
+void add_pair_to_block ( EState* s )
+{
+   Int32 i;
+   UChar ch = (UChar)(s->state_in_ch);
+   for (i = 0; i < s->state_in_len; i++) {
+      BZ_UPDATE_CRC( s->blockCRC, ch );
+   }
+   s->inUse[s->state_in_ch] = True;
+   switch (s->state_in_len) {
+      case 1:
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         break;
+      case 2:
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         break;
+      case 3:
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         break;
+      default:
+         s->inUse[s->state_in_len-4] = True;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = ((UChar)(s->state_in_len-4));
+         s->nblock++;
+         break;
+   }
+}
+
+
+/*---------------------------------------------------*/
+static
+void flush_RL ( EState* s )
+{
+   if (s->state_in_ch < 256) add_pair_to_block ( s );
+   init_RL ( s );
+}
+
+
+/*---------------------------------------------------*/
+#define ADD_CHAR_TO_BLOCK(zs,zchh0)               \
+{                                                 \
+   UInt32 zchh = (UInt32)(zchh0);                 \
+   /*-- fast track the common case --*/           \
+   if (zchh != zs->state_in_ch &&                 \
+       zs->state_in_len == 1) {                   \
+      UChar ch = (UChar)(zs->state_in_ch);        \
+      BZ_UPDATE_CRC( zs->blockCRC, ch );          \
+      zs->inUse[zs->state_in_ch] = True;          \
+      zs->block[zs->nblock] = (UChar)ch;          \
+      zs->nblock++;                               \
+      zs->state_in_ch = zchh;                     \
+   }                                              \
+   else                                           \
+   /*-- general, uncommon cases --*/              \
+   if (zchh != zs->state_in_ch ||                 \
+      zs->state_in_len == 255) {                  \
+      if (zs->state_in_ch < 256)                  \
+         add_pair_to_block ( zs );                \
+      zs->state_in_ch = zchh;                     \
+      zs->state_in_len = 1;                       \
+   } else {                                       \
+      zs->state_in_len++;                         \
+   }                                              \
+}
+
+
+/*---------------------------------------------------*/
+static
+Bool copy_input_until_stop ( EState* s )
+{
+   Bool progress_in = False;
+
+   if (s->mode == BZ_M_RUNNING) {
+
+      /*-- fast track the common case --*/
+      while (True) {
+         /*-- block full? --*/
+         if (s->nblock >= s->nblockMAX) break;
+         /*-- no input? --*/
+         if (s->strm->avail_in == 0) break;
+         progress_in = True;
+         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); 
+         s->strm->next_in++;
+         s->strm->avail_in--;
+         s->strm->total_in_lo32++;
+         if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
+      }
+
+   } else {
+
+      /*-- general, uncommon case --*/
+      while (True) {
+         /*-- block full? --*/
+         if (s->nblock >= s->nblockMAX) break;
+         /*-- no input? --*/
+         if (s->strm->avail_in == 0) break;
+         /*-- flush/finish end? --*/
+         if (s->avail_in_expect == 0) break;
+         progress_in = True;
+         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); 
+         s->strm->next_in++;
+         s->strm->avail_in--;
+         s->strm->total_in_lo32++;
+         if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
+         s->avail_in_expect--;
+      }
+   }
+   return progress_in;
+}
+
+
+/*---------------------------------------------------*/
+static
+Bool copy_output_until_stop ( EState* s )
+{
+   Bool progress_out = False;
+
+   while (True) {
+
+      /*-- no output space? --*/
+      if (s->strm->avail_out == 0) break;
+
+      /*-- block done? --*/
+      if (s->state_out_pos >= s->numZ) break;
+
+      progress_out = True;
+      *(s->strm->next_out) = s->zbits[s->state_out_pos];
+      s->state_out_pos++;
+      s->strm->avail_out--;
+      s->strm->next_out++;
+      s->strm->total_out_lo32++;
+      if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+   }
+
+   return progress_out;
+}
+
+
+/*---------------------------------------------------*/
+static
+Bool handle_compress ( bz_stream* strm )
+{
+   Bool progress_in  = False;
+   Bool progress_out = False;
+   EState* s = strm->state;
+   
+   while (True) {
+
+      if (s->state == BZ_S_OUTPUT) {
+         progress_out |= copy_output_until_stop ( s );
+         if (s->state_out_pos < s->numZ) break;
+         if (s->mode == BZ_M_FINISHING && 
+             s->avail_in_expect == 0 &&
+             isempty_RL(s)) break;
+         prepare_new_block ( s );
+         s->state = BZ_S_INPUT;
+         if (s->mode == BZ_M_FLUSHING && 
+             s->avail_in_expect == 0 &&
+             isempty_RL(s)) break;
+      }
+
+      if (s->state == BZ_S_INPUT) {
+         progress_in |= copy_input_until_stop ( s );
+         if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) {
+            flush_RL ( s );
+            BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) );
+            s->state = BZ_S_OUTPUT;
+         }
+         else
+         if (s->nblock >= s->nblockMAX) {
+            BZ2_compressBlock ( s, False );
+            s->state = BZ_S_OUTPUT;
+         }
+         else
+         if (s->strm->avail_in == 0) {
+            break;
+         }
+      }
+
+   }
+
+   return progress_in || progress_out;
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
+{
+   Bool progress;
+   EState* s;
+   if (strm == NULL) return BZ_PARAM_ERROR;
+   s = strm->state;
+   if (s == NULL) return BZ_PARAM_ERROR;
+   if (s->strm != strm) return BZ_PARAM_ERROR;
+
+   preswitch:
+   switch (s->mode) {
+
+      case BZ_M_IDLE:
+         return BZ_SEQUENCE_ERROR;
+
+      case BZ_M_RUNNING:
+         if (action == BZ_RUN) {
+            progress = handle_compress ( strm );
+            return progress ? BZ_RUN_OK : BZ_PARAM_ERROR;
+         } 
+         else
+        if (action == BZ_FLUSH) {
+            s->avail_in_expect = strm->avail_in;
+            s->mode = BZ_M_FLUSHING;
+            goto preswitch;
+         }
+         else
+         if (action == BZ_FINISH) {
+            s->avail_in_expect = strm->avail_in;
+            s->mode = BZ_M_FINISHING;
+            goto preswitch;
+         }
+         else 
+            return BZ_PARAM_ERROR;
+
+      case BZ_M_FLUSHING:
+         if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR;
+         if (s->avail_in_expect != s->strm->avail_in) 
+            return BZ_SEQUENCE_ERROR;
+         progress = handle_compress ( strm );
+         if (s->avail_in_expect > 0 || !isempty_RL(s) ||
+             s->state_out_pos < s->numZ) return BZ_FLUSH_OK;
+         s->mode = BZ_M_RUNNING;
+         return BZ_RUN_OK;
+
+      case BZ_M_FINISHING:
+         if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR;
+         if (s->avail_in_expect != s->strm->avail_in) 
+            return BZ_SEQUENCE_ERROR;
+         progress = handle_compress ( strm );
+         if (!progress) return BZ_SEQUENCE_ERROR;
+         if (s->avail_in_expect > 0 || !isempty_RL(s) ||
+             s->state_out_pos < s->numZ) return BZ_FINISH_OK;
+         s->mode = BZ_M_IDLE;
+         return BZ_STREAM_END;
+   }
+   return BZ_OK; /*--not reached--*/
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzCompressEnd)  ( bz_stream *strm )
+{
+   EState* s;
+   if (strm == NULL) return BZ_PARAM_ERROR;
+   s = strm->state;
+   if (s == NULL) return BZ_PARAM_ERROR;
+   if (s->strm != strm) return BZ_PARAM_ERROR;
+
+   if (s->arr1 != NULL) BZFREE(s->arr1);
+   if (s->arr2 != NULL) BZFREE(s->arr2);
+   if (s->ftab != NULL) BZFREE(s->ftab);
+   BZFREE(strm->state);
+
+   strm->state = NULL;   
+
+   return BZ_OK;
+}
+
+
+/*---------------------------------------------------*/
+/*--- Decompression stuff                         ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzDecompressInit) 
+                     ( bz_stream* strm, 
+                       int        verbosity,
+                       int        small )
+{
+   DState* s;
+
+   if (!bz_config_ok()) return BZ_CONFIG_ERROR;
+
+   if (strm == NULL) return BZ_PARAM_ERROR;
+   if (small != 0 && small != 1) return BZ_PARAM_ERROR;
+   if (verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR;
+
+   if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
+   if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
+
+   s = BZALLOC( sizeof(DState) );
+   if (s == NULL) return BZ_MEM_ERROR;
+   s->strm                  = strm;
+   strm->state              = s;
+   s->state                 = BZ_X_MAGIC_1;
+   s->bsLive                = 0;
+   s->bsBuff                = 0;
+   s->calculatedCombinedCRC = 0;
+   strm->total_in_lo32      = 0;
+   strm->total_in_hi32      = 0;
+   strm->total_out_lo32     = 0;
+   strm->total_out_hi32     = 0;
+   s->smallDecompress       = (Bool)small;
+   s->ll4                   = NULL;
+   s->ll16                  = NULL;
+   s->tt                    = NULL;
+   s->currBlockNo           = 0;
+   s->verbosity             = verbosity;
+
+   return BZ_OK;
+}
+
+
+/*---------------------------------------------------*/
+/* Return  True iff data corruption is discovered.
+   Returns False if there is no problem.
+*/
+static
+Bool unRLE_obuf_to_output_FAST ( DState* s )
+{
+   UChar k1;
+
+   if (s->blockRandomised) {
+
+      while (True) {
+         /* try to finish existing run */
+         while (True) {
+            if (s->strm->avail_out == 0) return False;
+            if (s->state_out_len == 0) break;
+            *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
+            BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
+            s->state_out_len--;
+            s->strm->next_out++;
+            s->strm->avail_out--;
+            s->strm->total_out_lo32++;
+            if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+         }
+
+         /* can a new run be started? */
+         if (s->nblock_used == s->save_nblock+1) return False;
+               
+         /* Only caused by corrupt data stream? */
+         if (s->nblock_used > s->save_nblock+1)
+            return True;
+   
+         s->state_out_len = 1;
+         s->state_out_ch = s->k0;
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 2;
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 3;
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         s->state_out_len = ((Int32)k1) + 4;
+         BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK; 
+         s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
+      }
+
+   } else {
+
+      /* restore */
+      UInt32        c_calculatedBlockCRC = s->calculatedBlockCRC;
+      UChar         c_state_out_ch       = s->state_out_ch;
+      Int32         c_state_out_len      = s->state_out_len;
+      Int32         c_nblock_used        = s->nblock_used;
+      Int32         c_k0                 = s->k0;
+      UInt32*       c_tt                 = s->tt;
+      UInt32        c_tPos               = s->tPos;
+      char*         cs_next_out          = s->strm->next_out;
+      unsigned int  cs_avail_out         = s->strm->avail_out;
+      Int32         ro_blockSize100k     = s->blockSize100k;
+      /* end restore */
+
+      UInt32       avail_out_INIT = cs_avail_out;
+      Int32        s_save_nblockPP = s->save_nblock+1;
+      unsigned int total_out_lo32_old;
+
+      while (True) {
+
+         /* try to finish existing run */
+         if (c_state_out_len > 0) {
+            while (True) {
+               if (cs_avail_out == 0) goto return_notr;
+               if (c_state_out_len == 1) break;
+               *( (UChar*)(cs_next_out) ) = c_state_out_ch;
+               BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
+               c_state_out_len--;
+               cs_next_out++;
+               cs_avail_out--;
+            }
+            s_state_out_len_eq_one:
+            {
+               if (cs_avail_out == 0) { 
+                  c_state_out_len = 1; goto return_notr;
+               };
+               *( (UChar*)(cs_next_out) ) = c_state_out_ch;
+               BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
+               cs_next_out++;
+               cs_avail_out--;
+            }
+         }   
+         /* Only caused by corrupt data stream? */
+         if (c_nblock_used > s_save_nblockPP)
+            return True;
+
+         /* can a new run be started? */
+         if (c_nblock_used == s_save_nblockPP) {
+            c_state_out_len = 0; goto return_notr;
+         };   
+         c_state_out_ch = c_k0;
+         BZ_GET_FAST_C(k1); c_nblock_used++;
+         if (k1 != c_k0) { 
+            c_k0 = k1; goto s_state_out_len_eq_one; 
+         };
+         if (c_nblock_used == s_save_nblockPP) 
+            goto s_state_out_len_eq_one;
+   
+         c_state_out_len = 2;
+         BZ_GET_FAST_C(k1); c_nblock_used++;
+         if (c_nblock_used == s_save_nblockPP) continue;
+         if (k1 != c_k0) { c_k0 = k1; continue; };
+   
+         c_state_out_len = 3;
+         BZ_GET_FAST_C(k1); c_nblock_used++;
+         if (c_nblock_used == s_save_nblockPP) continue;
+         if (k1 != c_k0) { c_k0 = k1; continue; };
+   
+         BZ_GET_FAST_C(k1); c_nblock_used++;
+         c_state_out_len = ((Int32)k1) + 4;
+         BZ_GET_FAST_C(c_k0); c_nblock_used++;
+      }
+
+      return_notr:
+      total_out_lo32_old = s->strm->total_out_lo32;
+      s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out);
+      if (s->strm->total_out_lo32 < total_out_lo32_old)
+         s->strm->total_out_hi32++;
+
+      /* save */
+      s->calculatedBlockCRC = c_calculatedBlockCRC;
+      s->state_out_ch       = c_state_out_ch;
+      s->state_out_len      = c_state_out_len;
+      s->nblock_used        = c_nblock_used;
+      s->k0                 = c_k0;
+      s->tt                 = c_tt;
+      s->tPos               = c_tPos;
+      s->strm->next_out     = cs_next_out;
+      s->strm->avail_out    = cs_avail_out;
+      /* end save */
+   }
+   return False;
+}
+
+
+
+/*---------------------------------------------------*/
+__inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab )
+{
+   Int32 nb, na, mid;
+   nb = 0;
+   na = 256;
+   do {
+      mid = (nb + na) >> 1;
+      if (indx >= cftab[mid]) nb = mid; else na = mid;
+   }
+   while (na - nb != 1);
+   return nb;
+}
+
+
+/*---------------------------------------------------*/
+/* Return  True iff data corruption is discovered.
+   Returns False if there is no problem.
+*/
+static
+Bool unRLE_obuf_to_output_SMALL ( DState* s )
+{
+   UChar k1;
+
+   if (s->blockRandomised) {
+
+      while (True) {
+         /* try to finish existing run */
+         while (True) {
+            if (s->strm->avail_out == 0) return False;
+            if (s->state_out_len == 0) break;
+            *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
+            BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
+            s->state_out_len--;
+            s->strm->next_out++;
+            s->strm->avail_out--;
+            s->strm->total_out_lo32++;
+            if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+         }
+   
+         /* can a new run be started? */
+         if (s->nblock_used == s->save_nblock+1) return False;
+
+         /* Only caused by corrupt data stream? */
+         if (s->nblock_used > s->save_nblock+1)
+            return True;
+   
+         s->state_out_len = 1;
+         s->state_out_ch = s->k0;
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 2;
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 3;
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         s->state_out_len = ((Int32)k1) + 4;
+         BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK; 
+         s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
+      }
+
+   } else {
+
+      while (True) {
+         /* try to finish existing run */
+         while (True) {
+            if (s->strm->avail_out == 0) return False;
+            if (s->state_out_len == 0) break;
+            *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
+            BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
+            s->state_out_len--;
+            s->strm->next_out++;
+            s->strm->avail_out--;
+            s->strm->total_out_lo32++;
+            if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+         }
+   
+         /* can a new run be started? */
+         if (s->nblock_used == s->save_nblock+1) return False;
+
+         /* Only caused by corrupt data stream? */
+         if (s->nblock_used > s->save_nblock+1)
+            return True;
+   
+         s->state_out_len = 1;
+         s->state_out_ch = s->k0;
+         BZ_GET_SMALL(k1); s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 2;
+         BZ_GET_SMALL(k1); s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 3;
+         BZ_GET_SMALL(k1); s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         BZ_GET_SMALL(k1); s->nblock_used++;
+         s->state_out_len = ((Int32)k1) + 4;
+         BZ_GET_SMALL(s->k0); s->nblock_used++;
+      }
+
+   }
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
+{
+   Bool    corrupt;
+   DState* s;
+   if (strm == NULL) return BZ_PARAM_ERROR;
+   s = strm->state;
+   if (s == NULL) return BZ_PARAM_ERROR;
+   if (s->strm != strm) return BZ_PARAM_ERROR;
+
+   while (True) {
+      if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR;
+      if (s->state == BZ_X_OUTPUT) {
+         if (s->smallDecompress)
+            corrupt = unRLE_obuf_to_output_SMALL ( s ); else
+            corrupt = unRLE_obuf_to_output_FAST  ( s );
+         if (corrupt) return BZ_DATA_ERROR;
+         if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) {
+            BZ_FINALISE_CRC ( s->calculatedBlockCRC );
+            if (s->verbosity >= 3) 
+               VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC, 
+                          s->calculatedBlockCRC );
+            if (s->verbosity >= 2) VPrintf0 ( "]" );
+            if (s->calculatedBlockCRC != s->storedBlockCRC)
+               return BZ_DATA_ERROR;
+            s->calculatedCombinedCRC 
+               = (s->calculatedCombinedCRC << 1) | 
+                    (s->calculatedCombinedCRC >> 31);
+            s->calculatedCombinedCRC ^= s->calculatedBlockCRC;
+            s->state = BZ_X_BLKHDR_1;
+         } else {
+            return BZ_OK;
+         }
+      }
+      if (s->state >= BZ_X_MAGIC_1) {
+         Int32 r = BZ2_decompress ( s );
+         if (r == BZ_STREAM_END) {
+            if (s->verbosity >= 3)
+               VPrintf2 ( "\n    combined CRCs: stored = 0x%08x, computed = 0x%08x", 
+                          s->storedCombinedCRC, s->calculatedCombinedCRC );
+            if (s->calculatedCombinedCRC != s->storedCombinedCRC)
+               return BZ_DATA_ERROR;
+            return r;
+         }
+         if (s->state != BZ_X_OUTPUT) return r;
+      }
+   }
+
+   AssertH ( 0, 6001 );
+
+   return 0;  /*NOTREACHED*/
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzDecompressEnd)  ( bz_stream *strm )
+{
+   DState* s;
+   if (strm == NULL) return BZ_PARAM_ERROR;
+   s = strm->state;
+   if (s == NULL) return BZ_PARAM_ERROR;
+   if (s->strm != strm) return BZ_PARAM_ERROR;
+
+   if (s->tt   != NULL) BZFREE(s->tt);
+   if (s->ll16 != NULL) BZFREE(s->ll16);
+   if (s->ll4  != NULL) BZFREE(s->ll4);
+
+   BZFREE(strm->state);
+   strm->state = NULL;
+
+   return BZ_OK;
+}
+
+
+#ifndef BZ_NO_STDIO
+/*---------------------------------------------------*/
+/*--- File I/O stuff                              ---*/
+/*---------------------------------------------------*/
+
+#define BZ_SETERR(eee)                    \
+{                                         \
+   if (bzerror != NULL) *bzerror = eee;   \
+   if (bzf != NULL) bzf->lastErr = eee;   \
+}
+
+typedef 
+   struct {
+      FILE*     handle;
+      Char      buf[BZ_MAX_UNUSED];
+      Int32     bufN;
+      Bool      writing;
+      bz_stream strm;
+      Int32     lastErr;
+      Bool      initialisedOk;
+   }
+   bzFile;
+
+
+/*---------------------------------------------*/
+static Bool myfeof ( FILE* f )
+{
+   Int32 c = fgetc ( f );
+   if (c == EOF) return True;
+   ungetc ( c, f );
+   return False;
+}
+
+
+/*---------------------------------------------------*/
+BZFILE* BZ_API(BZ2_bzWriteOpen) 
+                    ( int*  bzerror,      
+                      FILE* f, 
+                      int   blockSize100k, 
+                      int   verbosity,
+                      int   workFactor )
+{
+   Int32   ret;
+   bzFile* bzf = NULL;
+
+   BZ_SETERR(BZ_OK);
+
+   if (f == NULL ||
+       (blockSize100k < 1 || blockSize100k > 9) ||
+       (workFactor < 0 || workFactor > 250) ||
+       (verbosity < 0 || verbosity > 4))
+      { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
+
+   if (ferror(f))
+      { BZ_SETERR(BZ_IO_ERROR); return NULL; };
+
+   bzf = malloc ( sizeof(bzFile) );
+   if (bzf == NULL)
+      { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
+
+   BZ_SETERR(BZ_OK);
+   bzf->initialisedOk = False;
+   bzf->bufN          = 0;
+   bzf->handle        = f;
+   bzf->writing       = True;
+   bzf->strm.bzalloc  = NULL;
+   bzf->strm.bzfree   = NULL;
+   bzf->strm.opaque   = NULL;
+
+   if (workFactor == 0) workFactor = 30;
+   ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k, 
+                              verbosity, workFactor );
+   if (ret != BZ_OK)
+      { BZ_SETERR(ret); free(bzf); return NULL; };
+
+   bzf->strm.avail_in = 0;
+   bzf->initialisedOk = True;
+   return bzf;   
+}
+
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzWrite)
+             ( int*    bzerror, 
+               BZFILE* b, 
+               void*   buf, 
+               int     len )
+{
+   Int32 n, n2, ret;
+   bzFile* bzf = (bzFile*)b;
+
+   BZ_SETERR(BZ_OK);
+   if (bzf == NULL || buf == NULL || len < 0)
+      { BZ_SETERR(BZ_PARAM_ERROR); return; };
+   if (!(bzf->writing))
+      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+   if (ferror(bzf->handle))
+      { BZ_SETERR(BZ_IO_ERROR); return; };
+
+   if (len == 0)
+      { BZ_SETERR(BZ_OK); return; };
+
+   bzf->strm.avail_in = len;
+   bzf->strm.next_in  = buf;
+
+   while (True) {
+      bzf->strm.avail_out = BZ_MAX_UNUSED;
+      bzf->strm.next_out = bzf->buf;
+      ret = BZ2_bzCompress ( &(bzf->strm), BZ_RUN );
+      if (ret != BZ_RUN_OK)
+         { BZ_SETERR(ret); return; };
+
+      if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
+         n = BZ_MAX_UNUSED - bzf->strm.avail_out;
+         n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), 
+                       n, bzf->handle );
+         if (n != n2 || ferror(bzf->handle))
+            { BZ_SETERR(BZ_IO_ERROR); return; };
+      }
+
+      if (bzf->strm.avail_in == 0)
+         { BZ_SETERR(BZ_OK); return; };
+   }
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzWriteClose)
+                  ( int*          bzerror, 
+                    BZFILE*       b, 
+                    int           abandon,
+                    unsigned int* nbytes_in,
+                    unsigned int* nbytes_out )
+{
+   BZ2_bzWriteClose64 ( bzerror, b, abandon, 
+                        nbytes_in, NULL, nbytes_out, NULL );
+}
+
+
+void BZ_API(BZ2_bzWriteClose64)
+                  ( int*          bzerror, 
+                    BZFILE*       b, 
+                    int           abandon,
+                    unsigned int* nbytes_in_lo32,
+                    unsigned int* nbytes_in_hi32,
+                    unsigned int* nbytes_out_lo32,
+                    unsigned int* nbytes_out_hi32 )
+{
+   Int32   n, n2, ret;
+   bzFile* bzf = (bzFile*)b;
+
+   if (bzf == NULL)
+      { BZ_SETERR(BZ_OK); return; };
+   if (!(bzf->writing))
+      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+   if (ferror(bzf->handle))
+      { BZ_SETERR(BZ_IO_ERROR); return; };
+
+   if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = 0;
+   if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = 0;
+   if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = 0;
+   if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = 0;
+
+   if ((!abandon) && bzf->lastErr == BZ_OK) {
+      while (True) {
+         bzf->strm.avail_out = BZ_MAX_UNUSED;
+         bzf->strm.next_out = bzf->buf;
+         ret = BZ2_bzCompress ( &(bzf->strm), BZ_FINISH );
+         if (ret != BZ_FINISH_OK && ret != BZ_STREAM_END)
+            { BZ_SETERR(ret); return; };
+
+         if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
+            n = BZ_MAX_UNUSED - bzf->strm.avail_out;
+            n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), 
+                          n, bzf->handle );
+            if (n != n2 || ferror(bzf->handle))
+               { BZ_SETERR(BZ_IO_ERROR); return; };
+         }
+
+         if (ret == BZ_STREAM_END) break;
+      }
+   }
+
+   if ( !abandon && !ferror ( bzf->handle ) ) {
+      fflush ( bzf->handle );
+      if (ferror(bzf->handle))
+         { BZ_SETERR(BZ_IO_ERROR); return; };
+   }
+
+   if (nbytes_in_lo32 != NULL)
+      *nbytes_in_lo32 = bzf->strm.total_in_lo32;
+   if (nbytes_in_hi32 != NULL)
+      *nbytes_in_hi32 = bzf->strm.total_in_hi32;
+   if (nbytes_out_lo32 != NULL)
+      *nbytes_out_lo32 = bzf->strm.total_out_lo32;
+   if (nbytes_out_hi32 != NULL)
+      *nbytes_out_hi32 = bzf->strm.total_out_hi32;
+
+   BZ_SETERR(BZ_OK);
+   BZ2_bzCompressEnd ( &(bzf->strm) );
+   free ( bzf );
+}
+
+
+/*---------------------------------------------------*/
+BZFILE* BZ_API(BZ2_bzReadOpen) 
+                   ( int*  bzerror, 
+                     FILE* f, 
+                     int   verbosity,
+                     int   small,
+                     void* unused,
+                     int   nUnused )
+{
+   bzFile* bzf = NULL;
+   int     ret;
+
+   BZ_SETERR(BZ_OK);
+
+   if (f == NULL || 
+       (small != 0 && small != 1) ||
+       (verbosity < 0 || verbosity > 4) ||
+       (unused == NULL && nUnused != 0) ||
+       (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED)))
+      { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
+
+   if (ferror(f))
+      { BZ_SETERR(BZ_IO_ERROR); return NULL; };
+
+   bzf = malloc ( sizeof(bzFile) );
+   if (bzf == NULL) 
+      { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
+
+   BZ_SETERR(BZ_OK);
+
+   bzf->initialisedOk = False;
+   bzf->handle        = f;
+   bzf->bufN          = 0;
+   bzf->writing       = False;
+   bzf->strm.bzalloc  = NULL;
+   bzf->strm.bzfree   = NULL;
+   bzf->strm.opaque   = NULL;
+   
+   while (nUnused > 0) {
+      bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++;
+      unused = ((void*)( 1 + ((UChar*)(unused))  ));
+      nUnused--;
+   }
+
+   ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small );
+   if (ret != BZ_OK)
+      { BZ_SETERR(ret); free(bzf); return NULL; };
+
+   bzf->strm.avail_in = bzf->bufN;
+   bzf->strm.next_in  = bzf->buf;
+
+   bzf->initialisedOk = True;
+   return bzf;   
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b )
+{
+   bzFile* bzf = (bzFile*)b;
+
+   BZ_SETERR(BZ_OK);
+   if (bzf == NULL)
+      { BZ_SETERR(BZ_OK); return; };
+
+   if (bzf->writing)
+      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+
+   if (bzf->initialisedOk)
+      (void)BZ2_bzDecompressEnd ( &(bzf->strm) );
+   free ( bzf );
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzRead) 
+           ( int*    bzerror, 
+             BZFILE* b, 
+             void*   buf, 
+             int     len )
+{
+   Int32   n, ret;
+   bzFile* bzf = (bzFile*)b;
+
+   BZ_SETERR(BZ_OK);
+
+   if (bzf == NULL || buf == NULL || len < 0)
+      { BZ_SETERR(BZ_PARAM_ERROR); return 0; };
+
+   if (bzf->writing)
+      { BZ_SETERR(BZ_SEQUENCE_ERROR); return 0; };
+
+   if (len == 0)
+      { BZ_SETERR(BZ_OK); return 0; };
+
+   bzf->strm.avail_out = len;
+   bzf->strm.next_out = buf;
+
+   while (True) {
+
+      if (ferror(bzf->handle)) 
+         { BZ_SETERR(BZ_IO_ERROR); return 0; };
+
+      if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) {
+         n = fread ( bzf->buf, sizeof(UChar), 
+                     BZ_MAX_UNUSED, bzf->handle );
+         if (ferror(bzf->handle))
+            { BZ_SETERR(BZ_IO_ERROR); return 0; };
+         bzf->bufN = n;
+         bzf->strm.avail_in = bzf->bufN;
+         bzf->strm.next_in = bzf->buf;
+      }
+
+      ret = BZ2_bzDecompress ( &(bzf->strm) );
+
+      if (ret != BZ_OK && ret != BZ_STREAM_END)
+         { BZ_SETERR(ret); return 0; };
+
+      if (ret == BZ_OK && myfeof(bzf->handle) && 
+          bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0)
+         { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; };
+
+      if (ret == BZ_STREAM_END)
+         { BZ_SETERR(BZ_STREAM_END);
+           return len - bzf->strm.avail_out; };
+      if (bzf->strm.avail_out == 0)
+         { BZ_SETERR(BZ_OK); return len; };
+      
+   }
+
+   return 0; /*not reached*/
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzReadGetUnused) 
+                     ( int*    bzerror, 
+                       BZFILE* b, 
+                       void**  unused, 
+                       int*    nUnused )
+{
+   bzFile* bzf = (bzFile*)b;
+   if (bzf == NULL)
+      { BZ_SETERR(BZ_PARAM_ERROR); return; };
+   if (bzf->lastErr != BZ_STREAM_END)
+      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+   if (unused == NULL || nUnused == NULL)
+      { BZ_SETERR(BZ_PARAM_ERROR); return; };
+
+   BZ_SETERR(BZ_OK);
+   *nUnused = bzf->strm.avail_in;
+   *unused = bzf->strm.next_in;
+}
+#endif
+
+
+/*---------------------------------------------------*/
+/*--- Misc convenience stuff                      ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzBuffToBuffCompress) 
+                         ( char*         dest, 
+                           unsigned int* destLen,
+                           char*         source, 
+                           unsigned int  sourceLen,
+                           int           blockSize100k, 
+                           int           verbosity, 
+                           int           workFactor )
+{
+   bz_stream strm;
+   int ret;
+
+   if (dest == NULL || destLen == NULL || 
+       source == NULL ||
+       blockSize100k < 1 || blockSize100k > 9 ||
+       verbosity < 0 || verbosity > 4 ||
+       workFactor < 0 || workFactor > 250) 
+      return BZ_PARAM_ERROR;
+
+   if (workFactor == 0) workFactor = 30;
+   strm.bzalloc = NULL;
+   strm.bzfree = NULL;
+   strm.opaque = NULL;
+   ret = BZ2_bzCompressInit ( &strm, blockSize100k, 
+                              verbosity, workFactor );
+   if (ret != BZ_OK) return ret;
+
+   strm.next_in = source;
+   strm.next_out = dest;
+   strm.avail_in = sourceLen;
+   strm.avail_out = *destLen;
+
+   ret = BZ2_bzCompress ( &strm, BZ_FINISH );
+   if (ret == BZ_FINISH_OK) goto output_overflow;
+   if (ret != BZ_STREAM_END) goto errhandler;
+
+   /* normal termination */
+   *destLen -= strm.avail_out;   
+   BZ2_bzCompressEnd ( &strm );
+   return BZ_OK;
+
+   output_overflow:
+   BZ2_bzCompressEnd ( &strm );
+   return BZ_OUTBUFF_FULL;
+
+   errhandler:
+   BZ2_bzCompressEnd ( &strm );
+   return ret;
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzBuffToBuffDecompress) 
+                           ( char*         dest, 
+                             unsigned int* destLen,
+                             char*         source, 
+                             unsigned int  sourceLen,
+                             int           small,
+                             int           verbosity )
+{
+   bz_stream strm;
+   int ret;
+
+   if (dest == NULL || destLen == NULL || 
+       source == NULL ||
+       (small != 0 && small != 1) ||
+       verbosity < 0 || verbosity > 4) 
+          return BZ_PARAM_ERROR;
+
+   strm.bzalloc = NULL;
+   strm.bzfree = NULL;
+   strm.opaque = NULL;
+   ret = BZ2_bzDecompressInit ( &strm, verbosity, small );
+   if (ret != BZ_OK) return ret;
+
+   strm.next_in = source;
+   strm.next_out = dest;
+   strm.avail_in = sourceLen;
+   strm.avail_out = *destLen;
+
+   ret = BZ2_bzDecompress ( &strm );
+   if (ret == BZ_OK) goto output_overflow_or_eof;
+   if (ret != BZ_STREAM_END) goto errhandler;
+
+   /* normal termination */
+   *destLen -= strm.avail_out;
+   BZ2_bzDecompressEnd ( &strm );
+   return BZ_OK;
+
+   output_overflow_or_eof:
+   if (strm.avail_out > 0) {
+      BZ2_bzDecompressEnd ( &strm );
+      return BZ_UNEXPECTED_EOF;
+   } else {
+      BZ2_bzDecompressEnd ( &strm );
+      return BZ_OUTBUFF_FULL;
+   };      
+
+   errhandler:
+   BZ2_bzDecompressEnd ( &strm );
+   return ret; 
+}
+
+
+/*---------------------------------------------------*/
+/*--
+   Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
+   to support better zlib compatibility.
+   This code is not _officially_ part of libbzip2 (yet);
+   I haven't tested it, documented it, or considered the
+   threading-safeness of it.
+   If this code breaks, please contact both Yoshioka and me.
+--*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+/*--
+   2005-10-03 SMS.
+   return version like "1.0.3, 15-Feb-2005".
+--*/
+const char * BZ_API(BZ2_bzlibVersion)(void)
+{
+   static char vers[ 32] = BZ_VERSION_BASE;
+   static int done = False;
+
+   if (!done)
+   {
+      done = True;
+      strcat( vers, ", ");
+      strcat( vers, BZ_VERSION_DATE);
+   }
+   return vers;
+}
+
+/*---------------------------------------------------*/
+/*--
+   2005-10-03 SMS.
+   Actually return version like "0.9.0c".
+--*/
+const char * BZ_API(BZ2_bzlibVersionBase)(void)
+{
+   return BZ_VERSION_BASE;
+}
+
+/*---------------------------------------------------*/
+/*--
+   2005-10-03 SMS.
+   Return version-associated date.
+--*/
+const char * BZ_API(BZ2_bzlibVersionDate)(void)
+{
+   return BZ_VERSION_DATE;
+}
+
+
+#ifndef BZ_NO_STDIO
+/*---------------------------------------------------*/
+
+#if defined(_WIN32) || defined(OS2) || defined(MSDOS)
+#   include <fcntl.h>
+#   include <io.h>
+#   define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY)
+#else
+#   define SET_BINARY_MODE(file)
+#endif
+static
+BZFILE * bzopen_or_bzdopen
+               ( const char *path,   /* no use when bzdopen */
+                 int fd,             /* no use when bzdopen */
+                 const char *mode,
+                 int open_mode)      /* bzopen: 0, bzdopen:1 */
+{
+   int    bzerr;
+   char   unused[BZ_MAX_UNUSED];
+   int    blockSize100k = 9;
+   int    writing       = 0;
+   char   mode2[10]     = "";
+   FILE   *fp           = NULL;
+   BZFILE *bzfp         = NULL;
+   int    verbosity     = 0;
+   int    workFactor    = 30;
+   int    smallMode     = 0;
+   int    nUnused       = 0; 
+
+   if (mode == NULL) return NULL;
+   while (*mode) {
+      switch (*mode) {
+      case 'r':
+         writing = 0; break;
+      case 'w':
+         writing = 1; break;
+      case 's':
+         smallMode = 1; break;
+      default:
+         if (isdigit((int)(*mode))) {
+            blockSize100k = *mode-BZ_HDR_0;
+         }
+      }
+      mode++;
+   }
+   strcat(mode2, writing ? "w" : "r" );
+   strcat(mode2,"b");   /* binary mode */
+
+   if (open_mode==0) {
+      if (path==NULL || strcmp(path,"")==0) {
+        fp = (writing ? stdout : stdin);
+        SET_BINARY_MODE(fp);
+      } else {
+        fp = fopen(path,mode2);
+      }
+   } else {
+#ifdef BZ_STRICT_ANSI
+      fp = NULL;
+#else
+      fp = fdopen(fd,mode2);
+#endif
+   }
+   if (fp == NULL) return NULL;
+
+   if (writing) {
+      /* Guard against total chaos and anarchy -- JRS */
+      if (blockSize100k < 1) blockSize100k = 1;
+      if (blockSize100k > 9) blockSize100k = 9; 
+      bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k,
+                             verbosity,workFactor);
+   } else {
+      bzfp = BZ2_bzReadOpen(&bzerr,fp,verbosity,smallMode,
+                            unused,nUnused);
+   }
+   if (bzfp == NULL) {
+      if (fp != stdin && fp != stdout) fclose(fp);
+      return NULL;
+   }
+   return bzfp;
+}
+
+
+/*---------------------------------------------------*/
+/*--
+   open file for read or write.
+      ex) bzopen("file","w9")
+      case path="" or NULL => use stdin or stdout.
+--*/
+BZFILE * BZ_API(BZ2_bzopen)
+               ( const char *path,
+                 const char *mode )
+{
+   return bzopen_or_bzdopen(path,-1,mode,/*bzopen*/0);
+}
+
+
+/*---------------------------------------------------*/
+BZFILE * BZ_API(BZ2_bzdopen)
+               ( int fd,
+                 const char *mode )
+{
+   return bzopen_or_bzdopen(NULL,fd,mode,/*bzdopen*/1);
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzread) (BZFILE* b, void* buf, int len )
+{
+   int bzerr, nread;
+   if (((bzFile*)b)->lastErr == BZ_STREAM_END) return 0;
+   nread = BZ2_bzRead(&bzerr,b,buf,len);
+   if (bzerr == BZ_OK || bzerr == BZ_STREAM_END) {
+      return nread;
+   } else {
+      return -1;
+   }
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzwrite) (BZFILE* b, void* buf, int len )
+{
+   int bzerr;
+
+   BZ2_bzWrite(&bzerr,b,buf,len);
+   if(bzerr == BZ_OK){
+      return len;
+   }else{
+      return -1;
+   }
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzflush) (BZFILE *b)
+{
+   /* do nothing now... */
+   return 0;
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzclose) (BZFILE* b)
+{
+   int bzerr;
+   FILE *fp;
+   
+   if (b==NULL) {return;}
+   fp = ((bzFile *)b)->handle;
+   if(((bzFile*)b)->writing){
+      BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL);
+      if(bzerr != BZ_OK){
+         BZ2_bzWriteClose(NULL,b,1,NULL,NULL);
+      }
+   }else{
+      BZ2_bzReadClose(&bzerr,b);
+   }
+   if(fp!=stdin && fp!=stdout){
+      fclose(fp);
+   }
+}
+
+
+/*---------------------------------------------------*/
+/*--
+   return last error code 
+--*/
+static const char *bzerrorstrings[] = {
+       "OK"
+      ,"SEQUENCE_ERROR"
+      ,"PARAM_ERROR"
+      ,"MEM_ERROR"
+      ,"DATA_ERROR"
+      ,"DATA_ERROR_MAGIC"
+      ,"IO_ERROR"
+      ,"UNEXPECTED_EOF"
+      ,"OUTBUFF_FULL"
+      ,"CONFIG_ERROR"
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+};
+
+
+const char * BZ_API(BZ2_bzerror) (BZFILE *b, int *errnum)
+{
+   int err = ((bzFile *)b)->lastErr;
+
+   if(err>0) err = 0;
+   *errnum = err;
+   return bzerrorstrings[err*-1];
+}
+#endif
+
+
+/*-------------------------------------------------------------*/
+/*--- end                                           bzlib.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/bzlib.c_orig b/bzip2/bzlib.c_orig
new file mode 100644 (file)
index 0000000..bd358a7
--- /dev/null
@@ -0,0 +1,1572 @@
+
+/*-------------------------------------------------------------*/
+/*--- Library top-level functions.                          ---*/
+/*---                                               bzlib.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+/* CHANGES
+   0.9.0    -- original version.
+   0.9.0a/b -- no changes in this file.
+   0.9.0c   -- made zero-length BZ_FLUSH work correctly in bzCompress().
+     fixed bzWrite/bzRead to ignore zero-length requests.
+     fixed bzread to correctly handle read requests after EOF.
+     wrong parameter order in call to bzDecompressInit in
+     bzBuffToBuffDecompress.  Fixed.
+*/
+
+#include "bzlib_private.h"
+
+
+/*---------------------------------------------------*/
+/*--- Compression stuff                           ---*/
+/*---------------------------------------------------*/
+
+
+/*---------------------------------------------------*/
+#ifndef BZ_NO_STDIO
+void BZ2_bz__AssertH__fail ( int errcode )
+{
+   fprintf(stderr, 
+      "\n\nbzip2/libbzip2: internal error number %d.\n"
+      "This is a bug in bzip2/libbzip2, %s.\n"
+      "Please report it to me at: jseward@bzip.org.  If this happened\n"
+      "when you were using some program which uses libbzip2 as a\n"
+      "component, you should also report this bug to the author(s)\n"
+      "of that program.  Please make an effort to report this bug;\n"
+      "timely and accurate bug reports eventually lead to higher\n"
+      "quality software.  Thanks.  Julian Seward, 10 December 2007.\n\n",
+      errcode,
+      BZ2_bzlibVersion()
+   );
+
+   if (errcode == 1007) {
+   fprintf(stderr,
+      "\n*** A special note about internal error number 1007 ***\n"
+      "\n"
+      "Experience suggests that a common cause of i.e. 1007\n"
+      "is unreliable memory or other hardware.  The 1007 assertion\n"
+      "just happens to cross-check the results of huge numbers of\n"
+      "memory reads/writes, and so acts (unintendedly) as a stress\n"
+      "test of your memory system.\n"
+      "\n"
+      "I suggest the following: try compressing the file again,\n"
+      "possibly monitoring progress in detail with the -vv flag.\n"
+      "\n"
+      "* If the error cannot be reproduced, and/or happens at different\n"
+      "  points in compression, you may have a flaky memory system.\n"
+      "  Try a memory-test program.  I have used Memtest86\n"
+      "  (www.memtest86.com).  At the time of writing it is free (GPLd).\n"
+      "  Memtest86 tests memory much more thorougly than your BIOSs\n"
+      "  power-on test, and may find failures that the BIOS doesn't.\n"
+      "\n"
+      "* If the error can be repeatably reproduced, this is a bug in\n"
+      "  bzip2, and I would very much like to hear about it.  Please\n"
+      "  let me know, and, ideally, save a copy of the file causing the\n"
+      "  problem -- without which I will be unable to investigate it.\n"
+      "\n"
+   );
+   }
+
+   exit(3);
+}
+#endif
+
+
+/*---------------------------------------------------*/
+static
+int bz_config_ok ( void )
+{
+   if (sizeof(int)   != 4) return 0;
+   if (sizeof(short) != 2) return 0;
+   if (sizeof(char)  != 1) return 0;
+   return 1;
+}
+
+
+/*---------------------------------------------------*/
+static
+void* default_bzalloc ( void* opaque, Int32 items, Int32 size )
+{
+   void* v = malloc ( items * size );
+   return v;
+}
+
+static
+void default_bzfree ( void* opaque, void* addr )
+{
+   if (addr != NULL) free ( addr );
+}
+
+
+/*---------------------------------------------------*/
+static
+void prepare_new_block ( EState* s )
+{
+   Int32 i;
+   s->nblock = 0;
+   s->numZ = 0;
+   s->state_out_pos = 0;
+   BZ_INITIALISE_CRC ( s->blockCRC );
+   for (i = 0; i < 256; i++) s->inUse[i] = False;
+   s->blockNo++;
+}
+
+
+/*---------------------------------------------------*/
+static
+void init_RL ( EState* s )
+{
+   s->state_in_ch  = 256;
+   s->state_in_len = 0;
+}
+
+
+static
+Bool isempty_RL ( EState* s )
+{
+   if (s->state_in_ch < 256 && s->state_in_len > 0)
+      return False; else
+      return True;
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzCompressInit) 
+                    ( bz_stream* strm, 
+                     int        blockSize100k,
+                     int        verbosity,
+                     int        workFactor )
+{
+   Int32   n;
+   EState* s;
+
+   if (!bz_config_ok()) return BZ_CONFIG_ERROR;
+
+   if (strm == NULL || 
+       blockSize100k < 1 || blockSize100k > 9 ||
+       workFactor < 0 || workFactor > 250)
+     return BZ_PARAM_ERROR;
+
+   if (workFactor == 0) workFactor = 30;
+   if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
+   if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
+
+   s = BZALLOC( sizeof(EState) );
+   if (s == NULL) return BZ_MEM_ERROR;
+   s->strm = strm;
+
+   s->arr1 = NULL;
+   s->arr2 = NULL;
+   s->ftab = NULL;
+
+   n       = 100000 * blockSize100k;
+   s->arr1 = BZALLOC( n                  * sizeof(UInt32) );
+   s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) );
+   s->ftab = BZALLOC( 65537              * sizeof(UInt32) );
+
+   if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) {
+      if (s->arr1 != NULL) BZFREE(s->arr1);
+      if (s->arr2 != NULL) BZFREE(s->arr2);
+      if (s->ftab != NULL) BZFREE(s->ftab);
+      if (s       != NULL) BZFREE(s);
+      return BZ_MEM_ERROR;
+   }
+
+   s->blockNo           = 0;
+   s->state             = BZ_S_INPUT;
+   s->mode              = BZ_M_RUNNING;
+   s->combinedCRC       = 0;
+   s->blockSize100k     = blockSize100k;
+   s->nblockMAX         = 100000 * blockSize100k - 19;
+   s->verbosity         = verbosity;
+   s->workFactor        = workFactor;
+
+   s->block             = (UChar*)s->arr2;
+   s->mtfv              = (UInt16*)s->arr1;
+   s->zbits             = NULL;
+   s->ptr               = (UInt32*)s->arr1;
+
+   strm->state          = s;
+   strm->total_in_lo32  = 0;
+   strm->total_in_hi32  = 0;
+   strm->total_out_lo32 = 0;
+   strm->total_out_hi32 = 0;
+   init_RL ( s );
+   prepare_new_block ( s );
+   return BZ_OK;
+}
+
+
+/*---------------------------------------------------*/
+static
+void add_pair_to_block ( EState* s )
+{
+   Int32 i;
+   UChar ch = (UChar)(s->state_in_ch);
+   for (i = 0; i < s->state_in_len; i++) {
+      BZ_UPDATE_CRC( s->blockCRC, ch );
+   }
+   s->inUse[s->state_in_ch] = True;
+   switch (s->state_in_len) {
+      case 1:
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         break;
+      case 2:
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         break;
+      case 3:
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         break;
+      default:
+         s->inUse[s->state_in_len-4] = True;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = (UChar)ch; s->nblock++;
+         s->block[s->nblock] = ((UChar)(s->state_in_len-4));
+         s->nblock++;
+         break;
+   }
+}
+
+
+/*---------------------------------------------------*/
+static
+void flush_RL ( EState* s )
+{
+   if (s->state_in_ch < 256) add_pair_to_block ( s );
+   init_RL ( s );
+}
+
+
+/*---------------------------------------------------*/
+#define ADD_CHAR_TO_BLOCK(zs,zchh0)               \
+{                                                 \
+   UInt32 zchh = (UInt32)(zchh0);                 \
+   /*-- fast track the common case --*/           \
+   if (zchh != zs->state_in_ch &&                 \
+       zs->state_in_len == 1) {                   \
+      UChar ch = (UChar)(zs->state_in_ch);        \
+      BZ_UPDATE_CRC( zs->blockCRC, ch );          \
+      zs->inUse[zs->state_in_ch] = True;          \
+      zs->block[zs->nblock] = (UChar)ch;          \
+      zs->nblock++;                               \
+      zs->state_in_ch = zchh;                     \
+   }                                              \
+   else                                           \
+   /*-- general, uncommon cases --*/              \
+   if (zchh != zs->state_in_ch ||                 \
+      zs->state_in_len == 255) {                  \
+      if (zs->state_in_ch < 256)                  \
+         add_pair_to_block ( zs );                \
+      zs->state_in_ch = zchh;                     \
+      zs->state_in_len = 1;                       \
+   } else {                                       \
+      zs->state_in_len++;                         \
+   }                                              \
+}
+
+
+/*---------------------------------------------------*/
+static
+Bool copy_input_until_stop ( EState* s )
+{
+   Bool progress_in = False;
+
+   if (s->mode == BZ_M_RUNNING) {
+
+      /*-- fast track the common case --*/
+      while (True) {
+         /*-- block full? --*/
+         if (s->nblock >= s->nblockMAX) break;
+         /*-- no input? --*/
+         if (s->strm->avail_in == 0) break;
+         progress_in = True;
+         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); 
+         s->strm->next_in++;
+         s->strm->avail_in--;
+         s->strm->total_in_lo32++;
+         if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
+      }
+
+   } else {
+
+      /*-- general, uncommon case --*/
+      while (True) {
+         /*-- block full? --*/
+         if (s->nblock >= s->nblockMAX) break;
+         /*-- no input? --*/
+         if (s->strm->avail_in == 0) break;
+         /*-- flush/finish end? --*/
+         if (s->avail_in_expect == 0) break;
+         progress_in = True;
+         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); 
+         s->strm->next_in++;
+         s->strm->avail_in--;
+         s->strm->total_in_lo32++;
+         if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
+         s->avail_in_expect--;
+      }
+   }
+   return progress_in;
+}
+
+
+/*---------------------------------------------------*/
+static
+Bool copy_output_until_stop ( EState* s )
+{
+   Bool progress_out = False;
+
+   while (True) {
+
+      /*-- no output space? --*/
+      if (s->strm->avail_out == 0) break;
+
+      /*-- block done? --*/
+      if (s->state_out_pos >= s->numZ) break;
+
+      progress_out = True;
+      *(s->strm->next_out) = s->zbits[s->state_out_pos];
+      s->state_out_pos++;
+      s->strm->avail_out--;
+      s->strm->next_out++;
+      s->strm->total_out_lo32++;
+      if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+   }
+
+   return progress_out;
+}
+
+
+/*---------------------------------------------------*/
+static
+Bool handle_compress ( bz_stream* strm )
+{
+   Bool progress_in  = False;
+   Bool progress_out = False;
+   EState* s = strm->state;
+   
+   while (True) {
+
+      if (s->state == BZ_S_OUTPUT) {
+         progress_out |= copy_output_until_stop ( s );
+         if (s->state_out_pos < s->numZ) break;
+         if (s->mode == BZ_M_FINISHING && 
+             s->avail_in_expect == 0 &&
+             isempty_RL(s)) break;
+         prepare_new_block ( s );
+         s->state = BZ_S_INPUT;
+         if (s->mode == BZ_M_FLUSHING && 
+             s->avail_in_expect == 0 &&
+             isempty_RL(s)) break;
+      }
+
+      if (s->state == BZ_S_INPUT) {
+         progress_in |= copy_input_until_stop ( s );
+         if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) {
+            flush_RL ( s );
+            BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) );
+            s->state = BZ_S_OUTPUT;
+         }
+         else
+         if (s->nblock >= s->nblockMAX) {
+            BZ2_compressBlock ( s, False );
+            s->state = BZ_S_OUTPUT;
+         }
+         else
+         if (s->strm->avail_in == 0) {
+            break;
+         }
+      }
+
+   }
+
+   return progress_in || progress_out;
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
+{
+   Bool progress;
+   EState* s;
+   if (strm == NULL) return BZ_PARAM_ERROR;
+   s = strm->state;
+   if (s == NULL) return BZ_PARAM_ERROR;
+   if (s->strm != strm) return BZ_PARAM_ERROR;
+
+   preswitch:
+   switch (s->mode) {
+
+      case BZ_M_IDLE:
+         return BZ_SEQUENCE_ERROR;
+
+      case BZ_M_RUNNING:
+         if (action == BZ_RUN) {
+            progress = handle_compress ( strm );
+            return progress ? BZ_RUN_OK : BZ_PARAM_ERROR;
+         } 
+         else
+        if (action == BZ_FLUSH) {
+            s->avail_in_expect = strm->avail_in;
+            s->mode = BZ_M_FLUSHING;
+            goto preswitch;
+         }
+         else
+         if (action == BZ_FINISH) {
+            s->avail_in_expect = strm->avail_in;
+            s->mode = BZ_M_FINISHING;
+            goto preswitch;
+         }
+         else 
+            return BZ_PARAM_ERROR;
+
+      case BZ_M_FLUSHING:
+         if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR;
+         if (s->avail_in_expect != s->strm->avail_in) 
+            return BZ_SEQUENCE_ERROR;
+         progress = handle_compress ( strm );
+         if (s->avail_in_expect > 0 || !isempty_RL(s) ||
+             s->state_out_pos < s->numZ) return BZ_FLUSH_OK;
+         s->mode = BZ_M_RUNNING;
+         return BZ_RUN_OK;
+
+      case BZ_M_FINISHING:
+         if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR;
+         if (s->avail_in_expect != s->strm->avail_in) 
+            return BZ_SEQUENCE_ERROR;
+         progress = handle_compress ( strm );
+         if (!progress) return BZ_SEQUENCE_ERROR;
+         if (s->avail_in_expect > 0 || !isempty_RL(s) ||
+             s->state_out_pos < s->numZ) return BZ_FINISH_OK;
+         s->mode = BZ_M_IDLE;
+         return BZ_STREAM_END;
+   }
+   return BZ_OK; /*--not reached--*/
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzCompressEnd)  ( bz_stream *strm )
+{
+   EState* s;
+   if (strm == NULL) return BZ_PARAM_ERROR;
+   s = strm->state;
+   if (s == NULL) return BZ_PARAM_ERROR;
+   if (s->strm != strm) return BZ_PARAM_ERROR;
+
+   if (s->arr1 != NULL) BZFREE(s->arr1);
+   if (s->arr2 != NULL) BZFREE(s->arr2);
+   if (s->ftab != NULL) BZFREE(s->ftab);
+   BZFREE(strm->state);
+
+   strm->state = NULL;   
+
+   return BZ_OK;
+}
+
+
+/*---------------------------------------------------*/
+/*--- Decompression stuff                         ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzDecompressInit) 
+                     ( bz_stream* strm, 
+                       int        verbosity,
+                       int        small )
+{
+   DState* s;
+
+   if (!bz_config_ok()) return BZ_CONFIG_ERROR;
+
+   if (strm == NULL) return BZ_PARAM_ERROR;
+   if (small != 0 && small != 1) return BZ_PARAM_ERROR;
+   if (verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR;
+
+   if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
+   if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
+
+   s = BZALLOC( sizeof(DState) );
+   if (s == NULL) return BZ_MEM_ERROR;
+   s->strm                  = strm;
+   strm->state              = s;
+   s->state                 = BZ_X_MAGIC_1;
+   s->bsLive                = 0;
+   s->bsBuff                = 0;
+   s->calculatedCombinedCRC = 0;
+   strm->total_in_lo32      = 0;
+   strm->total_in_hi32      = 0;
+   strm->total_out_lo32     = 0;
+   strm->total_out_hi32     = 0;
+   s->smallDecompress       = (Bool)small;
+   s->ll4                   = NULL;
+   s->ll16                  = NULL;
+   s->tt                    = NULL;
+   s->currBlockNo           = 0;
+   s->verbosity             = verbosity;
+
+   return BZ_OK;
+}
+
+
+/*---------------------------------------------------*/
+/* Return  True iff data corruption is discovered.
+   Returns False if there is no problem.
+*/
+static
+Bool unRLE_obuf_to_output_FAST ( DState* s )
+{
+   UChar k1;
+
+   if (s->blockRandomised) {
+
+      while (True) {
+         /* try to finish existing run */
+         while (True) {
+            if (s->strm->avail_out == 0) return False;
+            if (s->state_out_len == 0) break;
+            *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
+            BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
+            s->state_out_len--;
+            s->strm->next_out++;
+            s->strm->avail_out--;
+            s->strm->total_out_lo32++;
+            if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+         }
+
+         /* can a new run be started? */
+         if (s->nblock_used == s->save_nblock+1) return False;
+               
+         /* Only caused by corrupt data stream? */
+         if (s->nblock_used > s->save_nblock+1)
+            return True;
+   
+         s->state_out_len = 1;
+         s->state_out_ch = s->k0;
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 2;
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 3;
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         s->state_out_len = ((Int32)k1) + 4;
+         BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK; 
+         s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
+      }
+
+   } else {
+
+      /* restore */
+      UInt32        c_calculatedBlockCRC = s->calculatedBlockCRC;
+      UChar         c_state_out_ch       = s->state_out_ch;
+      Int32         c_state_out_len      = s->state_out_len;
+      Int32         c_nblock_used        = s->nblock_used;
+      Int32         c_k0                 = s->k0;
+      UInt32*       c_tt                 = s->tt;
+      UInt32        c_tPos               = s->tPos;
+      char*         cs_next_out          = s->strm->next_out;
+      unsigned int  cs_avail_out         = s->strm->avail_out;
+      Int32         ro_blockSize100k     = s->blockSize100k;
+      /* end restore */
+
+      UInt32       avail_out_INIT = cs_avail_out;
+      Int32        s_save_nblockPP = s->save_nblock+1;
+      unsigned int total_out_lo32_old;
+
+      while (True) {
+
+         /* try to finish existing run */
+         if (c_state_out_len > 0) {
+            while (True) {
+               if (cs_avail_out == 0) goto return_notr;
+               if (c_state_out_len == 1) break;
+               *( (UChar*)(cs_next_out) ) = c_state_out_ch;
+               BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
+               c_state_out_len--;
+               cs_next_out++;
+               cs_avail_out--;
+            }
+            s_state_out_len_eq_one:
+            {
+               if (cs_avail_out == 0) { 
+                  c_state_out_len = 1; goto return_notr;
+               };
+               *( (UChar*)(cs_next_out) ) = c_state_out_ch;
+               BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
+               cs_next_out++;
+               cs_avail_out--;
+            }
+         }   
+         /* Only caused by corrupt data stream? */
+         if (c_nblock_used > s_save_nblockPP)
+            return True;
+
+         /* can a new run be started? */
+         if (c_nblock_used == s_save_nblockPP) {
+            c_state_out_len = 0; goto return_notr;
+         };   
+         c_state_out_ch = c_k0;
+         BZ_GET_FAST_C(k1); c_nblock_used++;
+         if (k1 != c_k0) { 
+            c_k0 = k1; goto s_state_out_len_eq_one; 
+         };
+         if (c_nblock_used == s_save_nblockPP) 
+            goto s_state_out_len_eq_one;
+   
+         c_state_out_len = 2;
+         BZ_GET_FAST_C(k1); c_nblock_used++;
+         if (c_nblock_used == s_save_nblockPP) continue;
+         if (k1 != c_k0) { c_k0 = k1; continue; };
+   
+         c_state_out_len = 3;
+         BZ_GET_FAST_C(k1); c_nblock_used++;
+         if (c_nblock_used == s_save_nblockPP) continue;
+         if (k1 != c_k0) { c_k0 = k1; continue; };
+   
+         BZ_GET_FAST_C(k1); c_nblock_used++;
+         c_state_out_len = ((Int32)k1) + 4;
+         BZ_GET_FAST_C(c_k0); c_nblock_used++;
+      }
+
+      return_notr:
+      total_out_lo32_old = s->strm->total_out_lo32;
+      s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out);
+      if (s->strm->total_out_lo32 < total_out_lo32_old)
+         s->strm->total_out_hi32++;
+
+      /* save */
+      s->calculatedBlockCRC = c_calculatedBlockCRC;
+      s->state_out_ch       = c_state_out_ch;
+      s->state_out_len      = c_state_out_len;
+      s->nblock_used        = c_nblock_used;
+      s->k0                 = c_k0;
+      s->tt                 = c_tt;
+      s->tPos               = c_tPos;
+      s->strm->next_out     = cs_next_out;
+      s->strm->avail_out    = cs_avail_out;
+      /* end save */
+   }
+   return False;
+}
+
+
+
+/*---------------------------------------------------*/
+__inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab )
+{
+   Int32 nb, na, mid;
+   nb = 0;
+   na = 256;
+   do {
+      mid = (nb + na) >> 1;
+      if (indx >= cftab[mid]) nb = mid; else na = mid;
+   }
+   while (na - nb != 1);
+   return nb;
+}
+
+
+/*---------------------------------------------------*/
+/* Return  True iff data corruption is discovered.
+   Returns False if there is no problem.
+*/
+static
+Bool unRLE_obuf_to_output_SMALL ( DState* s )
+{
+   UChar k1;
+
+   if (s->blockRandomised) {
+
+      while (True) {
+         /* try to finish existing run */
+         while (True) {
+            if (s->strm->avail_out == 0) return False;
+            if (s->state_out_len == 0) break;
+            *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
+            BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
+            s->state_out_len--;
+            s->strm->next_out++;
+            s->strm->avail_out--;
+            s->strm->total_out_lo32++;
+            if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+         }
+   
+         /* can a new run be started? */
+         if (s->nblock_used == s->save_nblock+1) return False;
+
+         /* Only caused by corrupt data stream? */
+         if (s->nblock_used > s->save_nblock+1)
+            return True;
+   
+         s->state_out_len = 1;
+         s->state_out_ch = s->k0;
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 2;
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 3;
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; 
+         k1 ^= BZ_RAND_MASK; s->nblock_used++;
+         s->state_out_len = ((Int32)k1) + 4;
+         BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK; 
+         s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
+      }
+
+   } else {
+
+      while (True) {
+         /* try to finish existing run */
+         while (True) {
+            if (s->strm->avail_out == 0) return False;
+            if (s->state_out_len == 0) break;
+            *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
+            BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
+            s->state_out_len--;
+            s->strm->next_out++;
+            s->strm->avail_out--;
+            s->strm->total_out_lo32++;
+            if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+         }
+   
+         /* can a new run be started? */
+         if (s->nblock_used == s->save_nblock+1) return False;
+
+         /* Only caused by corrupt data stream? */
+         if (s->nblock_used > s->save_nblock+1)
+            return True;
+   
+         s->state_out_len = 1;
+         s->state_out_ch = s->k0;
+         BZ_GET_SMALL(k1); s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 2;
+         BZ_GET_SMALL(k1); s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         s->state_out_len = 3;
+         BZ_GET_SMALL(k1); s->nblock_used++;
+         if (s->nblock_used == s->save_nblock+1) continue;
+         if (k1 != s->k0) { s->k0 = k1; continue; };
+   
+         BZ_GET_SMALL(k1); s->nblock_used++;
+         s->state_out_len = ((Int32)k1) + 4;
+         BZ_GET_SMALL(s->k0); s->nblock_used++;
+      }
+
+   }
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
+{
+   Bool    corrupt;
+   DState* s;
+   if (strm == NULL) return BZ_PARAM_ERROR;
+   s = strm->state;
+   if (s == NULL) return BZ_PARAM_ERROR;
+   if (s->strm != strm) return BZ_PARAM_ERROR;
+
+   while (True) {
+      if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR;
+      if (s->state == BZ_X_OUTPUT) {
+         if (s->smallDecompress)
+            corrupt = unRLE_obuf_to_output_SMALL ( s ); else
+            corrupt = unRLE_obuf_to_output_FAST  ( s );
+         if (corrupt) return BZ_DATA_ERROR;
+         if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) {
+            BZ_FINALISE_CRC ( s->calculatedBlockCRC );
+            if (s->verbosity >= 3) 
+               VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC, 
+                          s->calculatedBlockCRC );
+            if (s->verbosity >= 2) VPrintf0 ( "]" );
+            if (s->calculatedBlockCRC != s->storedBlockCRC)
+               return BZ_DATA_ERROR;
+            s->calculatedCombinedCRC 
+               = (s->calculatedCombinedCRC << 1) | 
+                    (s->calculatedCombinedCRC >> 31);
+            s->calculatedCombinedCRC ^= s->calculatedBlockCRC;
+            s->state = BZ_X_BLKHDR_1;
+         } else {
+            return BZ_OK;
+         }
+      }
+      if (s->state >= BZ_X_MAGIC_1) {
+         Int32 r = BZ2_decompress ( s );
+         if (r == BZ_STREAM_END) {
+            if (s->verbosity >= 3)
+               VPrintf2 ( "\n    combined CRCs: stored = 0x%08x, computed = 0x%08x", 
+                          s->storedCombinedCRC, s->calculatedCombinedCRC );
+            if (s->calculatedCombinedCRC != s->storedCombinedCRC)
+               return BZ_DATA_ERROR;
+            return r;
+         }
+         if (s->state != BZ_X_OUTPUT) return r;
+      }
+   }
+
+   AssertH ( 0, 6001 );
+
+   return 0;  /*NOTREACHED*/
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzDecompressEnd)  ( bz_stream *strm )
+{
+   DState* s;
+   if (strm == NULL) return BZ_PARAM_ERROR;
+   s = strm->state;
+   if (s == NULL) return BZ_PARAM_ERROR;
+   if (s->strm != strm) return BZ_PARAM_ERROR;
+
+   if (s->tt   != NULL) BZFREE(s->tt);
+   if (s->ll16 != NULL) BZFREE(s->ll16);
+   if (s->ll4  != NULL) BZFREE(s->ll4);
+
+   BZFREE(strm->state);
+   strm->state = NULL;
+
+   return BZ_OK;
+}
+
+
+#ifndef BZ_NO_STDIO
+/*---------------------------------------------------*/
+/*--- File I/O stuff                              ---*/
+/*---------------------------------------------------*/
+
+#define BZ_SETERR(eee)                    \
+{                                         \
+   if (bzerror != NULL) *bzerror = eee;   \
+   if (bzf != NULL) bzf->lastErr = eee;   \
+}
+
+typedef 
+   struct {
+      FILE*     handle;
+      Char      buf[BZ_MAX_UNUSED];
+      Int32     bufN;
+      Bool      writing;
+      bz_stream strm;
+      Int32     lastErr;
+      Bool      initialisedOk;
+   }
+   bzFile;
+
+
+/*---------------------------------------------*/
+static Bool myfeof ( FILE* f )
+{
+   Int32 c = fgetc ( f );
+   if (c == EOF) return True;
+   ungetc ( c, f );
+   return False;
+}
+
+
+/*---------------------------------------------------*/
+BZFILE* BZ_API(BZ2_bzWriteOpen) 
+                    ( int*  bzerror,      
+                      FILE* f, 
+                      int   blockSize100k, 
+                      int   verbosity,
+                      int   workFactor )
+{
+   Int32   ret;
+   bzFile* bzf = NULL;
+
+   BZ_SETERR(BZ_OK);
+
+   if (f == NULL ||
+       (blockSize100k < 1 || blockSize100k > 9) ||
+       (workFactor < 0 || workFactor > 250) ||
+       (verbosity < 0 || verbosity > 4))
+      { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
+
+   if (ferror(f))
+      { BZ_SETERR(BZ_IO_ERROR); return NULL; };
+
+   bzf = malloc ( sizeof(bzFile) );
+   if (bzf == NULL)
+      { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
+
+   BZ_SETERR(BZ_OK);
+   bzf->initialisedOk = False;
+   bzf->bufN          = 0;
+   bzf->handle        = f;
+   bzf->writing       = True;
+   bzf->strm.bzalloc  = NULL;
+   bzf->strm.bzfree   = NULL;
+   bzf->strm.opaque   = NULL;
+
+   if (workFactor == 0) workFactor = 30;
+   ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k, 
+                              verbosity, workFactor );
+   if (ret != BZ_OK)
+      { BZ_SETERR(ret); free(bzf); return NULL; };
+
+   bzf->strm.avail_in = 0;
+   bzf->initialisedOk = True;
+   return bzf;   
+}
+
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzWrite)
+             ( int*    bzerror, 
+               BZFILE* b, 
+               void*   buf, 
+               int     len )
+{
+   Int32 n, n2, ret;
+   bzFile* bzf = (bzFile*)b;
+
+   BZ_SETERR(BZ_OK);
+   if (bzf == NULL || buf == NULL || len < 0)
+      { BZ_SETERR(BZ_PARAM_ERROR); return; };
+   if (!(bzf->writing))
+      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+   if (ferror(bzf->handle))
+      { BZ_SETERR(BZ_IO_ERROR); return; };
+
+   if (len == 0)
+      { BZ_SETERR(BZ_OK); return; };
+
+   bzf->strm.avail_in = len;
+   bzf->strm.next_in  = buf;
+
+   while (True) {
+      bzf->strm.avail_out = BZ_MAX_UNUSED;
+      bzf->strm.next_out = bzf->buf;
+      ret = BZ2_bzCompress ( &(bzf->strm), BZ_RUN );
+      if (ret != BZ_RUN_OK)
+         { BZ_SETERR(ret); return; };
+
+      if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
+         n = BZ_MAX_UNUSED - bzf->strm.avail_out;
+         n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), 
+                       n, bzf->handle );
+         if (n != n2 || ferror(bzf->handle))
+            { BZ_SETERR(BZ_IO_ERROR); return; };
+      }
+
+      if (bzf->strm.avail_in == 0)
+         { BZ_SETERR(BZ_OK); return; };
+   }
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzWriteClose)
+                  ( int*          bzerror, 
+                    BZFILE*       b, 
+                    int           abandon,
+                    unsigned int* nbytes_in,
+                    unsigned int* nbytes_out )
+{
+   BZ2_bzWriteClose64 ( bzerror, b, abandon, 
+                        nbytes_in, NULL, nbytes_out, NULL );
+}
+
+
+void BZ_API(BZ2_bzWriteClose64)
+                  ( int*          bzerror, 
+                    BZFILE*       b, 
+                    int           abandon,
+                    unsigned int* nbytes_in_lo32,
+                    unsigned int* nbytes_in_hi32,
+                    unsigned int* nbytes_out_lo32,
+                    unsigned int* nbytes_out_hi32 )
+{
+   Int32   n, n2, ret;
+   bzFile* bzf = (bzFile*)b;
+
+   if (bzf == NULL)
+      { BZ_SETERR(BZ_OK); return; };
+   if (!(bzf->writing))
+      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+   if (ferror(bzf->handle))
+      { BZ_SETERR(BZ_IO_ERROR); return; };
+
+   if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = 0;
+   if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = 0;
+   if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = 0;
+   if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = 0;
+
+   if ((!abandon) && bzf->lastErr == BZ_OK) {
+      while (True) {
+         bzf->strm.avail_out = BZ_MAX_UNUSED;
+         bzf->strm.next_out = bzf->buf;
+         ret = BZ2_bzCompress ( &(bzf->strm), BZ_FINISH );
+         if (ret != BZ_FINISH_OK && ret != BZ_STREAM_END)
+            { BZ_SETERR(ret); return; };
+
+         if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
+            n = BZ_MAX_UNUSED - bzf->strm.avail_out;
+            n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), 
+                          n, bzf->handle );
+            if (n != n2 || ferror(bzf->handle))
+               { BZ_SETERR(BZ_IO_ERROR); return; };
+         }
+
+         if (ret == BZ_STREAM_END) break;
+      }
+   }
+
+   if ( !abandon && !ferror ( bzf->handle ) ) {
+      fflush ( bzf->handle );
+      if (ferror(bzf->handle))
+         { BZ_SETERR(BZ_IO_ERROR); return; };
+   }
+
+   if (nbytes_in_lo32 != NULL)
+      *nbytes_in_lo32 = bzf->strm.total_in_lo32;
+   if (nbytes_in_hi32 != NULL)
+      *nbytes_in_hi32 = bzf->strm.total_in_hi32;
+   if (nbytes_out_lo32 != NULL)
+      *nbytes_out_lo32 = bzf->strm.total_out_lo32;
+   if (nbytes_out_hi32 != NULL)
+      *nbytes_out_hi32 = bzf->strm.total_out_hi32;
+
+   BZ_SETERR(BZ_OK);
+   BZ2_bzCompressEnd ( &(bzf->strm) );
+   free ( bzf );
+}
+
+
+/*---------------------------------------------------*/
+BZFILE* BZ_API(BZ2_bzReadOpen) 
+                   ( int*  bzerror, 
+                     FILE* f, 
+                     int   verbosity,
+                     int   small,
+                     void* unused,
+                     int   nUnused )
+{
+   bzFile* bzf = NULL;
+   int     ret;
+
+   BZ_SETERR(BZ_OK);
+
+   if (f == NULL || 
+       (small != 0 && small != 1) ||
+       (verbosity < 0 || verbosity > 4) ||
+       (unused == NULL && nUnused != 0) ||
+       (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED)))
+      { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
+
+   if (ferror(f))
+      { BZ_SETERR(BZ_IO_ERROR); return NULL; };
+
+   bzf = malloc ( sizeof(bzFile) );
+   if (bzf == NULL) 
+      { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
+
+   BZ_SETERR(BZ_OK);
+
+   bzf->initialisedOk = False;
+   bzf->handle        = f;
+   bzf->bufN          = 0;
+   bzf->writing       = False;
+   bzf->strm.bzalloc  = NULL;
+   bzf->strm.bzfree   = NULL;
+   bzf->strm.opaque   = NULL;
+   
+   while (nUnused > 0) {
+      bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++;
+      unused = ((void*)( 1 + ((UChar*)(unused))  ));
+      nUnused--;
+   }
+
+   ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small );
+   if (ret != BZ_OK)
+      { BZ_SETERR(ret); free(bzf); return NULL; };
+
+   bzf->strm.avail_in = bzf->bufN;
+   bzf->strm.next_in  = bzf->buf;
+
+   bzf->initialisedOk = True;
+   return bzf;   
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b )
+{
+   bzFile* bzf = (bzFile*)b;
+
+   BZ_SETERR(BZ_OK);
+   if (bzf == NULL)
+      { BZ_SETERR(BZ_OK); return; };
+
+   if (bzf->writing)
+      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+
+   if (bzf->initialisedOk)
+      (void)BZ2_bzDecompressEnd ( &(bzf->strm) );
+   free ( bzf );
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzRead) 
+           ( int*    bzerror, 
+             BZFILE* b, 
+             void*   buf, 
+             int     len )
+{
+   Int32   n, ret;
+   bzFile* bzf = (bzFile*)b;
+
+   BZ_SETERR(BZ_OK);
+
+   if (bzf == NULL || buf == NULL || len < 0)
+      { BZ_SETERR(BZ_PARAM_ERROR); return 0; };
+
+   if (bzf->writing)
+      { BZ_SETERR(BZ_SEQUENCE_ERROR); return 0; };
+
+   if (len == 0)
+      { BZ_SETERR(BZ_OK); return 0; };
+
+   bzf->strm.avail_out = len;
+   bzf->strm.next_out = buf;
+
+   while (True) {
+
+      if (ferror(bzf->handle)) 
+         { BZ_SETERR(BZ_IO_ERROR); return 0; };
+
+      if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) {
+         n = fread ( bzf->buf, sizeof(UChar), 
+                     BZ_MAX_UNUSED, bzf->handle );
+         if (ferror(bzf->handle))
+            { BZ_SETERR(BZ_IO_ERROR); return 0; };
+         bzf->bufN = n;
+         bzf->strm.avail_in = bzf->bufN;
+         bzf->strm.next_in = bzf->buf;
+      }
+
+      ret = BZ2_bzDecompress ( &(bzf->strm) );
+
+      if (ret != BZ_OK && ret != BZ_STREAM_END)
+         { BZ_SETERR(ret); return 0; };
+
+      if (ret == BZ_OK && myfeof(bzf->handle) && 
+          bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0)
+         { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; };
+
+      if (ret == BZ_STREAM_END)
+         { BZ_SETERR(BZ_STREAM_END);
+           return len - bzf->strm.avail_out; };
+      if (bzf->strm.avail_out == 0)
+         { BZ_SETERR(BZ_OK); return len; };
+      
+   }
+
+   return 0; /*not reached*/
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzReadGetUnused) 
+                     ( int*    bzerror, 
+                       BZFILE* b, 
+                       void**  unused, 
+                       int*    nUnused )
+{
+   bzFile* bzf = (bzFile*)b;
+   if (bzf == NULL)
+      { BZ_SETERR(BZ_PARAM_ERROR); return; };
+   if (bzf->lastErr != BZ_STREAM_END)
+      { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+   if (unused == NULL || nUnused == NULL)
+      { BZ_SETERR(BZ_PARAM_ERROR); return; };
+
+   BZ_SETERR(BZ_OK);
+   *nUnused = bzf->strm.avail_in;
+   *unused = bzf->strm.next_in;
+}
+#endif
+
+
+/*---------------------------------------------------*/
+/*--- Misc convenience stuff                      ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzBuffToBuffCompress) 
+                         ( char*         dest, 
+                           unsigned int* destLen,
+                           char*         source, 
+                           unsigned int  sourceLen,
+                           int           blockSize100k, 
+                           int           verbosity, 
+                           int           workFactor )
+{
+   bz_stream strm;
+   int ret;
+
+   if (dest == NULL || destLen == NULL || 
+       source == NULL ||
+       blockSize100k < 1 || blockSize100k > 9 ||
+       verbosity < 0 || verbosity > 4 ||
+       workFactor < 0 || workFactor > 250) 
+      return BZ_PARAM_ERROR;
+
+   if (workFactor == 0) workFactor = 30;
+   strm.bzalloc = NULL;
+   strm.bzfree = NULL;
+   strm.opaque = NULL;
+   ret = BZ2_bzCompressInit ( &strm, blockSize100k, 
+                              verbosity, workFactor );
+   if (ret != BZ_OK) return ret;
+
+   strm.next_in = source;
+   strm.next_out = dest;
+   strm.avail_in = sourceLen;
+   strm.avail_out = *destLen;
+
+   ret = BZ2_bzCompress ( &strm, BZ_FINISH );
+   if (ret == BZ_FINISH_OK) goto output_overflow;
+   if (ret != BZ_STREAM_END) goto errhandler;
+
+   /* normal termination */
+   *destLen -= strm.avail_out;   
+   BZ2_bzCompressEnd ( &strm );
+   return BZ_OK;
+
+   output_overflow:
+   BZ2_bzCompressEnd ( &strm );
+   return BZ_OUTBUFF_FULL;
+
+   errhandler:
+   BZ2_bzCompressEnd ( &strm );
+   return ret;
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzBuffToBuffDecompress) 
+                           ( char*         dest, 
+                             unsigned int* destLen,
+                             char*         source, 
+                             unsigned int  sourceLen,
+                             int           small,
+                             int           verbosity )
+{
+   bz_stream strm;
+   int ret;
+
+   if (dest == NULL || destLen == NULL || 
+       source == NULL ||
+       (small != 0 && small != 1) ||
+       verbosity < 0 || verbosity > 4) 
+          return BZ_PARAM_ERROR;
+
+   strm.bzalloc = NULL;
+   strm.bzfree = NULL;
+   strm.opaque = NULL;
+   ret = BZ2_bzDecompressInit ( &strm, verbosity, small );
+   if (ret != BZ_OK) return ret;
+
+   strm.next_in = source;
+   strm.next_out = dest;
+   strm.avail_in = sourceLen;
+   strm.avail_out = *destLen;
+
+   ret = BZ2_bzDecompress ( &strm );
+   if (ret == BZ_OK) goto output_overflow_or_eof;
+   if (ret != BZ_STREAM_END) goto errhandler;
+
+   /* normal termination */
+   *destLen -= strm.avail_out;
+   BZ2_bzDecompressEnd ( &strm );
+   return BZ_OK;
+
+   output_overflow_or_eof:
+   if (strm.avail_out > 0) {
+      BZ2_bzDecompressEnd ( &strm );
+      return BZ_UNEXPECTED_EOF;
+   } else {
+      BZ2_bzDecompressEnd ( &strm );
+      return BZ_OUTBUFF_FULL;
+   };      
+
+   errhandler:
+   BZ2_bzDecompressEnd ( &strm );
+   return ret; 
+}
+
+
+/*---------------------------------------------------*/
+/*--
+   Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
+   to support better zlib compatibility.
+   This code is not _officially_ part of libbzip2 (yet);
+   I haven't tested it, documented it, or considered the
+   threading-safeness of it.
+   If this code breaks, please contact both Yoshioka and me.
+--*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+/*--
+   return version like "0.9.5d, 4-Sept-1999".
+--*/
+const char * BZ_API(BZ2_bzlibVersion)(void)
+{
+   return BZ_VERSION;
+}
+
+
+#ifndef BZ_NO_STDIO
+/*---------------------------------------------------*/
+
+#if defined(_WIN32) || defined(OS2) || defined(MSDOS)
+#   include <fcntl.h>
+#   include <io.h>
+#   define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY)
+#else
+#   define SET_BINARY_MODE(file)
+#endif
+static
+BZFILE * bzopen_or_bzdopen
+               ( const char *path,   /* no use when bzdopen */
+                 int fd,             /* no use when bzdopen */
+                 const char *mode,
+                 int open_mode)      /* bzopen: 0, bzdopen:1 */
+{
+   int    bzerr;
+   char   unused[BZ_MAX_UNUSED];
+   int    blockSize100k = 9;
+   int    writing       = 0;
+   char   mode2[10]     = "";
+   FILE   *fp           = NULL;
+   BZFILE *bzfp         = NULL;
+   int    verbosity     = 0;
+   int    workFactor    = 30;
+   int    smallMode     = 0;
+   int    nUnused       = 0; 
+
+   if (mode == NULL) return NULL;
+   while (*mode) {
+      switch (*mode) {
+      case 'r':
+         writing = 0; break;
+      case 'w':
+         writing = 1; break;
+      case 's':
+         smallMode = 1; break;
+      default:
+         if (isdigit((int)(*mode))) {
+            blockSize100k = *mode-BZ_HDR_0;
+         }
+      }
+      mode++;
+   }
+   strcat(mode2, writing ? "w" : "r" );
+   strcat(mode2,"b");   /* binary mode */
+
+   if (open_mode==0) {
+      if (path==NULL || strcmp(path,"")==0) {
+        fp = (writing ? stdout : stdin);
+        SET_BINARY_MODE(fp);
+      } else {
+        fp = fopen(path,mode2);
+      }
+   } else {
+#ifdef BZ_STRICT_ANSI
+      fp = NULL;
+#else
+      fp = fdopen(fd,mode2);
+#endif
+   }
+   if (fp == NULL) return NULL;
+
+   if (writing) {
+      /* Guard against total chaos and anarchy -- JRS */
+      if (blockSize100k < 1) blockSize100k = 1;
+      if (blockSize100k > 9) blockSize100k = 9; 
+      bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k,
+                             verbosity,workFactor);
+   } else {
+      bzfp = BZ2_bzReadOpen(&bzerr,fp,verbosity,smallMode,
+                            unused,nUnused);
+   }
+   if (bzfp == NULL) {
+      if (fp != stdin && fp != stdout) fclose(fp);
+      return NULL;
+   }
+   return bzfp;
+}
+
+
+/*---------------------------------------------------*/
+/*--
+   open file for read or write.
+      ex) bzopen("file","w9")
+      case path="" or NULL => use stdin or stdout.
+--*/
+BZFILE * BZ_API(BZ2_bzopen)
+               ( const char *path,
+                 const char *mode )
+{
+   return bzopen_or_bzdopen(path,-1,mode,/*bzopen*/0);
+}
+
+
+/*---------------------------------------------------*/
+BZFILE * BZ_API(BZ2_bzdopen)
+               ( int fd,
+                 const char *mode )
+{
+   return bzopen_or_bzdopen(NULL,fd,mode,/*bzdopen*/1);
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzread) (BZFILE* b, void* buf, int len )
+{
+   int bzerr, nread;
+   if (((bzFile*)b)->lastErr == BZ_STREAM_END) return 0;
+   nread = BZ2_bzRead(&bzerr,b,buf,len);
+   if (bzerr == BZ_OK || bzerr == BZ_STREAM_END) {
+      return nread;
+   } else {
+      return -1;
+   }
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzwrite) (BZFILE* b, void* buf, int len )
+{
+   int bzerr;
+
+   BZ2_bzWrite(&bzerr,b,buf,len);
+   if(bzerr == BZ_OK){
+      return len;
+   }else{
+      return -1;
+   }
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzflush) (BZFILE *b)
+{
+   /* do nothing now... */
+   return 0;
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzclose) (BZFILE* b)
+{
+   int bzerr;
+   FILE *fp;
+   
+   if (b==NULL) {return;}
+   fp = ((bzFile *)b)->handle;
+   if(((bzFile*)b)->writing){
+      BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL);
+      if(bzerr != BZ_OK){
+         BZ2_bzWriteClose(NULL,b,1,NULL,NULL);
+      }
+   }else{
+      BZ2_bzReadClose(&bzerr,b);
+   }
+   if(fp!=stdin && fp!=stdout){
+      fclose(fp);
+   }
+}
+
+
+/*---------------------------------------------------*/
+/*--
+   return last error code 
+--*/
+static const char *bzerrorstrings[] = {
+       "OK"
+      ,"SEQUENCE_ERROR"
+      ,"PARAM_ERROR"
+      ,"MEM_ERROR"
+      ,"DATA_ERROR"
+      ,"DATA_ERROR_MAGIC"
+      ,"IO_ERROR"
+      ,"UNEXPECTED_EOF"
+      ,"OUTBUFF_FULL"
+      ,"CONFIG_ERROR"
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+};
+
+
+const char * BZ_API(BZ2_bzerror) (BZFILE *b, int *errnum)
+{
+   int err = ((bzFile *)b)->lastErr;
+
+   if(err>0) err = 0;
+   *errnum = err;
+   return bzerrorstrings[err*-1];
+}
+#endif
+
+
+/*-------------------------------------------------------------*/
+/*--- end                                           bzlib.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/bzlib.h b/bzip2/bzlib.h
new file mode 100644 (file)
index 0000000..ec5b36a
--- /dev/null
@@ -0,0 +1,290 @@
+
+/*-------------------------------------------------------------*/
+/*--- Public header file for the library.                   ---*/
+/*---                                               bzlib.h ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#ifndef _BZLIB_H
+#define _BZLIB_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define BZ_RUN               0
+#define BZ_FLUSH             1
+#define BZ_FINISH            2
+
+#define BZ_OK                0
+#define BZ_RUN_OK            1
+#define BZ_FLUSH_OK          2
+#define BZ_FINISH_OK         3
+#define BZ_STREAM_END        4
+#define BZ_SEQUENCE_ERROR    (-1)
+#define BZ_PARAM_ERROR       (-2)
+#define BZ_MEM_ERROR         (-3)
+#define BZ_DATA_ERROR        (-4)
+#define BZ_DATA_ERROR_MAGIC  (-5)
+#define BZ_IO_ERROR          (-6)
+#define BZ_UNEXPECTED_EOF    (-7)
+#define BZ_OUTBUFF_FULL      (-8)
+#define BZ_CONFIG_ERROR      (-9)
+
+typedef 
+   struct {
+      char *next_in;
+      unsigned int avail_in;
+      unsigned int total_in_lo32;
+      unsigned int total_in_hi32;
+
+      char *next_out;
+      unsigned int avail_out;
+      unsigned int total_out_lo32;
+      unsigned int total_out_hi32;
+
+      void *state;
+
+      void *(*bzalloc)(void *,int,int);
+      void (*bzfree)(void *,void *);
+      void *opaque;
+   } 
+   bz_stream;
+
+
+#ifndef BZ_IMPORT
+#define BZ_EXPORT
+#endif
+
+#ifndef BZ_NO_STDIO
+/* Need a definitition for FILE */
+#include <stdio.h>
+#endif
+
+#ifdef _WIN32
+#   include <windows.h>
+#   ifdef small
+      /* windows.h define small to char */
+#      undef small
+#   endif
+#   ifdef BZ_EXPORT
+#   define BZ_API(func) WINAPI func
+#   define BZ_EXTERN extern
+#   else
+   /* import windows dll dynamically */
+#   define BZ_API(func) (WINAPI * func)
+#   define BZ_EXTERN
+#   endif
+#else
+#   define BZ_API(func) func
+#   define BZ_EXTERN extern
+#endif
+
+
+/*-- Core (low-level) library functions --*/
+
+BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( 
+      bz_stream* strm, 
+      int        blockSize100k, 
+      int        verbosity, 
+      int        workFactor 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzCompress) ( 
+      bz_stream* strm, 
+      int action 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( 
+      bz_stream* strm 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( 
+      bz_stream *strm, 
+      int       verbosity, 
+      int       small
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( 
+      bz_stream* strm 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( 
+      bz_stream *strm 
+   );
+
+
+
+/*-- High(er) level library functions --*/
+
+#ifndef BZ_NO_STDIO
+#define BZ_MAX_UNUSED 5000
+
+typedef void BZFILE;
+
+BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( 
+      int*  bzerror,   
+      FILE* f, 
+      int   verbosity, 
+      int   small,
+      void* unused,    
+      int   nUnused 
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzReadClose) ( 
+      int*    bzerror, 
+      BZFILE* b 
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( 
+      int*    bzerror, 
+      BZFILE* b, 
+      void**  unused,  
+      int*    nUnused 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzRead) ( 
+      int*    bzerror, 
+      BZFILE* b, 
+      void*   buf, 
+      int     len 
+   );
+
+BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( 
+      int*  bzerror,      
+      FILE* f, 
+      int   blockSize100k, 
+      int   verbosity, 
+      int   workFactor 
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzWrite) ( 
+      int*    bzerror, 
+      BZFILE* b, 
+      void*   buf, 
+      int     len 
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( 
+      int*          bzerror, 
+      BZFILE*       b, 
+      int           abandon, 
+      unsigned int* nbytes_in, 
+      unsigned int* nbytes_out 
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( 
+      int*          bzerror, 
+      BZFILE*       b, 
+      int           abandon, 
+      unsigned int* nbytes_in_lo32, 
+      unsigned int* nbytes_in_hi32, 
+      unsigned int* nbytes_out_lo32, 
+      unsigned int* nbytes_out_hi32
+   );
+#endif
+
+
+/*-- Utility functions --*/
+
+BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( 
+      char*         dest, 
+      unsigned int* destLen,
+      char*         source, 
+      unsigned int  sourceLen,
+      int           blockSize100k, 
+      int           verbosity, 
+      int           workFactor 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( 
+      char*         dest, 
+      unsigned int* destLen,
+      char*         source, 
+      unsigned int  sourceLen,
+      int           small, 
+      int           verbosity 
+   );
+
+
+/*--
+   Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
+   to support better zlib compatibility.
+   This code is not _officially_ part of libbzip2 (yet);
+   I haven't tested it, documented it, or considered the
+   threading-safeness of it.
+   If this code breaks, please contact both Yoshioka and me.
+--*/
+
+BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
+      void
+   );
+
+BZ_EXTERN const char * BZ_API(BZ2_bzlibVersionBase) (
+      void
+   );
+
+BZ_EXTERN const char * BZ_API(BZ2_bzlibVersionDate) (
+      void
+   );
+
+#ifndef BZ_NO_STDIO
+BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
+      const char *path,
+      const char *mode
+   );
+
+BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
+      int        fd,
+      const char *mode
+   );
+         
+BZ_EXTERN int BZ_API(BZ2_bzread) (
+      BZFILE* b, 
+      void* buf, 
+      int len 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzwrite) (
+      BZFILE* b, 
+      void*   buf, 
+      int     len 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzflush) (
+      BZFILE* b
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzclose) (
+      BZFILE* b
+   );
+
+BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
+      BZFILE *b, 
+      int    *errnum
+   );
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/*-------------------------------------------------------------*/
+/*--- end                                           bzlib.h ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/bzlib.h_orig b/bzip2/bzlib.h_orig
new file mode 100644 (file)
index 0000000..8277123
--- /dev/null
@@ -0,0 +1,282 @@
+
+/*-------------------------------------------------------------*/
+/*--- Public header file for the library.                   ---*/
+/*---                                               bzlib.h ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#ifndef _BZLIB_H
+#define _BZLIB_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define BZ_RUN               0
+#define BZ_FLUSH             1
+#define BZ_FINISH            2
+
+#define BZ_OK                0
+#define BZ_RUN_OK            1
+#define BZ_FLUSH_OK          2
+#define BZ_FINISH_OK         3
+#define BZ_STREAM_END        4
+#define BZ_SEQUENCE_ERROR    (-1)
+#define BZ_PARAM_ERROR       (-2)
+#define BZ_MEM_ERROR         (-3)
+#define BZ_DATA_ERROR        (-4)
+#define BZ_DATA_ERROR_MAGIC  (-5)
+#define BZ_IO_ERROR          (-6)
+#define BZ_UNEXPECTED_EOF    (-7)
+#define BZ_OUTBUFF_FULL      (-8)
+#define BZ_CONFIG_ERROR      (-9)
+
+typedef 
+   struct {
+      char *next_in;
+      unsigned int avail_in;
+      unsigned int total_in_lo32;
+      unsigned int total_in_hi32;
+
+      char *next_out;
+      unsigned int avail_out;
+      unsigned int total_out_lo32;
+      unsigned int total_out_hi32;
+
+      void *state;
+
+      void *(*bzalloc)(void *,int,int);
+      void (*bzfree)(void *,void *);
+      void *opaque;
+   } 
+   bz_stream;
+
+
+#ifndef BZ_IMPORT
+#define BZ_EXPORT
+#endif
+
+#ifndef BZ_NO_STDIO
+/* Need a definitition for FILE */
+#include <stdio.h>
+#endif
+
+#ifdef _WIN32
+#   include <windows.h>
+#   ifdef small
+      /* windows.h define small to char */
+#      undef small
+#   endif
+#   ifdef BZ_EXPORT
+#   define BZ_API(func) WINAPI func
+#   define BZ_EXTERN extern
+#   else
+   /* import windows dll dynamically */
+#   define BZ_API(func) (WINAPI * func)
+#   define BZ_EXTERN
+#   endif
+#else
+#   define BZ_API(func) func
+#   define BZ_EXTERN extern
+#endif
+
+
+/*-- Core (low-level) library functions --*/
+
+BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( 
+      bz_stream* strm, 
+      int        blockSize100k, 
+      int        verbosity, 
+      int        workFactor 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzCompress) ( 
+      bz_stream* strm, 
+      int action 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( 
+      bz_stream* strm 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( 
+      bz_stream *strm, 
+      int       verbosity, 
+      int       small
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( 
+      bz_stream* strm 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( 
+      bz_stream *strm 
+   );
+
+
+
+/*-- High(er) level library functions --*/
+
+#ifndef BZ_NO_STDIO
+#define BZ_MAX_UNUSED 5000
+
+typedef void BZFILE;
+
+BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( 
+      int*  bzerror,   
+      FILE* f, 
+      int   verbosity, 
+      int   small,
+      void* unused,    
+      int   nUnused 
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzReadClose) ( 
+      int*    bzerror, 
+      BZFILE* b 
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( 
+      int*    bzerror, 
+      BZFILE* b, 
+      void**  unused,  
+      int*    nUnused 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzRead) ( 
+      int*    bzerror, 
+      BZFILE* b, 
+      void*   buf, 
+      int     len 
+   );
+
+BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( 
+      int*  bzerror,      
+      FILE* f, 
+      int   blockSize100k, 
+      int   verbosity, 
+      int   workFactor 
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzWrite) ( 
+      int*    bzerror, 
+      BZFILE* b, 
+      void*   buf, 
+      int     len 
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( 
+      int*          bzerror, 
+      BZFILE*       b, 
+      int           abandon, 
+      unsigned int* nbytes_in, 
+      unsigned int* nbytes_out 
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( 
+      int*          bzerror, 
+      BZFILE*       b, 
+      int           abandon, 
+      unsigned int* nbytes_in_lo32, 
+      unsigned int* nbytes_in_hi32, 
+      unsigned int* nbytes_out_lo32, 
+      unsigned int* nbytes_out_hi32
+   );
+#endif
+
+
+/*-- Utility functions --*/
+
+BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( 
+      char*         dest, 
+      unsigned int* destLen,
+      char*         source, 
+      unsigned int  sourceLen,
+      int           blockSize100k, 
+      int           verbosity, 
+      int           workFactor 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( 
+      char*         dest, 
+      unsigned int* destLen,
+      char*         source, 
+      unsigned int  sourceLen,
+      int           small, 
+      int           verbosity 
+   );
+
+
+/*--
+   Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
+   to support better zlib compatibility.
+   This code is not _officially_ part of libbzip2 (yet);
+   I haven't tested it, documented it, or considered the
+   threading-safeness of it.
+   If this code breaks, please contact both Yoshioka and me.
+--*/
+
+BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
+      void
+   );
+
+#ifndef BZ_NO_STDIO
+BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
+      const char *path,
+      const char *mode
+   );
+
+BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
+      int        fd,
+      const char *mode
+   );
+         
+BZ_EXTERN int BZ_API(BZ2_bzread) (
+      BZFILE* b, 
+      void* buf, 
+      int len 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzwrite) (
+      BZFILE* b, 
+      void*   buf, 
+      int     len 
+   );
+
+BZ_EXTERN int BZ_API(BZ2_bzflush) (
+      BZFILE* b
+   );
+
+BZ_EXTERN void BZ_API(BZ2_bzclose) (
+      BZFILE* b
+   );
+
+BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
+      BZFILE *b, 
+      int    *errnum
+   );
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/*-------------------------------------------------------------*/
+/*--- end                                           bzlib.h ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/bzlib_private.h b/bzip2/bzlib_private.h
new file mode 100644 (file)
index 0000000..59b288c
--- /dev/null
@@ -0,0 +1,510 @@
+
+/*-------------------------------------------------------------*/
+/*--- Private header file for the library.                  ---*/
+/*---                                       bzlib_private.h ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#ifndef _BZLIB_PRIVATE_H
+#define _BZLIB_PRIVATE_H
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+#ifndef BZ_NO_STDIO
+#include <ctype.h>
+#endif
+
+#include "bzlib.h"
+
+
+
+/*-- General stuff. --*/
+
+#define BZ_VERSION_BASE  "1.0.6"
+#define BZ_VERSION_DATE  "6-Sept-2010"
+
+typedef char            Char;
+typedef unsigned char   Bool;
+typedef unsigned char   UChar;
+typedef int             Int32;
+typedef unsigned int    UInt32;
+typedef short           Int16;
+typedef unsigned short  UInt16;
+
+#define True  ((Bool)1)
+#define False ((Bool)0)
+
+#ifndef __GNUC__
+#define __inline__  /* */
+#endif 
+
+#ifndef BZ_NO_STDIO
+
+extern void BZ2_bz__AssertH__fail ( int errcode );
+#define AssertH(cond,errcode) \
+   { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); }
+
+#if BZ_DEBUG
+#define AssertD(cond,msg) \
+   { if (!(cond)) {       \
+      fprintf ( stderr,   \
+        "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\
+      exit(1); \
+   }}
+#else
+#define AssertD(cond,msg) /* */
+#endif
+
+#define VPrintf0(zf) \
+   fprintf(stderr,zf)
+#define VPrintf1(zf,za1) \
+   fprintf(stderr,zf,za1)
+#define VPrintf2(zf,za1,za2) \
+   fprintf(stderr,zf,za1,za2)
+#define VPrintf3(zf,za1,za2,za3) \
+   fprintf(stderr,zf,za1,za2,za3)
+#define VPrintf4(zf,za1,za2,za3,za4) \
+   fprintf(stderr,zf,za1,za2,za3,za4)
+#define VPrintf5(zf,za1,za2,za3,za4,za5) \
+   fprintf(stderr,zf,za1,za2,za3,za4,za5)
+
+#else
+
+extern void bz_internal_error ( int errcode );
+#define AssertH(cond,errcode) \
+   { if (!(cond)) bz_internal_error ( errcode ); }
+#define AssertD(cond,msg)                do { } while (0)
+#define VPrintf0(zf)                     do { } while (0)
+#define VPrintf1(zf,za1)                 do { } while (0)
+#define VPrintf2(zf,za1,za2)             do { } while (0)
+#define VPrintf3(zf,za1,za2,za3)         do { } while (0)
+#define VPrintf4(zf,za1,za2,za3,za4)     do { } while (0)
+#define VPrintf5(zf,za1,za2,za3,za4,za5) do { } while (0)
+
+#endif
+
+
+#define BZALLOC(nnn) (strm->bzalloc)(strm->opaque,(nnn),1)
+#define BZFREE(ppp)  (strm->bzfree)(strm->opaque,(ppp))
+
+
+/*-- Header bytes. --*/
+
+#define BZ_HDR_B 0x42   /* 'B' */
+#define BZ_HDR_Z 0x5a   /* 'Z' */
+#define BZ_HDR_h 0x68   /* 'h' */
+#define BZ_HDR_0 0x30   /* '0' */
+  
+/*-- Constants for the back end. --*/
+
+#define BZ_MAX_ALPHA_SIZE 258
+#define BZ_MAX_CODE_LEN    23
+
+#define BZ_RUNA 0
+#define BZ_RUNB 1
+
+#define BZ_N_GROUPS 6
+#define BZ_G_SIZE   50
+#define BZ_N_ITERS  4
+
+#define BZ_MAX_SELECTORS (2 + (900000 / BZ_G_SIZE))
+
+
+
+/*-- Stuff for randomising repetitive blocks. --*/
+
+extern Int32 BZ2_rNums[512];
+
+#define BZ_RAND_DECLS                          \
+   Int32 rNToGo;                               \
+   Int32 rTPos                                 \
+
+#define BZ_RAND_INIT_MASK                      \
+   s->rNToGo = 0;                              \
+   s->rTPos  = 0                               \
+
+#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0)
+
+#define BZ_RAND_UPD_MASK                       \
+   if (s->rNToGo == 0) {                       \
+      s->rNToGo = BZ2_rNums[s->rTPos];         \
+      s->rTPos++;                              \
+      if (s->rTPos == 512) s->rTPos = 0;       \
+   }                                           \
+   s->rNToGo--;
+
+
+
+/*-- Stuff for doing CRCs. --*/
+
+extern UInt32 BZ2_crc32Table[256];
+
+#define BZ_INITIALISE_CRC(crcVar)              \
+{                                              \
+   crcVar = 0xffffffffL;                       \
+}
+
+#define BZ_FINALISE_CRC(crcVar)                \
+{                                              \
+   crcVar = ~(crcVar);                         \
+}
+
+#define BZ_UPDATE_CRC(crcVar,cha)              \
+{                                              \
+   crcVar = (crcVar << 8) ^                    \
+            BZ2_crc32Table[(crcVar >> 24) ^    \
+                           ((UChar)cha)];      \
+}
+
+
+
+/*-- States and modes for compression. --*/
+
+#define BZ_M_IDLE      1
+#define BZ_M_RUNNING   2
+#define BZ_M_FLUSHING  3
+#define BZ_M_FINISHING 4
+
+#define BZ_S_OUTPUT    1
+#define BZ_S_INPUT     2
+
+#define BZ_N_RADIX 2
+#define BZ_N_QSORT 12
+#define BZ_N_SHELL 18
+#define BZ_N_OVERSHOOT (BZ_N_RADIX + BZ_N_QSORT + BZ_N_SHELL + 2)
+
+
+
+
+/*-- Structure holding all the compression-side stuff. --*/
+
+typedef
+   struct {
+      /* pointer back to the struct bz_stream */
+      bz_stream* strm;
+
+      /* mode this stream is in, and whether inputting */
+      /* or outputting data */
+      Int32    mode;
+      Int32    state;
+
+      /* remembers avail_in when flush/finish requested */
+      UInt32   avail_in_expect;
+
+      /* for doing the block sorting */
+      UInt32*  arr1;
+      UInt32*  arr2;
+      UInt32*  ftab;
+      Int32    origPtr;
+
+      /* aliases for arr1 and arr2 */
+      UInt32*  ptr;
+      UChar*   block;
+      UInt16*  mtfv;
+      UChar*   zbits;
+
+      /* for deciding when to use the fallback sorting algorithm */
+      Int32    workFactor;
+
+      /* run-length-encoding of the input */
+      UInt32   state_in_ch;
+      Int32    state_in_len;
+      BZ_RAND_DECLS;
+
+      /* input and output limits and current posns */
+      Int32    nblock;
+      Int32    nblockMAX;
+      Int32    numZ;
+      Int32    state_out_pos;
+
+      /* map of bytes used in block */
+      Int32    nInUse;
+      Bool     inUse[256];
+      UChar    unseqToSeq[256];
+
+      /* the buffer for bit stream creation */
+      UInt32   bsBuff;
+      Int32    bsLive;
+
+      /* block and combined CRCs */
+      UInt32   blockCRC;
+      UInt32   combinedCRC;
+
+      /* misc administratium */
+      Int32    verbosity;
+      Int32    blockNo;
+      Int32    blockSize100k;
+
+      /* stuff for coding the MTF values */
+      Int32    nMTF;
+      Int32    mtfFreq    [BZ_MAX_ALPHA_SIZE];
+      UChar    selector   [BZ_MAX_SELECTORS];
+      UChar    selectorMtf[BZ_MAX_SELECTORS];
+
+      UChar    len     [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      Int32    code    [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      Int32    rfreq   [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      /* second dimension: only 3 needed; 4 makes index calculations faster */
+      UInt32   len_pack[BZ_MAX_ALPHA_SIZE][4];
+
+   }
+   EState;
+
+
+
+/*-- externs for compression. --*/
+
+extern void 
+BZ2_blockSort ( EState* );
+
+extern void 
+BZ2_compressBlock ( EState*, Bool );
+
+extern void 
+BZ2_bsInitWrite ( EState* );
+
+extern void 
+BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 );
+
+extern void 
+BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 );
+
+
+
+/*-- states for decompression. --*/
+
+#define BZ_X_IDLE        1
+#define BZ_X_OUTPUT      2
+
+#define BZ_X_MAGIC_1     10
+#define BZ_X_MAGIC_2     11
+#define BZ_X_MAGIC_3     12
+#define BZ_X_MAGIC_4     13
+#define BZ_X_BLKHDR_1    14
+#define BZ_X_BLKHDR_2    15
+#define BZ_X_BLKHDR_3    16
+#define BZ_X_BLKHDR_4    17
+#define BZ_X_BLKHDR_5    18
+#define BZ_X_BLKHDR_6    19
+#define BZ_X_BCRC_1      20
+#define BZ_X_BCRC_2      21
+#define BZ_X_BCRC_3      22
+#define BZ_X_BCRC_4      23
+#define BZ_X_RANDBIT     24
+#define BZ_X_ORIGPTR_1   25
+#define BZ_X_ORIGPTR_2   26
+#define BZ_X_ORIGPTR_3   27
+#define BZ_X_MAPPING_1   28
+#define BZ_X_MAPPING_2   29
+#define BZ_X_SELECTOR_1  30
+#define BZ_X_SELECTOR_2  31
+#define BZ_X_SELECTOR_3  32
+#define BZ_X_CODING_1    33
+#define BZ_X_CODING_2    34
+#define BZ_X_CODING_3    35
+#define BZ_X_MTF_1       36
+#define BZ_X_MTF_2       37
+#define BZ_X_MTF_3       38
+#define BZ_X_MTF_4       39
+#define BZ_X_MTF_5       40
+#define BZ_X_MTF_6       41
+#define BZ_X_ENDHDR_2    42
+#define BZ_X_ENDHDR_3    43
+#define BZ_X_ENDHDR_4    44
+#define BZ_X_ENDHDR_5    45
+#define BZ_X_ENDHDR_6    46
+#define BZ_X_CCRC_1      47
+#define BZ_X_CCRC_2      48
+#define BZ_X_CCRC_3      49
+#define BZ_X_CCRC_4      50
+
+
+
+/*-- Constants for the fast MTF decoder. --*/
+
+#define MTFA_SIZE 4096
+#define MTFL_SIZE 16
+
+
+
+/*-- Structure holding all the decompression-side stuff. --*/
+
+typedef
+   struct {
+      /* pointer back to the struct bz_stream */
+      bz_stream* strm;
+
+      /* state indicator for this stream */
+      Int32    state;
+
+      /* for doing the final run-length decoding */
+      UChar    state_out_ch;
+      Int32    state_out_len;
+      Bool     blockRandomised;
+      BZ_RAND_DECLS;
+
+      /* the buffer for bit stream reading */
+      UInt32   bsBuff;
+      Int32    bsLive;
+
+      /* misc administratium */
+      Int32    blockSize100k;
+      Bool     smallDecompress;
+      Int32    currBlockNo;
+      Int32    verbosity;
+
+      /* for undoing the Burrows-Wheeler transform */
+      Int32    origPtr;
+      UInt32   tPos;
+      Int32    k0;
+      Int32    unzftab[256];
+      Int32    nblock_used;
+      Int32    cftab[257];
+      Int32    cftabCopy[257];
+
+      /* for undoing the Burrows-Wheeler transform (FAST) */
+      UInt32   *tt;
+
+      /* for undoing the Burrows-Wheeler transform (SMALL) */
+      UInt16   *ll16;
+      UChar    *ll4;
+
+      /* stored and calculated CRCs */
+      UInt32   storedBlockCRC;
+      UInt32   storedCombinedCRC;
+      UInt32   calculatedBlockCRC;
+      UInt32   calculatedCombinedCRC;
+
+      /* map of bytes used in block */
+      Int32    nInUse;
+      Bool     inUse[256];
+      Bool     inUse16[16];
+      UChar    seqToUnseq[256];
+
+      /* for decoding the MTF values */
+      UChar    mtfa   [MTFA_SIZE];
+      Int32    mtfbase[256 / MTFL_SIZE];
+      UChar    selector   [BZ_MAX_SELECTORS];
+      UChar    selectorMtf[BZ_MAX_SELECTORS];
+      UChar    len  [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+
+      Int32    limit  [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      Int32    base   [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      Int32    perm   [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      Int32    minLens[BZ_N_GROUPS];
+
+      /* save area for scalars in the main decompress code */
+      Int32    save_i;
+      Int32    save_j;
+      Int32    save_t;
+      Int32    save_alphaSize;
+      Int32    save_nGroups;
+      Int32    save_nSelectors;
+      Int32    save_EOB;
+      Int32    save_groupNo;
+      Int32    save_groupPos;
+      Int32    save_nextSym;
+      Int32    save_nblockMAX;
+      Int32    save_nblock;
+      Int32    save_es;
+      Int32    save_N;
+      Int32    save_curr;
+      Int32    save_zt;
+      Int32    save_zn; 
+      Int32    save_zvec;
+      Int32    save_zj;
+      Int32    save_gSel;
+      Int32    save_gMinlen;
+      Int32*   save_gLimit;
+      Int32*   save_gBase;
+      Int32*   save_gPerm;
+
+   }
+   DState;
+
+
+
+/*-- Macros for decompression. --*/
+
+#define BZ_GET_FAST(cccc)                     \
+    /* c_tPos is unsigned, hence test < 0 is pointless. */ \
+    if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \
+    s->tPos = s->tt[s->tPos];                 \
+    cccc = (UChar)(s->tPos & 0xff);           \
+    s->tPos >>= 8;
+
+#define BZ_GET_FAST_C(cccc)                   \
+    /* c_tPos is unsigned, hence test < 0 is pointless. */ \
+    if (c_tPos >= (UInt32)100000 * (UInt32)ro_blockSize100k) return True; \
+    c_tPos = c_tt[c_tPos];                    \
+    cccc = (UChar)(c_tPos & 0xff);            \
+    c_tPos >>= 8;
+
+#define SET_LL4(i,n)                                          \
+   { if (((i) & 0x1) == 0)                                    \
+        s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0xf0) | (n); else    \
+        s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0x0f) | ((n) << 4);  \
+   }
+
+#define GET_LL4(i)                             \
+   ((((UInt32)(s->ll4[(i) >> 1])) >> (((i) << 2) & 0x4)) & 0xF)
+
+#define SET_LL(i,n)                          \
+   { s->ll16[i] = (UInt16)(n & 0x0000ffff);  \
+     SET_LL4(i, n >> 16);                    \
+   }
+
+#define GET_LL(i) \
+   (((UInt32)s->ll16[i]) | (GET_LL4(i) << 16))
+
+#define BZ_GET_SMALL(cccc)                            \
+    /* c_tPos is unsigned, hence test < 0 is pointless. */ \
+    if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \
+    cccc = BZ2_indexIntoF ( s->tPos, s->cftab );    \
+    s->tPos = GET_LL(s->tPos);
+
+
+/*-- externs for decompression. --*/
+
+extern Int32 
+BZ2_indexIntoF ( Int32, Int32* );
+
+extern Int32 
+BZ2_decompress ( DState* );
+
+extern void 
+BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*,
+                           Int32,  Int32, Int32 );
+
+
+#endif
+
+
+/*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/
+
+#ifdef BZ_NO_STDIO
+#ifndef NULL
+#define NULL 0
+#endif
+#endif
+
+
+/*-------------------------------------------------------------*/
+/*--- end                                   bzlib_private.h ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/bzlib_private.h_orig b/bzip2/bzlib_private.h_orig
new file mode 100644 (file)
index 0000000..5d0217f
--- /dev/null
@@ -0,0 +1,509 @@
+
+/*-------------------------------------------------------------*/
+/*--- Private header file for the library.                  ---*/
+/*---                                       bzlib_private.h ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#ifndef _BZLIB_PRIVATE_H
+#define _BZLIB_PRIVATE_H
+
+#include <stdlib.h>
+
+#ifndef BZ_NO_STDIO
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+#endif
+
+#include "bzlib.h"
+
+
+
+/*-- General stuff. --*/
+
+#define BZ_VERSION  "1.0.6, 6-Sept-2010"
+
+typedef char            Char;
+typedef unsigned char   Bool;
+typedef unsigned char   UChar;
+typedef int             Int32;
+typedef unsigned int    UInt32;
+typedef short           Int16;
+typedef unsigned short  UInt16;
+
+#define True  ((Bool)1)
+#define False ((Bool)0)
+
+#ifndef __GNUC__
+#define __inline__  /* */
+#endif 
+
+#ifndef BZ_NO_STDIO
+
+extern void BZ2_bz__AssertH__fail ( int errcode );
+#define AssertH(cond,errcode) \
+   { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); }
+
+#if BZ_DEBUG
+#define AssertD(cond,msg) \
+   { if (!(cond)) {       \
+      fprintf ( stderr,   \
+        "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\
+      exit(1); \
+   }}
+#else
+#define AssertD(cond,msg) /* */
+#endif
+
+#define VPrintf0(zf) \
+   fprintf(stderr,zf)
+#define VPrintf1(zf,za1) \
+   fprintf(stderr,zf,za1)
+#define VPrintf2(zf,za1,za2) \
+   fprintf(stderr,zf,za1,za2)
+#define VPrintf3(zf,za1,za2,za3) \
+   fprintf(stderr,zf,za1,za2,za3)
+#define VPrintf4(zf,za1,za2,za3,za4) \
+   fprintf(stderr,zf,za1,za2,za3,za4)
+#define VPrintf5(zf,za1,za2,za3,za4,za5) \
+   fprintf(stderr,zf,za1,za2,za3,za4,za5)
+
+#else
+
+extern void bz_internal_error ( int errcode );
+#define AssertH(cond,errcode) \
+   { if (!(cond)) bz_internal_error ( errcode ); }
+#define AssertD(cond,msg)                do { } while (0)
+#define VPrintf0(zf)                     do { } while (0)
+#define VPrintf1(zf,za1)                 do { } while (0)
+#define VPrintf2(zf,za1,za2)             do { } while (0)
+#define VPrintf3(zf,za1,za2,za3)         do { } while (0)
+#define VPrintf4(zf,za1,za2,za3,za4)     do { } while (0)
+#define VPrintf5(zf,za1,za2,za3,za4,za5) do { } while (0)
+
+#endif
+
+
+#define BZALLOC(nnn) (strm->bzalloc)(strm->opaque,(nnn),1)
+#define BZFREE(ppp)  (strm->bzfree)(strm->opaque,(ppp))
+
+
+/*-- Header bytes. --*/
+
+#define BZ_HDR_B 0x42   /* 'B' */
+#define BZ_HDR_Z 0x5a   /* 'Z' */
+#define BZ_HDR_h 0x68   /* 'h' */
+#define BZ_HDR_0 0x30   /* '0' */
+  
+/*-- Constants for the back end. --*/
+
+#define BZ_MAX_ALPHA_SIZE 258
+#define BZ_MAX_CODE_LEN    23
+
+#define BZ_RUNA 0
+#define BZ_RUNB 1
+
+#define BZ_N_GROUPS 6
+#define BZ_G_SIZE   50
+#define BZ_N_ITERS  4
+
+#define BZ_MAX_SELECTORS (2 + (900000 / BZ_G_SIZE))
+
+
+
+/*-- Stuff for randomising repetitive blocks. --*/
+
+extern Int32 BZ2_rNums[512];
+
+#define BZ_RAND_DECLS                          \
+   Int32 rNToGo;                               \
+   Int32 rTPos                                 \
+
+#define BZ_RAND_INIT_MASK                      \
+   s->rNToGo = 0;                              \
+   s->rTPos  = 0                               \
+
+#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0)
+
+#define BZ_RAND_UPD_MASK                       \
+   if (s->rNToGo == 0) {                       \
+      s->rNToGo = BZ2_rNums[s->rTPos];         \
+      s->rTPos++;                              \
+      if (s->rTPos == 512) s->rTPos = 0;       \
+   }                                           \
+   s->rNToGo--;
+
+
+
+/*-- Stuff for doing CRCs. --*/
+
+extern UInt32 BZ2_crc32Table[256];
+
+#define BZ_INITIALISE_CRC(crcVar)              \
+{                                              \
+   crcVar = 0xffffffffL;                       \
+}
+
+#define BZ_FINALISE_CRC(crcVar)                \
+{                                              \
+   crcVar = ~(crcVar);                         \
+}
+
+#define BZ_UPDATE_CRC(crcVar,cha)              \
+{                                              \
+   crcVar = (crcVar << 8) ^                    \
+            BZ2_crc32Table[(crcVar >> 24) ^    \
+                           ((UChar)cha)];      \
+}
+
+
+
+/*-- States and modes for compression. --*/
+
+#define BZ_M_IDLE      1
+#define BZ_M_RUNNING   2
+#define BZ_M_FLUSHING  3
+#define BZ_M_FINISHING 4
+
+#define BZ_S_OUTPUT    1
+#define BZ_S_INPUT     2
+
+#define BZ_N_RADIX 2
+#define BZ_N_QSORT 12
+#define BZ_N_SHELL 18
+#define BZ_N_OVERSHOOT (BZ_N_RADIX + BZ_N_QSORT + BZ_N_SHELL + 2)
+
+
+
+
+/*-- Structure holding all the compression-side stuff. --*/
+
+typedef
+   struct {
+      /* pointer back to the struct bz_stream */
+      bz_stream* strm;
+
+      /* mode this stream is in, and whether inputting */
+      /* or outputting data */
+      Int32    mode;
+      Int32    state;
+
+      /* remembers avail_in when flush/finish requested */
+      UInt32   avail_in_expect;
+
+      /* for doing the block sorting */
+      UInt32*  arr1;
+      UInt32*  arr2;
+      UInt32*  ftab;
+      Int32    origPtr;
+
+      /* aliases for arr1 and arr2 */
+      UInt32*  ptr;
+      UChar*   block;
+      UInt16*  mtfv;
+      UChar*   zbits;
+
+      /* for deciding when to use the fallback sorting algorithm */
+      Int32    workFactor;
+
+      /* run-length-encoding of the input */
+      UInt32   state_in_ch;
+      Int32    state_in_len;
+      BZ_RAND_DECLS;
+
+      /* input and output limits and current posns */
+      Int32    nblock;
+      Int32    nblockMAX;
+      Int32    numZ;
+      Int32    state_out_pos;
+
+      /* map of bytes used in block */
+      Int32    nInUse;
+      Bool     inUse[256];
+      UChar    unseqToSeq[256];
+
+      /* the buffer for bit stream creation */
+      UInt32   bsBuff;
+      Int32    bsLive;
+
+      /* block and combined CRCs */
+      UInt32   blockCRC;
+      UInt32   combinedCRC;
+
+      /* misc administratium */
+      Int32    verbosity;
+      Int32    blockNo;
+      Int32    blockSize100k;
+
+      /* stuff for coding the MTF values */
+      Int32    nMTF;
+      Int32    mtfFreq    [BZ_MAX_ALPHA_SIZE];
+      UChar    selector   [BZ_MAX_SELECTORS];
+      UChar    selectorMtf[BZ_MAX_SELECTORS];
+
+      UChar    len     [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      Int32    code    [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      Int32    rfreq   [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      /* second dimension: only 3 needed; 4 makes index calculations faster */
+      UInt32   len_pack[BZ_MAX_ALPHA_SIZE][4];
+
+   }
+   EState;
+
+
+
+/*-- externs for compression. --*/
+
+extern void 
+BZ2_blockSort ( EState* );
+
+extern void 
+BZ2_compressBlock ( EState*, Bool );
+
+extern void 
+BZ2_bsInitWrite ( EState* );
+
+extern void 
+BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 );
+
+extern void 
+BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 );
+
+
+
+/*-- states for decompression. --*/
+
+#define BZ_X_IDLE        1
+#define BZ_X_OUTPUT      2
+
+#define BZ_X_MAGIC_1     10
+#define BZ_X_MAGIC_2     11
+#define BZ_X_MAGIC_3     12
+#define BZ_X_MAGIC_4     13
+#define BZ_X_BLKHDR_1    14
+#define BZ_X_BLKHDR_2    15
+#define BZ_X_BLKHDR_3    16
+#define BZ_X_BLKHDR_4    17
+#define BZ_X_BLKHDR_5    18
+#define BZ_X_BLKHDR_6    19
+#define BZ_X_BCRC_1      20
+#define BZ_X_BCRC_2      21
+#define BZ_X_BCRC_3      22
+#define BZ_X_BCRC_4      23
+#define BZ_X_RANDBIT     24
+#define BZ_X_ORIGPTR_1   25
+#define BZ_X_ORIGPTR_2   26
+#define BZ_X_ORIGPTR_3   27
+#define BZ_X_MAPPING_1   28
+#define BZ_X_MAPPING_2   29
+#define BZ_X_SELECTOR_1  30
+#define BZ_X_SELECTOR_2  31
+#define BZ_X_SELECTOR_3  32
+#define BZ_X_CODING_1    33
+#define BZ_X_CODING_2    34
+#define BZ_X_CODING_3    35
+#define BZ_X_MTF_1       36
+#define BZ_X_MTF_2       37
+#define BZ_X_MTF_3       38
+#define BZ_X_MTF_4       39
+#define BZ_X_MTF_5       40
+#define BZ_X_MTF_6       41
+#define BZ_X_ENDHDR_2    42
+#define BZ_X_ENDHDR_3    43
+#define BZ_X_ENDHDR_4    44
+#define BZ_X_ENDHDR_5    45
+#define BZ_X_ENDHDR_6    46
+#define BZ_X_CCRC_1      47
+#define BZ_X_CCRC_2      48
+#define BZ_X_CCRC_3      49
+#define BZ_X_CCRC_4      50
+
+
+
+/*-- Constants for the fast MTF decoder. --*/
+
+#define MTFA_SIZE 4096
+#define MTFL_SIZE 16
+
+
+
+/*-- Structure holding all the decompression-side stuff. --*/
+
+typedef
+   struct {
+      /* pointer back to the struct bz_stream */
+      bz_stream* strm;
+
+      /* state indicator for this stream */
+      Int32    state;
+
+      /* for doing the final run-length decoding */
+      UChar    state_out_ch;
+      Int32    state_out_len;
+      Bool     blockRandomised;
+      BZ_RAND_DECLS;
+
+      /* the buffer for bit stream reading */
+      UInt32   bsBuff;
+      Int32    bsLive;
+
+      /* misc administratium */
+      Int32    blockSize100k;
+      Bool     smallDecompress;
+      Int32    currBlockNo;
+      Int32    verbosity;
+
+      /* for undoing the Burrows-Wheeler transform */
+      Int32    origPtr;
+      UInt32   tPos;
+      Int32    k0;
+      Int32    unzftab[256];
+      Int32    nblock_used;
+      Int32    cftab[257];
+      Int32    cftabCopy[257];
+
+      /* for undoing the Burrows-Wheeler transform (FAST) */
+      UInt32   *tt;
+
+      /* for undoing the Burrows-Wheeler transform (SMALL) */
+      UInt16   *ll16;
+      UChar    *ll4;
+
+      /* stored and calculated CRCs */
+      UInt32   storedBlockCRC;
+      UInt32   storedCombinedCRC;
+      UInt32   calculatedBlockCRC;
+      UInt32   calculatedCombinedCRC;
+
+      /* map of bytes used in block */
+      Int32    nInUse;
+      Bool     inUse[256];
+      Bool     inUse16[16];
+      UChar    seqToUnseq[256];
+
+      /* for decoding the MTF values */
+      UChar    mtfa   [MTFA_SIZE];
+      Int32    mtfbase[256 / MTFL_SIZE];
+      UChar    selector   [BZ_MAX_SELECTORS];
+      UChar    selectorMtf[BZ_MAX_SELECTORS];
+      UChar    len  [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+
+      Int32    limit  [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      Int32    base   [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      Int32    perm   [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+      Int32    minLens[BZ_N_GROUPS];
+
+      /* save area for scalars in the main decompress code */
+      Int32    save_i;
+      Int32    save_j;
+      Int32    save_t;
+      Int32    save_alphaSize;
+      Int32    save_nGroups;
+      Int32    save_nSelectors;
+      Int32    save_EOB;
+      Int32    save_groupNo;
+      Int32    save_groupPos;
+      Int32    save_nextSym;
+      Int32    save_nblockMAX;
+      Int32    save_nblock;
+      Int32    save_es;
+      Int32    save_N;
+      Int32    save_curr;
+      Int32    save_zt;
+      Int32    save_zn; 
+      Int32    save_zvec;
+      Int32    save_zj;
+      Int32    save_gSel;
+      Int32    save_gMinlen;
+      Int32*   save_gLimit;
+      Int32*   save_gBase;
+      Int32*   save_gPerm;
+
+   }
+   DState;
+
+
+
+/*-- Macros for decompression. --*/
+
+#define BZ_GET_FAST(cccc)                     \
+    /* c_tPos is unsigned, hence test < 0 is pointless. */ \
+    if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \
+    s->tPos = s->tt[s->tPos];                 \
+    cccc = (UChar)(s->tPos & 0xff);           \
+    s->tPos >>= 8;
+
+#define BZ_GET_FAST_C(cccc)                   \
+    /* c_tPos is unsigned, hence test < 0 is pointless. */ \
+    if (c_tPos >= (UInt32)100000 * (UInt32)ro_blockSize100k) return True; \
+    c_tPos = c_tt[c_tPos];                    \
+    cccc = (UChar)(c_tPos & 0xff);            \
+    c_tPos >>= 8;
+
+#define SET_LL4(i,n)                                          \
+   { if (((i) & 0x1) == 0)                                    \
+        s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0xf0) | (n); else    \
+        s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0x0f) | ((n) << 4);  \
+   }
+
+#define GET_LL4(i)                             \
+   ((((UInt32)(s->ll4[(i) >> 1])) >> (((i) << 2) & 0x4)) & 0xF)
+
+#define SET_LL(i,n)                          \
+   { s->ll16[i] = (UInt16)(n & 0x0000ffff);  \
+     SET_LL4(i, n >> 16);                    \
+   }
+
+#define GET_LL(i) \
+   (((UInt32)s->ll16[i]) | (GET_LL4(i) << 16))
+
+#define BZ_GET_SMALL(cccc)                            \
+    /* c_tPos is unsigned, hence test < 0 is pointless. */ \
+    if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \
+    cccc = BZ2_indexIntoF ( s->tPos, s->cftab );    \
+    s->tPos = GET_LL(s->tPos);
+
+
+/*-- externs for decompression. --*/
+
+extern Int32 
+BZ2_indexIntoF ( Int32, Int32* );
+
+extern Int32 
+BZ2_decompress ( DState* );
+
+extern void 
+BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*,
+                           Int32,  Int32, Int32 );
+
+
+#endif
+
+
+/*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/
+
+#ifdef BZ_NO_STDIO
+#ifndef NULL
+#define NULL 0
+#endif
+#endif
+
+
+/*-------------------------------------------------------------*/
+/*--- end                                   bzlib_private.h ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/bzmore b/bzip2/bzmore
new file mode 100644 (file)
index 0000000..d314043
--- /dev/null
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# Bzmore wrapped for bzip2, 
+# adapted from zmore by Philippe Troin <phil@fifi.org> for Debian GNU/Linux.
+
+PATH="/usr/bin:$PATH"; export PATH
+
+prog=`echo $0 | sed 's|.*/||'`
+case "$prog" in
+       *less)  more=less       ;;
+       *)      more=more       ;;
+esac
+
+if test "`echo -n a`" = "-n a"; then
+  # looks like a SysV system:
+  n1=''; n2='\c'
+else
+  n1='-n'; n2=''
+fi
+oldtty=`stty -g 2>/dev/null`
+if stty -cbreak 2>/dev/null; then
+  cb='cbreak'; ncb='-cbreak'
+else
+  # 'stty min 1' resets eof to ^a on both SunOS and SysV!
+  cb='min 1 -icanon'; ncb='icanon eof ^d'
+fi
+if test $? -eq 0 -a -n "$oldtty"; then
+   trap 'stty $oldtty 2>/dev/null; exit' 0 2 3 5 10 13 15
+else
+   trap 'stty $ncb echo 2>/dev/null; exit' 0 2 3 5 10 13 15
+fi
+
+if test $# = 0; then
+    if test -t 0; then
+       echo usage: $prog files...
+    else
+       bzip2 -cdfq | eval $more
+    fi
+else
+    FIRST=1
+    for FILE
+    do
+       if test $FIRST -eq 0; then
+               echo $n1 "--More--(Next file: $FILE)$n2"
+               stty $cb -echo 2>/dev/null
+               ANS=`dd bs=1 count=1 2>/dev/null` 
+               stty $ncb echo 2>/dev/null
+               echo " "
+               if test "$ANS" = 'e' -o "$ANS" = 'q'; then
+                       exit
+               fi
+       fi
+       if test "$ANS" != 's'; then
+               echo "------> $FILE <------"
+               bzip2 -cdfq "$FILE" | eval $more
+       fi
+       if test -t; then
+               FIRST=0
+       fi
+    done
+fi
diff --git a/bzip2/bzmore.1 b/bzip2/bzmore.1
new file mode 100644 (file)
index 0000000..b437d3b
--- /dev/null
@@ -0,0 +1,152 @@
+.\"Shamelessly copied from zmore.1 by Philippe Troin <phil@fifi.org>
+.\"for Debian GNU/Linux
+.TH BZMORE 1
+.SH NAME
+bzmore, bzless \- file perusal filter for crt viewing of bzip2 compressed text
+.SH SYNOPSIS
+.B bzmore
+[ name ...  ]
+.br
+.B bzless
+[ name ...  ]
+.SH NOTE
+In the following description,
+.I bzless
+and
+.I less
+can be used interchangeably with
+.I bzmore
+and
+.I more.
+.SH DESCRIPTION
+.I  Bzmore
+is a filter which allows examination of compressed or plain text files
+one screenful at a time on a soft-copy terminal.
+.I bzmore
+works on files compressed with
+.I bzip2
+and also on uncompressed files.
+If a file does not exist,
+.I bzmore
+looks for a file of the same name with the addition of a .bz2 suffix.
+.PP
+.I Bzmore
+normally pauses after each screenful, printing --More--
+at the bottom of the screen.
+If the user then types a carriage return, one more line is displayed.
+If the user hits a space,
+another screenful is displayed.  Other possibilities are enumerated later.
+.PP
+.I Bzmore
+looks in the file
+.I /etc/termcap
+to determine terminal characteristics,
+and to determine the default window size.
+On a terminal capable of displaying 24 lines,
+the default window size is 22 lines.
+Other sequences which may be typed when
+.I bzmore
+pauses, and their effects, are as follows (\fIi\fP is an optional integer
+argument, defaulting to 1) :
+.PP
+.IP \fIi\|\fP<space>
+display
+.I i
+more lines, (or another screenful if no argument is given)
+.PP
+.IP ^D
+display 11 more lines (a ``scroll'').
+If
+.I i
+is given, then the scroll size is set to \fIi\|\fP.
+.PP
+.IP d
+same as ^D (control-D)
+.PP
+.IP \fIi\|\fPz
+same as typing a space except that \fIi\|\fP, if present, becomes the new
+window size.  Note that the window size reverts back to the default at the
+end of the current file.
+.PP
+.IP \fIi\|\fPs
+skip \fIi\|\fP lines and print a screenful of lines
+.PP
+.IP \fIi\|\fPf
+skip \fIi\fP screenfuls and print a screenful of lines
+.PP
+.IP "q or Q"
+quit reading the current file; go on to the next (if any)
+.PP
+.IP "e or q"
+When the prompt --More--(Next file: 
+.IR file )
+is printed, this command causes bzmore to exit.
+.PP
+.IP s
+When the prompt --More--(Next file: 
+.IR file )
+is printed, this command causes bzmore to skip the next file and continue.
+.PP 
+.IP =
+Display the current line number.
+.PP
+.IP \fIi\|\fP/expr
+search for the \fIi\|\fP-th occurrence of the regular expression \fIexpr.\fP
+If the pattern is not found,
+.I bzmore
+goes on to the next file (if any).
+Otherwise, a screenful is displayed, starting two lines before the place
+where the expression was found.
+The user's erase and kill characters may be used to edit the regular
+expression.
+Erasing back past the first column cancels the search command.
+.PP
+.IP \fIi\|\fPn
+search for the \fIi\|\fP-th occurrence of the last regular expression entered.
+.PP
+.IP !command
+invoke a shell with \fIcommand\|\fP. 
+The character `!' in "command" are replaced with the
+previous shell command.  The sequence "\\!" is replaced by "!".
+.PP
+.IP ":q or :Q"
+quit reading the current file; go on to the next (if any)
+(same as q or Q).
+.PP
+.IP .
+(dot) repeat the previous command.
+.PP
+The commands take effect immediately, i.e., it is not necessary to
+type a carriage return.
+Up to the time when the command character itself is given,
+the user may hit the line kill character to cancel the numerical
+argument being formed.
+In addition, the user may hit the erase character to redisplay the
+--More-- message.
+.PP
+At any time when output is being sent to the terminal, the user can
+hit the quit key (normally control\-\\).
+.I Bzmore
+will stop sending output, and will display the usual --More--
+prompt.
+The user may then enter one of the above commands in the normal manner.
+Unfortunately, some output is lost when this is done, due to the
+fact that any characters waiting in the terminal's output queue
+are flushed when the quit signal occurs.
+.PP
+The terminal is set to
+.I noecho
+mode by this program so that the output can be continuous.
+What you type will thus not show on your terminal, except for the / and !
+commands.
+.PP
+If the standard output is not a teletype, then
+.I bzmore
+acts just like
+.I bzcat,
+except that a header is printed before each file.
+.SH FILES
+.DT
+/etc/termcap           Terminal data base
+.SH "SEE ALSO"
+more(1), less(1), bzip2(1), bzdiff(1), bzgrep(1)
diff --git a/bzip2/compress.c b/bzip2/compress.c
new file mode 100644 (file)
index 0000000..caf7696
--- /dev/null
@@ -0,0 +1,672 @@
+
+/*-------------------------------------------------------------*/
+/*--- Compression machinery (not incl block sorting)        ---*/
+/*---                                            compress.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+/* CHANGES
+    0.9.0    -- original version.
+    0.9.0a/b -- no changes in this file.
+    0.9.0c   -- changed setting of nGroups in sendMTFValues() 
+                so as to do a bit better on small files
+*/
+
+#include "bzlib_private.h"
+
+
+/*---------------------------------------------------*/
+/*--- Bit stream I/O                              ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+void BZ2_bsInitWrite ( EState* s )
+{
+   s->bsLive = 0;
+   s->bsBuff = 0;
+}
+
+
+/*---------------------------------------------------*/
+static
+void bsFinishWrite ( EState* s )
+{
+   while (s->bsLive > 0) {
+      s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24);
+      s->numZ++;
+      s->bsBuff <<= 8;
+      s->bsLive -= 8;
+   }
+}
+
+
+/*---------------------------------------------------*/
+#define bsNEEDW(nz)                           \
+{                                             \
+   while (s->bsLive >= 8) {                   \
+      s->zbits[s->numZ]                       \
+         = (UChar)(s->bsBuff >> 24);          \
+      s->numZ++;                              \
+      s->bsBuff <<= 8;                        \
+      s->bsLive -= 8;                         \
+   }                                          \
+}
+
+
+/*---------------------------------------------------*/
+static
+__inline__
+void bsW ( EState* s, Int32 n, UInt32 v )
+{
+   bsNEEDW ( n );
+   s->bsBuff |= (v << (32 - s->bsLive - n));
+   s->bsLive += n;
+}
+
+
+/*---------------------------------------------------*/
+static
+void bsPutUInt32 ( EState* s, UInt32 u )
+{
+   bsW ( s, 8, (u >> 24) & 0xffL );
+   bsW ( s, 8, (u >> 16) & 0xffL );
+   bsW ( s, 8, (u >>  8) & 0xffL );
+   bsW ( s, 8,  u        & 0xffL );
+}
+
+
+/*---------------------------------------------------*/
+static
+void bsPutUChar ( EState* s, UChar c )
+{
+   bsW( s, 8, (UInt32)c );
+}
+
+
+/*---------------------------------------------------*/
+/*--- The back end proper                         ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+static
+void makeMaps_e ( EState* s )
+{
+   Int32 i;
+   s->nInUse = 0;
+   for (i = 0; i < 256; i++)
+      if (s->inUse[i]) {
+         s->unseqToSeq[i] = s->nInUse;
+         s->nInUse++;
+      }
+}
+
+
+/*---------------------------------------------------*/
+static
+void generateMTFValues ( EState* s )
+{
+   UChar   yy[256];
+   Int32   i, j;
+   Int32   zPend;
+   Int32   wr;
+   Int32   EOB;
+
+   /* 
+      After sorting (eg, here),
+         s->arr1 [ 0 .. s->nblock-1 ] holds sorted order,
+         and
+         ((UChar*)s->arr2) [ 0 .. s->nblock-1 ] 
+         holds the original block data.
+
+      The first thing to do is generate the MTF values,
+      and put them in
+         ((UInt16*)s->arr1) [ 0 .. s->nblock-1 ].
+      Because there are strictly fewer or equal MTF values
+      than block values, ptr values in this area are overwritten
+      with MTF values only when they are no longer needed.
+
+      The final compressed bitstream is generated into the
+      area starting at
+         (UChar*) (&((UChar*)s->arr2)[s->nblock])
+
+      These storage aliases are set up in bzCompressInit(),
+      except for the last one, which is arranged in 
+      compressBlock().
+   */
+   UInt32* ptr   = s->ptr;
+   UChar* block  = s->block;
+   UInt16* mtfv  = s->mtfv;
+
+   makeMaps_e ( s );
+   EOB = s->nInUse+1;
+
+   for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0;
+
+   wr = 0;
+   zPend = 0;
+   for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i;
+
+   for (i = 0; i < s->nblock; i++) {
+      UChar ll_i;
+      AssertD ( wr <= i, "generateMTFValues(1)" );
+      j = ptr[i]-1; if (j < 0) j += s->nblock;
+      ll_i = s->unseqToSeq[block[j]];
+      AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" );
+
+      if (yy[0] == ll_i) { 
+         zPend++;
+      } else {
+
+         if (zPend > 0) {
+            zPend--;
+            while (True) {
+               if (zPend & 1) {
+                  mtfv[wr] = BZ_RUNB; wr++; 
+                  s->mtfFreq[BZ_RUNB]++; 
+               } else {
+                  mtfv[wr] = BZ_RUNA; wr++; 
+                  s->mtfFreq[BZ_RUNA]++; 
+               }
+               if (zPend < 2) break;
+               zPend = (zPend - 2) / 2;
+            };
+            zPend = 0;
+         }
+         {
+            register UChar  rtmp;
+            register UChar* ryy_j;
+            register UChar  rll_i;
+            rtmp  = yy[1];
+            yy[1] = yy[0];
+            ryy_j = &(yy[1]);
+            rll_i = ll_i;
+            while ( rll_i != rtmp ) {
+               register UChar rtmp2;
+               ryy_j++;
+               rtmp2  = rtmp;
+               rtmp   = *ryy_j;
+               *ryy_j = rtmp2;
+            };
+            yy[0] = rtmp;
+            j = ryy_j - &(yy[0]);
+            mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++;
+         }
+
+      }
+   }
+
+   if (zPend > 0) {
+      zPend--;
+      while (True) {
+         if (zPend & 1) {
+            mtfv[wr] = BZ_RUNB; wr++; 
+            s->mtfFreq[BZ_RUNB]++; 
+         } else {
+            mtfv[wr] = BZ_RUNA; wr++; 
+            s->mtfFreq[BZ_RUNA]++; 
+         }
+         if (zPend < 2) break;
+         zPend = (zPend - 2) / 2;
+      };
+      zPend = 0;
+   }
+
+   mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++;
+
+   s->nMTF = wr;
+}
+
+
+/*---------------------------------------------------*/
+#define BZ_LESSER_ICOST  0
+#define BZ_GREATER_ICOST 15
+
+static
+void sendMTFValues ( EState* s )
+{
+   Int32 v, t, i, j, gs, ge, totc, bt, bc, iter;
+   Int32 nSelectors, alphaSize, minLen, maxLen, selCtr;
+   Int32 nGroups, nBytes;
+
+   /*--
+   UChar  len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+   is a global since the decoder also needs it.
+
+   Int32  code[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+   Int32  rfreq[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+   are also globals only used in this proc.
+   Made global to keep stack frame size small.
+   --*/
+
+
+   UInt16 cost[BZ_N_GROUPS];
+   Int32  fave[BZ_N_GROUPS];
+
+   UInt16* mtfv = s->mtfv;
+
+   if (s->verbosity >= 3)
+      VPrintf3( "      %d in block, %d after MTF & 1-2 coding, "
+                "%d+2 syms in use\n", 
+                s->nblock, s->nMTF, s->nInUse );
+
+   alphaSize = s->nInUse+2;
+   for (t = 0; t < BZ_N_GROUPS; t++)
+      for (v = 0; v < alphaSize; v++)
+         s->len[t][v] = BZ_GREATER_ICOST;
+
+   /*--- Decide how many coding tables to use ---*/
+   AssertH ( s->nMTF > 0, 3001 );
+   if (s->nMTF < 200)  nGroups = 2; else
+   if (s->nMTF < 600)  nGroups = 3; else
+   if (s->nMTF < 1200) nGroups = 4; else
+   if (s->nMTF < 2400) nGroups = 5; else
+                       nGroups = 6;
+
+   /*--- Generate an initial set of coding tables ---*/
+   { 
+      Int32 nPart, remF, tFreq, aFreq;
+
+      nPart = nGroups;
+      remF  = s->nMTF;
+      gs = 0;
+      while (nPart > 0) {
+         tFreq = remF / nPart;
+         ge = gs-1;
+         aFreq = 0;
+         while (aFreq < tFreq && ge < alphaSize-1) {
+            ge++;
+            aFreq += s->mtfFreq[ge];
+         }
+
+         if (ge > gs 
+             && nPart != nGroups && nPart != 1 
+             && ((nGroups-nPart) % 2 == 1)) {
+            aFreq -= s->mtfFreq[ge];
+            ge--;
+         }
+
+         if (s->verbosity >= 3)
+            VPrintf5( "      initial group %d, [%d .. %d], "
+                      "has %d syms (%4.1f%%)\n",
+                      nPart, gs, ge, aFreq, 
+                      (100.0 * (float)aFreq) / (float)(s->nMTF) );
+         for (v = 0; v < alphaSize; v++)
+            if (v >= gs && v <= ge) 
+               s->len[nPart-1][v] = BZ_LESSER_ICOST; else
+               s->len[nPart-1][v] = BZ_GREATER_ICOST;
+         nPart--;
+         gs = ge+1;
+         remF -= aFreq;
+      }
+   }
+
+   /*--- 
+      Iterate up to BZ_N_ITERS times to improve the tables.
+   ---*/
+   for (iter = 0; iter < BZ_N_ITERS; iter++) {
+
+      for (t = 0; t < nGroups; t++) fave[t] = 0;
+
+      for (t = 0; t < nGroups; t++)
+         for (v = 0; v < alphaSize; v++)
+            s->rfreq[t][v] = 0;
+
+      /*---
+        Set up an auxiliary length table which is used to fast-track
+       the common case (nGroups == 6). 
+      ---*/
+      if (nGroups == 6) {
+         for (v = 0; v < alphaSize; v++) {
+            s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v];
+            s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v];
+            s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v];
+        }
+      }
+
+      nSelectors = 0;
+      totc = 0;
+      gs = 0;
+      while (True) {
+
+         /*--- Set group start & end marks. --*/
+         if (gs >= s->nMTF) break;
+         ge = gs + BZ_G_SIZE - 1; 
+         if (ge >= s->nMTF) ge = s->nMTF-1;
+
+         /*-- 
+            Calculate the cost of this group as coded
+            by each of the coding tables.
+         --*/
+         for (t = 0; t < nGroups; t++) cost[t] = 0;
+
+         if (nGroups == 6 && 50 == ge-gs+1) {
+            /*--- fast track the common case ---*/
+            register UInt32 cost01, cost23, cost45;
+            register UInt16 icv;
+            cost01 = cost23 = cost45 = 0;
+
+#           define BZ_ITER(nn)                \
+               icv = mtfv[gs+(nn)];           \
+               cost01 += s->len_pack[icv][0]; \
+               cost23 += s->len_pack[icv][1]; \
+               cost45 += s->len_pack[icv][2]; \
+
+            BZ_ITER(0);  BZ_ITER(1);  BZ_ITER(2);  BZ_ITER(3);  BZ_ITER(4);
+            BZ_ITER(5);  BZ_ITER(6);  BZ_ITER(7);  BZ_ITER(8);  BZ_ITER(9);
+            BZ_ITER(10); BZ_ITER(11); BZ_ITER(12); BZ_ITER(13); BZ_ITER(14);
+            BZ_ITER(15); BZ_ITER(16); BZ_ITER(17); BZ_ITER(18); BZ_ITER(19);
+            BZ_ITER(20); BZ_ITER(21); BZ_ITER(22); BZ_ITER(23); BZ_ITER(24);
+            BZ_ITER(25); BZ_ITER(26); BZ_ITER(27); BZ_ITER(28); BZ_ITER(29);
+            BZ_ITER(30); BZ_ITER(31); BZ_ITER(32); BZ_ITER(33); BZ_ITER(34);
+            BZ_ITER(35); BZ_ITER(36); BZ_ITER(37); BZ_ITER(38); BZ_ITER(39);
+            BZ_ITER(40); BZ_ITER(41); BZ_ITER(42); BZ_ITER(43); BZ_ITER(44);
+            BZ_ITER(45); BZ_ITER(46); BZ_ITER(47); BZ_ITER(48); BZ_ITER(49);
+
+#           undef BZ_ITER
+
+            cost[0] = cost01 & 0xffff; cost[1] = cost01 >> 16;
+            cost[2] = cost23 & 0xffff; cost[3] = cost23 >> 16;
+            cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16;
+
+         } else {
+           /*--- slow version which correctly handles all situations ---*/
+            for (i = gs; i <= ge; i++) { 
+               UInt16 icv = mtfv[i];
+               for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv];
+            }
+         }
+         /*-- 
+            Find the coding table which is best for this group,
+            and record its identity in the selector table.
+         --*/
+         bc = 999999999; bt = -1;
+         for (t = 0; t < nGroups; t++)
+            if (cost[t] < bc) { bc = cost[t]; bt = t; };
+         totc += bc;
+         fave[bt]++;
+         s->selector[nSelectors] = bt;
+         nSelectors++;
+
+         /*-- 
+            Increment the symbol frequencies for the selected table.
+          --*/
+         if (nGroups == 6 && 50 == ge-gs+1) {
+            /*--- fast track the common case ---*/
+
+#           define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++
+
+            BZ_ITUR(0);  BZ_ITUR(1);  BZ_ITUR(2);  BZ_ITUR(3);  BZ_ITUR(4);
+            BZ_ITUR(5);  BZ_ITUR(6);  BZ_ITUR(7);  BZ_ITUR(8);  BZ_ITUR(9);
+            BZ_ITUR(10); BZ_ITUR(11); BZ_ITUR(12); BZ_ITUR(13); BZ_ITUR(14);
+            BZ_ITUR(15); BZ_ITUR(16); BZ_ITUR(17); BZ_ITUR(18); BZ_ITUR(19);
+            BZ_ITUR(20); BZ_ITUR(21); BZ_ITUR(22); BZ_ITUR(23); BZ_ITUR(24);
+            BZ_ITUR(25); BZ_ITUR(26); BZ_ITUR(27); BZ_ITUR(28); BZ_ITUR(29);
+            BZ_ITUR(30); BZ_ITUR(31); BZ_ITUR(32); BZ_ITUR(33); BZ_ITUR(34);
+            BZ_ITUR(35); BZ_ITUR(36); BZ_ITUR(37); BZ_ITUR(38); BZ_ITUR(39);
+            BZ_ITUR(40); BZ_ITUR(41); BZ_ITUR(42); BZ_ITUR(43); BZ_ITUR(44);
+            BZ_ITUR(45); BZ_ITUR(46); BZ_ITUR(47); BZ_ITUR(48); BZ_ITUR(49);
+
+#           undef BZ_ITUR
+
+         } else {
+           /*--- slow version which correctly handles all situations ---*/
+            for (i = gs; i <= ge; i++)
+               s->rfreq[bt][ mtfv[i] ]++;
+         }
+
+         gs = ge+1;
+      }
+      if (s->verbosity >= 3) {
+         VPrintf2 ( "      pass %d: size is %d, grp uses are ", 
+                   iter+1, totc/8 );
+         for (t = 0; t < nGroups; t++)
+            VPrintf1 ( "%d ", fave[t] );
+         VPrintf0 ( "\n" );
+      }
+
+      /*--
+        Recompute the tables based on the accumulated frequencies.
+      --*/
+      /* maxLen was changed from 20 to 17 in bzip2-1.0.3.  See 
+         comment in huffman.c for details. */
+      for (t = 0; t < nGroups; t++)
+         BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]), 
+                                 alphaSize, 17 /*20*/ );
+   }
+
+
+   AssertH( nGroups < 8, 3002 );
+   AssertH( nSelectors < 32768 &&
+            nSelectors <= (2 + (900000 / BZ_G_SIZE)),
+            3003 );
+
+
+   /*--- Compute MTF values for the selectors. ---*/
+   {
+      UChar pos[BZ_N_GROUPS], ll_i, tmp2, tmp;
+      for (i = 0; i < nGroups; i++) pos[i] = i;
+      for (i = 0; i < nSelectors; i++) {
+         ll_i = s->selector[i];
+         j = 0;
+         tmp = pos[j];
+         while ( ll_i != tmp ) {
+            j++;
+            tmp2 = tmp;
+            tmp = pos[j];
+            pos[j] = tmp2;
+         };
+         pos[0] = tmp;
+         s->selectorMtf[i] = j;
+      }
+   };
+
+   /*--- Assign actual codes for the tables. --*/
+   for (t = 0; t < nGroups; t++) {
+      minLen = 32;
+      maxLen = 0;
+      for (i = 0; i < alphaSize; i++) {
+         if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
+         if (s->len[t][i] < minLen) minLen = s->len[t][i];
+      }
+      AssertH ( !(maxLen > 17 /*20*/ ), 3004 );
+      AssertH ( !(minLen < 1),  3005 );
+      BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]), 
+                          minLen, maxLen, alphaSize );
+   }
+
+   /*--- Transmit the mapping table. ---*/
+   { 
+      Bool inUse16[16];
+      for (i = 0; i < 16; i++) {
+          inUse16[i] = False;
+          for (j = 0; j < 16; j++)
+             if (s->inUse[i * 16 + j]) inUse16[i] = True;
+      }
+     
+      nBytes = s->numZ;
+      for (i = 0; i < 16; i++)
+         if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0);
+
+      for (i = 0; i < 16; i++)
+         if (inUse16[i])
+            for (j = 0; j < 16; j++) {
+               if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0);
+            }
+
+      if (s->verbosity >= 3) 
+         VPrintf1( "      bytes: mapping %d, ", s->numZ-nBytes );
+   }
+
+   /*--- Now the selectors. ---*/
+   nBytes = s->numZ;
+   bsW ( s, 3, nGroups );
+   bsW ( s, 15, nSelectors );
+   for (i = 0; i < nSelectors; i++) { 
+      for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1);
+      bsW(s,1,0);
+   }
+   if (s->verbosity >= 3)
+      VPrintf1( "selectors %d, ", s->numZ-nBytes );
+
+   /*--- Now the coding tables. ---*/
+   nBytes = s->numZ;
+
+   for (t = 0; t < nGroups; t++) {
+      Int32 curr = s->len[t][0];
+      bsW ( s, 5, curr );
+      for (i = 0; i < alphaSize; i++) {
+         while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ };
+         while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ };
+         bsW ( s, 1, 0 );
+      }
+   }
+
+   if (s->verbosity >= 3)
+      VPrintf1 ( "code lengths %d, ", s->numZ-nBytes );
+
+   /*--- And finally, the block data proper ---*/
+   nBytes = s->numZ;
+   selCtr = 0;
+   gs = 0;
+   while (True) {
+      if (gs >= s->nMTF) break;
+      ge = gs + BZ_G_SIZE - 1; 
+      if (ge >= s->nMTF) ge = s->nMTF-1;
+      AssertH ( s->selector[selCtr] < nGroups, 3006 );
+
+      if (nGroups == 6 && 50 == ge-gs+1) {
+            /*--- fast track the common case ---*/
+            UInt16 mtfv_i;
+            UChar* s_len_sel_selCtr 
+               = &(s->len[s->selector[selCtr]][0]);
+            Int32* s_code_sel_selCtr
+               = &(s->code[s->selector[selCtr]][0]);
+
+#           define BZ_ITAH(nn)                      \
+               mtfv_i = mtfv[gs+(nn)];              \
+               bsW ( s,                             \
+                     s_len_sel_selCtr[mtfv_i],      \
+                     s_code_sel_selCtr[mtfv_i] )
+
+            BZ_ITAH(0);  BZ_ITAH(1);  BZ_ITAH(2);  BZ_ITAH(3);  BZ_ITAH(4);
+            BZ_ITAH(5);  BZ_ITAH(6);  BZ_ITAH(7);  BZ_ITAH(8);  BZ_ITAH(9);
+            BZ_ITAH(10); BZ_ITAH(11); BZ_ITAH(12); BZ_ITAH(13); BZ_ITAH(14);
+            BZ_ITAH(15); BZ_ITAH(16); BZ_ITAH(17); BZ_ITAH(18); BZ_ITAH(19);
+            BZ_ITAH(20); BZ_ITAH(21); BZ_ITAH(22); BZ_ITAH(23); BZ_ITAH(24);
+            BZ_ITAH(25); BZ_ITAH(26); BZ_ITAH(27); BZ_ITAH(28); BZ_ITAH(29);
+            BZ_ITAH(30); BZ_ITAH(31); BZ_ITAH(32); BZ_ITAH(33); BZ_ITAH(34);
+            BZ_ITAH(35); BZ_ITAH(36); BZ_ITAH(37); BZ_ITAH(38); BZ_ITAH(39);
+            BZ_ITAH(40); BZ_ITAH(41); BZ_ITAH(42); BZ_ITAH(43); BZ_ITAH(44);
+            BZ_ITAH(45); BZ_ITAH(46); BZ_ITAH(47); BZ_ITAH(48); BZ_ITAH(49);
+
+#           undef BZ_ITAH
+
+      } else {
+        /*--- slow version which correctly handles all situations ---*/
+         for (i = gs; i <= ge; i++) {
+            bsW ( s, 
+                  s->len  [s->selector[selCtr]] [mtfv[i]],
+                  s->code [s->selector[selCtr]] [mtfv[i]] );
+         }
+      }
+
+
+      gs = ge+1;
+      selCtr++;
+   }
+   AssertH( selCtr == nSelectors, 3007 );
+
+   if (s->verbosity >= 3)
+      VPrintf1( "codes %d\n", s->numZ-nBytes );
+}
+
+
+/*---------------------------------------------------*/
+void BZ2_compressBlock ( EState* s, Bool is_last_block )
+{
+   if (s->nblock > 0) {
+
+      BZ_FINALISE_CRC ( s->blockCRC );
+      s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31);
+      s->combinedCRC ^= s->blockCRC;
+      if (s->blockNo > 1) s->numZ = 0;
+
+      if (s->verbosity >= 2)
+         VPrintf4( "    block %d: crc = 0x%08x, "
+                   "combined CRC = 0x%08x, size = %d\n",
+                   s->blockNo, s->blockCRC, s->combinedCRC, s->nblock );
+
+      BZ2_blockSort ( s );
+   }
+
+   s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]);
+
+   /*-- If this is the first block, create the stream header. --*/
+   if (s->blockNo == 1) {
+      BZ2_bsInitWrite ( s );
+      bsPutUChar ( s, BZ_HDR_B );
+      bsPutUChar ( s, BZ_HDR_Z );
+      bsPutUChar ( s, BZ_HDR_h );
+      bsPutUChar ( s, (UChar)(BZ_HDR_0 + s->blockSize100k) );
+   }
+
+   if (s->nblock > 0) {
+
+      bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 );
+      bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 );
+      bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 );
+
+      /*-- Now the block's CRC, so it is in a known place. --*/
+      bsPutUInt32 ( s, s->blockCRC );
+
+      /*-- 
+         Now a single bit indicating (non-)randomisation. 
+         As of version 0.9.5, we use a better sorting algorithm
+         which makes randomisation unnecessary.  So always set
+         the randomised bit to 'no'.  Of course, the decoder
+         still needs to be able to handle randomised blocks
+         so as to maintain backwards compatibility with
+         older versions of bzip2.
+      --*/
+      bsW(s,1,0);
+
+      bsW ( s, 24, s->origPtr );
+      generateMTFValues ( s );
+      sendMTFValues ( s );
+   }
+
+
+   /*-- If this is the last block, add the stream trailer. --*/
+   if (is_last_block) {
+
+      bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 );
+      bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 );
+      bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 );
+      bsPutUInt32 ( s, s->combinedCRC );
+      if (s->verbosity >= 2)
+         VPrintf1( "    final combined CRC = 0x%08x\n   ", s->combinedCRC );
+      bsFinishWrite ( s );
+   }
+}
+
+
+/*-------------------------------------------------------------*/
+/*--- end                                        compress.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/crctable.c b/bzip2/crctable.c
new file mode 100644 (file)
index 0000000..1fea7e9
--- /dev/null
@@ -0,0 +1,104 @@
+
+/*-------------------------------------------------------------*/
+/*--- Table for doing CRCs                                  ---*/
+/*---                                            crctable.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#include "bzlib_private.h"
+
+/*--
+  I think this is an implementation of the AUTODIN-II,
+  Ethernet & FDDI 32-bit CRC standard.  Vaguely derived
+  from code by Rob Warnock, in Section 51 of the
+  comp.compression FAQ.
+--*/
+
+UInt32 BZ2_crc32Table[256] = {
+
+   /*-- Ugly, innit? --*/
+
+   0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L,
+   0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L,
+   0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L,
+   0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL,
+   0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L,
+   0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L,
+   0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L,
+   0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL,
+   0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L,
+   0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L,
+   0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L,
+   0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL,
+   0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L,
+   0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L,
+   0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L,
+   0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL,
+   0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL,
+   0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L,
+   0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L,
+   0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL,
+   0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL,
+   0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L,
+   0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L,
+   0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL,
+   0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL,
+   0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L,
+   0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L,
+   0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL,
+   0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL,
+   0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L,
+   0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L,
+   0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL,
+   0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L,
+   0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL,
+   0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL,
+   0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L,
+   0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L,
+   0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL,
+   0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL,
+   0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L,
+   0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L,
+   0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL,
+   0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL,
+   0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L,
+   0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L,
+   0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL,
+   0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL,
+   0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L,
+   0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L,
+   0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL,
+   0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L,
+   0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L,
+   0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L,
+   0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL,
+   0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L,
+   0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L,
+   0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L,
+   0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL,
+   0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L,
+   0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L,
+   0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L,
+   0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL,
+   0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L,
+   0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L
+};
+
+
+/*-------------------------------------------------------------*/
+/*--- end                                        crctable.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/decompress.c b/bzip2/decompress.c
new file mode 100644 (file)
index 0000000..311f566
--- /dev/null
@@ -0,0 +1,646 @@
+
+/*-------------------------------------------------------------*/
+/*--- Decompression machinery                               ---*/
+/*---                                          decompress.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#include "bzlib_private.h"
+
+
+/*---------------------------------------------------*/
+static
+void makeMaps_d ( DState* s )
+{
+   Int32 i;
+   s->nInUse = 0;
+   for (i = 0; i < 256; i++)
+      if (s->inUse[i]) {
+         s->seqToUnseq[s->nInUse] = i;
+         s->nInUse++;
+      }
+}
+
+
+/*---------------------------------------------------*/
+#define RETURN(rrr)                               \
+   { retVal = rrr; goto save_state_and_return; };
+
+#define GET_BITS(lll,vvv,nnn)                     \
+   case lll: s->state = lll;                      \
+   while (True) {                                 \
+      if (s->bsLive >= nnn) {                     \
+         UInt32 v;                                \
+         v = (s->bsBuff >>                        \
+             (s->bsLive-nnn)) & ((1 << nnn)-1);   \
+         s->bsLive -= nnn;                        \
+         vvv = v;                                 \
+         break;                                   \
+      }                                           \
+      if (s->strm->avail_in == 0) RETURN(BZ_OK);  \
+      s->bsBuff                                   \
+         = (s->bsBuff << 8) |                     \
+           ((UInt32)                              \
+              (*((UChar*)(s->strm->next_in))));   \
+      s->bsLive += 8;                             \
+      s->strm->next_in++;                         \
+      s->strm->avail_in--;                        \
+      s->strm->total_in_lo32++;                   \
+      if (s->strm->total_in_lo32 == 0)            \
+         s->strm->total_in_hi32++;                \
+   }
+
+#define GET_UCHAR(lll,uuu)                        \
+   GET_BITS(lll,uuu,8)
+
+#define GET_BIT(lll,uuu)                          \
+   GET_BITS(lll,uuu,1)
+
+/*---------------------------------------------------*/
+#define GET_MTF_VAL(label1,label2,lval)           \
+{                                                 \
+   if (groupPos == 0) {                           \
+      groupNo++;                                  \
+      if (groupNo >= nSelectors)                  \
+         RETURN(BZ_DATA_ERROR);                   \
+      groupPos = BZ_G_SIZE;                       \
+      gSel = s->selector[groupNo];                \
+      gMinlen = s->minLens[gSel];                 \
+      gLimit = &(s->limit[gSel][0]);              \
+      gPerm = &(s->perm[gSel][0]);                \
+      gBase = &(s->base[gSel][0]);                \
+   }                                              \
+   groupPos--;                                    \
+   zn = gMinlen;                                  \
+   GET_BITS(label1, zvec, zn);                    \
+   while (1) {                                    \
+      if (zn > 20 /* the longest code */)         \
+         RETURN(BZ_DATA_ERROR);                   \
+      if (zvec <= gLimit[zn]) break;              \
+      zn++;                                       \
+      GET_BIT(label2, zj);                        \
+      zvec = (zvec << 1) | zj;                    \
+   };                                             \
+   if (zvec - gBase[zn] < 0                       \
+       || zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE)  \
+      RETURN(BZ_DATA_ERROR);                      \
+   lval = gPerm[zvec - gBase[zn]];                \
+}
+
+
+/*---------------------------------------------------*/
+Int32 BZ2_decompress ( DState* s )
+{
+   UChar      uc;
+   Int32      retVal;
+   Int32      minLen, maxLen;
+   bz_stream* strm = s->strm;
+
+   /* stuff that needs to be saved/restored */
+   Int32  i;
+   Int32  j;
+   Int32  t;
+   Int32  alphaSize;
+   Int32  nGroups;
+   Int32  nSelectors;
+   Int32  EOB;
+   Int32  groupNo;
+   Int32  groupPos;
+   Int32  nextSym;
+   Int32  nblockMAX;
+   Int32  nblock;
+   Int32  es;
+   Int32  N;
+   Int32  curr;
+   Int32  zt;
+   Int32  zn; 
+   Int32  zvec;
+   Int32  zj;
+   Int32  gSel;
+   Int32  gMinlen;
+   Int32* gLimit;
+   Int32* gBase;
+   Int32* gPerm;
+
+   if (s->state == BZ_X_MAGIC_1) {
+      /*initialise the save area*/
+      s->save_i           = 0;
+      s->save_j           = 0;
+      s->save_t           = 0;
+      s->save_alphaSize   = 0;
+      s->save_nGroups     = 0;
+      s->save_nSelectors  = 0;
+      s->save_EOB         = 0;
+      s->save_groupNo     = 0;
+      s->save_groupPos    = 0;
+      s->save_nextSym     = 0;
+      s->save_nblockMAX   = 0;
+      s->save_nblock      = 0;
+      s->save_es          = 0;
+      s->save_N           = 0;
+      s->save_curr        = 0;
+      s->save_zt          = 0;
+      s->save_zn          = 0;
+      s->save_zvec        = 0;
+      s->save_zj          = 0;
+      s->save_gSel        = 0;
+      s->save_gMinlen     = 0;
+      s->save_gLimit      = NULL;
+      s->save_gBase       = NULL;
+      s->save_gPerm       = NULL;
+   }
+
+   /*restore from the save area*/
+   i           = s->save_i;
+   j           = s->save_j;
+   t           = s->save_t;
+   alphaSize   = s->save_alphaSize;
+   nGroups     = s->save_nGroups;
+   nSelectors  = s->save_nSelectors;
+   EOB         = s->save_EOB;
+   groupNo     = s->save_groupNo;
+   groupPos    = s->save_groupPos;
+   nextSym     = s->save_nextSym;
+   nblockMAX   = s->save_nblockMAX;
+   nblock      = s->save_nblock;
+   es          = s->save_es;
+   N           = s->save_N;
+   curr        = s->save_curr;
+   zt          = s->save_zt;
+   zn          = s->save_zn; 
+   zvec        = s->save_zvec;
+   zj          = s->save_zj;
+   gSel        = s->save_gSel;
+   gMinlen     = s->save_gMinlen;
+   gLimit      = s->save_gLimit;
+   gBase       = s->save_gBase;
+   gPerm       = s->save_gPerm;
+
+   retVal = BZ_OK;
+
+   switch (s->state) {
+
+      GET_UCHAR(BZ_X_MAGIC_1, uc);
+      if (uc != BZ_HDR_B) RETURN(BZ_DATA_ERROR_MAGIC);
+
+      GET_UCHAR(BZ_X_MAGIC_2, uc);
+      if (uc != BZ_HDR_Z) RETURN(BZ_DATA_ERROR_MAGIC);
+
+      GET_UCHAR(BZ_X_MAGIC_3, uc)
+      if (uc != BZ_HDR_h) RETURN(BZ_DATA_ERROR_MAGIC);
+
+      GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8)
+      if (s->blockSize100k < (BZ_HDR_0 + 1) || 
+          s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC);
+      s->blockSize100k -= BZ_HDR_0;
+
+      if (s->smallDecompress) {
+         s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) );
+         s->ll4  = BZALLOC( 
+                      ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) 
+                   );
+         if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR);
+      } else {
+         s->tt  = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) );
+         if (s->tt == NULL) RETURN(BZ_MEM_ERROR);
+      }
+
+      GET_UCHAR(BZ_X_BLKHDR_1, uc);
+
+      if (uc == 0x17) goto endhdr_2;
+      if (uc != 0x31) RETURN(BZ_DATA_ERROR);
+      GET_UCHAR(BZ_X_BLKHDR_2, uc);
+      if (uc != 0x41) RETURN(BZ_DATA_ERROR);
+      GET_UCHAR(BZ_X_BLKHDR_3, uc);
+      if (uc != 0x59) RETURN(BZ_DATA_ERROR);
+      GET_UCHAR(BZ_X_BLKHDR_4, uc);
+      if (uc != 0x26) RETURN(BZ_DATA_ERROR);
+      GET_UCHAR(BZ_X_BLKHDR_5, uc);
+      if (uc != 0x53) RETURN(BZ_DATA_ERROR);
+      GET_UCHAR(BZ_X_BLKHDR_6, uc);
+      if (uc != 0x59) RETURN(BZ_DATA_ERROR);
+
+      s->currBlockNo++;
+      if (s->verbosity >= 2)
+         VPrintf1 ( "\n    [%d: huff+mtf ", s->currBlockNo );
+      s->storedBlockCRC = 0;
+      GET_UCHAR(BZ_X_BCRC_1, uc);
+      s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
+      GET_UCHAR(BZ_X_BCRC_2, uc);
+      s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
+      GET_UCHAR(BZ_X_BCRC_3, uc);
+      s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
+      GET_UCHAR(BZ_X_BCRC_4, uc);
+      s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
+
+      GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1);
+
+      s->origPtr = 0;
+      GET_UCHAR(BZ_X_ORIGPTR_1, uc);
+      s->origPtr = (s->origPtr << 8) | ((Int32)uc);
+      GET_UCHAR(BZ_X_ORIGPTR_2, uc);
+      s->origPtr = (s->origPtr << 8) | ((Int32)uc);
+      GET_UCHAR(BZ_X_ORIGPTR_3, uc);
+      s->origPtr = (s->origPtr << 8) | ((Int32)uc);
+
+      if (s->origPtr < 0)
+         RETURN(BZ_DATA_ERROR);
+      if (s->origPtr > 10 + 100000*s->blockSize100k) 
+         RETURN(BZ_DATA_ERROR);
+
+      /*--- Receive the mapping table ---*/
+      for (i = 0; i < 16; i++) {
+         GET_BIT(BZ_X_MAPPING_1, uc);
+         if (uc == 1) 
+            s->inUse16[i] = True; else 
+            s->inUse16[i] = False;
+      }
+
+      for (i = 0; i < 256; i++) s->inUse[i] = False;
+
+      for (i = 0; i < 16; i++)
+         if (s->inUse16[i])
+            for (j = 0; j < 16; j++) {
+               GET_BIT(BZ_X_MAPPING_2, uc);
+               if (uc == 1) s->inUse[i * 16 + j] = True;
+            }
+      makeMaps_d ( s );
+      if (s->nInUse == 0) RETURN(BZ_DATA_ERROR);
+      alphaSize = s->nInUse+2;
+
+      /*--- Now the selectors ---*/
+      GET_BITS(BZ_X_SELECTOR_1, nGroups, 3);
+      if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR);
+      GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15);
+      if (nSelectors < 1) RETURN(BZ_DATA_ERROR);
+      for (i = 0; i < nSelectors; i++) {
+         j = 0;
+         while (True) {
+            GET_BIT(BZ_X_SELECTOR_3, uc);
+            if (uc == 0) break;
+            j++;
+            if (j >= nGroups) RETURN(BZ_DATA_ERROR);
+         }
+         s->selectorMtf[i] = j;
+      }
+
+      /*--- Undo the MTF values for the selectors. ---*/
+      {
+         UChar pos[BZ_N_GROUPS], tmp, v;
+         for (v = 0; v < nGroups; v++) pos[v] = v;
+   
+         for (i = 0; i < nSelectors; i++) {
+            v = s->selectorMtf[i];
+            tmp = pos[v];
+            while (v > 0) { pos[v] = pos[v-1]; v--; }
+            pos[0] = tmp;
+            s->selector[i] = tmp;
+         }
+      }
+
+      /*--- Now the coding tables ---*/
+      for (t = 0; t < nGroups; t++) {
+         GET_BITS(BZ_X_CODING_1, curr, 5);
+         for (i = 0; i < alphaSize; i++) {
+            while (True) {
+               if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR);
+               GET_BIT(BZ_X_CODING_2, uc);
+               if (uc == 0) break;
+               GET_BIT(BZ_X_CODING_3, uc);
+               if (uc == 0) curr++; else curr--;
+            }
+            s->len[t][i] = curr;
+         }
+      }
+
+      /*--- Create the Huffman decoding tables ---*/
+      for (t = 0; t < nGroups; t++) {
+         minLen = 32;
+         maxLen = 0;
+         for (i = 0; i < alphaSize; i++) {
+            if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
+            if (s->len[t][i] < minLen) minLen = s->len[t][i];
+         }
+         BZ2_hbCreateDecodeTables ( 
+            &(s->limit[t][0]), 
+            &(s->base[t][0]), 
+            &(s->perm[t][0]), 
+            &(s->len[t][0]),
+            minLen, maxLen, alphaSize
+         );
+         s->minLens[t] = minLen;
+      }
+
+      /*--- Now the MTF values ---*/
+
+      EOB      = s->nInUse+1;
+      nblockMAX = 100000 * s->blockSize100k;
+      groupNo  = -1;
+      groupPos = 0;
+
+      for (i = 0; i <= 255; i++) s->unzftab[i] = 0;
+
+      /*-- MTF init --*/
+      {
+         Int32 ii, jj, kk;
+         kk = MTFA_SIZE-1;
+         for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) {
+            for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
+               s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj);
+               kk--;
+            }
+            s->mtfbase[ii] = kk + 1;
+         }
+      }
+      /*-- end MTF init --*/
+
+      nblock = 0;
+      GET_MTF_VAL(BZ_X_MTF_1, BZ_X_MTF_2, nextSym);
+
+      while (True) {
+
+         if (nextSym == EOB) break;
+
+         if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) {
+
+            es = -1;
+            N = 1;
+            do {
+               /* Check that N doesn't get too big, so that es doesn't
+                  go negative.  The maximum value that can be
+                  RUNA/RUNB encoded is equal to the block size (post
+                  the initial RLE), viz, 900k, so bounding N at 2
+                  million should guard against overflow without
+                  rejecting any legitimate inputs. */
+               if (N >= 2*1024*1024) RETURN(BZ_DATA_ERROR);
+               if (nextSym == BZ_RUNA) es = es + (0+1) * N; else
+               if (nextSym == BZ_RUNB) es = es + (1+1) * N;
+               N = N * 2;
+               GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym);
+            }
+               while (nextSym == BZ_RUNA || nextSym == BZ_RUNB);
+
+            es++;
+            uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ];
+            s->unzftab[uc] += es;
+
+            if (s->smallDecompress)
+               while (es > 0) {
+                  if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
+                  s->ll16[nblock] = (UInt16)uc;
+                  nblock++;
+                  es--;
+               }
+            else
+               while (es > 0) {
+                  if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
+                  s->tt[nblock] = (UInt32)uc;
+                  nblock++;
+                  es--;
+               };
+
+            continue;
+
+         } else {
+
+            if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
+
+            /*-- uc = MTF ( nextSym-1 ) --*/
+            {
+               Int32 ii, jj, kk, pp, lno, off;
+               UInt32 nn;
+               nn = (UInt32)(nextSym - 1);
+
+               if (nn < MTFL_SIZE) {
+                  /* avoid general-case expense */
+                  pp = s->mtfbase[0];
+                  uc = s->mtfa[pp+nn];
+                  while (nn > 3) {
+                     Int32 z = pp+nn;
+                     s->mtfa[(z)  ] = s->mtfa[(z)-1];
+                     s->mtfa[(z)-1] = s->mtfa[(z)-2];
+                     s->mtfa[(z)-2] = s->mtfa[(z)-3];
+                     s->mtfa[(z)-3] = s->mtfa[(z)-4];
+                     nn -= 4;
+                  }
+                  while (nn > 0) { 
+                     s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--; 
+                  };
+                  s->mtfa[pp] = uc;
+               } else { 
+                  /* general case */
+                  lno = nn / MTFL_SIZE;
+                  off = nn % MTFL_SIZE;
+                  pp = s->mtfbase[lno] + off;
+                  uc = s->mtfa[pp];
+                  while (pp > s->mtfbase[lno]) { 
+                     s->mtfa[pp] = s->mtfa[pp-1]; pp--; 
+                  };
+                  s->mtfbase[lno]++;
+                  while (lno > 0) {
+                     s->mtfbase[lno]--;
+                     s->mtfa[s->mtfbase[lno]] 
+                        = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1];
+                     lno--;
+                  }
+                  s->mtfbase[0]--;
+                  s->mtfa[s->mtfbase[0]] = uc;
+                  if (s->mtfbase[0] == 0) {
+                     kk = MTFA_SIZE-1;
+                     for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) {
+                        for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
+                           s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj];
+                           kk--;
+                        }
+                        s->mtfbase[ii] = kk + 1;
+                     }
+                  }
+               }
+            }
+            /*-- end uc = MTF ( nextSym-1 ) --*/
+
+            s->unzftab[s->seqToUnseq[uc]]++;
+            if (s->smallDecompress)
+               s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else
+               s->tt[nblock]   = (UInt32)(s->seqToUnseq[uc]);
+            nblock++;
+
+            GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym);
+            continue;
+         }
+      }
+
+      /* Now we know what nblock is, we can do a better sanity
+         check on s->origPtr.
+      */
+      if (s->origPtr < 0 || s->origPtr >= nblock)
+         RETURN(BZ_DATA_ERROR);
+
+      /*-- Set up cftab to facilitate generation of T^(-1) --*/
+      /* Check: unzftab entries in range. */
+      for (i = 0; i <= 255; i++) {
+         if (s->unzftab[i] < 0 || s->unzftab[i] > nblock)
+            RETURN(BZ_DATA_ERROR);
+      }
+      /* Actually generate cftab. */
+      s->cftab[0] = 0;
+      for (i = 1; i <= 256; i++) s->cftab[i] = s->unzftab[i-1];
+      for (i = 1; i <= 256; i++) s->cftab[i] += s->cftab[i-1];
+      /* Check: cftab entries in range. */
+      for (i = 0; i <= 256; i++) {
+         if (s->cftab[i] < 0 || s->cftab[i] > nblock) {
+            /* s->cftab[i] can legitimately be == nblock */
+            RETURN(BZ_DATA_ERROR);
+         }
+      }
+      /* Check: cftab entries non-descending. */
+      for (i = 1; i <= 256; i++) {
+         if (s->cftab[i-1] > s->cftab[i]) {
+            RETURN(BZ_DATA_ERROR);
+         }
+      }
+
+      s->state_out_len = 0;
+      s->state_out_ch  = 0;
+      BZ_INITIALISE_CRC ( s->calculatedBlockCRC );
+      s->state = BZ_X_OUTPUT;
+      if (s->verbosity >= 2) VPrintf0 ( "rt+rld" );
+
+      if (s->smallDecompress) {
+
+         /*-- Make a copy of cftab, used in generation of T --*/
+         for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i];
+
+         /*-- compute the T vector --*/
+         for (i = 0; i < nblock; i++) {
+            uc = (UChar)(s->ll16[i]);
+            SET_LL(i, s->cftabCopy[uc]);
+            s->cftabCopy[uc]++;
+         }
+
+         /*-- Compute T^(-1) by pointer reversal on T --*/
+         i = s->origPtr;
+         j = GET_LL(i);
+         do {
+            Int32 tmp = GET_LL(j);
+            SET_LL(j, i);
+            i = j;
+            j = tmp;
+         }
+            while (i != s->origPtr);
+
+         s->tPos = s->origPtr;
+         s->nblock_used = 0;
+         if (s->blockRandomised) {
+            BZ_RAND_INIT_MASK;
+            BZ_GET_SMALL(s->k0); s->nblock_used++;
+            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; 
+         } else {
+            BZ_GET_SMALL(s->k0); s->nblock_used++;
+         }
+
+      } else {
+
+         /*-- compute the T^(-1) vector --*/
+         for (i = 0; i < nblock; i++) {
+            uc = (UChar)(s->tt[i] & 0xff);
+            s->tt[s->cftab[uc]] |= (i << 8);
+            s->cftab[uc]++;
+         }
+
+         s->tPos = s->tt[s->origPtr] >> 8;
+         s->nblock_used = 0;
+         if (s->blockRandomised) {
+            BZ_RAND_INIT_MASK;
+            BZ_GET_FAST(s->k0); s->nblock_used++;
+            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; 
+         } else {
+            BZ_GET_FAST(s->k0); s->nblock_used++;
+         }
+
+      }
+
+      RETURN(BZ_OK);
+
+
+
+    endhdr_2:
+
+      GET_UCHAR(BZ_X_ENDHDR_2, uc);
+      if (uc != 0x72) RETURN(BZ_DATA_ERROR);
+      GET_UCHAR(BZ_X_ENDHDR_3, uc);
+      if (uc != 0x45) RETURN(BZ_DATA_ERROR);
+      GET_UCHAR(BZ_X_ENDHDR_4, uc);
+      if (uc != 0x38) RETURN(BZ_DATA_ERROR);
+      GET_UCHAR(BZ_X_ENDHDR_5, uc);
+      if (uc != 0x50) RETURN(BZ_DATA_ERROR);
+      GET_UCHAR(BZ_X_ENDHDR_6, uc);
+      if (uc != 0x90) RETURN(BZ_DATA_ERROR);
+
+      s->storedCombinedCRC = 0;
+      GET_UCHAR(BZ_X_CCRC_1, uc);
+      s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
+      GET_UCHAR(BZ_X_CCRC_2, uc);
+      s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
+      GET_UCHAR(BZ_X_CCRC_3, uc);
+      s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
+      GET_UCHAR(BZ_X_CCRC_4, uc);
+      s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
+
+      s->state = BZ_X_IDLE;
+      RETURN(BZ_STREAM_END);
+
+      default: AssertH ( False, 4001 );
+   }
+
+   AssertH ( False, 4002 );
+
+   save_state_and_return:
+
+   s->save_i           = i;
+   s->save_j           = j;
+   s->save_t           = t;
+   s->save_alphaSize   = alphaSize;
+   s->save_nGroups     = nGroups;
+   s->save_nSelectors  = nSelectors;
+   s->save_EOB         = EOB;
+   s->save_groupNo     = groupNo;
+   s->save_groupPos    = groupPos;
+   s->save_nextSym     = nextSym;
+   s->save_nblockMAX   = nblockMAX;
+   s->save_nblock      = nblock;
+   s->save_es          = es;
+   s->save_N           = N;
+   s->save_curr        = curr;
+   s->save_zt          = zt;
+   s->save_zn          = zn;
+   s->save_zvec        = zvec;
+   s->save_zj          = zj;
+   s->save_gSel        = gSel;
+   s->save_gMinlen     = gMinlen;
+   s->save_gLimit      = gLimit;
+   s->save_gBase       = gBase;
+   s->save_gPerm       = gPerm;
+
+   return retVal;   
+}
+
+
+/*-------------------------------------------------------------*/
+/*--- end                                      decompress.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/descrbz2.mms b/bzip2/descrbz2.mms
deleted file mode 100644 (file)
index 28bb986..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-!==========================================================================
-! MMS description file for bzip2 support in UnZip 6              2008-02-16
-!==========================================================================
-!
-! To build the LIBBZ2_NS library, edit the USER CUSTOMIZATION
-! lines below to taste, then do
-!      mms
-! or
-!      mmk
-! if you use Matt's Make (free MMS-compatible make utility).
-!
-! In all other cases where you want to explicitly specify a makefile target,
-! you have to specify your compiling environment, too. These are:
-!
-!      $ MMS/MACRO=(__ALPHA__=1)               ! Alpha AXP, (DEC C)
-!      $ MMS/MACRO=(__IA64__=1)                ! IA64, (DEC C)
-!      $ MMS/MACRO=(__DECC__=1)                ! VAX, using DEC C
-!      $ MMS/MACRO=(__FORCE_VAXC__=1)          ! VAX, prefering VAXC over DECC
-!      $ MMS/MACRO=(__VAXC__=1)                ! VAX, where VAXC is default
-!      $ MMS/MACRO=(__GNUC__=1)                ! VAX, using GNU C
-!
-
-! To delete all .OBJ, .OLB, .EXE and .HLP files,
-!      mms clean
-
-## The "DO_THE_BUILD" target does no longer work with current
-## releases of the MMS tool, sigh.
-#DO_THE_BUILD :
-#      @ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE").nes.""
-#      @ axp = (f$getsyi("HW_MODEL") .ge. 1024) .and. -
-#         (f$getsyi("HW_MODEL") .lt. 4096)
-#      @ i64 = f$getsyi("HW_MODEL") .ge. 4096
-#      @ macro = "/MACRO=("
-#.IFDEF CCOPTS
-#      @ macro = macro + """CCOPTS=$(CCOPTS)"","
-#.ENDIF
-#      @ if decc then macro = macro + "__DECC__=1,"
-#      @ if axp then macro = macro + "__ALPHA__=1,"
-#      @ if i64 then macro = macro + "__IA64__=1,"
-#      @ if .not.(axp .or. i64 .or. decc) then macro = macro + "__VAXC__=1,"
-#      @ macro = f$extract(0,f$length(macro)-1,macro)+ ")"
-#      $(MMS)$(MMSQUALIFIERS)'macro' DEFAULT
-
-# Define MMK architecture macros when using MMS.
-
-.IFDEF __MMK__                  # __MMK__
-.ELSE                           # __MMK__
-ALPHA_X_ALPHA = 1
-IA64_X_IA64 = 1
-VAX_X_VAX = 1
-.IFDEF $(MMS$ARCH_NAME)_X_ALPHA     # $(MMS$ARCH_NAME)_X_ALPHA
-__ALPHA__ = 1
-.ENDIF                              # $(MMS$ARCH_NAME)_X_ALPHA
-.IFDEF $(MMS$ARCH_NAME)_X_IA64      # $(MMS$ARCH_NAME)_X_IA64
-__IA64__ = 1
-.ENDIF                              # $(MMS$ARCH_NAME)_X_IA64
-.IFDEF $(MMS$ARCH_NAME)_X_VAX       # $(MMS$ARCH_NAME)_X_VAX
-__VAX__ = 1
-.ENDIF                              # $(MMS$ARCH_NAME)_X_VAX
-.ENDIF                          # __MMK__
-
-.IFDEF __ALPHA__                # __ALPHA__
-DEST = ALPHA
-#E = .AXP_EXE
-#O = .AXP_OBJ
-#A = .AXP_OLB
-.ELSE                           # __ALPHA__
-.IFDEF __IA64__                     # __IA64__
-DEST = IA64
-#E = .I64_EXE
-#O = .I64_OBJ
-#A = .I64_OLB
-.ELSE                               # __IA64__
-.IFDEF __DECC__                         # __DECC__
-DEST = VAX
-#E = .VAX_DECC_EXE
-#O = .VAX_DECC_OBJ
-#A = .VAX_DECC_OLB
-.ENDIF                                  # __DECC__
-.IFDEF __FORCE_VAXC__                   # __FORCE_VAXC__
-__VAXC__ = 1
-.ENDIF                                  # __FORCE_VAXC__
-.IFDEF __VAXC__                         # __VAXC__
-DEST = VAXV
-#E = .VAX_VAXC_EXE
-#O = .VAX_VAXC_OBJ
-#A = .VAX_VAXC_OLB
-.ENDIF                                  # __VAXC__
-.IFDEF __GNUC__                         # __GNUC__
-DEST = VAXG
-#E = .VAX_GNUC_EXE
-#O = .VAX_GNUC_OBJ
-#A = .VAX_GNUC_OLB
-.ENDIF                                  # __GNUC__
-.ENDIF                              # __IA64__
-.ENDIF                          # __ALPHA__
-.IFDEF O                        # O
-.ELSE                           # O
-!If EXE and OBJ extensions aren't defined, define them
-E = .EXE
-O = .OBJ
-A = .OLB
-.ENDIF                          # O
-
-.IFDEF SRCDIR
-.ELSE
-SRCDIR = []
-.ENDIF
-.IFDEF DSTDIR                   # DSTDIR
-.ELSE                           # DSTDIR
-.IFDEF DEST                       # DEST
-DSTDIR = [.$(DEST)]
-.ELSE                             # DEST
-DSTDIR = []
-.ENDIF                            # DEST
-.ENDIF                          # DSTDIR
-
-!!!!!!!!!!!!!!!!!!!!!!!!!!! USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! add any common optional preprocessor flags (macros) here
-! (do not forget a trailing comma!!):
-COMMON_DEFS =
-!!!!!!!!!!!!!!!!!!!!!!!! END OF USER CUSTOMIZATION !!!!!!!!!!!!!!!!!!!!!!!!
-
-.IFDEF __GNUC__
-CC = gcc
-LIBS = ,GNU_CC:[000000]GCCLIB.OLB/LIB
-.ELSE
-CC = cc
-LIBS =
-.ENDIF
-
-CFLAGS = /NOLIST
-
-OPTFILE = sys$disk:[.vms]vaxcshr.opt
-
-.IFDEF __ALPHA__                # __ALPHA__
-CC_OPTIONS = /STANDARD=RELAX/PREFIX=ALL/ANSI/NAMES=(AS_IS)
-CC_DEFS =
-.ELSE                           # __ALPHA__
-.IFDEF __IA64__                     # __IA64__
-CC_OPTIONS = /STANDARD=RELAX/PREFIX=ALL/ANSI/NAMES=(AS_IS)
-CC_DEFS =
-.ELSE                               # __IA64__
-.IFDEF __DECC__                         # __DECC__
-CC_OPTIONS = /DECC/STANDARD=RELAX/PREFIX=ALL/NAMES=(AS_IS)
-CC_DEFS =
-.ELSE                                   # __DECC__
-.IFDEF __FORCE_VAXC__                       # __FORCE_VAXC__
-!Select VAXC on systems where DEC C exists
-CC_OPTIONS = /VAXC
-.ELSE                                       # __FORCE_VAXC__
-!No flag allowed/needed on a pure VAXC system
-CC_OPTIONS =
-.ENDIF                                      # __FORCE_VAXC__
-CC_DEFS =
-.ENDIF                                  # __DECC__
-.ENDIF                              # __IA64__
-.ENDIF                          # __ALPHA__
-
-!
-! The .FIRST target is needed only if we're serious about building,
-! and then, only if BZIP2 support was requested.
-!
-.IFDEF MMSTARGETS               # MMSTARGETS
-.FIRST
-       @ write sys$output "   Destination: $(DSTDIR)"
-       @ write sys$output ""
-       if ("$(DEST)" .nes. "") then -
-        if (f$search("$(DEST).DIR;1") .eqs. "") then -
-         create /directory $(DSTDIR)
-.ENDIF                          # MMSTARGETS
-CC_DEFS2 =
-CFLAGS_INCL = /INCLUDE = []
-
-.IFDEF __DEBUG__
-CDEB = /DEBUG/NOOPTIMIZE
-.ELSE
-CDEB =
-.ENDIF
-
-CFLAGS_ALL  = $(CC_OPTIONS) $(CFLAGS) $(CDEB) $(CFLAGS_INCL) -
-              /def=($(CC_DEFS) $(COMMON_DEFS) BZ_NO_STDIO, VMS) -
-              $(CCOPTS)
-
-
-OBJBZ2LIB = \
- $(DSTDIR)blocksort$(O), \
- $(DSTDIR)huffman$(O), \
- $(DSTDIR)crctable$(O), \
- $(DSTDIR)randtable$(O), \
- $(DSTDIR)compress$(O), \
- $(DSTDIR)decompress$(O), \
- $(DSTDIR)bzlib$(O)
-
-OLBBZ2 = $(DSTDIR)LIBBZ2_NS$(A)
-
-BZIP2_H = $(SRCDIR)bzlib.h $(SRCDIR)bzlib_private.h
-
-!!!!!!!!!!!!!!!!!!! override default rules: !!!!!!!!!!!!!!!!!!!
-.suffixes :
-.suffixes : .ANL $(E) $(A) .MLB .HLB .TLB .FLB $(O) -
-           .FORM .BLI .B32 .C .c .COB -
-           .FOR .BAS .B16 .PLI .PEN .PAS .MAC .MAR .M64 .CLD .MSG .COR .DBL -
-           .RPG .SCN .IFDL .RBA .RC .RCO .RFO .RPA .SC .SCO .SFO .SPA .SPL -
-           .SQLADA .SQLMOD .RGK .RGC .MEM .RNO .HLP .RNH .L32 .REQ .R32 -
-           .L16 .R16 .TXT .H .FRM .MMS .DDL .COM .DAT .OPT .CDO .SDML .ADF -
-           .GDF .LDF .MDF .RDF .TDF
-
-$(O)$(A) :
-       If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET)
-       $(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$SOURCE)
-
-.c$(O) :
-       $(CC) $(CFLAGS_ALL) /OBJ=$(MMS$TARGET) $(MMS$SOURCE)
-
-!!!!!!!!!!!!!!!!!! here starts the bzip2 specific part !!!!!!!!!!!
-
-DEFAULT default :      CHK_DESTDIR $(OLBBZ2)
-       @       !       Do nothing.
-
-CLEAN.COM clean.com :
-       @ open/write tmp $(MMS$TARGET)
-       @ write tmp "$!"
-       @ write tmp "$! Clean.com --    procedure to delete files. It always returns success"
-       @ write tmp "$!                 status despite any error or warnings. Also it extracts"
-       @ write tmp "$!                 filename from MMS ""module=file"" format."
-       @ write tmp "$!"
-       @ write tmp "$ on control_y then goto ctly"
-       @ write tmp "$ if p1.eqs."""" then exit 1"
-       @ write tmp "$ i = -1"
-       @ write tmp "$scan_list:"
-       @ write tmp "$  i = i+1"
-       @ write tmp "$  item = f$elem(i,"","",p1)"
-       @ write tmp "$  if item.eqs."""" then goto scan_list"
-       @ write tmp "$  if item.eqs."","" then goto done                ! End of list"
-       @ write tmp "$  item = f$edit(item,""trim"")            ! Clean of blanks"
-       @ write tmp "$  wild = f$elem(1,""="",item)"
-       @ write tmp "$  show sym wild"
-       @ write tmp "$  if wild.eqs.""="" then wild = f$elem(0,""="",item)"
-       @ write tmp "$  vers = f$parse(wild,,,""version"",""syntax_only"")"
-       @ write tmp "$  if vers.eqs."";"" then wild = wild - "";"" + "";*"""
-       @ write tmp "$scan:"
-       @ write tmp "$          f = f$search(wild)"
-       @ write tmp "$          if f.eqs."""" then goto scan_list"
-       @ write tmp "$          on error then goto err"
-       @ write tmp "$          on warning then goto warn"
-       @ write tmp "$          delete/log 'f'"
-       @ write tmp "$warn:"
-       @ write tmp "$err:"
-       @ write tmp "$          goto scan"
-       @ write tmp "$done:"
-       @ write tmp "$ctly:"
-       @ write tmp "$  exit 1"
-       @ close tmp
-
-CLEAN clean : clean.com
-       @clean "$(OBJBZ2LIB)"
-       @clean "$(OLBBZ2)"
-       @- delete/noconfirm/nolog clean.com;*
-        @- if ("$(DEST).dir" .nes. "") then -
-          if (f$search("$(DEST).dir") .nes. "") then -
-           set protect=w:d $(DEST).dir;*
-        @- if ("$(DEST).dir" .nes. "") then -
-          if (f$search("$(DEST).dir") .nes. "") then -
-           delete/noconfirm $(DEST).dir;*
-
-CHK_DESTDIR chk_destdir :
-       @ If ("$(DEST)" .NES. "") Then -
-          If "''F$Search("$(DEST).DIR;1")'" .EQS. "" Then -
-           Create /directory $(DSTDIR)
-
-$(OLBBZ2)      : $(OBJBZ2LIB)
-       If "''F$Search("$(MMS$TARGET)")'" .EQS. "" Then $(LIBR)/Create $(MMS$TARGET)
-       $(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$CHANGED_LIST)
-       @ write sys$output "$(MMS$TARGET) updated."
-
-$(OBJBZ2LIB)   : $(BZIP2_H)
-
-$(DSTDIR)blocksort$(O) : $(SRCDIR)blocksort.c
-$(DSTDIR)huffman$(O)   : $(SRCDIR)huffman.c
-$(DSTDIR)crctable$(O)  : $(SRCDIR)crctable.c
-$(DSTDIR)randtable$(O) : $(SRCDIR)randtable.c
-$(DSTDIR)compress$(O)  : $(SRCDIR)compress.c
-$(DSTDIR)decompress$(O)        : $(SRCDIR)decompress.c
-$(DSTDIR)bzlib$(O)     : $(SRCDIR)bzlib.c
diff --git a/bzip2/dlltest.c b/bzip2/dlltest.c
new file mode 100644 (file)
index 0000000..03fa146
--- /dev/null
@@ -0,0 +1,175 @@
+/*\r
+   minibz2\r
+      libbz2.dll test program.\r
+      by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)\r
+      This file is Public Domain.  Welcome any email to me.\r
+\r
+   usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]\r
+*/\r
+\r
+#define BZ_IMPORT\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include "bzlib.h"\r
+#ifdef _WIN32\r
+#include <io.h>\r
+#endif\r
+\r
+\r
+#ifdef _WIN32\r
+\r
+#define BZ2_LIBNAME "libbz2-1.0.2.DLL" \r
+\r
+#include <windows.h>\r
+static int BZ2DLLLoaded = 0;\r
+static HINSTANCE BZ2DLLhLib;\r
+int BZ2DLLLoadLibrary(void)\r
+{\r
+   HINSTANCE hLib;\r
+\r
+   if(BZ2DLLLoaded==1){return 0;}\r
+   hLib=LoadLibrary(BZ2_LIBNAME);\r
+   if(hLib == NULL){\r
+      fprintf(stderr,"Can't load %s\n",BZ2_LIBNAME);\r
+      return -1;\r
+   }\r
+   BZ2_bzlibVersion=GetProcAddress(hLib,"BZ2_bzlibVersion");\r
+   BZ2_bzopen=GetProcAddress(hLib,"BZ2_bzopen");\r
+   BZ2_bzdopen=GetProcAddress(hLib,"BZ2_bzdopen");\r
+   BZ2_bzread=GetProcAddress(hLib,"BZ2_bzread");\r
+   BZ2_bzwrite=GetProcAddress(hLib,"BZ2_bzwrite");\r
+   BZ2_bzflush=GetProcAddress(hLib,"BZ2_bzflush");\r
+   BZ2_bzclose=GetProcAddress(hLib,"BZ2_bzclose");\r
+   BZ2_bzerror=GetProcAddress(hLib,"BZ2_bzerror");\r
+\r
+   if (!BZ2_bzlibVersion || !BZ2_bzopen || !BZ2_bzdopen\r
+       || !BZ2_bzread || !BZ2_bzwrite || !BZ2_bzflush\r
+       || !BZ2_bzclose || !BZ2_bzerror) {\r
+      fprintf(stderr,"GetProcAddress failed.\n");\r
+      return -1;\r
+   }\r
+   BZ2DLLLoaded=1;\r
+   BZ2DLLhLib=hLib;\r
+   return 0;\r
+\r
+}\r
+int BZ2DLLFreeLibrary(void)\r
+{\r
+   if(BZ2DLLLoaded==0){return 0;}\r
+   FreeLibrary(BZ2DLLhLib);\r
+   BZ2DLLLoaded=0;\r
+}\r
+#endif /* WIN32 */\r
+\r
+void usage(void)\r
+{\r
+   puts("usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]");\r
+}\r
+\r
+int main(int argc,char *argv[])\r
+{\r
+   int decompress = 0;\r
+   int level = 9;\r
+   char *fn_r = NULL;\r
+   char *fn_w = NULL;\r
+\r
+#ifdef _WIN32\r
+   if(BZ2DLLLoadLibrary()<0){\r
+      fprintf(stderr,"Loading of %s failed.  Giving up.\n", BZ2_LIBNAME);\r
+      exit(1);\r
+   }\r
+   printf("Loading of %s succeeded.  Library version is %s.\n",\r
+          BZ2_LIBNAME, BZ2_bzlibVersion() );\r
+#endif\r
+   while(++argv,--argc){\r
+      if(**argv =='-' || **argv=='/'){\r
+         char *p;\r
+\r
+         for(p=*argv+1;*p;p++){\r
+            if(*p=='d'){\r
+               decompress = 1;\r
+            }else if('1'<=*p && *p<='9'){\r
+               level = *p - '0';\r
+            }else{\r
+               usage();\r
+               exit(1);\r
+            }\r
+         }\r
+      }else{\r
+         break;\r
+      }\r
+   }\r
+   if(argc>=1){\r
+      fn_r = *argv;\r
+      argc--;argv++;\r
+   }else{\r
+      fn_r = NULL;\r
+   }\r
+   if(argc>=1){\r
+      fn_w = *argv;\r
+      argc--;argv++;\r
+   }else{\r
+      fn_w = NULL;\r
+   }\r
+   {\r
+      int len;\r
+      char buff[0x1000];\r
+      char mode[10];\r
+\r
+      if(decompress){\r
+         BZFILE *BZ2fp_r = NULL;\r
+         FILE *fp_w = NULL;\r
+\r
+         if(fn_w){\r
+            if((fp_w = fopen(fn_w,"wb"))==NULL){\r
+               printf("can't open [%s]\n",fn_w);\r
+               perror("reason:");\r
+               exit(1);\r
+            }\r
+         }else{\r
+            fp_w = stdout;\r
+         }\r
+         if((fn_r == NULL && (BZ2fp_r = BZ2_bzdopen(fileno(stdin),"rb"))==NULL)\r
+            || (fn_r != NULL && (BZ2fp_r = BZ2_bzopen(fn_r,"rb"))==NULL)){\r
+            printf("can't bz2openstream\n");\r
+            exit(1);\r
+         }\r
+         while((len=BZ2_bzread(BZ2fp_r,buff,0x1000))>0){\r
+            fwrite(buff,1,len,fp_w);\r
+         }\r
+         BZ2_bzclose(BZ2fp_r);\r
+         if(fp_w != stdout) fclose(fp_w);\r
+      }else{\r
+         BZFILE *BZ2fp_w = NULL;\r
+         FILE *fp_r = NULL;\r
+\r
+         if(fn_r){\r
+            if((fp_r = fopen(fn_r,"rb"))==NULL){\r
+               printf("can't open [%s]\n",fn_r);\r
+               perror("reason:");\r
+               exit(1);\r
+            }\r
+         }else{\r
+            fp_r = stdin;\r
+         }\r
+         mode[0]='w';\r
+         mode[1] = '0' + level;\r
+         mode[2] = '\0';\r
+\r
+         if((fn_w == NULL && (BZ2fp_w = BZ2_bzdopen(fileno(stdout),mode))==NULL)\r
+            || (fn_w !=NULL && (BZ2fp_w = BZ2_bzopen(fn_w,mode))==NULL)){\r
+            printf("can't bz2openstream\n");\r
+            exit(1);\r
+         }\r
+         while((len=fread(buff,1,0x1000,fp_r))>0){\r
+            BZ2_bzwrite(BZ2fp_w,buff,len);\r
+         }\r
+         BZ2_bzclose(BZ2fp_w);\r
+         if(fp_r!=stdin)fclose(fp_r);\r
+      }\r
+   }\r
+#ifdef _WIN32\r
+   BZ2DLLFreeLibrary();\r
+#endif\r
+   return 0;\r
+}\r
diff --git a/bzip2/dlltest.dsp b/bzip2/dlltest.dsp
new file mode 100644 (file)
index 0000000..4b1615e
--- /dev/null
@@ -0,0 +1,93 @@
+# Microsoft Developer Studio Project File - Name="dlltest" - Package Owner=<4>\r
+# Microsoft Developer Studio Generated Build File, Format Version 5.00\r
+# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
+\r
+# TARGTYPE "Win32 (x86) Console Application" 0x0103\r
+\r
+CFG=dlltest - Win32 Debug\r
+!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "dlltest.mak".\r
+!MESSAGE \r
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "dlltest.mak" CFG="dlltest - Win32 Debug"\r
+!MESSAGE \r
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
+!MESSAGE \r
+!MESSAGE "dlltest - Win32 Release" ("Win32 (x86) Console Application" \97p)\r
+!MESSAGE "dlltest - Win32 Debug" ("Win32 (x86) Console Application" \97p)\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+CPP=cl.exe\r
+RSC=rc.exe\r
+\r
+!IF  "$(CFG)" == "dlltest - Win32 Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "Release"\r
+# PROP BASE Intermediate_Dir "Release"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "Release"\r
+# PROP Intermediate_Dir "Release"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
+# ADD BASE RSC /l 0x411 /d "NDEBUG"\r
+# ADD RSC /l 0x411 /d "NDEBUG"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"minibz2.exe"\r
+\r
+!ELSEIF  "$(CFG)" == "dlltest - Win32 Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "dlltest_"\r
+# PROP BASE Intermediate_Dir "dlltest_"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "dlltest_"\r
+# PROP Intermediate_Dir "dlltest_"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
+# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
+# ADD BASE RSC /l 0x411 /d "_DEBUG"\r
+# ADD RSC /l 0x411 /d "_DEBUG"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"minibz2.exe" /pdbtype:sept\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "dlltest - Win32 Release"\r
+# Name "dlltest - Win32 Debug"\r
+# Begin Source File\r
+\r
+SOURCE=.\bzlib.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\dlltest.c\r
+# End Source File\r
+# End Target\r
+# End Project\r
diff --git a/bzip2/entities.xml b/bzip2/entities.xml
new file mode 100644 (file)
index 0000000..4b28f34
--- /dev/null
@@ -0,0 +1,9 @@
+<!-- misc. strings -->
+<!ENTITY bz-url "http://www.bzip.org">
+<!ENTITY bz-email "jseward@bzip.org">
+<!ENTITY bz-lifespan "1996-2010">
+
+<!ENTITY bz-version "1.0.6">
+<!ENTITY bz-date "6 September 2010">
+
+<!ENTITY manual-title "bzip2 Manual">
diff --git a/bzip2/format.pl b/bzip2/format.pl
new file mode 100644 (file)
index 0000000..f169fd9
--- /dev/null
@@ -0,0 +1,68 @@
+#!/usr/bin/perl -w
+#
+# ------------------------------------------------------------------
+# This file is part of bzip2/libbzip2, a program and library for
+# lossless, block-sorting data compression.
+#
+# bzip2/libbzip2 version 1.0.6 of 6 September 2010
+# Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+#
+# Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+# README file.
+#
+# This program is released under the terms of the license contained
+# in the file LICENSE.
+# ------------------------------------------------------------------
+#
+use strict;
+
+# get command line values:
+if ( $#ARGV !=1 ) {
+    die "Usage:  $0 xml_infile xml_outfile\n";
+}
+
+my $infile = shift;
+# check infile exists
+die "Can't find file \"$infile\""
+  unless -f $infile;
+# check we can read infile
+if (! -r $infile) {
+    die "Can't read input $infile\n";
+}
+# check we can open infile
+open( INFILE,"<$infile" ) or 
+    die "Can't input $infile $!";
+
+#my $outfile = 'fmt-manual.xml';
+my $outfile = shift;
+#print "Infile: $infile, Outfile: $outfile\n";
+# check we can write to outfile
+open( OUTFILE,">$outfile" ) or 
+    die "Can't output $outfile $! for writing";
+
+my ($prev, $curr, $str);
+$prev = ''; $curr = '';
+while ( <INFILE> ) {
+
+               print OUTFILE $prev;
+    $prev = $curr;
+    $curr = $_;
+    $str = '';
+
+    if ( $prev =~ /<programlisting>$|<screen>$/ ) {
+        chomp $prev;
+        $curr = join( '', $prev, "<![CDATA[", $curr );
+                               $prev = '';
+        next;
+    }
+    elsif ( $curr =~ /<\/programlisting>|<\/screen>/ ) {
+        chomp $prev;
+        $curr = join( '', $prev, "]]>", $curr );
+                               $prev = '';
+        next;
+    }
+}
+print OUTFILE $curr;
+close INFILE;
+close OUTFILE;
+exit;
diff --git a/bzip2/huffman.c b/bzip2/huffman.c
new file mode 100644 (file)
index 0000000..2283fdb
--- /dev/null
@@ -0,0 +1,205 @@
+
+/*-------------------------------------------------------------*/
+/*--- Huffman coding low-level stuff                        ---*/
+/*---                                             huffman.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#include "bzlib_private.h"
+
+/*---------------------------------------------------*/
+#define WEIGHTOF(zz0)  ((zz0) & 0xffffff00)
+#define DEPTHOF(zz1)   ((zz1) & 0x000000ff)
+#define MYMAX(zz2,zz3) ((zz2) > (zz3) ? (zz2) : (zz3))
+
+#define ADDWEIGHTS(zw1,zw2)                           \
+   (WEIGHTOF(zw1)+WEIGHTOF(zw2)) |                    \
+   (1 + MYMAX(DEPTHOF(zw1),DEPTHOF(zw2)))
+
+#define UPHEAP(z)                                     \
+{                                                     \
+   Int32 zz, tmp;                                     \
+   zz = z; tmp = heap[zz];                            \
+   while (weight[tmp] < weight[heap[zz >> 1]]) {      \
+      heap[zz] = heap[zz >> 1];                       \
+      zz >>= 1;                                       \
+   }                                                  \
+   heap[zz] = tmp;                                    \
+}
+
+#define DOWNHEAP(z)                                   \
+{                                                     \
+   Int32 zz, yy, tmp;                                 \
+   zz = z; tmp = heap[zz];                            \
+   while (True) {                                     \
+      yy = zz << 1;                                   \
+      if (yy > nHeap) break;                          \
+      if (yy < nHeap &&                               \
+          weight[heap[yy+1]] < weight[heap[yy]])      \
+         yy++;                                        \
+      if (weight[tmp] < weight[heap[yy]]) break;      \
+      heap[zz] = heap[yy];                            \
+      zz = yy;                                        \
+   }                                                  \
+   heap[zz] = tmp;                                    \
+}
+
+
+/*---------------------------------------------------*/
+void BZ2_hbMakeCodeLengths ( UChar *len, 
+                             Int32 *freq,
+                             Int32 alphaSize,
+                             Int32 maxLen )
+{
+   /*--
+      Nodes and heap entries run from 1.  Entry 0
+      for both the heap and nodes is a sentinel.
+   --*/
+   Int32 nNodes, nHeap, n1, n2, i, j, k;
+   Bool  tooLong;
+
+   Int32 heap   [ BZ_MAX_ALPHA_SIZE + 2 ];
+   Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ];
+   Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ]; 
+
+   for (i = 0; i < alphaSize; i++)
+      weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8;
+
+   while (True) {
+
+      nNodes = alphaSize;
+      nHeap = 0;
+
+      heap[0] = 0;
+      weight[0] = 0;
+      parent[0] = -2;
+
+      for (i = 1; i <= alphaSize; i++) {
+         parent[i] = -1;
+         nHeap++;
+         heap[nHeap] = i;
+         UPHEAP(nHeap);
+      }
+
+      AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 );
+   
+      while (nHeap > 1) {
+         n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
+         n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
+         nNodes++;
+         parent[n1] = parent[n2] = nNodes;
+         weight[nNodes] = ADDWEIGHTS(weight[n1], weight[n2]);
+         parent[nNodes] = -1;
+         nHeap++;
+         heap[nHeap] = nNodes;
+         UPHEAP(nHeap);
+      }
+
+      AssertH( nNodes < (BZ_MAX_ALPHA_SIZE * 2), 2002 );
+
+      tooLong = False;
+      for (i = 1; i <= alphaSize; i++) {
+         j = 0;
+         k = i;
+         while (parent[k] >= 0) { k = parent[k]; j++; }
+         len[i-1] = j;
+         if (j > maxLen) tooLong = True;
+      }
+      
+      if (! tooLong) break;
+
+      /* 17 Oct 04: keep-going condition for the following loop used
+         to be 'i < alphaSize', which missed the last element,
+         theoretically leading to the possibility of the compressor
+         looping.  However, this count-scaling step is only needed if
+         one of the generated Huffman code words is longer than
+         maxLen, which up to and including version 1.0.2 was 20 bits,
+         which is extremely unlikely.  In version 1.0.3 maxLen was
+         changed to 17 bits, which has minimal effect on compression
+         ratio, but does mean this scaling step is used from time to
+         time, enough to verify that it works.
+
+         This means that bzip2-1.0.3 and later will only produce
+         Huffman codes with a maximum length of 17 bits.  However, in
+         order to preserve backwards compatibility with bitstreams
+         produced by versions pre-1.0.3, the decompressor must still
+         handle lengths of up to 20. */
+
+      for (i = 1; i <= alphaSize; i++) {
+         j = weight[i] >> 8;
+         j = 1 + (j / 2);
+         weight[i] = j << 8;
+      }
+   }
+}
+
+
+/*---------------------------------------------------*/
+void BZ2_hbAssignCodes ( Int32 *code,
+                         UChar *length,
+                         Int32 minLen,
+                         Int32 maxLen,
+                         Int32 alphaSize )
+{
+   Int32 n, vec, i;
+
+   vec = 0;
+   for (n = minLen; n <= maxLen; n++) {
+      for (i = 0; i < alphaSize; i++)
+         if (length[i] == n) { code[i] = vec; vec++; };
+      vec <<= 1;
+   }
+}
+
+
+/*---------------------------------------------------*/
+void BZ2_hbCreateDecodeTables ( Int32 *limit,
+                                Int32 *base,
+                                Int32 *perm,
+                                UChar *length,
+                                Int32 minLen,
+                                Int32 maxLen,
+                                Int32 alphaSize )
+{
+   Int32 pp, i, j, vec;
+
+   pp = 0;
+   for (i = minLen; i <= maxLen; i++)
+      for (j = 0; j < alphaSize; j++)
+         if (length[j] == i) { perm[pp] = j; pp++; };
+
+   for (i = 0; i < BZ_MAX_CODE_LEN; i++) base[i] = 0;
+   for (i = 0; i < alphaSize; i++) base[length[i]+1]++;
+
+   for (i = 1; i < BZ_MAX_CODE_LEN; i++) base[i] += base[i-1];
+
+   for (i = 0; i < BZ_MAX_CODE_LEN; i++) limit[i] = 0;
+   vec = 0;
+
+   for (i = minLen; i <= maxLen; i++) {
+      vec += (base[i+1] - base[i]);
+      limit[i] = vec-1;
+      vec <<= 1;
+   }
+   for (i = minLen + 1; i <= maxLen; i++)
+      base[i] = ((limit[i-1] + 1) << 1) - base[i];
+}
+
+
+/*-------------------------------------------------------------*/
+/*--- end                                         huffman.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/libbz2.def b/bzip2/libbz2.def
new file mode 100644 (file)
index 0000000..2dc0dd8
--- /dev/null
@@ -0,0 +1,27 @@
+LIBRARY                        LIBBZ2\r
+DESCRIPTION            "libbzip2: library for data compression"\r
+EXPORTS\r
+       BZ2_bzCompressInit\r
+       BZ2_bzCompress\r
+       BZ2_bzCompressEnd\r
+       BZ2_bzDecompressInit\r
+       BZ2_bzDecompress\r
+       BZ2_bzDecompressEnd\r
+       BZ2_bzReadOpen\r
+       BZ2_bzReadClose\r
+       BZ2_bzReadGetUnused\r
+       BZ2_bzRead\r
+       BZ2_bzWriteOpen\r
+       BZ2_bzWrite\r
+       BZ2_bzWriteClose\r
+       BZ2_bzWriteClose64\r
+       BZ2_bzBuffToBuffCompress\r
+       BZ2_bzBuffToBuffDecompress\r
+       BZ2_bzlibVersion\r
+       BZ2_bzopen\r
+       BZ2_bzdopen\r
+       BZ2_bzread\r
+       BZ2_bzwrite\r
+       BZ2_bzflush\r
+       BZ2_bzclose\r
+       BZ2_bzerror\r
diff --git a/bzip2/libbz2.dsp b/bzip2/libbz2.dsp
new file mode 100644 (file)
index 0000000..a21a20f
--- /dev/null
@@ -0,0 +1,130 @@
+# Microsoft Developer Studio Project File - Name="libbz2" - Package Owner=<4>\r
+# Microsoft Developer Studio Generated Build File, Format Version 5.00\r
+# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
+\r
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102\r
+\r
+CFG=libbz2 - Win32 Debug\r
+!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "libbz2.mak".\r
+!MESSAGE \r
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "libbz2.mak" CFG="libbz2 - Win32 Debug"\r
+!MESSAGE \r
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
+!MESSAGE \r
+!MESSAGE "libbz2 - Win32 Release" ("Win32 (x86) Dynamic-Link Library" \97p)\r
+!MESSAGE "libbz2 - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" \97p)\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+CPP=cl.exe\r
+MTL=midl.exe\r
+RSC=rc.exe\r
+\r
+!IF  "$(CFG)" == "libbz2 - Win32 Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "Release"\r
+# PROP BASE Intermediate_Dir "Release"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "Release"\r
+# PROP Intermediate_Dir "Release"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c\r
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32\r
+# ADD BASE RSC /l 0x411 /d "NDEBUG"\r
+# ADD RSC /l 0x411 /d "NDEBUG"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"libbz2.dll"\r
+\r
+!ELSEIF  "$(CFG)" == "libbz2 - Win32 Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "Debug"\r
+# PROP BASE Intermediate_Dir "Debug"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "Debug"\r
+# PROP Intermediate_Dir "Debug"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c\r
+# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32\r
+# ADD BASE RSC /l 0x411 /d "_DEBUG"\r
+# ADD RSC /l 0x411 /d "_DEBUG"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept\r
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"libbz2.dll" /pdbtype:sept\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "libbz2 - Win32 Release"\r
+# Name "libbz2 - Win32 Debug"\r
+# Begin Source File\r
+\r
+SOURCE=.\blocksort.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\bzlib.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\bzlib.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\bzlib_private.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\compress.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\crctable.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\decompress.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\huffman.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libbz2.def\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\randtable.c\r
+# End Source File\r
+# End Target\r
+# End Project\r
diff --git a/bzip2/makefile.msc b/bzip2/makefile.msc
new file mode 100644 (file)
index 0000000..799a18a
--- /dev/null
@@ -0,0 +1,63 @@
+# Makefile for Microsoft Visual C++ 6.0\r
+# usage: nmake -f makefile.msc\r
+# K.M. Syring (syring@gsf.de)\r
+# Fixed up by JRS for bzip2-0.9.5d release.\r
+\r
+CC=cl\r
+CFLAGS= -DWIN32 -MD -Ox -D_FILE_OFFSET_BITS=64 -nologo\r
+\r
+OBJS= blocksort.obj  \\r
+      huffman.obj    \\r
+      crctable.obj   \\r
+      randtable.obj  \\r
+      compress.obj   \\r
+      decompress.obj \\r
+      bzlib.obj\r
+\r
+all: lib bzip2 test\r
+\r
+bzip2: lib\r
+       $(CC) $(CFLAGS) -o bzip2 bzip2.c libbz2.lib setargv.obj\r
+       $(CC) $(CFLAGS) -o bzip2recover bzip2recover.c\r
+\r
+lib: $(OBJS)\r
+       lib /out:libbz2.lib $(OBJS)\r
+\r
+test: bzip2\r
+       type words1\r
+       .\\bzip2 -1  < sample1.ref > sample1.rb2\r
+       .\\bzip2 -2  < sample2.ref > sample2.rb2\r
+       .\\bzip2 -3  < sample3.ref > sample3.rb2\r
+       .\\bzip2 -d  < sample1.bz2 > sample1.tst\r
+       .\\bzip2 -d  < sample2.bz2 > sample2.tst\r
+       .\\bzip2 -ds < sample3.bz2 > sample3.tst\r
+       @echo All six of the fc's should find no differences.\r
+       @echo If fc finds an error on sample3.bz2, this could be\r
+       @echo because WinZip's 'TAR file smart CR/LF conversion'\r
+       @echo is too clever for its own good.  Disable this option.\r
+       @echo The correct size for sample3.ref is 120,244.  If it\r
+       @echo is 150,251, WinZip has messed it up.\r
+       fc sample1.bz2 sample1.rb2 \r
+       fc sample2.bz2 sample2.rb2\r
+       fc sample3.bz2 sample3.rb2\r
+       fc sample1.tst sample1.ref\r
+       fc sample2.tst sample2.ref\r
+       fc sample3.tst sample3.ref\r
+\r
+\r
+\r
+clean: \r
+       del *.obj\r
+       del libbz2.lib \r
+       del bzip2.exe\r
+       del bzip2recover.exe\r
+       del sample1.rb2 \r
+       del sample2.rb2 \r
+       del sample3.rb2\r
+       del sample1.tst \r
+       del sample2.tst\r
+       del sample3.tst\r
+\r
+.c.obj: \r
+       $(CC) $(CFLAGS) -c $*.c -o $*.obj\r
+\r
diff --git a/bzip2/manual.html b/bzip2/manual.html
new file mode 100644 (file)
index 0000000..f59427f
--- /dev/null
@@ -0,0 +1,2540 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>bzip2 and libbzip2, version 1.0.6</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<style type="text/css" media="screen">/* Colours:
+#74240f  dark brown      h1, h2, h3, h4
+#336699  medium blue     links
+#339999  turquoise       link hover colour
+#202020  almost black    general text
+#761596  purple          md5sum text
+#626262  dark gray       pre border
+#eeeeee  very light gray pre background
+#f2f2f9  very light blue nav table background
+#3366cc  medium blue     nav table border
+*/
+
+a, a:link, a:visited, a:active { color: #336699; }
+a:hover { color: #339999; }
+
+body { font: 80%/126% sans-serif; }
+h1, h2, h3, h4 { color: #74240f; }
+
+dt { color: #336699; font-weight: bold }
+dd { 
+ margin-left: 1.5em; 
+ padding-bottom: 0.8em;
+}
+
+/* -- ruler -- */
+div.hr_blue { 
+  height:  3px; 
+  background:#ffffff url("/images/hr_blue.png") repeat-x; }
+div.hr_blue hr { display:none; }
+
+/* release styles */
+#release p { margin-top: 0.4em; }
+#release .md5sum { color: #761596; }
+
+
+/* ------ styles for docs|manuals|howto ------ */
+/* -- lists -- */
+ul  { 
+ margin:     0px 4px 16px 16px;
+ padding:    0px;
+ list-style: url("/images/li-blue.png"); 
+}
+ul li { 
+ margin-bottom: 10px;
+}
+ul ul  { 
+ list-style-type:  none; 
+ list-style-image: none; 
+ margin-left:      0px; 
+}
+
+/* header / footer nav tables */
+table.nav {
+ border:     solid 1px #3366cc;
+ background: #f2f2f9;
+ background-color: #f2f2f9;
+ margin-bottom: 0.5em;
+}
+/* don't have underlined links in chunked nav menus */
+table.nav a { text-decoration: none; }
+table.nav a:hover { text-decoration: underline; }
+table.nav td { font-size: 85%; }
+
+code, tt, pre { font-size: 120%; }
+code, tt { color: #761596; }
+
+div.literallayout, pre.programlisting, pre.screen {
+ color:      #000000;
+ padding:    0.5em;
+ background: #eeeeee;
+ border:     1px solid #626262;
+ background-color: #eeeeee;
+ margin: 4px 0px 4px 0px; 
+}
+</style>
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book" title="bzip2 and libbzip2, version 1.0.6">
+<div class="titlepage">
+<div>
+<div><h1 class="title">
+<a name="userman"></a>bzip2 and libbzip2, version 1.0.6</h1></div>
+<div><h2 class="subtitle">A program and library for data compression</h2></div>
+<div><div class="authorgroup"><div class="author">
+<h3 class="author">
+<span class="firstname">Julian</span> <span class="surname">Seward</span>
+</h3>
+<div class="affiliation"><span class="orgname">http://www.bzip.org<br></span></div>
+</div></div></div>
+<div><p class="releaseinfo">Version 1.0.6 of 6 September 2010</p></div>
+<div><p class="copyright">Copyright © 1996-2010 Julian Seward</p></div>
+<div><div class="legalnotice" title="Legal Notice">
+<a name="id537185"></a><p>This program, <code class="computeroutput">bzip2</code>, the
+  associated library <code class="computeroutput">libbzip2</code>, and
+  all documentation, are copyright © 1996-2010 Julian Seward.
+  All rights reserved.</p>
+<p>Redistribution and use in source and binary forms, with
+  or without modification, are permitted provided that the
+  following conditions are met:</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><p>Redistributions of source code must retain the
+   above copyright notice, this list of conditions and the
+   following disclaimer.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>The origin of this software must not be
+   misrepresented; you must not claim that you wrote the original
+   software.  If you use this software in a product, an
+   acknowledgment in the product documentation would be
+   appreciated but is not required.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>Altered source versions must be plainly marked
+   as such, and must not be misrepresented as being the original
+   software.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>The name of the author may not be used to
+   endorse or promote products derived from this software without
+   specific prior written permission.</p></li>
+</ul></div>
+<p>THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY
+  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+  PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+  AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+  IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.</p>
+<p>PATENTS: To the best of my knowledge,
+ <code class="computeroutput">bzip2</code> and
+ <code class="computeroutput">libbzip2</code> do not use any patented
+ algorithms.  However, I do not have the resources to carry
+ out a patent search.  Therefore I cannot give any guarantee of
+ the above statement.
+ </p>
+</div></div>
+</div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="chapter"><a href="#intro">1. Introduction</a></span></dt>
+<dt><span class="chapter"><a href="#using">2. How to use bzip2</a></span></dt>
+<dd><dl>
+<dt><span class="sect1"><a href="#name">2.1. NAME</a></span></dt>
+<dt><span class="sect1"><a href="#synopsis">2.2. SYNOPSIS</a></span></dt>
+<dt><span class="sect1"><a href="#description">2.3. DESCRIPTION</a></span></dt>
+<dt><span class="sect1"><a href="#options">2.4. OPTIONS</a></span></dt>
+<dt><span class="sect1"><a href="#memory-management">2.5. MEMORY MANAGEMENT</a></span></dt>
+<dt><span class="sect1"><a href="#recovering">2.6. RECOVERING DATA FROM DAMAGED FILES</a></span></dt>
+<dt><span class="sect1"><a href="#performance">2.7. PERFORMANCE NOTES</a></span></dt>
+<dt><span class="sect1"><a href="#caveats">2.8. CAVEATS</a></span></dt>
+<dt><span class="sect1"><a href="#author">2.9. AUTHOR</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="#libprog">3. 
+Programming with <code class="computeroutput">libbzip2</code>
+</a></span></dt>
+<dd><dl>
+<dt><span class="sect1"><a href="#top-level">3.1. Top-level structure</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#ll-summary">3.1.1. Low-level summary</a></span></dt>
+<dt><span class="sect2"><a href="#hl-summary">3.1.2. High-level summary</a></span></dt>
+<dt><span class="sect2"><a href="#util-fns-summary">3.1.3. Utility functions summary</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#err-handling">3.2. Error handling</a></span></dt>
+<dt><span class="sect1"><a href="#low-level">3.3. Low-level interface</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzcompress-init">3.3.1. BZ2_bzCompressInit</a></span></dt>
+<dt><span class="sect2"><a href="#bzCompress">3.3.2. BZ2_bzCompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzCompress-end">3.3.3. BZ2_bzCompressEnd</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress-init">3.3.4. BZ2_bzDecompressInit</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress">3.3.5. BZ2_bzDecompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress-end">3.3.6. BZ2_bzDecompressEnd</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#hl-interface">3.4. High-level interface</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzreadopen">3.4.1. BZ2_bzReadOpen</a></span></dt>
+<dt><span class="sect2"><a href="#bzread">3.4.2. BZ2_bzRead</a></span></dt>
+<dt><span class="sect2"><a href="#bzreadgetunused">3.4.3. BZ2_bzReadGetUnused</a></span></dt>
+<dt><span class="sect2"><a href="#bzreadclose">3.4.4. BZ2_bzReadClose</a></span></dt>
+<dt><span class="sect2"><a href="#bzwriteopen">3.4.5. BZ2_bzWriteOpen</a></span></dt>
+<dt><span class="sect2"><a href="#bzwrite">3.4.6. BZ2_bzWrite</a></span></dt>
+<dt><span class="sect2"><a href="#bzwriteclose">3.4.7. BZ2_bzWriteClose</a></span></dt>
+<dt><span class="sect2"><a href="#embed">3.4.8. Handling embedded compressed data streams</a></span></dt>
+<dt><span class="sect2"><a href="#std-rdwr">3.4.9. Standard file-reading/writing code</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#util-fns">3.5. Utility functions</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzbufftobuffcompress">3.5.1. BZ2_bzBuffToBuffCompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzbufftobuffdecompress">3.5.2. BZ2_bzBuffToBuffDecompress</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#zlib-compat">3.6. zlib compatibility functions</a></span></dt>
+<dt><span class="sect1"><a href="#stdio-free">3.7. Using the library in a stdio-free environment</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#stdio-bye">3.7.1. Getting rid of stdio</a></span></dt>
+<dt><span class="sect2"><a href="#critical-error">3.7.2. Critical error handling</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#win-dll">3.8. Making a Windows DLL</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="#misc">4. Miscellanea</a></span></dt>
+<dd><dl>
+<dt><span class="sect1"><a href="#limits">4.1. Limitations of the compressed file format</a></span></dt>
+<dt><span class="sect1"><a href="#port-issues">4.2. Portability issues</a></span></dt>
+<dt><span class="sect1"><a href="#bugs">4.3. Reporting bugs</a></span></dt>
+<dt><span class="sect1"><a href="#package">4.4. Did you get the right package?</a></span></dt>
+<dt><span class="sect1"><a href="#reading">4.5. Further Reading</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+<div class="chapter" title="1. Introduction">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="intro"></a>1. Introduction</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> compresses files
+using the Burrows-Wheeler block-sorting text compression
+algorithm, and Huffman coding.  Compression is generally
+considerably better than that achieved by more conventional
+LZ77/LZ78-based compressors, and approaches the performance of
+the PPM family of statistical compressors.</p>
+<p><code class="computeroutput">bzip2</code> is built on top of
+<code class="computeroutput">libbzip2</code>, a flexible library for
+handling compressed data in the
+<code class="computeroutput">bzip2</code> format.  This manual
+describes both how to use the program and how to work with the
+library interface.  Most of the manual is devoted to this
+library, not the program, which is good news if your interest is
+only in the program.</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><p><a class="xref" href="#using" title="2. How to use bzip2">How to use bzip2</a> describes how to use
+ <code class="computeroutput">bzip2</code>; this is the only part
+ you need to read if you just want to know how to operate the
+ program.</p></li>
+<li class="listitem" style="list-style-type: disc"><p><a class="xref" href="#libprog" title="3.  Programming with libbzip2">Programming with libbzip2</a> describes the
+ programming interfaces in detail, and</p></li>
+<li class="listitem" style="list-style-type: disc"><p><a class="xref" href="#misc" title="4. Miscellanea">Miscellanea</a> records some
+ miscellaneous notes which I thought ought to be recorded
+ somewhere.</p></li>
+</ul></div>
+</div>
+<div class="chapter" title="2. How to use bzip2">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="using"></a>2. How to use bzip2</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="sect1"><a href="#name">2.1. NAME</a></span></dt>
+<dt><span class="sect1"><a href="#synopsis">2.2. SYNOPSIS</a></span></dt>
+<dt><span class="sect1"><a href="#description">2.3. DESCRIPTION</a></span></dt>
+<dt><span class="sect1"><a href="#options">2.4. OPTIONS</a></span></dt>
+<dt><span class="sect1"><a href="#memory-management">2.5. MEMORY MANAGEMENT</a></span></dt>
+<dt><span class="sect1"><a href="#recovering">2.6. RECOVERING DATA FROM DAMAGED FILES</a></span></dt>
+<dt><span class="sect1"><a href="#performance">2.7. PERFORMANCE NOTES</a></span></dt>
+<dt><span class="sect1"><a href="#caveats">2.8. CAVEATS</a></span></dt>
+<dt><span class="sect1"><a href="#author">2.9. AUTHOR</a></span></dt>
+</dl>
+</div>
+<p>This chapter contains a copy of the
+<code class="computeroutput">bzip2</code> man page, and nothing
+else.</p>
+<div class="sect1" title="2.1. NAME">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="name"></a>2.1. NAME</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzip2</code>,
+  <code class="computeroutput">bunzip2</code> - a block-sorting file
+  compressor, v1.0.6</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzcat</code> -
+   decompresses files to stdout</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzip2recover</code> -
+   recovers data from damaged bzip2 files</p></li>
+</ul></div>
+</div>
+<div class="sect1" title="2.2. SYNOPSIS">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="synopsis"></a>2.2. SYNOPSIS</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzip2</code> [
+  -cdfkqstvzVL123456789 ] [ filenames ...  ]</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bunzip2</code> [
+  -fkvsVL ] [ filenames ...  ]</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzcat</code> [ -s ] [
+  filenames ...  ]</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzip2recover</code>
+  filename</p></li>
+</ul></div>
+</div>
+<div class="sect1" title="2.3. DESCRIPTION">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="description"></a>2.3. DESCRIPTION</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> compresses files
+using the Burrows-Wheeler block sorting text compression
+algorithm, and Huffman coding.  Compression is generally
+considerably better than that achieved by more conventional
+LZ77/LZ78-based compressors, and approaches the performance of
+the PPM family of statistical compressors.</p>
+<p>The command-line options are deliberately very similar to
+those of GNU <code class="computeroutput">gzip</code>, but they are
+not identical.</p>
+<p><code class="computeroutput">bzip2</code> expects a list of
+file names to accompany the command-line flags.  Each file is
+replaced by a compressed version of itself, with the name
+<code class="computeroutput">original_name.bz2</code>.  Each
+compressed file has the same modification date, permissions, and,
+when possible, ownership as the corresponding original, so that
+these properties can be correctly restored at decompression time.
+File name handling is naive in the sense that there is no
+mechanism for preserving original file names, permissions,
+ownerships or dates in filesystems which lack these concepts, or
+have serious file name length restrictions, such as
+MS-DOS.</p>
+<p><code class="computeroutput">bzip2</code> and
+<code class="computeroutput">bunzip2</code> will by default not
+overwrite existing files.  If you want this to happen, specify
+the <code class="computeroutput">-f</code> flag.</p>
+<p>If no file names are specified,
+<code class="computeroutput">bzip2</code> compresses from standard
+input to standard output.  In this case,
+<code class="computeroutput">bzip2</code> will decline to write
+compressed output to a terminal, as this would be entirely
+incomprehensible and therefore pointless.</p>
+<p><code class="computeroutput">bunzip2</code> (or
+<code class="computeroutput">bzip2 -d</code>) decompresses all
+specified files.  Files which were not created by
+<code class="computeroutput">bzip2</code> will be detected and
+ignored, and a warning issued.
+<code class="computeroutput">bzip2</code> attempts to guess the
+filename for the decompressed file from that of the compressed
+file as follows:</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">filename.bz2 </code>
+  becomes
+  <code class="computeroutput">filename</code></p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">filename.bz </code>
+  becomes
+  <code class="computeroutput">filename</code></p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">filename.tbz2</code>
+  becomes
+  <code class="computeroutput">filename.tar</code></p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">filename.tbz </code>
+  becomes
+  <code class="computeroutput">filename.tar</code></p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">anyothername </code>
+  becomes
+  <code class="computeroutput">anyothername.out</code></p></li>
+</ul></div>
+<p>If the file does not end in one of the recognised endings,
+<code class="computeroutput">.bz2</code>,
+<code class="computeroutput">.bz</code>,
+<code class="computeroutput">.tbz2</code> or
+<code class="computeroutput">.tbz</code>,
+<code class="computeroutput">bzip2</code> complains that it cannot
+guess the name of the original file, and uses the original name
+with <code class="computeroutput">.out</code> appended.</p>
+<p>As with compression, supplying no filenames causes
+decompression from standard input to standard output.</p>
+<p><code class="computeroutput">bunzip2</code> will correctly
+decompress a file which is the concatenation of two or more
+compressed files.  The result is the concatenation of the
+corresponding uncompressed files.  Integrity testing
+(<code class="computeroutput">-t</code>) of concatenated compressed
+files is also supported.</p>
+<p>You can also compress or decompress files to the standard
+output by giving the <code class="computeroutput">-c</code> flag.
+Multiple files may be compressed and decompressed like this.  The
+resulting outputs are fed sequentially to stdout.  Compression of
+multiple files in this manner generates a stream containing
+multiple compressed file representations.  Such a stream can be
+decompressed correctly only by
+<code class="computeroutput">bzip2</code> version 0.9.0 or later.
+Earlier versions of <code class="computeroutput">bzip2</code> will
+stop after decompressing the first file in the stream.</p>
+<p><code class="computeroutput">bzcat</code> (or
+<code class="computeroutput">bzip2 -dc</code>) decompresses all
+specified files to the standard output.</p>
+<p><code class="computeroutput">bzip2</code> will read arguments
+from the environment variables
+<code class="computeroutput">BZIP2</code> and
+<code class="computeroutput">BZIP</code>, in that order, and will
+process them before any arguments read from the command line.
+This gives a convenient way to supply default arguments.</p>
+<p>Compression is always performed, even if the compressed
+file is slightly larger than the original.  Files of less than
+about one hundred bytes tend to get larger, since the compression
+mechanism has a constant overhead in the region of 50 bytes.
+Random data (including the output of most file compressors) is
+coded at about 8.05 bits per byte, giving an expansion of around
+0.5%.</p>
+<p>As a self-check for your protection,
+<code class="computeroutput">bzip2</code> uses 32-bit CRCs to make
+sure that the decompressed version of a file is identical to the
+original.  This guards against corruption of the compressed data,
+and against undetected bugs in
+<code class="computeroutput">bzip2</code> (hopefully very unlikely).
+The chances of data corruption going undetected is microscopic,
+about one chance in four billion for each file processed.  Be
+aware, though, that the check occurs upon decompression, so it
+can only tell you that something is wrong.  It can't help you
+recover the original uncompressed data.  You can use
+<code class="computeroutput">bzip2recover</code> to try to recover
+data from damaged files.</p>
+<p>Return values: 0 for a normal exit, 1 for environmental
+problems (file not found, invalid flags, I/O errors, etc.), 2
+to indicate a corrupt compressed file, 3 for an internal
+consistency error (eg, bug) which caused
+<code class="computeroutput">bzip2</code> to panic.</p>
+</div>
+<div class="sect1" title="2.4. OPTIONS">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="options"></a>2.4. OPTIONS</h2></div></div></div>
+<div class="variablelist"><dl>
+<dt><span class="term"><code class="computeroutput">-c --stdout</code></span></dt>
+<dd><p>Compress or decompress to standard
+  output.</p></dd>
+<dt><span class="term"><code class="computeroutput">-d --decompress</code></span></dt>
+<dd><p>Force decompression.
+  <code class="computeroutput">bzip2</code>,
+  <code class="computeroutput">bunzip2</code> and
+  <code class="computeroutput">bzcat</code> are really the same
+  program, and the decision about what actions to take is done on
+  the basis of which name is used.  This flag overrides that
+  mechanism, and forces bzip2 to decompress.</p></dd>
+<dt><span class="term"><code class="computeroutput">-z --compress</code></span></dt>
+<dd><p>The complement to
+  <code class="computeroutput">-d</code>: forces compression,
+  regardless of the invokation name.</p></dd>
+<dt><span class="term"><code class="computeroutput">-t --test</code></span></dt>
+<dd><p>Check integrity of the specified file(s), but
+  don't decompress them.  This really performs a trial
+  decompression and throws away the result.</p></dd>
+<dt><span class="term"><code class="computeroutput">-f --force</code></span></dt>
+<dd>
+<p>Force overwrite of output files.  Normally,
+  <code class="computeroutput">bzip2</code> will not overwrite
+  existing output files.  Also forces
+  <code class="computeroutput">bzip2</code> to break hard links to
+  files, which it otherwise wouldn't do.</p>
+<p><code class="computeroutput">bzip2</code> normally declines
+  to decompress files which don't have the correct magic header
+  bytes. If forced (<code class="computeroutput">-f</code>),
+  however, it will pass such files through unmodified. This is
+  how GNU <code class="computeroutput">gzip</code> behaves.</p>
+</dd>
+<dt><span class="term"><code class="computeroutput">-k --keep</code></span></dt>
+<dd><p>Keep (don't delete) input files during
+  compression or decompression.</p></dd>
+<dt><span class="term"><code class="computeroutput">-s --small</code></span></dt>
+<dd>
+<p>Reduce memory usage, for compression,
+  decompression and testing.  Files are decompressed and tested
+  using a modified algorithm which only requires 2.5 bytes per
+  block byte.  This means any file can be decompressed in 2300k
+  of memory, albeit at about half the normal speed.</p>
+<p>During compression, <code class="computeroutput">-s</code>
+  selects a block size of 200k, which limits memory use to around
+  the same figure, at the expense of your compression ratio.  In
+  short, if your machine is low on memory (8 megabytes or less),
+  use <code class="computeroutput">-s</code> for everything.  See
+  <a class="xref" href="#memory-management" title="2.5. MEMORY MANAGEMENT">MEMORY MANAGEMENT</a> below.</p>
+</dd>
+<dt><span class="term"><code class="computeroutput">-q --quiet</code></span></dt>
+<dd><p>Suppress non-essential warning messages.
+  Messages pertaining to I/O errors and other critical events
+  will not be suppressed.</p></dd>
+<dt><span class="term"><code class="computeroutput">-v --verbose</code></span></dt>
+<dd><p>Verbose mode -- show the compression ratio for
+  each file processed.  Further
+  <code class="computeroutput">-v</code>'s increase the verbosity
+  level, spewing out lots of information which is primarily of
+  interest for diagnostic purposes.</p></dd>
+<dt><span class="term"><code class="computeroutput">-L --license -V --version</code></span></dt>
+<dd><p>Display the software version, license terms and
+  conditions.</p></dd>
+<dt><span class="term"><code class="computeroutput">-1</code> (or
+ <code class="computeroutput">--fast</code>) to
+ <code class="computeroutput">-9</code> (or
+ <code class="computeroutput">-best</code>)</span></dt>
+<dd><p>Set the block size to 100 k, 200 k ...  900 k
+  when compressing.  Has no effect when decompressing.  See <a class="xref" href="#memory-management" title="2.5. MEMORY MANAGEMENT">MEMORY MANAGEMENT</a> below.  The
+  <code class="computeroutput">--fast</code> and
+  <code class="computeroutput">--best</code> aliases are primarily
+  for GNU <code class="computeroutput">gzip</code> compatibility.
+  In particular, <code class="computeroutput">--fast</code> doesn't
+  make things significantly faster.  And
+  <code class="computeroutput">--best</code> merely selects the
+  default behaviour.</p></dd>
+<dt><span class="term"><code class="computeroutput">--</code></span></dt>
+<dd><p>Treats all subsequent arguments as file names,
+  even if they start with a dash.  This is so you can handle
+  files with names beginning with a dash, for example:
+  <code class="computeroutput">bzip2 --
+  -myfilename</code>.</p></dd>
+<dt>
+<span class="term"><code class="computeroutput">--repetitive-fast</code>, </span><span class="term"><code class="computeroutput">--repetitive-best</code></span>
+</dt>
+<dd><p>These flags are redundant in versions 0.9.5 and
+  above.  They provided some coarse control over the behaviour of
+  the sorting algorithm in earlier versions, which was sometimes
+  useful.  0.9.5 and above have an improved algorithm which
+  renders these flags irrelevant.</p></dd>
+</dl></div>
+</div>
+<div class="sect1" title="2.5. MEMORY MANAGEMENT">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="memory-management"></a>2.5. MEMORY MANAGEMENT</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> compresses large
+files in blocks.  The block size affects both the compression
+ratio achieved, and the amount of memory needed for compression
+and decompression.  The flags <code class="computeroutput">-1</code>
+through <code class="computeroutput">-9</code> specify the block
+size to be 100,000 bytes through 900,000 bytes (the default)
+respectively.  At decompression time, the block size used for
+compression is read from the header of the compressed file, and
+<code class="computeroutput">bunzip2</code> then allocates itself
+just enough memory to decompress the file.  Since block sizes are
+stored in compressed files, it follows that the flags
+<code class="computeroutput">-1</code> to
+<code class="computeroutput">-9</code> are irrelevant to and so
+ignored during decompression.</p>
+<p>Compression and decompression requirements, in bytes, can be
+estimated as:</p>
+<pre class="programlisting">Compression:   400k + ( 8 x block size )
+
+Decompression: 100k + ( 4 x block size ), or
+               100k + ( 2.5 x block size )</pre>
+<p>Larger block sizes give rapidly diminishing marginal
+returns.  Most of the compression comes from the first two or
+three hundred k of block size, a fact worth bearing in mind when
+using <code class="computeroutput">bzip2</code> on small machines.
+It is also important to appreciate that the decompression memory
+requirement is set at compression time by the choice of block
+size.</p>
+<p>For files compressed with the default 900k block size,
+<code class="computeroutput">bunzip2</code> will require about 3700
+kbytes to decompress.  To support decompression of any file on a
+4 megabyte machine, <code class="computeroutput">bunzip2</code> has
+an option to decompress using approximately half this amount of
+memory, about 2300 kbytes.  Decompression speed is also halved,
+so you should use this option only where necessary.  The relevant
+flag is <code class="computeroutput">-s</code>.</p>
+<p>In general, try and use the largest block size memory
+constraints allow, since that maximises the compression achieved.
+Compression and decompression speed are virtually unaffected by
+block size.</p>
+<p>Another significant point applies to files which fit in a
+single block -- that means most files you'd encounter using a
+large block size.  The amount of real memory touched is
+proportional to the size of the file, since the file is smaller
+than a block.  For example, compressing a file 20,000 bytes long
+with the flag <code class="computeroutput">-9</code> will cause the
+compressor to allocate around 7600k of memory, but only touch
+400k + 20000 * 8 = 560 kbytes of it.  Similarly, the decompressor
+will allocate 3700k but only touch 100k + 20000 * 4 = 180
+kbytes.</p>
+<p>Here is a table which summarises the maximum memory usage
+for different block sizes.  Also recorded is the total compressed
+size for 14 files of the Calgary Text Compression Corpus
+totalling 3,141,622 bytes.  This column gives some feel for how
+compression varies with block size.  These figures tend to
+understate the advantage of larger block sizes for larger files,
+since the Corpus is dominated by smaller files.</p>
+<pre class="programlisting">        Compress   Decompress   Decompress   Corpus
+Flag     usage      usage       -s usage     Size
+
+ -1      1200k       500k         350k      914704
+ -2      2000k       900k         600k      877703
+ -3      2800k      1300k         850k      860338
+ -4      3600k      1700k        1100k      846899
+ -5      4400k      2100k        1350k      845160
+ -6      5200k      2500k        1600k      838626
+ -7      6100k      2900k        1850k      834096
+ -8      6800k      3300k        2100k      828642
+ -9      7600k      3700k        2350k      828642</pre>
+</div>
+<div class="sect1" title="2.6. RECOVERING DATA FROM DAMAGED FILES">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="recovering"></a>2.6. RECOVERING DATA FROM DAMAGED FILES</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> compresses files in
+blocks, usually 900kbytes long.  Each block is handled
+independently.  If a media or transmission error causes a
+multi-block <code class="computeroutput">.bz2</code> file to become
+damaged, it may be possible to recover data from the undamaged
+blocks in the file.</p>
+<p>The compressed representation of each block is delimited by
+a 48-bit pattern, which makes it possible to find the block
+boundaries with reasonable certainty.  Each block also carries
+its own 32-bit CRC, so damaged blocks can be distinguished from
+undamaged ones.</p>
+<p><code class="computeroutput">bzip2recover</code> is a simple
+program whose purpose is to search for blocks in
+<code class="computeroutput">.bz2</code> files, and write each block
+out into its own <code class="computeroutput">.bz2</code> file.  You
+can then use <code class="computeroutput">bzip2 -t</code> to test
+the integrity of the resulting files, and decompress those which
+are undamaged.</p>
+<p><code class="computeroutput">bzip2recover</code> takes a
+single argument, the name of the damaged file, and writes a
+number of files <code class="computeroutput">rec0001file.bz2</code>,
+<code class="computeroutput">rec0002file.bz2</code>, etc, containing
+the extracted blocks.  The output filenames are designed so that
+the use of wildcards in subsequent processing -- for example,
+<code class="computeroutput">bzip2 -dc rec*file.bz2 &gt;
+recovered_data</code> -- lists the files in the correct
+order.</p>
+<p><code class="computeroutput">bzip2recover</code> should be of
+most use dealing with large <code class="computeroutput">.bz2</code>
+files, as these will contain many blocks.  It is clearly futile
+to use it on damaged single-block files, since a damaged block
+cannot be recovered.  If you wish to minimise any potential data
+loss through media or transmission errors, you might consider
+compressing with a smaller block size.</p>
+</div>
+<div class="sect1" title="2.7. PERFORMANCE NOTES">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="performance"></a>2.7. PERFORMANCE NOTES</h2></div></div></div>
+<p>The sorting phase of compression gathers together similar
+strings in the file.  Because of this, files containing very long
+runs of repeated symbols, like "aabaabaabaab ..."  (repeated
+several hundred times) may compress more slowly than normal.
+Versions 0.9.5 and above fare much better than previous versions
+in this respect.  The ratio between worst-case and average-case
+compression time is in the region of 10:1.  For previous
+versions, this figure was more like 100:1.  You can use the
+<code class="computeroutput">-vvvv</code> option to monitor progress
+in great detail, if you want.</p>
+<p>Decompression speed is unaffected by these
+phenomena.</p>
+<p><code class="computeroutput">bzip2</code> usually allocates
+several megabytes of memory to operate in, and then charges all
+over it in a fairly random fashion.  This means that performance,
+both for compressing and decompressing, is largely determined by
+the speed at which your machine can service cache misses.
+Because of this, small changes to the code to reduce the miss
+rate have been observed to give disproportionately large
+performance improvements.  I imagine
+<code class="computeroutput">bzip2</code> will perform best on
+machines with very large caches.</p>
+</div>
+<div class="sect1" title="2.8. CAVEATS">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="caveats"></a>2.8. CAVEATS</h2></div></div></div>
+<p>I/O error messages are not as helpful as they could be.
+<code class="computeroutput">bzip2</code> tries hard to detect I/O
+errors and exit cleanly, but the details of what the problem is
+sometimes seem rather misleading.</p>
+<p>This manual page pertains to version 1.0.6 of
+<code class="computeroutput">bzip2</code>.  Compressed data created by
+this version is entirely forwards and backwards compatible with the
+previous public releases, versions 0.1pl2, 0.9.0 and 0.9.5, 1.0.0,
+1.0.1, 1.0.2 and 1.0.3, but with the following exception: 0.9.0 and
+above can correctly decompress multiple concatenated compressed files.
+0.1pl2 cannot do this; it will stop after decompressing just the first
+file in the stream.</p>
+<p><code class="computeroutput">bzip2recover</code> versions
+prior to 1.0.2 used 32-bit integers to represent bit positions in
+compressed files, so it could not handle compressed files more
+than 512 megabytes long.  Versions 1.0.2 and above use 64-bit ints
+on some platforms which support them (GNU supported targets, and
+Windows). To establish whether or not
+<code class="computeroutput">bzip2recover</code> was built with such
+a limitation, run it without arguments. In any event you can
+build yourself an unlimited version if you can recompile it with
+<code class="computeroutput">MaybeUInt64</code> set to be an
+unsigned 64-bit integer.</p>
+</div>
+<div class="sect1" title="2.9. AUTHOR">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="author"></a>2.9. AUTHOR</h2></div></div></div>
+<p>Julian Seward,
+<code class="computeroutput">jseward@bzip.org</code></p>
+<p>The ideas embodied in
+<code class="computeroutput">bzip2</code> are due to (at least) the
+following people: Michael Burrows and David Wheeler (for the
+block sorting transformation), David Wheeler (again, for the
+Huffman coder), Peter Fenwick (for the structured coding model in
+the original <code class="computeroutput">bzip</code>, and many
+refinements), and Alistair Moffat, Radford Neal and Ian Witten
+(for the arithmetic coder in the original
+<code class="computeroutput">bzip</code>).  I am much indebted for
+their help, support and advice.  See the manual in the source
+distribution for pointers to sources of documentation.  Christian
+von Roques encouraged me to look for faster sorting algorithms,
+so as to speed up compression.  Bela Lubkin encouraged me to
+improve the worst-case compression performance.  
+Donna Robinson XMLised the documentation.
+Many people sent
+patches, helped with portability problems, lent machines, gave
+advice and were generally helpful.</p>
+</div>
+</div>
+<div class="chapter" title="3.  Programming with libbzip2">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="libprog"></a>3. 
+Programming with <code class="computeroutput">libbzip2</code>
+</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="sect1"><a href="#top-level">3.1. Top-level structure</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#ll-summary">3.1.1. Low-level summary</a></span></dt>
+<dt><span class="sect2"><a href="#hl-summary">3.1.2. High-level summary</a></span></dt>
+<dt><span class="sect2"><a href="#util-fns-summary">3.1.3. Utility functions summary</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#err-handling">3.2. Error handling</a></span></dt>
+<dt><span class="sect1"><a href="#low-level">3.3. Low-level interface</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzcompress-init">3.3.1. BZ2_bzCompressInit</a></span></dt>
+<dt><span class="sect2"><a href="#bzCompress">3.3.2. BZ2_bzCompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzCompress-end">3.3.3. BZ2_bzCompressEnd</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress-init">3.3.4. BZ2_bzDecompressInit</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress">3.3.5. BZ2_bzDecompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress-end">3.3.6. BZ2_bzDecompressEnd</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#hl-interface">3.4. High-level interface</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzreadopen">3.4.1. BZ2_bzReadOpen</a></span></dt>
+<dt><span class="sect2"><a href="#bzread">3.4.2. BZ2_bzRead</a></span></dt>
+<dt><span class="sect2"><a href="#bzreadgetunused">3.4.3. BZ2_bzReadGetUnused</a></span></dt>
+<dt><span class="sect2"><a href="#bzreadclose">3.4.4. BZ2_bzReadClose</a></span></dt>
+<dt><span class="sect2"><a href="#bzwriteopen">3.4.5. BZ2_bzWriteOpen</a></span></dt>
+<dt><span class="sect2"><a href="#bzwrite">3.4.6. BZ2_bzWrite</a></span></dt>
+<dt><span class="sect2"><a href="#bzwriteclose">3.4.7. BZ2_bzWriteClose</a></span></dt>
+<dt><span class="sect2"><a href="#embed">3.4.8. Handling embedded compressed data streams</a></span></dt>
+<dt><span class="sect2"><a href="#std-rdwr">3.4.9. Standard file-reading/writing code</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#util-fns">3.5. Utility functions</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzbufftobuffcompress">3.5.1. BZ2_bzBuffToBuffCompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzbufftobuffdecompress">3.5.2. BZ2_bzBuffToBuffDecompress</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#zlib-compat">3.6. zlib compatibility functions</a></span></dt>
+<dt><span class="sect1"><a href="#stdio-free">3.7. Using the library in a stdio-free environment</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#stdio-bye">3.7.1. Getting rid of stdio</a></span></dt>
+<dt><span class="sect2"><a href="#critical-error">3.7.2. Critical error handling</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#win-dll">3.8. Making a Windows DLL</a></span></dt>
+</dl>
+</div>
+<p>This chapter describes the programming interface to
+<code class="computeroutput">libbzip2</code>.</p>
+<p>For general background information, particularly about
+memory use and performance aspects, you'd be well advised to read
+<a class="xref" href="#using" title="2. How to use bzip2">How to use bzip2</a> as well.</p>
+<div class="sect1" title="3.1. Top-level structure">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="top-level"></a>3.1. Top-level structure</h2></div></div></div>
+<p><code class="computeroutput">libbzip2</code> is a flexible
+library for compressing and decompressing data in the
+<code class="computeroutput">bzip2</code> data format.  Although
+packaged as a single entity, it helps to regard the library as
+three separate parts: the low level interface, and the high level
+interface, and some utility functions.</p>
+<p>The structure of
+<code class="computeroutput">libbzip2</code>'s interfaces is similar
+to that of Jean-loup Gailly's and Mark Adler's excellent
+<code class="computeroutput">zlib</code> library.</p>
+<p>All externally visible symbols have names beginning
+<code class="computeroutput">BZ2_</code>.  This is new in version
+1.0.  The intention is to minimise pollution of the namespaces of
+library clients.</p>
+<p>To use any part of the library, you need to
+<code class="computeroutput">#include &lt;bzlib.h&gt;</code>
+into your sources.</p>
+<div class="sect2" title="3.1.1. Low-level summary">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="ll-summary"></a>3.1.1. Low-level summary</h3></div></div></div>
+<p>This interface provides services for compressing and
+decompressing data in memory.  There's no provision for dealing
+with files, streams or any other I/O mechanisms, just straight
+memory-to-memory work.  In fact, this part of the library can be
+compiled without inclusion of
+<code class="computeroutput">stdio.h</code>, which may be helpful
+for embedded applications.</p>
+<p>The low-level part of the library has no global variables
+and is therefore thread-safe.</p>
+<p>Six routines make up the low level interface:
+<code class="computeroutput">BZ2_bzCompressInit</code>,
+<code class="computeroutput">BZ2_bzCompress</code>, and
+<code class="computeroutput">BZ2_bzCompressEnd</code> for
+compression, and a corresponding trio
+<code class="computeroutput">BZ2_bzDecompressInit</code>,
+<code class="computeroutput">BZ2_bzDecompress</code> and
+<code class="computeroutput">BZ2_bzDecompressEnd</code> for
+decompression.  The <code class="computeroutput">*Init</code>
+functions allocate memory for compression/decompression and do
+other initialisations, whilst the
+<code class="computeroutput">*End</code> functions close down
+operations and release memory.</p>
+<p>The real work is done by
+<code class="computeroutput">BZ2_bzCompress</code> and
+<code class="computeroutput">BZ2_bzDecompress</code>.  These
+compress and decompress data from a user-supplied input buffer to
+a user-supplied output buffer.  These buffers can be any size;
+arbitrary quantities of data are handled by making repeated calls
+to these functions.  This is a flexible mechanism allowing a
+consumer-pull style of activity, or producer-push, or a mixture
+of both.</p>
+</div>
+<div class="sect2" title="3.1.2. High-level summary">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="hl-summary"></a>3.1.2. High-level summary</h3></div></div></div>
+<p>This interface provides some handy wrappers around the
+low-level interface to facilitate reading and writing
+<code class="computeroutput">bzip2</code> format files
+(<code class="computeroutput">.bz2</code> files).  The routines
+provide hooks to facilitate reading files in which the
+<code class="computeroutput">bzip2</code> data stream is embedded
+within some larger-scale file structure, or where there are
+multiple <code class="computeroutput">bzip2</code> data streams
+concatenated end-to-end.</p>
+<p>For reading files,
+<code class="computeroutput">BZ2_bzReadOpen</code>,
+<code class="computeroutput">BZ2_bzRead</code>,
+<code class="computeroutput">BZ2_bzReadClose</code> and 
+<code class="computeroutput">BZ2_bzReadGetUnused</code> are
+supplied.  For writing files,
+<code class="computeroutput">BZ2_bzWriteOpen</code>,
+<code class="computeroutput">BZ2_bzWrite</code> and
+<code class="computeroutput">BZ2_bzWriteFinish</code> are
+available.</p>
+<p>As with the low-level library, no global variables are used
+so the library is per se thread-safe.  However, if I/O errors
+occur whilst reading or writing the underlying compressed files,
+you may have to consult <code class="computeroutput">errno</code> to
+determine the cause of the error.  In that case, you'd need a C
+library which correctly supports
+<code class="computeroutput">errno</code> in a multithreaded
+environment.</p>
+<p>To make the library a little simpler and more portable,
+<code class="computeroutput">BZ2_bzReadOpen</code> and
+<code class="computeroutput">BZ2_bzWriteOpen</code> require you to
+pass them file handles (<code class="computeroutput">FILE*</code>s)
+which have previously been opened for reading or writing
+respectively.  That avoids portability problems associated with
+file operations and file attributes, whilst not being much of an
+imposition on the programmer.</p>
+</div>
+<div class="sect2" title="3.1.3. Utility functions summary">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="util-fns-summary"></a>3.1.3. Utility functions summary</h3></div></div></div>
+<p>For very simple needs,
+<code class="computeroutput">BZ2_bzBuffToBuffCompress</code> and
+<code class="computeroutput">BZ2_bzBuffToBuffDecompress</code> are
+provided.  These compress data in memory from one buffer to
+another buffer in a single function call.  You should assess
+whether these functions fulfill your memory-to-memory
+compression/decompression requirements before investing effort in
+understanding the more general but more complex low-level
+interface.</p>
+<p>Yoshioka Tsuneo
+(<code class="computeroutput">tsuneo@rr.iij4u.or.jp</code>) has
+contributed some functions to give better
+<code class="computeroutput">zlib</code> compatibility.  These
+functions are <code class="computeroutput">BZ2_bzopen</code>,
+<code class="computeroutput">BZ2_bzread</code>,
+<code class="computeroutput">BZ2_bzwrite</code>,
+<code class="computeroutput">BZ2_bzflush</code>,
+<code class="computeroutput">BZ2_bzclose</code>,
+<code class="computeroutput">BZ2_bzerror</code> and
+<code class="computeroutput">BZ2_bzlibVersion</code>.  You may find
+these functions more convenient for simple file reading and
+writing, than those in the high-level interface.  These functions
+are not (yet) officially part of the library, and are minimally
+documented here.  If they break, you get to keep all the pieces.
+I hope to document them properly when time permits.</p>
+<p>Yoshioka also contributed modifications to allow the
+library to be built as a Windows DLL.</p>
+</div>
+</div>
+<div class="sect1" title="3.2. Error handling">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="err-handling"></a>3.2. Error handling</h2></div></div></div>
+<p>The library is designed to recover cleanly in all
+situations, including the worst-case situation of decompressing
+random data.  I'm not 100% sure that it can always do this, so
+you might want to add a signal handler to catch segmentation
+violations during decompression if you are feeling especially
+paranoid.  I would be interested in hearing more about the
+robustness of the library to corrupted compressed data.</p>
+<p>Version 1.0.3 more robust in this respect than any
+previous version.  Investigations with Valgrind (a tool for detecting
+problems with memory management) indicate
+that, at least for the few files I tested, all single-bit errors
+in the decompressed data are caught properly, with no
+segmentation faults, no uses of uninitialised data, no out of
+range reads or writes, and no infinite looping in the decompressor.
+So it's certainly pretty robust, although
+I wouldn't claim it to be totally bombproof.</p>
+<p>The file <code class="computeroutput">bzlib.h</code> contains
+all definitions needed to use the library.  In particular, you
+should definitely not include
+<code class="computeroutput">bzlib_private.h</code>.</p>
+<p>In <code class="computeroutput">bzlib.h</code>, the various
+return values are defined.  The following list is not intended as
+an exhaustive description of the circumstances in which a given
+value may be returned -- those descriptions are given later.
+Rather, it is intended to convey the rough meaning of each return
+value.  The first five actions are normal and not intended to
+denote an error situation.</p>
+<div class="variablelist"><dl>
+<dt><span class="term"><code class="computeroutput">BZ_OK</code></span></dt>
+<dd><p>The requested action was completed
+   successfully.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_RUN_OK, BZ_FLUSH_OK,
+    BZ_FINISH_OK</code></span></dt>
+<dd><p>In 
+   <code class="computeroutput">BZ2_bzCompress</code>, the requested
+   flush/finish/nothing-special action was completed
+   successfully.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_STREAM_END</code></span></dt>
+<dd><p>Compression of data was completed, or the
+   logical stream end was detected during
+   decompression.</p></dd>
+</dl></div>
+<p>The following return values indicate an error of some
+kind.</p>
+<div class="variablelist"><dl>
+<dt><span class="term"><code class="computeroutput">BZ_CONFIG_ERROR</code></span></dt>
+<dd><p>Indicates that the library has been improperly
+   compiled on your platform -- a major configuration error.
+   Specifically, it means that
+   <code class="computeroutput">sizeof(char)</code>,
+   <code class="computeroutput">sizeof(short)</code> and
+   <code class="computeroutput">sizeof(int)</code> are not 1, 2 and
+   4 respectively, as they should be.  Note that the library
+   should still work properly on 64-bit platforms which follow
+   the LP64 programming model -- that is, where
+   <code class="computeroutput">sizeof(long)</code> and
+   <code class="computeroutput">sizeof(void*)</code> are 8.  Under
+   LP64, <code class="computeroutput">sizeof(int)</code> is still 4,
+   so <code class="computeroutput">libbzip2</code>, which doesn't
+   use the <code class="computeroutput">long</code> type, is
+   OK.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_SEQUENCE_ERROR</code></span></dt>
+<dd><p>When using the library, it is important to call
+   the functions in the correct sequence and with data structures
+   (buffers etc) in the correct states.
+   <code class="computeroutput">libbzip2</code> checks as much as it
+   can to ensure this is happening, and returns
+   <code class="computeroutput">BZ_SEQUENCE_ERROR</code> if not.
+   Code which complies precisely with the function semantics, as
+   detailed below, should never receive this value; such an event
+   denotes buggy code which you should
+   investigate.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_PARAM_ERROR</code></span></dt>
+<dd><p>Returned when a parameter to a function call is
+   out of range or otherwise manifestly incorrect.  As with
+   <code class="computeroutput">BZ_SEQUENCE_ERROR</code>, this
+   denotes a bug in the client code.  The distinction between
+   <code class="computeroutput">BZ_PARAM_ERROR</code> and
+   <code class="computeroutput">BZ_SEQUENCE_ERROR</code> is a bit
+   hazy, but still worth making.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_MEM_ERROR</code></span></dt>
+<dd><p>Returned when a request to allocate memory
+   failed.  Note that the quantity of memory needed to decompress
+   a stream cannot be determined until the stream's header has
+   been read.  So
+   <code class="computeroutput">BZ2_bzDecompress</code> and
+   <code class="computeroutput">BZ2_bzRead</code> may return
+   <code class="computeroutput">BZ_MEM_ERROR</code> even though some
+   of the compressed data has been read.  The same is not true
+   for compression; once
+   <code class="computeroutput">BZ2_bzCompressInit</code> or
+   <code class="computeroutput">BZ2_bzWriteOpen</code> have
+   successfully completed,
+   <code class="computeroutput">BZ_MEM_ERROR</code> cannot
+   occur.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_DATA_ERROR</code></span></dt>
+<dd><p>Returned when a data integrity error is
+   detected during decompression.  Most importantly, this means
+   when stored and computed CRCs for the data do not match.  This
+   value is also returned upon detection of any other anomaly in
+   the compressed data.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_DATA_ERROR_MAGIC</code></span></dt>
+<dd><p>As a special case of
+   <code class="computeroutput">BZ_DATA_ERROR</code>, it is
+   sometimes useful to know when the compressed stream does not
+   start with the correct magic bytes (<code class="computeroutput">'B' 'Z'
+   'h'</code>).</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_IO_ERROR</code></span></dt>
+<dd><p>Returned by
+   <code class="computeroutput">BZ2_bzRead</code> and
+   <code class="computeroutput">BZ2_bzWrite</code> when there is an
+   error reading or writing in the compressed file, and by
+   <code class="computeroutput">BZ2_bzReadOpen</code> and
+   <code class="computeroutput">BZ2_bzWriteOpen</code> for attempts
+   to use a file for which the error indicator (viz,
+   <code class="computeroutput">ferror(f)</code>) is set.  On
+   receipt of <code class="computeroutput">BZ_IO_ERROR</code>, the
+   caller should consult <code class="computeroutput">errno</code>
+   and/or <code class="computeroutput">perror</code> to acquire
+   operating-system specific information about the
+   problem.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_UNEXPECTED_EOF</code></span></dt>
+<dd><p>Returned by
+   <code class="computeroutput">BZ2_bzRead</code> when the
+   compressed file finishes before the logical end of stream is
+   detected.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_OUTBUFF_FULL</code></span></dt>
+<dd><p>Returned by
+   <code class="computeroutput">BZ2_bzBuffToBuffCompress</code> and
+   <code class="computeroutput">BZ2_bzBuffToBuffDecompress</code> to
+   indicate that the output data will not fit into the output
+   buffer provided.</p></dd>
+</dl></div>
+</div>
+<div class="sect1" title="3.3. Low-level interface">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="low-level"></a>3.3. Low-level interface</h2></div></div></div>
+<div class="sect2" title="3.3.1. BZ2_bzCompressInit">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzcompress-init"></a>3.3.1. BZ2_bzCompressInit</h3></div></div></div>
+<pre class="programlisting">typedef struct {
+  char *next_in;
+  unsigned int avail_in;
+  unsigned int total_in_lo32;
+  unsigned int total_in_hi32;
+
+  char *next_out;
+  unsigned int avail_out;
+  unsigned int total_out_lo32;
+  unsigned int total_out_hi32;
+
+  void *state;
+
+  void *(*bzalloc)(void *,int,int);
+  void (*bzfree)(void *,void *);
+  void *opaque;
+} bz_stream;
+
+int BZ2_bzCompressInit ( bz_stream *strm, 
+                         int blockSize100k, 
+                         int verbosity,
+                         int workFactor );</pre>
+<p>Prepares for compression.  The
+<code class="computeroutput">bz_stream</code> structure holds all
+data pertaining to the compression activity.  A
+<code class="computeroutput">bz_stream</code> structure should be
+allocated and initialised prior to the call.  The fields of
+<code class="computeroutput">bz_stream</code> comprise the entirety
+of the user-visible data.  <code class="computeroutput">state</code>
+is a pointer to the private data structures required for
+compression.</p>
+<p>Custom memory allocators are supported, via fields
+<code class="computeroutput">bzalloc</code>,
+<code class="computeroutput">bzfree</code>, and
+<code class="computeroutput">opaque</code>.  The value
+<code class="computeroutput">opaque</code> is passed to as the first
+argument to all calls to <code class="computeroutput">bzalloc</code>
+and <code class="computeroutput">bzfree</code>, but is otherwise
+ignored by the library.  The call <code class="computeroutput">bzalloc (
+opaque, n, m )</code> is expected to return a pointer
+<code class="computeroutput">p</code> to <code class="computeroutput">n *
+m</code> bytes of memory, and <code class="computeroutput">bzfree (
+opaque, p )</code> should free that memory.</p>
+<p>If you don't want to use a custom memory allocator, set
+<code class="computeroutput">bzalloc</code>,
+<code class="computeroutput">bzfree</code> and
+<code class="computeroutput">opaque</code> to
+<code class="computeroutput">NULL</code>, and the library will then
+use the standard <code class="computeroutput">malloc</code> /
+<code class="computeroutput">free</code> routines.</p>
+<p>Before calling
+<code class="computeroutput">BZ2_bzCompressInit</code>, fields
+<code class="computeroutput">bzalloc</code>,
+<code class="computeroutput">bzfree</code> and
+<code class="computeroutput">opaque</code> should be filled
+appropriately, as just described.  Upon return, the internal
+state will have been allocated and initialised, and
+<code class="computeroutput">total_in_lo32</code>,
+<code class="computeroutput">total_in_hi32</code>,
+<code class="computeroutput">total_out_lo32</code> and
+<code class="computeroutput">total_out_hi32</code> will have been
+set to zero.  These four fields are used by the library to inform
+the caller of the total amount of data passed into and out of the
+library, respectively.  You should not try to change them.  As of
+version 1.0, 64-bit counts are maintained, even on 32-bit
+platforms, using the <code class="computeroutput">_hi32</code>
+fields to store the upper 32 bits of the count.  So, for example,
+the total amount of data in is <code class="computeroutput">(total_in_hi32
+&lt;&lt; 32) + total_in_lo32</code>.</p>
+<p>Parameter <code class="computeroutput">blockSize100k</code>
+specifies the block size to be used for compression.  It should
+be a value between 1 and 9 inclusive, and the actual block size
+used is 100000 x this figure.  9 gives the best compression but
+takes most memory.</p>
+<p>Parameter <code class="computeroutput">verbosity</code> should
+be set to a number between 0 and 4 inclusive.  0 is silent, and
+greater numbers give increasingly verbose monitoring/debugging
+output.  If the library has been compiled with
+<code class="computeroutput">-DBZ_NO_STDIO</code>, no such output
+will appear for any verbosity setting.</p>
+<p>Parameter <code class="computeroutput">workFactor</code>
+controls how the compression phase behaves when presented with
+worst case, highly repetitive, input data.  If compression runs
+into difficulties caused by repetitive data, the library switches
+from the standard sorting algorithm to a fallback algorithm.  The
+fallback is slower than the standard algorithm by perhaps a
+factor of three, but always behaves reasonably, no matter how bad
+the input.</p>
+<p>Lower values of <code class="computeroutput">workFactor</code>
+reduce the amount of effort the standard algorithm will expend
+before resorting to the fallback.  You should set this parameter
+carefully; too low, and many inputs will be handled by the
+fallback algorithm and so compress rather slowly, too high, and
+your average-to-worst case compression times can become very
+large.  The default value of 30 gives reasonable behaviour over a
+wide range of circumstances.</p>
+<p>Allowable values range from 0 to 250 inclusive.  0 is a
+special case, equivalent to using the default value of 30.</p>
+<p>Note that the compressed output generated is the same
+regardless of whether or not the fallback algorithm is
+used.</p>
+<p>Be aware also that this parameter may disappear entirely in
+future versions of the library.  In principle it should be
+possible to devise a good way to automatically choose which
+algorithm to use.  Such a mechanism would render the parameter
+obsolete.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if strm is NULL 
+  or blockSize &lt; 1 or blockSize &gt; 9
+  or verbosity &lt; 0 or verbosity &gt; 4
+  or workFactor &lt; 0 or workFactor &gt; 250
+BZ_MEM_ERROR 
+  if not enough memory is available
+BZ_OK 
+  otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzCompress
+  if BZ_OK is returned
+  no specific action needed in case of error</pre>
+</div>
+<div class="sect2" title="3.3.2. BZ2_bzCompress">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzCompress"></a>3.3.2. BZ2_bzCompress</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzCompress ( bz_stream *strm, int action );</pre>
+<p>Provides more input and/or output buffer space for the
+library.  The caller maintains input and output buffers, and
+calls <code class="computeroutput">BZ2_bzCompress</code> to transfer
+data between them.</p>
+<p>Before each call to
+<code class="computeroutput">BZ2_bzCompress</code>,
+<code class="computeroutput">next_in</code> should point at the data
+to be compressed, and <code class="computeroutput">avail_in</code>
+should indicate how many bytes the library may read.
+<code class="computeroutput">BZ2_bzCompress</code> updates
+<code class="computeroutput">next_in</code>,
+<code class="computeroutput">avail_in</code> and
+<code class="computeroutput">total_in</code> to reflect the number
+of bytes it has read.</p>
+<p>Similarly, <code class="computeroutput">next_out</code> should
+point to a buffer in which the compressed data is to be placed,
+with <code class="computeroutput">avail_out</code> indicating how
+much output space is available.
+<code class="computeroutput">BZ2_bzCompress</code> updates
+<code class="computeroutput">next_out</code>,
+<code class="computeroutput">avail_out</code> and
+<code class="computeroutput">total_out</code> to reflect the number
+of bytes output.</p>
+<p>You may provide and remove as little or as much data as you
+like on each call of
+<code class="computeroutput">BZ2_bzCompress</code>.  In the limit,
+it is acceptable to supply and remove data one byte at a time,
+although this would be terribly inefficient.  You should always
+ensure that at least one byte of output space is available at
+each call.</p>
+<p>A second purpose of
+<code class="computeroutput">BZ2_bzCompress</code> is to request a
+change of mode of the compressed stream.</p>
+<p>Conceptually, a compressed stream can be in one of four
+states: IDLE, RUNNING, FLUSHING and FINISHING.  Before
+initialisation
+(<code class="computeroutput">BZ2_bzCompressInit</code>) and after
+termination (<code class="computeroutput">BZ2_bzCompressEnd</code>),
+a stream is regarded as IDLE.</p>
+<p>Upon initialisation
+(<code class="computeroutput">BZ2_bzCompressInit</code>), the stream
+is placed in the RUNNING state.  Subsequent calls to
+<code class="computeroutput">BZ2_bzCompress</code> should pass
+<code class="computeroutput">BZ_RUN</code> as the requested action;
+other actions are illegal and will result in
+<code class="computeroutput">BZ_SEQUENCE_ERROR</code>.</p>
+<p>At some point, the calling program will have provided all
+the input data it wants to.  It will then want to finish up -- in
+effect, asking the library to process any data it might have
+buffered internally.  In this state,
+<code class="computeroutput">BZ2_bzCompress</code> will no longer
+attempt to read data from
+<code class="computeroutput">next_in</code>, but it will want to
+write data to <code class="computeroutput">next_out</code>.  Because
+the output buffer supplied by the user can be arbitrarily small,
+the finishing-up operation cannot necessarily be done with a
+single call of
+<code class="computeroutput">BZ2_bzCompress</code>.</p>
+<p>Instead, the calling program passes
+<code class="computeroutput">BZ_FINISH</code> as an action to
+<code class="computeroutput">BZ2_bzCompress</code>.  This changes
+the stream's state to FINISHING.  Any remaining input (ie,
+<code class="computeroutput">next_in[0 .. avail_in-1]</code>) is
+compressed and transferred to the output buffer.  To do this,
+<code class="computeroutput">BZ2_bzCompress</code> must be called
+repeatedly until all the output has been consumed.  At that
+point, <code class="computeroutput">BZ2_bzCompress</code> returns
+<code class="computeroutput">BZ_STREAM_END</code>, and the stream's
+state is set back to IDLE.
+<code class="computeroutput">BZ2_bzCompressEnd</code> should then be
+called.</p>
+<p>Just to make sure the calling program does not cheat, the
+library makes a note of <code class="computeroutput">avail_in</code>
+at the time of the first call to
+<code class="computeroutput">BZ2_bzCompress</code> which has
+<code class="computeroutput">BZ_FINISH</code> as an action (ie, at
+the time the program has announced its intention to not supply
+any more input).  By comparing this value with that of
+<code class="computeroutput">avail_in</code> over subsequent calls
+to <code class="computeroutput">BZ2_bzCompress</code>, the library
+can detect any attempts to slip in more data to compress.  Any
+calls for which this is detected will return
+<code class="computeroutput">BZ_SEQUENCE_ERROR</code>.  This
+indicates a programming mistake which should be corrected.</p>
+<p>Instead of asking to finish, the calling program may ask
+<code class="computeroutput">BZ2_bzCompress</code> to take all the
+remaining input, compress it and terminate the current
+(Burrows-Wheeler) compression block.  This could be useful for
+error control purposes.  The mechanism is analogous to that for
+finishing: call <code class="computeroutput">BZ2_bzCompress</code>
+with an action of <code class="computeroutput">BZ_FLUSH</code>,
+remove output data, and persist with the
+<code class="computeroutput">BZ_FLUSH</code> action until the value
+<code class="computeroutput">BZ_RUN</code> is returned.  As with
+finishing, <code class="computeroutput">BZ2_bzCompress</code>
+detects any attempt to provide more input data once the flush has
+begun.</p>
+<p>Once the flush is complete, the stream returns to the
+normal RUNNING state.</p>
+<p>This all sounds pretty complex, but isn't really.  Here's a
+table which shows which actions are allowable in each state, what
+action will be taken, what the next state is, and what the
+non-error return values are.  Note that you can't explicitly ask
+what state the stream is in, but nor do you need to -- it can be
+inferred from the values returned by
+<code class="computeroutput">BZ2_bzCompress</code>.</p>
+<pre class="programlisting">IDLE/any
+  Illegal.  IDLE state only exists after BZ2_bzCompressEnd or
+  before BZ2_bzCompressInit.
+  Return value = BZ_SEQUENCE_ERROR
+
+RUNNING/BZ_RUN
+  Compress from next_in to next_out as much as possible.
+  Next state = RUNNING
+  Return value = BZ_RUN_OK
+
+RUNNING/BZ_FLUSH
+  Remember current value of next_in. Compress from next_in
+  to next_out as much as possible, but do not accept any more input.
+  Next state = FLUSHING
+  Return value = BZ_FLUSH_OK
+
+RUNNING/BZ_FINISH
+  Remember current value of next_in. Compress from next_in
+  to next_out as much as possible, but do not accept any more input.
+  Next state = FINISHING
+  Return value = BZ_FINISH_OK
+
+FLUSHING/BZ_FLUSH
+  Compress from next_in to next_out as much as possible, 
+  but do not accept any more input.
+  If all the existing input has been used up and all compressed
+  output has been removed
+    Next state = RUNNING; Return value = BZ_RUN_OK
+  else
+    Next state = FLUSHING; Return value = BZ_FLUSH_OK
+
+FLUSHING/other     
+  Illegal.
+  Return value = BZ_SEQUENCE_ERROR
+
+FINISHING/BZ_FINISH
+  Compress from next_in to next_out as much as possible,
+  but to not accept any more input.  
+  If all the existing input has been used up and all compressed
+  output has been removed
+    Next state = IDLE; Return value = BZ_STREAM_END
+  else
+    Next state = FINISHING; Return value = BZ_FINISH_OK
+
+FINISHING/other
+  Illegal.
+  Return value = BZ_SEQUENCE_ERROR</pre>
+<p>That still looks complicated?  Well, fair enough.  The
+usual sequence of calls for compressing a load of data is:</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><p>Get started with
+  <code class="computeroutput">BZ2_bzCompressInit</code>.</p></li>
+<li class="listitem"><p>Shovel data in and shlurp out its compressed form
+  using zero or more calls of
+  <code class="computeroutput">BZ2_bzCompress</code> with action =
+  <code class="computeroutput">BZ_RUN</code>.</p></li>
+<li class="listitem"><p>Finish up. Repeatedly call
+  <code class="computeroutput">BZ2_bzCompress</code> with action =
+  <code class="computeroutput">BZ_FINISH</code>, copying out the
+  compressed output, until
+  <code class="computeroutput">BZ_STREAM_END</code> is
+  returned.</p></li>
+<li class="listitem"><p>Close up and go home.  Call
+  <code class="computeroutput">BZ2_bzCompressEnd</code>.</p></li>
+</ol></div>
+<p>If the data you want to compress fits into your input
+buffer all at once, you can skip the calls of
+<code class="computeroutput">BZ2_bzCompress ( ..., BZ_RUN )</code>
+and just do the <code class="computeroutput">BZ2_bzCompress ( ..., BZ_FINISH
+)</code> calls.</p>
+<p>All required memory is allocated by
+<code class="computeroutput">BZ2_bzCompressInit</code>.  The
+compression library can accept any data at all (obviously).  So
+you shouldn't get any error return values from the
+<code class="computeroutput">BZ2_bzCompress</code> calls.  If you
+do, they will be
+<code class="computeroutput">BZ_SEQUENCE_ERROR</code>, and indicate
+a bug in your programming.</p>
+<p>Trivial other possible return values:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+  if strm is NULL, or strm-&gt;s is NULL</pre>
+</div>
+<div class="sect2" title="3.3.3. BZ2_bzCompressEnd">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzCompress-end"></a>3.3.3. BZ2_bzCompressEnd</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzCompressEnd ( bz_stream *strm );</pre>
+<p>Releases all memory associated with a compression
+stream.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_PARAM_ERROR  if strm is NULL or strm-&gt;s is NULL
+BZ_OK           otherwise</pre>
+</div>
+<div class="sect2" title="3.3.4. BZ2_bzDecompressInit">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzDecompress-init"></a>3.3.4. BZ2_bzDecompressInit</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzDecompressInit ( bz_stream *strm, int verbosity, int small );</pre>
+<p>Prepares for decompression.  As with
+<code class="computeroutput">BZ2_bzCompressInit</code>, a
+<code class="computeroutput">bz_stream</code> record should be
+allocated and initialised before the call.  Fields
+<code class="computeroutput">bzalloc</code>,
+<code class="computeroutput">bzfree</code> and
+<code class="computeroutput">opaque</code> should be set if a custom
+memory allocator is required, or made
+<code class="computeroutput">NULL</code> for the normal
+<code class="computeroutput">malloc</code> /
+<code class="computeroutput">free</code> routines.  Upon return, the
+internal state will have been initialised, and
+<code class="computeroutput">total_in</code> and
+<code class="computeroutput">total_out</code> will be zero.</p>
+<p>For the meaning of parameter
+<code class="computeroutput">verbosity</code>, see
+<code class="computeroutput">BZ2_bzCompressInit</code>.</p>
+<p>If <code class="computeroutput">small</code> is nonzero, the
+library will use an alternative decompression algorithm which
+uses less memory but at the cost of decompressing more slowly
+(roughly speaking, half the speed, but the maximum memory
+requirement drops to around 2300k).  See <a class="xref" href="#using" title="2. How to use bzip2">How to use bzip2</a>
+for more information on memory management.</p>
+<p>Note that the amount of memory needed to decompress a
+stream cannot be determined until the stream's header has been
+read, so even if
+<code class="computeroutput">BZ2_bzDecompressInit</code> succeeds, a
+subsequent <code class="computeroutput">BZ2_bzDecompress</code>
+could fail with
+<code class="computeroutput">BZ_MEM_ERROR</code>.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if ( small != 0 &amp;&amp; small != 1 )
+  or (verbosity &lt;; 0 || verbosity &gt; 4)
+BZ_MEM_ERROR
+  if insufficient memory is available</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzDecompress
+  if BZ_OK was returned
+  no specific action required in case of error</pre>
+</div>
+<div class="sect2" title="3.3.5. BZ2_bzDecompress">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzDecompress"></a>3.3.5. BZ2_bzDecompress</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzDecompress ( bz_stream *strm );</pre>
+<p>Provides more input and/out output buffer space for the
+library.  The caller maintains input and output buffers, and uses
+<code class="computeroutput">BZ2_bzDecompress</code> to transfer
+data between them.</p>
+<p>Before each call to
+<code class="computeroutput">BZ2_bzDecompress</code>,
+<code class="computeroutput">next_in</code> should point at the
+compressed data, and <code class="computeroutput">avail_in</code>
+should indicate how many bytes the library may read.
+<code class="computeroutput">BZ2_bzDecompress</code> updates
+<code class="computeroutput">next_in</code>,
+<code class="computeroutput">avail_in</code> and
+<code class="computeroutput">total_in</code> to reflect the number
+of bytes it has read.</p>
+<p>Similarly, <code class="computeroutput">next_out</code> should
+point to a buffer in which the uncompressed output is to be
+placed, with <code class="computeroutput">avail_out</code>
+indicating how much output space is available.
+<code class="computeroutput">BZ2_bzCompress</code> updates
+<code class="computeroutput">next_out</code>,
+<code class="computeroutput">avail_out</code> and
+<code class="computeroutput">total_out</code> to reflect the number
+of bytes output.</p>
+<p>You may provide and remove as little or as much data as you
+like on each call of
+<code class="computeroutput">BZ2_bzDecompress</code>.  In the limit,
+it is acceptable to supply and remove data one byte at a time,
+although this would be terribly inefficient.  You should always
+ensure that at least one byte of output space is available at
+each call.</p>
+<p>Use of <code class="computeroutput">BZ2_bzDecompress</code> is
+simpler than
+<code class="computeroutput">BZ2_bzCompress</code>.</p>
+<p>You should provide input and remove output as described
+above, and repeatedly call
+<code class="computeroutput">BZ2_bzDecompress</code> until
+<code class="computeroutput">BZ_STREAM_END</code> is returned.
+Appearance of <code class="computeroutput">BZ_STREAM_END</code>
+denotes that <code class="computeroutput">BZ2_bzDecompress</code>
+has detected the logical end of the compressed stream.
+<code class="computeroutput">BZ2_bzDecompress</code> will not
+produce <code class="computeroutput">BZ_STREAM_END</code> until all
+output data has been placed into the output buffer, so once
+<code class="computeroutput">BZ_STREAM_END</code> appears, you are
+guaranteed to have available all the decompressed output, and
+<code class="computeroutput">BZ2_bzDecompressEnd</code> can safely
+be called.</p>
+<p>If case of an error return value, you should call
+<code class="computeroutput">BZ2_bzDecompressEnd</code> to clean up
+and release memory.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+  if strm is NULL or strm-&gt;s is NULL
+  or strm-&gt;avail_out &lt; 1
+BZ_DATA_ERROR
+  if a data integrity error is detected in the compressed stream
+BZ_DATA_ERROR_MAGIC
+  if the compressed stream doesn't begin with the right magic bytes
+BZ_MEM_ERROR
+  if there wasn't enough memory available
+BZ_STREAM_END
+  if the logical end of the data stream was detected and all
+  output in has been consumed, eg s--&gt;avail_out &gt; 0
+BZ_OK
+  otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzDecompress
+  if BZ_OK was returned
+BZ2_bzDecompressEnd
+  otherwise</pre>
+</div>
+<div class="sect2" title="3.3.6. BZ2_bzDecompressEnd">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzDecompress-end"></a>3.3.6. BZ2_bzDecompressEnd</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzDecompressEnd ( bz_stream *strm );</pre>
+<p>Releases all memory associated with a decompression
+stream.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+  if strm is NULL or strm-&gt;s is NULL
+BZ_OK
+  otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">  None.</pre>
+</div>
+</div>
+<div class="sect1" title="3.4. High-level interface">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="hl-interface"></a>3.4. High-level interface</h2></div></div></div>
+<p>This interface provides functions for reading and writing
+<code class="computeroutput">bzip2</code> format files.  First, some
+general points.</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><p>All of the functions take an
+  <code class="computeroutput">int*</code> first argument,
+  <code class="computeroutput">bzerror</code>.  After each call,
+  <code class="computeroutput">bzerror</code> should be consulted
+  first to determine the outcome of the call.  If
+  <code class="computeroutput">bzerror</code> is
+  <code class="computeroutput">BZ_OK</code>, the call completed
+  successfully, and only then should the return value of the
+  function (if any) be consulted.  If
+  <code class="computeroutput">bzerror</code> is
+  <code class="computeroutput">BZ_IO_ERROR</code>, there was an
+  error reading/writing the underlying compressed file, and you
+  should then consult <code class="computeroutput">errno</code> /
+  <code class="computeroutput">perror</code> to determine the cause
+  of the difficulty.  <code class="computeroutput">bzerror</code>
+  may also be set to various other values; precise details are
+  given on a per-function basis below.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>If <code class="computeroutput">bzerror</code> indicates
+  an error (ie, anything except
+  <code class="computeroutput">BZ_OK</code> and
+  <code class="computeroutput">BZ_STREAM_END</code>), you should
+  immediately call
+  <code class="computeroutput">BZ2_bzReadClose</code> (or
+  <code class="computeroutput">BZ2_bzWriteClose</code>, depending on
+  whether you are attempting to read or to write) to free up all
+  resources associated with the stream.  Once an error has been
+  indicated, behaviour of all calls except
+  <code class="computeroutput">BZ2_bzReadClose</code>
+  (<code class="computeroutput">BZ2_bzWriteClose</code>) is
+  undefined.  The implication is that (1)
+  <code class="computeroutput">bzerror</code> should be checked
+  after each call, and (2) if
+  <code class="computeroutput">bzerror</code> indicates an error,
+  <code class="computeroutput">BZ2_bzReadClose</code>
+  (<code class="computeroutput">BZ2_bzWriteClose</code>) should then
+  be called to clean up.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>The <code class="computeroutput">FILE*</code> arguments
+  passed to <code class="computeroutput">BZ2_bzReadOpen</code> /
+  <code class="computeroutput">BZ2_bzWriteOpen</code> should be set
+  to binary mode.  Most Unix systems will do this by default, but
+  other platforms, including Windows and Mac, will not.  If you
+  omit this, you may encounter problems when moving code to new
+  platforms.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>Memory allocation requests are handled by
+  <code class="computeroutput">malloc</code> /
+  <code class="computeroutput">free</code>.  At present there is no
+  facility for user-defined memory allocators in the file I/O
+  functions (could easily be added, though).</p></li>
+</ul></div>
+<div class="sect2" title="3.4.1. BZ2_bzReadOpen">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzreadopen"></a>3.4.1. BZ2_bzReadOpen</h3></div></div></div>
+<pre class="programlisting">typedef void BZFILE;
+
+BZFILE *BZ2_bzReadOpen( int *bzerror, FILE *f, 
+                        int verbosity, int small,
+                        void *unused, int nUnused );</pre>
+<p>Prepare to read compressed data from file handle
+<code class="computeroutput">f</code>.
+<code class="computeroutput">f</code> should refer to a file which
+has been opened for reading, and for which the error indicator
+(<code class="computeroutput">ferror(f)</code>)is not set.  If
+<code class="computeroutput">small</code> is 1, the library will try
+to decompress using less memory, at the expense of speed.</p>
+<p>For reasons explained below,
+<code class="computeroutput">BZ2_bzRead</code> will decompress the
+<code class="computeroutput">nUnused</code> bytes starting at
+<code class="computeroutput">unused</code>, before starting to read
+from the file <code class="computeroutput">f</code>.  At most
+<code class="computeroutput">BZ_MAX_UNUSED</code> bytes may be
+supplied like this.  If this facility is not required, you should
+pass <code class="computeroutput">NULL</code> and
+<code class="computeroutput">0</code> for
+<code class="computeroutput">unused</code> and
+n<code class="computeroutput">Unused</code> respectively.</p>
+<p>For the meaning of parameters
+<code class="computeroutput">small</code> and
+<code class="computeroutput">verbosity</code>, see
+<code class="computeroutput">BZ2_bzDecompressInit</code>.</p>
+<p>The amount of memory needed to decompress a file cannot be
+determined until the file's header has been read.  So it is
+possible that <code class="computeroutput">BZ2_bzReadOpen</code>
+returns <code class="computeroutput">BZ_OK</code> but a subsequent
+call of <code class="computeroutput">BZ2_bzRead</code> will return
+<code class="computeroutput">BZ_MEM_ERROR</code>.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if f is NULL
+  or small is neither 0 nor 1
+  or ( unused == NULL &amp;&amp; nUnused != 0 )
+  or ( unused != NULL &amp;&amp; !(0 &lt;= nUnused &lt;= BZ_MAX_UNUSED) )
+BZ_IO_ERROR
+  if ferror(f) is nonzero
+BZ_MEM_ERROR
+  if insufficient memory is available
+BZ_OK
+  otherwise.</pre>
+<p>Possible return values:</p>
+<pre class="programlisting">Pointer to an abstract BZFILE
+  if bzerror is BZ_OK
+NULL
+  otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzRead
+  if bzerror is BZ_OK
+BZ2_bzClose
+  otherwise</pre>
+</div>
+<div class="sect2" title="3.4.2. BZ2_bzRead">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzread"></a>3.4.2. BZ2_bzRead</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzRead ( int *bzerror, BZFILE *b, void *buf, int len );</pre>
+<p>Reads up to <code class="computeroutput">len</code>
+(uncompressed) bytes from the compressed file
+<code class="computeroutput">b</code> into the buffer
+<code class="computeroutput">buf</code>.  If the read was
+successful, <code class="computeroutput">bzerror</code> is set to
+<code class="computeroutput">BZ_OK</code> and the number of bytes
+read is returned.  If the logical end-of-stream was detected,
+<code class="computeroutput">bzerror</code> will be set to
+<code class="computeroutput">BZ_STREAM_END</code>, and the number of
+bytes read is returned.  All other
+<code class="computeroutput">bzerror</code> values denote an
+error.</p>
+<p><code class="computeroutput">BZ2_bzRead</code> will supply
+<code class="computeroutput">len</code> bytes, unless the logical
+stream end is detected or an error occurs.  Because of this, it
+is possible to detect the stream end by observing when the number
+of bytes returned is less than the number requested.
+Nevertheless, this is regarded as inadvisable; you should instead
+check <code class="computeroutput">bzerror</code> after every call
+and watch out for
+<code class="computeroutput">BZ_STREAM_END</code>.</p>
+<p>Internally, <code class="computeroutput">BZ2_bzRead</code>
+copies data from the compressed file in chunks of size
+<code class="computeroutput">BZ_MAX_UNUSED</code> bytes before
+decompressing it.  If the file contains more bytes than strictly
+needed to reach the logical end-of-stream,
+<code class="computeroutput">BZ2_bzRead</code> will almost certainly
+read some of the trailing data before signalling
+<code class="computeroutput">BZ_SEQUENCE_END</code>.  To collect the
+read but unused data once
+<code class="computeroutput">BZ_SEQUENCE_END</code> has appeared,
+call <code class="computeroutput">BZ2_bzReadGetUnused</code>
+immediately before
+<code class="computeroutput">BZ2_bzReadClose</code>.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+  if b is NULL or buf is NULL or len &lt; 0
+BZ_SEQUENCE_ERROR
+  if b was opened with BZ2_bzWriteOpen
+BZ_IO_ERROR
+  if there is an error reading from the compressed file
+BZ_UNEXPECTED_EOF
+  if the compressed file ended before 
+  the logical end-of-stream was detected
+BZ_DATA_ERROR
+  if a data integrity error was detected in the compressed stream
+BZ_DATA_ERROR_MAGIC
+  if the stream does not begin with the requisite header bytes 
+  (ie, is not a bzip2 data file).  This is really 
+  a special case of BZ_DATA_ERROR.
+BZ_MEM_ERROR
+  if insufficient memory was available
+BZ_STREAM_END
+  if the logical end of stream was detected.
+BZ_OK
+  otherwise.</pre>
+<p>Possible return values:</p>
+<pre class="programlisting">number of bytes read
+  if bzerror is BZ_OK or BZ_STREAM_END
+undefined
+  otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">collect data from buf, then BZ2_bzRead or BZ2_bzReadClose
+  if bzerror is BZ_OK
+collect data from buf, then BZ2_bzReadClose or BZ2_bzReadGetUnused
+  if bzerror is BZ_SEQUENCE_END
+BZ2_bzReadClose
+  otherwise</pre>
+</div>
+<div class="sect2" title="3.4.3. BZ2_bzReadGetUnused">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzreadgetunused"></a>3.4.3. BZ2_bzReadGetUnused</h3></div></div></div>
+<pre class="programlisting">void BZ2_bzReadGetUnused( int* bzerror, BZFILE *b, 
+                          void** unused, int* nUnused );</pre>
+<p>Returns data which was read from the compressed file but
+was not needed to get to the logical end-of-stream.
+<code class="computeroutput">*unused</code> is set to the address of
+the data, and <code class="computeroutput">*nUnused</code> to the
+number of bytes.  <code class="computeroutput">*nUnused</code> will
+be set to a value between <code class="computeroutput">0</code> and
+<code class="computeroutput">BZ_MAX_UNUSED</code> inclusive.</p>
+<p>This function may only be called once
+<code class="computeroutput">BZ2_bzRead</code> has signalled
+<code class="computeroutput">BZ_STREAM_END</code> but before
+<code class="computeroutput">BZ2_bzReadClose</code>.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+  if b is NULL
+  or unused is NULL or nUnused is NULL
+BZ_SEQUENCE_ERROR
+  if BZ_STREAM_END has not been signalled
+  or if b was opened with BZ2_bzWriteOpen
+BZ_OK
+  otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzReadClose</pre>
+</div>
+<div class="sect2" title="3.4.4. BZ2_bzReadClose">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzreadclose"></a>3.4.4. BZ2_bzReadClose</h3></div></div></div>
+<pre class="programlisting">void BZ2_bzReadClose ( int *bzerror, BZFILE *b );</pre>
+<p>Releases all memory pertaining to the compressed file
+<code class="computeroutput">b</code>.
+<code class="computeroutput">BZ2_bzReadClose</code> does not call
+<code class="computeroutput">fclose</code> on the underlying file
+handle, so you should do that yourself if appropriate.
+<code class="computeroutput">BZ2_bzReadClose</code> should be called
+to clean up after all error situations.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_SEQUENCE_ERROR
+  if b was opened with BZ2_bzOpenWrite
+BZ_OK
+  otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">none</pre>
+</div>
+<div class="sect2" title="3.4.5. BZ2_bzWriteOpen">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzwriteopen"></a>3.4.5. BZ2_bzWriteOpen</h3></div></div></div>
+<pre class="programlisting">BZFILE *BZ2_bzWriteOpen( int *bzerror, FILE *f, 
+                         int blockSize100k, int verbosity,
+                         int workFactor );</pre>
+<p>Prepare to write compressed data to file handle
+<code class="computeroutput">f</code>.
+<code class="computeroutput">f</code> should refer to a file which
+has been opened for writing, and for which the error indicator
+(<code class="computeroutput">ferror(f)</code>)is not set.</p>
+<p>For the meaning of parameters
+<code class="computeroutput">blockSize100k</code>,
+<code class="computeroutput">verbosity</code> and
+<code class="computeroutput">workFactor</code>, see
+<code class="computeroutput">BZ2_bzCompressInit</code>.</p>
+<p>All required memory is allocated at this stage, so if the
+call completes successfully,
+<code class="computeroutput">BZ_MEM_ERROR</code> cannot be signalled
+by a subsequent call to
+<code class="computeroutput">BZ2_bzWrite</code>.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if f is NULL
+  or blockSize100k &lt; 1 or blockSize100k &gt; 9
+BZ_IO_ERROR
+  if ferror(f) is nonzero
+BZ_MEM_ERROR
+  if insufficient memory is available
+BZ_OK
+  otherwise</pre>
+<p>Possible return values:</p>
+<pre class="programlisting">Pointer to an abstract BZFILE
+  if bzerror is BZ_OK
+NULL
+  otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzWrite
+  if bzerror is BZ_OK
+  (you could go directly to BZ2_bzWriteClose, but this would be pretty pointless)
+BZ2_bzWriteClose
+  otherwise</pre>
+</div>
+<div class="sect2" title="3.4.6. BZ2_bzWrite">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzwrite"></a>3.4.6. BZ2_bzWrite</h3></div></div></div>
+<pre class="programlisting">void BZ2_bzWrite ( int *bzerror, BZFILE *b, void *buf, int len );</pre>
+<p>Absorbs <code class="computeroutput">len</code> bytes from the
+buffer <code class="computeroutput">buf</code>, eventually to be
+compressed and written to the file.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+  if b is NULL or buf is NULL or len &lt; 0
+BZ_SEQUENCE_ERROR
+  if b was opened with BZ2_bzReadOpen
+BZ_IO_ERROR
+  if there is an error writing the compressed file.
+BZ_OK
+  otherwise</pre>
+</div>
+<div class="sect2" title="3.4.7. BZ2_bzWriteClose">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzwriteclose"></a>3.4.7. BZ2_bzWriteClose</h3></div></div></div>
+<pre class="programlisting">void BZ2_bzWriteClose( int *bzerror, BZFILE* f,
+                       int abandon,
+                       unsigned int* nbytes_in,
+                       unsigned int* nbytes_out );
+
+void BZ2_bzWriteClose64( int *bzerror, BZFILE* f,
+                         int abandon,
+                         unsigned int* nbytes_in_lo32,
+                         unsigned int* nbytes_in_hi32,
+                         unsigned int* nbytes_out_lo32,
+                         unsigned int* nbytes_out_hi32 );</pre>
+<p>Compresses and flushes to the compressed file all data so
+far supplied by <code class="computeroutput">BZ2_bzWrite</code>.
+The logical end-of-stream markers are also written, so subsequent
+calls to <code class="computeroutput">BZ2_bzWrite</code> are
+illegal.  All memory associated with the compressed file
+<code class="computeroutput">b</code> is released.
+<code class="computeroutput">fflush</code> is called on the
+compressed file, but it is not
+<code class="computeroutput">fclose</code>'d.</p>
+<p>If <code class="computeroutput">BZ2_bzWriteClose</code> is
+called to clean up after an error, the only action is to release
+the memory.  The library records the error codes issued by
+previous calls, so this situation will be detected automatically.
+There is no attempt to complete the compression operation, nor to
+<code class="computeroutput">fflush</code> the compressed file.  You
+can force this behaviour to happen even in the case of no error,
+by passing a nonzero value to
+<code class="computeroutput">abandon</code>.</p>
+<p>If <code class="computeroutput">nbytes_in</code> is non-null,
+<code class="computeroutput">*nbytes_in</code> will be set to be the
+total volume of uncompressed data handled.  Similarly,
+<code class="computeroutput">nbytes_out</code> will be set to the
+total volume of compressed data written.  For compatibility with
+older versions of the library,
+<code class="computeroutput">BZ2_bzWriteClose</code> only yields the
+lower 32 bits of these counts.  Use
+<code class="computeroutput">BZ2_bzWriteClose64</code> if you want
+the full 64 bit counts.  These two functions are otherwise
+absolutely identical.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_SEQUENCE_ERROR
+  if b was opened with BZ2_bzReadOpen
+BZ_IO_ERROR
+  if there is an error writing the compressed file
+BZ_OK
+  otherwise</pre>
+</div>
+<div class="sect2" title="3.4.8. Handling embedded compressed data streams">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="embed"></a>3.4.8. Handling embedded compressed data streams</h3></div></div></div>
+<p>The high-level library facilitates use of
+<code class="computeroutput">bzip2</code> data streams which form
+some part of a surrounding, larger data stream.</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><p>For writing, the library takes an open file handle,
+  writes compressed data to it,
+  <code class="computeroutput">fflush</code>es it but does not
+  <code class="computeroutput">fclose</code> it.  The calling
+  application can write its own data before and after the
+  compressed data stream, using that same file handle.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>Reading is more complex, and the facilities are not as
+  general as they could be since generality is hard to reconcile
+  with efficiency.  <code class="computeroutput">BZ2_bzRead</code>
+  reads from the compressed file in blocks of size
+  <code class="computeroutput">BZ_MAX_UNUSED</code> bytes, and in
+  doing so probably will overshoot the logical end of compressed
+  stream.  To recover this data once decompression has ended,
+  call <code class="computeroutput">BZ2_bzReadGetUnused</code> after
+  the last call of <code class="computeroutput">BZ2_bzRead</code>
+  (the one returning
+  <code class="computeroutput">BZ_STREAM_END</code>) but before
+  calling
+  <code class="computeroutput">BZ2_bzReadClose</code>.</p></li>
+</ul></div>
+<p>This mechanism makes it easy to decompress multiple
+<code class="computeroutput">bzip2</code> streams placed end-to-end.
+As the end of one stream, when
+<code class="computeroutput">BZ2_bzRead</code> returns
+<code class="computeroutput">BZ_STREAM_END</code>, call
+<code class="computeroutput">BZ2_bzReadGetUnused</code> to collect
+the unused data (copy it into your own buffer somewhere).  That
+data forms the start of the next compressed stream.  To start
+uncompressing that next stream, call
+<code class="computeroutput">BZ2_bzReadOpen</code> again, feeding in
+the unused data via the <code class="computeroutput">unused</code> /
+<code class="computeroutput">nUnused</code> parameters.  Keep doing
+this until <code class="computeroutput">BZ_STREAM_END</code> return
+coincides with the physical end of file
+(<code class="computeroutput">feof(f)</code>).  In this situation
+<code class="computeroutput">BZ2_bzReadGetUnused</code> will of
+course return no data.</p>
+<p>This should give some feel for how the high-level interface
+can be used.  If you require extra flexibility, you'll have to
+bite the bullet and get to grips with the low-level
+interface.</p>
+</div>
+<div class="sect2" title="3.4.9. Standard file-reading/writing code">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="std-rdwr"></a>3.4.9. Standard file-reading/writing code</h3></div></div></div>
+<p>Here's how you'd write data to a compressed file:</p>
+<pre class="programlisting">FILE*   f;
+BZFILE* b;
+int     nBuf;
+char    buf[ /* whatever size you like */ ];
+int     bzerror;
+int     nWritten;
+
+f = fopen ( "myfile.bz2", "w" );
+if ( !f ) {
+ /* handle error */
+}
+b = BZ2_bzWriteOpen( &amp;bzerror, f, 9 );
+if (bzerror != BZ_OK) {
+ BZ2_bzWriteClose ( b );
+ /* handle error */
+}
+
+while ( /* condition */ ) {
+ /* get data to write into buf, and set nBuf appropriately */
+ nWritten = BZ2_bzWrite ( &amp;bzerror, b, buf, nBuf );
+ if (bzerror == BZ_IO_ERROR) { 
+   BZ2_bzWriteClose ( &amp;bzerror, b );
+   /* handle error */
+ }
+}
+
+BZ2_bzWriteClose( &amp;bzerror, b );
+if (bzerror == BZ_IO_ERROR) {
+ /* handle error */
+}</pre>
+<p>And to read from a compressed file:</p>
+<pre class="programlisting">FILE*   f;
+BZFILE* b;
+int     nBuf;
+char    buf[ /* whatever size you like */ ];
+int     bzerror;
+int     nWritten;
+
+f = fopen ( "myfile.bz2", "r" );
+if ( !f ) {
+  /* handle error */
+}
+b = BZ2_bzReadOpen ( &amp;bzerror, f, 0, NULL, 0 );
+if ( bzerror != BZ_OK ) {
+  BZ2_bzReadClose ( &amp;bzerror, b );
+  /* handle error */
+}
+
+bzerror = BZ_OK;
+while ( bzerror == BZ_OK &amp;&amp; /* arbitrary other conditions */) {
+  nBuf = BZ2_bzRead ( &amp;bzerror, b, buf, /* size of buf */ );
+  if ( bzerror == BZ_OK ) {
+    /* do something with buf[0 .. nBuf-1] */
+  }
+}
+if ( bzerror != BZ_STREAM_END ) {
+   BZ2_bzReadClose ( &amp;bzerror, b );
+   /* handle error */
+} else {
+   BZ2_bzReadClose ( &amp;bzerror, b );
+}</pre>
+</div>
+</div>
+<div class="sect1" title="3.5. Utility functions">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="util-fns"></a>3.5. Utility functions</h2></div></div></div>
+<div class="sect2" title="3.5.1. BZ2_bzBuffToBuffCompress">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzbufftobuffcompress"></a>3.5.1. BZ2_bzBuffToBuffCompress</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzBuffToBuffCompress( char*         dest,
+                              unsigned int* destLen,
+                              char*         source,
+                              unsigned int  sourceLen,
+                              int           blockSize100k,
+                              int           verbosity,
+                              int           workFactor );</pre>
+<p>Attempts to compress the data in <code class="computeroutput">source[0
+.. sourceLen-1]</code> into the destination buffer,
+<code class="computeroutput">dest[0 .. *destLen-1]</code>.  If the
+destination buffer is big enough,
+<code class="computeroutput">*destLen</code> is set to the size of
+the compressed data, and <code class="computeroutput">BZ_OK</code>
+is returned.  If the compressed data won't fit,
+<code class="computeroutput">*destLen</code> is unchanged, and
+<code class="computeroutput">BZ_OUTBUFF_FULL</code> is
+returned.</p>
+<p>Compression in this manner is a one-shot event, done with a
+single call to this function.  The resulting compressed data is a
+complete <code class="computeroutput">bzip2</code> format data
+stream.  There is no mechanism for making additional calls to
+provide extra input data.  If you want that kind of mechanism,
+use the low-level interface.</p>
+<p>For the meaning of parameters
+<code class="computeroutput">blockSize100k</code>,
+<code class="computeroutput">verbosity</code> and
+<code class="computeroutput">workFactor</code>, see
+<code class="computeroutput">BZ2_bzCompressInit</code>.</p>
+<p>To guarantee that the compressed data will fit in its
+buffer, allocate an output buffer of size 1% larger than the
+uncompressed data, plus six hundred extra bytes.</p>
+<p><code class="computeroutput">BZ2_bzBuffToBuffDecompress</code>
+will not write data at or beyond
+<code class="computeroutput">dest[*destLen]</code>, even in case of
+buffer overflow.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if dest is NULL or destLen is NULL
+  or blockSize100k &lt; 1 or blockSize100k &gt; 9
+  or verbosity &lt; 0 or verbosity &gt; 4
+  or workFactor &lt; 0 or workFactor &gt; 250
+BZ_MEM_ERROR
+  if insufficient memory is available 
+BZ_OUTBUFF_FULL
+  if the size of the compressed data exceeds *destLen
+BZ_OK
+  otherwise</pre>
+</div>
+<div class="sect2" title="3.5.2. BZ2_bzBuffToBuffDecompress">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzbufftobuffdecompress"></a>3.5.2. BZ2_bzBuffToBuffDecompress</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzBuffToBuffDecompress( char*         dest,
+                                unsigned int* destLen,
+                                char*         source,
+                                unsigned int  sourceLen,
+                                int           small,
+                                int           verbosity );</pre>
+<p>Attempts to decompress the data in <code class="computeroutput">source[0
+.. sourceLen-1]</code> into the destination buffer,
+<code class="computeroutput">dest[0 .. *destLen-1]</code>.  If the
+destination buffer is big enough,
+<code class="computeroutput">*destLen</code> is set to the size of
+the uncompressed data, and <code class="computeroutput">BZ_OK</code>
+is returned.  If the compressed data won't fit,
+<code class="computeroutput">*destLen</code> is unchanged, and
+<code class="computeroutput">BZ_OUTBUFF_FULL</code> is
+returned.</p>
+<p><code class="computeroutput">source</code> is assumed to hold
+a complete <code class="computeroutput">bzip2</code> format data
+stream.
+<code class="computeroutput">BZ2_bzBuffToBuffDecompress</code> tries
+to decompress the entirety of the stream into the output
+buffer.</p>
+<p>For the meaning of parameters
+<code class="computeroutput">small</code> and
+<code class="computeroutput">verbosity</code>, see
+<code class="computeroutput">BZ2_bzDecompressInit</code>.</p>
+<p>Because the compression ratio of the compressed data cannot
+be known in advance, there is no easy way to guarantee that the
+output buffer will be big enough.  You may of course make
+arrangements in your code to record the size of the uncompressed
+data, but such a mechanism is beyond the scope of this
+library.</p>
+<p><code class="computeroutput">BZ2_bzBuffToBuffDecompress</code>
+will not write data at or beyond
+<code class="computeroutput">dest[*destLen]</code>, even in case of
+buffer overflow.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if dest is NULL or destLen is NULL
+  or small != 0 &amp;&amp; small != 1
+  or verbosity &lt; 0 or verbosity &gt; 4
+BZ_MEM_ERROR
+  if insufficient memory is available 
+BZ_OUTBUFF_FULL
+  if the size of the compressed data exceeds *destLen
+BZ_DATA_ERROR
+  if a data integrity error was detected in the compressed data
+BZ_DATA_ERROR_MAGIC
+  if the compressed data doesn't begin with the right magic bytes
+BZ_UNEXPECTED_EOF
+  if the compressed data ends unexpectedly
+BZ_OK
+  otherwise</pre>
+</div>
+</div>
+<div class="sect1" title="3.6. zlib compatibility functions">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="zlib-compat"></a>3.6. zlib compatibility functions</h2></div></div></div>
+<p>Yoshioka Tsuneo has contributed some functions to give
+better <code class="computeroutput">zlib</code> compatibility.
+These functions are <code class="computeroutput">BZ2_bzopen</code>,
+<code class="computeroutput">BZ2_bzread</code>,
+<code class="computeroutput">BZ2_bzwrite</code>,
+<code class="computeroutput">BZ2_bzflush</code>,
+<code class="computeroutput">BZ2_bzclose</code>,
+<code class="computeroutput">BZ2_bzerror</code> and
+<code class="computeroutput">BZ2_bzlibVersion</code>.  These
+functions are not (yet) officially part of the library.  If they
+break, you get to keep all the pieces.  Nevertheless, I think
+they work ok.</p>
+<pre class="programlisting">typedef void BZFILE;
+
+const char * BZ2_bzlibVersion ( void );</pre>
+<p>Returns a string indicating the library version.</p>
+<pre class="programlisting">BZFILE * BZ2_bzopen  ( const char *path, const char *mode );
+BZFILE * BZ2_bzdopen ( int        fd,    const char *mode );</pre>
+<p>Opens a <code class="computeroutput">.bz2</code> file for
+reading or writing, using either its name or a pre-existing file
+descriptor.  Analogous to <code class="computeroutput">fopen</code>
+and <code class="computeroutput">fdopen</code>.</p>
+<pre class="programlisting">int BZ2_bzread  ( BZFILE* b, void* buf, int len );
+int BZ2_bzwrite ( BZFILE* b, void* buf, int len );</pre>
+<p>Reads/writes data from/to a previously opened
+<code class="computeroutput">BZFILE</code>.  Analogous to
+<code class="computeroutput">fread</code> and
+<code class="computeroutput">fwrite</code>.</p>
+<pre class="programlisting">int  BZ2_bzflush ( BZFILE* b );
+void BZ2_bzclose ( BZFILE* b );</pre>
+<p>Flushes/closes a <code class="computeroutput">BZFILE</code>.
+<code class="computeroutput">BZ2_bzflush</code> doesn't actually do
+anything.  Analogous to <code class="computeroutput">fflush</code>
+and <code class="computeroutput">fclose</code>.</p>
+<pre class="programlisting">const char * BZ2_bzerror ( BZFILE *b, int *errnum )</pre>
+<p>Returns a string describing the more recent error status of
+<code class="computeroutput">b</code>, and also sets
+<code class="computeroutput">*errnum</code> to its numerical
+value.</p>
+</div>
+<div class="sect1" title="3.7. Using the library in a stdio-free environment">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="stdio-free"></a>3.7. Using the library in a stdio-free environment</h2></div></div></div>
+<div class="sect2" title="3.7.1. Getting rid of stdio">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="stdio-bye"></a>3.7.1. Getting rid of stdio</h3></div></div></div>
+<p>In a deeply embedded application, you might want to use
+just the memory-to-memory functions.  You can do this
+conveniently by compiling the library with preprocessor symbol
+<code class="computeroutput">BZ_NO_STDIO</code> defined.  Doing this
+gives you a library containing only the following eight
+functions:</p>
+<p><code class="computeroutput">BZ2_bzCompressInit</code>,
+<code class="computeroutput">BZ2_bzCompress</code>,
+<code class="computeroutput">BZ2_bzCompressEnd</code>
+<code class="computeroutput">BZ2_bzDecompressInit</code>,
+<code class="computeroutput">BZ2_bzDecompress</code>,
+<code class="computeroutput">BZ2_bzDecompressEnd</code>
+<code class="computeroutput">BZ2_bzBuffToBuffCompress</code>,
+<code class="computeroutput">BZ2_bzBuffToBuffDecompress</code></p>
+<p>When compiled like this, all functions will ignore
+<code class="computeroutput">verbosity</code> settings.</p>
+</div>
+<div class="sect2" title="3.7.2. Critical error handling">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="critical-error"></a>3.7.2. Critical error handling</h3></div></div></div>
+<p><code class="computeroutput">libbzip2</code> contains a number
+of internal assertion checks which should, needless to say, never
+be activated.  Nevertheless, if an assertion should fail,
+behaviour depends on whether or not the library was compiled with
+<code class="computeroutput">BZ_NO_STDIO</code> set.</p>
+<p>For a normal compile, an assertion failure yields the
+message:</p>
+<div class="blockquote"><blockquote class="blockquote">
+<p>bzip2/libbzip2: internal error number N.</p>
+<p>This is a bug in bzip2/libbzip2, 1.0.6 of 6 September 2010.
+Please report it to me at: jseward@bzip.org.  If this happened
+when you were using some program which uses libbzip2 as a
+component, you should also report this bug to the author(s)
+of that program.  Please make an effort to report this bug;
+timely and accurate bug reports eventually lead to higher
+quality software.  Thanks.  Julian Seward, 6 September 2010.
+</p>
+</blockquote></div>
+<p>where <code class="computeroutput">N</code> is some error code
+number.  If <code class="computeroutput">N == 1007</code>, it also
+prints some extra text advising the reader that unreliable memory
+is often associated with internal error 1007. (This is a
+frequently-observed-phenomenon with versions 1.0.0/1.0.1).</p>
+<p><code class="computeroutput">exit(3)</code> is then
+called.</p>
+<p>For a <code class="computeroutput">stdio</code>-free library,
+assertion failures result in a call to a function declared
+as:</p>
+<pre class="programlisting">extern void bz_internal_error ( int errcode );</pre>
+<p>The relevant code is passed as a parameter.  You should
+supply such a function.</p>
+<p>In either case, once an assertion failure has occurred, any
+<code class="computeroutput">bz_stream</code> records involved can
+be regarded as invalid.  You should not attempt to resume normal
+operation with them.</p>
+<p>You may, of course, change critical error handling to suit
+your needs.  As I said above, critical errors indicate bugs in
+the library and should not occur.  All "normal" error situations
+are indicated via error return codes from functions, and can be
+recovered from.</p>
+</div>
+</div>
+<div class="sect1" title="3.8. Making a Windows DLL">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="win-dll"></a>3.8. Making a Windows DLL</h2></div></div></div>
+<p>Everything related to Windows has been contributed by
+Yoshioka Tsuneo
+(<code class="computeroutput">tsuneo@rr.iij4u.or.jp</code>), so
+you should send your queries to him (but perhaps Cc: me,
+<code class="computeroutput">jseward@bzip.org</code>).</p>
+<p>My vague understanding of what to do is: using Visual C++
+5.0, open the project file
+<code class="computeroutput">libbz2.dsp</code>, and build.  That's
+all.</p>
+<p>If you can't open the project file for some reason, make a
+new one, naming these files:
+<code class="computeroutput">blocksort.c</code>,
+<code class="computeroutput">bzlib.c</code>,
+<code class="computeroutput">compress.c</code>,
+<code class="computeroutput">crctable.c</code>,
+<code class="computeroutput">decompress.c</code>,
+<code class="computeroutput">huffman.c</code>,
+<code class="computeroutput">randtable.c</code> and
+<code class="computeroutput">libbz2.def</code>.  You will also need
+to name the header files <code class="computeroutput">bzlib.h</code>
+and <code class="computeroutput">bzlib_private.h</code>.</p>
+<p>If you don't use VC++, you may need to define the
+proprocessor symbol
+<code class="computeroutput">_WIN32</code>.</p>
+<p>Finally, <code class="computeroutput">dlltest.c</code> is a
+sample program using the DLL.  It has a project file,
+<code class="computeroutput">dlltest.dsp</code>.</p>
+<p>If you just want a makefile for Visual C, have a look at
+<code class="computeroutput">makefile.msc</code>.</p>
+<p>Be aware that if you compile
+<code class="computeroutput">bzip2</code> itself on Win32, you must
+set <code class="computeroutput">BZ_UNIX</code> to 0 and
+<code class="computeroutput">BZ_LCCWIN32</code> to 1, in the file
+<code class="computeroutput">bzip2.c</code>, before compiling.
+Otherwise the resulting binary won't work correctly.</p>
+<p>I haven't tried any of this stuff myself, but it all looks
+plausible.</p>
+</div>
+</div>
+<div class="chapter" title="4. Miscellanea">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="misc"></a>4. Miscellanea</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="sect1"><a href="#limits">4.1. Limitations of the compressed file format</a></span></dt>
+<dt><span class="sect1"><a href="#port-issues">4.2. Portability issues</a></span></dt>
+<dt><span class="sect1"><a href="#bugs">4.3. Reporting bugs</a></span></dt>
+<dt><span class="sect1"><a href="#package">4.4. Did you get the right package?</a></span></dt>
+<dt><span class="sect1"><a href="#reading">4.5. Further Reading</a></span></dt>
+</dl>
+</div>
+<p>These are just some random thoughts of mine.  Your mileage
+may vary.</p>
+<div class="sect1" title="4.1. Limitations of the compressed file format">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="limits"></a>4.1. Limitations of the compressed file format</h2></div></div></div>
+<p><code class="computeroutput">bzip2-1.0.X</code>,
+<code class="computeroutput">0.9.5</code> and
+<code class="computeroutput">0.9.0</code> use exactly the same file
+format as the original version,
+<code class="computeroutput">bzip2-0.1</code>.  This decision was
+made in the interests of stability.  Creating yet another
+incompatible compressed file format would create further
+confusion and disruption for users.</p>
+<p>Nevertheless, this is not a painless decision.  Development
+work since the release of
+<code class="computeroutput">bzip2-0.1</code> in August 1997 has
+shown complexities in the file format which slow down
+decompression and, in retrospect, are unnecessary.  These
+are:</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><p>The run-length encoder, which is the first of the
+   compression transformations, is entirely irrelevant.  The
+   original purpose was to protect the sorting algorithm from the
+   very worst case input: a string of repeated symbols.  But
+   algorithm steps Q6a and Q6b in the original Burrows-Wheeler
+   technical report (SRC-124) show how repeats can be handled
+   without difficulty in block sorting.</p></li>
+<li class="listitem" style="list-style-type: disc">
+<p>The randomisation mechanism doesn't really need to be
+   there.  Udi Manber and Gene Myers published a suffix array
+   construction algorithm a few years back, which can be employed
+   to sort any block, no matter how repetitive, in O(N log N)
+   time.  Subsequent work by Kunihiko Sadakane has produced a
+   derivative O(N (log N)^2) algorithm which usually outperforms
+   the Manber-Myers algorithm.</p>
+<p>I could have changed to Sadakane's algorithm, but I find
+   it to be slower than <code class="computeroutput">bzip2</code>'s
+   existing algorithm for most inputs, and the randomisation
+   mechanism protects adequately against bad cases.  I didn't
+   think it was a good tradeoff to make.  Partly this is due to
+   the fact that I was not flooded with email complaints about
+   <code class="computeroutput">bzip2-0.1</code>'s performance on
+   repetitive data, so perhaps it isn't a problem for real
+   inputs.</p>
+<p>Probably the best long-term solution, and the one I have
+   incorporated into 0.9.5 and above, is to use the existing
+   sorting algorithm initially, and fall back to a O(N (log N)^2)
+   algorithm if the standard algorithm gets into
+   difficulties.</p>
+</li>
+<li class="listitem" style="list-style-type: disc"><p>The compressed file format was never designed to be
+   handled by a library, and I have had to jump though some hoops
+   to produce an efficient implementation of decompression.  It's
+   a bit hairy.  Try passing
+   <code class="computeroutput">decompress.c</code> through the C
+   preprocessor and you'll see what I mean.  Much of this
+   complexity could have been avoided if the compressed size of
+   each block of data was recorded in the data stream.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>An Adler-32 checksum, rather than a CRC32 checksum,
+   would be faster to compute.</p></li>
+</ul></div>
+<p>It would be fair to say that the
+<code class="computeroutput">bzip2</code> format was frozen before I
+properly and fully understood the performance consequences of
+doing so.</p>
+<p>Improvements which I was able to incorporate into 0.9.0,
+despite using the same file format, are:</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc"><p>Single array implementation of the inverse BWT.  This
+  significantly speeds up decompression, presumably because it
+  reduces the number of cache misses.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>Faster inverse MTF transform for large MTF values.
+  The new implementation is based on the notion of sliding blocks
+  of values.</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzip2-0.9.0</code> now reads
+  and writes files with <code class="computeroutput">fread</code>
+  and <code class="computeroutput">fwrite</code>; version 0.1 used
+  <code class="computeroutput">putc</code> and
+  <code class="computeroutput">getc</code>.  Duh!  Well, you live
+  and learn.</p></li>
+</ul></div>
+<p>Further ahead, it would be nice to be able to do random
+access into files.  This will require some careful design of
+compressed file formats.</p>
+</div>
+<div class="sect1" title="4.2. Portability issues">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="port-issues"></a>4.2. Portability issues</h2></div></div></div>
+<p>After some consideration, I have decided not to use GNU
+<code class="computeroutput">autoconf</code> to configure 0.9.5 or
+1.0.</p>
+<p><code class="computeroutput">autoconf</code>, admirable and
+wonderful though it is, mainly assists with portability problems
+between Unix-like platforms.  But
+<code class="computeroutput">bzip2</code> doesn't have much in the
+way of portability problems on Unix; most of the difficulties
+appear when porting to the Mac, or to Microsoft's operating
+systems.  <code class="computeroutput">autoconf</code> doesn't help
+in those cases, and brings in a whole load of new
+complexity.</p>
+<p>Most people should be able to compile the library and
+program under Unix straight out-of-the-box, so to speak,
+especially if you have a version of GNU C available.</p>
+<p>There are a couple of
+<code class="computeroutput">__inline__</code> directives in the
+code.  GNU C (<code class="computeroutput">gcc</code>) should be
+able to handle them.  If you're not using GNU C, your C compiler
+shouldn't see them at all.  If your compiler does, for some
+reason, see them and doesn't like them, just
+<code class="computeroutput">#define</code>
+<code class="computeroutput">__inline__</code> to be
+<code class="computeroutput">/* */</code>.  One easy way to do this
+is to compile with the flag
+<code class="computeroutput">-D__inline__=</code>, which should be
+understood by most Unix compilers.</p>
+<p>If you still have difficulties, try compiling with the
+macro <code class="computeroutput">BZ_STRICT_ANSI</code> defined.
+This should enable you to build the library in a strictly ANSI
+compliant environment.  Building the program itself like this is
+dangerous and not supported, since you remove
+<code class="computeroutput">bzip2</code>'s checks against
+compressing directories, symbolic links, devices, and other
+not-really-a-file entities.  This could cause filesystem
+corruption!</p>
+<p>One other thing: if you create a
+<code class="computeroutput">bzip2</code> binary for public distribution,
+please consider linking it statically (<code class="computeroutput">gcc
+-static</code>).  This avoids all sorts of library-version
+issues that others may encounter later on.</p>
+<p>If you build <code class="computeroutput">bzip2</code> on
+Win32, you must set <code class="computeroutput">BZ_UNIX</code> to 0
+and <code class="computeroutput">BZ_LCCWIN32</code> to 1, in the
+file <code class="computeroutput">bzip2.c</code>, before compiling.
+Otherwise the resulting binary won't work correctly.</p>
+</div>
+<div class="sect1" title="4.3. Reporting bugs">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bugs"></a>4.3. Reporting bugs</h2></div></div></div>
+<p>I tried pretty hard to make sure
+<code class="computeroutput">bzip2</code> is bug free, both by
+design and by testing.  Hopefully you'll never need to read this
+section for real.</p>
+<p>Nevertheless, if <code class="computeroutput">bzip2</code> dies
+with a segmentation fault, a bus error or an internal assertion
+failure, it will ask you to email me a bug report.  Experience from
+years of feedback of bzip2 users indicates that almost all these
+problems can be traced to either compiler bugs or hardware
+problems.</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="bullet">
+<li class="listitem" style="list-style-type: disc">
+<p>Recompile the program with no optimisation, and
+  see if it works.  And/or try a different compiler.  I heard all
+  sorts of stories about various flavours of GNU C (and other
+  compilers) generating bad code for
+  <code class="computeroutput">bzip2</code>, and I've run across two
+  such examples myself.</p>
+<p>2.7.X versions of GNU C are known to generate bad code
+  from time to time, at high optimisation levels.  If you get
+  problems, try using the flags
+  <code class="computeroutput">-O2</code>
+  <code class="computeroutput">-fomit-frame-pointer</code>
+  <code class="computeroutput">-fno-strength-reduce</code>.  You
+  should specifically <span class="emphasis"><em>not</em></span> use
+  <code class="computeroutput">-funroll-loops</code>.</p>
+<p>You may notice that the Makefile runs six tests as part
+  of the build process.  If the program passes all of these, it's
+  a pretty good (but not 100%) indication that the compiler has
+  done its job correctly.</p>
+</li>
+<li class="listitem" style="list-style-type: disc">
+<p>If <code class="computeroutput">bzip2</code>
+  crashes randomly, and the crashes are not repeatable, you may
+  have a flaky memory subsystem.
+  <code class="computeroutput">bzip2</code> really hammers your
+  memory hierarchy, and if it's a bit marginal, you may get these
+  problems.  Ditto if your disk or I/O subsystem is slowly
+  failing.  Yup, this really does happen.</p>
+<p>Try using a different machine of the same type, and see
+  if you can repeat the problem.</p>
+</li>
+<li class="listitem" style="list-style-type: disc"><p>This isn't really a bug, but ... If
+  <code class="computeroutput">bzip2</code> tells you your file is
+  corrupted on decompression, and you obtained the file via FTP,
+  there is a possibility that you forgot to tell FTP to do a
+  binary mode transfer.  That absolutely will cause the file to
+  be non-decompressible.  You'll have to transfer it
+  again.</p></li>
+</ul></div>
+<p>If you've incorporated
+<code class="computeroutput">libbzip2</code> into your own program
+and are getting problems, please, please, please, check that the
+parameters you are passing in calls to the library, are correct,
+and in accordance with what the documentation says is allowable.
+I have tried to make the library robust against such problems,
+but I'm sure I haven't succeeded.</p>
+<p>Finally, if the above comments don't help, you'll have to
+send me a bug report.  Now, it's just amazing how many people
+will send me a bug report saying something like:</p>
+<pre class="programlisting">bzip2 crashed with segmentation fault on my machine</pre>
+<p>and absolutely nothing else.  Needless to say, a such a
+report is <span class="emphasis"><em>totally, utterly, completely and
+comprehensively 100% useless; a waste of your time, my time, and
+net bandwidth</em></span>.  With no details at all, there's no way
+I can possibly begin to figure out what the problem is.</p>
+<p>The rules of the game are: facts, facts, facts.  Don't omit
+them because "oh, they won't be relevant".  At the bare
+minimum:</p>
+<pre class="programlisting">Machine type.  Operating system version.  
+Exact version of bzip2 (do bzip2 -V).  
+Exact version of the compiler used.  
+Flags passed to the compiler.</pre>
+<p>However, the most important single thing that will help me
+is the file that you were trying to compress or decompress at the
+time the problem happened.  Without that, my ability to do
+anything more than speculate about the cause, is limited.</p>
+</div>
+<div class="sect1" title="4.4. Did you get the right package?">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="package"></a>4.4. Did you get the right package?</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> is a resource hog.
+It soaks up large amounts of CPU cycles and memory.  Also, it
+gives very large latencies.  In the worst case, you can feed many
+megabytes of uncompressed data into the library before getting
+any compressed output, so this probably rules out applications
+requiring interactive behaviour.</p>
+<p>These aren't faults of my implementation, I hope, but more
+an intrinsic property of the Burrows-Wheeler transform
+(unfortunately).  Maybe this isn't what you want.</p>
+<p>If you want a compressor and/or library which is faster,
+uses less memory but gets pretty good compression, and has
+minimal latency, consider Jean-loup Gailly's and Mark Adler's
+work, <code class="computeroutput">zlib-1.2.1</code> and
+<code class="computeroutput">gzip-1.2.4</code>.  Look for them at 
+<a class="ulink" href="http://www.zlib.org" target="_top">http://www.zlib.org</a> and 
+<a class="ulink" href="http://www.gzip.org" target="_top">http://www.gzip.org</a>
+respectively.</p>
+<p>For something faster and lighter still, you might try Markus F
+X J Oberhumer's <code class="computeroutput">LZO</code> real-time
+compression/decompression library, at 
+<a class="ulink" href="http://www.oberhumer.com/opensource" target="_top">http://www.oberhumer.com/opensource</a>.</p>
+</div>
+<div class="sect1" title="4.5. Further Reading">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="reading"></a>4.5. Further Reading</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> is not research
+work, in the sense that it doesn't present any new ideas.
+Rather, it's an engineering exercise based on existing
+ideas.</p>
+<p>Four documents describe essentially all the ideas behind
+<code class="computeroutput">bzip2</code>:</p>
+<div class="literallayout"><p>Michael Burrows and D. J. Wheeler:<br>
+  "A block-sorting lossless data compression algorithm"<br>
+   10th May 1994. <br>
+   Digital SRC Research Report 124.<br>
+   ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-124.ps.gz<br>
+   If you have trouble finding it, try searching at the<br>
+   New Zealand Digital Library, http://www.nzdl.org.<br>
+<br>
+Daniel S. Hirschberg and Debra A. LeLewer<br>
+  "Efficient Decoding of Prefix Codes"<br>
+   Communications of the ACM, April 1990, Vol 33, Number 4.<br>
+   You might be able to get an electronic copy of this<br>
+   from the ACM Digital Library.<br>
+<br>
+David J. Wheeler<br>
+   Program bred3.c and accompanying document bred3.ps.<br>
+   This contains the idea behind the multi-table Huffman coding scheme.<br>
+   ftp://ftp.cl.cam.ac.uk/users/djw3/<br>
+<br>
+Jon L. Bentley and Robert Sedgewick<br>
+  "Fast Algorithms for Sorting and Searching Strings"<br>
+   Available from Sedgewick's web page,<br>
+   www.cs.princeton.edu/~rs<br>
+</p></div>
+<p>The following paper gives valuable additional insights into
+the algorithm, but is not immediately the basis of any code used
+in bzip2.</p>
+<div class="literallayout"><p>Peter Fenwick:<br>
+   Block Sorting Text Compression<br>
+   Proceedings of the 19th Australasian Computer Science Conference,<br>
+     Melbourne, Australia.  Jan 31 - Feb 2, 1996.<br>
+   ftp://ftp.cs.auckland.ac.nz/pub/peter-f/ACSC96paper.ps</p></div>
+<p>Kunihiko Sadakane's sorting algorithm, mentioned above, is
+available from:</p>
+<div class="literallayout"><p>http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz<br>
+</p></div>
+<p>The Manber-Myers suffix array construction algorithm is
+described in a paper available from:</p>
+<div class="literallayout"><p>http://www.cs.arizona.edu/people/gene/PAPERS/suffix.ps<br>
+</p></div>
+<p>Finally, the following papers document some
+investigations I made into the performance of sorting
+and decompression algorithms:</p>
+<div class="literallayout"><p>Julian Seward<br>
+   On the Performance of BWT Sorting Algorithms<br>
+   Proceedings of the IEEE Data Compression Conference 2000<br>
+     Snowbird, Utah.  28-30 March 2000.<br>
+<br>
+Julian Seward<br>
+   Space-time Tradeoffs in the Inverse B-W Transform<br>
+   Proceedings of the IEEE Data Compression Conference 2001<br>
+     Snowbird, Utah.  27-29 March 2001.<br>
+</p></div>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/bzip2/manual.pdf b/bzip2/manual.pdf
new file mode 100644 (file)
index 0000000..f1c31a0
Binary files /dev/null and b/bzip2/manual.pdf differ
diff --git a/bzip2/manual.ps b/bzip2/manual.ps
new file mode 100644 (file)
index 0000000..cbc6f92
--- /dev/null
@@ -0,0 +1,72843 @@
+%!PS-Adobe-3.0
+%%Creator: PassiveTeX 1.25
+%%LanguageLevel: 2
+%%DocumentSuppliedResources: (atend)
+%%DocumentMedia: plain 612 792 0 () ()
+%%BoundingBox: 0 0 612 792
+%%Pages: 38
+%%EndComments
+%%BeginDefaults
+%%PageMedia: plain
+%%EndDefaults
+%%BeginProlog
+%%BeginResource: procset xpdf 3.00 0
+%%Copyright: Copyright 1996-2004 Glyph & Cog, LLC
+/xpdf 75 dict def xpdf begin
+% PDF special state
+/pdfDictSize 15 def
+/pdfSetup {
+  3 1 roll 2 array astore
+  /setpagedevice where {
+    pop 3 dict begin
+      /PageSize exch def
+      /ImagingBBox null def
+      { /Duplex true def } if
+    currentdict end setpagedevice
+  } {
+    pop pop
+  } ifelse
+} def
+/pdfStartPage {
+  pdfDictSize dict begin
+  /pdfFillCS [] def
+  /pdfFillXform {} def
+  /pdfStrokeCS [] def
+  /pdfStrokeXform {} def
+  /pdfFill [0] def
+  /pdfStroke [0] def
+  /pdfFillOP false def
+  /pdfStrokeOP false def
+  /pdfLastFill false def
+  /pdfLastStroke false def
+  /pdfTextMat [1 0 0 1 0 0] def
+  /pdfFontSize 0 def
+  /pdfCharSpacing 0 def
+  /pdfTextRender 0 def
+  /pdfTextRise 0 def
+  /pdfWordSpacing 0 def
+  /pdfHorizScaling 1 def
+  /pdfTextClipPath [] def
+} def
+/pdfEndPage { end } def
+% PDF color state
+/cs { /pdfFillXform exch def dup /pdfFillCS exch def
+      setcolorspace } def
+/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def
+      setcolorspace } def
+/sc { pdfLastFill not { pdfFillCS setcolorspace } if
+      dup /pdfFill exch def aload pop pdfFillXform setcolor
+     /pdfLastFill true def /pdfLastStroke false def } def
+/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if
+      dup /pdfStroke exch def aload pop pdfStrokeXform setcolor
+     /pdfLastStroke true def /pdfLastFill false def } def
+/op { /pdfFillOP exch def
+      pdfLastFill { pdfFillOP setoverprint } if } def
+/OP { /pdfStrokeOP exch def
+      pdfLastStroke { pdfStrokeOP setoverprint } if } def
+/fCol {
+  pdfLastFill not {
+    pdfFillCS setcolorspace
+    pdfFill aload pop pdfFillXform setcolor
+    pdfFillOP setoverprint
+    /pdfLastFill true def /pdfLastStroke false def
+  } if
+} def
+/sCol {
+  pdfLastStroke not {
+    pdfStrokeCS setcolorspace
+    pdfStroke aload pop pdfStrokeXform setcolor
+    pdfStrokeOP setoverprint
+    /pdfLastStroke true def /pdfLastFill false def
+  } if
+} def
+% build a font
+/pdfMakeFont {
+  4 3 roll findfont
+  4 2 roll matrix scale makefont
+  dup length dict begin
+    { 1 index /FID ne { def } { pop pop } ifelse } forall
+    /Encoding exch def
+    currentdict
+  end
+  definefont pop
+} def
+/pdfMakeFont16 {
+  exch findfont
+  dup length dict begin
+    { 1 index /FID ne { def } { pop pop } ifelse } forall
+    /WMode exch def
+    currentdict
+  end
+  definefont pop
+} def
+% graphics state operators
+/q { gsave pdfDictSize dict begin } def
+/Q {
+  end grestore
+  /pdfLastFill where {
+    pop
+    pdfLastFill {
+      pdfFillOP setoverprint
+    } {
+      pdfStrokeOP setoverprint
+    } ifelse
+  } if
+} def
+/cm { concat } def
+/d { setdash } def
+/i { setflat } def
+/j { setlinejoin } def
+/J { setlinecap } def
+/M { setmiterlimit } def
+/w { setlinewidth } def
+% path segment operators
+/m { moveto } def
+/l { lineto } def
+/c { curveto } def
+/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+      neg 0 rlineto closepath } def
+/h { closepath } def
+% path painting operators
+/S { sCol stroke } def
+/Sf { fCol stroke } def
+/f { fCol fill } def
+/f* { fCol eofill } def
+% clipping operators
+/W { clip newpath } def
+/W* { eoclip newpath } def
+/Ws { strokepath clip newpath } def
+% text state operators
+/Tc { /pdfCharSpacing exch def } def
+/Tf { dup /pdfFontSize exch def
+      dup pdfHorizScaling mul exch matrix scale
+      pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put
+      exch findfont exch makefont setfont } def
+/Tr { /pdfTextRender exch def } def
+/Ts { /pdfTextRise exch def } def
+/Tw { /pdfWordSpacing exch def } def
+/Tz { /pdfHorizScaling exch def } def
+% text positioning operators
+/Td { pdfTextMat transform moveto } def
+/Tm { /pdfTextMat exch def } def
+% text string operators
+/cshow where {
+  pop
+  /cshow2 {
+    dup {
+      pop pop
+      1 string dup 0 3 index put 3 index exec
+    } exch cshow
+    pop pop
+  } def
+}{
+  /cshow2 {
+    currentfont /FontType get 0 eq {
+      0 2 2 index length 1 sub {
+        2 copy get exch 1 add 2 index exch get
+        2 copy exch 256 mul add
+        2 string dup 0 6 5 roll put dup 1 5 4 roll put
+        3 index exec
+      } for
+    } {
+      dup {
+        1 string dup 0 3 index put 3 index exec
+      } forall
+    } ifelse
+    pop pop
+  } def
+} ifelse
+/awcp {
+  exch {
+    false charpath
+    5 index 5 index rmoveto
+    6 index eq { 7 index 7 index rmoveto } if
+  } exch cshow2
+  6 {pop} repeat
+} def
+/Tj {
+  fCol
+  1 index stringwidth pdfTextMat idtransform pop
+  sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse
+  pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
+  4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
+  pdfTextMat dtransform
+  6 5 roll Tj1
+} def
+/Tj16 {
+  fCol
+  2 index stringwidth pdfTextMat idtransform pop
+  sub exch div
+  pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
+  4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
+  pdfTextMat dtransform
+  6 5 roll Tj1
+} def
+/Tj16V {
+  fCol
+  2 index stringwidth pdfTextMat idtransform exch pop
+  sub exch div
+  0 pdfWordSpacing pdfTextMat dtransform 32
+  4 3 roll pdfCharSpacing add 0 exch
+  pdfTextMat dtransform
+  6 5 roll Tj1
+} def
+/Tj1 {
+  0 pdfTextRise pdfTextMat dtransform rmoveto
+  currentpoint 8 2 roll
+  pdfTextRender 1 and 0 eq {
+    6 copy awidthshow
+  } if
+  pdfTextRender 3 and dup 1 eq exch 2 eq or {
+    7 index 7 index moveto
+    6 copy
+    currentfont /FontType get 3 eq { fCol } { sCol } ifelse
+    false awcp currentpoint stroke moveto
+  } if
+  pdfTextRender 4 and 0 ne {
+    8 6 roll moveto
+    false awcp
+    /pdfTextClipPath [ pdfTextClipPath aload pop
+      {/moveto cvx}
+      {/lineto cvx}
+      {/curveto cvx}
+      {/closepath cvx}
+    pathforall ] def
+    currentpoint newpath moveto
+  } {
+    8 {pop} repeat
+  } ifelse
+  0 pdfTextRise neg pdfTextMat dtransform rmoveto
+} def
+/TJm { pdfFontSize 0.001 mul mul neg 0
+       pdfTextMat dtransform rmoveto } def
+/TJmV { pdfFontSize 0.001 mul mul neg 0 exch
+        pdfTextMat dtransform rmoveto } def
+/Tclip { pdfTextClipPath cvx exec clip newpath
+         /pdfTextClipPath [] def } def
+/Tclip* { pdfTextClipPath cvx exec eoclip newpath
+         /pdfTextClipPath [] def } def
+% Level 2 image operators
+/pdfImBuf 100 string def
+/pdfIm {
+  image
+  { currentfile pdfImBuf readline
+    not { pop exit } if
+    (%-EOD-) eq { exit } if } loop
+} def
+/pdfImM {
+  fCol imagemask
+  { currentfile pdfImBuf readline
+    not { pop exit } if
+    (%-EOD-) eq { exit } if } loop
+} def
+/pr { 2 index 2 index 3 2 roll putinterval 4 add } def
+/pdfImClip {
+  gsave
+  0 2 4 index length 1 sub {
+    dup 4 index exch 2 copy
+    get 5 index div put
+    1 add 3 index exch 2 copy
+    get 3 index div put
+  } for
+  pop pop rectclip
+} def
+/pdfImClipEnd { grestore } def
+% shading operators
+/colordelta {
+  false 0 1 3 index length 1 sub {
+    dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {
+      pop true
+    } if
+  } for
+  exch pop exch pop
+} def
+/funcCol { func n array astore } def
+/funcSH {
+  dup 0 eq {
+    true
+  } {
+    dup 6 eq {
+      false
+    } {
+      4 index 4 index funcCol dup
+      6 index 4 index funcCol dup
+      3 1 roll colordelta 3 1 roll
+      5 index 5 index funcCol dup
+      3 1 roll colordelta 3 1 roll
+      6 index 8 index funcCol dup
+      3 1 roll colordelta 3 1 roll
+      colordelta or or or
+    } ifelse
+  } ifelse
+  {
+    1 add
+    4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch
+    6 index 6 index 4 index 4 index 4 index funcSH
+    2 index 6 index 6 index 4 index 4 index funcSH
+    6 index 2 index 4 index 6 index 4 index funcSH
+    5 3 roll 3 2 roll funcSH pop pop
+  } {
+    pop 3 index 2 index add 0.5 mul 3 index  2 index add 0.5 mul
+    funcCol sc
+    dup 4 index exch mat transform m
+    3 index 3 index mat transform l
+    1 index 3 index mat transform l
+    mat transform l pop pop h f*
+  } ifelse
+} def
+/axialCol {
+  dup 0 lt {
+    pop t0
+  } {
+    dup 1 gt {
+      pop t1
+    } {
+      dt mul t0 add
+    } ifelse
+  } ifelse
+  func n array astore
+} def
+/axialSH {
+  dup 0 eq {
+    true
+  } {
+    dup 8 eq {
+      false
+    } {
+      2 index axialCol 2 index axialCol colordelta
+    } ifelse
+  } ifelse
+  {
+    1 add 3 1 roll 2 copy add 0.5 mul
+    dup 4 3 roll exch 4 index axialSH
+    exch 3 2 roll axialSH
+  } {
+    pop 2 copy add 0.5 mul
+    axialCol sc
+    exch dup dx mul x0 add exch dy mul y0 add
+    3 2 roll dup dx mul x0 add exch dy mul y0 add
+    dx abs dy abs ge {
+      2 copy yMin sub dy mul dx div add yMin m
+      yMax sub dy mul dx div add yMax l
+      2 copy yMax sub dy mul dx div add yMax l
+      yMin sub dy mul dx div add yMin l
+      h f*
+    } {
+      exch 2 copy xMin sub dx mul dy div add xMin exch m
+      xMax sub dx mul dy div add xMax exch l
+      exch 2 copy xMax sub dx mul dy div add xMax exch l
+      xMin sub dx mul dy div add xMin exch l
+      h f*
+    } ifelse
+  } ifelse
+} def
+/radialCol {
+  dup t0 lt {
+    pop t0
+  } {
+    dup t1 gt {
+      pop t1
+    } if
+  } ifelse
+  func n array astore
+} def
+/radialSH {
+  dup 0 eq {
+    true
+  } {
+    dup 8 eq {
+      false
+    } {
+      2 index dt mul t0 add radialCol
+      2 index dt mul t0 add radialCol colordelta
+    } ifelse
+  } ifelse
+  {
+    1 add 3 1 roll 2 copy add 0.5 mul
+    dup 4 3 roll exch 4 index radialSH
+    exch 3 2 roll radialSH
+  } {
+    pop 2 copy add 0.5 mul dt mul t0 add
+    radialCol sc
+    encl {
+      exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+      0 360 arc h
+      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+      360 0 arcn h f
+    } {
+      2 copy
+      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+      a1 a2 arcn
+      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+      a2 a1 arcn h
+      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+      a1 a2 arc
+      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+      a2 a1 arc h f
+    } ifelse
+  } ifelse
+} def
+end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+xpdf begin
+%%BeginResource: font PYRIYB+NimbusSanL-Bold
+%!PS-AdobeFont-1.0: NimbusSanL-Bold 1.05
+%%CreationDate: Wed Dec 22 1999
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% (URW)++,Copyright 1999 by (URW)++ Design & Development
+% See the file COPYING (GNU General Public License) for license conditions.
+% As a special exception, permission is granted to include this font
+% program in a Postscript or PDF file that consists of a document that
+% contains text to be displayed or printed using this font, regardless
+% of the conditions or license applying to the document itself.
+12 dict begin
+/FontInfo 10 dict dup begin
+/version (1.05) readonly def
+/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
+/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
+/FullName (Nimbus Sans L Bold) readonly def
+/FamilyName (Nimbus Sans L) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -155 def
+/UnderlineThickness 69 def
+end readonly def
+/FontName /PYRIYB+NimbusSanL-Bold def
+/PaintType 0 def
+/WMode 0 def
+/FontBBox {-173 -307 1003 949} readonly def
+/FontType 1 def
+/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae
+6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27
+bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf
+045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670
+0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4
+1b2b9e8f09253b61177e95ea219474796072f4b363fd772dae3a9d9385cd2163
+c2c8062ef9af240bc02404e5411b401d68ee5d983d33df8a63b6da7ed443e71a
+e94a32ce1db15d759113b684bdc92cb4c920e35cb677534219abcea434fba862
+2fbc8237219af7943fb467616d86b4251b350647c43c8df74289646adecf0367
+7c838d720affd234259e947e6ac432993323e8fc0b1c7609675558ae470b19fc
+ba7b5ca1eff86dfe4d9ef0356f5d57d03f0b2d0f449d6165b92c78c00162b164
+648ca123b1ffa8c2bcdf125864ccc81c7d58f19374b71dcdacc3c43450bca81c
+364753c7d444062a98ce202aa990c652d540b1dd09459bd4818f7675d21cd2e1
+45a0d2670c3136a6c56fed36fa640520c0a880f954cf4bea74789d14c9b7ca0a
+e91f4ece020bb0d3cf1890cb79d94675c25c7ca667199195134e70ef0db9949a
+416f0a0443f1191421f2323202445f5af44871eed6956d3a3de21a34e302d41b
+d7eef2a4023a66862fef89ca6386a8e47ba55e6f89db590cc810feb27b68238a
+205275e7573968693cfe1f8a60b5af3fc965dc05bbac5bbd6d2ef74c4f140423
+9fb13eda8457a5b26248ca5ca4d3f896b0a93b69a9045b0adc25b43df700e90b
+820f28307cc6f6ff2fa4a06a8a6deb8cba4cb0d136da07593fabc1c8ba1149d9
+1c422f461a429ece40b7c90417320167d99ffa9490f9abc3101f2359bef6c6f2
+15c5585c8733ca06a9cb793d618247757063ff41c5fce1a209ea5a138777dad8
+943b73186bc17e03fb06ba658e5b3305e39078f5de984bfe093ab3d782150e2f
+8545c9601bd2a531a8196e157f8f18017c0331881abf07d6c21931fcf9b81c51
+be05d2ace462ab8899e2929f0d821eddb18e9887cb7e8e3ae0beda34ccd0428a
+38c4429417cebce5ef4bebf7f64eedca8769d004d2432ded2240b732481a6da7
+458cd26e4730c4aecdc1078ee3fbaf6cd275b426bbca2d0cbd42eb7b100b1c58
+f043391fc5929fca7ccb7d2188b6cec6bbdb78079e36d67129c17aef9fa72fa7
+5357dda5167e3c0ddb4f9266f3ef69c2ce9b6191ba911c1fc740549496aa76af
+b86e4fddc0f31f92595f8bc0bdd3ac613b16426d722c0d27822944899572bdd7
+96d248b1adba5ec18a7f0cab096e134c36b2fcccd0b2104e43b2123936dbf7d6
+e0706616a7676da73a30a36cfe2231fba5e1fe69952a2f0ac15145c5cff411a8
+b57db37742efd6b78096d0fc69fbcdea39cb05d034f31c23b04ee90fcb4484ab
+2053e8dd69a2eaf120a6bb64bd55409ab4b6a6e92d305e40974b0df80009f4d9
+8fe9e8aceddb346f8e75941c1189aeb685f4f02d20814ad6bbe3c4364bd1c64f
+9c1f111790dd74d635520606a6bc978b65ccb6e8bcfd8fdbae26ea62e36d0317
+5564995f2a07393255d7c3450303f5a26b783afa95962e9438fc3b10239fc8be
+7809f48340aa9a61ded2e1de62b8ece240dbd1dc8be3819ac3e9aacb6e165923
+4a264036c6017b46af959f7e574185e66a3a161eed1f99b8496a9fcfac13492d
+fe3f21bf1c0c1dd432fb523701060720730e9f51b76082ef4e72d2f2ebae7a00
+ecc0e1a922d6ded5c4f0a76eef3f6e157210a3a46a4a30114f032ba029d8207a
+5946b8242fc9b939559654b5c9831eab6bc2f1a8cd2779f95698f26bdfe2e421
+cccfadd7e6684364a8ce71574f2d675239e404f754237da4cb564bc7b23d7159
+5b1dd8a0b62d6bc044fe0bd2ea98458fb2188b8ab1af6438e9693ebf939c7c9e
+db285c87698d8eb206cf58d89a05e74a150ae0f0f0300dc1b3bcf1f3d6b73bd4
+70e604c23d313121a4cdcfedcc834feec5b1894e5384979966f496fea5cbf1db
+7f3645abc9a5e9fe04f056648f8b5882a5399fafad915207a1434b7184b48949
+43aa2c3ae059f96905277ec06fc91c4536efe679c6fa6e71167496cc0d2f297d
+d07159b01a02731e578879fb16f9ffd84768207629ba38f902230a03fc844eee
+f9fb458929cc8e1c988b486e9cdc3d00a84de8bf078ba4f1c73cf88a2cbb20a4
+e19a8c02d1bd767103c08b8ce14162a9cd99d167fd5cdbf53bc39fa14cab520b
+2e91ef7a2952c936c9825e30e3ed350ce9ad799b27b1091a0b2f3be2208838d3
+1bcdb3aad13a1299bd93b3f1a972c04f117f05bd9e5029b6c799eb25e3e98734
+a0ca4a814d824ee4ca5383c6eb8c6c45882289cf2a52934fb7764f3556eaebba
+2823e5007f83f6a3d3a6eb0f7fbc3b91320de755745ab44513deeb65d6d81c0d
+838125bc1480d494b8cdecb253a230fb950df5fd1cfdf3b8b0c56aa0168b01aa
+a690593f22c25e6ea9d2de70b8bb93cccde841d2b923b4a70c7cccfdc1c400e5
+d3d71cf640a201397f09e13d27faec5d041b9d904467c4c573c6fb1820a55c1a
+8d0ec1f6ad502bbda597925ab353429a5bbdf3df01066e5cb3c2bf2d19e7df4c
+285766c06ea868f915e051139ecfe22ac9b8466a5da38e4e2f92c01428ac9051
+4930a9e9420c49bb8dac35d2a7e9846b0c9c8db992bd5dd95fdc0c8d5bf2e7d0
+baefc4ce8fe265e57b7b6c8c91e1797db85d90eb1888170744db916ca7e353bc
+4edb9fc4a1d42013ba275d3efc76259e25860a3549d104880157db843cc75fcd
+5a14800ab8743fdacc4c5ff064cbf3ba6e737833850e618ad9674d0fb01918e8
+ba87eb21aab2c494c6f6ff275d1501d78a9a97d2774ef4d5fbc8032955669b04
+69e354b9984fcf4c0b890e4e8a7796d3b7b3855815f5565b13d95b139c32ee02
+4a2057235cef0b98b1c0bb84d64921dce789c2eccf58364e832cc2bef739d807
+012512769f57dfefa384083415b668285db3f6f9e5c850205dba7c66b2da0280
+f771183b302ff529a691590321a6b06dff8593a28e83a7c66008ae45b2989da0
+0455253031ed2da983e9f1ad6fbaaf85035b4715cc1525cc8d7f1a3c0ec40f9c
+9eca905a50a0f4b1f5db072918617213f7863ef202c0adf926e3be1c8307b571
+2c94daf13b6a659d0f613cb319e8782a0a2781b3a61227424ff5e554eba32b55
+de5bae43483ff916e37a129c877f10f7c8c0ec1fee0fe10b3fc813d976e6e54c
+8ea8aeaa179727d3335f86662bd318260fbc314986a2f97f919ccd564e001903
+eec90c13abbf988114cd330ccd7e9fde42e218a9484b565a0cd7e9c1807ada0e
+e6a7f916c5a38d64dae17faae3e84822e6c63bf32148ae3dffc010920509491b
+424d27fc1970abe5ac799936aac46c4a98cf4c66b3182e73df72431e53ab1f36
+460e6c6a9b2db27e38eda8972835ba64210b45dd04a778d59c5751b8478312b4
+38012796f5a8be056c8e3a9e656bfa909f7ebfb7f32fa1ae99dc291b0f002a0f
+8873351e9684adbefe40d607631559c78f5688a708160ad3803db743282353bc
+20098c6212dfad417f106d92527506ca0c9a8864c1eb61997dfedbbbf1d052d9
+81ea593f2a6c4a90676aec9354a6598436d1de7e15e4979344eb976a917471cf
+c85e52ecf3437ebb4b6f8e9b292b7db33be0a9ead500b9353f3f367ceff8dd77
+32b67a559e56ffa3b5311fb52689c1e296c01a362a5c33bbf54b84624f2373bd
+2c25e90644683376f03da577dad1fb9a9903c5ee9f531a5f9da82aadb2098e3d
+15896c3c727d60ee5de0ee1cefa7e4aa3a5336ad2f1a845d16bb2ee58c50d2e8
+055e3e11272224b23c689f2e7ca0051d10ae4d4514b89483ed8d97c2a77894a5
+640d45bc86b1f66de1fd24b08034e70a443cf1c3ee17f2e7c7e11da524781c7a
+75a1f69de55aad4a309e27fc8ae9b1ce1c7d52f94fc84c59f37165e35f0f721a
+9d3d5c3bcead85d8150408c1387e5a348d1f0f376b3cc2d24346280af119df86
+b62f46e2ddf46f38db4aeaa456accf3f29082f73e9c5f003d77d99eea3d5156f
+2043e9b573fe34694910236ef3a1ce03ffb205406f3466e028b635f3ec5173e7
+482c796060bcb0efae62308e3624c466df5b49b1dfd3445233a03cff1f58bf86
+0a2b46225d1784e91f65ecd52504c8605aaf2a5dca560db5b8ce7eb86187e6df
+677c977ab4d1fec4f124324bc896ee7d669aa295897fec0b881221434fae3a4b
+1a3a1f1457fca374bca91885e74543ee919b881181642cb1f6c34ff817fa8e81
+18aa5e21c994d8aa12e1fdf5d6ff6726dd3d075dcd056f046ddd86894235d7db
+fc11532518f8d8695ae74dfbb769528840e8c30572ad06d6ef7b0ed471db9418
+11ea9cd32b4ba6205b5c198bd528b06092df3f50b9714fc1275aa5105a3a7422
+823d4a30d7fd19f77bb2cc4c5df23202d6a74092a710a9a855d8059031ec6ec9
+4d4fc86b37186c46a5cd183a81fc12a743c7168837953d2b5202ade986b4b00d
+86e41a88fad5ba0d91c150f4a7c396a02aef1ae9b96c0cea83b3306785ab3ba5
+39c49d9f984a08a9e8c06d282af94d87606d5601296456b6a0ef4ea8c88a1fcb
+96cd1b1bc0e287adfd1b9aa1a8c8a7d4a6b14ed3b04b1f0532ed5d40238ebf71
+5bd8c8b032afdccd26a940b19a1340b1e93041b2265b8534c099d14f00b82fbb
+2b55d8dc64691c3e5a6dd7c0cdc1212d0c80be2f454a7d8613d0cf64ac5bcc7c
+64d4166bfda12bc262de9cdfc614d7dc1bc569109bb84bf469071963e5a576db
+b19f3e748799d49c30612c1d7fa918d72051db6cfba44520b5b5689c87541560
+292dd6bf1f40f6a5af97c3ff71b1fb57cb36234be973890a1a610551a724abb6
+b01bb5bd1fc5191c9f99b389b6445a99de978b0d81e4baa92e8b121a1e1b32b1
+601a34dbe6cd348e56f59a92af56caa782b3b416958a6f1bb73771f35000fb9e
+a55a132f9b151bea59cafa3a1cc72f7cd60952852c53379530e0a6bd4e9545bd
+f78da021349902332707106bbb5d307960ea2bd811adf35b869bb210e44a5717
+8893af229268d805262725a0904bcb5ea7c17a39552a1f26283f54ae45449943
+5270b17b9afe2e0c0729e5f10461a8ddb85efc35dc8a32bcfebfdb16a0642e5c
+c69e5a25a661cfbd1f3a9386aa2433b68a356f36404f96d97fff817b42a58a62
+a5fcb5653373df412068876f541169bf642bce8458297fb6a6e936d80af2004c
+e9a248e1c92fb63b3e53caadd749924c390fd9f542496cf2347a3a429cc25917
+c31fc437291fa9856a7d3b2b6a5644d82e23a14d0281ed4d8f9dd687e06f23a0
+d0e8a3dab5fe6ded172ebbcac68218092f4480c7ceabc55b059877d7e82d2846
+b4f9e82aabc56f397be2c6b67040dc71a9d1f39b1a60c33288bbae4e41457830
+f8d8c96c8dce7c01bc6efd70e021a0c2d160a61b906a3ea551b7e3fe8c1f9952
+7e9583c6b6010e0887560f1c3e19e0be82efe91f0114e726c888f580d6b514cb
+a0933ccde04de0872dd0e07b1a7cede67bf9f4e73400d118a6d600e13debe6f2
+aa1d895dcc127c76ff82e579a06d8a3a323458808bad060afc953c2158d476d0
+fe0725dee6886bde038e2726886d255dec9052e9ba886a318c75b8c7a218edc5
+78783ab8dd90b738b16cfb47ef8610f428a4315c703763d6b3dda570cd0a89af
+4e6c215ea5395b13a5c1f0883faa2eb2d6de918ec5fef99c21758e4b6bf72861
+b684a28787b63d3ae7f1096b1c56e4862e7f3650884d0803db03362c587e2ed7
+bf5c7f2847bebe35327f1f7fb76f3cf7e9fec9a5c057acedf6245c724a8e754b
+d44e028181b75ad590b3989a7f340fd59c3b75cc4a8e28b155b5da0fbf3cc358
+375edb0992206514347924c69ab28e30c707f24199767937bd7990bc70bd5849
+5c335a752c06bdd9f0520c6d8b2f5fffce931b601151b37f1be9885e41864e31
+1ea0f33e17fb4b844425ee7de31d839ad3a8609bfc9e393079b9a7891e17b48f
+2e5fed17943313afccc55826cc0144c2e7ac9784261bb40d51bbd4467103f432
+865cd4b821dd5be8fc760171b49b70141ce2042376e879013edf8180d185d988
+591f9084536cbf97816291ee77255315987422c2c2489d209d78e0a2fd3fa71c
+28edfc1577db5c080e7881848222220a63605f00205c205b35d0a017013ca099
+deb71a9ffd511549c61f9ee36a63ee00b0610d1b290e073b8a067dd91bf52f9c
+ab53a258ccd29d9220a659e44717f84062d39dd554294996c46e69608ca111e1
+088494c6c3c0b75cf06c2b39a08172700b35d1efd0526d78f2ca5388056b02d8
+28962b456a44b1348bc4c199c2425217cee4297873ba2018259ad02cdb518b24
+023f4ffc5fd7c2b7b022d8f61aecd1e97bf78c7d0448611c0af788af2447d5a7
+b66b496dfde8522f9dc0ff8513baf8b19b51256da57159b87df032545708fad8
+0b15a0764cb951263a5008d1a61a1b69f171a5d7449f1c1d2cba92e9ae340e13
+ee455edc278caf37e5733a34a5c1b2206833d4ec3c41db8e8c760624c6031550
+7124f71f9d18399c3df46c5023a753a08ecc991b61acb6ad781cd9c258af17ae
+33a2f8c5a86b5dae8ae1061893bdbca4e76473fb073cc9c5c3389e525553a879
+16c23e3fb51d65f3cc3bf3e87f97a02eedfbb928cd37a770e7e7b5413cbfb0c1
+3281f30eac6290a85ffe8ebf68a7fe77b4a68982d010a2284051861a35230401
+234b3278bd810686b1ee0c63104adfeaeb7ec79e0a4fae757018fc05fb12db3d
+81e0400f7760b46fa0ac5f9e52583f2af265843cbb2ec1d1392ee68c7410c9f5
+87351a0f3247036a01080242732f5453b54a88de2d7515b5b570d94bd2b97f2a
+d3894658627178dc90029c8e7131855b422c912c9fb6141439042b1df9f3739f
+063d8d054258cb1c9cc893aed8097aa06fbb7e923b3756409c61b7cff54c2c87
+51cc2f11c2b7bc0be6868584f64bbbc22a1e0ed325b6c2064cc0ef2fa8acfde8
+6fa40b544ab6d2c360b6786c29b69e80d20566e1e25cbb075f9a687b428f4ed2
+10c028936c8f5e7308d2a3984290d96e5c8df5c959a563b4be5b7ce15c24d5d2
+fd6dfeee85e0e9595f52ef13aa08f52db73e858a3932e9e913f5ba674289523d
+0eaaefd670f3ba4fb5a0295816fcfc042f7141c64ce577b103558455dbd0852b
+730b2acb37b3115ca4ff017602f9428879e96a621a760e7961c006801c5908c5
+f291981da07820a11aaafc3f4ae613c7cb4424b0e1b797094ddd88829d5d4eff
+d8613b50b2df38eef34ad0b05a9f13dac5b3c31d44c06bcc58d737f7d239ebe3
+eee1a4f981b35641482b536ee869389888c2eb28b56a5d0864a7f451f7d362e3
+d56ef1ec01fc6eb85c40c78d791b16aedf904c7d75890bf99bfef9783fdff55d
+ee19cdf9e0217133b8af29fd87ad09382b8f64a6690f4ece0ff8116d44bac576
+be9a602084c63bd4dbf56354dfe69300cfcbbb99ae3c8226d02b1bef022851fd
+896d83549c594e8fa709d23465207626632319b253dbb32a74155939d9fa0631
+8aaeaf9c26c04a55e1fe935fc5d21f1d798107a625fc25cb90d2ca72c31b3eb2
+c2aef7615eeb8c7f0e7f767aa672ffc236271f98c01bf41acd72da9d108792e4
+66ed133eced633ba0fe7503aaf68ebb226ed6d0e18561eb03c9b9763680f9295
+7709b653d3940ddc7703da6c3fcd893ace04627cc6bd92b65b80cfba4d0a50c6
+d48c5239a76bdaa4319fa9f0382e5ff6bb51c5a390678ef4bcb6a56a13828f32
+fa51ba7bd7d6a11405b0873d4e96b93fc693f21bada72f9f257d89630711cca0
+c3a78e2a0e5735617e77a7a77881b37d77877df4eff9da9d465239f1f2dfb5dc
+9351a5dd8216e98c15cf443250b85be6a463526d8aaed42fabc1cdc095ef9e42
+8f956a2abed2cb7fa127f49bd2b5accf7ed80cef4fe96fea42c0ed4991bbb734
+596379a991607836c6ea74bbc359ecf2eb52d015910b847534a519cfc32d5216
+9510940a9ded08ed2a83fe52ee1275b05d19666994836add094ad38cc0a3e081
+bed96e0cec2d8e17d51bbe3a63a34884da909733ab092c9ce8d8e411ca3b2831
+a022e5a3fd1abccb902647e484833b8181d1b9edcb5448098e13b5ad289c9aa5
+8e4726f0c2df0ceb089401871c26c7ddfc5d5cbeeae249871ac5604056b69e96
+3c1bf9b8ce006b701c9523b5b9b145be6f6c7b9e513973df94cc2d37694850ec
+e54c80d2ce79309ce51515d2ba0d44855014654d1a999cad1a5e9dd53a34e44c
+9cb32ea91176d5c3294e3064016e8554b9b6c6d2e6c03b4e655bf2a7957d95ff
+01cae1dc020e577abe5775f656caf198f1073b7bfe06ea127ba3b1edf4784917
+51d41bea93204e6ad3aada6f2415a8bcd5c987b6629874253852ca417bf6a259
+27b0e7f34e0ed0f9dfbe1be2c64d805c2edf0bd62c77be4224613f2e788c56eb
+0dccd0a467bb30d529610944338ea0b832d3ecedd85ad4da22ea2b47e799a1a1
+1cd56274f7dcd9a66a32d8509f3d0eb4c4a160a723a9e71f504da5549eab101c
+70c73efbf1ee0805c0f8e394f94f3e6623eb2fb5896563404fe4a7f0d47e802f
+698295ca19ad813ae552e8dce8d6f73a7e676308a07f230edb99902132ca5b6e
+0e95558764ff3f6f854cc29b338a5e1bc14c9468b5528f5b5dc8bcce69bcd0b8
+e295f3ff96dff56779de49a1157c7d1fe777e3a94cf95e3c707d6c1fb41b279e
+9abf7b4077fe611a1669c689c1d9a81c933e8075af7b5b440c24318b26a1206e
+92266a64a0577abd20659d83fbc433621c7a01f74c6863d43b02651ea96fd0a1
+e1a553a05978a4fbff7d591254a5e3a2642c0eec9b4a0988e4aae449964323b7
+9bade117a3ce68969f62944d027dd0bf7ff0f73b0283c8843e9a3001bd096baa
+f61833401353462890af71b05b84b2e8a8a3bce954febceeaf5c10ec704a68ff
+24364e70e1749dbc2b1299887309e014f82b805c37aecf05fd413220403e48c3
+3cb49d0c265ec2511211833f8c475d7bdc3959c3378597773f02b5d41fbded8f
+eb58a06037a79c3424e56d48a1cf82672026b3122e379a0012322a325bef16b1
+f95958c7b22cce273e8aaa1e8e40978abf5626000a2563577e164b89e24e4d06
+483f503454a37fac420c7945ad53a6c102f1713208c99ab6ccb0bb3e50a70b6a
+38b38bce6444a7951cd669008776a1720790b0b6722be634f90120f42e3b5cdf
+9007d9b8fcfeb1c2042367c5f7445e69bbc19cbea5b305b1bca2f6398211ca07
+96d5bd57d23639b1a7d7a5f50b609dff3c7622e922714dffc7dbd6b820460c67
+e8ea1c017e57fd172fa3cac1678df44f20e718542342847e33698d382ec37f60
+21b7d901ca384beec87374854e4a1372610ef8fe5c69a141b860b5a9c51af0be
+8e33cd57dc6f1d2fe672e72fd0f370cef74a02fef6a0e6303b7445efa72758ff
+b98b3549de42d525c166c92b652ef1e71c92b0ed3c1ba2418dd13a2d301ea894
+7b3d54d469676944a58f147851fcd8500747899ec3bd885f25e1631a3dedd10b
+4eeb87c74ac62e316d2ebd3aa0ce027e91b39450ea3e30cb01baafab02ed0567
+cd83c482d6e92d7835fe387cd6c050d8f4f2f64b95fc44e1101d89e112b971e6
+61d975a98183617bc942f425b837e4e868136b17ecde0e1380ce8a52b95881da
+2bf547a37f38c603e43ae53f32b5a347e4b43c0bb86d8aaf447bb5f4c983616e
+be1a48c7dc636242f20e876baef484506e2888f0913d8b76b1086b60409a2a03
+e82ac9970d6c120a6621bd68250d88e95c01abb861af559132e6d9b8f5abbb66
+4152d65779019e678cc86909e31bee3d13a16d764998d94ae5df24f02fc8153d
+72b41953605ca86a99bc3dd05ca620e7a28d51beddff28596ec8eb878c09c041
+74baef8d2fc52b3b0c55e95b7482dde018c706a3fb83b945d3df90cffeb1380b
+09c4576040668f537083afc50a1e26d28c4d58bad52b17964871210ecb2f148c
+daa07db5d3780ecd1635cc5d5dc23867a13e152872c78e20b95f11a4afb8508e
+813f4c580f80546b2d5dcda546a6fa4b28a906511be9ae09f3adf926fa237825
+ac9f250d275294c5f21466af681e4e61ea6915d623c7d48837d0bbfd7f893a2c
+d347cd7514ace7badbbff683aa9c6eef46d1c830afac64a9f64b95a6fba4bc48
+a33135b70cf12c2eb19c2af6a45b9be09619e4b89f47ef4b9d3d234466822c1f
+3ce559a85fc52ac8aa947f981fb5fe7605a373f5484d4929932590eb79a504e5
+ec35c263a30ab3e50ca900c2488baf5f1c1c23cd42d6401bfd7b09172be16f1a
+df93f41ab0b4465a4f1e2ab556078dbe76729d69434690fec8f59894a77d3b8b
+bbd3a87346b6706fb127da2f6b458208befdd75d68207bc88ca1f2e36b65d170
+922071549c382790beee82ba0dfde07d7d5f58ebd02b19feeaeb6aaad59792cf
+461d467665cb3a0cda48058fb5181273c8632075e2f11f8de7181373a9b73901
+a816cfde3e2029a04b1139eb306132f989f4a2e85cbebfdc52bda2e88bd8d1df
+3f331602fe0fc1802abcb35b8e6dbe5bff9740a4af24077a725d17660fee662b
+209db93c54baffeffbce92a9e2e696d5f56f5d7c81b29cd00a59ccaa389183b0
+ae2507f0ec1a9e224097be40e0db4c8099a96a858425c6a680365704f39a05cd
+4887bf94f49e4f8efacdab96877a18272900237356ce576042dcb16e5851e1b9
+4fa0ef754cc9d84e91486d771871151a5983f158b7e05cecad73ba064c258397
+cd00cd6b8cecbb898c5d4609531d387ebf15a5c38b80efe629bedc9314736e90
+d4117c763f18dda7974d519ef1bef9824934159d0fe29edaea2173c69c56967e
+ff9c37eea1e8b38eaed338699c6a3763c6353dfb2584f6da9923ab74b18cbe05
+278a5ed2936b193c75c986e8bfdcc63904a25ecb4a04e998ef8789e9c3ec618f
+1fefe74fe5a23d368b563579e318bbe956f29d191748ee26bc883bec714e1f8c
+88c98dc012b95385e894919f1de5afc62c9c513014d6105baf24ecaf88275909
+4d13079cccc3f103d6751b4f79b785577686abc760a6c56bf34db0f2ac3d0b82
+ee63f9e750c7790d7a3a1626d66e70d26617459a8103e08b6f14af71c017d3c4
+e5b4450986908ec345af9bfc4d650cf35f337026ae940513a9b3de95df3e16c0
+588a59a7f2f1d5e2a418410b5e2fcb4692998921834fa44f30f2117228005347
+9a3a82341434ea71f82d87e1bbcaed725ede9f6001ae4c8651da9afa36b3e6ef
+07a8b311afe1bda98e3143c8e2417fc188bfd48627d9b6aae94f510054dab99c
+12fa0d5d73069f48c86391d27e37265c91ab1c06ce4d4bf0af63db65e16e783f
+7dc649a88967284c9d9fe861add619a3ffde0a31a5719bb456d1ab8010ccc8ec
+89615ae875db7a321398ff923c088a6ab51ffe2fd21d3541474d79f07e536709
+46d1a8c65e8dd6ba6f19410b76ee7b5468462b9aadd9f8ddb68c32b08b0df0c4
+f3b909fe714f453bb1ebe914752c5eb5f68377a82e5d5b90abc19402bd589b43
+05f905efc12878733902c54391c267fd81aecb8cd692aaaac3218d34a4c1612a
+5aa9844d171e6ebf94f4d8900236e8e27c5bd7460fa1e195c1077da5918afdc3
+90abc6db247885a42158c3cd36ee89d82cbf2471c6daf51120ba3f6937d537e9
+370af7ce73f3b50b742ade8264df9288120dd74094a064909c00764e9347d2f9
+a3f92bb53d8263053a3082809e04e9bc7c9f3b8a7c97c5cc1f9f886115676a18
+cc04c656aa33535e5893b8db3ba5d627f8810048b2a7a28e6d1374afd6af6980
+ace96ee05d890339773f6dbdc92f2f840b50770213bf6188dcdd1bad8d527e71
+9692ab1dfc47e7673c175a1b9841d56e2e0b30e8685b01a68ce561bfc6463a6a
+d34557d05276f7befbc1fec7bd56a18bf0292cd25eae57450b3b590e60181258
+4b35e2004e7b1e27f3b26d7108a03c94dea662b7342e38f8300adbd92261809e
+bee8ec971a7f2f59487c89357580f9aa8145a1825573f037a0ade5b98be24a86
+530435bcb82e17054f67fa873946c732c8840b9eaa9130bbd360ef27fe72ecfb
+b421627d2d52578373ca7ef9fc6f850f4b7f22e6501378de0a9dd56f5f5815f2
+7ea81d8ee3a4f7b98e59ea1cb3159f5816fa703b18f03c5b0aafbbdcc979df41
+7258af2ed57f7da62871c0efdab55fafcbda5fbef92ce65aa0ff37b92ce6c953
+a9d92a8c6e02b8a1f9a9f0c66461c5a62097e12e9f656c87ae283e6f3b63ed10
+a6a723316b9beb28b62a55d372b9a22bdc669b51533c5690e593f2a409619b2a
+d73655a40a33e83c65e66f18a40c8e77b048674fad760b9a7d86621181d498b5
+59707d36440af3e015851ce43cfad5d1d96e9274ad714ef46cac1a02974245a8
+d25d894caa256c320af31f954bf574dd95bf32e5841333063d32709b93b009fe
+e680d5b2bb5f95275d118a085e98506d0272fd1b8220a2343979bb1467f9006a
+1f17b2ae2941413683c3cbbaa1c0a3aa55193d46a2573f2cbb8b7adc7e74d0d0
+135dfa18405bfaeda37f3d4787a965192ca64e4462a0c701de5c361088b3319e
+7b5d19a14337068661abc7c36002ff4dbe90e7b655b8e06bd70e283cad1c5d88
+de63628c638083b303ee6b038836893707f6e1121ef56292a75bd9301d987ae1
+ada2acdf61ef74f2b3dc4f87c6374254f865f6e8f6c0933c54265e9a5cc7ef62
+432baad5fa08dd485c3b1d0e75ffd5180e99df967b85861d9710ff294e93cfc3
+7ba6c006164690c10339aae9c1113cb48687672e8a2dd88ea9af6d0cae13ac05
+9b61095b999c87bc3c80748fe6722bb76818b2339223dc051a4938f435b92629
+4395dc3d2b9b3a0e370363535d960735fca855ffcba0aefe767732f7991c5977
+46fb683b9a0c11fcd6a3eb370bb56d6611e7c20dfa1d9fdb3b90ef31bf0a6aaa
+d8bee6d7ceb116373e74f072d2c61b646f0da308955829be7578d1909b03c4d9
+307709be75ab3d72d0864af89bb713da0938f038ffb3459b793d06bb37d6efd5
+5d4e755f3403c32c28201fa5f979f51f3a9d4c521480e58ccf06cc60a056a5b1
+c48f27872ef36da126d580ec0520ee9d252cd27c207b6a12b27b1861ae0debbc
+21e549144604b277ac8e7b4caaf5f7220d67fa9a985001488c128e1a4c9ebaa9
+de54a13cd4baedcd50653b73a6514ac47bb5411d8094854212c9219caa4e4c7c
+447324ab35edc9ceeeef505fb71a2348c3be2082fba20b8ab572bf9276e84e2b
+0b328828eb0c636750dc104e741c5df9caf3808a061484a23dd0aafcf5bfd1a7
+319c50d09cb55d73c87d3ab59e74e29de58723ea32cb96a0b497e2e530b54b9a
+355a27d988ef4387d8260863e8beecbcc27e4b051961aeffcb8475d7da9bdec6
+42d6a55f06ae9af2450545811fc6486c6be309955c53121db95ac255263e93ef
+3adb9e07e56b1133c491b550a511204ed55c8dd911e2fc0669c90fd904267f0e
+79d56ddeb72895002a7f795349da2137b6eedcc300c1206dbdfdc3a52f71c86b
+8141b63c3d33957c66a9e074bfa703ba2344d802028d787878f9fea87fa9ccdf
+f4ed49f4daa6e6839fd64c91e60f99b8e10652bffdac46169c413a36e8105d8d
+9343496c1a9b5bc33cb5e573166d4097fb4f3f5517b38f9298de2ac6d51121e2
+0eb9f07ecaf4d70c56a5280948c67e506e47fe9d3465c7cd156e5768b70f694c
+57c11c80e7a4d1417c25690197d058d02216a81d7104ef27003dadb3ed10c742
+4b03f54aeba13d17f681fee3a8797754348b134d89572a2083225178a9db4466
+ababce914cf2777d3ae7effca5f4973eb2945672c0218c420173d8d2fdb8d60a
+a1b40773a74f904955e7991bc973d12eb5bffc4dd0032b1a1397cb5ba3b431cf
+92b76b1f7bf1f9eec8389e525553a8791692a9a9eb495822684df34bc5209953
+1b38bc4875beb62a391a8e0fdef5b0ad35190c44c782e374e3ca17b9f5e2f5b7
+c8566acd0df90ef22b50100f501a80c17a32ef4eb28da320c20ff407fa116404
+aef81d37037013406eb51aa024605e01257fd78c625bd120d4bbbed7bfd4f95f
+a3c3088a0fb237d44fdf4aa0bff28254063416918e276e7b68c545def20f896e
+509cdc2c31b65668200637bbfa587b547b77f81bad98ff0b70805d9c6fd17abd
+f107e1d39d98d9ba1a7bcdf98ed607a3770508ada6bc25fcb63f5bb642a4e028
+bed525fcd1a9dbf1e1520c5164a53c0ddb1b3974366b8feaaf766f02a4085f57
+948854365bad4f6cf18fc871256f9ba3c60a79f3d08617f6a483fb6b50ef2dd5
+0755b2b824dad8935247fcff268b7cd152cab7e7a876b381491589f3d4c65c50
+3353d07c94786db7346cb89cf5350b585cf890fde7a891e7646e5fb912b71db0
+10e73de1100848dd1bd100d0daf43c4bef2b43440513be6281ea0359ae0be4ff
+a861b07d06a311b97028daf2fcfb14eb8e8f713bca854befa5a46172dbc0dbd4
+448a8c20ce02a71d33457d4c52704733b90b005b03fe89fa90b73e747f273118
+4bc20d38fca2e51eb0d5bd5454a23e0fa6616a330d61e5a487aa516daa6ca1d7
+b8cfc260bedbfcdfd3d3d0c115359c73a67c1921df252899298bc9015a6c96dd
+e70e6dee29597cc7c111a565a6877ec4efe425783478bd79ae97b5d1bac5d10f
+5cf77c6c026966155264c7ff1dd30028f21bfe0b7948edb1710f30ee09747272
+81aa09b166177f5e507ce6a09a6368505a1d7b58d5aa2d63dac1b073442be702
+9b2ba6a5a6073bb8aa8c6f741e1b135a73675ef22ea810435f4b1a899d180e2e
+be37106d4db6ac2c01d2d962117c4b6a62b1eafdd923d89cc830c00f4cacf98a
+3e02d0863389d2dd73db37d8af50cee306da798989047e47c165d47926ec533d
+5e1f5fd0d039ff2fb3e01c61509b3ddc62754cc30b7946c4a705d56f16730b99
+8a40275da604170fe8da1f8d8c5e4a393c701aa708f916fb66939adf2546097f
+2ad583fd795ad2fd059e9450c6df7be3a22f36c359ddcd8de44e1106b1edeed8
+65e317c06382f6473e3d15fd731ee92b39d3a3dc42c9107ca046febf2ed214f8
+014ea9efdd078b94dfe6a53e5357dcb99a937583a89b90105349829575a5f474
+ce7519336dedef19083bf6d9312f19c78f09085db567895a10edb5a6cfbf3532
+5cec8e3db206815af7bd78c8dcde6a910eb9232eea4b9e68684be8083f335761
+916fc1f64c649fefda1b3fd499e851cdfa7ad22acd535a04986f35b62c2adf2e
+74519f043c7c1864c6b3a9d5126fd87c105f123711b560531f46628f872b085d
+ad00961bf770b386b416ca2c5a738ba54f7a7a2e234dd97b2918d007c135aabe
+9ba541eaa0d19c216b5a6f245cd33a1666e26bcd5ece41bbd5bfb3aea9511bd7
+da27388e8b62f49f0b4db0b190c5dbb7bfdb1fec5a786bf43783cbecf09d8056
+15ce4179710883f8fe7bf4fde22e8a7b46273172e9a4751b4fdf6ec099e8d685
+32a4c9c4708902285df499de4a6b0e143d72c13b747461bda19f5e3a34f1dc8a
+96dd2194b6083c75715f9f5261947ef0eb21c496effe37f407f45c5f66aadb99
+cf42aea5fab6694a64cd89daecab44bcc134280a3614f02c432b98054ff8be39
+7cb464de7b1ee896f798a90377bdd07afbc9394ba931c3fe490d11fc60506a3e
+476d86bff5d3d850683942744d651355cb081b39d8d2147409a4bbf3ec699da2
+d79303ca40261fa3b6ab5b17ff331eb3d9f01896590905a2c7841d1f4b1f85a0
+b4afeb0183a61e21958ab3f541d321ac6bc81dafc5dc633cf1f4231b0e4dbc9e
+bd3c
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F116_0 /PYRIYB+NimbusSanL-Bold 1 1
+[ /.notdef/.notdef/fi/fl/.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/exclam/quotedbl/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/less/equal/greater/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/backslash/bracketright/asciicircum/underscore
+  /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/braceleft/bar/braceright/asciitilde/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/bullet/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
+  /currency/copyright/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
+  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
+  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
+  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
+  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
+  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
+  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
+  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
+  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font XDVKOU+NimbusRomNo9L-Regu
+%!PS-AdobeFont-1.0: NimbusRomNo9L-Regu 1.05
+%%CreationDate: Wed Dec 22 1999
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% (URW)++,Copyright 1999 by (URW)++ Design & Development
+% See the file COPYING (GNU General Public License) for license conditions.
+% As a special exception, permission is granted to include this font
+% program in a Postscript or PDF file that consists of a document that
+% contains text to be displayed or printed using this font, regardless
+% of the conditions or license applying to the document itself.
+12 dict begin
+/FontInfo 10 dict dup begin
+/version (1.05) readonly def
+/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
+/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
+/FullName (Nimbus Roman No9 L Regular) readonly def
+/FamilyName (Nimbus Roman No9 L) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/FontName /XDVKOU+NimbusRomNo9L-Regu def
+/PaintType 0 def
+/WMode 0 def
+/FontBBox {-168 -281 1000 924} readonly def
+/FontType 1 def
+/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae
+6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27
+bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf
+045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670
+0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4
+1b2b9e8f09253b61177e95ea219474796072f4b363fe05fa763773acd59cb757
+ae119355777a1bfbd6751f24f58ee0133199ed331e67ff4101e33040d6628f4b
+77ee87860b8e32a4923e2c1fca43cf544a5eb1bcd649ebd836daecb23e3a986b
+9bd8398e690be6b48bd6479823a435defe1156284048c4d49b5a869164485630
+3810995159568b3dcf3734b11a3f25453e0e8b40b080c9aa94e140a58d5ebb74
+7d1e083dbe00ad5498c3b19deb502dc63d69032d8d31e6778af4713c30404059
+6a862aeb8cf607fa52a9348e3fe23c1a0296ddb41642aacd6aacd2c6d905073f
+98b58ebd11af774beee32533fa19871148dd6db41f3a8c499f25f37cf3955eb7
+bf5bbdbe984535820dd33f60cfe7c2b44ba6e10879b3c65948beed00a84b093e
+8e4ea07e34955aebfd0ed462afc5b4b42c5b8be85ce0ab1b9cba42969bbf8a36
+e2943b1d9b20f6ef3416e226763f55a196ca0d86788a6b0ed38ec5b0124ac901
+f55f2f67306ce94aae5809b2203bbb5a8b185b66b2f8a18a456d028f62d8e17f
+4cfccddc0743fb02567f0294ab77dca0b9708b262570e3097c76769bd590a09f
+ad1523e3bd1ed5fd8475c0b57b95011759d1a55c70b39970dccf76069cdb9690
+68a4626bc863ae1d579604011354cd3ebd51b54a1ba9789f7678546bdef64c9c
+51cb6f654c25578c3b4b7c2bbfad476423ab58c57f48b2a54c9d44ad356d106d
+8186a85f8578b1735610f6767883701431f5a2503341005020b639f45810440f
+f341eda457f8ad2213058a3369016452185f849ee25140060264a04eda7e04b8
+afedf6924f2da0adf944e4ee346e33735f6e78691634e18c4179f28fdb673ec1
+6a2b093eec51a4611030ffe1d4c1a1456e3ead051b01c94e5d9ee94c855cf31b
+b8e544e687f2e2a99fd8865ad44eb929430ed39ac0985e4a5c382e16aa2d6ec3
+3b396fe9643124dc587fde09d3d867e9efde49c283dd44fd33b04ba4eacded81
+b3e7d3f7c09d565a6412ac30fc8e81be8821a9031850579b02cefe615c8e7c22
+61a77e73f5382e58ae160043a5defca7470ea62b90e0260faaf5a97a7254b091
+2a187ace29ac6adfa49c7d6f35cdab93ad32553137363ba2f0dcbafd40fa8ffa
+7747eb9bb51dcd01291bc073331531dbdcea7db24c9a0302c9896a1c2cd0191a
+d88b33d0b0352b356c93987ed9613720cf2be3b164c6a4a3360bf41c9f178831
+62fb73ae514d9c57675572e8c1f93313fbd1b05302f57bbebaa2e76feefea0b8
+9c83d511164b53b481bc920f40d59d152bb1f5674344801f0dc7e71ca5de4e24
+cc79207c66d0b692fe7c1c258be75488f2a0bfd5c81ec5bd0585986d0c5d4575
+82e9ce40b7477b87facaa826ebf147bddb1dc60788dec671c199d18dcd2ca48a
+4653963ca85e8944074c501c8143685306d4f133037fea449b0d1cb4ab3bce89
+04a311f9410984d754a3509f51d89a4ef73ffa7f9f3bccd80daa0a34e0e10912
+b7897005607925758237d0bd3b92ac9669b1a1dcf19ff0864f84a993bf7cf266
+1d1b3981fbc5e4fdc3a5b70bd79bce35c6fcfc0a5aca0006433bc0c120073e96
+dd4ae86f022260fcfe119fd4655c3bf00be48c470b0d86e721afca140fe6bf31
+836d578fdae49d71676c77ebe2d09016e1ab71d7c681c8c0565cff9b73d79920
+1ee2def2f16d65647262f96082dd5c44fa3993d3bd1d10c217ea56b73b38428c
+767dd9b71530c5f01be2d2611cf9644c28f3f52fd814e463358d70de7bc6bafe
+cd377b48633d0107b05ad2472ad6652a1ad30c39adce69ebde3aadb1c5fcdaa6
+96fa9b3c3e63a7c4dac907e3b5cb7a3713505c5ad53c8dd8710acdb3786a919f
+b356cc2695cb227540a5f235ae1ba3c6f3547ff24606651e5887fe889cd8913d
+de9f3b04019ce0d724c1f6521925bd4fd8154f6f4d640ff94a0b0b027e483f9a
+bd1188942cdff486f1a234fdf8adeb552b7e7e10aa577ed3d559010aea480709
+fa1f644fe5b7ca3479599a7e708dcd3ba33a6b2d640f8e39492565965e3b7c74
+bc8c48f3ea9a6048e86197146abc446788a3c83782f797cd278ee1b740627726
+3e1703246bc561faa060de93d224ed3eb1bf548892bc64806c4e9186a2b276d0
+fed43a3021b5a54530de20db8168d44e1947cce7fa1dc8f7927a591d6798c5a2
+b51185c3e74bb6ac782af6f089a4204b6379298617c8f67e38900ac231610ab9
+79400dfaf270c91679c516d2062b949a8d91bd5c8c1a0af1e7401489ad6e8101
+b9103cb5f50dc53ddcf2b32afa218289e9f1b5e29e5c5a2a0f67238558343524
+78cb11a68006685e13f8b9ae54732c180b4949f09839b935b1f7a944f1d4bd84
+a5074b583202cc4aeccb4b8e18096e258bff705476440b9864e746f18703321e
+5d5e2f8ca5e2d07b195779f6a0d6a731116f1a26a484fb0d9931dfaafef53b41
+e56e00f32e3952261c0205afbb6f2afaffee7cc1fd39b2e108841f39dc8df97c
+0f776adaf41423b47c551d48add01398dad167f4590dccc3106a5a4386499462
+78831779383abaae807b3b03b5dbd4b973219f2d1d19369889dd72e446ec95e1
+37017fbf85f4064f81f27cdb4f9117be248a8d5a65225edca22e833df98da456
+98a428edafa84085c323399562865aaa8286eb5dc63dad6839b597386e0558d2
+11bc45d66e0e60a86c968519b8b305d5ba7ebc2fad7cb5004559544330668c1a
+7b77dc9762baafb4190dcc1aae670824824e00f023c574e1c017e33650e24fb5
+d4ad701ab8d93f0fd91867bd21299867f966e93cd621ec0332fa04a2a691ae0b
+179d1dd6364166f94716b69027d8d0bcfc6622a086dbe92198e5c625699d0bbf
+a9dee06d20554b4d82584108208ca24d7509c4ea30e71ec44f014f8cd97b8eeb
+f1322fd5b116009584559a3b0574e24329aef35d2964756d50ee8a0fdae1be91
+19e20fb52c3437ef677f37b549851cc9bb60c04cbee8d80b6f1442cd8676b0e7
+bc4b2c4883d212135bcde4fc15eff6d20269a6f4463b12c214d99e68f113c5c6
+7c2d25384d8e7b9eb31d79e2c4607421389827e2fac887dbf08a43a5ddbc5797
+797a1fd10143a4e97ad79bd0bd7f3f1205130061a6581a4d30183e71fe80d570
+42083823e3ecdb6d6352b6bd54413a9b6bbaab94a76d12ad93ff99f9433e3ec6
+bab36ccf8168cfb64c4b15987379cc129f6c7c1761df5d7dc46e0996e5588298
+b329b023056dd59f4befb792c4e43fa095d63df49b6e25f821b999b56ae05919
+16346777c2579ecd17b5a87f1505f4686ba2aad3045cb414cc65cde98b92c76f
+20a9be4a42b77e077b9c00eaa3914709c3fc1a16787e639a2c7fd9a30d9e8ffa
+1d5a900dc9cfd5c319ec34570cb758bae3a342d936a30915dbd5160922aaf241
+74c014836eb17224a681c1d7cae7fe0d0627bd5af08286c59e2640cadf9e33db
+6636197d955a073214899ae76156146452d063a460fdc5a82df0eafe9ad88a24
+905f7db7dc8097c0d9b0f9319aea0aaf7aaed4a85c93979445e8d1e5a9bdd3b5
+4d74320a1b797ace38376db0b2f6566432b8a90ca4fc7842b90623603f7aa2e5
+a2f0298157822d42f334b8f9f80fb04c36bfde0eb1187c1b15ad0666031c5c09
+62bab12d2476f696939130c5b59fe70b61320e4510be29e04f13236cbcc78a8f
+93bd11c24fcc4b45405a13a65ea47c13be1f82075662c316b4de144f89beb6aa
+cfb84f0d288c67d488faed8dbfff92be9a24bed443e9db3f1deab63ae94eecef
+43ae1d68455826cb3a48c456d7e9a849a9822c77503e5b9f029fe70168831ea5
+2ec0c2c4471627fb5f2d03bdf8726bcce14a8a162bd9bb26137253ba8b581941
+e759a7ca7917d4244da33f45df6684d3dc361bda88b4a0a02e5e55a1efb0d851
+b4e418bc6a0e213172a08b7596b1fd93aaf111f2778006da546ca1db88d5db98
+4ae9658c1d31adf6ecd3180c19791c85a0ddd1547fdb800479a6dfea56ff1e11
+9b3c1dc388c0f372a44712954373ab66cc420b2cc80a92c2fa011d91c441bab2
+f54dbbea462e186e0617b2f3921f1aa33dcd2c1c5eccbcc37dc50bc29d0ffb03
+e45372aefe3b44d8584035f3bf5ad94459a65fa170516c271b722a2f08bd241b
+7816ae887856fef57292179987b26bbff4cf1da6cd2bb092df2f6ae3064d61b9
+e7bed1d13e534b991610a2c067a1c107ec6b0a8dfa6f6c4c2539c8747ad33057
+f5a9d083a689e34c8ca2957263786c1f78cff0347ba42730544865be79b7c461
+7ebf003f8cec1e4b6af75689fa6f6dcc317c7f6975df451eada5382583a1d1c6
+510ca60fd85e55c6e16ed39a86dea378d6f41c00beed05ff2f9f1a2219e6838c
+819e9576e4ef216802c4a913de00062e70df8d83754166a27708337ec6b8a031
+04a426a1c31371eaf807c8d638d16e6515ef0693651bc2dfc870a1a7e340d504
+be0feabf24b5bc879e75801d188856be2225a82eae90a792fb4e0d66ca0c4a64
+a5064e1c9c2fbe84b5d6578c2af56fef340a49911a0a346813fd5da9e694726e
+a0dea4f42008ef28f8d6ea9f974327fe71889fe76945b30fa99c4c8c7bd3c40c
+ccaa4f19c0e0e0c4cc88611829bdca334cd69463228c2f83e1467125b7eb3c9e
+812c62fdaf831871ea0af75efe4c81224eff156fb21bf1a27123d020beb9e1a4
+d72626ddf4dfd474b98694e87ef0691b71a8aa4d346d03eb56e0715d8f6148fc
+424cc472407f00bbff0cb49d05b0b5923821fccfc27869a85fedae1ecd60b31b
+1c8e8810879809ec069ca308454613df0f673b5516598fb5b822833fe3e0c0fd
+1b3684f7a66ff0f9132de78d198fb6dd459c42208ddd13ecf433d4c9901b0aaf
+4c8ca7685711deb49d9a2cfa4209a0d058aa8490963164652bbd3cf858e53975
+0af2b20db08bad60ac71809271597b65071e7946d81c02d8e8eac13adf5d5249
+ac0b42f5c602e16b6199dde3666d58abec0c1485ba6ba71086c36481229891a6
+89bd1c4d67e91e5ad6d75ae80420cac489198821227c1ac94954cd0c94098773
+ef4313cd8aa49aacd7d34bec814e77f9aa794e57bd14f678a5f3d9311036fcf3
+d39a94b0b23b982214469f645fdb728751627c28359d6613978a340b2b2ba9b6
+a0304f87a77389a09a36a660cc983072063683920005b2434951a9c8ff375cb8
+17ce6c78b6991ab5a5efd7dd4e8b3171133da1cb44af59bd84724150d09f13b4
+39a1046904d4d3ec3d2a90cf5275a9527f8c3c62a0ae24a60e9e7d1765eabd75
+cdfc9a14c4043fd34ea73afa2e08cec40386f048879987699fb8123ded9709a8
+75b020943bfafac56dcbe4a2101223949b0179cf7de6b550657c91bf3116ee7c
+66e23e4ff64cedac326536ca1f75ed1bc7113f0267ea7a26fd44728714e2a1a3
+13e88daf24c9a46de29e3767648e961b346ddc72a6724a0857078c9a2ed39df9
+d17c65b89136a6cc0c954e0c46e9f23900c7ce91ae71d74237ea1128637a673c
+f6ea0c8286ef99801cc6d45bb780e21c5a7464d16f77b45236bb9819ed3a8c4c
+7e1b15400eac8a99511e77effdceaf8af6cef034b79862eaaaaa00bd02f5667a
+c1a03c0188d09fe4d1fcc0b0d3354c880b2943b9666224238db22257a3873b36
+be9a8a55e01165f4e8d3c8eb3521ed57aa834a4f88b97f2fd77b3b3c39ae4bbe
+869a24a4714476b3d396eff67982ba0a8f9ac34bf7b247951c0c241a01f347f7
+84bf841495d76f9fb2ac130779145677c799a07678eb8a3ea3de9fd00430d46c
+b1b3b6c392afd853df1d0bcee9a053d6fecad859bb9bad0bf186a6196b89fcb8
+44799928b4da77817a8cd1c36cf9515090cbf63f373aaf151154a769cb58704c
+2c0263028c641e1ae224235cdb17d89af5398f3d1daf44254089e6b4db47475a
+1fc228e0151f244b025e5c14411c8834486e483e4cb4406752788fa99336d980
+a7a6e6f1afecbd87f2c615880f3a6bc21524abd7076eaba6ea1bae0f995fee85
+f938283c60a7a1dfdfc053a8353051b18bd03129dfe6b472e73958d11467aded
+ced7829ddf6e7879dced36391a1d113cb87969b0465d64b96b5360f774a98596
+1272aefdb74ea23d85c8af588ae0f6b43ec47292c880217c0ad03d87e1cc22bd
+8117ee06e36394a8fa5e72cab0825bc3af8bea7256e7f8abe7fcf57a38e38df6
+b60d783d56905a5d7794904c0cb95e2aa835145062e022b159fa7247af415890
+117a2c9a99674891b134760def15804badb8d4ae414a1410886eff8d5284b042
+9586db6610fc1e7c2ff53f19060e6b43dfb0d8bf8dd94efd5105ee20ae0bddd9
+58176c666d2ccdbaa1a3b0a8cda0b452409c8cf61b9e085d9a9164b7eac06dad
+f878ef8ff5e36bbd6414aa86e1d73d211175ab042ed5ff72030b44aba32b970b
+917282a1d69f3005b0a110f90942ea6f9cb2d9eb57a43000c48bfc2af2b572c3
+f8387ab21c90facde17d772ed98280b44061671ea4d98e901f33b8a8bf0f97a3
+d87d0c4d81d6e29d895f50c1552fcbef2df93a75e3b0046c794d20229d7eae01
+7f230053c4c2f463020d060b8552cfd6463018b4c03275dea0ac42977b3dbe97
+3d7efc22c9ddbf499f2a2358f6287a8c9946fd16e6e998dc763b5abaa6888484
+c2430f2fb9f2b0ae84984af32ba54cb191274f7b85695f5faa3cd5eb154b0f1b
+fa2a0b9ae93d591648d33b6c23e27f9a18e0b8548bf1f45158ba7c171bd1136c
+d045e9dd27e4f23dbfe5b29a66695628a87949cd0d4d15cd066916eeddc6cbc6
+f0a5c77201d4cd352584ae70d1b8e4ad2d5278a472d230997c7c03d16cb5ea0d
+d04df0bccfc7a277a0ec9516e10134a9ff93b3e6267c5ede4e5b848bdeb76b87
+52249e458b602c175ce8717e89da05ceb850d2538c340ef6142f0b5cf5906f99
+c271b6e5b9e614d64a7c72372835ec4a99bb39a7aecbc41d021118dd56d21326
+c818bff4de332c9c00e96755e71288117c19e3b920c23766f249b1abf4ebb173
+3f9d38f1772128cad4514c4c06fee49abf401feaf2368edf5b4f78fb13336189
+5040b953d2ec56876cc72fdf69ea7692da01a508c2ff7096e17d78e2f61a04b5
+400d9c28610aa8d48b790edb4bd5cf08646923b0d5a86178956bf7940f291242
+1c4f3bc76fd991e36e18d40f813095c5b9165700cf94403b23b2b7887458c4d4
+4a4f160ceee87c7d50fb4ddc3d4e3242d9ac170b060d472889e553c988126096
+dd343532e74b54d664d63141b1eda0e6ffd1d82ce4d084352e97f09e2e05a17d
+cd8bed5a8adc08494e5ba8b57ce522758413cbe5e5d74e6d3b251a6567fbea78
+5d838a9506c98691e0ee47be4421a95e6b02e8c66aa06f9c88b0ab94a1a32660
+fa0d8a24f2d5873ac94ff8e0670b96d4eb007ab89f1c77e0f1d1be46155fa2c4
+5930779b70c9a6d559a3646af2b83590b2f1ac3a3f1c9e8d465e145c69fc07cb
+5df5093b7cda7f1780def8060d7daf747491b0486e7ca427857946d2f3d0e22e
+018cf12b04b2ecfe3accb88e5e52dde2d9118a1747917e6a9f211c1d210b2b15
+8f31adac46b63cc00beed35638a2e8155805bc068a00b757d6f9dca2ae540883
+11ed782d682b511c557ab8c413e95ea8b6dd3a6c12ea9716d670fe4446629890
+d14a1ff76cdb4eb9e2ff314ed9094148bb33db76e4f6bbd5b6ec76aac13c6660
+38b1790d9c6ecf2f33b6d4ece409f012d58a75a1a4ef5e580986db61edcd97c9
+7ae81fa20bd7fcb07053311dbd6f3f73077ddd3949fa6dc327ad2fc056a8b798
+53b22c193126e73803c83fc4b7bd9cdc54c2fb1f6353ebddc027d3925bd32d89
+219a778cdc38e5f9621b41a27cb8fee8ffc1a2fc48ebd25828373b9bca8742c3
+0a58b2473a33b4805383415deeed7197a840f6c39267de16ecfcafe7d585f672
+b5ff6bb9d143e8e615d349ed779b847f2b5930aa83b08792e193d64aa163a090
+586a383d4ef4bc273f162164154d9abe6e68e23078cbbbd0a357a771bbc427c2
+3b6a3f24401e31edd9fd7091e8849c8e37d83ef396dc505f8f843f4ef305c505
+53776af2c088aaaa5a5efc05258cf692b579cba82efe7dd3f3394d985a5518cf
+93c258a168969d01842a624f56b4a6e50fde64083aa7cd0a8f3c0eea6e6d9a06
+d24b1f96d34d66c2fed66cf844b490b537561865299d18dbea55e025643f78d0
+2419619759dbcd65ed0ac4a2866c61f37383902b4e1665b2fd9414d348b4d41f
+ebaf2a1e4bc97f5497de6237170ec27597c98e6cdbefee9c6a7b106b3b6aff2f
+7dbc6ba1b2d145285029bed2766715781b230aedca4dbe0c92945bb7954d9fd6
+1702f5a981dc0c5c876c28659d744803202a5929f03db99b32f776a794afbec5
+3f03ab51fbdf52c98de52fcae577c7ef0a72cb1f4170bffa48734f1df30ac772
+9f23e8541aed00a2cb2bfa219626421f669494c472c88e288e5698541185b862
+29881c30d6b6124b276110bca39fc496691eb1c61432cf296b055401f2f63e03
+22b0f37395a0489a031945a21fba843a881730d3298008bb4c023b24b195dd5a
+1e30b76210c17a06095e3222bd39ff2b7f7b6366a173a9e0cb527172e1da2308
+5eb7568000e9e9fa521f977c341e7c4cefc883522696ab5617d6f6854bcaaafe
+ccb82352f821fd30f6edbab80310bfff84779899bc62743894dd9e726c6a585d
+b4a2883fddf1d1ccb7dc8242c6d0f16d008d551ee9e02cddd4a21a28cb56bba4
+0bcaaaf95dc41650643302346318e7eef6bba6f4fb6eb956f99457f2d2ebf601
+65b6b1e4405501ddedc0d2cce1a9cc7ee6282a2432e88ff45ac520a8155a2b4c
+4bfbef1e1a860ac2a2f2d25c1bcbd864001a54be48c3686cf72e98856e8d4e4f
+2b3f382c3e3a75bef479a567bab3764282da78b388d27a6dec10e31db5088362
+d3586e219c55ec4e24bdfcd77b920f5ea332d29630559785a900d05813400556
+d1d0721754258799fb25bb59a79699f6f4e56f0e58f6748bf8091d848e4bf22b
+728c913b0db74e9bae863413ba5ba04ec732d6f50d838424dd1a47b29e51aaaf
+8ee4831f52722e1627bc84cbc737535206f251d92549b8e2d24bc6b3d2cd5687
+9c4bdc972846bceecb47b5ad23df0a82cc481e37d74ff3389ad3535d0d6254d6
+d8ec450fa1e3b81b7be26897b75025a64f480dada26aa777cda828ed66cd65fc
+9d02717638bdb88571460a45aaf9abe1b460659f7893c1c64008192e38cef686
+8a076a626165bb53e34766580ea78b2bb63e45d6fa0ec31687bc4f243760d452
+b459dbed951640b1f5083a19705a3384af93eaf503a000e3f2384062bb52559e
+1e0d8bdaf66cdacfaaf91636d01f7a76dd5424b7b620a706304cae6fc50f0dd3
+8d395cf39dc796c7ec271721e13b1dcff35f06b5bf5cbb6b2eb908714f4fdd35
+9763585e39484118b080504f1bdb293321cfd1b2913fb217c7b41d7212b1daac
+1c4d770cfe91a1f649d760c132fd77024f7a0a4e8d0cfb275f5435f3dd911be1
+1db381c01a9c04645631fd9e1c871c5d2c91ac39a18d8b9dc563633d709a909d
+614024729bbb2824c33c216612efe88278d6b1082e18f486631fde76aefda526
+2a194ecb406ec7315a43695256b1f7503d323c8fcce1f572ce5410edc931f97a
+fe2671156d0167b444ab02691b81fa57696d07e235dda15640ce4d2a936d1dbc
+a0d1f41aff8f3ca1792ac1c146021056a40ba5b30278222286a89825638edeaf
+429cfba89cc85ff869cc5d51e41a8ffe937e03744732e3fab250127c9eb21d53
+48e3f6fbfa7d4abb16dac3c45e68e355e43d59c67a717495a6acdff50208c2c9
+7ecc5243915c0ba12e420d4fbc39c5332db7d681e51158af491169d7f7212fdf
+47b9a9dd0af18a2c28bf94199e0480f9cd97c2ed0e79a57a02adae4b0cd3c1c8
+f91521a111933abee28bfa1ee0810db409fe8dfa17195a9a7637f180ec400844
+e497a7f9cbafb57866834f37b2937cd71cfd5a88eb86b64a01e33e9a639ee133
+89460417242cec260f151b9613f6aca727b2578770e86b45b395b951caba7afd
+94c3442bd844ff531d069b8a2bc52710d341882860864884714eacfe23bc1cb9
+e4823b3c2315c09342cf097030f14fd7e663c2d030d2d71079b6d53799e5917c
+9798624793a0f850b6046e7c987f7b1b01b586a83e8fea61486dcbe8b1362ba3
+a2ddf29c622fa55d54800823824af57e426b41b6aeb440da475e13240445d467
+26a6d4518ca92a6003209d30974a40872e176ec005233706148979aa159c2b7e
+dcd5136921bb9116855f20b0de9f99a919854a9fb381d71265dbe5375b06ffcd
+490b11631704a069a04c0cf952ea0d9c4176d5acfbc48d8a48074357b1b4a8d7
+1a9bff215c77e14d23e09393eb10015a5474701d12005e66a31aaaafcae6a030
+34e2281bec8d06f7b41e9b2dabb7783daec99bc7a3a8dd48e90d36848efdde98
+c09309fb1c506f5a1c0af132020b07afb2a9b3c457cb0f1a66684e043872b794
+534308404c4d7faeb296d9f1561cac5fac91f4b02f89b429212c58c55cb96fc8
+bd812563b864833a0f9fd69422d24eb4a4acc9cb2bebc4ff8b9d8e891a63babe
+c423cda2fcb7cd52a04774b3738108a19eeb1208256540bfcea23ba55f4dce15
+e1d176c21f166ddc1c2bb79b75d40e38050c6658a23c416650a1dadd17e15584
+b382a148d2df13b0d186484217ce6e11308856598534befb42a76389263e975b
+0a17b79be1c651630970b99d5956213b5da9d41d160dfdbb14de1e25f83725df
+ee7b04c5f1eb6cf4914ce25d050de1e1fd701490f5e4d82dd51b28cdd8cce9e9
+e39bba025c012e85b2b1c125c45943798f8b93c791b06f159bbbe9a3ab1e0fde
+320164f98cb091b751a57d86d15a0fe812f9a8de5306b3cb033c9e7eaaba9054
+54af59e9d61518b06302c9aad9a4884c222a41898ed8e340c7b0163e5152a394
+ded4c2abb46fa6e763e27b55fad2c1f9c5e4ddf0bc39fb7178f9f5c84eb6d793
+04815fb8fe12ba84b91019d3c52d36febd917e5fc58c423b5c9e09ea31bf78f1
+da64ca6686189475dbdaa3fa111c24cd98c82e2a9f4c768969ca12ab4d160b85
+7aff1f4af235f5127e7735fd8a4e1f4023de13c477e98d7190bf7b6e45b4f867
+38f0c045e958f0e2e20fef19fe492044c0c04fa16a3a0d33dcdbded65d83cc01
+38ae67b6b6c82ce18705e39c04ad8308ff32f03939586fade451f2dc110ab4dc
+fb3125e09d8edeeb9c0ebf3d289f9354973ed883cc9df86e126f0cdf91d07622
+8d14814c51a72aaf37bf555a0e2e8ea5eb932165a430a9d0364247f0ef15886d
+fb61e13710f14ee5ff73120542ea256894a17034c5b5d2db4089ee4ae8a5aaa2
+cedfa0b8453c045c75ccf036b34d53f810c2a219e2765e0f6b1aa7c7d78dd6ed
+27df905f4874e65d79c161371032be490231487d9b877b3a2c6e8a9840e8f421
+7c2a536aa271ac2f44ee7037758b75f5eccdf5ffc7cb94cb100a8710a118e0cd
+cdee5ffe9a3cb0797b1015e78da676e14b78a252fe4f86deb0bda164d4058b46
+3cbc28247564d64fca96b4e6f54499e08714982e495918059ef68b396226aaeb
+e5ea86f697256fbb59abc1c752d459d585ddeec5792b769e8f1c55c79f9dccf9
+cb52f236496e84fd5e9a7e4e63d037835b976d5cbad20aa538a07fca3e44ee5e
+f03e7b4acf304a825c3d1783a46fe5c046e30f75e8935fd323a022161f2636d7
+287b209d2aff608abf3074cba61563cbe724afa0f51b8e2b49023d2165aba623
+aac35969666595b7f010b911eac958005ac45a5b756a9a1b711f79f2d64067a9
+d4258ff5e7b4fb2142de1e561d8d098a11d63934a065585dafb5693d7b9a546a
+ec40b879bb5b7c167e85cc4e9df665cbf0ea67d12e230d9bd922af96eb39dfb5
+e7bf1751f575552d9df1da8402ef816ba3be8f3c19b8912004e1da13463baf48
+ff7b3b33a57aed2a3e9e9f145be50f2e84900daa0b996632263af132f7e6b374
+35d91cbcf393cb46649ff8ee35a93b7e27a9bf39734b53cf410ab3f3a2fc4027
+af2c873a42c13aff732acc9bb83bf2862e7da328eecac95b7c0f0bf79744ea95
+363f54a5b19fd37f0282ffc0c1779d733f531ff661381dc983de2858e791ff20
+17a15a90500c579a5f61209d9a1f503788babb313bfb33f3ca0732c984c398db
+687dd0868699e20655fa21040c952224811bceceb52c86e3666430e4fec39c47
+4462ea17dbd53ce9feb02d52615b93ffd7928c8f6d24b3be92f7731b8b087c0c
+1d51c663dba72b2a6879c6f55c1de28f339676d7bb9af94fbe12af5488d4b3f5
+b529a6a3474e3f0cc46869343243748527080265184bbfb93eb971bdcb298e54
+16030d4076d4402b653b180ca984be40eebf024d2a7faf3910fa14a5545c6242
+fc6d8a9b6380cae5e75df338e07b8784bcbbd5369ad30a2c6a7ec32cf5d78219
+41b18b7aa533b522565cfa592c54a428813751b5943328dcd2c6a622ebd2ba11
+c6d2d65f03b4f419ba4375c714e62974b83a5a5c4392c26da2650e0ef90e5905
+402cbcac72fe007cdc6dd09bab715b7776e327215024acc013cc55f0a3a26859
+2a02a0a9f87370cc81e5c185db2e6090b6b2e947170a41ebd0cc6d71a264f0ca
+16eb08e781695fd8d35777542ba057443ec42bf0a822c27327b1e064af38db65
+9233639f837a74efb758b74a117ec8841779afda95ef3f0f916c97936ec16bbe
+f2b917a8e8e686aca6930649129fbe9dfd1f8247b34dbc586678999dbff6a12a
+c51c1881425432805a253cfeb23c5ea0cdf05c62f99d34aa7f73d90272af0969
+68ab75f3f1ebb30b5ddd6233202fdae3573f67a51662367833673f7ff1344346
+446dcd3e29699b9028c7bbed09471ebc899cb3139284a914b98fabb1d50119b2
+347ed0d201cfd78dee828badc1655fa2c70191b24e20e699454570fb31850dac
+38ae12ca5cdbbe2b0f22f0de8ef8b927dc6c54ecf3801e5c2544710a2e8f726d
+cf297becfb7a93b4b422089200aafafb934334704c3d384379d34147f7d163af
+3cb42599ea902106ca1befeae26d641d49b7a3490f09bf16b8d17c026e40a2f0
+8d727fa2aefcbe4ac82dafeef86eb672a95f413b73858600c7d9dc544694e25f
+259b039558da35ba48443e6c931f6cc6ed108e765c879314e532d888a79c1b2d
+460204838fb662dc90465032792f03f18ceb654a379648ba449922c9447c00d5
+08b81dddf1fd0304b2b803785ee94ae63b9700b36fcc894782782f51f397ccff
+2a1734032660685070d6d5fe94636e6de386bf347f063dff5819b6b8554ea416
+59da8bb46c01807fdc883e15a200a6cedd4b95810da0a805c3d71c6467d84899
+6b88c60191c3a5e3c4dff6863ff024a5c4d4092164792a397b7d390b4306b56d
+b002e6533752ab431804dcd2ec8c9cf242efc7b93dd9c3fdb21824068d3abb6a
+831d89d241613946e097ce77a82f68c92da11dfcbde58e3450f2830a3a049bdf
+c6e9bdff298b4800f150ad3833a612643316cb420af3db29f008ba36a2ef0181
+f64b4bdbb6334233c58e0e68876a6d2048db062b61a9cd020ed7ef071525cdb9
+3880a24eaeadf171b5c077e4de8527b5ed5b7e5005f73c09b2279ecf72e1ec79
+a3e4837d33cfd614e6d82df617f77eab048e71b51b3ba4334d8be27798576a28
+a21ed866fa75cd39ad747a1fea7a57446111ca317372060aacb159ee90e5efbc
+dc5fd16b41a5e63363b41f13c0160f719ce353b913d069e4126743b420562d52
+e56b970fe3e660f4a850e8ef45f7262128f936ab5610401756ebeb0d9b5dab1c
+8ef2d95e0cbe3542bfe0c6f29febf3f5a39fbd16a5c27d652c4a0c542124855f
+4b53071df5537a5fd5bcf653c0578b4e324bfd7587ed10318333382ea137d90b
+f0f83b4eb5d4796e42fb7053d4cd9feeb842d909cb67ba4bedf8592c876a83cf
+48e4a2f7e92558e57a5cc6c3c6a4eddd68bba96359eef224fd78f909e016c5f0
+ad7740a686e566386c4f000764c8b6e97a1f3e9e98b047f75cad6b84d502c377
+846904339303da4c0436f1f67fcefa9fc0581f769b319c38d4221576b74b949e
+532b99ed1cc90a2de4189b346dab2d48777ba5bd5cfc80bb15f0c8d4f478d007
+b84aff3121f7c0cc0887dc20cf195b1d964e14685acd86aabdecf09337ac26bb
+b0e45caec8be479279364fb840c6ff36d164b7be25f9f811a466ce04c2ce5a77
+4ee329b9bd773657737db17709d3a6913793de0357bdea11ddd259b5bdc94e1a
+bf95d33b8396ae9b26342cc1d2a2831e95939a0ef5f13443a9150f35aac5623b
+cbaf6cc5d24d51225c2920e3bcee9d09ca5c60f22b07f24a26dd856f8efec9ef
+b184f8a92781ea228c2f15ad9ab1da75002c9b352316a588d00af46a86b73aac
+feb16d461c9cf969977681a88806c8e6330c1e9e8d428c91de717fe3908802ec
+38abd40d988b018fd7a4c02a20f2f3c18d8364fb18692c310d4d1977be4108a8
+56f807519b471ded405d1e7ed6c02676970c2a1df6cdcda3b38edad9b5cee11e
+5b221716f3137083d4a433e6af2eafe4760b0cf8ccbd5c15af998b5d5785a3f9
+b79a81aeaa9a6706b2dcd217ed437b23de309a360ff60ca82a8251be5671a625
+a90de4daee9941d44d8d1e3a19399f13b93d9b567b2ab2f9cf2b71058ccd9776
+3b6a3f95ea470066f36b343c0429655f8f25c89e65074a52cc6047885f4105de
+2ceb8f80846530a88228b1f44c73e8cf8ff1e99d5cdcd3c91487caba9cce19ac
+bee693c2479d8dc2c8799895e188155502f957b20e26619874cebe43d125f6e8
+638092ae98ef4429bf719bf6cbd17b1f1fd9a7c90bbb6b0b34614b32234a7f4b
+1c259e4b10ec72d3a2e5526473e551450a11d8537cd6d3dfc472576307ad3354
+b2a9c24ae22c90aa37b1ac70352969e2aeb30d0fa894724d5e47a87e7319bb35
+7b76e95d7f665952ce39e05815e5718a7ec0d09dfb566e589c3655e87588b6b6
+95a272aba75b07eff8041298b7a1bf6fd1b10c5ce008180940df9f4235fab68d
+bc3d2ab597192b0912b5d9486b5c8f6cd5238cb94a0c807f4baabe7e81f072ca
+0b626d0a5cb1b8254a4ef588149c84c53d27ca3cbc729416976bf6a20bbed57c
+6c0fd85c86dabd7ade406b27a8890bef705bf3c5c8a59615d858ca2707c47404
+78f55c4d6da862b50f90997989ce492d884f97482166d5ddd4eae075395d7be3
+cb0dfed4d966b2fd24c41acb6ba9f1280ca84aa8cf607bf1d2cae3c6dae6871e
+c5eb10a943c84b83095fe1b7b9bc3682b5681a850001be80a48a2b1bf22790ec
+f53a1ddb50e2325392f118cd56727005b947495ae8ca6e46cab765670ea03488
+39275b5711fd6b227ed1a6b66c02c9f199c8d54b46609a0804fcffcfe0cc8b65
+0f1ec83354d395ae89ef02d548088674fcbc0ac0daed78ab47e3ed00df77c01f
+2d0e5967da9348fc0434d71eaf90785c3666694604f48bf2043bd54dae61ea1d
+3e2da8efc1ae867ecb0e7d11093ba20786413e80c8f05dabcf474d6d9a1149b1
+be96ad65eeb5b865f4b321de61ff8904a072092910bbfce7bd5a42f10c355e73
+c0890e342af2f2f4d7fac20c846d372877c7b12776b76756a9002723d5ee71fe
+5b1c0e5fbed5c354cf4b9cfb843f01b9e378e90e7a56994325c7c447e5269204
+c83b98d99dafc77ddb6a3fcfbbf430f6d0ab8a832c262f879369fd9ddd33b1df
+602f5462b9f2b29360f1a1b7d7eecacc4f10f188e7e2ba08005878b1d9c3762c
+ab8a29d01c0c164efe8d37328deb51567d5f17b25c11590a1078d53a36bee786
+5813fee10723c1acefe111dbc08b796895f2e1bb190f3da6accd6dc6c884eb44
+ec4d78df308ae7e774cef87ed4d6200bde349c35d7262448f165a6706c33563d
+24d04d409c69924949aae19c13d07ee64910d1c29d15ac711fb56e3dd05a980f
+acc11d9c08863c32a28bf94eb2c8fd1fa0ee61b939ed944b017a46b681e95cbd
+0365d77433a27195df9d20a3483ec94192fec56b9af5c656bfc2924ca0c19fef
+ad23207ac6d0169a15cc273d66899cc044b5efca9ef4078b9bc1e91f83842624
+c08a91c1c0d20306b1479e749386cc50fed78f22a27579fcfe943b033738bd67
+db8c4cba7f60e8ebbefeb2ceba747c757e902b70dc09622aa4ba96347b6948fb
+3ed5c54ac78148b5976001bd3f0474d93f4903d15a6cd68727714ebcda244345
+d9a4b0020bde3e2c74385736f244206da78d0331de35feb4960d8fcd0ef4bb75
+5ab20087c2aa1da104d16ade37b9159caa0f8bf528b55cc005f017d6823268d9
+b13d199ce47d3c95e492ac8067fc44b42ac8be86b639770a91c75b7f7a55ff60
+0181451587fca8bea1721f4950b3322dd9c8a09cf8e4d2abef3ec038c8302e9a
+3194d54745d5798e3b3844696d3c4566b179c98b7adcff4bd2a4fb402ab275f4
+30f2c77eecfb3c473d2e7102592e101c3d38f79a08021227f8f782a59d20cdf9
+c9750a8c0ac70e34d983356c313f85acb56ced4467357e07e23a62ab3fb6ed71
+9f9bf85edd20af93c1c1736b6112dfc8447b6d06ca12202f84b34f892a1a13af
+4423b723c13701aa57982dbf20ed6ca129b72f79f77f1705485967980db5df42
+c662f0ed38a02b55cf048e713c0c6a1a85c900acaeaf6d045dc96bea5d45ecf2
+8ae85d1accc9b38a45d6f516078c72388e5337b9c1a2023d086e97e3affd3f64
+517df9ece75c3afd0e3dc74e2ed3b4aef8a8c032cdd70127ec4698db19c78646
+58f9dcd6b98676dede88a1efae04d182ba73475290ba87fdc71cee2737057855
+c9b151917eb5b3cde9f70db961ab5c8a10443a7aff427bae1d1e720a604c39a0
+14de8b45e528237198f086421b5938871ef89008148eac965bfcc850ed7aeae5
+ec3e8e37b9762a8a6580c791cd89c4d25fcdbe778bae071bb1e18257fefe9771
+255f977611825be7f64134c3521ebe7c549741265838ef00f0687ce14c463d97
+884893e5c967d3ca5286b52d0aaca5ada20e778a4f4c807a9cd97f0c05ed4876
+1cb09c787085e213a86b7aaf33acf64552ce5d8c3459c261447024035997ae76
+85d1d4337cd1a1def984e185779b2a0a8a3c8da6212730f96174f4c3b104d096
+3e0e395fb85f918cdd5f98c77daeb09a64169dfac253730c7da4122a7025ef19
+dec6042fc24d4565a1f8a7b37da00d170b6c4be72475544dc73b111c775e5c20
+401ad5b382559c2dde0bc3ec0e46c07e42a08de477b3c07159666bda273e29d1
+8ef5b8e6d514e510d8210e0a998508c3062ae26b504abb3613f3d1f167c87bc6
+48308196ff8fe6ca97db5fe0baadbfa22593c01bfab9640edc31410fa037bc90
+f6ca35ea8010a6b3c031b43e19c38a010e84f1c5c97b73fb3330ac18268c16bb
+88648034875df43ea61c877c3278caddd457ee47509154aef00a86d801f8ddb1
+44e43f5ee5683e3ae84b7f6ba7aaa51f038607beb96ad79183364c49793ff0c6
+98c2a8fb0ac71b8f38eb7479a4995e1fbac92278b9f3528261d822db91d5d4f1
+9876784d0651ec7291f19a5437e987cd727afdcd267f983eabe8e5f3879805d1
+3f2089d9fca9d35e4fbfae0d72d7d0021c386bf7608fbfaa87d26a57933bb6ec
+95739fbc3f7229a82efe4343b679165df1ed79eb650fac11cb7f1e74d6fdc9b9
+a8847a85bd24f58e2d988aea2f26eaea9d27f5892d2cdd77669b849a92f8d0d7
+5c54ed9682ba9d0c7058e04997279bdb3454d2b6a44598267a269a814aa9e1f0
+abf598a1b6c2afb75e173eb6fc2634253c04fcee9cb2a896523aad92457ef0eb
+321e0a037eb6cfe349911c148473f86b5aff5b8985533a5f6d3b406ddac73d35
+23071332a8fc34a4816171b2c8a19bf458b4ce7259270785060b9d673f3c4997
+2da999ce0f2e7ebc2b2cce6de818d40f020d5e53b882f0d3754c341d5740ae72
+2868f364a2faa97e8c8143de444a9f3ae27eab6c4f7c838f3a5f8b9600d70831
+cbc2dc64ed3189f33030d0b32211b757f6682949ab889db99693f4dea2f670cf
+057032d3034aaa6c3e75a0bbdc092c5f4886b169e59ad2d7f4d41cf7ad2f5882
+77914fdb7253e198a40b2186b1a9a0aa958ba9fb99f21a074825e053e562c2af
+8cd8866861ae914042dc4b8b5342089b21013d519c44c28482cb8801c73de3a4
+9d6dd060294e4ccdc55f000f0ab7900b088e141fc2d8ce68cf771a068541657a
+8b41e95fd2b1b452949716ad5bb0b8c2ece99d07a41f3c3ec381212baf8cca9d
+801a993c8a3926b0e0d60637618f69facf70c7b3e6af9762afde0deb9e5be5a9
+105c3164b4d8372414fbee3181066f1772d21da04d0b350c806935669fd69cf9
+6073c324b8ea582638b11e58e43267c3854fa35c3deb3160d7756d66b87c8385
+92f86ab8a97bc9d6260e2723d435769d15dce8cec387318add815687ddb99d5f
+1980da44a5332e5c98c59c8d6ba28a995ef8d809d783a9b2510e1c6b820c25bb
+90f52ccb9fa3fdeaa661a69921794a60a591fc9157e755c28aa399f30e93d298
+9e7b35fcce14d5fe6bedab37c173d384d3f67323e702b14ea74951c5c07917af
+f9f9fcc450950a8232cfc4744dd38ba79b9fc41a37205c97f44ddac6ea5d423d
+7af9883610084080de39e5a71db472081595235f72c7ccea69a20cac059f2357
+b4d60e158834ad26f85fc1e9bbc948db8fe7a03c5c401ac2ed880fef8803e464
+76b00961ff910f1fcc897e1fa4f6b697a616f07aa95f5616a313ca01f39aa99e
+8a5a9fcd389c99d750ccfa38bdbdd9a0376452970f91859aefebe5b55779516e
+665c6f786b3d22a1cc781a729e477c5f82a65027c87b54a97d9130bd4464956d
+735fa5b8f710cea51eb9bb909e89716160cdb112e44876ac49494f62b8f46e63
+c978f80f3a57d99ede832bb7bc1ae59ad0025944669343f432bfeadf8d7408f0
+50c7568da4400df96139c1d243b8634b19f2134fd13c783fe9012a58a7e7843d
+55bc3b7c768579bee6f5931f1ea9caa44bd6808b12bf4550c852c1ee3cfa72b3
+5c883f0b6a4f4e5d768f93aed79bb5c70b681c3a9d604b6eecb7026c1b22e28d
+c184d2fdade4c6afb6b9fe8d7495abe07547d092bdd73c5701696e6f256cda8e
+1a6e58f3335e51498df75cf37a7213fa50f6d9a7a4ea4a251c3cd004b75b8805
+8c8b8efba9f66bbe5e8f321981aa2d8f5d455b47347e368686689d00fa5f996a
+b6922e325bf4e72ac9cb09fd5802f365e4a15045683884b45f15175cabb62651
+3e71fdf4e7ac9b4b91772644ca8e55c530a9459719e181f9f2d211601d1bc5d0
+55731eebc2964f4add0f713c6b22abd36bd9163902a147f5172c4e054ff44ff1
+1999337a57a673028374a04b65e7e77ef2ce24a75c90fa2bb48cad9e9fa77111
+24514b9400e2cadf75e9d7f62fb7993f82cc336c77716bea4c00c931ac21e95b
+04f35462cee46670514510bfa22ded3ea18bbb8b511f42c637bbd06134280404
+05d4355a5d252d9bc291c14cc81d77c491f62a54387442b9a884b3d21e0adc5e
+1c120ac2c0b03a0355204eda408570d379547d40314f5c61f8c97971b91c521c
+a5e86c1c321a90ae21dfbed0688e8c7287e7a35a1f0807b0a9a811a6d2d68636
+0fe12a04126f19c9b0fbed1083265ef6b2f4d463563df3b1be5b9fd0d277d53f
+f4f5ee43b113f580be21183338592a57e29c025bfcbd56dad49e4b5bef14363a
+db5594baba9ec550bd4cda1759277595d677a71c91925e6e1960f31a24117609
+4213750579cf163fdf9b3590951bb5e2a8f117412025f1807584ce1a4cd382f0
+9da5d7b56954f85327c0eb4ae556b79c08048b127101d2fb38f16996f1b66fbe
+0040841b5578762c35849b0641d3343d8290f2aba7f075a0e2721718e08f0a85
+1fc82805f23c2cb0cd67740ce3d5bc6b97f98f8818cd39ad76ea2779c48ce48d
+43302c382ec8d61904242e9a5e28527ea6a3bfcf9dce17a9d36398152c7c47ed
+777c944db9ba4bec4f30a1261a0096081ceb94708ebe98e7165ebcbd768240be
+d03fa2a0904086e1a4fbae8788315c7f864754e63f2399702bf2dca498b2b352
+09ce951389384a9e8ec4f01b207f61112956e9a59c0bf46677b9b1f8459b41e1
+b8323e5bb1ecde22bf2c47938e0e2f548cb02758dc7135004e448d9e689cf431
+11d2fa0a98f3e31b3882cf8689c76d276b85177cb27357bcb2ff0de3cb032166
+c58f25e0ddec5971b6a81325abcad1fc2a27cf0b20332769e80028ea27b841aa
+16506f7c22dd55171341687682311e1f884ef87494bccfec13f5b0b217333376
+fb86573ee65386e19628e78f49c6cd9fbe4cfdaf21ab25e6f62a99cba323ebbf
+c5eeaa523613eddbf85de5dbb9c66de1748624c271d8fdbc16bb8f9196428516
+f85e26d904878f9da7bd61848e96250c225e09dbd4f15180759e3e5da86d0dc3
+f5f4c5df81625a466d31872b9644afa35c81cd8a84a052b954bbada87c1e50c2
+c39594078c068c9b0aed83074cf941bc7afa3afbbcf3f40f34e4e3d1f133a57e
+9c10799313813684dc597fe5ae551cec1f61802dd873526fde81f323b6c62530
+0a5ad9bec4131b9cc9cf26a4554d6d64bbd5c7eb59024b2526f12f3f9352dad4
+7043446118b2339223dc051a4938bc6a2c691029d693b8bd3d35fcc458f7df7d
+bc2e51ea969285ad222a233e5331f99ee402eaf6d76403f6fec3114e6315a2db
+23659ff88a0cf2738c290fb6ccacc2472bcaa3e0ce03f9e9d8357b89580c95f6
+f97c1ef3f0bad43253b8e97e6613f0ac04f55f2f321b5688fbe4076558738b71
+b378712d45c48ff6ec34057bb2a0aa7086c27716aed9c3e6ca6703ffdcfc451a
+0471ae9d6512f0fa82155ae17e133b685717138397757d0230b62cda0ab1ee9b
+b1f0bb791daad5f3789ec0f22d13b44143b63250f09ac760e86ce3219292c6f1
+ca0e77313611d8282d8f62c986fd525baf75a8ab194038359f6e0217d1a5fde7
+ec7de056f4fc6893e740dd8c9efcd629fe529d5116db5482d12bf39b0e3a40bc
+bf1b3f99f627cbe937656f38909e3924b89ef1478be176320b6fb8a7c750f41b
+90dfa427229c900b51d806d959be3b8b2b6e6187fb1bd406fd179dac8af5e70d
+be10e747e198dd6cb67872b48585f33aec68a3ca94a22224056a32a8139cdba7
+aa07ea5cecad1d2e1054cd265d35c6b2ec0a25a0dc415955186cffd2c4b6a86c
+028129fe12b4fd07dde82836ded99925994f058cf323bd1b362a86a8b4ac5aa5
+dbad763abb2613b41ae6b947fb79a7edf3ad23eb7d732727376a1fa9ee0e8d79
+3b5871fc0e4535563bccef6ce24a71b717f90590a7317652d7978bfa78a72454
+353fcf512ec5e804ff6d2984c3e905401b69246e1b040693c581e794e6d57ed2
+5dba59acdedbc4114116da97b749c4007f51addf7dc9bec79c77cfe29b6a93c2
+61e2007b01a0b8d6f95a9e6c25551a20ed592c90c7ab5071280e5d85200d776d
+938df156ecd2d863f8b1848dfbe5d3a40d4b817deab66d5c191b4b05035e0009
+5f04c4cdfa26de785889829564c27377ff1f2518da932d4559017881aa68a802
+5bdaacfd2611e101ac667d3b69e7895337d522e56b4d9698c4c5f9a0e83c2386
+f084f40a75282c72b2fcc12973e5edf34e810fd247f9c0317899fe6efc833822
+8a788d33265883fcb78366ce69783b9a15e8c041e4556293f61c571bcc985d69
+b1761aca9460781c4b9f9035370dda95c777de8d35e1d7aac234987fe1a8ff45
+37888fde3267d97e27c8fb6d95088f0d207e4b8d3e3d689172b2d89b8dc28b34
+43d14646b23e3807afeaf3c83a22f45cbfe9eabdcee160ab7b1a664bb5fdba38
+4446b84b6b863c892a6ecf33f7a569d82df118582e514c11314dc73fdb04be15
+b6bc9b3be801419d90b74cdc52ac40e1342167440621fcaaeaaf9db8f78f9e20
+045d3a26e1b51f2c786b23c09cb94f9cc91df0b5236e3f54062925ce8804113b
+c93c3ab041948a2027d00e112043ef82ce54365fe241a2c503fa334df6973406
+3402fc6d246a8694f436b318bd5558f69c9f182746a25aea1bf1993f61ca48b3
+b04074f8a44206716d6a6d834ed3c455e272b41810c6d70133c455f246aa7764
+a104c482caff864d86eebb2e1764735775e78850006f959de537d66dfcea3f2a
+45e24e7d905439a59ab155474bb3dc63897c1dcb7e8f298366dd49b9b1e42f94
+816a3c275460375dbdf175ca420b46df137a34bb1ad7983807677f093a05b90e
+81fd0ee6b6de147a9813a1a1ec0c7d859777c0b2945edf2901f883b8b54aca59
+814b951e4c97fdbf48aaff19cb9fe7c6c0de6532f656e5b1f03193b58ee693f8
+4684114fdbbc86134a483ba1be41cf4fd823a23f5a52ceab00021c2954e5c04c
+865ec7222d33d82f19e09375610ff6dfcea95e0a25a1cd3d6156b63bcfa13740
+63bfe1d8a5e45659b0c924eb81cb3d4e70e59515ca1be45f66faadb5993ec547
+966f70f5d761c8731063422a510984f7b4587efe6799d2f28d90236b49ac10b6
+fbc45ecb7d91017e16e4fbf716709b37120d3586363e33d94ac92b01d1349c00
+18825eddd5cd9cccbf8c70046ca295d885209aa3fb0b6209c5298ef4843c39ed
+d64dc504c278334107d322cde4a388a4a079bd303c4d5588be979eaa6cbdf8b4
+942ffd0d27b2ebe1533f1d31b3da2c7fb5c8b663391151fe897cffda8c227d45
+e292e9113ed2538712b40601f1f0c8f3d0d69ccb584abe6db54b4044034791b7
+d7a0838aa9d80c971f45486b4304f20d68b76ebc6e55bb683dc20c356176006c
+b1f902f8d0be642da9f9209703c23e48235c35778221689c16d426fbd2903d19
+7fd00e071a1989e8b2ccef17d51e7d73d7189c06adcda120cd3e849c603729f8
+85006337a3a1136ca31e0e41d674620f97f0101a297a1b731b1d0348c51d72c1
+4be0366a2667999067d102d7007d510f31074799ec5cf6ee355e59bb68dd85fe
+3e3f553168c337afddf1bbf895c0df509355dd9120735dec0715fac5804075fd
+cd57fda443cffeb9e9d8e6f24a3daf1d9523ddbd29532a6c5a79e6b1ea1f2b1e
+55e0369cff1bf0c074873ac1226354a6a74e62faf42f1a15c863c0ba21c3c399
+b9c1ddc4ff6e9bc9a3ba58581b6bf67b89b7045b9542694b9c2dc3e185a1390b
+67aacd3c344d37467671f728fddce8bb08e2c6b8cd4a8abc60de087fdd560130
+3f40599da3a1d4abe2e93cffc5628e62d972f034681db1c6b07cdd0e7f9963dc
+0b146051fe8140004c5cb27f0f0411027ba88646baa9d6f02931a762300a8085
+7aba1853932d380a72753ebcf4c9c24a03fedbb2dc057c6f62f31695d35a7e8d
+da73ea4a610f515fb52ad509605b8deed5e44c36b7210dbafb46cf2c5ca7f42e
+00571a8a157a953226cc00a87592050135386c5e7fa1c5e3c023edb0359cc26e
+96762eff0ea623651b10ff61835614486760930756e59d54919f0dfe0b8fe93b
+9b28c474055246750aa1679389c5204657d283981a5cb160e21c1737503ab109
+044a661a3b3d100ec7f4581bf7b67b50970078319890d5a67d133bdc07265d22
+99504698a00ed8c9747feb1e747737e19850d39c03a837f0d504f9b43c8fe9a5
+725eba04ee6cd478f8416470ed154a11484aed5822bf9979b1ebd5e56af698f3
+4b865aecd29c67ca74814b0cd0109767f6d582205574670b0182e0ec6d23675a
+11e489fcd58f0965af4c2f2b891aabd05185de26ba4e0a86b4fce3ba710d9c81
+3a97ecb07ce16ba156e2627048da3a2155ae68a5063f6c2eebc0091711290605
+b540ca4ddd10838e2a64835ba38ecba8043074be230baddd628d8b253734397a
+a213b0a9bee70d623dd5411eb58e25855209b3648a42e4681f90d51b13354f28
+267d48d1b8aaec412be2dc199ea3ed041bc3edaace1af401d01e56b5762f7c71
+cadaf26892f3e1f6ab0438a4ba0e3f5ad953fb15a7d821f6444efc966c67082e
+47e1af0e6e0d199189a994239c9716711f9ed82f6fc2fa1f923b4e3aa45e5ad8
+c0dc71bb5481fa6a105b90a77bf4b8b9b852714cdf4fa814e9d0d89d349ba57e
+dce13210f79ceb8733526aff221386f826a435af47f027d81bfd4d263b84f8a2
+a807c55d1bada31a59649717a4ed8d560d4f5b81ae7f6943c66e9b2ba9739c3b
+559d49fe652de7c968c64030d91099ceacb9ac69417e8210f64eeb6dbec7ab1e
+fe4a3babea0a42ed49cba2e70a6db7018ea0ff1b2b0af498dc6b5e686eecd7a2
+a6b85e07401e08b825457e99d0b5fe48ef13a14fc0ceaea7bd7748b2c7414522
+59ef4ddcd6a12d5e84ad402badb6af6b8d50738250677ac12324e4e3c5d72887
+c3f36f99c04cc898704bada948b431f543765f3112175412fdb80af9850ac5cd
+19b65b018df357498fb4255439913acd686e3edd9a3bed54235ca6a3d93ac968
+6ccc1400b8ecc647ad4fb7334eb768ee32d3213b8a30ac2caae37e99ebd9e903
+b319139533fffa9289c29424a030940ab2b43df031c3f72542e7a8227d56c29c
+a3b07551a0be3cc4d406d2b0db792e9e72942777388d1dcb4d48704c64a99434
+885c4f4f170294c7179dd43944d60739ba9412245f2c34699d04f9815db6db1e
+b3835adbf1d8d9cba2da0d217562a25e0adeaa51bd8258b9b49f1ab66fb1e72b
+d0312788da672625511e07ba68cb0eaf05485044acd338305f55c7b67e52af4c
+124e54d8e3bbd2c6ec6080dd3e191416acaef07bfecc0e77acc92236749ecd88
+96577190a9e86b7ee306b613e0b19015af7bd544e26c6a3e98c51d98cbef559b
+29d79e6bc3ff0966663de38b24b2449d38846e6652159ea825303122ffb55333
+a108e242a05d015a9abb0089a5b9974cffa5eef0de271c243fd9a4f5ebed3b53
+324de92d22fae131fc7676b747460fdcf199076cb5d922e2098446275946481d
+681674c97c00466e79ed31008c4f83626ac2dda6b0464b589f01082e5ed3d7b3
+1caaff1052012b1da1e37f3c0049623555b7d1525f44c0824a53903b54d4da9c
+083d7acf2717e26be8596a07574661a53c504866959e13dfe3547fb8c5ee9c54
+e4d16952d25f0d32c103c1b2381a3b06ab7a26262f95755e2cef7a028266ffdf
+3687304ec78638f3607e1d4c76af0cea8a30bdb7afd9fed23b79acabfe622c82
+9059c90c5bc732c53d8ae7e55f6385ab5d78e0c4e0b55bb9c5867ff9a498d3d8
+dbe4f0c548de9edc0944f1119bd9a2c33d5d1c8de7c5156bccf7d4e52265464e
+5e58d93fd79f40f0ad593f50bafdad06a77fbb22982b35516497305e78f50471
+746076b77160149dd7a38f2fdd678ddc2a954ed788a19ddac34ba6ecfa9f0ed2
+f7bcb5f97eb077bf90e7c3852ea49b1a64b3a1e618cc83bffeabd15abb82fcd5
+38b644942b6b9741b3eff1409c67632c6a40d77c42ee0846d8edeedf56100f28
+ce8a9fb58b4aea6fd3fa0345832062d748ede2877fbe30187b635ae95227a7ae
+e15f86beee2718058ee928c73d0e6f2bfba3c144d5fcabdfdcd499f8b8db426e
+0553781a197bad1798327e3bdd32060bb55c660c24f3ea4e658d4e95f69fd589
+e9b35a2153bd45fde6f56e50a7cbdf803e26103a62824b24ee929b16add5f9d3
+5817264fbd1d0b3171fff576d67bf6aecb15eb25c5bc6024d558725718ea8406
+de77df6446ce372a13fc2d96fa72f65932fc34e7caf2ea065d3c94367070ad57
+84e94fef2858bcaf7c60f999caa4d0a483fcf77bfda5ead04c77b87c69a3bda4
+9e752456a8a91e78c89e72b3d805cddf729c8d13346df0c1150a7e16f37abdf4
+07f8a69b062fa83cc8996e8857d26bb0c09d5a5182cacc745772b78b584cde14
+6f5e78de240c5f6bc995606afd03afb003e0f8f07f4f62478caf38494a162a82
+ecbcedb9ba0d4f074611e68f0cb7bbfb76bb11615cf4cf26772a57d635613fbb
+9fae0485183a90656c81750e962f35cb61689ec21f11539df17b2662006e2391
+b5d31851ae55c40d408649349ae3500bd52990f1ad042a09d0f31fef1a5c7c89
+5ea1118ea0c1576b630bdba01bc628ceded0ad35e6decc10c02be1a05be5259c
+f318b84f4a0d5eeef0ef8d991e029c55213d73a07306160751c8fa142d010c1b
+9e85dce81b6c4638de70603f7dddf7fc3a80540151b985066926c581d21cda9e
+9a2a0b9f428fca992ef1970a985b3f5fa6e80e5923db4de6ed7898c508852a47
+439a8c50e416c2b75d7b3c8046513d91af6de66ee4b6f26f6b639d492b105b1c
+9049b04aeb7962405871e868f15b6e1a8e8806253672c6eba1d9447c1b453d36
+59860fc02c285f5f2d773f0e76c75d5fb2493a5c26901d9559a9f3550411039c
+129fa2d0fb9f5aa4d6a11f490488a08fb3de699fe868ce02120fa973fa0ae84f
+fb524eb2d7823fe52ed58ebf40ef5c7609b7b8a5e1d47cdb9f624d53d35a40fe
+c7ae7c17bc941a7fe4c9c50777595a97573e3ef83582033e1851577036e02f5a
+65aea4282fe5171269ab39a07939b2a71890ca4043102dfd0afcd8688996a45e
+7b6a858c30e54a6f32fb19bd71adabd584ab82ebb85535e53788081e553fa09a
+d97345c2ff7e6b7dda5093bb78844783002adae6217581860729e94f5455e6bf
+8050a1df07128cfd83f682b4d11696a62d204a7d7be0a43a653d1cb6f58a760e
+cc565ef2e33662ddd7daf376653963f1485cd1c523d9341b1131d527ddc5e166
+f49f08b1bf9344bf9f7551a2688bb258cf46775a6a31a4e38dd1114fe2e44e5b
+3b56d7f3d7f44e3c9f09c6e9e098d425370daf4dc3c638581a3f34336e80e8de
+9016f94e65ef7664a4ffc441c52d073d47da7b90c39aea70ee619b199ef79773
+bbf5ad46ce9dd19afdb335492d31fe45cd69650eac723a9d6d0a3c9c00eea011
+daae00acdde96c901f111c402703f7b1732e1527aabdab32fe1355348e76081b
+27491e40f472c84e26568e8fe043ae3b0813137b34205d5a005eecd8003b244c
+20e0fd57bdb3755e7bed94304a77ddf69a9c6ad5f286bd2e95e4f4f37b6b6004
+b9f7436171c6a17af1136c05bea345577c488112c7c8cecfe7c57f2601265076
+dc5cbfd0d2e66b8587d92d02ecf628c297f4d08c149fb2efd989e9ad7a41cdea
+03b48ae9853b03768a1528cef605f9d64045b1c1de64a5e0d26ec5af66ff278d
+296f02349a6344767f0b0983530d314a370687f2019ef6c778654c011206e8a7
+c47e5572f904f2946372e8ce442bef2cca4fde1ada3a06580539088c11804c76
+e66c32e076f0e3de041e9c9950dab9d79886a404c081f61d1eb5e0bb4ff05df3
+8412f34b01dac78411e4cd8c6322b956fdce30b66dbaa9e8df62f797e553b83e
+e379d96df6a2b11fa7edb9ea2f1fd8ec4b89b5ddf937bf91d3b574ea667a9847
+5737f2bce293b7f9ed9ae06ec39ca2befe1d4378b707e266ee3363acba05eef4
+7a9d71f8a205bbe81569ff184de2e187735829b17680534888904fe67fdadf4b
+146c1d80f3453840667908b0bd497d22c8ffbfd1400fbd57e140afe219fa8f51
+c8354af1cb982ef423f250eb9e8aebf30166780d631400ec33bd84bf71140403
+f5cd03fe38b27f08167cbe99bcaa3fbca13d734c74148a4321627b672468905e
+c93b528e396a0d2a917ce042d8dfa63eb2575723962063a2487f044c365462fc
+907b42eee612f0fb4e34a3fe9ea1a0f168da2cb89cccc1b5422e81f09bfa175e
+3479915053e90007ad92ab92a2a0644726bf022737f3b7b0ee7579fb7731ac29
+e7e043175277ef22942a9030e0bf91a1e775f9fa3f6d86ea3b72c8ddb42a670c
+68694780e5a7ab25968592d823bdc6e812d19641c1e176e26351ea5355435739
+7f0f92c33c67
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F122_0 /XDVKOU+NimbusRomNo9L-Regu 1 1
+[ /.notdef/.notdef/fi/fl/.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/exclam/quotedbl/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/less/equal/greater/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/backslash/bracketright/asciicircum/underscore
+  /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/braceleft/bar/braceright/asciitilde/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/bullet/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
+  /currency/copyright/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
+  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
+  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
+  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
+  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
+  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
+  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
+  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
+  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font QYKIKI+NimbusMonL-Regu
+%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05
+%%CreationDate: Wed Dec 22 1999
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% (URW)++,Copyright 1999 by (URW)++ Design & Development
+% See the file COPYING (GNU General Public License) for license conditions.
+% As a special exception, permission is granted to include this font
+% program in a Postscript or PDF file that consists of a document that
+% contains text to be displayed or printed using this font, regardless
+% of the conditions or license applying to the document itself.
+12 dict begin
+/FontInfo 10 dict dup begin
+/version (1.05) readonly def
+/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
+/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
+/FullName (Nimbus Mono L Regular) readonly def
+/FamilyName (Nimbus Mono L) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/FontName /QYKIKI+NimbusMonL-Regu def
+/PaintType 0 def
+/WMode 0 def
+/FontBBox {-12 -237 650 811} readonly def
+/FontType 1 def
+/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae
+6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27
+bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf
+045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670
+0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4
+1b2b9e8f09253b61177e95ea219474796072f4b363fe05fa763777e13b518310
+ac032eeb94b88c7dc8741fef59c541b57b0441c6888237a2b66a182599d1517f
+9ec474a9539f1632c9a5a1801fd646b529cec2b430f1cd205feff509b4092535
+29e0b7b372145ddf62052c9c08b7673d36dce58e3e78a8e4788b34e36eb543c0
+d68a36e2831e23c440c3e5f1ba2248633aec75ba8d6c9e7fc0da01af08776246
+9a8009a4f3a93241f2f34c72db3361e701c06538a631f6a8cc47b1b5df7cbf9e
+9029d42fad4b90f81cdc2b4cf52c09864f657c7c357180375c0b64206515e472
+c6d71a2c5d03c5143600d0dd439998956b9896ffbcbbb77fc1b6675f1e428390
+144b29367ed224ea9e5f51cb3e349dd118422bda8b6adfe217a02320be72983f
+d6fa232c9289e529552708746c4c76df4ff0c7b27fbca194c650679504c0fcaf
+0c643c945a2563ed47cd8538edd441bfee93dc4160421cd9efe6cb32d81a8e1d
+e1c446eb5ec2a6c855e4449731ed3da1c3ebbc3cfb6553c0f78fe88bea6edb14
+a4abb572eaea91681b7e9f6a2a08005164340dc1983f75b8abe75fc02747fc2f
+0c5b31e0f9a8960410d5cc677ea77d0b1b28681ab5e6b3ac11368b1e493f594e
+9d037f4fa4c47ee06351cb471af4c1966aad3e51415d70e57eb0d84ec3a655d2
+b0e3a818baebfcc472b485625414c4e20d63b9673b0a0780d8838b0b4004df79
+da0444405db6a534a7571cb1aaff7d4975ea8a578ac37044cb1395a056c7d9e1
+ccd617391a2e852a4d71101cdc3c9350e57657b376cfc7cf7e387414e4a017f9
+943ba9c3aa45e955812e6b8173acbb5e5fd0f0654868def282d134d0b4533159
+c2bf0fb6959689dde7e8e5d22618fe9c8a973a87ac0e853af5542de5b89e7b94
+44ad4496afb696be0eafc9dd7a421856b1c0baf95b5fa887669124ad3698b544
+5e82a4c5cfba4e5083784e52462f3724e7273de6e00e84a1d83b6a8c0e79afcd
+1df167b97e2dd796b6826231d31fd02991e990dcf2dbbb0026f9a151c0720467
+e68e2cc0a5fce825564902efd08e2ce18896ca20df47d2df8928baa632825543
+d0f6a5c94630e63411a6adb264443eb7d0f6c3883d195661ca3a1bbaea7bcb41
+d5c18fee8453579ee23f1785112e31c6dfd8e9ecb8681b248f0ce3d77aef339f
+b455f3817cf7182d1fb0c53589750be5bd6543beb9c341427d0a4107dd5d6ef6
+2197b85088749f3cafa40a6a3223d4ced495d6228b3398fbbd0d4765cad178a6
+f93c5217bd254777c20cbfbd33673c5ba58e2b021580d63c76bf196391815c05
+d05159b171c9034edbd0e861c5a26f2dd38736457fcd38003882a66a4cf8d7b1
+e2803ccfc1c9fc2abda0271c331247360b7f2cee58ad9cef1b325f62dbe2be6c
+babe23a220f662247df70428c1f79c79684890324e6b7166b269b174b98ec8cf
+f33b589cc3d3daf1aba6835a22aa2f59f8d386610bfe936a05794242e99cddea
+8da5b4e5e56a875c49267e2d48ccae616053235b4b64ae53a573922009e8a05c
+a56fe84205488200ac68b62fe4f07572392940638301363c4131ccb86462c242
+afa463e3f7f036f63e622243893261e7ef744ed489397030a6604318da3f592d
+037a620fcdc10da51b8f31c816f91016d38efc65b6d463779720ebe8df03be2d
+0ec52886ef9205fbfc6563ca80accfecb7c686f0212f85da5024129f01bd81b0
+bb90d58eefd17fb353ca143a4757421323238c5653a3bf9f28cabdce6ff9d946
+867a33fc9ffe0adabd3679b555a9ed3c181d3e108f776e13bb39794cb9f4edd7
+7a607e017fe054811b3ea3f5b02c95343a5eb449723c9fe7857441feab37cc93
+70c285d3d91df0a0e1bb21d022f68f0c0c8bfb311b8efd056f47c67b03b45dc9
+0bd78333d366796421469cda8df6f0095a5eee1a56621d055a5b12d6464cceee
+9f5fb6a40ce44ab669786f4f0ff1f348c9d3712761a07eb8aac26c35c694e1cd
+65b01b32a2319a381734864a06a349db71a2fba74ddd58010c94aeec901ddeb5
+41e0205df489d02664b4e2fa03a404c8aeeddd6d1506bfe56e2e8a6d3a83f79f
+35f2d552dfff754bad59df45582e3aa87e6bd45725b2c44260e651b70af70186
+8b168e440bd70014be5c4ff89028997bde67279b107f9fec9b4b2f2dc112d811
+4dae65205429ffb3c9734df32328ede30565ad65d8a1aa620bd543286908d747
+d13cec2a2f19cafbd2ad480206f8b2b39524a2fee286cea20b22b67dde321e3e
+3ed87d8f7d9b253a16c648de1c9c8cd84c4f2304510ee263083ac617954b7c9e
+62f397daee458e60e6058addaa14ea573888162b6777c4b5e80c2fbfc8f75ebb
+2026c01a1ea38b85c4fca949d15b9a470f36e0b697ef5dcee10c45f01230dc48
+728f50abafaa52ec5f2899b09db8b74f46ed55c8efbd3f54f6afb0691a992b15
+e1bfe3b6fcb6764227aabba94c4450183f139da7e12df63878b0aff0d07c51e5
+21a29ab9fa0482e9dcb043cf704f17bdc1fa1f79bac725d6fb01dda18a700eff
+5d691d1573cb0ba677a9b1a62dc483fbbb7e4fb0ee0c87cd631f7145b710d181
+85d5bf85df1cff42d9dda4430a8f6f4b6f6c01d20055d8d9cf1d48f268e046a4
+9bc64bcbd7742d090608a1c025f39d44bad9a05ec2c7b5ea4b48959f1cab0974
+537bdbb8828a830843ecb3b6bac3589cb8a35fddf8a55fe4445ee3419ecb9dc1
+3c9a3045f5fa5264860b6e310854cfec5bf920061c6a4784d911fbd82c6b5353
+72cdc7ff3dba22cbd02303654e4d1ce6c5f03ea5719bb456d1ab804a6a9e08e1
+15d0ddbc46f2ff494f0703fcb9f6c079e5af3f4a7bb5a4546f9ef8d708732fbb
+1bb4d11a942470e0a96d5c83d20343876d89fd6db3ae1fe60034cb97659382b8
+03a4c8ee4a01738285c8af5812c4de7a97b1eae85315c9497c082b28990e232d
+7603a06ade5075fa217ef86ed78492c31ce4082f14a6952e0d07ca9d8e15589e
+7c3f49cfde17055e8695923477b71b4c09986c62875e25576dfc3a3854c1cf5f
+73004b97da00a3deef1be0aec1920342613d3e4f805eda2ac121809b02a42d3f
+de9e9245943a23627ae0c1c34b5e6bb1504ceb67966e9b6f104fddff62e82b16
+cbe3d401aaff4d9b44236ef0d04b7edf16eb08b7d19862effe88b696d05008ae
+ffbfd118722a55a1597604e232416c2190b36c30928f82b208006c26b85d7428
+7153fccc92a65f04229c8d7b2c27ac4294034a051b45f6ed5b0fa3e23af3b5a3
+5f996bb65cf298c4e15e98d228a719e1c968e7d5d0a75a9bc3cdf8b5c4a136cd
+a6995d94f5dbe307ae1ca6beb56dfd09a6683bb1437fdcd537e43cb1633a72bc
+1e72a5f98497227072d863dee990660c137064f8f73d78d9c5a40096dcff10a9
+4e3c9dff0d2bb80c429e2c135895b2b3c5be663adb1bf39e3125e4017a6050c5
+d4dac24a8149a6166cf87493f766d9706e13a4c3b443722d7ddedf777c5d0bdd
+780e839b10a61dcbb8c06caf2246feccc66c6fbaaaf8270e06a4838391d7ba0a
+a3d35b278235fff9a707e8da8344c078d88e8eb2b5e2f8cd8f2134d458221623
+1dd96524af97b92662292f6e1759e004e2255dbdc4e0a9fe007e550144af357a
+32cd32e348fd2e60d4c10c33d032fc02ff8a897c4b4b5c35992e6caa8bc4c966
+6a520e2e98184efcb59e2d534fa34c428bb51998e68e91dc9382e28798845da1
+ae9d6e418c2e3b05373fe26901654e1e1a7849431681479cf05e0c19392ac9e0
+562794d94316670bdf9afe2d368fdc31fc2a2a98dc8f23bc236690d897e209b1
+c6048724f4ad378857640140a356919180b348fd6ceeb5da8e4b3f9dae1cda65
+fc155e10b53a271f23c65397711cedf404dc45dcfd9d3c87d57c1365cf9e6f9d
+64a11df0f71f72ff52a8a4c899879f38e797867570844ce904c3104e28f1b85c
+e31f5e4dc09852f5b47b4fcf2b1fb394f4a8c9cc8b807eaa9ad4d8ddd816a28d
+7bdea3811e47722cb0a11f3967bfdc501f5f19f5b7f925455da271243465b55f
+56030748235d6c1e8cda657c5fb7c1ef58427b148713c569d2fa172a2d32e50f
+7440f4cb961d34feff587acfc3009b39005f8ef1b91c28718601d140034b4030
+05dcca93b5d4a0778cfc1a3fbf7e489221c88c27e05652d3c3aacae2cbcd9b5a
+439d3687e32bdaa54a317a6f70833c88af86056dcd68e8546832e7662713ce20
+98e5bd9dcfee48545391246e794e408adbeba57fc3a3ba4e18e487abd6f26a3d
+085eed9bf8e30a77c85271294eff2f8e3def17482c5455dd60fb942f85dc73ec
+9f57db31ce83e7e3574e17004ebe6fd903f485e5ea88c8294ac48ed09afa41d3
+80ea17e2cd33190477a0492a51ba20be31a367e6260d0dbab050cedae7659cf5
+a67d94540d7022178ae1d4463f84630d51af81054a6b7ecf1229d9ba0a6773c8
+e3aa1a9d95416fbeea9ed901f1dab166058080d42f90499b415ad8aafd99ac0b
+7220401edb7a32b298bd9b9010679a1f9369a5bbe7cbe04b2c395f1159c2a2fe
+b4a85292714a8f491e29c703932acd583f6405828ca8331612f5f580c049da26
+22a27b7aef2806c427af57147beef345e56a2ad82b0fa3662a31828bab7f6b6a
+abf00d5bdcf2d595ef576d7da2ea634a82458444145803d443560553a7d17313
+b67ce7fa22fe118e9e8187dae14e79860b371c83ae2ae787210a86a6fdcb95d0
+c05f1b2ac98eaf239af2469397fd8afa989eb8ba0c15412b9f90c1555cbef583
+25c0999b1b10ce4345e6e949b375a91ec348eda0b0d418ad25ae482e02cb47d9
+ec19b444406d720a45986bdf85b4181b8064872f65e7a93bde15ff80ebe555dd
+8adfc28b6ab58525a6a72bbe50cde6461edd83ac9359c0042709e63ffda54a50
+a5a6e72058b498b7c494b2a7e68014bf1c354506c4dda52d7173e6530340f834
+7db62785ac8e70a8f560574249630f3f89c159f31ce437b8a86cac7f5b25ccfd
+b2fc41fc8392430c296146477d501ea752cf52ec9bfbf462d12b39291f49ae74
+28485eec80df5a1fa01806b3013bda44477e671e87e82f58fab32ffc10c111cb
+76e7099f297d6a67a7374e26109f751361768ef8118dca742c8f20774549a2d4
+da72d15706888cec1edbfba70bb8149b54655eba7caaa85529df4bea9ce0c633
+38837abff2597c6b75bd058dfe7091d3719efc3964d1a386b7c6b93d491b02ac
+86b08ff115b548abdb68f67de3b6cd280ee1544ddf344782fe30913a21eadc6e
+314f3ea2ab3d9a3783d5f9be76c4caed815af7def664098cf1a167444f31cf02
+b9229bfdd8109322df0cce8fe0405d523bd8020753f3d80f49365d5006829fed
+63cb9571b219b3869dddfdc2212f0fd468aa3a8c78d06f58fc6be0753bf19eb2
+b014e28d06053e931257185ff8a46b2c443b163f9d9997cd2225a33ec6bef513
+41aeafb9f384bdb7f3c78de5d4adb511c16259b1916b29440fd8cc01dde8ccf4
+e8bf0a4dc53a1e26c020f813cab07eda515e7d395348ecbf8c64186fa5a81390
+7653da3f3143382a374b96398d14bf60fcc5f7603512bed7e8b33e7b20529244
+187795b01754b61d5aaab742be9be4532ddcbe6b88671076aa9551ffd58e4930
+1f3fa48529d85586f1e197dd896f91f0c64ce80bd48519f8c1bf9c4816622cad
+d9cbbb97e7628a64f96b6816c5b0312bb98a23715c3de2a797015203e2787aa5
+ef40b3e17cac398805fe76a33819d4825f80654270445ba955779204f5e8fb5f
+418edf66b627b992cd3db5f04b18b5dd3f742689b3182d41760bfe95be97e313
+ed97e32ecdc16d3d574a2ba1092408b5ad6c165a39eb148b2513bcdd01141a77
+0720028f31693360e9909897d85bcb5364188d391e34dc98d86d4909fb41a13a
+cd4e43c7f943889aaf1d430714d1b0f3302432135a39b11be63f77d04780a191
+cb686729a89c7badec30d3a9b416c32350eb416fbd37104d038b0252a8b91f77
+45b543618155a76f06274dfcc284bfea8726e55ee8b47df6b4760e22c8f2020c
+e0da1fbba9564cd974075c1670bbbfa32b5b1598d198a1a9b82d87a7814f5d6a
+e5a97d890ae6e9307f3147d78d4fa40f5388b9759429acdb0e20d9ddc923f4cf
+f2865f95a8fc0595724b0043e90091a2315ea8c071ab631ccd04c3ea77541646
+b2fae2bd69c5bb80849b85fcc583ed6bc743c7ab0e83634e9625262ca557911a
+3715e19e727337fd16171908a75e44fd7f6ba76157167a214f11c228bb1f132a
+b6cb965beb1aeb597276e4e1bf52614076a37eb859f9d61669257c195560586b
+b567183114c9895464a71774bae8eb31e9de3c11e0011f85024f749a571a3e2f
+0fa7d8ce0d53deb20fd2f10895bb8aed95ac89f8956a8c93e809536e9087cca8
+09106a42a59417359e0ec681c5905a6024bd3208fed44320b723392e3f900e90
+767a6af4c4e67b407b215422a6f409d59c309d1999f973fd9b3746d983b0bb9e
+1675aa41b9f6713630710faa59328b3659f559a5e547451191d88e336863256e
+d43a577b77f81bad982c3d06cbe5a12321cf45da2d300346d8534c4ed6f449e5
+14ad627693dd361913862aa14548113a553b5558f8da4f5fe5cce86ef8b6efec
+00b188a5fa1ac6cf819110e6feb793411cfac4f900a379178c2d7990f8adfe06
+4d741594d2134678e7f9789fd72e87985334ce7e531f0855525b9dcac36196cd
+2d75d8bbe2b02ad9b20184d54e9ac6bbcfdb0d13367e2b4b4310b9f89172d59c
+385866af42d06f9477dbb56e8d3bc8ee8c129849080ced3d7b83d9dc1a32da0d
+b79f6e1760b7b836e2d9a0b59dc7312a3cd10932fc771d14f0f2278479e7168f
+2f4e058c0177456811b2de2b5358ef33a162bdbd4d908e3332930d0e1bfdcf35
+ebaad4210a5f80a39279c5faad2803a748d96651778d0ce97289bb70ba010d93
+60ca05073141c30ee35fb9b8d9eb3ba37cb97fe42fdeef382fd604a1cccbee9a
+65716ccdb777bee502ce3b654612362291ab13fcb507ab797d697f4f32d85763
+39b9cf437eb119eba024e775fe01501a8e7982d266531a5a9316abcbaf5b9672
+8ffdd900cd9814cf82b9ee6e789309cbf1dfc11f715b1a201dda33cf7527da51
+cff0e36d2f4856808b522d5344596058508302f36554419f9654f941ca0804e6
+b38a6d596ca3fd660901d1c3553aa92bcc95703219cdb0cc8bb540c2e60ce0ad
+0eaeab36ac18b3ae477967bf586ddc3a45b5949ca5fad78910e834d8c83faed8
+3cd8b0546efd2575a42e8d4e44c80f375c9d960686e6885a6cd283ad3c1f1a9e
+8e0cd7ed0590ffcad9da423285a26c04960dfbde0a5315d81e5170ae081644b0
+2aee581ab984fc189b5adbfb155a52d9f7ed759091062e9d2b2c2b03c9272ebc
+a0101422d252aeba66664b23a123ab5fb05da5c62e83934c10f7a9489fe6a26e
+72ae45fa17dfe3c1badf296c09a375d2451b7b7ed5dfd262a7c74fa4a9a4f5d1
+f431bfd1e79decc99db3f7eddfa78dfc46a47c0881f500f8fdb96aeb4fc4dcaa
+ae0f9687e6edb2519ea85fef772477c3e33ddb52900657f018ff227701992647
+c9db8e4802cb0d6976b1cb0e3dccbc573bfb38ecc9db8a95bed9c4d90c97d3b7
+0f87ecba2fc8b03a7088f1eb02875c27cbfa32efbbf38ddfa77ab23c8fb36d1b
+ce1112bfc0de7f911f1b096461faf86cc41be0bf61ef31581847b1b478fe28c2
+cf6a34770e43a95e08ba67e429545a65bb9e6e18a6c4dd2a34ca9cfbdba9cfe6
+63826142391f15c543076928f9867bde8b2b1acefe68c777fbcb70707f4f91e4
+7eff73b0c3c26986d1ca582bd05873f4e40179723271d1799dc4fc5e3dd9cf77
+64e41b8aa8dfb907abf53e3a0007a714d6c941114f5beaac82c46927441e3402
+36c2fb70de002ae35627ee5119577ad7fcb9fe5deefc239aa09e6bef15aee873
+db24b3cd614565415a3077b20c1b095a5726ae475c889cd9341c93d4a1984709
+5ffa8e8ef4f31ea7dcf6375177f319a05e551a8905bb47c9f23cc5c0e5fcd8e0
+29b3072632a060e6891f2b77bc1da20cf7da33173db210baaaf8270e0315b6ff
+3fd6c2207b1a429577d5d9d66a0f8268d4aaeb29681a21f7319ab813e2a1eadc
+39b8eb7aec1c33cc62809a10ef560d2453ed7551f097960efb4e4708858d5729
+6307189fdfd3ab62c75a7c501fada7428e157752fcabfe629902715193acb11f
+ca4aff2b0ed13442450e4f2a4873d5cc3689f7d4f7e372326e2f7093bd7df4d0
+ca957794a61a2e813e24155ee3a67c4312a06c72f84acba679e67e6c71f43027
+cdf8a21da3bb5f68e576405c1283016e541a3e9eadd67a20ff9ad7a658a8b831
+2f30c18c451f553c1149960156b201304263eff2f2549fef2e4906909c1b4904
+ced62fd9c0c973b82dd66044bfcd36e1991e0b6b84b6102258e205a458952aa9
+53832d094e6915c3a1669d4f532132424fc707dce60bf9ee9e06d4035394192d
+922641adf5777d563ae7960c8cd6175dafb255747737b02c40687953c766601e
+caf56e747afdc67f8163de81bec4dbd48b3712c0d24e92747d98d5d1da952de3
+eb9ccb3a132121cb1c9b2de42fe1417bea313043b5aec119bb0d1e3058a82087
+bea4d00203fefed8ac113723b1081e92ca7e91363b86eec7bb5dc2e123e41c66
+577dce271c93c667cd8665372d5d3b906070bd229489a91867551f3127591bca
+b1ce86d7d9bbd5f265bebdca4c58af03023e9ba2c291d78b629ef48bdd731c45
+591edf98d4eae6290a00c331780943d1c6671ac237a2844cbb84082c06d39cd6
+b04a2e5819d27a25da749ee7c94488fff5f59eb0a3789522ea85eb999c66f359
+d1ecc77cfe14774fd76b97270e30e95bec696aef56f99123db82304bc662d8d4
+6b342e53171a512e7d435f3009de3613d91a6f32f9ec2e11bc98b09c4dc4d516
+8a2ed64ac351109e5e38a68caac84ab583421eafafee02980bf8d8fc700f1a00
+129564d5efcd4f7896130e76fbcc6c6ad66411285958e3d17c2d408960cecab4
+02c5068c43df99d4de6b9876ec4fa2128d9ddcb0f10aa89aa8935f22c9445804
+4c1b0ce6cd07c272cfaddab0719ef5cc8c597960b7eea7b4cb5a10c826bed1b8
+219d464d72a0be58ae80de6edf876c04dd2abdca41253efcefc0552989dea491
+9605795e6ecbac4ffbc39307ce1fc794d4bd78b64ae38b2750546b8613378f70
+7c5c29640874f1bc3549f9a381ec1d13ab38b1c20d59f90dbd2397a573ffc9df
+525a4d4e995618a58148687c5c949e14c0879316236284a571a5a386fc94cb2c
+c5f7327f9269996e2483e9c4f22a813db3ba38cd036a454d335497f53d654d6f
+e28e4583febc2fe34cac50be37bb6e42b8f92f694cfd4f805c6423089bba4461
+8e36e92d90a06f749d8a1dfd93bd0645dc66cd18ee797ffc06d4938ed9fe7959
+ee2ee5daac4e5f2e15a8b4c311eff43f5ea1a13fb288ac57267b71bd0ae02964
+f1901a7b5005a834e366399eae62532648625bbc13c64c006c372491878ef7fc
+645667f249fc7ba564e152012e485320fb3c5dffbfcd936a93916045e0ddf257
+992e927120370994664643e2d57678fb19f0754ec4c483a8b6ceae60d39703d9
+f309e68388cf20bc752caee575c86ba39575a07528b65400cbe9fdae6a5f307a
+b199a54aaf70c5889bc64a30d5cce65c2276ed1d9fb30bcdc94a65941a2b0e76
+3940f7d243c8de8120b5b2f2995d2ec3c7be6421aa1f7a5f8b6050c17771c5f9
+d61330fb818df90f3062f9f21c23fd0a59d6ad28e023e0d3d7eb4dfbcf0c6bc9
+9fdfb74f740579c8460fa6755dfc800c5327da99e494d9e18efc6752f1e6eb31
+5e399606ddfe98339d085bf92634d2f557d2a07db440f45fc2e60732c51fc4c3
+047f9f6dfaccaea71a9b14ae1e22223987cfc33856fa6d78be0c8b4cfbd8d608
+96c0699ff248a80af31d111d3d7437427688430782e1e99858a2379852ca04de
+bf7d0922b11865b5771d902dae865c3ff7aba28da86ce91a6c031a647b6d5676
+672480a7ea057dd805ade4318482e9f5c7e2592df1672342b98c8b67cf25dda2
+f69d55e28f1c35b070acca2e4c5100c18b102164f534b151375bf8e9ec27cd8e
+e43a7a23cca2c5462ea92b202d9eaae4da36f8df69c38a4689b04ba3e6e6a2a7
+8b06763decd52595b21d5348e3f6fbfa775f8b88330a4f35bc3213a5ba19d277
+4fa8c256d06787e6aced43124b422d3ed2ca884c64da93933135926880b21cac
+35e222c4b6076bb2b391357e0c643f04d209788fc140c7303c90a3c3faf5fccc
+046d3b268154e017f1e4082819de8a5bef0c1725f008b936a243b2eb850d0900
+4560651003c30ae5fd462d8e68e4ae51d17b636bf9d45c7fe07255e470d2748e
+f9720203181e528304f71c1fa2fdde7872ccfe55bb77c8a04b529cc5ff114c64
+544c4896f091965dafaa0eef5e8671d258f4303512567dfe2eacc764f0ab9a78
+206ddb0942d1dc868d52241185e7c830c57f31ca9c08453c6a8f35bfd7220a52
+3e3148beb6fca0c2d56048b7755f068220d59d4fc713056bde03b1146e8e4b37
+cb5cb8a90858920236e561fa21f179c12f7be7cb63eba15759bf0b6299ef3835
+b8d41edd37c1f1098fa2bf3cbbfe0f7a98620e7b072f5ce1c90bdb8d5f6fa9e7
+8629f3c6b4bfb047c9ac1869daf234e4a95bc0bb73f036de76595dcfa2d5e856
+22b48bec72edc8a798ae673dd434b01e89019a908f59089c9789f58b8350a43d
+b00ca1fe192390daa4e85e7235492ce567dc403ae5fe8f0761274973e07ec119
+1b0ae1cb7f6f31076771d896139920861da5c58d3403a416f243f1b58cf54e94
+f3dbc9351633887e8d7ea6f88fc4a0dc6d2a471a78f98ebdc2a98613499a80fe
+b166a4b803b7b4ed05ccabefb2405745f1ff28921a05a0245bfae09355910031
+180305de2f64f071a7abb75a72eff13539eecbc4cf54ff0bc87f6d72d8a742cf
+5073aaf7942a137ab2f273e22391ad1d0dec9dafd58ec68553be5fc4e6c4936f
+a3e67a86f4ec045cf294a1cb7f9a60ebe5178026fda700042cf5bfadac3d7ad3
+17f9bfb62ebd5946992569e9aedbdce9f3abfaecd6d8fee82559f0888d48f794
+697c54b805026ceb1d708751d88af0e5cf88332068833ceeb24223f5b5025384
+066f67ce49e586ebc4249bfb15074cb522c3626bf2571af43f0164b044b5aa66
+9d8217230edeae2453fe02f018bf8a8043cfd63d744388c12cc8430ca4157c81
+e7018b963021ef43aeb42f1f5246eedde76ad7507e65225430f2ed40877214ad
+78a2e199f951e52790e30ca09c0ea8bb318756137639532e638661228e314364
+1b1d60aefb5222a3b724674ab6fbbc3445b878f99b629de47e52e36693dc4060
+9fcb048910f3d70211659cdbce05f0733af96afad264d1841b2fe33f3df5262a
+92e98f7a5873f70b931a7c78863dbaacfde460906281d5ba5accd188edb2924a
+bfc1c6313cf0cd29ac91d2d374734280adb1ec4b2dac9b53da1134b7ef26d10e
+e05685ea4b31e5396c4281ba371b59b12516816675ef303fe4f01f1f84de922d
+69edc0d18568c06d4dc79be0b9754b8f88632fc3a74fa418833aa2943c05c912
+b7b60343a7dc7a3f6f1aea9d83011afcc00619ca95cd8f97ea85176570bcb441
+e9b74ce8b100efa22290b3dc8113db1b383ec98f8367eca2844bf1742d752d29
+7cca604ed822c3f7b560300b39afe9fc8d9340735a718b09064157fd10d43dbf
+96302c60195fa1d5bde0c68c4f235184898d0381849a6011239ed7d6c47814e0
+a163b82e56389248e7594fb9f4a2522ccea4eca0d36e1295b3ef67aead84cc8b
+c297009eb5d21eaad7ab4176a443acadee13915c5ca44ff41ccc2bb9abb47fd9
+6461ec3d38876df77e5fa9993a300c39813f788e17320de56592806658b42a04
+dbcdaf7bd0684f445884e6f1a574467e52019ee8fc129ff3fe74fb03a5d67047
+80155de767defb2964317f6d058d5b8cc35324368469291ebb15cd320d566b96
+c5079d12493a8f84dda5005f8f3fd7038c40d1e704b4faade3ccbbdc7e90903d
+fd3da3bfeb37ba41db2557640f2bbd6f3f49d9e37925007cb97f98c6e365d06d
+282a433e1aa95dbef41be2facde3f5a08254a366a74b7a2f5c14898881d4be99
+aec4b0ee10022dcc55501637ef6f6570d437dc8120e63045002d7419057e5c15
+6a5539ebefa7d632d343a41df8804a6f855eaa3186b3f97fb7f79fe1377f5472
+04e186f1a97011fb950ecfbdeec1ff992b1ebc6837afbc0d9362c1712b114bb4
+4747c291759e7fee3f81b000f9ce65feaed5c16287f5e812f152ec27815bc6aa
+35aaa245c882c9176baabcbb81548b5f271c42169287da48a7c6140af35f09a6
+b82abdc84b8220577cbf0ecf0d8edfd303f468ab9d6a2b89d806b3e19297eb13
+eedade8e405ae9e0e9412525f95e6a7716948fa2ac037dce19d67a156c5b813c
+0af189b9b778bbfdf730c2050091018865e23d6cff0ea4fc0d26a0cc510ddf5f
+456f6aa4f1c33fe7b40f5f8576b477970d6487275389ce7b2444f09e3fa5c426
+9090dc59354fba985544a261230fb1758bac67e142c4a1e71664d7f66eafd525
+22b83d1f2cbb5f97f04924e8cc4645b27331eae812266982efccbccc4ee93bed
+e1e0ae7e88768e690cfaa0abba98973caff66daa632834527b26260e0a4b1655
+3994bdc9c729f2d45f72ba1c510a000b731ac3d9191e1faa5c9cbb7b94056d90
+f65df04c47abd4bc12b9ba0c1f84e4d77081d773a9dd939ba4c4b32785bbb337
+ab4df32d20ce0df7ef0374dcbf88be107e8813b5a769d530cded5649ec7de7de
+0f7f373f006ce997b6f7bef0c52d49b8a62a620a37069ee851e7d23244f6a014
+4d50911d347551a63f9ea59cfe0159797af521c09bdf75e12a4a8e4c38ede4c4
+4e7a9712340d42110b7cbf4061ba2f2a5ddcf67a39eef57345975a9198fb8573
+f34b9a350845815873e4ddb7866c702ba7193fb92d21bb74d8bb4c49f2f3c7fc
+3b703bcee9e7745fa637a9383786fc2729c73c29d2efa5ea274d9573265df506
+c1ddb510c9f3fdcd3a80c0ab90748651537efa2d8e0bf374472b5c7bb50b0101
+7263ffae7f90a979c3e5f3cd8a5cea478627890536251c4c16c0f63c1c822efa
+66a75e01a68758fd97c5928bb2b1df6f2b74d2950015f2eacca793e7888c26ee
+723e78f3cd926b1979bdf422bc83b4b51d1a0ae3ce120540e9b653728d769265
+c03c0a3cbee6240c0de90646e7ab730e5e0cf1124566bc16ec17989c1052f8e1
+84590223348e5b4510204322929d8632c4bd136c89169d45718a88babd7f2cda
+62afba21cc46bb3207676b96695d911fb99bbf37b375ff4fb8be949fcc4b0481
+3776a3451fe65a47d623565160358c977d4bebce7aadea5648814b8769dfbaee
+b8bc2da767da69b10daaff6a50b6a7006ab74f8bd0ec64e5681199b7f3bafeb9
+bd0ebd1a79554e8cf3e5896956d279d4d27202a4667afbc46b84c6b9873e8ef6
+9d5b0777a750a5c8ce86f3d5851cf3203e8b47edaabcc6c6256872f31ff228d5
+7b686b38b35d5dca23c755a5ab9e661630e61d1d376a46466b1f0100f66affcb
+fd1d6befb5b196143998848e48119456d6f5791bf1473a2cacb9973bb80421fa
+781d90e0c1e6912dcff9ff07ebe821aaff09597bdea4e71e72136c4e37946f0c
+146b9d507ee79dc7a715cf4d65db2614cd87c5709112938acf9bb2e01187fc03
+5cea0fd5c2ca980adb6bbf5b9eb427971bed47970a13775be150a7a87bb2b8df
+a92f8c86b98a36ab956ece9f5c562071306642d74f177ea0ebc1eadf96cda6ee
+4c53703763505ff273c296a11adf59c4919f63c78f9b7c2fa998f5befc631ab5
+4dfec01d96fbd7d076357fd85f26eef6c10aaf99a7639c5111b3a13bd144bdfa
+daf1fa9633b69feb2590a878ce4621251a2b860b3e1ad8d7a6ac1a896380f206
+158dbd525bde081e9e7c58f7aba0ba68a22065d3fb7638ab4b2027cfdf4dd926
+0f624b197d19691e1219f705d63781d6eac4ed8bddc3cbe2e7c735f73aabbfa8
+01081532536832bb4455483b827fa9f37d547a4d2cfc98707e5a4efe77037671
+faafb5489b64ea22fa51f2df96a89e8f986b3fa39e113be69438f1a4bb1b5d1f
+33ed7ca77228938a98bf47fa54eeb2da8d81ecedec102f71c278d824c2bf5bb5
+37cde6342b1ac156946de7f6c4c12e1d639d83cbe78d8775cce11584a4edbcf4
+59c05abd0b590172401b83fe9cd49b347c01671277ea43400b1ff4212b3d02fa
+cc6d384f815d7fdb652ab34d7bacca2e9b2b120de79e3532f81d778b6081d631
+32c88f10184f07abe8830a3f5efe712e7e3cac875f3b157ca3a0dd8a0417d512
+9554ac58171e09ae6ad91f69d3235be00c67d41e00b6988b7df3a07e5d65538b
+6f600988178e4c98db360c5ded8f7f8b7866e6d3168a085ca9a823a347519ab3
+5f4fb80774aa4bcee175c02cbe39ea9a0ca56044f50ffb2fd637f925339d30ba
+8f4f7fd7ea5a606dfd7b82ba69b4724c960a5cb49ad40f1900a0969cd912957f
+345c08603ed7e8292789984bcfafc504dcfc19eadb79ee198dcb6539164db7bd
+4d210c9bde5bfe4207c363af21967146511d70f7a0fd682afb045cf22a37bfaa
+edf500dc18251dd086a8d2a91ceb979d2a1e9cb45a6b59afedf66174b764dfc1
+1048356c96b585d142f943ec97c62de95f9b8a8253ee0d6b2b0153c445563826
+787921b9a60417cd4075922332dfd82be6d45b581b581c24c4548ac5782f726b
+0bf70d2d08493e9a96668054bccea2db3f66cfa6a4d37b36418f9fc8d8058c9f
+e713810483a5e75b3f61cfc012dae494dfc2b717cc59e417e25e8c0e21f62186
+acab4158cdf47343ad8b73dc8e43dc792dd29897d8aa1fbb977e9a3dd20fd247
+d0ceb53d2fcc627179dabb49f2920cf8a1fa4d57f39da7e5ca0a94d377cbb20e
+2c98445881201bebff5e33ce17d8089f552c3dea96bc70b99cdad2289a3686dc
+b5aea099076ae9450c3aa43f18a3d98d711e43835c31f566866ca556b2945738
+f359ef7e7ade8e1f56bfbb0317fc2d08846163cf343c919adbe19686ab94f7b0
+7a06f3d97d5545df781e11a06b06b175fbdd1316580a66af1d94f4247f158c59
+d8e1fee6ecb6ad565e772fdcfead3898a5be123f2d0303ddda02b8e86c7baeea
+70eca3cbd43509a85b853eb3286deae9e29921782ed417b13cf1e6775921b2dc
+ff5b2424f98bf14408d446d0ab530d88f49d231315c6739ccd0cc8d01cfdc259
+f47bedfe7a53dd893cd5be51674e6ba162e1a8aeb2b21ad54819bd3d648318e5
+4d651933c280e81a327934ef0eebb83b795b3b384a129c16536bdb05bb2ea560
+72241eeb5f35e10fa050fc0f05fe4deb3e2e8eb52a97450c56594746d0278802
+9559abdc108ddd3431c2cea2da1886ebc7a973ef73038004fa13752c80a35ee2
+8e5772676df858dc9ff0d05c735576262b80e3e49751d78f2febd65ae4c1d0d7
+66cb53656583299d2c058bc94f272d398f72728e72368362a69f69af06a708f7
+ceac24a0846496457635fdfae466621eb4e0755230abb71bb5abe293abf7cc5f
+8ea2fc15c66a5b2fc6a6d510a6730d9fb678a485616374f5c1c01b2ce834add5
+6f8dba31a95983c97af9e9ec5b8406fc67dc045c551ddf6131834edd18f79d55
+983aec1d18d5fb2209e87f1157df947772de42d04da8085d3691dc7010505c0f
+a9724190d9a82611cf435b360971bdcd2e569629d98d439da052bda080ce1e33
+bfa5ebd35ef2e7dd77bd517f1cae2250b13a031c69bfe0d147919c53ad773024
+142ecb1a3ba1ab50a941fb54e63ef49edf844306f7e5d12c9090d2819dc6e450
+42936015482c7bd75693e910eaae10f04385f624083d00276d0499cf9891cecc
+d31b06128a7afa49154eed960f37e7fc260e1372f1d4559062471db4f0db6faf
+efd3e6e06b578e2ba8ffa1e9c3f5a787124a22e0111ae960bd85fb1d62b6ca5c
+b2b3a87e3081470706237fcf936e37dc5b408d0c41299f921d810e01b5052751
+cfcc27024185194c147fe01bc1c4409c520b3e3a5c0f5514aea4cc899ca9e9ff
+7834dfe5bb0b4b0b019c1e8163f294fb6ee50b05fec276b53f04160fce3defca
+2c33ff34f6b1515705ecaba0aebd40a99fba99942bd8d451e1c1e489655daf7d
+39437b97be715b11ff28fb291b972b143da98f5c66b2d02a47850765017bf4e9
+82e2bb732dc64b51fd4fdd3d8144d1231548dcc29bb9927280492da505dfe82a
+dd17fb67b02ef0804bc82339d60dcc1c0f8789074747a805a7250f494dd1e9b9
+173110c4b3f2154e865371295ebad4e321f15826b3d3e61a400bdcd15ead2adc
+2a5f00bc25e36413e46e195eab01069a35f34fe5c00f46b90d2e444c8d5e8a53
+bfaf1fa61745cec24611b2854a7ee8532b54b40ad523f955a4fa2a9c546dea87
+e6d9e2de21fc4b3b2da747fb3075a641b29f6d6cfc3ecd725f26972e31594686
+111bfe80caba23be92b04171b738c1709bad40060fb0b603d3a2ed6e7d49daa2
+627ea6916d3fc19815fbd0fcbe5d1ec8a8c7a6a7488b465973d3c1991664bf71
+003353d2b025d571348227ec1700407e16fc5bda2cae07dbe55bcd7dd0207219
+f4e61479f22c8b7aaa0ec7281e933379b5d25a6ad9ce46a1c67a488cbb315f2c
+08fece286194bb86c66bfcda0fbc668b8b84c2af3e9cc85d065e17f55863529c
+d1668f07dcd6e51caca4eca02811c1ffb9a4eaea01a41e8bbb12b1d23cdd10a4
+97d1a6b9ad43927837f9b12b9f703d414070ee06729c1e0f78d5f63629739f5d
+95cbfaa9a695db4862149ee51c566b8f94f79ef9a3de87c0ebfd3bcdf4940bfb
+314e1bcd17595f3d041b65e4e7765b60a192c4ed917b8361ba0b5fb4fce8f49c
+b09412a1ae8f99d878a8fbdd375de3631a63119042e11e6d742f909fcd775784
+1f5a40a168b4da3dddc65d947ad0950a1a275fc72a923422db5fda3d54e4ed03
+a1ae04ab0f59134abf88aa65d6944affa2bd46ed8c5596062e4d32536d2c8ffd
+e5cee1bf927d1affbf9dd4e214ef0f323a9f48af8ce0ef87e858edac7a6cbc3f
+9ee530f7609cf023032a19298b334306ab3f5ed123b7652aaf77ef421dfa4ea2
+e1dbc68390082b50940aef52f583767e8a5d9eb33142f9883ec9dd26a4c0a446
+31e1b1e55031a9defc48060e783c7a56426e4f690aa6cd006c5a9fa76310d351
+9f8ba5c79c301bb370d30c7b3adcab60adb70e4b4cb9b9dbeac8bb08f07aba62
+3fa6c7805a38a4cf9c5b7f2ddd6dd510b174f7c63b2d5f4e391005bacb81b7e8
+5249518ce22a99e8811376e7a464e22fbdc4574ab3684b416dab3526b3bd0c75
+0acea306c0d448fc4942d2c61d44566f8a058ab93651eb319affdd9ecf2655c1
+d00500943b59360b6c75b780beaa2f1b98165ce2ea6a64aa9435ad5b4d57a089
+0fb6274b5f137ff957e2dc801dfcc8f778fec72a96b31e7457f421399dbd9dfa
+c99e611405a24bdf0bdce785d6ade5a5c09ffb66f787bcc2ca4b7e0f5dad5453
+b3d87e5ba383065143952a9364df8cf4063b2f7b3ab30c263e5b92ec64c43c30
+502894c1b01fee36aac472a6e2adbb9b74129074e25e4cfa3c70e8ac2b3d645c
+8f54f45ba3ed89629cb4f2f35c418ef74a194c496c4b2518429067932d57bc0f
+7569bf4fcac26e621327db71e19eeb5335d8a6f25c99d6aea57bc6ca73238c6f
+ea54a43c09c65c83d5319231adc05299a668372a9f77833064c460b312fd39e7
+49426fa209cb1f5d3d90c043603c8f997470de5cded5bef35daf0145f5dca5da
+50de2bb8b678e6f36c53643aa97f3fb0bfb3191ef20abf0022d160732455237d
+45d23239e4700ca5d7b71231d537bd032c3f2e7fee61b5e32caafd5de34b2a31
+9a4745e6e94da94286497233f66637586af51856552b0430710606bb3aefe457
+acaae21b8cdcd140b2bc4ff16705fcc80d04e0bd9b6a3207d933388b624893fc
+349fce3e420690841637e1ce83247d5de15a109350c60944853a42fc3adabeeb
+69e78bb11a5143fd2c465be7f72c9478a96883d1369414bcbc5b20bb60457eb5
+22e748594f23e082c29689369e48e01187efc53b3637218a36813cc4da7faa36
+9e29596f5de513074eb3a364b82e1af8a0cdcc513ec66d60f1173dd50937ee3f
+dc888950c9a6b86ceebd3bf64b6319eee63db2199b824dc84e53553442b80e6a
+6f29d9ed68d767c3d1ae78037e2c7835800e08a67c5be8f57571a71426c25e30
+a80439f9976ba351cc64a15249905b04742ab07e98b867d4985444e7a9096346
+8f70bfe63fe94f0a4f23257703e8793d059ffdc798ef3cf642a870aa311abca2
+c2a19fcbe68054c2bc94e2d030e8bede94db3c839e3d85302c297369903b9c9a
+fc45596809d3c3f2be2c287d8b49273640d1dde3c7a4000616cb0821a01ee775
+e7e1b96c796acb7764ce16478e2c98547840df255eb133fe407b5081d808f368
+c575cc039dfd5fcc9e332e629e8565cf227079d25627dcd5e4d6a0710b486b00
+7189b9cc441a094d4be628d1990b63cbc5cb7fa127f49bd2b5ac659115bbb018
+dfb667d4154218d907abe558d4fa3ea3c753aef0e05b94772e6ddba0b88961ce
+49d8d6f1d85930efde0fbd9dfa0682c5a8adb81d8d0be2fcd209238765af1977
+dcb18c4f80bbafa42b4cccb09f9da4db574398d30754f0c2870f0ff1d628dd4c
+b57e3791ffd27ee4a9793f3ee5e105a917cbf9b6dc9fb7a32c752519b8334b71
+8fbdd41eb77d5e6c5438c6cb200559b914cb5b562cb914d777f889dc0af180a0
+3d2c2036358f8a105ec2a6f6313155cb96c5d792e2dd3c2fec6c56084f295047
+c1ef4ce1317930046ee382913d7df30626801fc5f6d1501fa31e643345128e7c
+1f9dbd43ba580ef2bffd9af99a7a325a4e39f02f4ff5d372fd1ad895c3741914
+b1b944da9fefbe268e9a4763767718dae9d44728591c4e60845231f31ee5e929
+30f7c26c3235548323c5d14c3d7bc73033940071739c215441a9e72f2ff242f5
+5c65173ef32f00001340a53936c3f926a54e0818aa8cb28dd6fe9fd1c62ea09e
+141fd00782dc1203b43dadebeb2104286082a14af250bf64ec9bc75371a9542a
+2d27f971d3ff426371bfaae72a51d2aba44e859625120ccdfb350ba1c7f31413
+4669405f69b8515e23b0e305f3cfb9b0f29b410d26062bc8a1930ca753184e1e
+dc97b40c9769450780c4a742ece35d726475e7d5ca91700e23cd325c7853b6c2
+b9b439ea12ea4576d7267e7e19baa00665f42d0cd312715e3b92493bb6a3a6db
+54afd1f4c5e7f7bb20be232591b37778de18eecb0d6cfd30d247240b777501c8
+82b269a8959952836bf7d26713019f7677937a97354fd1106f6ee6d09f6c75d0
+296b22831ecac76882f68bb9434dfeef9d18f0d5b8ff6615dcafb348ec7a9866
+6fd749afbcf651be1ed1ca671a6013ce0c183f1ea86566dc9159cd9383b9e5ea
+9900ae6c384ce3409aa4db1603fdc010083db0f0ee139b27c6090b8135799e8b
+420f8f7b10e7334d53df7a0b1581485bc449776ca4b2678a490f9d0ec5207514
+de7bf64d8cf9711cbaef78b6b599d518d77b4544434b8cd95d04149e1b546204
+32b266a48da343d0704d10661485e4c11d4fd05fb727ab2db4975482edbc7c42
+b9b3af2806828da2173a304f83b9cff0ac4c5d4f553fe7276caec477bef48321
+ba153884a05e23002239cef2f5c95d8f6e99dc9554ea767409ce0108e73b76a4
+273aa49f123dfd32d27fb45f80622c7f61bc3242b8e00e6f50ea21d0b2c35f0f
+10308818835feeb760d0ae64c755aae98e40eacb8f0ce744c8aa6d6b5c1d256a
+0a476118f5f2d1de2bf12a0dfa68ca2a2e99f5cc0fb1aeb3e56cd8ee3221dd3d
+5ad1fd57901727acb63a9aac3aef6c753f57e34aec57d0876b442066c2e324cf
+b6637243db0a9cb9d2fe8e82e0dd2d513ad2b33f99bdf99b5c551cc0114da38e
+392ac1ba0d3f536963f6e078a6a123f973395ae4846dbd335e30af20c3c23134
+91e2bc5987f44b6d377af7c5242e4f9ffb43517017dc7340f54460977dd8f8b5
+d1461c6707040c47de84d198d4164ddd7e7715a70abd458507fb336b824ba24c
+ac0e6901295372b2863c119d0ee2fab224f7c0b56af33c8b82436ba9303cc0ee
+3a809129e3c15b8c7a45538ec88fd1597406f696adc7ecdce383d3715325bcec
+7563f1f4baaad70af9d24dbe272710dbff77d95c3462aec9e75a1e24e9f0f716
+2f82f1410d4b77344983fcae866279a98112d6718ff23da33bf16255c1b10736
+e8f98e8ef876d73ab139009bda89836d18dd03dfb13e332c50227032ff403ec7
+26dc8fa78d77aaef79bee7e0656275fbb6cc6aba6bec4920167380a1b07f8ede
+5fa970f56f530ea2cb06be96def3b5327ff0f35d2d2152d23d712013bfb47b1f
+e34f9339712f75c84d90df05f9ba2e8ab689f7804c588e5e075942b6dd11d875
+c56c016d18f48d569ff5ddcf4e323fd9fe03d5c702da6b98776601e925c73ff1
+7943756f5a4867c8d9c3f0a23280e873a891a6371c258e1cca3c4dd8be44e16c
+267512e5fcf49a6db090e47da0f7a2f56804992df1c5387639b67aea74912727
+2d54a49823165ad330dd59020f1351f22d2172d018383555b8bd88bd50d5f715
+0839576ac6b14c3d651b54411167189c9b93f44e1783880a4c1b31f671988e19
+be05d3e519b72857420d6053ee7e459e98b31ee77dbe9242fb65d39e7065b67d
+4c4b6619bb0a8bf1f860b98111710a61e2038d8ecf06c4f825322a66d327a631
+0bc1e8941fc36ff52d7286dfa8d2c38b76864f062457c198ee7335602cd975ec
+1958a3930918b4959aeee256b98e0bbba1c370c9ea62913e9ef33ec799bcccea
+de68997283d202476f1f065861c7d611478ffca395677e4152bc82e9686bc4fa
+a82c0cc2a7e8b025eabf0fdc11e0564eab69bcdd8c4a05e5c249164c117ba859
+3b0d1c7293455320b0dd104b95afbfde7a03c0ec5b25f9d9ac6accc4de9ce736
+eab4c6726b23a116ff885b29258a57981be31f03ea5c5bf6db8c9ba21b831f37
+41c32223133c36127a0b3ea1d378a31002722f439564eaa70bf9c6465c3a7d03
+da8deaf66b1534bf11654562b6f4ee776d5fd7f3d288b51bb1e78808d261120b
+b367cab8ac4ad2e910abe6bd80f9d421127cacdd282116a4bd376ff6999746f1
+4202272291588b6acc250700f32398d7ca3229bdad1e2244fa8d5a93af30fd0b
+98f114afb0e4f4f917aa0935f735ec4d5d3293ba3c9d70af980d3fc9b9ba6db0
+ec2d4038a4c9872775c3ff227583bf4a0bb3baa3a14fa3757b01c461b2f6b1c9
+4e549e58ea596670aa747ee95f8b881391593f409cf52daeed278831aaede2f4
+b7dc53a8ea279127c7ac74bd500f97c86a513e546e05b343a3d590b7081df88a
+3acc4d21a3c8bb060bd4ac8cf01971a8ba33d1e7828a5e64453028be2731bb48
+dec51bd85a6114c8dbb2f6ee87ed07af749318c90fb75a672b2b9c656c0b760c
+ee4c6c462f9d6fae1d26469b37a043720fc710031abe62cf4deb987749340f27
+43a142310687a8b5822724b7b0657e7b291e803d14d2eee8b795b432a983f54e
+53b17161d32c7a2d937fc8151c37866d3e25469c346b59c13930312fbbed651b
+3019b9f09ef2c2a217780eebe098bb92f43e86c1062e161110d23b17b9b92682
+e32feb15891454b1c6201c375d58c4f66bb0a322fa8cdcdb2ad5556a9b6f0eea
+2b3066c1c89a44adf94a7ee1cf4e15d51ae4c17052ac66df51d27e2b1cc36871
+14867d0fc33ea44338e9823c1016ee6263b1bf8365b900d2acdf2dc41b53429c
+b64e9e89bf148370f62822b51bc4faf675fac2c9cf47a29f34f37628a471c4e3
+6daa47bc0b23ea7c1933d849ed2cec6eecc3ca56cc93a14a4258ce5148c0dc0c
+f4f236316363140a32b91a4a7d78f7bd49e9e138b037621e52dd5e8e30062fb4
+1c537aac83e2e85b2e57cb43102568966d75c37fedd7799108a24de96670fd6a
+4e5d9b9b778b6d25d0030070ba7329e482c82696e65df223e0579823f0db7323
+e7ff8a4bbe8ed37afde9a15deb7fc8521a1179e9197e2d3e6640e591c50606e9
+11815ea278b0809d5b7ed1dac77d333638b027e340fb624e9f1d6fdc40ad7cf5
+bc8b03e4cae755be841a9c72c86930024006b17f89f9d4ee22bef17b5baf4cd1
+364f889aecf94c1cce61909dd22f6d35a389136125d44a6b4c27efac337d8e46
+6d657a804eefea97ad0b436468e088a93764365d2481aa2d5e79ab437ecde035
+43f6023c3b75a1eb4c5b1685bf0eb3b9e3944a78c9aa0d410d20f7e366670095
+8f17d09d8b713ba121c46774ce83b09ce675193b845ace5496ed1ed96bd0f1bf
+505353ed69f2aab2eef00169531e57f8ae498ec78d5d01aa45f4d7e2c96c486b
+e14a1b21a1b61f6e73c970630692e385184d32c08036af05fe240976397d06e1
+18892245ebace16be7ad3445945b9edfd4794f190bc4bdd159813aba09f80544
+58a0c5d5b5624fe081c09dcf2b1707890dbc43def71d3222f8f853a5d169fdaa
+95a33d1667b9e9bd7bf5883cdab58f17708bed530ebf7eee4acb2c9bae6b8337
+f1b4cb61b37c32cc0b3e390fdf35df5bb198a2d704ffbee24e27c4c1248f3f85
+606de45396611b4ba6ddbe1e9434e7e48273365ec73dd8df8aa378822e6f1f6f
+8f35454c47ac054c77d62fddaa17b41f60997bb9f1ba5b700e7f840f1cbad1cd
+e2305a92564e0f4c88bc4f3ccc6ee1175af3b2f83cbc57fcf10f0e63e7f635e7
+1e428064be1542f59407f2a18f70adb7d0eeff6baf6ed415d7a2a0237d17a726
+e84344dd77c48b43f47451142ae90d22b0e90e993715c55d0be8c808944f24d7
+d3b167f8f6f6469aba9fba2bde048298e85784ade8d96fe228ae328a0c8532b8
+1d97be36095fb1a3930417db8c50713f86e647113b607c7c93bfb424316e1aa4
+4f8543880efeb8b9be6fc7b978a4acaae9782a2721757f32173cc39142103963
+9da323208310b292114a62ff42e3cc0c986f709f986e07b9364634fad4a3be7a
+8a63cb7b26036eb8515b8ae6af058874ca36054c184f2626ec2683bf21304e1b
+5fde01772a0895de5ae8caa031125b614a83b949bf40681252218b10f5d4ec6c
+21e8190dafab34551a3b8712b13d195ad6c934cf96b9da70302e84b34e6f8bc0
+ef3d383ccb7adb2e5d67ee464f9b2124cd034dd4ffb20962a6abd3764694e07f
+4b4d244fad6fcee6167f5f44f943a02caa9b326726e949a8424496a79f5acb37
+d8c7c3b10d5fec76b568ee77b02061eec7bfc67c9e75ea1784e15ecaf2bade6b
+48a80532beea72fbe2ce5062da978663984b2cfcf067ddef4de6155f60a6c34b
+b469c3db6fdc40e5f79f3562cf6f8bc43ff8032692ec0f95a03263e2cd7cbfe7
+5b2f4a7c4dc6b8445dbecf16b800f43a6835ba3226b5b112cb09a18bb0161210
+4ab91a24919291406a436f4cafde0ed998da1b99718d003d3afa3729203b5999
+a87df0b91c5adda6e678039344bb36495fb1b5e5965fcfc86f6f61763d48c0d3
+7c55d221b1fded8a9a359371f8c08c778e269334c2af994b75186f3b75b7f61f
+6d6d48def0aa6856962f7b9c468c795abec3b622ed16241f4c506963acf2cb36
+29ab91296d06193741f36343fe0f315877a090df94858d93c527d44670760ba5
+68b61609a3d750e4153c0f17dcd5f870b3a38b7d2272ee60a24668afc2b54084
+63664a6fff7ebdf7d2bdf9b1636b17041bb12f49ee3cda336f84c77746fb5036
+61b18775cf02fbb4c635fd09886798b09085b8cdb795bab93438ad36f4e9c23b
+b30e1fcff1bab17fe49566f755ff904cbc11da5e966a545c6c7d7259ba4c729a
+391ae47953a99bc4d500d68420204e23a07f6c0e137bd1a7034d670e1e9d8804
+1bc039653a023a6edcae8f73c93ddcd8a2e85396f5debed0d0565be384f21c5f
+1171e37ce2443cd8ea5b20da6bab9b62ce5e8f1f485a4b3fd7fb22ba4bdd28df
+f76493059c56b7a5c65209ee98f2e81ab6e25cd0a0f81cb511004e9da7fcd65a
+8e73b549ee33577db68adc05e0b24e820500cd50523470eb760844155d4ffcd1
+759d5f50b803888f3bb3a616f99aad9a18a745fc6c248684c2b0df40e38234fe
+1d21017d2a7a1def67c9dd2884d2239e9e1790910a8486e5cd001d2aed32e05c
+bf6fd016f4e70e6af610330f47048bfc8d0a490e60b9e27cc75098a74147b30f
+267ca6983b5940b8ce47d4fdbfc3a7f89f78ff4c35ec0a50228aed5907e05dd7
+ea33ef10c079981b1ab1c361d78f58f78fcbb3d9d4a569e0c8e1f86067bd61a6
+cdcc34c490078ea150b792d466b7a6a1a4ed7c46f4ca2e46800f5498820464f2
+c88c8e6ea79bac3535fe2c12f9e121a07588426e60067e13e77999939ac6e36d
+9b63c024d67d2dd1a1e7172a6441a051b2e1405877aea4ad0e78cabb4cff67cb
+82535954d4ba25bbffaf67dfa0d2a889592d2ba5718168b3a620ed8fcc10720f
+b25da0cabd8265af47ce144b68c6058350d643d8f0746c43ace3b7445efebca4
+8d48d6f46c9154a95a4f4b8962fe1392418ab22e84ffe824554c74679bfd6662
+09b79c6d147858aa4ea978389503c1b8f0dd5ce10af89739f19a42a932c3cc14
+25882a16c505ddd2547572b93581ae8f0eea2c7725f91b8b2bddfed70ce9b39c
+398a0beb2d83471822dc81039695f6fda204907ea0078d854dc4b86318921169
+c744ac7d846af8980e123b6219f8663b9fdbaa3416e6cba8ae367755309372ee
+84b812650858053cd0f7f2d4e62d8905b0cd349112adac19953517ac36219044
+3cfb831fbe6e045dc567c182337d4148036e6e715a366a7e2be5bf0da704808d
+7bf418275826e99d696b0c296e7b5a15f5e63f9c90c5ac093822290c8d254e7e
+828104afc3ef7c5a8d8fe631f191e266434f34d9e10619a7f4b7df6566c86463
+a86f6dfff94f01f8b4c7688e999f306a65628679ab9123af6dca39e88808dfe3
+e99107b918a8dbb02b1d5ed0f6bb82d115cb36889e5aa14c9cef78bf09d3b429
+c1e3cf2ff96d289a6279d186130ec5cfcdd5a7dea4d23124f012646dca173108
+2ad555c142a587d98fca7b8308cccf3856b0901dbb3ca53082b368cd2850613b
+32da388cffd23ab28d932eeff2a7388295286539aaf03746f35eb28338ad23f9
+f4fb3c91c79ab2fef1e061cdf2aa1f2a991b39fd0afa1063cd54dae5d31d2f44
+516cd6be0ee051bbb0201cc747a04d5b171d4f13686e77b9ebf9ba2236886c4a
+505461037b7a5f2ee8db790e6fdfd047033354f60786c1f2c00aa6847c8fa0f6
+3ab3215c78229d47364fc91ac88f98eec9e5d96ecaf41c0aedb88dc216964a52
+54bf9f88a7bc9f5ed16fd210252dd2f8e7f54ca4b4ef4a7356023556fb69a31e
+72df664882f57b786417d6955b17783e9c206fd33064f6d9a9e23ca274189782
+1c18375d12d1ee22e74713f6911c3ab08b1d7f35f00f18f5e9b669ad15d4e1ad
+0831fb8edaa74fc257fcc5ab9ade88ed85a19cc22d32b2a9e2ff3830e76caa2d
+15f5c1fe3fc21bd1eb96d1d35e8966ac563d1ea40d6d3d2b79a9c602bafadceb
+31cc10aa90012955cef8982620ae3d6d01ce14bc184f5dcdbebf94cfb5b10c42
+d174ae261dbed22fb969fcf1bb64f2bdfe0e43ef54eacce5fb5e537e872eb1bd
+d7070d3bee6768186c4bc824cb828830b8696af783d3410a62fca2b996aaafab
+4ee639122e65f121b941485cfb581c57df7e0c5b7e4c912b75eb6409352ff5c0
+33b1c7e4dca272245235cd8b23a5e9452652d212fad18eaa899935b90bebf320
+3c50b223eb1caaa160a4ce8469a1311c69ba2ae787edc9ee304f32afa013a0e9
+092d80c29dde16413909f3d00f9844e86dc234442748128e96b3ee0d243ac8a8
+00d872aba50e81604e5270aa9972e57b021dbb1eac08a064d250df6acf727c6a
+098c99b2074af3b4bf14913fe867707fe0f9b058e05c38205d1603925f7fe1a2
+54eaa39ce49ff00bfb494cbfeec9b738750b53feaead8bce2bfa1e20cedb5e2f
+d815755c40352198c1daa5d092c700d3745eaf183bc281b86e7762985bb5f730
+baa1ffa889dbb0e2f7aee08d5abc2180466eecef7c588a1c0f78453685526911
+165bcbf5cf3e9e
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F124_0 /QYKIKI+NimbusMonL-Regu 1 1
+[ /.notdef/.notdef/fi/fl/.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/exclam/quotedbl/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/less/equal/greater/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/backslash/bracketright/asciicircum/underscore
+  /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/braceleft/bar/braceright/asciitilde/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/bullet/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
+  /currency/copyright/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
+  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
+  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
+  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
+  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
+  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
+  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
+  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
+  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font BITXNG+CMMI10
+%!PS-AdobeFont-1.0: CMMI10 003.002
+%%Title: CMMI10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
+/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /BITXNG+CMMI10 def
+/FontBBox {-32 -250 1048 750 }readonly def
+/UniqueID 5087385 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 45 /arrowhookright put
+dup 58 /period put
+readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab284bcf8b0411b772de5ce3c05ef98f858322dcea45e0874c5
+45d25fe192539d9cda4baa46d9c431465e6abf4e4271f89eded7f37be4b31fb4
+7934f62d1f46e8671f6290d6fff601d4937bf71c22d60fb800a15796421e3aa7
+72c500501d8b10c0093f6467c553250f7c27b2c3d893772614a846374a85bc4e
+bec0b0a89c4c161c3956ece25274b962c854e535f418279fe26d8f83e38c5c89
+974e9a224b3cbef90a9277af10e0c7cac8dc11c41dc18b814a7682e5f0248674
+11453bc81c443407af56dca20efc9fa776eb9a127b62471340eb64c5abdf2996
+f8b24ef268e4f2eb5d212894c037686094668c31ec7af91d1170dc14429872a0
+a3e68a64db9e871f03b7c73e93f77356c3996948c2deade21d6b4a87854b79da
+d4c3d1e0fc754b97495bcfc684282c4d923dfeace4ec7db525bd8d76668602ba
+27b09611e4452b169c29ea7d6683a2c6246c9ddcf62885d457325b389868bc54
+3ea6dc3984ba80581133330d766998ae550e2fb5e7c707a559f67b7a34fea2f3
+bebe4226da71af8b6e8d128c7ae0b3dc7c9aa4a1faef312fc9b46399b18c437a
+776de1f67caf78e15d4cc76d6fa57dad7abc6d35ede0d7118e8c6f3a201f9ea9
+eabf8a848d182eba8922addbe3c488f51eac02906400a84ea0abfaf48116cdc6
+6fbc00330a76a8818cfaeb7afdeb029a204e0a70b47a05aa50153b56d2bf6736
+c7a2c50b023ed92cfff13eba974f804a346d4130ccfd5233b6d6b92a14c87bbe
+2ba216bae4123911e1856975e5cf4d94e44f400f687d2d13db288e0d821451c8
+83e9928f8cbc41e0f4b99f8b29d3b11bd4ed0cbca83d81082e39a9e79cebf433
+671b1af39c3d0e1f5bbe5f1fff62ff6f5f15f0421c56a4dffac682cb07b6f257
+221fed1902e4b69d9bc2e061f2e96f5a46734f91298494a425ef6432f2b9778c
+4ebbadd3483ef5447df5f008db9d91c559950ebcedb4b1316a5aae8367a80e06
+bf3162beb99c4aaa617c60be688da7627f29c1775983ef635b26306a94f0b258
+003779f8670a1398681953b785a226057f7d1270fe2dd2ea66d65e2061fbd65f
+0ac51b6c347a56e9f3e86e52f3e0bf1d5f8d6540afb32a027a7c96919557692e
+b739cc298ec7999b4286538edf7333cf8f8f6ba02c5e8c62929af07acbb90861
+0bcb85345f4206e3ea130512dcfbc6cefa31ef2bd1da11d3010fec57b5b232ca
+706f9c44fb9cab8903be783eca66d748b3fa5b1f5d5445f6c16a9a52c88a7e2f
+2bfb0be4e416ea209a9810dd6c38e47a58dc9270b2f49f9b9d482156f7dc8164
+b621b6803b6434a2a354a50fd9353a2ce3fa761423634b8f2adcd63b2b7acf15
+07588caf127a0d6b2017a451d3df77c53e6171c66236e5318d49fab9ce4b1026
+853f65d0d5f7913d88ea66b9b63cf06a4bfc8ed3246bb86cf6de255ff46d245d
+109939e32dc483a0e5176b614ccb7f1adcf99854cf50317bd081131a146ea089
+8ed59e46da7b6254bdccbc660686e2eda0ad7b894cd2eb2688c0c00aca589d39
+e3caa6e0faf7eeb5df3e3f8113dae4b454a0d8c86fee52779ad3e13a0a871e9b
+65b9ef0a2ff20989bae81d1cc1181679fbedb80e7d84a08774e6da58a283ba22
+3780f2717484e066fa7dc012e6d19429b08638045352d358957917123c9c73b4
+326a954f5ebce183ba1025c00c8f559dba85e07b3ed48d2fa0acafa9436d6fdf
+e530ce25ac7da170db1764e77b6816343e8a128a075e7744a6f0406551f4640e
+c403ea61696459d15ee040bfb53f08700c69333b1cb28142c5b9411d65fbfb1e
+c7f4f50c03d122ad4b63e9e65f0a0af43efcc9fc546fd13da42a1c13b8c9cbfa
+79a480d923701306249955ce1c61a680b2809d3551325a333a189db71bc83c59
+47d17b31f8ff63564919b00336285f724d22f889748564808083ddaa4eeb8632
+5d636961e1f634f3ff3def1dcd7299bb7679dbaf685e2ac1484bd9b17c5cf4d8
+59897713b51a4deba3332c2ab5c48a76357d2eaaa539a617b09f223661bcb411
+0e6559e99a7d900336a9327d4b8330ee5f56b016cebb8c07dbcc2fa736c07ecb
+8930f26b429288c6fe6cee3e7792de58ea3ce248598db0c604787612bd137d80
+e4462d249b229b62142128b57a6b44515262743bb3c70ee96aa4b8c49d6b0be4
+4e19f634add30634f999f4dfb3dcff6a412a9b6067d28751aab1b20928a6e73b
+cb81b0510d551f84437062e8cd403bf8c343003965e926465b288b0aa2fc85f9
+90f9a63fce188d72008aed98bcba5ff4ae850711d2664f0857ded002e3a89fa8
+75f930ddf7918d6b2f92ae26af35f50cc9d2a8f9b5d5d80981b12ddf4c59565a
+aa62ec34589e5bcc3075cc6a163e45d46bb280b22158c5c04c90beb6f8a1c791
+5597b0f69be3204d876cfa54481cc86ed2fe799bc46555c6c6fffc73854104dc
+9c8a6f85331fce7c5d1f20af5d99e4e61b7ab981dd4eae26951a9447d5553140
+b5862e2f39023bc7d14901eacf467a9424a6be8055d82f4b02036cd766367871
+e0a01d09790ab2777db18248482fb32a25fadb62956b93affc59b1796f78d0b6
+6aaeee9778a3b253bd98035c79b5296e173fba9e56e8824ab6191ef9062b1fc8
+1b6b6185a05b167adccc6698b1801297d766492add5b66193d024d121633d329
+25bcf1a9ae109371aaaeb64f2805bf5c2d5a218c191e9eeb4ac30a48291c7251
+f690b51d5135f6a37f5418624c7d2f3ece356b12ec18f73d5177a24ffe371635
+fc88231b3a95d72ca2555f164c503f91b5c7ca174e43aee6534df6d569efd50d
+da3e950e11c6cff788e50ce5f1332ad76a2357c39d44ea38e88b24f2d37cf29e
+21b7468adfcacc8ab8fe1ae9da4c933b5f7f0a6451964a4924b6ba96c359c828
+d818166d5271e813f7a34a5b18927e66d61003392c96ab36b3e2175f31faa3d3
+7e77200bbbeba91c532c053f318f3f83080bf3d641d4c5df796c2882e34c01b9
+cf74bba01f03ef559012eeece809c019ab6d40d22a16fb9054143990db45b902
+a5574f672dda96d6c18c0fb048e970e6180e6148061e22085c7aa4fdc2102fd2
+d31e84456a56057b9d3189f331cc8354b195564cfdd23579574b7c7a80d2f3e3
+97f07cdab67407a46a4264e985563dae7ad933dac054d64a7ebce65bb2beb5fe
+d53360fd76a0fe706e7283550c4d5657aa9bf62ee713592d74e89998e9b0adb2
+327a9dd5f19184a500870a3c53367431b56cc4dd60bb629ae68a009fba0049eb
+16d11d5f299d5a99f3d45f6510450e53740da5556335eccd43e1408b826fc535
+10c7784c44cdbf41988ab67ffdc54ea61dd05208204c8bed9c66c678e6324428
+9682cc6ea0b2dad69cdb69dc8daacfd1a98c730dc3d9bc8d83e2fa2e72de08b0
+031ef3455ba92d03acfdb7ecf50ee883a8817abd96e58f72ae050feae0d224a5
+42aa0b4c022f8a90e73ab84216f520d6ded72680471b9ed2ce317536305d7360
+810a92f4957c9aba9328b116349fdfa728e9f042b2fd2d116bbcbbb99ec6966b
+a5e1f4fbbb4b1eae6d8bdd40de5fa44127e6d7c05abad3c012082c245265096d
+d4445b03ad8dc08d707ecbf0aef0890b0658dc9341fd386d417ad9f5e79c0464
+be4e3b22e4997e1806d192a8be70dfbcf69715b8194347a60e80934ed09fb08e
+c4df7c3b204b07ee3610c041dff7d4c76060e4be6a3a2f0b0217005ab38f80ff
+fe55a6252afa361b5cd8f3b642e6e193da913ccaeae5508c2470036aad80c0c6
+e977c374852b69a8de69aea44aaad49eb7fcd420bd55a5c5cbf073e859ba9d6a
+857da20a5cc2744843ea07efcaf91e992f0a44e1e520bbca097b6965c4e30c99
+03ac3ca1af1bbeeacffd7cc22e7b9763b0876cf8308ea38828a716da7f430898
+2beecd1cb81cd95ab8fe70242026f11061a70fb42445aa9246488d6d0029df17
+dea43305ac74df52e5699b6c243025786b21fd43993a8039e9e75fce2dbb7d6b
+7e4cd140e7edacc20dcb473dc45eab68d8ea296baf9bb969093862d391f84073
+5e17f87847ff2e9186080feb184ff7869a5a8bee6aafe3461454dcbcd00d2c24
+61ef831a52dbb0fa736694b4a3a4d85c6d80636b316fb12be67f0887cce6df04
+80c145ea8762ef8b2c43ae71f3c32686fd5813eb49a39bc6d4980472bd5cdbb6
+c282c9ffe2fb52656f607692e1ba726417703feccfd4aeaf9c66d543ce1506b1
+a9d6b95705f67086d4f36b06a283cec841a01f1028d95d4de419d7110f091014
+f6dc905e81add1d54f95b16cddcfd0793d1cf4a85e7a35458c81197a24fe82cb
+63edde30cb6b538a708fbd41f00268a772730b85bd8860054acd93fe6b8bbcb9
+cc474568d426e83f15838520a313e0ae1b60959de340398b21986f5c404c9361
+54975d52740bec0f7abfaf271a2ac1f7553b862d45d11ae585936fbb5462e2dd
+bf35e4afb7bffcbd3294be3eabec4b787133c3a5e0c95f74a71dad9be990d07c
+d157d7258830a3cc3de6459140afba942eef325ee072b3a53a9f281d483eac65
+e8da50ccddb3d43baff7d8c7d7a1847d6d579ce92df1b54de141ce7a73607362
+7d909e8cd9fdc373b840145f9373bc2f02979ee34688bf840f4f9245c2ab976c
+ee8bde685c47606201f6611e38a49ab72428def2c85e553313af719ab4d4f5ef
+e3f3430522abff76bf8bb8f56afe11008d3f989ffadccb411dd3b7e6352ea873
+3abe5dc71b3b4832ae85bdb23f6cbfb4b2631412e4fe0050a5f7f4216508a3db
+ea2d74318ed82f1a2fc791623c869593dcfd6bfb2fe57bdf06e9d1946f9bcea0
+13848fcdc603e3eca5384725118970cebcc9ebc6b74df13ad395fa6efdc22463
+5380eb1b3521aa929eba30958ae2da40852196b67ee44409d323383b0c7fa1f2
+b4fff373041d9f5eeab03d6743f0a291b481dd3ff9e8ebd77a073b8d5f5d93bc
+727e6566204893af892f74fc0bc3f3e83643a93747678eb998f9c91b3a0ff942
+3d3924f507f1c7eb18249b2ab73691f5fac868720ff52183091f65ac3be8cb0e
+80d257c52ea8647ef747fe304598e1ce0900a4de4031e4b6a58d7869b08a56aa
+710c91ccb8afab94ad10d670e767a44e0177795ddfd65c9cdc7332716deefe3f
+9e2ed8a54bb6faf63b7bf5f554b934821086c09fc28fa74ea2efd410e006be6b
+ebe0c464e078c14968453dc783a788a55d925d72205492c07d0dbaee4982fbed
+9b32dd19ae230da5870499feeac55b09b0970ad5926375fd79b95552816be003
+90515262b5ca891babcd81bf86847cbc5850d4a056bdc528e97aded1ea6d7b76
+bd8ec34e742a9fccf19a6310004499b1cc1a920b5f3b746bd4de2d9b9dea341d
+25a7a7b60546a8f9ef99190cf8ddedb21a0103414f9f28ae8673c966b12528dc
+fb70ce44db4822322605982d708a0b4bef7eb08962e3f433213d7545f351e994
+970828eb443c3bb36ab0c4cab7fadfd949e5f93273141da2b6dffb41b4678647
+93cd4e53c78a63c632d4fcbad772122e86dde337d5438e5e4342a0e18be8b014
+3ddd7290d16096f2149c6c71ad28325dddbf994e651b9d4be89430b31dec3fa7
+d2703196f7f10b5e8d98f20e14151160507e53ff1f3d4bddff3f45f9e64b1b9b
+9b26b32bf389a3725c243209245bd78c2f78d67033be00ebe25955a1ac718305
+b52a0260a07220a9f7410bad935538c6c7c56f902a70730c1cf90d45a5f66c6b
+a762406e512bf3cc3b52918c6e9e92893279cf86af1684d9b67d1ebbe84be9d8
+4b56548323ab381ae18c9e9570453abe77ca9d9ed1164563120b939fc3acc33d
+49f5e989a74ac760f0c99458295278efde92e99003c4780935d12eda68a82308
+ba444819ea9fd930c80263b57ec1b9164aa50ce386b8ef81a53a710416c6c868
+794bddb4fe463b3c59ff9fd085fc7ec37cf2abb7df09d41113f4542f72bffda6
+1fafef41c462eabcc7a3b4fbe46cac256c7af4309a617e73e7934450434e344b
+5cb6ddf2e63f4523f1526ed2f79522eae16b23dd9ff4924053a0fa7c4a0b29ff
+f4485c041b06147d2c94d276553f443c2980cb96ef5da49bfda4ee95bbf092ac
+e2dee947d0c711c1930500b79a5424e8494df6e1798b009a3816342f4d1d7cb0
+b7bf239f3d60361ac605020591740d13ce386bca1e69a2e8063c62f9959c9fb9
+010ae39f18882b1e3b3d0d9b0447db7f7f7a3810375372702686b224896bf5e4
+cd40e308b5a6988b614d8088c296171423cab2657cfb98f462afe21e990b0c74
+4c8738d1b13097ca887ccfd3eabe4f1e29df71d0e51046957409964f9f02a33d
+78b2a5bac5058bda0dd8a65fe6c53dff9310fd2b97afd24f39e586417dcc18a1
+5c0be1795e0f2c3d785f8cc1ab5505bb8fc0dfa1364f08876a42dae3383f853f
+84e7e54405bb8d00911c5b8ef4794494d9bf076d57a65f2392628b61ff967c77
+29114960e00fadc36961617c61c673bd2d2e4a9d54702233c8414026e67940bd
+ed16e2d3822f06068502c0966f2ff68f74d11a0b780b95f3f52bcc162a37b6ef
+48cf5ff8513cf4183176734f80b9835401b3db6bd53597645873fa96488eb183
+646b577037e5717952d23cc71ee1780b3df42d9c768804fc47cf147db059b9ee
+7a6399d4f4afcf2d296902f16d56d6df28ac4c9a96e357678ba901fe72ce3d2f
+b10fbf263146547d455df1bc33a1dfa753251c264db8798da35943a4940962f9
+e3b8a68d2b094177154ba30af7bd201cad919c09a34536e41d6c5772873c0634
+fef84dca5f1a5d5488997e279876af1dfb3f51790a6ae085d09ea4e1947fc10b
+987c2db0634c100484f4b45404119fee7a7ec81111029cff1b4cfa1a8637d4a5
+ad472b5ac0cb9f428cb1df8abfea3db8082a26cc815437ab387e7f87902398d2
+e0c6bf6c95c2381f15b61fb2c5bdb8684afbb7a6c1a01ca2286a8dff62e52a16
+3d7c748c1b2c63d2933012c5306cb7efb0b4cd733c56ba7700acc731d294f7a1
+1f2a1f8f461983f2972da8c3dbb3f9117f7a6f3583c8a5dcabb364ac0310457f
+93fbca26c31482d806c6a7a4f87f4cb92e3f30b4dd2dd5e3da5360430c008237
+7165549aa416a73c62a50b707074b2b7ded2b07454574f60861cd2f0342e4f78
+24789278e711f18ef858b819a0accb67384b47145fee30b32181d66ff47aa657
+83f0cccb693ac70657bc2bf204974bb3bcbffcd6540477e7a973718754acbe68
+823672daeaf24c93263a57598ac4bc999120e367aaa4b54c643e8c8987024b07
+9b0d40fb33d55cee534e3a38a1a316276704e9a6df08553fde29e4d4526225d1
+fbda6f8cb78098e83e8a360de3c4c77e2998094f920aaba9c7587735cd2f22cb
+e17c6b99a8286519242f18de4aabbe470bb8e0931ec7f5c19e1c304df56f2368
+70d154e925c4f2e5012d52a0283ea52acefa09d2a8ecc832358868bce8efba7c
+492e3575c1605150a3f7d6822960f1a9975151c7b6e928fc07f73493351895b3
+5ea783de8482144ddfaf6f881d0835472a603fcd52464da80de0c380fed5cc67
+e38eea70c066dadf026e03fe00be35c6310f64aca4b991ed4bc4eb125b4c0a79
+b87109b442c0b624c340271988ca36e92157ebe00ace90fa4515b6c649b9ef36
+f82cfb4954c124878dfece799bd987ee930148967069b9e6ff5663689e5d186c
+26dbdfa146c3dd3ab9c2104fa4e92423c88a0821443aa8008b11008525290207
+146118e39b4d7893fdc8c7225f4c97fa3f1cc264122afa3a87d630ef325d3778
+28ecba34700bae5038bc2a1c2e0476351d9e73cb623cf58eb35d4c518630ef2a
+f8b64bed95d72bb7403e652e2dda6faad38fe8fe4319ae190f0496a1c6806cca
+10efc6d15c7e19522b152476c36f9644a599da6786df08fe7981f9eaa0e8611f
+880ce7444e6e72e82aefccf6ae7aa0ae68f883d9f85b8126a6c52687c0ffe6d4
+fc712eae8bcaf81dbfddd0a58717c4cea5ebc76c94567833f5549daa0cf6254c
+627a1a0662537ad3b43c6f3a90d553bd6e7e841769777c502e4dd5fb8b15431a
+61ad9b26cd69b5d7d2b28776074e7b7beb25da2d5b8ce39e2d982b9fb9122e6f
+401cdba8684365458bd82680150de4ea9c386dc6666e613f4de18bcf4540ce5e
+663a6f3de86e8ff97339085dd62fc33bdaed076740de76c1830a14618ced99f8
+07519a5526f787b5f96e8086ff187ddc36ab3b385520dd23ceb0b0a779c97537
+496cdcbd8b82bc87bd2473acc490c6a86a6e6f85496a2dabbe2c92f4394c23bb
+714c0cdce7c02a397f2a66862ac165931eadc3dd374873357e315c8cd99f00b9
+20d3c62c04401d15413d4c640c2aa4caf5fa5db6eecf4ecf43478b2ed317e06f
+cdbab783a6921463b346d8bf72e98a4d7fbe011cbe565cb54a7157af3fa4d5c9
+d6a36c7600f5a884595278efddf5085f74c3d7d8e9beb3be3f7f6131e8233b08
+4b16dfda9cc778dc10adda42786156d707750d12c920cc297e8f58578d5084a8
+6d68a5180a
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F230_0 /BITXNG+CMMI10 1 1
+[ /.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/arrowhookright/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/period/.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/.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/.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/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font ZWXELK+NimbusMonL-Bold
+%!PS-AdobeFont-1.0: NimbusMonL-Bold 1.05
+%%CreationDate: Wed Dec 22 1999
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% (URW)++,Copyright 1999 by (URW)++ Design & Development
+% See the file COPYING (GNU General Public License) for license conditions.
+% As a special exception, permission is granted to include this font
+% program in a Postscript or PDF file that consists of a document that
+% contains text to be displayed or printed using this font, regardless
+% of the conditions or license applying to the document itself.
+12 dict begin
+/FontInfo 10 dict dup begin
+/version (1.05) readonly def
+/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
+/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
+/FullName (Nimbus Mono L Bold) readonly def
+/FamilyName (Nimbus Mono L) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/FontName /ZWXELK+NimbusMonL-Bold def
+/PaintType 0 def
+/WMode 0 def
+/FontBBox {-43 -278 681 871} readonly def
+/FontType 1 def
+/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae
+6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27
+bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf
+045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670
+0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4
+1b2b9e8f09253b61177e95ea219474796072f4b363fe05fa7637750ee32abe88
+6f7c1368d9ce6c8e0c490dfce9b86d093c646a926013616599be4a08eeab1ef9
+4d9066aa43407ce8754ca1bb33035af23db30794e2d3368c4fa14ccccbdeaf01
+2caf3cd75f4a9430011661c1bf054a530ddc57f032ecffb56ef20be97a76074d
+a40f2ab5f5ca4b83c12482c76211aebb54d996a3771a33008145b436f16e5100
+3c766da4e9fc3ac88ac60879f47b0d72099a606f615cd397a05aed4a92a6e86b
+6a9685a3fce4cb303371639026c74f19dd67a353e70a7f40b4d317f830c0342a
+9f2fec7a3304e4c4009e2bc3f0dcee97c8381bc7682c6d3f80d93a69ce5d74bb
+b3ae9b016bca6cf044056c8ab210f7f1ab28c6b4c457d0184278951c4e2bd743
+41f9c9c8fafb9f11da77c2ce9f820e65ba3b7184d08598f9ecc956d38ffa3d71
+0ef485905434474fbb7cf4b43b193a537efe076c26a9251d45d06ff575a5b9a6
+20ec66effcfa67a9e089a1a78ab7331d3841898dd7476d70a2a97c8f6c283fae
+4010a9eb770604ba65878fa2105d063a44c56e21bd4847b542af04cec1cfc7d5
+ec2b1ee2103bd35e162f2dc6d1f224925a0d7eb5b883a6eff782245605bb8fcc
+1e0453694af4725205d9225ffa329bbdd4392fcccb8dac6a0e8be2059177757e
+2fc359426f4e1ed2e19ca9b5311c2e77ef9f97618b0c337a906ff39926d2b0b7
+883abba6508102d9f4fb0387d88d82973b53718c98d58c9b83d2a62386b74c16
+9cb5c33dda965420dd78aa19ff23f88bd2355f93ebaca543d8b18ea36b4ee8fc
+b5924e01f73a9501819be812383107d361fe8c805163a6957de6aa4af7fa6963
+e77ac8e5d39349be33448d2f6258da61aaf47917c66c7c5ae99a990b727c6c70
+20f14175225efea39202b489cb6623c51f41fe9a5f6d3be27796e51be6945774
+6cdc1ec49ed6114400f4724ecff05fe0bed476dd3d5650ce735475ff6f232456
+5918f9ed222319d2a544aa4a74be19f45cd466fcf191e7ea641ea38f9d3133f8
+872bafe19691dcdf0bce48ed6fd0e0ee9a81faa6dff8b239874ffe2072a73107
+0ffb5095f90a653a1690655a9b4287545138b8049e04eeb928256a05a73edf71
+4e0c8692f37cf1d7e3defd43b2b428f853f35bd79f3811fa7bf788d1c1cf4a61
+65b8eebc60521fac324403d3bca11817c9d15012e0be84e194435fd27361e68d
+79b52b6c9a96c1a40596f048a31c49088b883ee21d9bd24b48e4d1e03e7378c0
+5b62dc00623f9c5dbe5087eb9122de23199ac72b491ff847674d6141ca7facd9
+6bdbfc373e1e1f87881fd7bc3a7d64292c55a687f3837424612103bd6be8fe2c
+0b3f529ff61d27d3fe8cbb25636f48e6a41f205d04a802e50fd974cfa67f94ec
+19c3ec32aa714e650af284926ec5f2e29bb880efc696d77d210536d7d1148ac9
+ea9263bc02d2ba97369f2ab531944e132484c3f2c2638b01fc97731f1b39a492
+4822b5265773a5e86a17a41e7346b7c4c48029f58450663e0d09836d75ca7f8a
+d9a78eeea4f41976945501f32bb383455467d217777e642f32777bbd74cff9c7
+97041d0a982ab1c0d4999077201cc9ab52a92cf959cafd2e6790ab45f6927c7e
+96f24481280a0242e823e22a4e32669bc829ef1b7ec3fa34e9cdd920b0f7e2c3
+8f138ee0922fbdd3d7bec614805aa562591c3969760019c54ede008db2c2f8af
+bc66034e5810bc32c823b819eb39a15c0f25be8f2dfe5a01b90848a5adcc95de
+49241dc602f4b71f8901fbb38725ee7ff097f769c017f16598b835a0b93cc6aa
+c437310f1a7d586cc05048684af27ef3c09f72ac62adb2f4fe7f99d1340d27c4
+479c144afdc37e4131d8fc6479afbb1004ba15e3e5d0ee470b9811a0f51294c6
+dee3fa7431267cb6ec7a96c590ebc1cc7333a103eddc21219f392ddbea601d6d
+dce7a8645953235a0ab6d46578e8e438ffc41be6b509b844b73e586131f694bf
+f0ed77a7847f7c747410cbba2473f5869eda83ec8118d800f3b2a7b5ea03e16b
+204962bc68ac47bcc5d29f88aee951c2452d22aa967d32c3f37a91ba88baad3d
+bc74cf2c7fbf0c76faa4eb347390dd08303b439cb1f1a3363d265fec5734c81c
+bf1af913f88820cc29f4a3b54c712e006e1d6bd993668999c3ad54676c71fda5
+e29df4c794a4fa812b13ad32b28bc57e05c7908b8334bd4fe842d57b04423fd0
+db3a43eb047f86eb925dfe31a012031f36d5f6099187724b0e2203ca1da764db
+623d1e0a59b9fe47d7d4d67c241d297bc5a6641770f5e9f75c572675ae6e69e7
+ae37627c1e4d3ba60b95605da55c67c5f6ef7ae2049ea3d1246a0c03309ebd39
+951a398883fc919a711e8e891d914459d4296bc3a584610663af1c2ff053c137
+9f447f918ca55c5dd4a52a060d1725c26e6940371eb4fd9d254749d04ebc0f11
+06f62a30d3f714a33e4f65f4dd0b20daaa10aa02b9a6e6eeec07fd93d19f9c0a
+6cd6bde1d7ccd1a973bf297fe6a8821e03a381c468b9adfde87a4b7f484a55ff
+a5b83052ac23f4b3644234d935485f912cba1c84227a609b32509552ad1d7ce4
+6f564f7f9da1e131d9921befbf53cad1adfee699702cb6bc949688b30f0b4f3f
+d3afc9caa04a796e5afe2aa8f8e14a7959731a74dc4b215d7ec095ebe86a3863
+ef6d7975c3d2edc2e7c2f5d2c8cfc5f6fda37368a54dc07a7026ebe9e2d290b1
+eedfe0322838aad2f5be5c299a658f47d0487584b1f9e7def39aaddd212138e0
+8a8d2479be76477e5193944353796d86aa5e2ebce0a453bae8cd9bc976a14910
+93b30d44f25a29808227330b98bb42bad91b4964f6832f2946b0ff1701853c49
+dc522636d5b7fb6ef764097a17da725c3af793585d24c91627f49e83271b7498
+cbd67abde015c94f5f24579852564ef01dc4ad98f15d522bd15fb9043b241350
+2b1f128d874c1d119798ebb0e11be341f78db622204aef7778aa81055bf4b7e8
+c455a6398d7d5dac94a5007b4f76265bc8875392b5354bd38ddc111dbb8b5b92
+15beaf72f041f17d55b49b81f3d1279bb7a5ccb1a9daaf125e79d5ad7dab0595
+9e694040bce7da09f795dd3cd508b405c6bd07cc7ee9bfe298156ff2620bc3cb
+cc7b27d9618e04a2ee6e3744d7a344f6554e0baa2290b2082f996026adc420c6
+76ad5978868e062323522240a388179de4d224f19182ba7a35c3aa952844df49
+f6c532d429e5c86f89d1e697fce1b50861cca95504dd63423bf603b14459b7c6
+91bf64bed93e5ca158ed057c9bf9160f61584608ee366e3be548bf2dc46c219e
+9e0acdbaaca1a5b02770bbf21dede6a80f3af65ae92a9089683dce3ec5e6ec68
+9de2dc208f7304afddf88f35e1f428dbe74e7042766346ec02e1eda87b8c246f
+89a0eb22d1c6fdb17142af0c8c0b565ab6db819d2ae2bb3bad7c7778c53b2686
+72191116278357d8659bcc81753c2906eac08fc3fb966aa5ded522da2a5edf40
+9a3eeb5735617e77a7a77009cd38c2b62bcb89ab73052cce4526f4f02bbec777
+e6ca65c90ff5931dadf03da48afb8561fc2e71008fb1d1d4343512ada1b78e71
+0a10079f211faa5227eb0b30588e9e03fad6d901dca2b6bac956eb8cd2ccfad8
+80e8cb37e31fa6a8206f6a9a2a9e1cfff1205345019a0feaecde57fb0fa418c6
+f4cb83025e7180e50394f52064d8ea0383b80482e48ac91c24d10c7ddabe98b2
+13eaacad917275e916fc0803796efc1f9597f8952547d27dee1fad9ac1fa6d10
+27127514e0f2dcdf9ca30393cefc7cda027c85e53d10ce53796529fb13b079c2
+0c7402109235a0c25965b3b7d741e90e500ec2476c5dd11dfae57d6f57b218c4
+b9cce956161aff0a55a52eb58a59d7a62d90b110f9a0dd26b8c902122271a38b
+7923957a15d11cf1427ce56323c7e4428d2ee1ec6b1c465be35668b0a7ac8eb8
+af1f080a993c3c74871e4b7bdb2602d07587aed96ddb05374c2aadaa24486f9a
+831ba1179b2ea3602d071411f1756b58168f9ffb572d787b2ffe01bc07c04d48
+f893271ee576454a86a0c216b224e0de81d66ace456d352a5b2537eb96be26e0
+342e4165d30208448c9314ec962ac31ee36f887d0cf61a575444b31180850172
+10ce125407e77e5c63c947fa320845efd26c85ae8813a99e518d679137ae1dfa
+9e9f19c49b461da073dc1be4a9d32f6ad62d05afdcdce4e33091132d471edcae
+38607b7f5a17e7340b4e1a110bf7ed2bbbb9ad9b8ab909430f29f87b1db0a04f
+a4a80796d144bc1875a846990df6fb3f14a1457be695a3cf1a5c16878d44be38
+107e327ec4096cd66caa90efb30bf9837ad04d995c4f9165b1ef14d394b71ff1
+281b0d67d4d3cd375c79603efa6e0830183be17f77e7d5423dbe0776fa1387d7
+df0dccfbda67f6ada4d87dc8c6325f0460690be677aa6db7e0250b5196b420d0
+cc8d66fec329d81a7584a5d001c2c3e42350eb22313f036b5ae64868fc6aeed9
+af95ec8f2aeefe4a95e69cc77f321fb7e7aeaa45b2f56d92d0956bf321ad859b
+d2e2bbe984b17fe9303f13428a68d6a1959288ffb63d800c11ffb6226920324f
+6517eb5373f2b8f058be35adbc7ff15a2b0a81683aea4ff11071451a49efd1cc
+f15664182fc26672cf89416da86a3b8cfb45510e1ebbe11060963434bcb7581c
+4816bbd63c6d79dbdca7dcf26a4217bff8060ad7955402af67fe4743997a028c
+c33d49847b57712e0e23a1c5b72da33198426130a132be52890df4423fe21d4d
+2625e646ce72588478bf941f1f74e875812f7d7ac9c54d0ddcd12178abf50bcf
+f5131713cf9c42d0faf6cde696534896406a8a5234a8ac19bfd531ca934c35e1
+576099082701fce199811dd294cc46ca147d5a187c3737d3d128ee8d437a2afb
+114183da45b49ddc768c31e35c395c3bf67a79f8b1ac292f38ab2ef721453256
+523e9dc08e80bedabece9bc9af135276c819140d7a0e966156dea6e2f7aae463
+c634c4de83feff86407b556651a455077d64b52c5ff4b80250d312dbdf83dc0e
+b9ebd541aa9fbfddef1f775be0c411788b054aad44c85d8723ca7d2a6b00cca2
+4ac55e90ec48e4acc15be17b9544bb71ad967c4b8437470e4d020fc6e8677251
+92e2307b51148b2cf46fc1b7f2b149ebc1ebb02c33477b4c56e56a9f06566377
+d2de31c00d90ff5ddb509f8ed457e915c6fee8103da73b5d782bffad7f7c029e
+12e1930e95fd7b7bb37c48b7cc48d99dc9aa79388c90bf6c7c0b83c7f7fc0935
+8fd5f673dcc906c7e0fa7711abe8258828289ef48a40723e39b7ec79f2d3822c
+6f45a6ae0745413ce860467d7cc0aef52c680b8cf1767915d3550d9813b5bde7
+1c21b0f7b7119bb0e1eae6a7874ff0588adf14626d101b4e117c63f2e7a60627
+dc40cb9ab16032434469f390804b9039e21f1afc9380f26571e3b2c64a86c851
+74fc32a61b787769985079d60cf71131977accec6954da9032b1333396fd5450
+00e364e7e6a79bdbc9f1e842e222ca480f1f22089a38079692312519392296ef
+08f00707ec53e1cf114795631e3b14687b9e351f1b7bd44d6f7d41ac91e8404d
+8ae952c3c78e4a6bc9ad64ac1baeb952053c409cfad43a877a7c420006ce3e9e
+0278a33cebd6d9d9737432c982165ed82c45d26f55c133162a41be27005cd6fd
+e60cc41bc098314a5a1619dedc6bd9acc637f398219f9a3c543f8421ad4c4e58
+9265d23edb6cb45f2273a908ca416ad8c32c2992d9efa95d86e631ac8fad778f
+ef9936c2dff4053cfb253c24c65bd20fd534d6509c0c141a358d4ad95bd9b5af
+8abb5cacb94788cbf6c43bb54d52751d05a1a2e6848c33ab9b769ca9bccd8e3b
+ee742c0d93ecba4c5c31c1d32a567d4213522f2a5687b014351cc01a42c14208
+69ef5852aa703ba076abcd4c6653fe6c4100bfbe047e34d4d6e9c62a6e5532e3
+f9ac9e7cac24e076546134c226f38ad0f51f8f2dd8501a001b5c0da65d9286eb
+3560b947ee38fa27a502e87f8c99ffcd54b1d128096360be6c5b6f3e536c57e9
+1acffa0392e87026f5acadd1d81295d54155ac6154e247d95bad5d9ace11215a
+e0ca996979f6dd8e94e7567ea17b8827ea4d5d5c9a8484ca568332bac134f993
+91505c7fbd8ba336f9c37d6dedd17261483c232995658b078fe8f1a312cf74ca
+de87453964bc73a936a0ea09f74e9b0822b8336cc888f0f1f399061c342c8b18
+1d93b17a0afe2a2a69acf2f91ecbc8441db2aa35091968a0408b2abbfa35e4cc
+77208f81b76a199312d8b3c3426e49e08f8359e6ceb694550f4b8fb113f2b977
+937eb20585083e72e0abd60e60ca4ac0f216b65b7a9bcbe1005c5b8bbddb702d
+ca9da36f1fd416315266905f3ca5ed221be1ec496c5b16070bbe38ea094ae5ef
+be93eb0eacb95603d7c36ba04f606a11ad22580b1ee5498ffae48f218108b774
+d71bde64b7de26f696d95abd3c13853aa368cd2582f2b03be9b7ac59e9bf0207
+df0ad55054c594811c5e89277d3804d058e1fa5419b15d11605066742d284108
+7411f111e7375c6710060d26e0b60f6aa8387f348cf2bcc5762c16ef320e24c1
+755f88376f5f2ec00b4121861518c97145a7105bd0d571454c177da407fbfbc3
+4a93ee4852b09cb436f682f9f84da4d61ecf72f8f801a548a9304f19163d6bb8
+12f5de6e1f2b4ccc494015627416d54877ee71221b95fe357bf67271242a8f17
+a4eb4be3b7a649c234524b2554a8fd24210b7acefdecb2198265167b8bb28593
+07ed7a654e9a6e2119e6dd14fb33faa084c71e930b8035952b87fe8b4a297dc0
+e4a89d17214cf1063caac03d4bdd5b4fd62bfa6897811c3494ec3018c558282c
+2efa94538edde156727152eea21c6e3f88f68a0176aaee333b79e6b37344bfe2
+77292544c72d4023a3728c2e39d2841c2450465852d02503fe0a871700b470c1
+a73d8c1db644db39e9c1ce3ccbf2149625e915599ecc3091e15e0a74768ed5b1
+8271fc242e10bd83e73b4636cf874ca6e6d756e707e671d99fc43d61ce6bf80c
+3a3be178d9f5d3cb32ca669cf99b70b10dad7d270d0cd85a9865d60df07fdd94
+cd
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F440_0 /ZWXELK+NimbusMonL-Bold 1 1
+[ /.notdef/.notdef/fi/fl/.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/exclam/quotedbl/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/less/equal/greater/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/backslash/bracketright/asciicircum/underscore
+  /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/braceleft/bar/braceright/asciitilde/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/bullet/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
+  /currency/copyright/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
+  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
+  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
+  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
+  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
+  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
+  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
+  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
+  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font FRBTTO+CMSY10
+%!PS-AdobeFont-1.0: CMSY10 003.002
+%%Title: CMSY10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
+/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /FRBTTO+CMSY10 def
+/FontBBox {-29 -960 1116 775 }readonly def
+/UniqueID 5096651 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 32 /arrowleft put
+readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab284bcf8b0411b772de5cd06dfe1be899059c588357426d7a0
+7b684c079a47d271426064ad18cb9750d8a986d1d67c1b2aeef8ce785cc19c81
+de96489f740045c5e342f02da1c9f9f3c167651e646f1a67cf379789e311ef91
+511d0f605b045b279357d6fc8537c233e7aee6a4fdbe73e75a39eb206d20a6f6
+1021961b748d419ebeeb028b592124e174ca595c108e12725b9875544955cffd
+028b698ef742bc8c19f979e35b8e99caddddc89cc6c59733f2a24bc3af36ad86
+1319147a4a219ecb92c71915919c4ab77300264235f643a995902219a56d8626
+de036037defbd3a2c6bb91c73375b5674e43810b4f7eccb675b36f35d63d9ec2
+def21c5fe49b54f92f0d18b89289682cb097244225af6400f6ca98efaf336c9f
+c304161e2006b3bedbff4dd36fa7a8f7594c02dab68c077e83335ee6d018f860
+8d9a9131325d953d6c38c7e0a34236506c1e70cb6657dafc3c9520131a251350
+49034e216ae175cb232c2ef5a3c569ab581f936ef4e8b8c8bccac287f06f24ee
+1d15d2819058bd9aebc4ea91b74935f6d411562a453674b14bd76fbf5f298f9e
+8fd37f529f9e0450bbbe473b5a4039d8d0228f56330fa15411d7544ce700984e
+09593a854180d3100e136beea91daedaac36cca03d82b83d953880307edbd0f0
+014451ec8f10b1e30b51c2f9055e906272f02f32085e4b9fbe5a6860a74e274a
+74349069b6eb90fce84259d281f037d6de9f42fe557f5f13a87e5c9f668dfb8e
+f5e7f4b5ef9f5841b3885a6c8994bfd27fe35fa3cc1dbd5ac68e1c98c0d0ecc3
+bd2795e77848b5faf604f01362ca473ac72284a56cabb68f35ba43ddc6158955
+5bc6614cbcf4b80872c2cc66b6f4f90c315bf73b34e481705ee8b54eef70fbaa
+71424420120f27d8853933e3ad4d8026397b040c88567f440df538120d61d0b5
+8232d66e2e006866b60ae46c3f4bda16a2eb5b248bb88a11b3fa4770f0f6c31c
+dd13bab11c2f4ac77a63f703a5824638fb765033dce02f584f36c879416fbfb1
+ee7eebe75d57711b44824db906885934dfa7f386b811a2598fd5cca2585045f0
+4cfd32e35f32b90badb9a96f48957b0a311778d21914c9ea27bfbc75197cbb6f
+0df8f6fa574e1f1d529a4594f2a6ed99b98fd302f4fb2694e3986c1f46ff165c
+7f4c1102526831ae1e469e62f1a6adcf7d2b876c0d43f85d20a6a5dbc2280884
+1c7666d56f832b66cf189c4debed1fb37df76c3f1c632ade8822eead5e7f52ac
+e65daa6d86e410d469a7844baa4fc9d28e21490b8cb2d3b2fbe718f55211fe5f
+74d3573b99bfccf198c775402823aa742acca713d30b55a09c7b7ce3f5f5517d
+6133e546a86c0395bef3387804ac1b07a4d27492485741a8c2ade23bb321da56
+ded0fe0d43baca1483566fb397db76ba9eec923fc2b3941f3b949cb13dcbdc3e
+2c84c6e3a7abbe5c22abf9b6959a17d152ed0576524395d8a5049c5144680a19
+0ed3405f2c9ec716cb9c0fbd6b12168d62666ce74149f8505e02aab39977d99a
+13a66449c9487a6b2863f7338378fb901e8ac981ec53ca555049b3667b4bcea9
+cd731a850ceecd59afbca1ed2fec76c18fcf5ba1b9fbd81eb84c254fa140eb99
+48838693123cde50278e4aa3cbdb7f7691d52cc624b4226855a74d3ff4b3eb3f
+e193702ad68437760ed7173ddb5031737de3470f9340a44e92355ef033958954
+e5b33866ba86201a7951a68783b94f2984b40dac3037d3e6d2250e850984470c
+a4fa92527aa313f3f366e97b87d05e114468dcf43ce4a27b9999e24295cbead6
+7dfac0c6d99e7332662743f379dee2b05fc7aed3ae405d631e3893b16e1a3771
+278319e6014b88fc346b4f3d17edfeab40d6552092a8dc6c2cdd506f458bde17
+e66b02d4992a0e370871035bda2106ecf7fab7ced8e8d35c6fbb825ed724b726
+8ce5f3f25d11386c958fe4b773b9268484c12f90e2e25e299a2154e5c480610d
+f302e1aceed9d0b3e11681bd5322a13b8fe895fc755e0053890a4135f2993642
+3d11dba2766edb9954e308ad998fb1cfbc2285d1f7a9135d2f06cd2d7f7d7b88
+d1c6c9409fd3962b8b1c9a690e01fda96361ce706ec9dbe3b4d3e0d57baa0d4e
+a98200ef682573f9aae9f09e2000b9d7e14ea41682e4e5ac56dae4cec783bf61
+a99a5df4e83fd52c0c02edf26274a16c939868103691ff4f8876c25fa70652e9
+ccb3399053205e0350ed215170f709c1901bf7b97236f7bcc13ba5b35a96e8bf
+c6e476d81e396b0c79118e16b5489279703b1a44c9d7e320936a19ed319cd03a
+f052845dacdd9b627a47433f2225827c65dda57721e8b196cd368dcba55250e8
+24e6b7b93affbdd429c9bd8e4523d8e8a56427acc3e5bf1b2db9b60cc832002f
+1bc52025f18e7d87d9bf1b8cd8dc170c6dcb85af5afc1ac4a24c0e38cfc0f4d9
+8d63cbf3b5cf6f14d902ac8a9b4c48a5d4ba4bdcf4f3b69e2998f507719e2bd7
+db63597995c5cdbba59f9b010a135f4dcc8cfd602d40b30730125606fd1b27f4
+9ccfb1d0f6a97453a8c9a40f643fddb1581504132883598385c4f76b4e57b559
+c0ed46d83ce8427db396e96bb3dbc307df52ed28dad5cf5e32d82510300241fc
+fdec6d84bb008cce0fe96c7c6d836fd3c8eca9341951e5ba15ad84a1799d137c
+938fda761f12ef2b7e90a49f1ec49445b5638ed4b2d903924dc6ebd72fadf61d
+16eb74d88503fc48659a86d95043b4e9764eeee72247367d0ca6ec0dee079f9e
+5db531a1411790c08c942b7ce7b028e4b956d5f1df8a47a8ac6c37824b661b57
+147ade729f5fed3dfb47227b27aa34cb86584d20a628bf18c395b186ef197a2f
+dcb3b6d97ad24cc35a847cb98944011ec6342d0ff9e13045ed70b68a1a5a53fa
+b8f341c7e187ac0888b3c8e119d8b841e494b9c1bd746cbeb1ce48fda15b0054
+817873ce4da21d8550892ab4a06565a98fa666a6be00776bda87181ef8483129
+3708a88f69228dd0c3ef8224301dd8fe81b4abc3563f69bf1212897af3e738c6
+c57cbfa53e64ff6a79549a8d81c3b5566dc7e697e11971a7cc6743ca1991f391
+efd8c0ba9a01397a05bbe5548843de7f2fc4747eba91c5988605a76f1d2aed97
+398cc672cfd5498ba16f6aaf55ed4bf613786aa1ba2e092c06cdf82b6231b0d6
+b2f10cc3499b6c444cef515a033381f7b6502d6e6ff4bcf2bd273cd059bddf06
+652dec312ff80e8c9f37818c2a453523976487f1a46f8e967b5d43aa3e24fe03
+46097a6721d0882aa36fba00d3056a8ad42d4efb81edcda5cdad6ff2388fc54b
+775167dd8d709c2a315e130e822ed68a889dcec2ebb10c4c56897ef4c8fffcf8
+6d0d146c61ce0d5d2514ec2e22a66090bba95fae51b7691c7f1ae470c0f6c58e
+1eca070773920235792e58838f031cd2cdae29f1e61ca254a1ed00a6f664314b
+9fa26bababcc8a6add7faba2081b6e307a17aa47ae1de11f7189b78feb61a957
+51e9257a84d3184ab2b9d858a41aa2c23374497930c4bea32e04d32389c55b93
+23a41d83442345d482927070af462aaba8f5b1de9876ef724fd364ce6e376e0b
+a411d2036639832aaf1bec583af5bee73ec7bc9a3a2acdde4c1d6602cd8d15c3
+39922661926a3b2b1d7b15bb30870929d0da419267c3b04b2aea81584bc202db
+56b6277ad95af3cc411dda29096eeef6cf0bb3d554bc9411c39990db4ccedf0e
+4aebeff2e95e4469a8fd5ba6f03a733c9ddcb832c221f114de5587fa7c9b0096
+2306f9355684eb66d1558aea7150817df7fcd27c3dff8c9abbbe47c2354f7c50
+c306e8739a39f1a71e8e7de4e5932a0a1d2b677041802cb02cc13d7c6aab3235
+1143c982379bf5d50c92ef96afb597d81c107f2ee92f46a81b1bc9b9cb30a296
+74529ce1ba8a022e221c77650c681a19bf0e5080a065e4d66d70f2ee4a876fb4
+40b0b1e29681ff5ff0ea41d27f33a7e25115e9bf421e56f47e24f03945a2ba16
+906a3d0a8b5d3f20abe89d7b7705af5f0f3533f7a546ee67d3bfb3349d4299e8
+e49bec41a8ab12e1bd71b2cff0cb0f1fdfc0ded134b5078a1e87a490d0ee31ae
+506618d409acf32cd653c59f36f4e3bc051ca072a4a75b91ddc17660e00cbcb5
+b1fb8d17f4bf7f78f74724ff9f1b84a5eacf2e7da1b9ce0bcc94b7a817dccfbe
+46cd999463b0b19a91823d18adc1662117011f2acbbdaa2e062fe77706c48952
+38ba2840d9d98b9a7a0d63b8bd40c34e26496d979edda33e5821c86d9565f1ca
+40ce6c160e57ff22d2564348e8f89d38d46b17d591053c79f89c4e750d619407
+eaa5a8bdc52ea6c6ef02744eb4a5c4886c32b210b86b41495d8729174df80f7f
+b653a2e6ff5996d96eb51a828d0606998fd526a82a5e8e1dc79127fc6340000f
+e218fc26b7c97c3cdfcec5a497f7be1ed11aedb012ffead9aa2b94630ead80b6
+3ca17e79276dec733c9955e9813970215fbe02a751bcdaf5e427a64e9b47b4ef
+e105983e0e02c5a8cdc06a5db4126ef333583e4aa17a3fd944ed803d4ef88501
+bd626e0d1d8d7b71176259283e22d9382ae88bbec9cd6ba87933f86fe28af800
+dc2080f38948e3c20d8f4477e2b9f85da4800cbd1b9015eb64a07b459215caa5
+c38b7781d919e199112e241556e1e7681a749cf67a6b246b6b245d34ebaf1504
+f06366b8a1faaf10bb4304579640f2cbf3fb339df697701f6c51afa09351e699
+890462e1a8152f70f301b5f3a01c549371be46d138045ffed5411192bf6eeb13
+51d407ffa26d4b8e7b267a3b3cd5bf9e06816df2e35b6937cccf16b4eb9ca3f1
+272a16fd71588054016ef2743c1bd58c6bf22f083fa9326d19299ecbcf66f4b9
+afed95e1e2a2f8792328e3af6025da7baa1b10a721bc511e9c2f302673df78b9
+f466e742ab2bacd5728bef45dfef5b74d1da674f4b1c8d51a324fa24b23d141a
+e082d79c3fea6440336329105d33aa1a960eead51cd500252a4d7d481cc31a99
+e9a59e3b4364a3e19805c97270bd19b031146afd9f46111a10bf886385731d74
+95ed4727f7e2435c96ba702904ad29f606fe9c5f1f9a11a229b1d528b9fa9ba5
+b50b4d4dba0ab5b3840d71c67626b6afcaf743dfe5334e00b64c5a73b3775450
+757b911673bcbacfb0f8509e8b2b2d9dada9a1558b97b146f555f85022bb4bce
+86862babbcd259be6537133f30ab2895f60869641b1b9a4cb43b676b0739c112
+2859492d908c6c60aef5ee3b60d515e7e641d008483ab4aea0e159481d623193
+b5e2bb48c77bb87783c7525e59d19a190e2c0aa02446a8d4964844d9f2561a3f
+70f20779d197b91450de25463dbb82c2c7c6428706f6d9f6a1474bd85068b37e
+4eb45bb80449ca5fea88804308f054167aded26609e7093cd396948cfc810160
+347c6d834531d64a27bcfde1dd24607d5209060f8207da7f5ca88011e24e326b
+66a261f36f754a37339d7f10eab4f276e1eabff47f4bdb577b9c4dd3de333fd7
+8f8da94df25df93a57193b1411761f908510980558e23b0584421f920989a758
+138f2e50e1493b3f9f2154a488202e0bb77316ec03f6555de4ae83923dd1588a
+fe0bfd9235b4c08a8072804d743e793daf862ae381624303be7e5e0dbd74c51b
+4172b1a16c27b6f8c5a695fcf3015cf4f7d89fc91c4c8102eb83a15093263774
+740f02f675477a3b4b6734daf3d18d1e3bb7752922e9b33bfadc539596c276bd
+cbf0fcf5437eb33fbf4a83bb2f92462236552eb0303ee70602f42bdc4b51d384
+301922cad3abd13deb81f173e9deed83786f4a5de1d7aa21cc77fc364fdd2e7d
+8b9e8074ebcb7f3511f0a256e2cba9b32bac11a5b7acadc0fc1d378ab3557382
+9aaed6a9c679e7e5cac49307549f8c4335fc477267e25506c41035cc248f8797
+8c267cb08fb5bf8a087e95dd47aae4d8389e97ea0da1af064d76e5df286a1774
+a783e3df200df1cfa26ef1ed9b5dce5dc55102cc5718854fd8911a886d0e2e8c
+a38eadf009525bbe17d0986f4e3c6a23e608fe2782e7c4bc31ad13d80ec03b7d
+1f0ff0855c4d7f9d63d6283ad8658fb13ff68586e3135a99341e4b88678704a9
+c5e8a4c2a9e70f13408c9c54ac9420d52761f62225c64b7c60514b7de0a2c8e3
+f27544869c93890e7df32680fdc438392efdd6a7bbe7621a7642632b7f45bf2b
+3f0cc935a688266c39f458b9503ed06e67f4094946e73a3fc27494d890065355
+4fce63c60e6a32436d5ba5e0ab4f373e816b57fa6ba5a2a9bd02cb58af2783b2
+ee1da6169c0f15c23c55a7b2d74edb384c6f646adb73d70e3310873e0c99231b
+1af196d1742758956415392b4537b1f04ee4060899648c387bc55df28c6db99d
+2f87190bc6f1109ebbd78e15a5641a76198b590286065996f6fe1f776f7013f4
+e999219945c4509d37463f6f18cfc46a500f39e2f2ad229bc16793428a9d8cce
+c5d950ee8ef43b425e518f4fa99333f9bf2a420b33b383756ebb0324b7df49c6
+0eeaff9f5f4f0665fe60d40a1f9824c0df60827d2d3915512fc4a5e54db36580
+9e3fd8c1c7c9ead2b0b5011e10ec68e4035d8aa662f0bf09fde9bbeaab5fea32
+3cd1f8cd96c62b0410ec741cc2aab05bcf9cb188194aa1fea94f40a4254d9149
+82dee90d74a6b5d876068386d55c1ab92f62e3d1c3f24d564615ca3035ffce2b
+6b49e53257393e66967da9b72010d0f8c4b6f4337487b6abffbaa16aaa86a6c3
+7c22a7b4e6f4ee90d60a9fc7c95b15d34c8a689f028e591215b329d86f35376b
+15dffe9323257f0748925c002cac78ce7cf473af7378eda5489e3c464b11e3e4
+87d805cded68a70bb95a36d01885006d2cded168532d575a128f0e03ce4a1827
+b7b0f7ca3da8e4dc774ee59db3616caa3a8924f84f35df50e48477c35fd08945
+308a214bde3389d0cb225ee5d1f96771fe3930b16645c6283b70223dfeca6663
+d72e9b6b4773edd543cbeb81e38a094ff9f1eb6012ca08a77092987bb8dfa849
+361743964bfd43032f77b09d6d1407abdcca53d424ae51fb1ed1434cf4a2f391
+b81678987709e0bea61d8546b8de9b05260d7e2284e445933ecd867cb63b6004
+0fc50c76fb25f81fdaaf545bed63d6065def8265028a224797551a6a8ddfab06
+84798af0747678d53a7564519116755a795f14b254642293aaa3622be7c14f86
+5dd86caf78e0273677f2e33658b24310bf444b1e4f0719c187669b286740775d
+66a65699cbc25bea7f7eeb8c3146f9e91e5e0f413376ac09c7e24f9b76d2af1c
+b63201760c0a7afae554b8defacb30d9dd146223f69b015b9b7a79cf92d52404
+6531acdb6bd53597645241ec6028c585407b903d0579573ebff088e43efa91af
+e77940e6c5ffb955e1fa083b949cb13dc3483bc7637b96f03c79426237a96c21
+26788fbaf00540a987d4ef95082d64a104dbbd75e4ea5c00c2cd02e622987ff7
+2775eeca7c15213edb33fb30b48d17c3bca35ed5ae941829d5992d7bb74f8fb9
+b04fd6fa321052a8c2b40f78c8e8eb081f8851c508f4774267d091e2bcfd53fd
+bb9e9b22d7aa6c9b62f0f67a3bb9b1984979d55c45d705c1cbea897072a86b4d
+0cb7400640c26526c0a03395986cc3ca897453f7e6c4251d81ed29e82f7052c7
+f8ded9c0aa221832b5750a9845659235f82bc4d9b073a75af2271a0814b1b9a7
+f598e0e7628851b21af4f0b0536c129f6ac5f62090191a7a0776190010de80e2
+7e252e134b7a5c4e14a18a84e7fce3f71645ea072ce3655632d2113d4d176f13
+29142d814a63c756e0a43ad21a55d932d1b83ec93188d7c893220fbf5157baa0
+834ffdf5d191342a4f7afbba2e63b8f36a6394ab5926fcdfdcd8d8cf138fecea
+3deb371294591899b4f6f8c8f0ea2c41356eca49df468a952f9c3ffccc8a99e1
+0d5d61732eb44e2ae7b254bab320d13990ffcdb63f3d541ed21ae022e86ddf20
+1eac6701a072aaf27664dd4e7874c4e428682c44de9d9b14c25fa8c2e8760acd
+79f11c13e198602be9d9573f6f04643b80abae1cb6269e00c8ab419d49c3606b
+11b1f8f46e7977789b19ee83c5bc35bfc48da6d32dd4d16c1303b0799dfe98fa
+0cf8531205195af9e992dac76c6cb79ef51865e6b012f29df6d3333daae56b36
+8ede2fc26a580344fdedcdf9c61366f5887fb1e7300f7898e38de35b4dac436d
+c4f79f7b365cdf9b6a32d842b6f8494b7b6c91c122af116dd8a3c3c1a35a21a9
+509f5c0c8479c5e57b2c0e175fbb4a85d3b52c927a20fd0cfdf3e2273ec8726b
+58c23b0d4f56d69ec2c59d8ce896ea7dd86cea423c2f7250170a09991fdba4f2
+40a6df094cd170ee83bab69d4b8706441730cf417284c8206c646b5105d592da
+9274bc54d07e141fcdcd130e51bacc353ea2e99dfae63ecfb9138e0aaa07178e
+de98a4f4d365375190585c8579e73929b840667afbc659f5ba4b9f25fe55c75a
+2a42fe330a4b90f3a088202806baa50fa1e99fb32973f23819fba8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F548_0 /FRBTTO+CMSY10 1 1
+[ /.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
+  /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/.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/.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/.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/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font AMYDOG+NimbusRomNo9L-ReguItal
+%!PS-AdobeFont-1.0: NimbusRomNo9L-ReguItal 1.05
+%%CreationDate: Wed Dec 22 1999
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% (URW)++,Copyright 1999 by (URW)++ Design & Development
+% See the file COPYING (GNU General Public License) for license conditions.
+% As a special exception, permission is granted to include this font
+% program in a Postscript or PDF file that consists of a document that
+% contains text to be displayed or printed using this font, regardless
+% of the conditions or license applying to the document itself.
+12 dict begin
+/FontInfo 10 dict dup begin
+/version (1.05) readonly def
+/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
+/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
+/FullName (Nimbus Roman No9 L Regular Italic) readonly def
+/FamilyName (Nimbus Roman No9 L) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle -15.5 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/FontName /AMYDOG+NimbusRomNo9L-ReguItal def
+/PaintType 0 def
+/WMode 0 def
+/FontBBox {-169 -270 1010 924} readonly def
+/FontType 1 def
+/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae
+6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27
+bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf
+045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670
+0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4
+1b2b9e8f09253b61177e95ea219474796072f4b363fe05fa7637750b770d7b13
+99fd7523816e22986f43b17ad2f9328028bba7f383ce5c429773b3d968b4307a
+efc6f468433d2320871c85fc9a377c8146b0238e6386f2f010e4c23bf50f301c
+95de2b4a559abd765880f5b3d8960d7c462f28339aec4978f261a05761583468
+b73b46da2852db1d9b0b53f6427551b6e87f1a1492a19dd774ccc6a1d0bf8d1f
+afb24bc1b3a56e452791e8fb9206a2c9df1677e848a67c4dc754cd0833116c84
+25127a919ffae922f6ec724252ae53662f3eeab1dba230a6ab6ad98cf27afcb2
+6837487ece5214be13a113d27d5ec449ac017cc7f12ff7b731b6aea24462f3bf
+e743debd18a99eda36d085ad3602ee939e3c2a40fb9551f4e5e904578e8df0ae
+a6e10910d5205c917b45b0d0f44caa993ea6fc2e17ea43b83e62abb31717b3cf
+d783d25486084caa1c642a4d9719906889510d7e60c8ba0b48b9d40222d36a01
+1aa4c8148ba57f165bb7181534df0a597bcd1df98fd644fd3e3a09a21bb018bf
+637e620e494eeb843c575bdc71016214e19d0d3d030b8a9eaea88822ee97d8ba
+ffbd2f522d3ac2f34927961e189b0c163c365ebb410088e95a5bd200e62bd5b5
+e846bdf4c127018a54a78bce6dc744c4c1aec0087df470d72e461c8079f1e8a5
+12794d770d391a02d428fccaaa4fc4ce3eefcf12b553d8fc59588b922565aba2
+c179b29dcecea5254dd73f388bb94a7ea4f16c0ea0278deaa11f2be56dadb4b0
+43bf781fb5151a4d2491bfa2d439082e8cf7a05cbc84393aa92f1d09af1e69f1
+692065dfb293c7d7bb552469bead4b1479ad1b75e552af4c162d37027dda9863
+5e1ff0b4c3ba9cdb41e9c292e901446d40a10906ca0c3f649f7968b4ffd2c653
+650bb2320e55fa19938e4c3775f286a05a1011cff4e4c7f353bfdd88ce318584
+799cd9350da919e462621dc3556b48bf53edce91940eab01870741f0fbbebd2b
+c6a26e593fd78e7ab5d05af43231c262477a5309acf964c0fbc114419c98df24
+279612da5ae02b2db3eb07c329891aeab0da742593183a92a619912d6e53b33e
+f9489dfb011045b4f20c79a7038e473f435dcc8dfed5b9071acab5a322d4e4b9
+f225eef68b8281688882693085432c16d81dbadaa3df3c2ed508a5547c4b8b18
+2cbe2aab5bfd98acf80d5927a07da8a3aa987a899e28e69a49aca9aa960b45b0
+53079246f09b1f8be89a5912784ef566497df949ac722c37b8b4c641f602217d
+e1c7fcd757c04c263aa2a4a08d7e08055e5b922d850c2a898cf32baf2418e0a1
+fa6e54e2459ef6283fbcdd406b9079950669763106c9d8b16d0aac8815fe894b
+e1c7af9702ca13b36325fdd90110f1b8a03ce3e7aff614a0a2b1b15a1041800b
+b72ceea17cf4a939410c53d5bac0b89eeeb9e2f9cfc6bcdfd9a438c109784adf
+9d2843fc809a040b9287f0c71d93f7c2b3273d39c5ed535a8e130b46d3c97f4d
+e0bf14ef07eec07f1c747a6b5d294cf4d47ac12f1d9282d2de0f808a4c609e4a
+0e2a68646e9583b6b9a75c95840bab3fe259ad8846a82af91f44923f25bac677
+3c8ad0a810731fafb0a95a5445b5800d0be0378909aec60f544c3e7438760b6b
+feb2b9b16652caab36f65ac444ce9358670e060a90cc422043b8ea8f0b065446
+0b4ed94690003cc77027d8a3c0a06a48bccdf5d6d6770402b4f44ed2673b1329
+06d4f88bf12a3445794fc9db3f1bb4afb8d380def7dc1dc78624c748192fa321
+c96b32dc26b30e54dffe770165d1759d82a5542cfc4a772d8c2cadcd2e2fb1ca
+1517ac15deb0bccf94ce83436e989adba2903489abb6b2eb9f977f3f4d690b31
+e8f6e27faa56bde2c4fd331ceb502ad286857dd67d898f8b86e13a98044f77c9
+ef13c7b14a754fd0e07c68a90940f3fe3594afe83c605102c08ccb046b807975
+e69c165c9b833f41da40d17653b80730495803061fe194ca599d53a3367ba3c2
+8db6183ae68f6564178dc0372c58a103da58de056b7b0f8795cccb1cbd4239ee
+a2b6af7eeec2f7da99f12110e07d663dfbdc0645dbf9e051f91924855405f022
+13933f1c51af2ca7a39ae3204ed31d68b15f2b74914bf86548d87316170a909e
+e9638b25282a209e9d8bbea3ecfa3ed46c2dba5cb3b38d8fadd66baf9417f5cb
+6b3a9186e34d1710c011e3a16fe8f9dbc207edeaa72c2f7d4b7b7112bfdd1b0a
+1330a7f88ee867f55c828a9154dda3c57b6e596b830b33ff636e46d8d00fb39e
+cc497f82e037ae6f7975a36876d66694e3dfccdd4a5f9ee70883fde704969531
+9cf38a1bbe0c7fbea056326e41636e17d93850a1df92ee50089f30f3c4ade4d3
+07305271d998208c7ac0f998b96ab3e3e182e29b819fd861e52b04e00f9b6be0
+8f5766fa4f3557d0ccc9edf31bf84531d664fc186ae2e7f9c81fe8c4f9f1f2ae
+3b9560c9df5fe69d969a0d6c120a6621bd68991fd5593f3197223c9f09613eb7
+1ae0c78d9ffad6be1e36df5885f657994ffb6eefb5e0949674c34768f001827f
+12f1ba77ae821657e3e96f17de324f9355152cd28c7bc3bb93b0bd0d40d17d35
+2b303f2518e05cfdc4dfa697683ecbd6a949a2eab9cce57b8b14c53ba2265a49
+5c28d22dab35e36b5b02d2fc02738aa6fa7c4cc66c88f5bf25b2be88a4987cfd
+39ca40be4ebe0174ba827e7dba9579fe52b869142fe488f9ea5cff30111d6400
+ac3cdd3e1476468fb113f2b977937e70b7214069a06007d987d0f3ade59460c4
+35361b9ee2378b0b2365178ce4fdaff19dc8e52a4eba7cea25387a2e330bea1f
+dac191c9e385c837ee253220a279f05876328864c9c2248258814f7a16030c60
+5a0da56b130757b262ba58ab68340b32d30ba67ae01efd748994a6510bdfb15b
+50c31f5dedaa1866ee9123cfc235591e6516e8210dc0157687a8f081c3aae846
+7481d16e8af6d8caa9c8596c801dd5948cf7361cafb8e01268eaf0cb40ae29d0
+de3bb879970e06fea94930ffce9d4a15ff822de7486a4023fb6bcf27d496e0a5
+2c73d409ed6aea6923de8e6ddcd7615d76b5af4f2be2cee210bb781fd622574e
+042b2fa03ff6e45cbefae7dfb53447fc56da42938717098806352776208567e1
+f07e8372e0bd8a19332de3a09320e82dfb6ac58689a65ec1fb97808e3ecfc84c
+1173378bbcabc629bb8d4f2642cfbe1bfa1a25137db295526810f349baa1e4fe
+9bc755f32a1ed330171ada792e10540d41b177bffbd9b94c2c008ff74a20138b
+eb2d0b23fcdc136e434d7fc5e7710559b91756ad1171ed3bae249960384eb4b8
+4ec4c71e91d872b1db3b7ee412aa9b4e66c8e5a03d5f1d98de47ab51dd77014c
+2926ab5e994a095d9ee5fb336746bba506603279bfa91724f6cc868abb2ce5b2
+c145dae2b6128e6c913c8814a5a0b4134c30edc7f97908ddc6e7bb65cf8a58de
+88ffab9273afe5819be1d31040559f763e95cfe230d48681d0b4103ebb92a3f8
+01177bde9bdd61e288e9c5dbd18163eac0a67899acfc1c386f8b261fabd320ab
+89fe9be450e41549b3753c32e2cd3069e82101530513728dc24d8c2c25b06ae0
+91db97dcde55f701a63895445c0bcce07ccf4c82b318494f42c776d9482c8c19
+46fce4e987e770a4a7512b5276e36ec3072c6dc9812e56e11b34baaaf9bed596
+e52d1ac1768e8e0a8b20b94f320d56406f4ea3202920fe665809102ba71932b5
+51ad5c83f6f34b1e87272e8ac300761cb99c9104a20557c09df9cf7ac51625ab
+05c5a60689321d8cef7eb8edd092b9feaba272a94e133aa84a9b7cded15c6824
+3f7ef11eee530323afe1153fbd6285b2302588252609824ed75c05416beae011
+98155779dec43c2e7fc92532951a1ce0dd6613afb3f9c73055f528f993a342c2
+3ea326391cb99feae1d61d95af36536b1c53d0a2c19709f7c85f07715f95a98a
+cdb7722e297692fc187c000a9e64bdfb0c56852bf7ff946f932852d3931043f2
+60b7beabb6b6faf76bd8ff3f2a6fca03fb36ef04f59a9f67d26da5ddbc23bf20
+d82e99326a41155cfc7b4fedb80f69d361c31826743ec395b7aa83c10f9b5eed
+80044f3c258d7e2052d2cfe08f6046189bd0022ad8e6e7890cd31848b2477ecd
+095ba2ca9f4e9ad4bc8c7b2dae33d20d4cd01885c2f172052c1f8bcea593fff3
+4821540e79f626f4d7fa64c0bb4cc5485309e67071d0277a61369645ad3a4d8c
+fbfb1722ef6011fa6b2095aa4e5b32746f64c16af093df2e9bc175409949d440
+795f6f2b72a69435be1621154ade8d4dfb1bfbb0e28da8f08c76cd0521ff176a
+d2e7dd44916af6a1dfa3ecd6194189190b428cb56e2ef4a1bdc5d739ff1cbefc
+39eac4b5934d3707bd30caf67adb3612b37056151b45e9eb73c3bde4b4350148
+23c3ea6ad5be04886842418ea1872bc169f92a890670fe0b8bdd86421400b49d
+57e5ae8fdded5d706eebe573a5a172004e59b9c81fc990d2cf7036344c4335b1
+842a5c879354a84cc837d76b2babf981d4e60c857649054fc69fc59bf14aea72
+51210ac8babc95d58f4f3b497d5db3395a638fe339c5149f284b8dfd340c0b0c
+1984d43b5951b7bdb82423182dce8af2baad5eb25e037c5d976b534a3459f742
+751b5ed1c5bbe4915a7b281d1b1c806c58bbf900d5ca092fe2119ce099e52872
+0e5c8231dd6d7ed8fa5d2c953bd8bdc13781119d2b31a94bf39948d4b3688e58
+8aeae48e2d66e17935058ed16528d28e50e37bbeb1d155450364517018b1b44d
+bb0703befedb3681a2b609063302129628fcc24d88653589b431fb84e4ddb650
+c2f783594de613ebdad8a1324574cad1fd05a37844799928b4da778710e3a4cf
+b85afd46ed46ccad840106074f69ae7c306abf4cead6c66f4fbc0fdeef002570
+25305004426efca887ed5b4f2ef6dcb912ff552089f383d270c1312811b510f4
+11622aab22c5add53e1979fa80a9ac5ab80b3255c901cda700904e4254725a18
+6925971163b35469c55ddf9d36d2e690c988678e2be17e2668807c0fee64d264
+5a8f26899ceae3abc5553bc58674333d43f27d0ead9297619e8169554512d7f2
+9984c12dd44285a3d8a75dd20ebdb5280b95471bcbe5473447fcf750c3b061ba
+bf491a61adf487ccefc79cc514569978f12a7a3420ee046e1c28776c96c550e7
+fb0e2b46b3e57b2b8a6ae7d306fd0eaeb026beb5b13b8c980828f78905369fad
+aa7ac9c3b91df9a4d1be00b3aea709995849ae4ece16c126b99c3d0fc0bdc084
+f8486d70022e0d5a8e50a27e9439e37d3bc175c3a3bb19914a4bded2feb81ec1
+fa7e274b027f4f4bfb331bf4fcb58fcdd1b999a775bd2a9002e846d7fe61c6d2
+e29fedf3121af6edcef90f23f54b128efad5fcc3e2236e1f9f59218994460d1a
+f21eb9a2999501fc489873e9eafb986d9e9e780b4eddf332aa72697ec956f63a
+4307133ed0fd2dfafe283677469b7b14b155b17a8da4a81cbce56da716149124
+bb3b20fa7a2b64b58d6eab90dbaff1d560e5e5492f17615b7308cf7670f09a04
+6115d454937c733ed45b1156c2e7d0ed43c093d6416b91533637d5d5f649bca5
+50a5ca5522b0f8362042caa30a4bc87a4a4339710e2de9b2c0c84baebedd073f
+25cacf0e4c4bdba46f4c545e27d20536827ea4a4d5f5e19518fae6ba2d45b5e0
+b247f20752a795594d9ce548b5c0217ef480cc5a0be6794178fc7c017aa8a3bd
+74686310f635ae6153d9e18a0514882d4ccfe9d7dae9f24b393985e8da776880
+1d9a6515ed7bfad3cabd1e13f2a9be17d42dda60f38dc5dd5412b03b938bed86
+0f9cc900eba7eb281e619edc39b5413af1e242ab56171d3a01203c76788d9024
+2f72c89b7adb10f5caf6851acd3a4369972f796d5a1a9816023f5a454dbf5bfa
+5ea34c00df81a76fd79a0198e91ea01efbf7d89d78f9da5253250bb29770c4e8
+df955af85d48c33fbdff3845d6868920a3b09ceb0b7de798354e80d1f3ec05d6
+3ceeb37751ab5f9d5f7e682958235c0fb224551296108eeded2e000bf86193ad
+5f290f698375727743a699633867f03f2d7801b18627f25628c0b65ace0e766e
+ed22bae384ad0305bbba6a3cbb913641106259e2947e77caa437856febd8b604
+7621e8be93bf909cf3893cb2e0b4c75afabcac6ee9ebfa30dc6ba5e9bb572318
+ba844429bd3b5bec550ebf2b7a3776f11dcb71c930489a792bbad9f6a1679b6e
+22a32048d0652fe2e3c1dfebce17cf97281087ed892b5d02d83a97dba1b3b221
+4f52eaa45592670902f979905281d7e92e9bbeebb909d5152f97aa49068d3b2e
+8ce26b784b48936a3f8e569e5d96d8f3cf19335c7ca5f139815f26b62ef0be05
+2f436d3d7ad037451cef14021a15b0b10a07048ffd4cc4b4ca987cde5290318d
+7100cdfb146fa044c694c79f3ff3ac98f1067bcdddc054cb3867af0b7e340e39
+81cc10ba0763901afa3f492590664fbddc6fe2ef568d6765579eaa5ff1501a1e
+6b6b303c415557a70b4d60994b9841785a8791b51814f08ce8f0b048c690dc05
+fce223f392df0b93c030960e7a4717203c957f428fa52cf5d206eac92a7ec569
+b1353585ae6a14877eebbd8c402163bec563feab67ed764809e5205bc3f50fcb
+557af616a430215a7f9915872478572a2335fa3817abd8ff113020f023c513b4
+202a3015e22d173b07d87e6d6eeeb3e0b0891c00831843c6a2613c15bfbcaf5a
+8bad5d9e69a88eed3a1965e1876b223b74dedd8f16a2302c7f70ed7c8b5e60e2
+25c39cd88e4b559888007abc4f48955fe377c69b00be16bf9eec8248ebeb6808
+5a80b2f60ae03c29fa29b91f30efb4ca29bc51fb2bc09a7343d0b107ffd02a03
+b26ffb1c6b1d2b5adb3647d37bdb45420e8a115beadb142e3aeedbcc8d0ecd93
+8777fb9ee661d5db7088e3faf04e91f1865418e2723565fe2617d2d8e106a230
+a2dcb6a4502528d22457a4399cb7f9e4f788a03d6c8b5757cf59267fd86ac4f9
+21675f6da1a90156bbdfa77facf6df331491cd2cde707e509b8e5d03ba1b6781
+eacd2ac3eeabb5f5ac4d0d8f5b10676e7357557c23bd6412c625d7944302c969
+561c704f937fe5304e1704b20352a758d6237e52c4a356a08f9893743a5c20da
+6a817899bb2edbadbf4234e1ece52b9b3f3e29095f0975259c931b67595f0ce0
+db8e4ccd5f6fdfdda07663d252bd05fd4ca58fa54a9fa6acceabd97f2313c59d
+195cbc3bfb55f9050d5e3ec4e42f883635f18d17efb2a0ab333e09c2521705be
+aa147b6717c816e57d38adfb2f4658249a3a345b337251b7537cd305c6424dbf
+b204417f4c36086edaa8da348dc065aa5a7f68a0ad3e3676a7c240e76ddc8786
+96b56cd4e70c28c3009185ae13ad4e96c8522735074ad649cabf39201903e974
+12967a45b574790d727dc68222dff726fd162dbfee4964afbe6549abeead5264
+a033fb29e70f1d17fe58934bfdd5ee6defe6056ea4a0e39a39b7fc1a6da06713
+f952bc20c689bdddb94bd67997f60f31fa6239387089deee5b687455a5c06fa9
+fe941781f0d9835d8d020cc6286c2fb8ed5906eccffacadd71ee0b7c7b67d8c7
+aaa95f9cb24fd22bea989e0e0919a4ea35fac630a9090346da895bb5b6e1c1ba
+ff90f1e16665998ab7612444979edefd96f1f701d13950e0ca2daa7787735fc8
+4b268e36cba6d7de0506dc5353f3d13ad666cba8f8c56e27e44b57873adee581
+fafd1f33a85b6169d4794b1d73940c134f11dfde03ccc5709f6d806cfffdb6fd
+f9361520d0023ac6aa3c93b843d8cd8a652a665eb31d6b75d752e7679a9e1327
+d0adf92820acc78b0793b9f0307c776c201a408a883f99f9d2ade3960b1e62e2
+db5d6ca4115a028f87f77651c95bd71456ba087709827b05a80ff78746cd3c09
+72eec0baa7ebc8a05043e18e63517fb66e333973dfa6bc796af520e8efbae640
+a2f4b94f244d365b76fb3e229726dd7c61478dff4d616cdceaec1ad70d9cefd6
+0e9e6affa41f34b777da7174b3281acda204977bcedb3f5f9f0c5d77607237a6
+9d6780dd18cef875257fd719d237a35864498978239cc0933a9ad0fb8ac74f3d
+869fab0c30e8001a2df0ada8f56de43c5e9a7dc78220720dae05f0fff948adf9
+0e8319eafa3fc8e936c9c040b1498e7eafc36f03bb4cd11a6fed37b7a8d05b1d
+00b5f36799e9556526f5e5f2205dd641ee39a4bd6c8ec20a36473eadfe1a499e
+88284d2fb544b7bdb637868345ae4b3dca6bc0754bad59df4558d2d608faf166
+68daeac6bfb73db431a3146628d371c2d158a1ba65c8d2d47ceec7addae77864
+042ef587a6d6c04dce664bf83492d164d2fc00c1313c220bfdd7a30dede201c5
+1e84d9573c79235a8d847d0a4c231fe009058f5848c775e343c61835c7c8e025
+44dbe77ccfff9e9c950ace49091771604234e586c1335904da22349a847ade3c
+060aec69c2987eb1f3332d8b66e59be53edab3da137d59cc6efa0f579f8a1d03
+882c720c27834570c10bf892f79b30340ead8535881b11171b2040fb6637140b
+e927369f803a4ff311d78d7e68f4b5f8628fdcfa2cc376442d78e6f47cb378eb
+31f079902cd32d6aec688f02a7365b66797de1ea022afec2f3aae36fe01a3e5e
+6cc49c79ca23dc10ed8071eea3a0f8924a0dcc610f842e4e30c1104f859ac970
+06c7490195599c65393be11269c8dd7247c96d632523256f59edeb144329b8da
+b35303c922432e92394a95196dad464e35858f00e6a27320cf515b7b8af90d06
+82e89f09afb605862d14eab6a99218b3f66f11ea2f345629c402bd9aeb25e3e9
+8734a0ca4a814d824ee4ca5383c6eb8ff1458c767dd9b71530c5f01be2d2611c
+f9644c28f3f52ac748749b54eb652f76630e3a62b63a3562a54144c306beddfd
+557e154c7d4931bafe9a9136c3aae071b00e7204150cece0d45e10bd736b633c
+8abf3817168828ba17b23c8ef8ee35119c43cd7fe068e1f016aadc734d4338d7
+8abd60567f307d6ec471f99b03cc7b5e8140dc07f726303c2185590f9f2224c1
+52bf01b038ae1e963098a309edf98ce5ba1ab235e1190ba23732e42841b2bf69
+36560701e1653df36a29c8c3254d402d0140f5ffeda15ded4728c176e3f39c35
+48b5a2be25266587b52bda256f255c940adddbfcaf37ba2500213239f12dc7e0
+0b61230190a4380917962c18effc6774f6db08b799c5966ca7133fadfd7e2b25
+75116286d1c2a40545f973870cbb5cf97691afe304ca7b586f198c426a71dfa8
+cedbe3d94bda4267b9b5ff1454ac7d54f59c5d94588bb274601cee186b9ee892
+5f359ec5bc402442bba33b2663d564461ca130d7f1405b0467027ec1e27bbec4
+8d51c674c81b66ec733c4c57410956520f9c16708aaee0d9ae34f1050f6412c7
+7a23c8c3364dad8e407319772c9b201c49b75dea4685566d9c912acdb47aece3
+f9786e47398891c07b0269e74e2eb935991c9d7a835eb88bc04eb2b195ddeb02
+38dcd1e4bb773e269ad58fa9e2f5482db94a661f065bfafee3ccc1c812e9fac3
+31fd70975e3a0c72d37207d6c90f998103a821c35734f0153950e5f72ff6a8ac
+cb831f57267142dcc4079c915a4d01807fdc883e15a15b67e8cea1ef8d26e4fc
+b55c69418d7a4dcef51473a037050cc43e204fc7de2392905800993bbccaf459
+3bd84187fd1c295d111867930dd068988631f5d0abb9adc48b7ca8134f8a3baf
+3569f5ffbf19291022b3e13fdabbf0ddf64fef601cf97dc70ed2e4355de38f1c
+0ca81966adfc95cf03e794d875025af92bbeaacd9ee58b49c3f0b67d72b13a0a
+971076819781d91814c47a0a3b53f767b7630fb55df3d2706d834b127d56fc95
+b9b30ab934839b8324c9ee0147f0bbec998eb1b2939a2102c59c896b9f57c9b2
+fc138cfd94fd5c512bd83e30e8356e983cceb0de72224f78b3c8a98359e46f22
+c19ab808b70c4287397eade3b28a311244385d3d49fb80adc4f90f32366fcf42
+eaea8d05392164a48f03184563922bcbeb78376f512b9a289325a61c0c357e40
+bb3dbeebf870ec12ef096a8997bb6ec55251ad55bd881ebdda84056556380935
+b0b8eb1f74ef96bf02375a30dc53795da638252a12a2e9bc18bfd7ff5aa7a8f4
+4a6bb4a34f1c94a781a129fc975823bd16a6df7c5d75b7f6dff55ac5f82e3e2f
+572f339f48024e93f0c59fb1fc95bacf7bf5fd7c683c9b159c3b5d937c3a2110
+e78889021ebbbbe76b1f984317d310ea61f7b5cdb4ed1754a35adc9c6924c3e0
+2e3b157261eea5092e0e7a914a259eea2b14192343680a18710db9f82e54c920
+369587bcdeed8f8acb72d2565ca89ea92b6b58bb861012ccab7270200ed5cef3
+9bdc58f4831161e8ce4ef5c6fc839deb8216482d906d60c1a3292de191b40c79
+85529eae01de8fadd442ec8bfa775366070a9e193138a4c6f6eca7ff554c57a0
+19346015d6ed5dfe8b9dd876a207e7247deaa1e42a41c3edccb32d47e5fa97c0
+9bf3f8324a366856d6c6df8f295da2a9164a99b6e66adf4247dd79bbf54525dd
+bcf518651fd8b374cbca6ac532ed443a1c952ce148a67cc655d92b670ab76c64
+cba90089f1d252ab55d93cfd0ec1545e79b65c5337fc57e46ad6ddcf5ca56204
+867e467d3982d77c2e603fee7ec4b57bd8718e5be9203666459815b7428679b2
+134188b7c2c89f64b7426e0dde73f586a7a86a4cc4136bcd5b09b2482aaf3ea2
+6a9c99cdc852ae0a7262b57c06143f1a6528b02cdd69b9fd5edc635873997b4d
+7c5644daa467783e154ad0a787e72bf5a627f712267198d9368b480a4e764627
+b268d7f1500b8e155615bf9e59bedc125774802dcbe33451e222f6a9ba24afc1
+92933742c74822f138baac4bddcfbf447dea77a4e913028db069e802014b5d57
+b0c7d6b7a727742eebb6a7c7a2231c94d63fbe66fa8030f3b378006027ceb4b2
+74d8d75d001c7b4d0225ec9cb04ca7f5e1668b44682847a8b14dda4ecd87fda2
+6b1694a2810f90537c403ff242d0accc8b73fa0088d668fb4fd50c4a0b0aafe3
+0dddc6e893c1bb127147fd1b35254e2ef659f023cd826cbf5e400dfba85f4df9
+f70b30a42df485bf5dd6c620e37c82bedef5841131716bc5eeb40aefec8c0379
+f9348a1d7ad0618a422d85300bc0f4208a5b4baf9dd1f568da943f0023eec988
+21187716ec2104282a7fed77b0c5b01e78d5d9d5d99994a9f232859ce68a62a9
+e6960f557f153d7101dd98b7836d7841d3180be3b34a99d4434af82db181de42
+e7f3fd86d86678ea86c4ea4d0af845955141ca4f9266f3ef69c2ce9b73ae1558
+9dd98a8a0802572fba00fc509918a64f1dcabd06286039e75042d53d472ae66e
+38ecb6e6795e3dd12757255e786909f306fc17d14ed432f5107aac6cc50236b7
+d381ad2c4da239669d94cb276610a846e991f508a75e1a3a851be789b9a3f75b
+f5d7dfde15eadd55e7710d79b5a4127b5e9f85f6bceace031aa9ad412541848d
+59dd3f66886672db5d90f51fd15334eb973e64baa4181186cc3c090b2a5bbb70
+e9e1fd9420a31674e9e517b1dc0196fcb5624668785a65dfa60a0944386beda0
+66e2a3d871913d23001c0b5f22c4136fa48e6fbd636fe0bbc104cba53ecd15b7
+0034db9200070b7924ab31ea318cffc35cb44bbda45e04f64516b48bbaceed37
+56a2aaa5d5c0a2d06f71a5ca689c8c8afc991638fff960d060555d9ee7a13868
+434853e22d4d9aed6231039517aa713e67e7c08467c687a21bfb00e6c99c9b15
+51859fb8f437c77bca2b0fc97a36ee9b552645b83ddcd2ae48049085693c356c
+53b214b9216d5466852340dbb92eadc60bb6225d9c08bb9f5e9f50e40dfb7c12
+2b5126c6e11393d04691831af2707bf11e0c4e887511a59442469df76bc8eb2e
+d2e97d09b6b2f1b533ac64d85d454f57702af92cc88d5ddc46388d6c203ba06a
+f57846d420ef1727d97d964da29018245d91f1e37e3e3f9f04e02d997b0c28fe
+4c99293e87c978606c3a0c7ca1d121c60ac58fad627be407057eae2ebc2074dd
+fd2bd9fb017ad048ead3d1243b7634701508034a934c81a9f63a05b7319676d7
+bb9af94fbe826f84d4149e81b46424e482c8c1c655affecb4393177d768eaa24
+a68a71e4faf578e57865b15f459315a26ddf6e39bd3d16958a3a8cbeab793eaa
+533eaa3d89e78d292fe37f0c23e32abfd50b2c9fba8261331c66458340bb4cd5
+4e7a7cac3df5ca530fbffd93789357877ad2fe127377b899340416d6100e2165
+64c62ed803d484656ef5ff7587902285671f280de39228b9432ba46c3ecbdd23
+46222998ef3c528cec6da555eb72092d97664cf35ea21e31ffb70e8b8102ddf6
+0203d3dddaa7593a8dc0b1c6af796d891e80860e6bba501e4c38dd5c6b5a6f35
+a38ef0c7cd4ab7cce0e17fae913eec2572565070169cce8517c37b21699fe4d3
+58439dcec0066047253d42a74ba564d2fc7ccf34b3b4e77fbac09d950c3c134c
+5671c64b9964c124d123a299d2070826fde61b7f637bf87739e7a0de70ef82af
+c901821eabb31969a27596e9826dd506912d05918ddd2981d5fb153526683f83
+04bbb13678af6d8a65aaae58240688caf7a8419f7bacf078dae7495ab646fc40
+c9004cbabf4c76143e33fe49fed460a102129b9f6cdda0797e53df9b9db99890
+7dc89ecb49ee18cd7556b44b096c9337f6a5618b589c6d7c87ea0f292bb446fe
+c901b120180e3b514e3e7e32e52028a30cfd6879068a68b7ef5db202f575a6f3
+52748c45a3509d747d672b446efd09b0dcab7b3f8808c011a0470eb5c9d8d632
+0f413186fdf227c7f9c45c403ef93db5fb63819de4ca368f1b9387dfb0f039e8
+2c47f56fa0d3073c901393803ae628eba7313821a01b07918efa4d901aca044e
+90d0227813c537cdc2c906e44140bdcb8717e95b7597ad7c01b51b7dac732e65
+fa3870fe8865ae6dbc96b5a984e2e363c4b67a3a07fe4eb42044112ecfff74f4
+09329f03a55e1f57656f88a08e597bfccb97a2b0bc0c26db9aa5bc5f1d1bafa3
+65f32c6ae5de5f798233ed6878583d8335e8988021438e992be94f6b73608413
+b83693b45e539261664f851652bd9458e643bd60628d0acb48a0edd350749e13
+9e480bb10cfb50b4fa0e37348d2f5ebc3e3f3457128b9793ef1359076da9e92d
+e3bbd59ccc0c0327867bd7895a19cb93fdcd6ef8d459ccabadb1e0bc6896b456
+b13cab755da348b349da1b485947a23d05e9bb5dfeb8300f8fef30d7f09d288f
+681ee6e23d21f76f806440680e7913d323a264fd6d69d4be33527e050856f8d7
+20fcf33f81e5021271c2cefd7b1c6a2dc9e207140be0030fd866fb65e33cf5fb
+8879dd70eed5e887537c45d136be8bb191bd9dc4cea400137903a12b66dcd359
+9b6c2e43306759110af0878c8f37c8daf847657c2bd68d5c3ca105b332d18d5e
+03269eedc1ae92f4e45c79915981c1f32b5a39c46c358708460301ca4298bbb4
+5b91e0d45fd1de756c6885545bdf5bce1cd40bb0c92c481a629b0d8dafb6b895
+995c6777d9355af0b03720d3c7456ad60eaa5a80549bb54c0820e000eb30a3e6
+f81c1cdc55b70d902a432d13a233c63ae54f98718d6ddae3c6aabebc65760e59
+d87abb67a5171a4ec2b2377bb5a39f
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F621_0 /AMYDOG+NimbusRomNo9L-ReguItal 1 1
+[ /.notdef/.notdef/fi/fl/.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/exclam/quotedbl/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/less/equal/greater/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/backslash/bracketright/asciicircum/underscore
+  /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/braceleft/bar/braceright/asciitilde/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/bullet/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
+  /currency/copyright/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
+  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
+  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
+  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
+  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
+  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
+  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
+  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
+  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+612 792 false pdfSetup
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+117.435 701.916 Td
+/F116_0 24.7902 Tf
+(bzip2) 63.3638 Tj
+-278 TJm
+(and) 44.077 Tj
+-278 TJm
+(libbzip2,) 99.1856 Tj
+-278 TJm
+(ver) 37.2101 Tj
+15 TJm
+(sion) 50.9687 Tj
+-278 TJm
+(1.0.6) 55.1334 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+90.493 661.631 Td
+/F116_0 20.6585 Tf
+(A) 14.9154 Tj
+-278 TJm
+(pr) 20.6585 Tj
+20 TJm
+(ogram) 63.1324 Tj
+-278 TJm
+(and) 36.7308 Tj
+-278 TJm
+(librar) 51.6669 Tj
+-10 TJm
+(y) 11.4861 Tj
+-278 TJm
+(f) 6.8793 Tj
+20 TJm
+(or) 20.6585 Tj
+-278 TJm
+(data) 42.4739 Tj
+-278 TJm
+(compression) 128.5785 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+207.676 503.285 Td
+/F116_0 11.9552 Tf
+(J) 6.6471 Tj
+20 TJm
+(ulian) 27.9034 Tj
+-278 TJm
+(Se) 14.6212 Tj
+15 TJm
+(war) 20.5988 Tj
+20 TJm
+(d,) 10.6282 Tj
+-278 TJm
+(http://www) 61.103 Tj
+40 TJm
+(.bzip.or) 42.5127 Tj
+15 TJm
+(g) 7.3046 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 2 2
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 709.534 Td
+/F116_0 14.3462 Tf
+(bzip2) 36.6689 Tj
+-489 TJm
+(and) 25.5075 Tj
+-488 TJm
+(libbzip2,) 57.3991 Tj
+-542 TJm
+(ver) 21.5336 Tj
+15 TJm
+(sion) 29.4958 Tj
+-488 TJm
+(1.0.6:) 36.6832 Tj
+-766 TJm
+(A) 10.358 Tj
+-488 TJm
+(pr) 14.3462 Tj
+20 TJm
+(ogram) 43.842 Tj
+-489 TJm
+(and) 25.5075 Tj
+-489 TJm
+(librar) 35.8798 Tj
+-10 TJm
+(y) 7.9765 Tj
+-488 TJm
+(f) 4.7773 Tj
+20 TJm
+(or) 14.3462 Tj
+-489 TJm
+(data) 29.4958 Tj
+72 692.319 Td
+(compression) 89.2907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 680.364 Td
+/F122_0 9.9626 Tf
+(by) 9.9626 Tj
+-250 TJm
+(Julian) 23.8007 Tj
+-250 TJm
+(Se) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(ard) 12.7222 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 663.427 Td
+(V) 7.193 Tj
+111 TJm
+(ersion) 24.3486 Tj
+-250 TJm
+(1.0.6) 19.9252 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(6) 4.9813 Tj
+-250 TJm
+(September) 42.61 Tj
+-250 TJm
+(2010) 19.9252 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 651.472 Td
+(Cop) 16.6077 Tj
+10 TJm
+(yright) 23.8007 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(\251) 7.5716 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(1996-2010) 43.1679 Tj
+-250 TJm
+(Julian) 23.8007 Tj
+-250 TJm
+(Se) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(ard) 12.7222 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 633.938 Td
+/F122_0 7.9701 Tf
+(This) 14.1708 Tj
+-250 TJm
+(program,) 28.9952 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+119.151 633.938 Td
+/F124_0 7.9701 Tf
+(bzip2) 23.9103 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.061 633.938 Td
+/F122_0 7.9701 Tf
+(,) 1.9925 Tj
+-250 TJm
+(the) 9.7395 Tj
+-250 TJm
+(associated) 32.7571 Tj
+-250 TJm
+(library) 21.2483 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.768 633.938 Td
+/F124_0 7.9701 Tf
+(libbzip2) 38.2565 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+255.025 633.938 Td
+/F122_0 7.9701 Tf
+(,) 1.9925 Tj
+-250 TJm
+(and) 11.5088 Tj
+-250 TJm
+(all) 7.9701 Tj
+-250 TJm
+(documentation,) 49.3668 Tj
+-250 TJm
+(are) 9.7315 Tj
+-250 TJm
+(cop) 11.5088 Tj
+10 TJm
+(yright) 19.0406 Tj
+-250 TJm
+(\251) 6.0573 Tj
+-250 TJm
+(1996-2010) 34.5344 Tj
+-250 TJm
+(Julian) 19.0406 Tj
+-250 TJm
+(Se) 7.9701 Tj
+25 TJm
+(w) 5.7544 Tj
+10 TJm
+(ard.) 12.1703 Tj
+-310 TJm
+(All) 10.1858 Tj
+-250 TJm
+(rights) 18.1559 Tj
+-250 TJm
+(reserv) 19.471 Tj
+15 TJm
+(ed.) 9.5163 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 616.404 Td
+(Redistrib) 29.2264 Tj
+20 TJm
+(ution) 16.3865 Tj
+-250 TJm
+(and) 11.5088 Tj
+-250 TJm
+(use) 10.6241 Tj
+-250 TJm
+(in) 6.2007 Tj
+-250 TJm
+(source) 20.802 Tj
+-250 TJm
+(and) 11.5088 Tj
+-250 TJm
+(binary) 20.3636 Tj
+-250 TJm
+(forms,) 20.5868 Tj
+-250 TJm
+(with) 14.1708 Tj
+-250 TJm
+(or) 6.6391 Tj
+-250 TJm
+(without) 24.3566 Tj
+-250 TJm
+(modi\002cation,) 42.2894 Tj
+-250 TJm
+(are) 9.7315 Tj
+-250 TJm
+(permitted) 30.5494 Tj
+-250 TJm
+(pro) 10.6241 Tj
+15 TJm
+(vided) 17.7096 Tj
+-250 TJm
+(that) 11.9552 Tj
+-250 TJm
+(the) 9.7395 Tj
+-250 TJm
+(follo) 15.0555 Tj
+25 TJm
+(wing) 15.9402 Tj
+-250 TJm
+(conditions) 33.2114 Tj
+-250 TJm
+(are) 9.7315 Tj
+-250 TJm
+(met:) 14.1708 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+73.993 590.899 Td
+(\225) 2.7895 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Redistrib) 29.2264 Tj
+20 TJm
+(utions) 19.4869 Tj
+-250 TJm
+(of) 6.6391 Tj
+-250 TJm
+(source) 20.802 Tj
+-250 TJm
+(code) 15.0475 Tj
+-250 TJm
+(must) 15.5018 Tj
+-250 TJm
+(retain) 18.1479 Tj
+-250 TJm
+(the) 9.7395 Tj
+-250 TJm
+(abo) 11.5088 Tj
+15 TJm
+(v) 3.9851 Tj
+15 TJm
+(e) 3.5387 Tj
+-250 TJm
+(cop) 11.5088 Tj
+10 TJm
+(yright) 19.0406 Tj
+-250 TJm
+(notice,) 21.4714 Tj
+-250 TJm
+(this) 11.5168 Tj
+-250 TJm
+(list) 9.7474 Tj
+-250 TJm
+(of) 6.6391 Tj
+-250 TJm
+(conditions) 33.2114 Tj
+-250 TJm
+(and) 11.5088 Tj
+-250 TJm
+(the) 9.7395 Tj
+-250 TJm
+(follo) 15.0555 Tj
+25 TJm
+(wing) 15.9402 Tj
+-250 TJm
+(disclaimer) 33.2034 Tj
+55 TJm
+(.) 1.9925 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+73.993 573.365 Td
+(\225) 2.7895 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The) 12.3935 Tj
+-285 TJm
+(origin) 19.0406 Tj
+-284 TJm
+(of) 6.6391 Tj
+-285 TJm
+(this) 11.5168 Tj
+-285 TJm
+(softw) 17.7096 Tj
+10 TJm
+(are) 9.7315 Tj
+-284 TJm
+(must) 15.5018 Tj
+-285 TJm
+(not) 10.1858 Tj
+-285 TJm
+(be) 7.5238 Tj
+-285 TJm
+(misrepresente) 44.2659 Tj
+1 TJm
+(d;) 6.2007 Tj
+-303 TJm
+(you) 11.9552 Tj
+-284 TJm
+(must) 15.5018 Tj
+-285 TJm
+(not) 10.1858 Tj
+-285 TJm
+(claim) 17.7096 Tj
+-284 TJm
+(that) 11.9552 Tj
+-285 TJm
+(you) 11.9552 Tj
+-285 TJm
+(wrote) 18.1479 Tj
+-284 TJm
+(the) 9.7395 Tj
+-285 TJm
+(original) 24.795 Tj
+-285 TJm
+(softw) 17.7096 Tj
+10 TJm
+(are.) 11.724 Tj
+-828 TJm
+(If) 5.3081 Tj
+-285 TJm
+(you) 11.9552 Tj
+-285 TJm
+(use) 10.6241 Tj
+-284 TJm
+(this) 11.5168 Tj
+-285 TJm
+(softw) 17.7096 Tj
+10 TJm
+(are) 9.7315 Tj
+-285 TJm
+(in) 6.2007 Tj
+-284 TJm
+(a) 3.5387 Tj
+79.97 563.801 Td
+(product,) 26.3412 Tj
+-250 TJm
+(an) 7.5238 Tj
+-250 TJm
+(ackno) 19.0326 Tj
+25 TJm
+(wledgment) 35.4191 Tj
+-250 TJm
+(in) 6.2007 Tj
+-250 TJm
+(the) 9.7395 Tj
+-250 TJm
+(product) 24.3487 Tj
+-250 TJm
+(documentation) 47.3743 Tj
+-250 TJm
+(w) 5.7544 Tj
+10 TJm
+(ould) 14.1708 Tj
+-250 TJm
+(be) 7.5238 Tj
+-250 TJm
+(appreciated) 36.7342 Tj
+-250 TJm
+(b) 3.9851 Tj
+20 TJm
+(ut) 6.2007 Tj
+-250 TJm
+(is) 5.3161 Tj
+-250 TJm
+(not) 10.1858 Tj
+-250 TJm
+(required.) 28.5489 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+73.993 546.267 Td
+(\225) 2.7895 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Altered) 23.9023 Tj
+-250 TJm
+(source) 20.802 Tj
+-250 TJm
+(v) 3.9851 Tj
+15 TJm
+(ersions) 22.5793 Tj
+-250 TJm
+(must) 15.5018 Tj
+-250 TJm
+(be) 7.5238 Tj
+-250 TJm
+(plainly) 22.1409 Tj
+-250 TJm
+(mark) 16.3786 Tj
+10 TJm
+(ed) 7.5238 Tj
+-250 TJm
+(as) 6.6391 Tj
+-250 TJm
+(such,) 16.6017 Tj
+-250 TJm
+(and) 11.5088 Tj
+-250 TJm
+(must) 15.5018 Tj
+-250 TJm
+(not) 10.1858 Tj
+-250 TJm
+(be) 7.5238 Tj
+-250 TJm
+(misrepresented) 48.251 Tj
+-250 TJm
+(as) 6.6391 Tj
+-250 TJm
+(being) 17.7096 Tj
+-250 TJm
+(the) 9.7395 Tj
+-250 TJm
+(original) 24.795 Tj
+-250 TJm
+(softw) 17.7096 Tj
+10 TJm
+(are.) 11.724 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+73.993 528.733 Td
+(\225) 2.7895 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The) 12.3935 Tj
+-250 TJm
+(name) 17.2632 Tj
+-250 TJm
+(of) 6.6391 Tj
+-250 TJm
+(the) 9.7395 Tj
+-250 TJm
+(author) 20.3636 Tj
+-250 TJm
+(may) 13.7245 Tj
+-250 TJm
+(not) 10.1858 Tj
+-250 TJm
+(be) 7.5238 Tj
+-250 TJm
+(used) 14.6092 Tj
+-250 TJm
+(to) 6.2007 Tj
+-250 TJm
+(endorse) 24.787 Tj
+-250 TJm
+(or) 6.6391 Tj
+-250 TJm
+(promote) 26.5643 Tj
+-250 TJm
+(products) 27.449 Tj
+-250 TJm
+(deri) 12.3935 Tj
+25 TJm
+(v) 3.9851 Tj
+15 TJm
+(ed) 7.5238 Tj
+-250 TJm
+(from) 15.4939 Tj
+-250 TJm
+(this) 11.5168 Tj
+-250 TJm
+(softw) 17.7096 Tj
+10 TJm
+(are) 9.7315 Tj
+-250 TJm
+(without) 24.3566 Tj
+-250 TJm
+(speci\002c) 24.3487 Tj
+-250 TJm
+(prior) 15.4939 Tj
+-250 TJm
+(written) 22.5793 Tj
+-250 TJm
+(permission.) 36.9733 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 511.198 Td
+(THIS) 17.7096 Tj
+-401 TJm
+(SOFTW) 27.0107 Tj
+120 TJm
+(ARE) 15.9402 Tj
+-401 TJm
+(IS) 7.0854 Tj
+-400 TJm
+(PR) 9.7474 Tj
+40 TJm
+(O) 5.7544 Tj
+50 TJm
+(VIDED) 24.787 Tj
+-401 TJm
+(BY) 11.0705 Tj
+-401 TJm
+(THE) 15.4939 Tj
+-401 TJm
+(A) 5.7544 Tj
+55 TJm
+(UTHOR) 27.449 Tj
+-401 TJm
+("AS) 13.4376 Tj
+-401 TJm
+(IS") 10.3372 Tj
+-401 TJm
+(AND) 17.2632 Tj
+-400 TJm
+(ANY) 17.2632 Tj
+-401 TJm
+(EXPRESS) 34.1041 Tj
+-401 TJm
+(OR) 11.0705 Tj
+-401 TJm
+(IMPLIED) 32.3188 Tj
+-401 TJm
+(W) 7.5238 Tj
+120 TJm
+(ARRANTIES,) 46.7128 Tj
+-401 TJm
+(INCLUDING,) 46.2585 Tj
+-401 TJm
+(B) 5.3161 Tj
+11 TJm
+(UT) 10.6241 Tj
+72 501.634 Td
+(NO) 11.5088 Tj
+40 TJm
+(T) 4.8697 Tj
+-304 TJm
+(LIMITED) 32.7571 Tj
+-304 TJm
+(T) 4.8697 Tj
+18 TJm
+(O,) 7.7469 Tj
+-305 TJm
+(THE) 15.4939 Tj
+-304 TJm
+(IMPLIED) 32.3188 Tj
+-304 TJm
+(W) 7.5238 Tj
+120 TJm
+(ARRANTIES) 44.7202 Tj
+-304 TJm
+(OF) 10.1858 Tj
+-304 TJm
+(MERCHANT) 44.7202 Tj
+93 TJm
+(ABILITY) 31.8724 Tj
+-304 TJm
+(AND) 17.2632 Tj
+-305 TJm
+(FITNESS) 31.442 Tj
+-304 TJm
+(FOR) 15.5018 Tj
+-304 TJm
+(A) 5.7544 Tj
+-304 TJm
+(P) 4.4314 Tj
+92 TJm
+(AR) 11.0705 Tj
+60 TJm
+(TICULAR) 34.5344 Tj
+-304 TJm
+(PURPOSE) 34.9887 Tj
+-304 TJm
+(ARE) 15.9402 Tj
+-305 TJm
+(DIS) 12.8398 Tj
+1 TJm
+(-) 2.654 Tj
+72 492.07 Td
+(CLAIMED.) 38.2963 Tj
+-576 TJm
+(IN) 8.4085 Tj
+-287 TJm
+(NO) 11.5088 Tj
+-288 TJm
+(EVENT) 26.118 Tj
+-288 TJm
+(SHALL) 25.6797 Tj
+-288 TJm
+(THE) 15.4939 Tj
+-287 TJm
+(A) 5.7544 Tj
+55 TJm
+(UTHOR) 27.449 Tj
+-288 TJm
+(BE) 10.1858 Tj
+-288 TJm
+(LIABLE) 28.3337 Tj
+-288 TJm
+(FOR) 15.5018 Tj
+-288 TJm
+(ANY) 17.2632 Tj
+-287 TJm
+(DIRECT) 28.78 Tj
+74 TJm
+(,) 1.9925 Tj
+-288 TJm
+(INDIRECT) 37.1885 Tj
+74 TJm
+(,) 1.9925 Tj
+-288 TJm
+(INCIDENT) 37.6268 Tj
+93 TJm
+(AL,) 12.6167 Tj
+-288 TJm
+(SPECIAL,) 34.3193 Tj
+-288 TJm
+(EXEMPLAR) 42.9509 Tj
+65 TJm
+(Y) 5.7544 Tj
+129 TJm
+(,) 1.9925 Tj
+72 482.506 Td
+(OR) 11.0705 Tj
+-299 TJm
+(CONSEQ) 31.8804 Tj
+10 TJm
+(UENTIAL) 34.5265 Tj
+-300 TJm
+(D) 5.7544 Tj
+40 TJm
+(AMA) 18.5942 Tj
+40 TJm
+(GES) 15.0555 Tj
+-299 TJm
+(\(INCLUDING,) 48.9125 Tj
+-299 TJm
+(B) 5.3161 Tj
+10 TJm
+(UT) 10.6241 Tj
+-299 TJm
+(NO) 11.5088 Tj
+40 TJm
+(T) 4.8697 Tj
+-300 TJm
+(LIMITED) 32.7571 Tj
+-299 TJm
+(T) 4.8697 Tj
+18 TJm
+(O,) 7.7469 Tj
+-299 TJm
+(PR) 9.7474 Tj
+40 TJm
+(OCUREMENT) 49.59 Tj
+-299 TJm
+(OF) 10.1858 Tj
+-300 TJm
+(SUBSTITUTE) 47.8206 Tj
+-299 TJm
+(GOODS) 27.449 Tj
+-299 TJm
+(OR) 11.0705 Tj
+-300 TJm
+(SER) 14.6172 Tj
+80 TJm
+(VICES) 23.0256 Tj
+1 TJm
+(;) 2.2157 Tj
+72 472.942 Td
+(LOSS) 19.4869 Tj
+-360 TJm
+(OF) 10.1858 Tj
+-360 TJm
+(USE,) 17.048 Tj
+-360 TJm
+(D) 5.7544 Tj
+40 TJm
+(A) 5.7544 Tj
+111 TJm
+(T) 4.8697 Tj
+93 TJm
+(A,) 7.7469 Tj
+-360 TJm
+(OR) 11.0705 Tj
+-359 TJm
+(PR) 9.7474 Tj
+40 TJm
+(OFITS;) 24.3566 Tj
+-360 TJm
+(OR) 11.0705 Tj
+-360 TJm
+(B) 5.3161 Tj
+10 TJm
+(USINESS) 32.3267 Tj
+-360 TJm
+(INTERR) 28.78 Tj
+40 TJm
+(UPTION\)) 31.8724 Tj
+-360 TJm
+(HO) 11.5088 Tj
+35 TJm
+(WEVER) 28.3337 Tj
+-360 TJm
+(CA) 11.0705 Tj
+55 TJm
+(USED) 20.8099 Tj
+-359 TJm
+(AND) 17.2632 Tj
+-360 TJm
+(ON) 11.5088 Tj
+-360 TJm
+(ANY) 17.2632 Tj
+-360 TJm
+(THEOR) 26.5643 Tj
+65 TJm
+(Y) 5.7544 Tj
+-360 TJm
+(OF) 10.1858 Tj
+-360 TJm
+(LIABI) 21.2483 Tj
+1 TJm
+(LITY) 18.1479 Tj
+128 TJm
+(,) 1.9925 Tj
+72 463.378 Td
+(WHETHER) 38.9578 Tj
+-247 TJm
+(IN) 8.4085 Tj
+-247 TJm
+(CONTRA) 32.7651 Tj
+40 TJm
+(CT) 10.1858 Tj
+74 TJm
+(,) 1.9925 Tj
+-247 TJm
+(STRICT) 27.457 Tj
+-247 TJm
+(LIABILITY) 39.3962 Tj
+129 TJm
+(,) 1.9925 Tj
+-247 TJm
+(O) 5.7544 Tj
+1 TJm
+(R) 5.3161 Tj
+-247 TJm
+(T) 4.8697 Tj
+18 TJm
+(OR) 11.0705 Tj
+60 TJm
+(T) 4.8697 Tj
+-247 TJm
+(\(INCLUDING) 46.92 Tj
+-247 TJm
+(NEGLIGENCE) 50.4667 Tj
+-247 TJm
+(OR) 11.0705 Tj
+-247 TJm
+(O) 5.7544 Tj
+40 TJm
+(THER) 20.8099 Tj
+55 TJm
+(WISE\)) 22.133 Tj
+-247 TJm
+(ARISING) 32.3188 Tj
+-247 TJm
+(IN) 8.4085 Tj
+-247 TJm
+(ANY) 17.2632 Tj
+-247 TJm
+(W) 7.5238 Tj
+120 TJm
+(A) 5.7544 Tj
+105 TJm
+(Y) 5.7544 Tj
+-247 TJm
+(OUT) 16.3786 Tj
+72 453.814 Td
+(OF) 10.1858 Tj
+-250 TJm
+(THE) 15.4939 Tj
+-250 TJm
+(USE) 15.0555 Tj
+-250 TJm
+(OF) 10.1858 Tj
+-250 TJm
+(THIS) 17.7096 Tj
+-250 TJm
+(SOFTW) 27.0107 Tj
+120 TJm
+(ARE,) 17.9327 Tj
+-250 TJm
+(EVEN) 21.2483 Tj
+-250 TJm
+(IF) 7.0854 Tj
+-250 TJm
+(AD) 11.5088 Tj
+40 TJm
+(VISED) 23.464 Tj
+-250 TJm
+(OF) 10.1858 Tj
+-250 TJm
+(THE) 15.4939 Tj
+-250 TJm
+(POSSIBILITY) 47.8206 Tj
+-250 TJm
+(OF) 10.1858 Tj
+-250 TJm
+(SUCH) 21.2563 Tj
+-250 TJm
+(D) 5.7544 Tj
+40 TJm
+(AMA) 18.5942 Tj
+40 TJm
+(GE.) 12.6167 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 436.279 Td
+(P) 4.4314 Tj
+92 TJm
+(A) 5.7544 Tj
+111 TJm
+(TENTS:) 27.0107 Tj
+-296 TJm
+(T) 4.8697 Tj
+80 TJm
+(o) 3.9851 Tj
+-295 TJm
+(the) 9.7395 Tj
+-296 TJm
+(best) 12.8398 Tj
+-295 TJm
+(of) 6.6391 Tj
+-296 TJm
+(my) 10.1858 Tj
+-295 TJm
+(kno) 11.9552 Tj
+25 TJm
+(wledge,) 25.0102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+208.544 436.279 Td
+/F124_0 7.9701 Tf
+(bzip2) 23.9103 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.81 436.279 Td
+/F122_0 7.9701 Tf
+(and) 11.5088 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+248.674 436.279 Td
+/F124_0 7.9701 Tf
+(libbzip2) 38.2565 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+289.286 436.279 Td
+/F122_0 7.9701 Tf
+(do) 7.9701 Tj
+-296 TJm
+(not) 10.1858 Tj
+-295 TJm
+(use) 10.6241 Tj
+-296 TJm
+(an) 7.5238 Tj
+15 TJm
+(y) 3.9851 Tj
+-295 TJm
+(patented) 27.0027 Tj
+-296 TJm
+(algorithms.) 36.0886 Tj
+-893 TJm
+(Ho) 9.7395 Tj
+25 TJm
+(we) 9.2931 Tj
+25 TJm
+(v) 3.9851 Tj
+15 TJm
+(er) 6.1928 Tj
+40 TJm
+(,) 1.9925 Tj
+-307 TJm
+(I) 2.654 Tj
+-295 TJm
+(do) 7.9701 Tj
+-296 TJm
+(not) 10.1858 Tj
+-295 TJm
+(ha) 7.5238 Tj
+20 TJm
+(v) 3.9851 Tj
+15 TJm
+(e) 3.5387 Tj
+-296 TJm
+(the) 9.7395 Tj
+-295 TJm
+(resources) 30.0951 Tj
+-296 TJm
+(to) 6.2007 Tj
+72 426.715 Td
+(carry) 16.3706 Tj
+-250 TJm
+(out) 10.1858 Tj
+-250 TJm
+(a) 3.5387 Tj
+-250 TJm
+(patent) 19.4789 Tj
+-250 TJm
+(search.) 22.3482 Tj
+-620 TJm
+(Therefore) 31.4181 Tj
+-250 TJm
+(I) 2.654 Tj
+-250 TJm
+(cannot) 21.2483 Tj
+-250 TJm
+(gi) 6.2007 Tj
+25 TJm
+(v) 3.9851 Tj
+15 TJm
+(e) 3.5387 Tj
+-250 TJm
+(an) 7.5238 Tj
+15 TJm
+(y) 3.9851 Tj
+-250 TJm
+(guarantee) 30.9798 Tj
+-250 TJm
+(of) 6.6391 Tj
+-250 TJm
+(the) 9.7395 Tj
+-250 TJm
+(abo) 11.5088 Tj
+15 TJm
+(v) 3.9851 Tj
+15 TJm
+(e) 3.5387 Tj
+-250 TJm
+(statement.) 32.5419 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 3 3
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 707.441 Td
+/F116_0 17.2154 Tf
+(T) 10.5186 Tj
+80 TJm
+(ab) 20.0904 Tj
+10 TJm
+(le) 14.3576 Tj
+-278 TJm
+(of) 16.2513 Tj
+-278 TJm
+(Contents) 74.5943 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 686.878 Td
+/F122_0 9.9626 Tf
+(1.) 7.472 Tj
+-310 TJm
+(Introduction) 49.2551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.733 686.878 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 686.878 Td
+/F122_0 9.9626 Tf
+(1) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 674.923 Td
+(2.) 7.472 Tj
+-310 TJm
+(Ho) 12.1743 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(bzip2) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+167.054 674.923 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 674.923 Td
+/F122_0 9.9626 Tf
+(2) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 662.968 Td
+(2.1.) 14.9439 Tj
+-310 TJm
+(N) 7.193 Tj
+35 TJm
+(AME) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+132.691 662.968 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 662.968 Td
+/F122_0 9.9626 Tf
+(2) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 651.013 Td
+(2.2.) 14.9439 Tj
+-310 TJm
+(SYNOPSIS) 47.0534 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+150.582 651.013 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 651.013 Td
+/F122_0 9.9626 Tf
+(2) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 639.058 Td
+(2.3.) 14.9439 Tj
+-310 TJm
+(DESCRIPTION) 64.7569 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+168.29 639.058 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 639.058 Td
+/F122_0 9.9626 Tf
+(3) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 627.103 Td
+(2.4.) 14.9439 Tj
+-310 TJm
+(OPTIONS) 42.0621 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.873 627.103 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 627.103 Td
+/F122_0 9.9626 Tf
+(4) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 615.147 Td
+(2.5.) 14.9439 Tj
+-310 TJm
+(MEMOR) 37.6387 Tj
+65 TJm
+(Y) 7.193 Tj
+-250 TJm
+(MAN) 23.2427 Tj
+35 TJm
+(A) 7.193 Tj
+40 TJm
+(GEMENT) 41.5042 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.412 615.147 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 615.147 Td
+/F122_0 9.9626 Tf
+(5) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 603.192 Td
+(2.6.) 14.9439 Tj
+-310 TJm
+(RECO) 26.5703 Tj
+50 TJm
+(VERING) 37.6287 Tj
+-250 TJm
+(D) 7.193 Tj
+40 TJm
+(A) 7.193 Tj
+111 TJm
+(T) 6.0871 Tj
+93 TJm
+(A) 7.193 Tj
+-250 TJm
+(FR) 12.1843 Tj
+40 TJm
+(OM) 16.0497 Tj
+-250 TJm
+(D) 7.193 Tj
+40 TJm
+(AMA) 23.2427 Tj
+40 TJm
+(GED) 20.4731 Tj
+-250 TJm
+(FILES) 26.5703 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+308.464 603.192 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 603.192 Td
+/F122_0 9.9626 Tf
+(6) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 591.237 Td
+(2.7.) 14.9439 Tj
+-310 TJm
+(PERFORMANCE) 73.6236 Tj
+-250 TJm
+(NO) 14.386 Tj
+40 TJm
+(TES) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+211.958 591.237 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 591.237 Td
+/F122_0 9.9626 Tf
+(6) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 579.282 Td
+(2.8.) 14.9439 Tj
+-310 TJm
+(CA) 13.8381 Tj
+135 TJm
+(VEA) 20.4731 Tj
+111 TJm
+(TS) 11.6264 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+148.799 579.282 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 579.282 Td
+/F122_0 9.9626 Tf
+(7) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 567.327 Td
+(2.9.) 14.9439 Tj
+-310 TJm
+(A) 7.193 Tj
+55 TJm
+(UTHOR) 34.3112 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.32 567.327 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 567.327 Td
+/F122_0 9.9626 Tf
+(7) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 555.372 Td
+(3.) 7.472 Tj
+-310 TJm
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+160.049 555.372 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+224.856 555.372 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 555.372 Td
+/F122_0 9.9626 Tf
+(8) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 543.416 Td
+(3.1.) 14.9439 Tj
+-310 TJm
+(T) 6.0871 Tj
+80 TJm
+(op-le) 20.4731 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(structure) 34.8591 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+179.997 543.416 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 543.416 Td
+/F122_0 9.9626 Tf
+(8) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 531.461 Td
+(3.1.1.) 22.4159 Tj
+-310 TJm
+(Lo) 11.0684 Tj
+25 TJm
+(w-le) 17.7035 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(summary) 37.0808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+192.866 531.461 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 531.461 Td
+/F122_0 9.9626 Tf
+(9) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 519.506 Td
+(3.1.2.) 22.4159 Tj
+-310 TJm
+(High-le) 30.4357 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(summary) 37.0808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+193.822 519.506 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 519.506 Td
+/F122_0 9.9626 Tf
+(9) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 507.551 Td
+(3.1.3.) 22.4159 Tj
+-310 TJm
+(Utility) 26.0223 Tj
+-250 TJm
+(functions) 37.0808 Tj
+-250 TJm
+(summary) 37.0808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.582 507.551 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 507.551 Td
+/F122_0 9.9626 Tf
+(9) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 495.596 Td
+(3.2.) 14.9439 Tj
+-310 TJm
+(Error) 21.0211 Tj
+-250 TJm
+(handling) 34.8691 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.611 495.596 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 495.596 Td
+/F122_0 9.9626 Tf
+(10) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 483.64 Td
+(3.3.) 14.9439 Tj
+-310 TJm
+(Lo) 11.0684 Tj
+25 TJm
+(w-le) 17.7035 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace) 13.2702 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+181.045 483.64 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 483.64 Td
+/F122_0 9.9626 Tf
+(11) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 471.685 Td
+(3.3.1.) 22.4159 Tj
+-310 TJm
+(BZ2_bzCompressInit) 85.7879 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+197.762 471.685 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 471.685 Td
+/F122_0 9.9626 Tf
+(11) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 459.73 Td
+(3.3.2.) 22.4159 Tj
+-310 TJm
+(BZ2_bzCompress) 71.9499 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+184.201 459.73 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 459.73 Td
+/F122_0 9.9626 Tf
+(13) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 447.775 Td
+(3.3.3.) 22.4159 Tj
+-310 TJm
+(BZ2_bzCompressEnd) 87.9996 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+198.868 447.775 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 447.775 Td
+/F122_0 9.9626 Tf
+(16) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 435.82 Td
+(3.3.4.) 22.4159 Tj
+-310 TJm
+(BZ2_bzDecompressInit) 95.1827 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+206.887 435.82 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 435.82 Td
+/F122_0 9.9626 Tf
+(16) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 423.865 Td
+(3.3.5.) 22.4159 Tj
+-310 TJm
+(BZ2_bzDecompress) 81.3446 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+193.326 423.865 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 423.865 Td
+/F122_0 9.9626 Tf
+(17) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 411.909 Td
+(3.3.6.) 22.4159 Tj
+-310 TJm
+(BZ2_bzDecompressEnd) 97.3944 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.207 411.909 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 411.909 Td
+/F122_0 9.9626 Tf
+(18) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 399.954 Td
+(3.4.) 14.9439 Tj
+-310 TJm
+(High-le) 30.4357 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace) 13.2702 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+184.216 399.954 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 399.954 Td
+/F122_0 9.9626 Tf
+(18) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 387.999 Td
+(3.4.1.) 22.4159 Tj
+-310 TJm
+(BZ2_bzReadOpen) 74.1516 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+185.302 387.999 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 387.999 Td
+/F122_0 9.9626 Tf
+(19) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 376.044 Td
+(3.4.2.) 22.4159 Tj
+-310 TJm
+(BZ2_bzRead) 52.5726 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+163.443 376.044 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 376.044 Td
+/F122_0 9.9626 Tf
+(20) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 364.089 Td
+(3.4.3.) 22.4159 Tj
+-310 TJm
+(BZ2_bzReadGetUnused) 97.3944 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.207 364.089 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 364.089 Td
+/F122_0 9.9626 Tf
+(21) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 352.134 Td
+(3.4.4.) 22.4159 Tj
+-310 TJm
+(BZ2_bzReadClose) 75.2674 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.074 352.134 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 352.134 Td
+/F122_0 9.9626 Tf
+(22) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 340.178 Td
+(3.4.5.) 22.4159 Tj
+-310 TJm
+(BZ2_bzWriteOpen) 76.3633 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.622 340.178 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 340.178 Td
+/F122_0 9.9626 Tf
+(22) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 328.223 Td
+(3.4.6.) 22.4159 Tj
+-310 TJm
+(BZ2_bzWrite) 54.7843 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.763 328.223 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 328.223 Td
+/F122_0 9.9626 Tf
+(23) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 316.268 Td
+(3.4.7.) 22.4159 Tj
+-310 TJm
+(BZ2_bzWriteClose) 77.4791 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.179 316.268 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 316.268 Td
+/F122_0 9.9626 Tf
+(23) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 304.313 Td
+(3.4.8.) 22.4159 Tj
+-310 TJm
+(Handling) 37.0808 Tj
+-250 TJm
+(embedded) 40.9463 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(streams) 30.4357 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.601 304.313 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 304.313 Td
+/F122_0 9.9626 Tf
+(24) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 292.358 Td
+(3.4.9.) 22.4159 Tj
+-310 TJm
+(Standard) 35.417 Tj
+-250 TJm
+(\002le-reading/writing) 77.4791 Tj
+-250 TJm
+(code) 18.8094 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+247.564 292.358 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 292.358 Td
+/F122_0 9.9626 Tf
+(25) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 280.403 Td
+(3.5.) 14.9439 Tj
+-310 TJm
+(Utility) 26.0223 Tj
+-250 TJm
+(functions) 37.0808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+170.645 280.403 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 280.403 Td
+/F122_0 9.9626 Tf
+(26) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 268.447 Td
+(3.5.1.) 22.4159 Tj
+-310 TJm
+(BZ2_bzBuf) 47.0434 Tj
+25 TJm
+(fT) 9.4047 Tj
+80 TJm
+(oBuf) 19.9252 Tj
+25 TJm
+(fCompress) 43.1679 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+229.488 268.447 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 268.447 Td
+/F122_0 9.9626 Tf
+(26) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 256.492 Td
+(3.5.2.) 22.4159 Tj
+-310 TJm
+(BZ2_bzBuf) 47.0434 Tj
+25 TJm
+(fT) 9.4047 Tj
+80 TJm
+(oBuf) 19.9252 Tj
+25 TJm
+(fDecompress) 52.5627 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+238.613 256.492 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 256.492 Td
+/F122_0 9.9626 Tf
+(27) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 244.537 Td
+(3.6.) 14.9439 Tj
+-310 TJm
+(zlib) 14.9439 Tj
+-250 TJm
+(compatibility) 53.1405 Tj
+-250 TJm
+(functions) 37.0808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+215.06 244.537 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 244.537 Td
+/F122_0 9.9626 Tf
+(28) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 232.582 Td
+(3.7.) 14.9439 Tj
+-310 TJm
+(Using) 23.8007 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(library) 26.5603 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(stdio-free) 38.1767 Tj
+-250 TJm
+(en) 9.4047 Tj
+40 TJm
+(vironment) 40.9562 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+282.092 232.582 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 232.582 Td
+/F122_0 9.9626 Tf
+(28) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 220.627 Td
+(3.7.1.) 22.4159 Tj
+-310 TJm
+(Getting) 29.8878 Tj
+-250 TJm
+(rid) 11.0684 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(stdio) 19.3773 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.492 220.627 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 220.627 Td
+/F122_0 9.9626 Tf
+(29) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 208.671 Td
+(3.7.2.) 22.4159 Tj
+-310 TJm
+(Critical) 29.8878 Tj
+-250 TJm
+(error) 19.3573 Tj
+-250 TJm
+(handling) 34.8691 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+201.629 208.671 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 208.671 Td
+/F122_0 9.9626 Tf
+(29) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 196.716 Td
+(3.8.) 14.9439 Tj
+-310 TJm
+(Making) 30.9936 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(W) 9.4047 Tj
+40 TJm
+(indo) 17.7135 Tj
+25 TJm
+(ws) 11.0684 Tj
+-250 TJm
+(DLL) 19.3673 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.243 196.716 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 196.716 Td
+/F122_0 9.9626 Tf
+(29) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 184.761 Td
+(4.) 7.472 Tj
+-310 TJm
+(Miscellanea) 48.1393 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+144.898 184.761 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 184.761 Td
+/F122_0 9.9626 Tf
+(31) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 172.806 Td
+(4.1.) 14.9439 Tj
+-310 TJm
+(Limitations) 45.9475 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(format) 26.5603 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+269.154 172.806 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 172.806 Td
+/F122_0 9.9626 Tf
+(31) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 160.851 Td
+(4.2.) 14.9439 Tj
+-310 TJm
+(Portability) 42.0721 Tj
+-250 TJm
+(issues) 23.8007 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.03 160.851 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 160.851 Td
+/F122_0 9.9626 Tf
+(32) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 148.896 Td
+(4.3.) 14.9439 Tj
+-310 TJm
+(Reporting) 39.8504 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ugs) 13.8381 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.115 148.896 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 148.896 Td
+/F122_0 9.9626 Tf
+(32) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 136.94 Td
+(4.4.) 14.9439 Tj
+-310 TJm
+(Did) 14.9439 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(get) 12.1743 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(right) 18.8194 Tj
+-250 TJm
+(package?) 37.0609 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+229.109 136.94 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 136.94 Td
+/F122_0 9.9626 Tf
+(33) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 124.985 Td
+(4.5.) 14.9439 Tj
+-310 TJm
+(Further) 29.3299 Tj
+-250 TJm
+(Reading) 33.2053 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+170.361 124.985 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 124.985 Td
+/F122_0 9.9626 Tf
+(34) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+536.068 50.852 Td
+(iii) 8.3088 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 1 4
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 701.916 Td
+/F116_0 24.7902 Tf
+(1.) 20.675 Tj
+-278 TJm
+(Intr) 39.937 Tj
+20 TJm
+(oduction) 104.6642 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 679.998 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.507 679.998 Td
+/F122_0 9.9626 Tf
+(compresses) 45.9276 Tj
+-263 TJm
+(\002les) 16.6077 Tj
+-263 TJm
+(using) 21.589 Tj
+-263 TJm
+(the) 12.1743 Tj
+-262 TJm
+(Burro) 23.2427 Tj
+25 TJm
+(ws-Wheeler) 48.1293 Tj
+-263 TJm
+(block-sorting) 53.1305 Tj
+-263 TJm
+(te) 7.193 Tj
+15 TJm
+(xt) 7.7509 Tj
+-263 TJm
+(compression) 50.3609 Tj
+-263 TJm
+(algorithm,) 41.2352 Tj
+-266 TJm
+(and) 14.386 Tj
+-263 TJm
+(Huf) 15.4918 Tj
+25 TJm
+(fman) 20.4731 Tj
+-263 TJm
+(coding.) 29.6088 Tj
+72 668.043 Td
+(Compression) 52.5826 Tj
+-203 TJm
+(is) 6.6451 Tj
+-204 TJm
+(generally) 37.0708 Tj
+-203 TJm
+(considerably) 50.9089 Tj
+-203 TJm
+(better) 22.6848 Tj
+-204 TJm
+(t) 2.7696 Tj
+1 TJm
+(han) 14.386 Tj
+-204 TJm
+(that) 14.9439 Tj
+-203 TJm
+(achie) 21.0211 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ed) 9.4047 Tj
+-203 TJm
+(by) 9.9626 Tj
+-204 TJm
+(more) 20.4731 Tj
+-203 TJm
+(con) 14.386 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(entional) 32.0995 Tj
+-203 TJm
+(LZ77/LZ78-based) 73.0458 Tj
+-204 TJm
+(compressors,) 52.2937 Tj
+72 656.087 Td
+(and) 14.386 Tj
+-250 TJm
+(approaches) 44.8118 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(performance) 50.341 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(PPM) 19.9352 Tj
+-250 TJm
+(f) 3.3175 Tj
+10 TJm
+(amily) 22.6948 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(statistical) 37.6387 Tj
+-250 TJm
+(compressors.) 52.2937 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 634.17 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+105.074 634.17 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-320 TJm
+(b) 4.9813 Tj
+20 TJm
+(uilt) 13.2901 Tj
+-319 TJm
+(on) 9.9626 Tj
+-320 TJm
+(top) 12.7322 Tj
+-320 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.712 634.17 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+224.533 634.17 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-337 TJm
+(a) 4.4234 Tj
+-320 TJm
+(\003e) 9.9626 Tj
+15 TJm
+(xible) 19.9252 Tj
+-320 TJm
+(library) 26.5603 Tj
+-319 TJm
+(for) 11.6164 Tj
+-320 TJm
+(handling) 34.8691 Tj
+-320 TJm
+(compressed) 47.0334 Tj
+-320 TJm
+(data) 16.5977 Tj
+-319 TJm
+(in) 7.7509 Tj
+-320 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+449.816 634.17 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+482.889 634.17 Td
+/F122_0 9.9626 Tf
+(format.) 29.0509 Tj
+-1039 TJm
+(This) 17.7135 Tj
+72 622.214 Td
+(manual) 29.3299 Tj
+-316 TJm
+(describes) 37.0708 Tj
+-316 TJm
+(both) 17.7135 Tj
+-317 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-316 TJm
+(to) 7.7509 Tj
+-316 TJm
+(use) 13.2801 Tj
+-316 TJm
+(the) 12.1743 Tj
+-316 TJm
+(program) 33.7533 Tj
+-316 TJm
+(and) 14.386 Tj
+-317 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-316 TJm
+(to) 7.7509 Tj
+-316 TJm
+(w) 7.193 Tj
+10 TJm
+(ork) 13.2801 Tj
+-316 TJm
+(with) 17.7135 Tj
+-316 TJm
+(the) 12.1743 Tj
+-317 TJm
+(library) 26.5603 Tj
+-316 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace.) 15.7608 Tj
+-1017 TJm
+(Most) 20.4831 Tj
+-316 TJm
+(of) 8.2988 Tj
+-316 TJm
+(the) 12.1743 Tj
+-317 TJm
+(manual) 29.3299 Tj
+-316 TJm
+(is) 6.6451 Tj
+72 610.259 Td
+(de) 9.4047 Tj
+25 TJm
+(v) 4.9813 Tj
+20 TJm
+(oted) 17.1556 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(this) 14.396 Tj
+-250 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+-250 TJm
+(not) 12.7322 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(program,) 36.2439 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(good) 19.9252 Tj
+-250 TJm
+(ne) 9.4047 Tj
+25 TJm
+(ws) 11.0684 Tj
+-250 TJm
+(if) 6.0871 Tj
+-250 TJm
+(your) 18.2614 Tj
+-250 TJm
+(interest) 29.3299 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(only) 17.7135 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(program.) 36.2439 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 578.379 Td
+(\225) 3.4869 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-450 TJm
+(Ho) 12.1743 Tj
+25 TJm
+(w) 7.193 Tj
+-278 TJm
+(to) 7.7509 Tj
+-278 TJm
+(use) 13.2801 Tj
+-277 TJm
+(bzip2) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-278 TJm
+([2]) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-278 TJm
+(describes) 37.0708 Tj
+-278 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-278 TJm
+(to) 7.7509 Tj
+-278 TJm
+(use) 13.2801 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+256.282 578.379 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+286.17 578.379 Td
+/F122_0 9.9626 Tf
+(;) 2.7696 Tj
+-292 TJm
+(this) 14.396 Tj
+-278 TJm
+(is) 6.6451 Tj
+-277 TJm
+(the) 12.1743 Tj
+-278 TJm
+(only) 17.7135 Tj
+-278 TJm
+(part) 15.4918 Tj
+-278 TJm
+(you) 14.9439 Tj
+-278 TJm
+(need) 18.8094 Tj
+-278 TJm
+(to) 7.7509 Tj
+-277 TJm
+(read) 17.1456 Tj
+-278 TJm
+(if) 6.0871 Tj
+-278 TJm
+(you) 14.9439 Tj
+-278 TJm
+(just) 14.396 Tj
+-278 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-277 TJm
+(to) 7.7509 Tj
+-278 TJm
+(kno) 14.9439 Tj
+25 TJm
+(w) 7.193 Tj
+81.963 566.424 Td
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(operate) 29.3199 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(program.) 36.2439 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 544.506 Td
+(\225) 3.4869 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-450 TJm
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+-250 TJm
+(libbzip2) 32.6574 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+([8]) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(describes) 37.0708 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(programming) 54.2364 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(aces) 17.1456 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(detail,) 24.6275 Tj
+-250 TJm
+(and) 14.386 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 522.588 Td
+(\225) 3.4869 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-450 TJm
+(Miscellanea) 48.1393 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+([31]) 16.5977 Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(records) 29.3199 Tj
+-250 TJm
+(some) 21.031 Tj
+-250 TJm
+(miscellaneous) 56.4481 Tj
+-250 TJm
+(notes) 21.031 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(I) 3.3175 Tj
+-250 TJm
+(thought) 30.4457 Tj
+-250 TJm
+(ought) 22.6948 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(recorded) 34.8492 Tj
+-250 TJm
+(some) 21.031 Tj
+25 TJm
+(where.) 26.8293 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.852 Td
+(1) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 2 5
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 701.916 Td
+/F116_0 24.7902 Tf
+(2.) 20.675 Tj
+-278 TJm
+(Ho) 33.0453 Tj
+15 TJm
+(w) 19.2868 Tj
+-278 TJm
+(to) 23.4019 Tj
+-278 TJm
+(use) 42.7135 Tj
+-278 TJm
+(bzip2) 63.3638 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 656.35 Td
+/F116_0 17.2154 Tf
+(T) 10.5186 Tj
+80 TJm
+(ab) 20.0904 Tj
+10 TJm
+(le) 14.3576 Tj
+-278 TJm
+(of) 16.2513 Tj
+-278 TJm
+(Contents) 74.5943 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 635.788 Td
+/F122_0 9.9626 Tf
+(2.1.) 14.9439 Tj
+-310 TJm
+(N) 7.193 Tj
+35 TJm
+(AME) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+132.691 635.788 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 635.788 Td
+/F122_0 9.9626 Tf
+(2) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 623.832 Td
+(2.2.) 14.9439 Tj
+-310 TJm
+(SYNOPSIS) 47.0534 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+150.582 623.832 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 623.832 Td
+/F122_0 9.9626 Tf
+(2) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 611.877 Td
+(2.3.) 14.9439 Tj
+-310 TJm
+(DESCRIPTION) 64.7569 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+168.29 611.877 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 611.877 Td
+/F122_0 9.9626 Tf
+(3) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 599.922 Td
+(2.4.) 14.9439 Tj
+-310 TJm
+(OPTIONS) 42.0621 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.873 599.922 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 599.922 Td
+/F122_0 9.9626 Tf
+(4) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 587.967 Td
+(2.5.) 14.9439 Tj
+-310 TJm
+(MEMOR) 37.6387 Tj
+65 TJm
+(Y) 7.193 Tj
+-250 TJm
+(MAN) 23.2427 Tj
+35 TJm
+(A) 7.193 Tj
+40 TJm
+(GEMENT) 41.5042 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.412 587.967 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 587.967 Td
+/F122_0 9.9626 Tf
+(5) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 576.012 Td
+(2.6.) 14.9439 Tj
+-310 TJm
+(RECO) 26.5703 Tj
+50 TJm
+(VERING) 37.6287 Tj
+-250 TJm
+(D) 7.193 Tj
+40 TJm
+(A) 7.193 Tj
+111 TJm
+(T) 6.0871 Tj
+93 TJm
+(A) 7.193 Tj
+-250 TJm
+(FR) 12.1843 Tj
+40 TJm
+(OM) 16.0497 Tj
+-250 TJm
+(D) 7.193 Tj
+40 TJm
+(AMA) 23.2427 Tj
+40 TJm
+(GED) 20.4731 Tj
+-250 TJm
+(FILES) 26.5703 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+308.464 576.012 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 576.012 Td
+/F122_0 9.9626 Tf
+(6) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 564.057 Td
+(2.7.) 14.9439 Tj
+-310 TJm
+(PERFORMANCE) 73.6236 Tj
+-250 TJm
+(NO) 14.386 Tj
+40 TJm
+(TES) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+211.958 564.057 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 564.057 Td
+/F122_0 9.9626 Tf
+(6) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 552.101 Td
+(2.8.) 14.9439 Tj
+-310 TJm
+(CA) 13.8381 Tj
+135 TJm
+(VEA) 20.4731 Tj
+111 TJm
+(TS) 11.6264 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+148.799 552.101 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 552.101 Td
+/F122_0 9.9626 Tf
+(7) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 540.146 Td
+(2.9.) 14.9439 Tj
+-310 TJm
+(A) 7.193 Tj
+55 TJm
+(UTHOR) 34.3112 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.32 540.146 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 540.146 Td
+/F122_0 9.9626 Tf
+(7) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 508.266 Td
+(This) 17.7135 Tj
+-250 TJm
+(chapter) 29.3199 Tj
+-250 TJm
+(contains) 33.2053 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(cop) 14.386 Tj
+10 TJm
+(y) 4.9813 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+213.837 508.266 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+246.215 508.266 Td
+/F122_0 9.9626 Tf
+(man) 17.1556 Tj
+-250 TJm
+(page,) 21.3 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(nothing) 30.4457 Tj
+-250 TJm
+(else.) 17.9825 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 473.513 Td
+/F116_0 20.6585 Tf
+(2.1.) 34.4584 Tj
+-278 TJm
+(NAME) 60.8186 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 441.632 Td
+/F122_0 9.9626 Tf
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 441.632 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+112.349 441.632 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+117.33 441.632 Td
+/F124_0 9.9626 Tf
+(bunzip2) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.664 441.632 Td
+/F122_0 9.9626 Tf
+(-) 3.3175 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(block-sorting) 53.1305 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(compressor) 45.9276 Tj
+40 TJm
+(,) 2.4907 Tj
+-250 TJm
+(v1.0.6) 24.9065 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 419.715 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 419.715 Td
+/F124_0 9.9626 Tf
+(bzcat) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+114.839 419.715 Td
+/F122_0 9.9626 Tf
+(-) 3.3175 Tj
+-250 TJm
+(decompresses) 55.3323 Tj
+-250 TJm
+(\002les) 16.6077 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(stdout) 24.3586 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 397.797 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 397.797 Td
+/F124_0 9.9626 Tf
+(bzip2recover) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+156.682 397.797 Td
+/F122_0 9.9626 Tf
+(-) 3.3175 Tj
+-250 TJm
+(reco) 17.1456 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(ers) 11.6164 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(from) 19.3673 Tj
+-250 TJm
+(damaged) 35.965 Tj
+-250 TJm
+(bzip2) 22.1369 Tj
+-250 TJm
+(\002les) 16.6077 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 353.081 Td
+/F116_0 20.6585 Tf
+(2.2.) 34.4584 Tj
+-278 TJm
+(SYNOPSIS) 105.6269 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 321.201 Td
+/F122_0 9.9626 Tf
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 321.201 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+114.839 321.201 Td
+/F122_0 9.9626 Tf
+([) 3.3175 Tj
+-250 TJm
+(-cdfkqstvzVL123456789) 100.164 Tj
+-250 TJm
+(]) 3.3175 Tj
+-250 TJm
+([) 3.3175 Tj
+-250 TJm
+(\002lenames) 38.1866 Tj
+-250 TJm
+(...) 7.472 Tj
+-620 TJm
+(]) 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 299.283 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 299.283 Td
+/F124_0 9.9626 Tf
+(bunzip2) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+126.795 299.283 Td
+/F122_0 9.9626 Tf
+([) 3.3175 Tj
+-250 TJm
+(-fkvsVL) 33.7533 Tj
+-250 TJm
+(]) 3.3175 Tj
+-250 TJm
+([) 3.3175 Tj
+-250 TJm
+(\002lenames) 38.1866 Tj
+-250 TJm
+(...) 7.472 Tj
+-620 TJm
+(]) 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 277.365 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 277.365 Td
+/F124_0 9.9626 Tf
+(bzcat) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+114.839 277.365 Td
+/F122_0 9.9626 Tf
+([) 3.3175 Tj
+-250 TJm
+(-s) 7.193 Tj
+-250 TJm
+(]) 3.3175 Tj
+-250 TJm
+([) 3.3175 Tj
+-250 TJm
+(\002lenames) 38.1866 Tj
+-250 TJm
+(...) 7.472 Tj
+-620 TJm
+(]) 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 255.447 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 255.447 Td
+/F124_0 9.9626 Tf
+(bzip2recover) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+156.683 255.447 Td
+/F122_0 9.9626 Tf
+(\002lename) 34.3112 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.852 Td
+(2) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 3 6
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+477.109 749.245 Td
+/F122_0 9.9626 Tf
+(Ho) 12.1743 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(bzip2) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 704.93 Td
+/F116_0 20.6585 Tf
+(2.3.) 34.4584 Tj
+-278 TJm
+(DESCRIPTION) 141.1802 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 683.012 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.56 683.012 Td
+/F122_0 9.9626 Tf
+(compresses) 45.9276 Tj
+-268 TJm
+(\002les) 16.6077 Tj
+-268 TJm
+(using) 21.589 Tj
+-268 TJm
+(the) 12.1743 Tj
+-269 TJm
+(Burro) 23.2427 Tj
+25 TJm
+(ws-Wheeler) 48.1293 Tj
+-268 TJm
+(block) 22.1369 Tj
+-268 TJm
+(sorting) 27.6761 Tj
+-268 TJm
+(te) 7.193 Tj
+15 TJm
+(xt) 7.7509 Tj
+-268 TJm
+(compression) 50.3609 Tj
+-268 TJm
+(algorithm,) 41.2352 Tj
+-273 TJm
+(and) 14.386 Tj
+-268 TJm
+(Huf) 15.4918 Tj
+25 TJm
+(fman) 20.4731 Tj
+-268 TJm
+(coding.) 29.6088 Tj
+72 671.057 Td
+(Compression) 52.5826 Tj
+-203 TJm
+(is) 6.6451 Tj
+-204 TJm
+(generally) 37.0708 Tj
+-203 TJm
+(considerably) 50.9089 Tj
+-203 TJm
+(better) 22.6848 Tj
+-204 TJm
+(t) 2.7696 Tj
+1 TJm
+(han) 14.386 Tj
+-204 TJm
+(that) 14.9439 Tj
+-203 TJm
+(achie) 21.0211 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ed) 9.4047 Tj
+-203 TJm
+(by) 9.9626 Tj
+-204 TJm
+(more) 20.4731 Tj
+-203 TJm
+(con) 14.386 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(entional) 32.0995 Tj
+-203 TJm
+(LZ77/LZ78-based) 73.0458 Tj
+-204 TJm
+(compressors,) 52.2937 Tj
+72 659.101 Td
+(and) 14.386 Tj
+-250 TJm
+(approaches) 44.8118 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(performance) 50.341 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(PPM) 19.9352 Tj
+-250 TJm
+(f) 3.3175 Tj
+10 TJm
+(amily) 22.6948 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(statistical) 37.6387 Tj
+-250 TJm
+(compressors.) 52.2937 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 637.184 Td
+(The) 15.4918 Tj
+-250 TJm
+(command-line) 57.5539 Tj
+-250 TJm
+(options) 29.3399 Tj
+-250 TJm
+(are) 12.1643 Tj
+-250 TJm
+(deliberately) 47.0334 Tj
+-250 TJm
+(v) 4.9813 Tj
+15 TJm
+(ery) 12.7222 Tj
+-250 TJm
+(similar) 27.6761 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(those) 21.031 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(GNU) 21.579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+364.869 637.184 Td
+/F124_0 9.9626 Tf
+(gzip) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+388.779 637.184 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-250 TJm
+(are) 12.1643 Tj
+-250 TJm
+(not) 12.7322 Tj
+-250 TJm
+(identical.) 36.8018 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 615.266 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+105.175 615.266 Td
+/F122_0 9.9626 Tf
+(e) 4.4234 Tj
+15 TJm
+(xpects) 25.4544 Tj
+-330 TJm
+(a) 4.4234 Tj
+-330 TJm
+(list) 12.1843 Tj
+-330 TJm
+(of) 8.2988 Tj
+-330 TJm
+(\002le) 12.7322 Tj
+-329 TJm
+(names) 25.4544 Tj
+-330 TJm
+(to) 7.7509 Tj
+-330 TJm
+(accompan) 40.3884 Tj
+15 TJm
+(y) 4.9813 Tj
+-330 TJm
+(the) 12.1743 Tj
+-330 TJm
+(command-line) 57.5539 Tj
+-330 TJm
+(\003ags.) 21.31 Tj
+-1099 TJm
+(Each) 19.9152 Tj
+-330 TJm
+(\002le) 12.7322 Tj
+-330 TJm
+(is) 6.6451 Tj
+-330 TJm
+(replaced) 33.7433 Tj
+-330 TJm
+(by) 9.9626 Tj
+-330 TJm
+(a) 4.4234 Tj
+-330 TJm
+(compressed) 47.0334 Tj
+72 603.311 Td
+(v) 4.9813 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-349 TJm
+(of) 8.2988 Tj
+-348 TJm
+(itself,) 22.4159 Tj
+-373 TJm
+(with) 17.7135 Tj
+-349 TJm
+(the) 12.1743 Tj
+-349 TJm
+(name) 21.579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+204.444 603.311 Td
+/F124_0 9.9626 Tf
+(original_name.bz2) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+306.063 603.311 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1212 TJm
+(Each) 19.9152 Tj
+-348 TJm
+(compressed) 47.0334 Tj
+-349 TJm
+(\002le) 12.7322 Tj
+-348 TJm
+(has) 13.2801 Tj
+-349 TJm
+(the) 12.1743 Tj
+-348 TJm
+(same) 20.4731 Tj
+-349 TJm
+(modi\002cation) 50.3709 Tj
+-349 TJm
+(date,) 19.0883 Tj
+72 591.356 Td
+(permissions,) 50.092 Tj
+-344 TJm
+(and,) 16.8766 Tj
+-344 TJm
+(when) 21.579 Tj
+-325 TJm
+(possible,) 35.1481 Tj
+-344 TJm
+(o) 4.9813 Tj
+25 TJm
+(wnership) 36.5229 Tj
+-325 TJm
+(as) 8.2988 Tj
+-325 TJm
+(the) 12.1743 Tj
+-326 TJm
+(corresponding) 56.996 Tj
+-325 TJm
+(original,) 33.4843 Tj
+-344 TJm
+(so) 8.8568 Tj
+-325 TJm
+(that) 14.9439 Tj
+-325 TJm
+(these) 20.4731 Tj
+-325 TJm
+(properties) 39.8404 Tj
+-325 TJm
+(can) 13.8281 Tj
+-326 TJm
+(be) 9.4047 Tj
+-325 TJm
+(correctly) 35.4071 Tj
+72 579.4 Td
+(restored) 32.0895 Tj
+-308 TJm
+(at) 7.193 Tj
+-308 TJm
+(decompression) 59.7656 Tj
+-307 TJm
+(time.) 20.2042 Tj
+-484 TJm
+(File) 15.5018 Tj
+-308 TJm
+(name) 21.579 Tj
+-308 TJm
+(handling) 34.8691 Tj
+-308 TJm
+(is) 6.6451 Tj
+-307 TJm
+(nai) 12.1743 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-308 TJm
+(in) 7.7509 Tj
+-308 TJm
+(the) 12.1743 Tj
+-308 TJm
+(sense) 21.579 Tj
+-308 TJm
+(that) 14.9439 Tj
+-308 TJm
+(there) 19.9152 Tj
+-307 TJm
+(is) 6.6451 Tj
+-308 TJm
+(no) 9.9626 Tj
+-308 TJm
+(mechanism) 45.3796 Tj
+-308 TJm
+(for) 11.6164 Tj
+-308 TJm
+(preserving) 42.0521 Tj
+72 567.445 Td
+(original) 30.9936 Tj
+-334 TJm
+(\002le) 12.7322 Tj
+-333 TJm
+(names,) 27.9451 Tj
+-355 TJm
+(permissions,) 50.092 Tj
+-355 TJm
+(o) 4.9813 Tj
+25 TJm
+(wnerships) 40.3983 Tj
+-333 TJm
+(or) 8.2988 Tj
+-334 TJm
+(dates) 20.4731 Tj
+-334 TJm
+(in) 7.7509 Tj
+-333 TJm
+(\002lesystems) 44.2838 Tj
+-334 TJm
+(which) 24.3486 Tj
+-334 TJm
+(lack) 16.5977 Tj
+-333 TJm
+(these) 20.4731 Tj
+-334 TJm
+(concepts,) 37.3498 Tj
+-355 TJm
+(or) 8.2988 Tj
+-333 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-334 TJm
+(serious) 28.224 Tj
+-334 TJm
+(\002le) 12.7322 Tj
+72 555.49 Td
+(name) 21.579 Tj
+-250 TJm
+(length) 24.9065 Tj
+-250 TJm
+(restrictions,) 46.7644 Tj
+-250 TJm
+(such) 18.2614 Tj
+-250 TJm
+(as) 8.2988 Tj
+-250 TJm
+(MS-DOS.) 40.1294 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 533.572 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.379 533.572 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+121.255 533.572 Td
+/F124_0 9.9626 Tf
+(bunzip2) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+165.589 533.572 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-250 TJm
+(by) 9.9626 Tj
+-250 TJm
+(def) 12.7222 Tj
+10 TJm
+(ault) 14.9439 Tj
+-250 TJm
+(not) 12.7322 Tj
+-250 TJm
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(erwrite) 28.2141 Tj
+-250 TJm
+(e) 4.4234 Tj
+15 TJm
+(xisting) 27.1282 Tj
+-250 TJm
+(\002les.) 19.0983 Tj
+-620 TJm
+(If) 6.6351 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-250 TJm
+(this) 14.396 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(happen,) 31.2626 Tj
+-250 TJm
+(specify) 28.772 Tj
+-250 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+495.977 533.572 Td
+/F124_0 9.9626 Tf
+(-f) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+510.423 533.572 Td
+/F122_0 9.9626 Tf
+(\003ag.) 17.4346 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 511.654 Td
+(If) 6.6351 Tj
+-284 TJm
+(no) 9.9626 Tj
+-285 TJm
+(\002le) 12.7322 Tj
+-284 TJm
+(names) 25.4544 Tj
+-284 TJm
+(are) 12.1643 Tj
+-284 TJm
+(speci\002ed,) 37.9077 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+193.935 511.654 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+226.655 511.654 Td
+/F122_0 9.9626 Tf
+(compresses) 45.9276 Tj
+-284 TJm
+(from) 19.3673 Tj
+-285 TJm
+(standard) 33.7533 Tj
+-284 TJm
+(input) 20.4831 Tj
+-284 TJm
+(to) 7.7509 Tj
+-284 TJm
+(standard) 33.7533 Tj
+-285 TJm
+(output.) 27.9551 Tj
+-825 TJm
+(In) 8.2988 Tj
+-285 TJm
+(this) 14.396 Tj
+-284 TJm
+(case,) 19.6363 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+491.778 511.654 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+524.499 511.654 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+72 499.699 Td
+(decline) 28.772 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(write) 20.4731 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(output) 25.4644 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(terminal,) 35.696 Tj
+-250 TJm
+(as) 8.2988 Tj
+-250 TJm
+(this) 14.396 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ould) 17.7135 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(entirely) 30.4357 Tj
+-250 TJm
+(incomprehensible) 70.8341 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(therefore) 35.955 Tj
+-250 TJm
+(pointless.) 37.9177 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 477.781 Td
+/F124_0 9.9626 Tf
+(bunzip2) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+116.176 477.781 Td
+/F122_0 9.9626 Tf
+(\(or) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+130.125 477.781 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+-600 TJm
+(-d) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+177.946 477.781 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-234 TJm
+(decompresses) 55.3323 Tj
+-234 TJm
+(all) 9.9626 Tj
+-234 TJm
+(speci\002ed) 35.417 Tj
+-235 TJm
+(\002les.) 19.0983 Tj
+-609 TJm
+(Files) 19.3773 Tj
+-234 TJm
+(which) 24.3486 Tj
+-234 TJm
+(were) 19.3573 Tj
+-234 TJm
+(not) 12.7322 Tj
+-235 TJm
+(created) 28.762 Tj
+-234 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+445.012 477.781 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+477.233 477.781 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-234 TJm
+(be) 9.4047 Tj
+-234 TJm
+(detected) 33.1954 Tj
+72 465.826 Td
+(and) 14.386 Tj
+-280 TJm
+(i) 2.7696 Tj
+1 TJm
+(gnored,) 30.1568 Tj
+-287 TJm
+(and) 14.386 Tj
+-280 TJm
+(a) 4.4234 Tj
+-279 TJm
+(w) 7.193 Tj
+10 TJm
+(arning) 25.4544 Tj
+-280 TJm
+(issued.) 27.3972 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.033 465.826 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+248.705 465.826 Td
+/F122_0 9.9626 Tf
+(attempts) 33.7633 Tj
+-279 TJm
+(to) 7.7509 Tj
+-280 TJm
+(guess) 22.1369 Tj
+-279 TJm
+(the) 12.1743 Tj
+-280 TJm
+(\002lename) 34.3112 Tj
+-279 TJm
+(for) 11.6164 Tj
+-280 TJm
+(the) 12.1743 Tj
+-279 TJm
+(decompressed) 56.4381 Tj
+-280 TJm
+(\002le) 12.7322 Tj
+-279 TJm
+(from) 19.3673 Tj
+-280 TJm
+(that) 14.9439 Tj
+-279 TJm
+(of) 8.2988 Tj
+-280 TJm
+(the) 12.1743 Tj
+72 453.871 Td
+(compressed) 47.0334 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(as) 8.2988 Tj
+-250 TJm
+(follo) 18.8194 Tj
+25 TJm
+(ws:) 13.8381 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 421.991 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 421.991 Td
+/F124_0 9.9626 Tf
+(filename.bz2) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.66 421.991 Td
+/F122_0 9.9626 Tf
+(becomes) 34.8591 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.01 421.991 Td
+/F124_0 9.9626 Tf
+(filename) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 400.073 Td
+/F122_0 9.9626 Tf
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 400.073 Td
+/F124_0 9.9626 Tf
+(filename.bz) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+156.682 400.073 Td
+/F122_0 9.9626 Tf
+(becomes) 34.8591 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+194.032 400.073 Td
+/F124_0 9.9626 Tf
+(filename) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 378.155 Td
+/F122_0 9.9626 Tf
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 378.155 Td
+/F124_0 9.9626 Tf
+(filename.tbz2) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.66 378.155 Td
+/F122_0 9.9626 Tf
+(becomes) 34.8591 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.01 378.155 Td
+/F124_0 9.9626 Tf
+(filename.tar) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 356.237 Td
+/F122_0 9.9626 Tf
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 356.237 Td
+/F124_0 9.9626 Tf
+(filename.tbz) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.66 356.237 Td
+/F122_0 9.9626 Tf
+(becomes) 34.8591 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.01 356.237 Td
+/F124_0 9.9626 Tf
+(filename.tar) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 334.319 Td
+/F122_0 9.9626 Tf
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 334.319 Td
+/F124_0 9.9626 Tf
+(anyothername) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.66 334.319 Td
+/F122_0 9.9626 Tf
+(becomes) 34.8591 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.01 334.319 Td
+/F124_0 9.9626 Tf
+(anyothername.out) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 312.402 Td
+/F122_0 9.9626 Tf
+(If) 6.6351 Tj
+-342 TJm
+(the) 12.1743 Tj
+-342 TJm
+(\002le) 12.7322 Tj
+-342 TJm
+(does) 18.2614 Tj
+-342 TJm
+(n) 4.9813 Tj
+-1 TJm
+(ot) 7.7509 Tj
+-342 TJm
+(end) 14.386 Tj
+-342 TJm
+(in) 7.7509 Tj
+-342 TJm
+(one) 14.386 Tj
+-342 TJm
+(of) 8.2988 Tj
+-342 TJm
+(the) 12.1743 Tj
+-342 TJm
+(recognised) 43.158 Tj
+-342 TJm
+(endings,) 33.4843 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+309.305 312.402 Td
+/F124_0 9.9626 Tf
+(.bz2) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+333.215 312.402 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+339.344 312.402 Td
+/F124_0 9.9626 Tf
+(.bz) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+357.276 312.402 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.405 312.402 Td
+/F124_0 9.9626 Tf
+(.tbz2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+396.702 312.402 Td
+/F122_0 9.9626 Tf
+(or) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+408.409 312.402 Td
+/F124_0 9.9626 Tf
+(.tbz) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+432.319 312.402 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+438.448 312.402 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+471.744 312.402 Td
+/F122_0 9.9626 Tf
+(complains) 40.9562 Tj
+-342 TJm
+(that) 14.9439 Tj
+-342 TJm
+(it) 5.5392 Tj
+72 300.446 Td
+(cannot) 26.5603 Tj
+-250 TJm
+(guess) 22.1369 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(name) 21.579 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(original) 30.9936 Tj
+-250 TJm
+(\002le,) 15.2229 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(uses) 17.1556 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(original) 30.9936 Tj
+-250 TJm
+(name) 21.579 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+370.009 300.446 Td
+/F124_0 9.9626 Tf
+(.out) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+396.41 300.446 Td
+/F122_0 9.9626 Tf
+(appended.) 40.6673 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 278.529 Td
+(As) 11.0684 Tj
+-250 TJm
+(with) 17.7135 Tj
+-250 TJm
+(compression,) 52.8516 Tj
+-250 TJm
+(supplying) 39.3025 Tj
+-250 TJm
+(no) 9.9626 Tj
+-250 TJm
+(\002lenames) 38.1866 Tj
+-250 TJm
+(causes) 26.0024 Tj
+-250 TJm
+(decompression) 59.7656 Tj
+-250 TJm
+(from) 19.3673 Tj
+-250 TJm
+(standard) 33.7533 Tj
+-250 TJm
+(input) 20.4831 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(standard) 33.7533 Tj
+-250 TJm
+(output.) 27.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 256.611 Td
+/F124_0 9.9626 Tf
+(bunzip2) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+116.409 256.611 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-257 TJm
+(correctly) 35.4071 Tj
+-258 TJm
+(decompress) 47.0334 Tj
+-257 TJm
+(a) 4.4234 Tj
+-258 TJm
+(\002le) 12.7322 Tj
+-257 TJm
+(which) 24.3486 Tj
+-258 TJm
+(is) 6.6451 Tj
+-257 TJm
+(the) 12.1743 Tj
+-258 TJm
+(concatenation) 55.3323 Tj
+-257 TJm
+(of) 8.2988 Tj
+-258 TJm
+(tw) 9.9626 Tj
+10 TJm
+(o) 4.9813 Tj
+-258 TJm
+(or) 8.2988 Tj
+-257 TJm
+(more) 20.4731 Tj
+-258 TJm
+(compressed) 47.0334 Tj
+-257 TJm
+(\002les.) 19.0983 Tj
+-665 TJm
+(The) 15.4918 Tj
+-258 TJm
+(result) 22.1369 Tj
+-257 TJm
+(is) 6.6451 Tj
+72 244.656 Td
+(the) 12.1743 Tj
+-239 TJm
+(concatenation) 55.3323 Tj
+-238 TJm
+(of) 8.2988 Tj
+-239 TJm
+(the) 12.1743 Tj
+-239 TJm
+(corresponding) 56.996 Tj
+-239 TJm
+(uncompressed) 56.996 Tj
+-238 TJm
+(\002les.) 19.0983 Tj
+-613 TJm
+(Inte) 15.4918 Tj
+15 TJm
+(grity) 18.8194 Tj
+-238 TJm
+(testing) 26.5703 Tj
+-239 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+382.247 244.656 Td
+/F124_0 9.9626 Tf
+(-t) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+394.202 244.656 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-239 TJm
+(of) 8.2988 Tj
+-238 TJm
+(concatenated) 52.0048 Tj
+-239 TJm
+(compressed) 47.0334 Tj
+-239 TJm
+(\002les) 16.6077 Tj
+-239 TJm
+(is) 6.6451 Tj
+72 232.7 Td
+(also) 16.0497 Tj
+-250 TJm
+(supported.) 41.7831 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 210.783 Td
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-399 TJm
+(can) 13.8281 Tj
+-399 TJm
+(also) 16.0497 Tj
+-399 TJm
+(compress) 37.6287 Tj
+-400 TJm
+(or) 8.2988 Tj
+-399 TJm
+(decompress) 47.0334 Tj
+-399 TJm
+(\002les) 16.6077 Tj
+-399 TJm
+(to) 7.7509 Tj
+-399 TJm
+(the) 12.1743 Tj
+-399 TJm
+(standard) 33.7533 Tj
+-399 TJm
+(output) 25.4644 Tj
+-399 TJm
+(by) 9.9626 Tj
+-400 TJm
+(gi) 7.7509 Tj
+25 TJm
+(ving) 17.7135 Tj
+-399 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+409.67 210.783 Td
+/F124_0 9.9626 Tf
+(-c) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+425.602 210.783 Td
+/F122_0 9.9626 Tf
+(\003ag.) 17.4346 Tj
+-757 TJm
+(Multiple) 34.3212 Tj
+-400 TJm
+(\002l) 8.3088 Tj
+1 TJm
+(es) 8.2988 Tj
+-400 TJm
+(may) 17.1556 Tj
+-399 TJm
+(be) 9.4047 Tj
+72 198.827 Td
+(compressed) 47.0334 Tj
+-367 TJm
+(and) 14.386 Tj
+-367 TJm
+(decompressed) 56.4381 Tj
+-367 TJm
+(lik) 10.5205 Tj
+10 TJm
+(e) 4.4234 Tj
+-367 TJm
+(this.) 16.8866 Tj
+-1321 TJm
+(The) 15.4918 Tj
+-367 TJm
+(resulting) 34.8691 Tj
+-367 TJm
+(outputs) 29.3399 Tj
+-367 TJm
+(are) 12.1643 Tj
+-367 TJm
+(fed) 12.7222 Tj
+-367 TJm
+(sequentially) 48.1492 Tj
+-366 TJm
+(to) 7.7509 Tj
+-367 TJm
+(stdout.) 26.8492 Tj
+-1322 TJm
+(Compression) 52.5826 Tj
+-367 TJm
+(of) 8.2988 Tj
+72 186.872 Td
+(multiple) 33.2153 Tj
+-289 TJm
+(\002les) 16.6077 Tj
+-289 TJm
+(in) 7.7509 Tj
+-289 TJm
+(this) 14.396 Tj
+-289 TJm
+(manner) 29.8778 Tj
+-288 TJm
+(generates) 37.6188 Tj
+-289 TJm
+(a) 4.4234 Tj
+-289 TJm
+(stream) 26.5603 Tj
+-289 TJm
+(containing) 42.0621 Tj
+-289 TJm
+(multiple) 33.2153 Tj
+-289 TJm
+(compressed) 47.0334 Tj
+-289 TJm
+(\002le) 12.7322 Tj
+-289 TJm
+(representations.) 62.8042 Tj
+-853 TJm
+(Such) 19.9252 Tj
+-289 TJm
+(a) 4.4234 Tj
+-289 TJm
+(stream) 26.5603 Tj
+72 174.917 Td
+(can) 13.8281 Tj
+-391 TJm
+(be) 9.4047 Tj
+-391 TJm
+(decompressed) 56.4381 Tj
+-390 TJm
+(correctly) 35.4071 Tj
+-391 TJm
+(only) 17.7135 Tj
+-391 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+238.116 174.917 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+271.898 174.917 Td
+/F122_0 9.9626 Tf
+(v) 4.9813 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-391 TJm
+(0.9.0) 19.9252 Tj
+-391 TJm
+(or) 8.2988 Tj
+-390 TJm
+(later) 17.7035 Tj
+55 TJm
+(.) 2.4907 Tj
+-733 TJm
+(Earlier) 27.1082 Tj
+-391 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersions) 28.224 Tj
+-391 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+448.071 174.917 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+481.852 174.917 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-391 TJm
+(stop) 16.6077 Tj
+-391 TJm
+(after) 18.2515 Tj
+72 162.962 Td
+(decompressing) 59.7656 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(\002rst) 15.5018 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(stream.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 141.044 Td
+/F124_0 9.9626 Tf
+(bzcat) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.379 141.044 Td
+/F122_0 9.9626 Tf
+(\(or) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+118.486 141.044 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+-600 TJm
+(-dc) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.284 141.044 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-250 TJm
+(decompresses) 55.3323 Tj
+-250 TJm
+(all) 9.9626 Tj
+-250 TJm
+(speci\002ed) 35.417 Tj
+-250 TJm
+(\002les) 16.6077 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(standard) 33.7533 Tj
+-250 TJm
+(output.) 27.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 119.126 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.866 119.126 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-299 TJm
+(read) 17.1456 Tj
+-299 TJm
+(ar) 7.7409 Tj
+18 TJm
+(guments) 33.7633 Tj
+-299 TJm
+(from) 19.3673 Tj
+-299 TJm
+(the) 12.1743 Tj
+-299 TJm
+(en) 9.4047 Tj
+40 TJm
+(vironment) 40.9562 Tj
+-298 TJm
+(v) 4.9813 Tj
+25 TJm
+(ariables) 30.9837 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+316.903 119.126 Td
+/F124_0 9.9626 Tf
+(BZIP2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+349.769 119.126 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+367.133 119.126 Td
+/F124_0 9.9626 Tf
+(BZIP) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+391.043 119.126 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-299 TJm
+(in) 7.7509 Tj
+-299 TJm
+(that) 14.9439 Tj
+-299 TJm
+(order) 21.0211 Tj
+40 TJm
+(,) 2.4907 Tj
+-311 TJm
+(and) 14.386 Tj
+-299 TJm
+(will) 15.5018 Tj
+-299 TJm
+(process) 29.8778 Tj
+-299 TJm
+(them) 19.9252 Tj
+72 107.171 Td
+(before) 25.4445 Tj
+-250 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-250 TJm
+(ar) 7.7409 Tj
+18 TJm
+(guments) 33.7633 Tj
+-250 TJm
+(read) 17.1456 Tj
+-250 TJm
+(from) 19.3673 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(command) 39.2925 Tj
+-250 TJm
+(line.) 17.4346 Tj
+-310 TJm
+(This) 17.7135 Tj
+-250 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(es) 8.2988 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(con) 14.386 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(enient) 24.3486 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ay) 9.4047 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(supply) 26.5703 Tj
+-250 TJm
+(def) 12.7222 Tj
+10 TJm
+(ault) 14.9439 Tj
+-250 TJm
+(ar) 7.7409 Tj
+18 TJm
+(guments.) 36.2539 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 85.253 Td
+(Compression) 52.5826 Tj
+-294 TJm
+(is) 6.6451 Tj
+-294 TJm
+(al) 7.193 Tj
+10 TJm
+(w) 7.193 Tj
+10 TJm
+(ays) 13.2801 Tj
+-294 TJm
+(performed,) 43.9849 Tj
+-305 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-294 TJm
+(if) 6.0871 Tj
+-294 TJm
+(the) 12.1743 Tj
+-294 TJm
+(compressed) 47.0334 Tj
+-294 TJm
+(\002le) 12.7322 Tj
+-293 TJm
+(is) 6.6451 Tj
+-294 TJm
+(slightly) 29.8978 Tj
+-294 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ger) 12.7222 Tj
+-294 TJm
+(than) 17.1556 Tj
+-294 TJm
+(the) 12.1743 Tj
+-294 TJm
+(original.) 33.4843 Tj
+-884 TJm
+(Files) 19.3773 Tj
+-294 TJm
+(of) 8.2988 Tj
+-294 TJm
+(less) 14.9439 Tj
+-294 TJm
+(than) 17.1556 Tj
+72 73.298 Td
+(about) 22.1369 Tj
+-246 TJm
+(one) 14.386 Tj
+-246 TJm
+(hundred) 32.6474 Tj
+-245 TJm
+(bytes) 21.031 Tj
+-246 TJm
+(tend) 17.1556 Tj
+-246 TJm
+(to) 7.7509 Tj
+-246 TJm
+(get) 12.1743 Tj
+-246 TJm
+(l) 2.7696 Tj
+1 TJm
+(ar) 7.7409 Tj
+18 TJm
+(ger) 12.7222 Tj
+40 TJm
+(,) 2.4907 Tj
+-247 TJm
+(since) 20.4731 Tj
+-246 TJm
+(the) 12.1743 Tj
+-246 TJm
+(compression) 50.3609 Tj
+-245 TJm
+(mechanism) 45.3796 Tj
+-246 TJm
+(has) 13.2801 Tj
+-246 TJm
+(a) 4.4234 Tj
+-246 TJm
+(constant) 33.2053 Tj
+-246 TJm
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(erhead) 26.5503 Tj
+-245 TJm
+(in) 7.7509 Tj
+-246 TJm
+(the) 12.1743 Tj
+-246 TJm
+(re) 7.7409 Tj
+15 TJm
+(gion) 17.7135 Tj
+-246 TJm
+(of) 8.2988 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.951 Td
+(3) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 4 7
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+477.109 749.245 Td
+/F122_0 9.9626 Tf
+(Ho) 12.1743 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(bzip2) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(50) 9.9626 Tj
+-264 TJm
+(bytes.) 23.5217 Tj
+-351 TJm
+(Random) 33.7633 Tj
+-264 TJm
+(dat) 12.1743 Tj
+1 TJm
+(a) 4.4234 Tj
+-264 TJm
+(\(including) 40.9562 Tj
+-264 TJm
+(the) 12.1743 Tj
+-264 TJm
+(output) 25.4644 Tj
+-263 TJm
+(of) 8.2988 Tj
+-264 TJm
+(most) 19.3773 Tj
+-264 TJm
+(\002le) 12.7322 Tj
+-263 TJm
+(compressors\)) 53.1206 Tj
+-264 TJm
+(is) 6.6451 Tj
+-264 TJm
+(coded) 23.7907 Tj
+-263 TJm
+(at) 7.193 Tj
+-264 TJm
+(about) 22.1369 Tj
+-264 TJm
+(8.05) 17.4346 Tj
+-263 TJm
+(bits) 14.396 Tj
+-264 TJm
+(per) 12.7222 Tj
+-264 TJm
+(byte,) 19.6462 Tj
+-267 TJm
+(gi) 7.7509 Tj
+25 TJm
+(ving) 17.7135 Tj
+-264 TJm
+(an) 9.4047 Tj
+72 698.082 Td
+(e) 4.4234 Tj
+15 TJm
+(xpansion) 35.9749 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(around) 27.6661 Tj
+-250 TJm
+(0.5%.) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 676.283 Td
+(As) 11.0684 Tj
+-268 TJm
+(a) 4.4234 Tj
+-268 TJm
+(self-check) 40.9363 Tj
+-269 TJm
+(for) 11.6164 Tj
+-268 TJm
+(your) 18.2614 Tj
+-268 TJm
+(protection,) 42.889 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+217.273 676.283 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+249.833 676.283 Td
+/F122_0 9.9626 Tf
+(uses) 17.1556 Tj
+-268 TJm
+(32-bit) 23.8007 Tj
+-268 TJm
+(CRCs) 23.8106 Tj
+-269 TJm
+(to) 7.7509 Tj
+-268 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e) 4.4234 Tj
+-268 TJm
+(sure) 16.5977 Tj
+-268 TJm
+(that) 14.9439 Tj
+-268 TJm
+(the) 12.1743 Tj
+-269 TJm
+(decompressed) 56.4381 Tj
+-268 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-268 TJm
+(of) 8.2988 Tj
+-268 TJm
+(a) 4.4234 Tj
+-268 TJm
+(\002le) 12.7322 Tj
+-269 TJm
+(is) 6.6451 Tj
+72 664.328 Td
+(identical) 34.3112 Tj
+-200 TJm
+(to) 7.7509 Tj
+-199 TJm
+(the) 12.1743 Tj
+-200 TJm
+(original.) 33.4843 Tj
+-586 TJm
+(This) 17.7135 Tj
+-200 TJm
+(guards) 26.5603 Tj
+-199 TJm
+(ag) 9.4047 Tj
+5 TJm
+(ainst) 18.8194 Tj
+-200 TJm
+(corruption) 41.5042 Tj
+-199 TJm
+(of) 8.2988 Tj
+-200 TJm
+(the) 12.1743 Tj
+-200 TJm
+(compressed) 47.0334 Tj
+-199 TJm
+(data,) 19.0883 Tj
+-210 TJm
+(and) 14.386 Tj
+-199 TJm
+(ag) 9.4047 Tj
+5 TJm
+(ainst) 18.8194 Tj
+-200 TJm
+(undetected) 43.158 Tj
+-200 TJm
+(b) 4.9813 Tj
+20 TJm
+(ugs) 13.8381 Tj
+-199 TJm
+(in) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+510.112 664.328 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 652.373 Td
+/F122_0 9.9626 Tf
+(\(hopefully) 41.5042 Tj
+-275 TJm
+(v) 4.9813 Tj
+15 TJm
+(ery) 12.7222 Tj
+-274 TJm
+(unlik) 20.4831 Tj
+10 TJm
+(ely\).) 17.9825 Tj
+-384 TJm
+(The) 15.4918 Tj
+-275 TJm
+(chances) 31.5316 Tj
+-275 TJm
+(of) 8.2988 Tj
+-275 TJm
+(data) 16.5977 Tj
+-274 TJm
+(corruption) 41.5042 Tj
+-275 TJm
+(going) 22.6948 Tj
+-275 TJm
+(undetected) 43.158 Tj
+-274 TJm
+(is) 6.6451 Tj
+-275 TJm
+(microscopic,) 51.1878 Tj
+-281 TJm
+(about) 22.1369 Tj
+-275 TJm
+(one) 14.386 Tj
+-274 TJm
+(chance) 27.6562 Tj
+-275 TJm
+(in) 7.7509 Tj
+-275 TJm
+(four) 16.5977 Tj
+72 640.417 Td
+(billion) 26.0223 Tj
+-279 TJm
+(for) 11.6164 Tj
+-279 TJm
+(each) 18.2515 Tj
+-279 TJm
+(\002le) 12.7322 Tj
+-280 TJm
+(processed.) 41.7732 Tj
+-795 TJm
+(Be) 11.0684 Tj
+-279 TJm
+(a) 4.4234 Tj
+15 TJm
+(w) 7.193 Tj
+10 TJm
+(are,) 14.655 Tj
+-286 TJm
+(though,) 30.1668 Tj
+-287 TJm
+(that) 14.9439 Tj
+-279 TJm
+(the) 12.1743 Tj
+-279 TJm
+(check) 23.2328 Tj
+-279 TJm
+(occurs) 26.0024 Tj
+-279 TJm
+(upon) 19.9252 Tj
+-279 TJm
+(decompression,) 62.2563 Tj
+-287 TJm
+(so) 8.8568 Tj
+-279 TJm
+(it) 5.5392 Tj
+-279 TJm
+(can) 13.8281 Tj
+-279 TJm
+(only) 17.7135 Tj
+-280 TJm
+(tell) 12.7322 Tj
+-279 TJm
+(you) 14.9439 Tj
+72 628.462 Td
+(that) 14.9439 Tj
+-237 TJm
+(something) 41.5142 Tj
+-236 TJm
+(is) 6.6451 Tj
+-237 TJm
+(wrong.) 27.9451 Tj
+-611 TJm
+(It) 6.0871 Tj
+-237 TJm
+(can') 17.1456 Tj
+18 TJm
+(t) 2.7696 Tj
+-237 TJm
+(help) 17.1556 Tj
+-237 TJm
+(you) 14.9439 Tj
+-236 TJm
+(reco) 17.1456 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-237 TJm
+(the) 12.1743 Tj
+-237 TJm
+(original) 30.9936 Tj
+-237 TJm
+(uncompressed) 56.996 Tj
+-236 TJm
+(data.) 19.0883 Tj
+-612 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-236 TJm
+(can) 13.8281 Tj
+-237 TJm
+(use) 13.2801 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+458.159 628.462 Td
+/F124_0 9.9626 Tf
+(bzip2recover) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+532.249 628.462 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+72 616.507 Td
+(try) 11.0684 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(reco) 17.1456 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(from) 19.3673 Tj
+-250 TJm
+(damaged) 35.965 Tj
+-250 TJm
+(\002les.) 19.0983 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 594.708 Td
+(Return) 27.1182 Tj
+-298 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+-406 TJm
+(0) 4.9813 Tj
+-298 TJm
+(for) 11.6164 Tj
+-298 TJm
+(a) 4.4234 Tj
+-298 TJm
+(normal) 28.224 Tj
+-298 TJm
+(e) 4.4234 Tj
+15 TJm
+(xit,) 13.0112 Tj
+-310 TJm
+(1) 4.9813 Tj
+-298 TJm
+(for) 11.6164 Tj
+-297 TJm
+(en) 9.4047 Tj
+40 TJm
+(vironmental) 48.1492 Tj
+-298 TJm
+(problems) 37.0808 Tj
+-298 TJm
+(\(\002le) 16.0497 Tj
+-298 TJm
+(not) 12.7322 Tj
+-298 TJm
+(found,) 25.7334 Tj
+-310 TJm
+(in) 7.7509 Tj
+40 TJm
+(v) 4.9813 Tj
+25 TJm
+(alid) 14.9439 Tj
+-298 TJm
+(\003ags,) 21.31 Tj
+-310 TJm
+(I/O) 13.2801 Tj
+-298 TJm
+(errors,) 25.7234 Tj
+-310 TJm
+(etc.\),) 19.9152 Tj
+-310 TJm
+(2) 4.9813 Tj
+-298 TJm
+(to) 7.7509 Tj
+72 582.753 Td
+(indicate) 31.5416 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(corrupt) 28.772 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(\002le,) 15.2229 Tj
+-250 TJm
+(3) 4.9813 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(an) 9.4047 Tj
+-250 TJm
+(internal) 30.4357 Tj
+-250 TJm
+(consistenc) 41.5042 Tj
+15 TJm
+(y) 4.9813 Tj
+-250 TJm
+(error) 19.3573 Tj
+-250 TJm
+(\(e) 7.7409 Tj
+15 TJm
+(g,) 7.472 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug\)) 13.2801 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(caused) 27.1082 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+443.065 582.753 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+475.444 582.753 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(panic.) 24.0696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 548.118 Td
+/F116_0 20.6585 Tf
+(2.4.) 34.4584 Tj
+-278 TJm
+(OPTIONS) 92.9839 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 516.475 Td
+/F124_0 9.9626 Tf
+(-c) 11.9551 Tj
+-600 TJm
+(--stdout) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 504.52 Td
+/F122_0 9.9626 Tf
+(Compress) 39.8504 Tj
+-250 TJm
+(or) 8.2988 Tj
+-250 TJm
+(decompress) 47.0334 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(standard) 33.7533 Tj
+-250 TJm
+(output.) 27.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 478.854 Td
+/F124_0 9.9626 Tf
+(-d) 11.9551 Tj
+-600 TJm
+(--decompress) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 466.899 Td
+/F122_0 9.9626 Tf
+(F) 5.5392 Tj
+15 TJm
+(orce) 17.1456 Tj
+-296 TJm
+(decompression.) 62.2563 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.214 466.899 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+230.102 466.899 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+235.659 466.899 Td
+/F124_0 9.9626 Tf
+(bunzip2) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+280.454 466.899 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+297.791 466.899 Td
+/F124_0 9.9626 Tf
+(bzcat) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+330.631 466.899 Td
+/F122_0 9.9626 Tf
+(are) 12.1643 Tj
+-296 TJm
+(really) 22.6848 Tj
+-296 TJm
+(the) 12.1743 Tj
+-297 TJm
+(same) 20.4731 Tj
+-296 TJm
+(program,) 36.2439 Tj
+-308 TJm
+(and) 14.386 Tj
+-296 TJm
+(the) 12.1743 Tj
+-296 TJm
+(decision) 33.2053 Tj
+-297 TJm
+(about) 22.1369 Tj
+108 454.944 Td
+(what) 19.3673 Tj
+-303 TJm
+(actions) 28.224 Tj
+-303 TJm
+(to) 7.7509 Tj
+-303 TJm
+(tak) 12.1743 Tj
+10 TJm
+(e) 4.4234 Tj
+-303 TJm
+(is) 6.6451 Tj
+-303 TJm
+(done) 19.3673 Tj
+-303 TJm
+(on) 9.9626 Tj
+-304 TJm
+(the) 12.1743 Tj
+-303 TJm
+(basis) 19.9252 Tj
+-303 TJm
+(of) 8.2988 Tj
+-303 TJm
+(which) 24.3486 Tj
+-303 TJm
+(name) 21.579 Tj
+-303 TJm
+(is) 6.6451 Tj
+-303 TJm
+(used.) 20.7521 Tj
+-939 TJm
+(This) 17.7135 Tj
+-303 TJm
+(\003ag) 14.9439 Tj
+-303 TJm
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(errides) 27.1082 Tj
+-303 TJm
+(that) 14.9439 Tj
+-303 TJm
+(mechanism,) 47.8703 Tj
+-316 TJm
+(and) 14.386 Tj
+108 442.988 Td
+(forces) 24.3386 Tj
+-250 TJm
+(bzip2) 22.1369 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(decompress.) 49.5241 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 417.323 Td
+/F124_0 9.9626 Tf
+(-z) 11.9551 Tj
+-600 TJm
+(--compress) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 405.368 Td
+/F122_0 9.9626 Tf
+(The) 15.4918 Tj
+-250 TJm
+(complement) 49.2551 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+187.969 405.368 Td
+/F124_0 9.9626 Tf
+(-d) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+199.924 405.368 Td
+/F122_0 9.9626 Tf
+(:) 2.7696 Tj
+-310 TJm
+(forces) 24.3386 Tj
+-250 TJm
+(compression,) 52.8516 Tj
+-250 TJm
+(re) 7.7409 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(ardless) 27.6661 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(in) 7.7509 Tj
+40 TJm
+(v) 4.9813 Tj
+20 TJm
+(okation) 29.8878 Tj
+-250 TJm
+(name.) 24.0696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 379.702 Td
+/F124_0 9.9626 Tf
+(-t) 11.9551 Tj
+-600 TJm
+(--test) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 367.747 Td
+/F122_0 9.9626 Tf
+(Check) 25.4544 Tj
+-270 TJm
+(inte) 14.9439 Tj
+15 TJm
+(grity) 18.8194 Tj
+-271 TJm
+(of) 8.2988 Tj
+-270 TJm
+(the) 12.1743 Tj
+-271 TJm
+(speci\002ed) 35.417 Tj
+-270 TJm
+(\002le\(s\),) 25.7334 Tj
+-276 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-270 TJm
+(don') 18.2614 Tj
+18 TJm
+(t) 2.7696 Tj
+-270 TJm
+(decompress) 47.0334 Tj
+-271 TJm
+(them.) 22.4159 Tj
+-742 TJm
+(This) 17.7135 Tj
+-271 TJm
+(really) 22.6848 Tj
+-270 TJm
+(performs) 35.965 Tj
+-270 TJm
+(a) 4.4234 Tj
+-271 TJm
+(trial) 16.0497 Tj
+-270 TJm
+(decompres-) 46.4755 Tj
+108 355.792 Td
+(sion) 16.6077 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(thro) 16.0497 Tj
+25 TJm
+(ws) 11.0684 Tj
+-250 TJm
+(a) 4.4234 Tj
+15 TJm
+(w) 7.193 Tj
+10 TJm
+(ay) 9.4047 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(result.) 24.6275 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 330.126 Td
+/F124_0 9.9626 Tf
+(-f) 11.9551 Tj
+-600 TJm
+(--force) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 318.171 Td
+/F122_0 9.9626 Tf
+(F) 5.5392 Tj
+15 TJm
+(orce) 17.1456 Tj
+-338 TJm
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(erwrite) 28.2141 Tj
+-339 TJm
+(of) 8.2988 Tj
+-338 TJm
+(output) 25.4644 Tj
+-338 TJm
+(\002les.) 19.0983 Tj
+-1150 TJm
+(Normally) 38.1866 Tj
+65 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+289.831 318.171 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+323.089 318.171 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-338 TJm
+(not) 12.7322 Tj
+-339 TJm
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(erwrite) 28.2141 Tj
+-338 TJm
+(e) 4.4234 Tj
+15 TJm
+(xisting) 27.1282 Tj
+-338 TJm
+(output) 25.4644 Tj
+-338 TJm
+(\002les.) 19.0983 Tj
+-1150 TJm
+(Also) 18.8194 Tj
+-339 TJm
+(forces) 24.3386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 306.215 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+140.379 306.215 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(break) 22.1269 Tj
+-250 TJm
+(hard) 17.7035 Tj
+-250 TJm
+(links) 19.3773 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(\002les,) 19.0983 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(otherwise) 38.7346 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ouldn') 26.0123 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(do.) 12.4533 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 284.416 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+141.211 284.416 Td
+/F122_0 9.9626 Tf
+(normally) 35.9749 Tj
+-334 TJm
+(declines) 32.6474 Tj
+-333 TJm
+(to) 7.7509 Tj
+-334 TJm
+(decompress) 47.0334 Tj
+-333 TJm
+(\002les) 16.6077 Tj
+-334 TJm
+(which) 24.3486 Tj
+-333 TJm
+(don') 18.2614 Tj
+18 TJm
+(t) 2.7696 Tj
+-334 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-333 TJm
+(the) 12.1743 Tj
+-334 TJm
+(correct) 27.6562 Tj
+-333 TJm
+(magic) 24.3486 Tj
+-334 TJm
+(header) 26.5503 Tj
+-333 TJm
+(bytes.) 23.5217 Tj
+-561 TJm
+(If) 6.6351 Tj
+-334 TJm
+(forced) 25.4445 Tj
+108 272.461 Td
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+111.318 272.461 Td
+/F124_0 9.9626 Tf
+(-f) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+123.273 272.461 Td
+/F122_0 9.9626 Tf
+(\),) 5.8082 Tj
+-250 TJm
+(ho) 9.9626 Tj
+25 TJm
+(we) 11.6164 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+40 TJm
+(,) 2.4907 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(will) 15.5018 Tj
+-250 TJm
+(pass) 17.1556 Tj
+-250 TJm
+(such) 18.2614 Tj
+-250 TJm
+(\002les) 16.6077 Tj
+-250 TJm
+(through) 30.9936 Tj
+-250 TJm
+(unmodi\002ed.) 47.8803 Tj
+-310 TJm
+(This) 17.7135 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(GNU) 21.579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+412.585 272.461 Td
+/F124_0 9.9626 Tf
+(gzip) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+438.986 272.461 Td
+/F122_0 9.9626 Tf
+(beha) 18.8094 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(es.) 10.7895 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 246.795 Td
+/F124_0 9.9626 Tf
+(-k) 11.9551 Tj
+-600 TJm
+(--keep) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 234.84 Td
+/F122_0 9.9626 Tf
+(K) 7.193 Tj
+25 TJm
+(eep) 13.8281 Tj
+-250 TJm
+(\(don') 21.579 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(delete\)) 27.1082 Tj
+-250 TJm
+(input) 20.4831 Tj
+-250 TJm
+(\002les) 16.6077 Tj
+-250 TJm
+(during) 26.0123 Tj
+-250 TJm
+(compression) 50.3609 Tj
+-250 TJm
+(or) 8.2988 Tj
+-250 TJm
+(decompression.) 62.2563 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 209.174 Td
+/F124_0 9.9626 Tf
+(-s) 11.9551 Tj
+-600 TJm
+(--small) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 197.219 Td
+/F122_0 9.9626 Tf
+(Reduce) 29.8778 Tj
+-347 TJm
+(memory) 33.2053 Tj
+-347 TJm
+(usage,) 25.1755 Tj
+-371 TJm
+(for) 11.6164 Tj
+-346 TJm
+(compression,) 52.8516 Tj
+-371 TJm
+(decompression) 59.7656 Tj
+-347 TJm
+(and) 14.386 Tj
+-347 TJm
+(testing.) 29.0609 Tj
+-1201 TJm
+(Files) 19.3773 Tj
+-347 TJm
+(are) 12.1643 Tj
+-347 TJm
+(decompressed) 56.4381 Tj
+-346 TJm
+(and) 14.386 Tj
+-347 TJm
+(tested) 23.2427 Tj
+108 185.264 Td
+(using) 21.589 Tj
+-388 TJm
+(a) 4.4234 Tj
+-388 TJm
+(modi\002ed) 35.427 Tj
+-388 TJm
+(algorithm) 38.7446 Tj
+-389 TJm
+(which) 24.3486 Tj
+-388 TJm
+(only) 17.7135 Tj
+-388 TJm
+(requires) 32.0895 Tj
+-388 TJm
+(2.5) 12.4533 Tj
+-388 TJm
+(bytes) 21.031 Tj
+-388 TJm
+(per) 12.7222 Tj
+-388 TJm
+(block) 22.1369 Tj
+-389 TJm
+(byte.) 19.6462 Tj
+-1448 TJm
+(This) 17.7135 Tj
+-389 TJm
+(means) 25.4544 Tj
+-388 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-388 TJm
+(\002le) 12.7322 Tj
+-388 TJm
+(can) 13.8281 Tj
+-388 TJm
+(be) 9.4047 Tj
+108 173.309 Td
+(decompressed) 56.4381 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(2300k) 24.9065 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(memory) 33.2053 Tj
+65 TJm
+(,) 2.4907 Tj
+-250 TJm
+(albeit) 22.1369 Tj
+-250 TJm
+(at) 7.193 Tj
+-250 TJm
+(about) 22.1369 Tj
+-250 TJm
+(half) 15.4918 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(normal) 28.224 Tj
+-250 TJm
+(speed.) 25.1755 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 151.51 Td
+(During) 28.224 Tj
+-252 TJm
+(compr) 25.4544 Tj
+1 TJm
+(ession,) 27.3972 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+194.091 151.51 Td
+/F124_0 9.9626 Tf
+(-s) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+208.551 151.51 Td
+/F122_0 9.9626 Tf
+(selects) 26.5603 Tj
+-252 TJm
+(a) 4.4234 Tj
+-251 TJm
+(block) 22.1369 Tj
+-252 TJm
+(size) 15.4918 Tj
+-251 TJm
+(of) 8.2988 Tj
+-252 TJm
+(200k,) 22.4159 Tj
+-251 TJm
+(which) 24.3486 Tj
+-252 TJm
+(limits) 22.7048 Tj
+-251 TJm
+(memory) 33.2053 Tj
+-252 TJm
+(use) 13.2801 Tj
+-251 TJm
+(to) 7.7509 Tj
+-252 TJm
+(around) 27.6661 Tj
+-251 TJm
+(the) 12.1743 Tj
+-252 TJm
+(same) 20.4731 Tj
+-251 TJm
+(\002gure,) 25.7334 Tj
+-252 TJm
+(at) 7.193 Tj
+108 139.554 Td
+(the) 12.1743 Tj
+-287 TJm
+(e) 4.4234 Tj
+15 TJm
+(xpense) 27.6661 Tj
+-287 TJm
+(of) 8.2988 Tj
+-288 TJm
+(your) 18.2614 Tj
+-287 TJm
+(compression) 50.3609 Tj
+-287 TJm
+(ratio.) 20.7521 Tj
+-843 TJm
+(In) 8.2988 Tj
+-287 TJm
+(short,) 22.4159 Tj
+-297 TJm
+(if) 6.0871 Tj
+-287 TJm
+(your) 18.2614 Tj
+-287 TJm
+(machine) 33.7533 Tj
+-287 TJm
+(is) 6.6451 Tj
+-287 TJm
+(lo) 7.7509 Tj
+25 TJm
+(w) 7.193 Tj
+-287 TJm
+(on) 9.9626 Tj
+-288 TJm
+(memory) 33.2053 Tj
+-287 TJm
+(\(8) 8.2988 Tj
+-287 TJm
+(me) 12.1743 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(abytes) 25.4544 Tj
+-287 TJm
+(or) 8.2988 Tj
+-287 TJm
+(less\),) 20.7521 Tj
+108 127.599 Td
+(use) 13.2801 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+123.771 127.599 Td
+/F124_0 9.9626 Tf
+(-s) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+138.217 127.599 Td
+/F122_0 9.9626 Tf
+(for) 11.6164 Tj
+-250 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(erything.) 35.696 Tj
+-620 TJm
+(See) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+(MEMOR) 37.6387 Tj
+65 TJm
+(Y) 7.193 Tj
+-250 TJm
+(MAN) 23.2427 Tj
+35 TJm
+(A) 7.193 Tj
+40 TJm
+(GEMENT) 41.5042 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+([5]) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(belo) 17.1556 Tj
+25 TJm
+(w) 7.193 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 101.933 Td
+/F124_0 9.9626 Tf
+(-q) 11.9551 Tj
+-600 TJm
+(--quiet) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 89.978 Td
+/F122_0 9.9626 Tf
+(Suppress) 35.9749 Tj
+-221 TJm
+(non-essential) 52.5726 Tj
+-220 TJm
+(w) 7.193 Tj
+10 TJm
+(arning) 25.4544 Tj
+-221 TJm
+(messages.) 40.1194 Tj
+-300 TJm
+(Messages) 38.7346 Tj
+-221 TJm
+(pertaining) 40.3983 Tj
+-221 TJm
+(to) 7.7509 Tj
+-220 TJm
+(I/O) 13.2801 Tj
+-221 TJm
+(errors) 23.2328 Tj
+-221 TJm
+(and) 14.386 Tj
+-220 TJm
+(other) 20.4731 Tj
+-221 TJm
+(critical) 27.6661 Tj
+-221 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ents) 16.0497 Tj
+-221 TJm
+(wi) 9.9626 Tj
+1 TJm
+(ll) 5.5392 Tj
+-221 TJm
+(not) 12.7322 Tj
+108 78.023 Td
+(be) 9.4047 Tj
+-250 TJm
+(suppressed.) 46.2065 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.852 Td
+(4) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 5 8
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+477.109 749.245 Td
+/F122_0 9.9626 Tf
+(Ho) 12.1743 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(bzip2) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F124_0 9.9626 Tf
+(-v) 11.9551 Tj
+-600 TJm
+(--verbose) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 698.082 Td
+/F122_0 9.9626 Tf
+(V) 7.193 Tj
+111 TJm
+(erbose) 26.0024 Tj
+-323 TJm
+(mode) 22.1369 Tj
+-322 TJm
+(--) 6.6351 Tj
+-323 TJm
+(sho) 13.8381 Tj
+25 TJm
+(w) 7.193 Tj
+-322 TJm
+(the) 12.1743 Tj
+-323 TJm
+(compression) 50.3609 Tj
+-323 TJm
+(ratio) 18.2614 Tj
+-322 TJm
+(for) 11.6164 Tj
+-323 TJm
+(each) 18.2515 Tj
+-322 TJm
+(\002le) 12.7322 Tj
+-323 TJm
+(processed.) 41.7732 Tj
+-1056 TJm
+(Further) 29.3299 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+430.015 698.082 Td
+/F124_0 9.9626 Tf
+(-v) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+441.97 698.082 Td
+/F122_0 9.9626 Tf
+(') 3.3175 Tj
+55 TJm
+(s) 3.8755 Tj
+-323 TJm
+(increase) 32.6375 Tj
+-322 TJm
+(the) 12.1743 Tj
+-323 TJm
+(v) 4.9813 Tj
+15 TJm
+(erbosity) 32.0995 Tj
+108 686.127 Td
+(le) 7.193 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el,) 9.6836 Tj
+-250 TJm
+(spe) 13.2801 Tj
+25 TJm
+(wing) 19.9252 Tj
+-250 TJm
+(out) 12.7322 Tj
+-250 TJm
+(lots) 14.396 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(information) 47.0434 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(primarily) 37.0808 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(interest) 29.3299 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(diagnostic) 40.9562 Tj
+-250 TJm
+(purposes.) 37.9077 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 660.224 Td
+/F124_0 9.9626 Tf
+(-L) 11.9551 Tj
+-600 TJm
+(--license) 53.798 Tj
+-600 TJm
+(-V) 11.9551 Tj
+-600 TJm
+(--version) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 648.269 Td
+/F122_0 9.9626 Tf
+(Display) 30.9936 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(softw) 22.1369 Tj
+10 TJm
+(are) 12.1643 Tj
+-250 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion,) 26.8392 Tj
+-250 TJm
+(license) 27.6661 Tj
+-250 TJm
+(terms) 22.1369 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(conditions.) 44.0048 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 622.366 Td
+/F124_0 9.9626 Tf
+(-1) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+86.446 622.366 Td
+/F122_0 9.9626 Tf
+(\(or) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+100.553 622.366 Td
+/F124_0 9.9626 Tf
+(--fast) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+136.418 622.366 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+152.468 622.366 Td
+/F124_0 9.9626 Tf
+(-9) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.914 622.366 Td
+/F122_0 9.9626 Tf
+(\(or) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+181.021 622.366 Td
+/F124_0 9.9626 Tf
+(-best) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.909 622.366 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 610.411 Td
+(Set) 12.7322 Tj
+-288 TJm
+(the) 12.1743 Tj
+-289 TJm
+(block) 22.1369 Tj
+-288 TJm
+(size) 15.4918 Tj
+-288 TJm
+(to) 7.7509 Tj
+-288 TJm
+(100) 14.9439 Tj
+-289 TJm
+(k,) 7.472 Tj
+-298 TJm
+(200) 14.9439 Tj
+-288 TJm
+(k) 4.9813 Tj
+-288 TJm
+(...) 7.472 Tj
+-850 TJm
+(900) 14.9439 Tj
+-288 TJm
+(k) 4.9813 Tj
+-288 TJm
+(when) 21.579 Tj
+-289 TJm
+(compressing.) 52.8516 Tj
+-849 TJm
+(Has) 15.4918 Tj
+-289 TJm
+(no) 9.9626 Tj
+-288 TJm
+(ef) 7.7409 Tj
+25 TJm
+(fect) 14.9339 Tj
+-288 TJm
+(when) 21.579 Tj
+-288 TJm
+(decompressing.) 62.2563 Tj
+-850 TJm
+(See) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+108 598.456 Td
+(MEMOR) 37.6387 Tj
+65 TJm
+(Y) 7.193 Tj
+-297 TJm
+(MAN) 23.2427 Tj
+35 TJm
+(A) 7.193 Tj
+40 TJm
+(GEMENT) 41.5042 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-297 TJm
+([5]) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-298 TJm
+(belo) 17.1556 Tj
+25 TJm
+(w) 7.193 Tj
+65 TJm
+(.) 2.4907 Tj
+-904 TJm
+(The) 15.4918 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+297.278 598.456 Td
+/F124_0 9.9626 Tf
+(--fast) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+336.106 598.456 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+353.454 598.456 Td
+/F124_0 9.9626 Tf
+(--best) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.281 598.456 Td
+/F122_0 9.9626 Tf
+(aliases) 26.5603 Tj
+-297 TJm
+(are) 12.1643 Tj
+-298 TJm
+(primarily) 37.0808 Tj
+-297 TJm
+(for) 11.6164 Tj
+-297 TJm
+(GNU) 21.579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+516.09 598.456 Td
+/F124_0 9.9626 Tf
+(gzip) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 586.501 Td
+/F122_0 9.9626 Tf
+(compatibility) 53.1405 Tj
+65 TJm
+(.) 2.4907 Tj
+-356 TJm
+(In) 8.2988 Tj
+-265 TJm
+(particular) 38.1767 Tj
+40 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+220.423 586.501 Td
+/F124_0 9.9626 Tf
+(--fast) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+258.932 586.501 Td
+/F122_0 9.9626 Tf
+(doesn') 26.5603 Tj
+18 TJm
+(t) 2.7696 Tj
+-265 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e) 4.4234 Tj
+-266 TJm
+(things) 24.3586 Tj
+-265 TJm
+(signi\002cantly) 49.2651 Tj
+-265 TJm
+(f) 3.3175 Tj
+10 TJm
+(aster) 18.8094 Tj
+55 TJm
+(.) 2.4907 Tj
+-712 TJm
+(And) 17.1556 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+444.622 586.501 Td
+/F124_0 9.9626 Tf
+(--best) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+483.131 586.501 Td
+/F122_0 9.9626 Tf
+(merely) 27.6661 Tj
+-265 TJm
+(selects) 26.5603 Tj
+108 574.545 Td
+(the) 12.1743 Tj
+-250 TJm
+(def) 12.7222 Tj
+10 TJm
+(ault) 14.9439 Tj
+-250 TJm
+(beha) 18.8094 Tj
+20 TJm
+(viour) 21.031 Tj
+55 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 548.643 Td
+/F124_0 9.9626 Tf
+(--) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 536.688 Td
+/F122_0 9.9626 Tf
+(T) 6.0871 Tj
+35 TJm
+(reats) 18.8094 Tj
+-261 TJm
+(all) 9.9626 Tj
+-261 TJm
+(subsequent) 44.2738 Tj
+-260 TJm
+(ar) 7.7409 Tj
+18 TJm
+(guments) 33.7633 Tj
+-261 TJm
+(as) 8.2988 Tj
+-261 TJm
+(\002le) 12.7322 Tj
+-261 TJm
+(names,) 27.9451 Tj
+-263 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-261 TJm
+(if) 6.0871 Tj
+-261 TJm
+(the) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-260 TJm
+(start) 17.1556 Tj
+-261 TJm
+(with) 17.7135 Tj
+-261 TJm
+(a) 4.4234 Tj
+-261 TJm
+(dash.) 20.7521 Tj
+-685 TJm
+(This) 17.7135 Tj
+-260 TJm
+(is) 6.6451 Tj
+-261 TJm
+(so) 8.8568 Tj
+-261 TJm
+(you) 14.9439 Tj
+-261 TJm
+(can) 13.8281 Tj
+-260 TJm
+(handle) 26.5603 Tj
+-261 TJm
+(\002les) 16.6077 Tj
+108 524.732 Td
+(with) 17.7135 Tj
+-250 TJm
+(names) 25.4544 Tj
+-250 TJm
+(be) 9.4047 Tj
+15 TJm
+(ginning) 30.4457 Tj
+-250 TJm
+(with) 17.7135 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(dash,) 20.7521 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(e) 4.4234 Tj
+15 TJm
+(xample:) 32.0995 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+302.27 524.732 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+-600 TJm
+(--) 11.9551 Tj
+-600 TJm
+(-myfilename) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+421.821 524.732 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 498.83 Td
+/F124_0 9.9626 Tf
+(--repetitive-fast) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+178.6 498.83 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.563 498.83 Td
+/F124_0 9.9626 Tf
+(--repetitive-best) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 486.874 Td
+/F122_0 9.9626 Tf
+(These) 23.7907 Tj
+-207 TJm
+(\003ags) 18.8194 Tj
+-206 TJm
+(are) 12.1643 Tj
+-207 TJm
+(redundant) 39.8404 Tj
+-207 TJm
+(in) 7.7509 Tj
+-206 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersions) 28.224 Tj
+-207 TJm
+(0.9.5) 19.9252 Tj
+-207 TJm
+(and) 14.386 Tj
+-206 TJm
+(abo) 14.386 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e.) 6.914 Tj
+-591 TJm
+(The) 15.4918 Tj
+15 TJm
+(y) 4.9813 Tj
+-207 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vided) 22.1369 Tj
+-207 TJm
+(some) 21.031 Tj
+-207 TJm
+(coa) 13.8281 Tj
+1 TJm
+(rse) 11.6164 Tj
+-207 TJm
+(control) 28.224 Tj
+-207 TJm
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-207 TJm
+(the) 12.1743 Tj
+-206 TJm
+(beha) 18.8094 Tj
+20 TJm
+(viour) 21.031 Tj
+108 474.919 Td
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-251 TJm
+(sorting) 27.6761 Tj
+-250 TJm
+(algorithm) 38.7446 Tj
+-250 TJm
+(in) 7.7509 Tj
+-251 TJm
+(earlier) 25.4445 Tj
+-250 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersions,) 30.7147 Tj
+-250 TJm
+(which) 24.3486 Tj
+-251 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-250 TJm
+(sometimes) 42.62 Tj
+-250 TJm
+(useful.) 26.8392 Tj
+-622 TJm
+(0.9.5) 19.9252 Tj
+-251 TJm
+(and) 14.386 Tj
+-250 TJm
+(abo) 14.386 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-251 TJm
+(an) 9.4047 Tj
+-250 TJm
+(impro) 23.8007 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(ed) 9.4047 Tj
+108 462.964 Td
+(algorithm) 38.7446 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(renders) 29.3199 Tj
+-250 TJm
+(these) 20.4731 Tj
+-250 TJm
+(\003ags) 18.8194 Tj
+-250 TJm
+(irrele) 21.0211 Tj
+25 TJm
+(v) 4.9813 Tj
+25 TJm
+(ant.) 14.6649 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 414.264 Td
+/F116_0 20.6585 Tf
+(2.5.) 34.4584 Tj
+-278 TJm
+(MEMOR) 79.184 Tj
+50 TJm
+(Y) 13.7792 Tj
+-278 TJm
+(MANA) 61.9548 Tj
+50 TJm
+(GEMENT) 88.3771 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 392.346 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.454 392.346 Td
+/F122_0 9.9626 Tf
+(compresses) 45.9276 Tj
+-258 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ge) 9.4047 Tj
+-257 TJm
+(\002les) 16.6077 Tj
+-258 TJm
+(in) 7.7509 Tj
+-257 TJm
+(blocks.) 28.503 Tj
+-666 TJm
+(The) 15.4918 Tj
+-257 TJm
+(block) 22.1369 Tj
+-258 TJm
+(size) 15.4918 Tj
+-258 TJm
+(af) 7.7409 Tj
+25 TJm
+(fects) 18.8094 Tj
+-257 TJm
+(both) 17.7135 Tj
+-258 TJm
+(the) 12.1743 Tj
+-257 TJm
+(compression) 50.3609 Tj
+-258 TJm
+(ratio) 18.2614 Tj
+-257 TJm
+(achie) 21.0211 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ed,) 11.8953 Tj
+-260 TJm
+(and) 14.386 Tj
+-258 TJm
+(the) 12.1743 Tj
+-257 TJm
+(amount) 29.8878 Tj
+72 380.391 Td
+(of) 8.2988 Tj
+-215 TJm
+(memory) 33.2053 Tj
+-215 TJm
+(needed) 28.2141 Tj
+-215 TJm
+(for) 11.6164 Tj
+-215 TJm
+(compression) 50.3609 Tj
+-214 TJm
+(and) 14.386 Tj
+-215 TJm
+(decompression.) 62.2563 Tj
+-597 TJm
+(The) 15.4918 Tj
+-215 TJm
+(\003ags) 18.8194 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+337.719 380.391 Td
+/F124_0 9.9626 Tf
+(-1) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+351.815 380.391 Td
+/F122_0 9.9626 Tf
+(through) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+384.95 380.391 Td
+/F124_0 9.9626 Tf
+(-9) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+399.046 380.391 Td
+/F122_0 9.9626 Tf
+(specify) 28.772 Tj
+-215 TJm
+(the) 12.1743 Tj
+-215 TJm
+(block) 22.1369 Tj
+-215 TJm
+(size) 15.4918 Tj
+-215 TJm
+(to) 7.7509 Tj
+-214 TJm
+(be) 9.4047 Tj
+-215 TJm
+(100,000) 32.3785 Tj
+72 368.435 Td
+(bytes) 21.031 Tj
+-278 TJm
+(through) 30.9936 Tj
+-277 TJm
+(900,000) 32.3785 Tj
+-278 TJm
+(bytes) 21.031 Tj
+-278 TJm
+(\(the) 15.4918 Tj
+-277 TJm
+(def) 12.7222 Tj
+10 TJm
+(ault\)) 18.2614 Tj
+-278 TJm
+(respecti) 30.9837 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ely) 12.1743 Tj
+65 TJm
+(.) 2.4907 Tj
+-786 TJm
+(At) 9.9626 Tj
+-278 TJm
+(decompression) 59.7656 Tj
+-278 TJm
+(time,) 20.2042 Tj
+-284 TJm
+(the) 12.1743 Tj
+-278 TJm
+(block) 22.1369 Tj
+-278 TJm
+(size) 15.4918 Tj
+-277 TJm
+(used) 18.2614 Tj
+-278 TJm
+(for) 11.6164 Tj
+-278 TJm
+(compression) 50.3609 Tj
+72 356.48 Td
+(is) 6.6451 Tj
+-243 TJm
+(read) 17.1456 Tj
+-242 TJm
+(from) 19.3673 Tj
+-243 TJm
+(the) 12.1743 Tj
+-242 TJm
+(header) 26.5503 Tj
+-243 TJm
+(of) 8.2988 Tj
+-242 TJm
+(the) 12.1743 Tj
+-243 TJm
+(compressed) 47.0334 Tj
+-242 TJm
+(\002le,) 15.2229 Tj
+-244 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+275.174 356.48 Td
+/F124_0 9.9626 Tf
+(bunzip2) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+319.433 356.48 Td
+/F122_0 9.9626 Tf
+(then) 17.1556 Tj
+-243 TJm
+(all) 9.9626 Tj
+1 TJm
+(o) 4.9813 Tj
+-1 TJm
+(c) 4.4234 Tj
+1 TJm
+(ates) 15.4918 Tj
+-243 TJm
+(itself) 19.9252 Tj
+-242 TJm
+(just) 14.396 Tj
+-243 TJm
+(enough) 29.3299 Tj
+-243 TJm
+(memory) 33.2053 Tj
+-242 TJm
+(to) 7.7509 Tj
+-243 TJm
+(decompress) 47.0334 Tj
+72 344.525 Td
+(the) 12.1743 Tj
+-303 TJm
+(\002le.) 15.2229 Tj
+-940 TJm
+(Since) 22.1369 Tj
+-304 TJm
+(block) 22.1369 Tj
+-303 TJm
+(sizes) 19.3673 Tj
+-303 TJm
+(are) 12.1643 Tj
+-303 TJm
+(stored) 24.3486 Tj
+-304 TJm
+(in) 7.7509 Tj
+-303 TJm
+(compressed) 47.0334 Tj
+-303 TJm
+(\002les,) 19.0983 Tj
+-317 TJm
+(it) 5.5392 Tj
+-303 TJm
+(follo) 18.8194 Tj
+25 TJm
+(ws) 11.0684 Tj
+-304 TJm
+(that) 14.9439 Tj
+-303 TJm
+(the) 12.1743 Tj
+-303 TJm
+(\003ags) 18.8194 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+406.35 344.525 Td
+/F124_0 9.9626 Tf
+(-1) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+421.327 344.525 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+432.1 344.525 Td
+/F124_0 9.9626 Tf
+(-9) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+447.077 344.525 Td
+/F122_0 9.9626 Tf
+(are) 12.1643 Tj
+-303 TJm
+(irrele) 21.0211 Tj
+25 TJm
+(v) 4.9813 Tj
+25 TJm
+(ant) 12.1743 Tj
+-304 TJm
+(to) 7.7509 Tj
+-303 TJm
+(and) 14.386 Tj
+-303 TJm
+(so) 8.8568 Tj
+72 332.57 Td
+(ignored) 30.4357 Tj
+-250 TJm
+(during) 26.0123 Tj
+-250 TJm
+(decompression.) 62.2563 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 310.652 Td
+(Compression) 52.5826 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(decompression) 59.7656 Tj
+-250 TJm
+(requirements,) 54.5054 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(bytes,) 23.5217 Tj
+-250 TJm
+(can) 13.8281 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(estimated) 38.1866 Tj
+-250 TJm
+(as:) 11.0684 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 247.723] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 299.131 Td
+/F124_0 9.9626 Tf
+(Compression:) 71.7307 Tj
+-1278 TJm
+(400k) 23.9102 Tj
+-426 TJm
+(+) 5.9776 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(8) 5.9776 Tj
+-426 TJm
+(x) 5.9776 Tj
+-426 TJm
+(block) 29.8878 Tj
+-426 TJm
+(size) 23.9102 Tj
+-426 TJm
+(\)) 5.9776 Tj
+90 275.22 Td
+(Decompression:) 83.6858 Tj
+-426 TJm
+(100k) 23.9102 Tj
+-426 TJm
+(+) 5.9776 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(4) 5.9776 Tj
+-426 TJm
+(x) 5.9776 Tj
+-426 TJm
+(block) 29.8878 Tj
+-426 TJm
+(size) 23.9102 Tj
+-426 TJm
+(\),) 11.9551 Tj
+-426 TJm
+(or) 11.9551 Tj
+153.66 263.265 Td
+(100k) 23.9102 Tj
+-426 TJm
+(+) 5.9776 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(2.5) 17.9327 Tj
+-426 TJm
+(x) 5.9776 Tj
+-426 TJm
+(block) 29.8878 Tj
+-426 TJm
+(size) 23.9102 Tj
+-426 TJm
+(\)) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 225.805 Td
+/F122_0 9.9626 Tf
+(Lar) 13.8281 Tj
+18 TJm
+(ger) 12.7222 Tj
+-292 TJm
+(block) 22.1369 Tj
+-292 TJm
+(sizes) 19.3673 Tj
+-291 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-292 TJm
+(rapidly) 28.224 Tj
+-292 TJm
+(diminishing) 47.6113 Tj
+-292 TJm
+(mar) 15.4918 Tj
+18 TJm
+(ginal) 19.9252 Tj
+-291 TJm
+(returns.) 30.1568 Tj
+-871 TJm
+(Most) 20.4831 Tj
+-292 TJm
+(of) 8.2988 Tj
+-291 TJm
+(the) 12.1743 Tj
+-292 TJm
+(compression) 50.3609 Tj
+-292 TJm
+(comes) 25.4544 Tj
+-292 TJm
+(from) 19.3673 Tj
+-291 TJm
+(the) 12.1743 Tj
+-292 TJm
+(\002rst) 15.5018 Tj
+-292 TJm
+(tw) 9.9626 Tj
+10 TJm
+(o) 4.9813 Tj
+-292 TJm
+(or) 8.2988 Tj
+72 213.85 Td
+(three) 19.9152 Tj
+-232 TJm
+(hundred) 32.6474 Tj
+-232 TJm
+(k) 4.9813 Tj
+-232 TJm
+(of) 8.2988 Tj
+-232 TJm
+(block) 22.1369 Tj
+-232 TJm
+(size,) 17.9825 Tj
+-235 TJm
+(a) 4.4234 Tj
+-232 TJm
+(f) 3.3175 Tj
+10 TJm
+(act) 11.6164 Tj
+-232 TJm
+(w) 7.193 Tj
+10 TJm
+(orth) 16.0497 Tj
+-232 TJm
+(bearing) 29.8778 Tj
+-232 TJm
+(in) 7.7509 Tj
+-232 TJm
+(mind) 20.4831 Tj
+-232 TJm
+(when) 21.579 Tj
+-231 TJm
+(using) 21.589 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+354.025 213.85 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+386.223 213.85 Td
+/F122_0 9.9626 Tf
+(on) 9.9626 Tj
+-232 TJm
+(small) 21.589 Tj
+-232 TJm
+(machines.) 40.1194 Tj
+-304 TJm
+(It) 6.0871 Tj
+-232 TJm
+(is) 6.6451 Tj
+-232 TJm
+(also) 16.0497 Tj
+-231 TJm
+(important) 38.7446 Tj
+72 201.895 Td
+(to) 7.7509 Tj
+-250 TJm
+(appreciate) 40.9363 Tj
+-250 TJm
+(that) 14.9439 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(decompression) 59.7656 Tj
+-250 TJm
+(memory) 33.2053 Tj
+-250 TJm
+(requirement) 48.1393 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(set) 11.0684 Tj
+-250 TJm
+(at) 7.193 Tj
+-250 TJm
+(compression) 50.3609 Tj
+-250 TJm
+(time) 17.7135 Tj
+-250 TJm
+(by) 9.9626 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(choice) 26.0024 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(block) 22.1369 Tj
+-250 TJm
+(size.) 17.9825 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 179.977 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-388 TJm
+(\002les) 16.6077 Tj
+-389 TJm
+(compressed) 47.0334 Tj
+-388 TJm
+(with) 17.7135 Tj
+-389 TJm
+(the) 12.1743 Tj
+-388 TJm
+(def) 12.7222 Tj
+10 TJm
+(ault) 14.9439 Tj
+-389 TJm
+(900k) 19.9252 Tj
+-388 TJm
+(block) 22.1369 Tj
+-389 TJm
+(size,) 17.9825 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+302.002 179.977 Td
+/F124_0 9.9626 Tf
+(bunzip2) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+347.716 179.977 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-388 TJm
+(require) 28.2141 Tj
+-389 TJm
+(about) 22.1369 Tj
+-388 TJm
+(3700) 19.9252 Tj
+-389 TJm
+(kbytes) 26.0123 Tj
+-388 TJm
+(to) 7.7509 Tj
+-389 TJm
+(decompress.) 49.5241 Tj
+72 168.022 Td
+(T) 6.0871 Tj
+80 TJm
+(o) 4.9813 Tj
+-424 TJm
+(support) 29.8878 Tj
+-425 TJm
+(decompression) 59.7656 Tj
+-424 TJm
+(of) 8.2988 Tj
+-424 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-425 TJm
+(\002l) 8.3088 Tj
+1 TJm
+(e) 4.4234 Tj
+-425 TJm
+(on) 9.9626 Tj
+-424 TJm
+(a) 4.4234 Tj
+-424 TJm
+(4) 4.9813 Tj
+-425 TJm
+(me) 12.1743 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(abyte) 21.579 Tj
+-424 TJm
+(machine,) 36.2439 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+348.272 168.022 Td
+/F124_0 9.9626 Tf
+(bunzip2) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+394.342 168.022 Td
+/F122_0 9.9626 Tf
+(has) 13.2801 Tj
+-424 TJm
+(an) 9.4047 Tj
+-425 TJm
+(option) 25.4644 Tj
+-424 TJm
+(to) 7.7509 Tj
+-424 TJm
+(decompress) 47.0334 Tj
+-424 TJm
+(using) 21.589 Tj
+72 156.067 Td
+(approximately) 57.5539 Tj
+-281 TJm
+(half) 15.4918 Tj
+-281 TJm
+(this) 14.396 Tj
+-280 TJm
+(amount) 29.8878 Tj
+-281 TJm
+(of) 8.2988 Tj
+-281 TJm
+(memory) 33.2053 Tj
+65 TJm
+(,) 2.4907 Tj
+-288 TJm
+(about) 22.1369 Tj
+-281 TJm
+(2300) 19.9252 Tj
+-281 TJm
+(kbytes.) 28.503 Tj
+-805 TJm
+(Decompression) 61.9773 Tj
+-280 TJm
+(speed) 22.6848 Tj
+-281 TJm
+(is) 6.6451 Tj
+-281 TJm
+(also) 16.0497 Tj
+-281 TJm
+(halv) 17.1556 Tj
+15 TJm
+(ed,) 11.8953 Tj
+-288 TJm
+(so) 8.8568 Tj
+-281 TJm
+(you) 14.9439 Tj
+-281 TJm
+(should) 26.5703 Tj
+72 144.112 Td
+(use) 13.2801 Tj
+-250 TJm
+(this) 14.396 Tj
+-250 TJm
+(option) 25.4644 Tj
+-250 TJm
+(only) 17.7135 Tj
+-250 TJm
+(where) 24.3386 Tj
+-250 TJm
+(necessary) 38.7246 Tj
+65 TJm
+(.) 2.4907 Tj
+-620 TJm
+(The) 15.4918 Tj
+-250 TJm
+(rele) 14.9339 Tj
+25 TJm
+(v) 4.9813 Tj
+25 TJm
+(ant) 12.1743 Tj
+-250 TJm
+(\003ag) 14.9439 Tj
+-250 TJm
+(is) 6.6451 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.024 144.112 Td
+/F124_0 9.9626 Tf
+(-s) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+316.979 144.112 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 122.194 Td
+(In) 8.2988 Tj
+-204 TJm
+(general,) 31.8106 Tj
+-214 TJm
+(try) 11.0684 Tj
+-204 TJm
+(and) 14.386 Tj
+-205 TJm
+(use) 13.2801 Tj
+-204 TJm
+(the) 12.1743 Tj
+-204 TJm
+(lar) 10.5105 Tj
+18 TJm
+(gest) 16.0497 Tj
+-205 TJm
+(block) 22.1369 Tj
+-204 TJm
+(size) 15.4918 Tj
+-205 TJm
+(memory) 33.2053 Tj
+-204 TJm
+(constraints) 43.1679 Tj
+-204 TJm
+(allo) 14.9439 Tj
+25 TJm
+(w) 7.193 Tj
+65 TJm
+(,) 2.4907 Tj
+-214 TJm
+(since) 20.4731 Tj
+-204 TJm
+(that) 14.9439 Tj
+-205 TJm
+(maximises) 42.62 Tj
+-204 TJm
+(the) 12.1743 Tj
+-204 TJm
+(compression) 50.3609 Tj
+-205 TJm
+(achie) 21.0211 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ed.) 11.8953 Tj
+72 110.239 Td
+(Compression) 52.5826 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(decompression) 59.7656 Tj
+-250 TJm
+(speed) 22.6848 Tj
+-250 TJm
+(are) 12.1643 Tj
+-250 TJm
+(virtually) 33.7633 Tj
+-250 TJm
+(unaf) 17.7035 Tj
+25 TJm
+(fected) 24.3386 Tj
+-250 TJm
+(by) 9.9626 Tj
+-250 TJm
+(block) 22.1369 Tj
+-250 TJm
+(size.) 17.9825 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 88.321 Td
+(Another) 32.6474 Tj
+-296 TJm
+(signi\002cant) 41.5142 Tj
+-296 TJm
+(point) 20.4831 Tj
+-295 TJm
+(applies) 28.224 Tj
+-296 TJm
+(to) 7.7509 Tj
+-296 TJm
+(\002les) 16.6077 Tj
+-296 TJm
+(which) 24.3486 Tj
+-296 TJm
+(\002t) 8.3088 Tj
+-296 TJm
+(in) 7.7509 Tj
+-296 TJm
+(a) 4.4234 Tj
+-295 TJm
+(single) 23.8007 Tj
+-296 TJm
+(block) 22.1369 Tj
+-296 TJm
+(--) 6.6351 Tj
+-296 TJm
+(that) 14.9439 Tj
+-296 TJm
+(means) 25.4544 Tj
+-296 TJm
+(most) 19.3773 Tj
+-295 TJm
+(\002les) 16.6077 Tj
+-296 TJm
+(you') 18.2614 Tj
+50 TJm
+(d) 4.9813 Tj
+-296 TJm
+(encounter) 39.2825 Tj
+-296 TJm
+(using) 21.589 Tj
+-296 TJm
+(a) 4.4234 Tj
+72 76.366 Td
+(lar) 10.5105 Tj
+18 TJm
+(ge) 9.4047 Tj
+-290 TJm
+(block) 22.1369 Tj
+-290 TJm
+(size.) 17.9825 Tj
+-859 TJm
+(The) 15.4918 Tj
+-290 TJm
+(amount) 29.8878 Tj
+-290 TJm
+(of) 8.2988 Tj
+-290 TJm
+(real) 14.9339 Tj
+-290 TJm
+(memory) 33.2053 Tj
+-289 TJm
+(touched) 31.5416 Tj
+-290 TJm
+(is) 6.6451 Tj
+-290 TJm
+(proportional) 49.2551 Tj
+-290 TJm
+(to) 7.7509 Tj
+-290 TJm
+(the) 12.1743 Tj
+-290 TJm
+(size) 15.4918 Tj
+-290 TJm
+(of) 8.2988 Tj
+-290 TJm
+(the) 12.1743 Tj
+-289 TJm
+(\002le,) 15.2229 Tj
+-300 TJm
+(since) 20.4731 Tj
+-290 TJm
+(the) 12.1743 Tj
+-290 TJm
+(\002le) 12.7322 Tj
+-290 TJm
+(is) 6.6451 Tj
+-290 TJm
+(smaller) 29.3299 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.951 Td
+(5) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 6 9
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+477.109 749.245 Td
+/F122_0 9.9626 Tf
+(Ho) 12.1743 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(bzip2) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(than) 17.1556 Tj
+-362 TJm
+(a) 4.4234 Tj
+-362 TJm
+(block.) 24.6275 Tj
+-1293 TJm
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-362 TJm
+(e) 4.4234 Tj
+15 TJm
+(xample,) 31.8205 Tj
+-390 TJm
+(compressing) 50.3609 Tj
+-362 TJm
+(a) 4.4234 Tj
+-362 TJm
+(\002le) 12.7322 Tj
+-362 TJm
+(20,000) 27.3972 Tj
+-362 TJm
+(bytes) 21.031 Tj
+-362 TJm
+(long) 17.7135 Tj
+-362 TJm
+(with) 17.7135 Tj
+-362 TJm
+(the) 12.1743 Tj
+-362 TJm
+(\003ag) 14.9439 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+406.528 710.037 Td
+/F124_0 9.9626 Tf
+(-9) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+422.09 710.037 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-362 TJm
+(cause) 22.1269 Tj
+-362 TJm
+(the) 12.1743 Tj
+-362 TJm
+(compressor) 45.9276 Tj
+-362 TJm
+(to) 7.7509 Tj
+72 698.082 Td
+(allocate) 30.9837 Tj
+-271 TJm
+(around) 27.6661 Tj
+-272 TJm
+(7600k) 24.9065 Tj
+-271 TJm
+(of) 8.2988 Tj
+-272 TJm
+(memory) 33.2053 Tj
+65 TJm
+(,) 2.4907 Tj
+-277 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-271 TJm
+(only) 17.7135 Tj
+-272 TJm
+(touch) 22.1369 Tj
+-271 TJm
+(400k) 19.9252 Tj
+-272 TJm
+(+) 5.6189 Tj
+-271 TJm
+(20000) 24.9065 Tj
+-272 TJm
+(*) 4.9813 Tj
+-271 TJm
+(8) 4.9813 Tj
+-272 TJm
+(=) 5.6189 Tj
+-271 TJm
+(560) 14.9439 Tj
+-272 TJm
+(kbytes) 26.0123 Tj
+-271 TJm
+(of) 8.2988 Tj
+-272 TJm
+(it.) 8.0299 Tj
+-748 TJm
+(Similarly) 37.0908 Tj
+65 TJm
+(,) 2.4907 Tj
+-277 TJm
+(the) 12.1743 Tj
+-272 TJm
+(decompressor) 55.3323 Tj
+72 686.127 Td
+(will) 15.5018 Tj
+-250 TJm
+(allocate) 30.9837 Tj
+-250 TJm
+(3700k) 24.9065 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(only) 17.7135 Tj
+-250 TJm
+(touch) 22.1369 Tj
+-250 TJm
+(100k) 19.9252 Tj
+-250 TJm
+(+) 5.6189 Tj
+-250 TJm
+(20000) 24.9065 Tj
+-250 TJm
+(*) 4.9813 Tj
+-250 TJm
+(4) 4.9813 Tj
+-250 TJm
+(=) 5.6189 Tj
+-250 TJm
+(180) 14.9439 Tj
+-250 TJm
+(kbytes.) 28.503 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 664.209 Td
+(Here) 19.3573 Tj
+-293 TJm
+(is) 6.6451 Tj
+-294 TJm
+(a) 4.4234 Tj
+-293 TJm
+(table) 19.3673 Tj
+-294 TJm
+(which) 24.3486 Tj
+-293 TJm
+(summarises) 47.0434 Tj
+-294 TJm
+(the) 12.1743 Tj
+-293 TJm
+(maximum) 40.4083 Tj
+-294 TJm
+(memory) 33.2053 Tj
+-293 TJm
+(usage) 22.6848 Tj
+-294 TJm
+(for) 11.6164 Tj
+-293 TJm
+(dif) 11.0684 Tj
+25 TJm
+(ferent) 23.2328 Tj
+-294 TJm
+(block) 22.1369 Tj
+-293 TJm
+(sizes.) 21.8579 Tj
+-881 TJm
+(Also) 18.8194 Tj
+-293 TJm
+(recorded) 34.8492 Tj
+-294 TJm
+(is) 6.6451 Tj
+-293 TJm
+(the) 12.1743 Tj
+-294 TJm
+(total) 17.7135 Tj
+72 652.254 Td
+(compressed) 47.0334 Tj
+-289 TJm
+(size) 15.4918 Tj
+-289 TJm
+(for) 11.6164 Tj
+-289 TJm
+(14) 9.9626 Tj
+-289 TJm
+(\002les) 16.6077 Tj
+-290 TJm
+(of) 8.2988 Tj
+-289 TJm
+(the) 12.1743 Tj
+-289 TJm
+(Calg) 18.8194 Tj
+5 TJm
+(ary) 12.7222 Tj
+-289 TJm
+(T) 6.0871 Tj
+70 TJm
+(e) 4.4234 Tj
+15 TJm
+(xt) 7.7509 Tj
+-289 TJm
+(Compression) 52.5826 Tj
+-289 TJm
+(Corpus) 28.782 Tj
+-289 TJm
+(totalling) 33.2153 Tj
+-289 TJm
+(3,141,622) 39.8504 Tj
+-290 TJm
+(bytes.) 23.5217 Tj
+-854 TJm
+(This) 17.7135 Tj
+-290 TJm
+(column) 29.8878 Tj
+-289 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(es) 8.2988 Tj
+72 640.299 Td
+(some) 21.031 Tj
+-253 TJm
+(feel) 14.9339 Tj
+-253 TJm
+(for) 11.6164 Tj
+-253 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-253 TJm
+(compression) 50.3609 Tj
+-253 TJm
+(v) 4.9813 Tj
+25 TJm
+(aries) 18.8094 Tj
+-253 TJm
+(with) 17.7135 Tj
+-253 TJm
+(block) 22.1369 Tj
+-253 TJm
+(size.) 17.9825 Tj
+-638 TJm
+(These) 23.7907 Tj
+-253 TJm
+(\002gures) 27.1182 Tj
+-253 TJm
+(tend) 17.1556 Tj
+-254 TJm
+(to) 7.7509 Tj
+-253 TJm
+(understate) 40.9463 Tj
+-253 TJm
+(the) 12.1743 Tj
+-253 TJm
+(adv) 14.386 Tj
+25 TJm
+(antage) 26.0024 Tj
+-253 TJm
+(of) 8.2988 Tj
+-253 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ger) 12.7222 Tj
+-253 TJm
+(block) 22.1369 Tj
+72 628.344 Td
+(sizes) 19.3673 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ger) 12.7222 Tj
+-250 TJm
+(\002les,) 19.0983 Tj
+-250 TJm
+(since) 20.4731 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(Corpus) 28.782 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(dominated) 42.0621 Tj
+-250 TJm
+(by) 9.9626 Tj
+-250 TJm
+(smaller) 29.3299 Tj
+-250 TJm
+(\002les.) 19.0983 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 469.773] cm
+0 0 468 155.417 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+123.952 616.822 Td
+/F124_0 9.9626 Tf
+(Compress) 47.8205 Tj
+-1278 TJm
+(Decompress) 59.7756 Tj
+-1278 TJm
+(Decompress) 59.7756 Tj
+-1278 TJm
+(Corpus) 35.8654 Tj
+90 604.867 Td
+(Flag) 23.9102 Tj
+-2130 TJm
+(usage) 29.8878 Tj
+-2556 TJm
+(usage) 29.8878 Tj
+-2982 TJm
+(-s) 11.9551 Tj
+-426 TJm
+(usage) 29.8878 Tj
+-2130 TJm
+(Size) 23.9102 Tj
+94.244 580.957 Td
+(-1) 11.9551 Tj
+-2556 TJm
+(1200k) 29.8878 Tj
+-2982 TJm
+(500k) 23.9102 Tj
+-3834 TJm
+(350k) 23.9102 Tj
+-2556 TJm
+(914704) 35.8654 Tj
+94.244 569.001 Td
+(-2) 11.9551 Tj
+-2556 TJm
+(2000k) 29.8878 Tj
+-2982 TJm
+(900k) 23.9102 Tj
+-3834 TJm
+(600k) 23.9102 Tj
+-2556 TJm
+(877703) 35.8654 Tj
+94.244 557.046 Td
+(-3) 11.9551 Tj
+-2556 TJm
+(2800k) 29.8878 Tj
+-2556 TJm
+(1300k) 29.8878 Tj
+-3834 TJm
+(850k) 23.9102 Tj
+-2556 TJm
+(860338) 35.8654 Tj
+94.244 545.091 Td
+(-4) 11.9551 Tj
+-2556 TJm
+(3600k) 29.8878 Tj
+-2556 TJm
+(1700k) 29.8878 Tj
+-3408 TJm
+(1100k) 29.8878 Tj
+-2556 TJm
+(846899) 35.8654 Tj
+94.244 533.136 Td
+(-5) 11.9551 Tj
+-2556 TJm
+(4400k) 29.8878 Tj
+-2556 TJm
+(2100k) 29.8878 Tj
+-3408 TJm
+(1350k) 29.8878 Tj
+-2556 TJm
+(845160) 35.8654 Tj
+94.244 521.181 Td
+(-6) 11.9551 Tj
+-2556 TJm
+(5200k) 29.8878 Tj
+-2556 TJm
+(2500k) 29.8878 Tj
+-3408 TJm
+(1600k) 29.8878 Tj
+-2556 TJm
+(838626) 35.8654 Tj
+94.244 509.225 Td
+(-7) 11.9551 Tj
+-2556 TJm
+(6100k) 29.8878 Tj
+-2556 TJm
+(2900k) 29.8878 Tj
+-3408 TJm
+(1850k) 29.8878 Tj
+-2556 TJm
+(834096) 35.8654 Tj
+94.244 497.27 Td
+(-8) 11.9551 Tj
+-2556 TJm
+(6800k) 29.8878 Tj
+-2556 TJm
+(3300k) 29.8878 Tj
+-3408 TJm
+(2100k) 29.8878 Tj
+-2556 TJm
+(828642) 35.8654 Tj
+94.244 485.315 Td
+(-9) 11.9551 Tj
+-2556 TJm
+(7600k) 29.8878 Tj
+-2556 TJm
+(3700k) 29.8878 Tj
+-3408 TJm
+(2350k) 29.8878 Tj
+-2556 TJm
+(828642) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 435.021 Td
+/F116_0 20.6585 Tf
+(2.6.) 34.4584 Tj
+-278 TJm
+(RECO) 59.6824 Tj
+50 TJm
+(VERING) 79.2047 Tj
+-278 TJm
+(D) 14.9154 Tj
+40 TJm
+(A) 14.9154 Tj
+90 TJm
+(T) 12.6223 Tj
+90 TJm
+(A) 14.9154 Tj
+-278 TJm
+(FR) 27.5378 Tj
+20 TJm
+(OM) 33.2808 Tj
+-278 TJm
+(D) 14.9154 Tj
+40 TJm
+(AMA) 47.0394 Tj
+50 TJm
+(GED) 44.767 Tj
+72 410.23 Td
+(FILES) 58.5462 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 388.312 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+105.138 388.312 Td
+/F122_0 9.9626 Tf
+(compresses) 45.9276 Tj
+-326 TJm
+(\002les) 16.6077 Tj
+-326 TJm
+(in) 7.7509 Tj
+-326 TJm
+(blocks,) 28.503 Tj
+-346 TJm
+(usually) 28.782 Tj
+-326 TJm
+(900kbytes) 40.9562 Tj
+-326 TJm
+(long.) 20.2042 Tj
+-1077 TJm
+(Each) 19.9152 Tj
+-326 TJm
+(block) 22.1369 Tj
+-326 TJm
+(is) 6.6451 Tj
+-327 TJm
+(handled) 31.5416 Tj
+-326 TJm
+(independently) 56.4481 Tj
+65 TJm
+(.) 2.4907 Tj
+-1077 TJm
+(If) 6.6351 Tj
+-326 TJm
+(a) 4.4234 Tj
+-326 TJm
+(media) 24.3486 Tj
+-326 TJm
+(or) 8.2988 Tj
+72 376.357 Td
+(transmission) 50.3709 Tj
+-319 TJm
+(error) 19.3573 Tj
+-318 TJm
+(causes) 26.0024 Tj
+-319 TJm
+(a) 4.4234 Tj
+-318 TJm
+(multi-block) 46.4955 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.519 376.357 Td
+/F124_0 9.9626 Tf
+(.bz2) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+261.603 376.357 Td
+/F122_0 9.9626 Tf
+(\002le) 12.7322 Tj
+-319 TJm
+(to) 7.7509 Tj
+-318 TJm
+(become) 30.9837 Tj
+-319 TJm
+(damaged,) 38.4556 Tj
+-336 TJm
+(i) 2.7696 Tj
+1 TJm
+(t) 2.7696 Tj
+-319 TJm
+(may) 17.1556 Tj
+-319 TJm
+(be) 9.4047 Tj
+-318 TJm
+(possible) 32.6574 Tj
+-319 TJm
+(to) 7.7509 Tj
+-318 TJm
+(reco) 17.1456 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-319 TJm
+(data) 16.5977 Tj
+-319 TJm
+(from) 19.3673 Tj
+-318 TJm
+(the) 12.1743 Tj
+72 364.402 Td
+(undamaged) 45.9276 Tj
+-250 TJm
+(blocks) 26.0123 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(\002le.) 15.2229 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 342.484 Td
+(The) 15.4918 Tj
+-358 TJm
+(compressed) 47.0334 Tj
+-357 TJm
+(representation) 56.4381 Tj
+-358 TJm
+(of) 8.2988 Tj
+-357 TJm
+(each) 18.2515 Tj
+-358 TJm
+(block) 22.1369 Tj
+-358 TJm
+(is) 6.6451 Tj
+-357 TJm
+(delimited) 37.6387 Tj
+-358 TJm
+(by) 9.9626 Tj
+-357 TJm
+(a) 4.4234 Tj
+-358 TJm
+(48-bit) 23.8007 Tj
+-358 TJm
+(pattern,) 30.1568 Tj
+-384 TJm
+(which) 24.3486 Tj
+-358 TJm
+(mak) 17.1556 Tj
+10 TJm
+(es) 8.2988 Tj
+-357 TJm
+(it) 5.5392 Tj
+-358 TJm
+(possible) 32.6574 Tj
+-357 TJm
+(to) 7.7509 Tj
+-358 TJm
+(\002nd) 15.5018 Tj
+-358 TJm
+(the) 12.1743 Tj
+72 330.529 Td
+(block) 22.1369 Tj
+-286 TJm
+(boundaries) 43.7159 Tj
+-286 TJm
+(with) 17.7135 Tj
+-285 TJm
+(reasonable) 42.6001 Tj
+-286 TJm
+(certainty) 34.8591 Tj
+65 TJm
+(.) 2.4907 Tj
+-835 TJm
+(Each) 19.9152 Tj
+-285 TJm
+(block) 22.1369 Tj
+-286 TJm
+(also) 16.0497 Tj
+-286 TJm
+(carries) 26.5503 Tj
+-286 TJm
+(its) 9.4147 Tj
+-285 TJm
+(o) 4.9813 Tj
+25 TJm
+(wn) 12.1743 Tj
+-286 TJm
+(32-bit) 23.8007 Tj
+-286 TJm
+(CRC,) 22.4258 Tj
+-286 TJm
+(so) 8.8568 Tj
+-285 TJm
+(damaged) 35.965 Tj
+-286 TJm
+(blocks) 26.0123 Tj
+-286 TJm
+(can) 13.8281 Tj
+-286 TJm
+(be) 9.4047 Tj
+72 318.574 Td
+(distinguished) 53.1405 Tj
+-250 TJm
+(from) 19.3673 Tj
+-250 TJm
+(undamaged) 45.9276 Tj
+-250 TJm
+(ones.) 20.7521 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 296.656 Td
+/F124_0 9.9626 Tf
+(bzip2recover) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+146.448 296.656 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-273 TJm
+(a) 4.4234 Tj
+-272 TJm
+(simple) 26.5703 Tj
+-273 TJm
+(program) 33.7533 Tj
+-273 TJm
+(whose) 25.4544 Tj
+-272 TJm
+(purpose) 31.5416 Tj
+-273 TJm
+(is) 6.6451 Tj
+-273 TJm
+(to) 7.7509 Tj
+-272 TJm
+(search) 25.4445 Tj
+-273 TJm
+(for) 11.6164 Tj
+-273 TJm
+(blocks) 26.0123 Tj
+-272 TJm
+(in) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.655 296.656 Td
+/F124_0 9.9626 Tf
+(.bz2) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+419.282 296.656 Td
+/F122_0 9.9626 Tf
+(\002les,) 19.0983 Tj
+-278 TJm
+(and) 14.386 Tj
+-273 TJm
+(write) 20.4731 Tj
+-273 TJm
+(each) 18.2515 Tj
+-272 TJm
+(block) 22.1369 Tj
+-273 TJm
+(out) 12.7322 Tj
+72 284.701 Td
+(into) 15.5018 Tj
+-255 TJm
+(i) 2.7696 Tj
+1 TJm
+(ts) 6.6451 Tj
+-255 TJm
+(o) 4.9813 Tj
+25 TJm
+(wn) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+121.429 284.701 Td
+/F124_0 9.9626 Tf
+(.bz2) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+147.875 284.701 Td
+/F122_0 9.9626 Tf
+(\002le.) 15.2229 Tj
+-647 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-255 TJm
+(can) 13.8281 Tj
+-254 TJm
+(then) 17.1556 Tj
+-255 TJm
+(use) 13.2801 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+240.01 284.701 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+-600 TJm
+(-t) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+290.367 284.701 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-254 TJm
+(test) 13.8381 Tj
+-255 TJm
+(the) 12.1743 Tj
+-254 TJm
+(inte) 14.9439 Tj
+15 TJm
+(grity) 18.8194 Tj
+-255 TJm
+(of) 8.2988 Tj
+-254 TJm
+(the) 12.1743 Tj
+-255 TJm
+(resulting) 34.8691 Tj
+-254 TJm
+(\002les,) 19.0983 Tj
+-256 TJm
+(and) 14.386 Tj
+-255 TJm
+(decompress) 47.0334 Tj
+-254 TJm
+(those) 21.031 Tj
+72 272.746 Td
+(which) 24.3486 Tj
+-250 TJm
+(are) 12.1643 Tj
+-250 TJm
+(undamaged.) 48.4182 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 250.828 Td
+/F124_0 9.9626 Tf
+(bzip2recover) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+150.099 250.828 Td
+/F122_0 9.9626 Tf
+(tak) 12.1743 Tj
+10 TJm
+(es) 8.2988 Tj
+-639 TJm
+(a) 4.4234 Tj
+-639 TJm
+(single) 23.8007 Tj
+-639 TJm
+(ar) 7.7409 Tj
+18 TJm
+(gument,) 32.3785 Tj
+-737 TJm
+(the) 12.1743 Tj
+-639 TJm
+(name) 21.579 Tj
+-639 TJm
+(of) 8.2988 Tj
+-639 TJm
+(the) 12.1743 Tj
+-639 TJm
+(damaged) 35.965 Tj
+-639 TJm
+(\002le,) 15.2229 Tj
+-737 TJm
+(and) 14.386 Tj
+-639 TJm
+(writes) 24.3486 Tj
+-639 TJm
+(a) 4.4234 Tj
+-639 TJm
+(number) 30.4357 Tj
+-639 TJm
+(of) 8.2988 Tj
+-640 TJm
+(\002) 5.5392 Tj
+1 TJm
+(les) 11.0684 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 238.873 Td
+/F124_0 9.9626 Tf
+(rec0001file.bz2) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.664 238.873 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.072 238.873 Td
+/F124_0 9.9626 Tf
+(rec0002file.bz2) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+258.736 238.873 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-494 TJm
+(etc,) 14.107 Tj
+-493 TJm
+(containing) 42.0621 Tj
+-445 TJm
+(the) 12.1743 Tj
+-445 TJm
+(e) 4.4234 Tj
+15 TJm
+(xtracted) 32.0895 Tj
+-445 TJm
+(blocks.) 28.503 Tj
+-1789 TJm
+(The) 15.4918 Tj
+-445 TJm
+(output) 25.4644 Tj
+-445 TJm
+(\002lenames) 38.1866 Tj
+-445 TJm
+(are) 12.1643 Tj
+72 226.918 Td
+(designed) 35.417 Tj
+-337 TJm
+(so) 8.8568 Tj
+-337 TJm
+(that) 14.9439 Tj
+-337 TJm
+(the) 12.1743 Tj
+-337 TJm
+(use) 13.2801 Tj
+-337 TJm
+(of) 8.2988 Tj
+-337 TJm
+(wildc) 22.1369 Tj
+1 TJm
+(ards) 16.5977 Tj
+-337 TJm
+(in) 7.7509 Tj
+-337 TJm
+(subsequent) 44.2738 Tj
+-337 TJm
+(processing) 42.61 Tj
+-337 TJm
+(--) 6.6351 Tj
+-337 TJm
+(for) 11.6164 Tj
+-337 TJm
+(e) 4.4234 Tj
+15 TJm
+(xample,) 31.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+396.538 226.918 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+-600 TJm
+(-dc) 17.9327 Tj
+-600 TJm
+(rec) 17.9327 Tj
+474.247 225.174 Td
+(*) 5.9776 Tj
+480.224 226.918 Td
+(file.bz2) 47.8205 Tj
+-600 TJm
+(>) 5.9776 Tj
+72 214.962 Td
+(recovered_data) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.177 214.962 Td
+/F122_0 9.9626 Tf
+(--) 6.6351 Tj
+-250 TJm
+(lists) 16.0597 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(\002les) 16.6077 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(correct) 27.6562 Tj
+-250 TJm
+(order) 21.0211 Tj
+55 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 193.045 Td
+/F124_0 9.9626 Tf
+(bzip2recover) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.93 193.045 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-221 TJm
+(be) 9.4047 Tj
+-220 TJm
+(of) 8.2988 Tj
+-221 TJm
+(most) 19.3773 Tj
+-221 TJm
+(use) 13.2801 Tj
+-220 TJm
+(dealing) 29.3299 Tj
+-221 TJm
+(with) 17.7135 Tj
+-221 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ge) 9.4047 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+307.229 193.045 Td
+/F124_0 9.9626 Tf
+(.bz2) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+333.338 193.045 Td
+/F122_0 9.9626 Tf
+(\002les,) 19.0983 Tj
+-227 TJm
+(as) 8.2988 Tj
+-220 TJm
+(these) 20.4731 Tj
+-221 TJm
+(will) 15.5018 Tj
+-221 TJm
+(contain) 29.3299 Tj
+-220 TJm
+(man) 17.1556 Tj
+15 TJm
+(y) 4.9813 Tj
+-221 TJm
+(blocks.) 28.503 Tj
+-600 TJm
+(It) 6.0871 Tj
+-221 TJm
+(is) 6.6451 Tj
+-221 TJm
+(clearly) 27.1082 Tj
+72 181.089 Td
+(futile) 21.031 Tj
+-289 TJm
+(to) 7.7509 Tj
+-289 TJm
+(use) 13.2801 Tj
+-289 TJm
+(it) 5.5392 Tj
+-289 TJm
+(on) 9.9626 Tj
+-289 TJm
+(damaged) 35.965 Tj
+-289 TJm
+(single-block) 49.2551 Tj
+-290 TJm
+(\002les) 16.6077 Tj
+1 TJm
+(,) 2.4907 Tj
+-299 TJm
+(since) 20.4731 Tj
+-289 TJm
+(a) 4.4234 Tj
+-290 TJm
+(damaged) 35.965 Tj
+-289 TJm
+(block) 22.1369 Tj
+-289 TJm
+(cannot) 26.5603 Tj
+-289 TJm
+(be) 9.4047 Tj
+-289 TJm
+(reco) 17.1456 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(ered.) 19.6363 Tj
+-854 TJm
+(If) 6.6351 Tj
+-289 TJm
+(you) 14.9439 Tj
+-290 TJm
+(wish) 18.8194 Tj
+-289 TJm
+(to) 7.7509 Tj
+-289 TJm
+(minimise) 37.0908 Tj
+72 169.134 Td
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-320 TJm
+(potential) 34.8691 Tj
+-320 TJm
+(data) 16.5977 Tj
+-319 TJm
+(loss) 15.5018 Tj
+-320 TJm
+(through) 30.9936 Tj
+-320 TJm
+(media) 24.3486 Tj
+-320 TJm
+(or) 8.2988 Tj
+-319 TJm
+(transmission) 50.3709 Tj
+-320 TJm
+(errors,) 25.7234 Tj
+-337 TJm
+(you) 14.9439 Tj
+-320 TJm
+(might) 23.2527 Tj
+-320 TJm
+(consider) 33.7533 Tj
+-320 TJm
+(compressing) 50.3609 Tj
+-319 TJm
+(with) 17.7135 Tj
+-320 TJm
+(a) 4.4234 Tj
+-320 TJm
+(smaller) 29.3299 Tj
+-320 TJm
+(block) 22.1369 Tj
+72 157.179 Td
+(size.) 17.9825 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 122.426 Td
+/F116_0 20.6585 Tf
+(2.7.) 34.4584 Tj
+-278 TJm
+(PERFORMANCE) 161.818 Tj
+-278 TJm
+(NO) 30.9878 Tj
+40 TJm
+(TES) 40.1808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 100.508 Td
+/F122_0 9.9626 Tf
+(The) 15.4918 Tj
+-305 TJm
+(sorting) 27.6761 Tj
+-304 TJm
+(phase) 22.6848 Tj
+-305 TJm
+(of) 8.2988 Tj
+-304 TJm
+(compression) 50.3609 Tj
+-305 TJm
+(g) 4.9813 Tj
+5 TJm
+(athers) 23.7907 Tj
+-304 TJm
+(together) 32.6474 Tj
+-305 TJm
+(similar) 27.6761 Tj
+-304 TJm
+(strings) 26.5703 Tj
+-305 TJm
+(in) 7.7509 Tj
+-304 TJm
+(the) 12.1743 Tj
+-305 TJm
+(\002le.) 15.2229 Tj
+-947 TJm
+(Because) 33.1954 Tj
+-305 TJm
+(of) 8.2988 Tj
+-304 TJm
+(this,) 16.8866 Tj
+-319 TJm
+(\002les) 16.6077 Tj
+-304 TJm
+(containing) 42.0621 Tj
+-305 TJm
+(v) 4.9813 Tj
+15 TJm
+(ery) 12.7222 Tj
+72 88.553 Td
+(long) 17.7135 Tj
+-286 TJm
+(runs) 17.1556 Tj
+-285 TJm
+(of) 8.2988 Tj
+-286 TJm
+(repeated) 33.7433 Tj
+-285 TJm
+(symbols,) 35.706 Tj
+-295 TJm
+(lik) 10.5205 Tj
+10 TJm
+(e) 4.4234 Tj
+-286 TJm
+("aabaabaabaab) 59.3771 Tj
+-285 TJm
+(...") 11.5367 Tj
+-571 TJm
+(\(repeated) 37.0609 Tj
+-286 TJm
+(se) 8.2988 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(eral) 14.9339 Tj
+-286 TJm
+(hundred) 32.6474 Tj
+-285 TJm
+(times\)) 24.9065 Tj
+-286 TJm
+(may) 17.1556 Tj
+-286 TJm
+(com) 17.1556 Tj
+1 TJm
+(press) 20.4731 Tj
+-286 TJm
+(more) 20.4731 Tj
+-286 TJm
+(slo) 11.6264 Tj
+25 TJm
+(wly) 14.9439 Tj
+72 76.598 Td
+(than) 17.1556 Tj
+-322 TJm
+(normal.) 30.7147 Tj
+-524 TJm
+(V) 7.193 Tj
+111 TJm
+(ersions) 28.224 Tj
+-322 TJm
+(0.9.5) 19.9252 Tj
+-321 TJm
+(and) 14.386 Tj
+-322 TJm
+(abo) 14.386 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-322 TJm
+(f) 3.3175 Tj
+10 TJm
+(are) 12.1643 Tj
+-321 TJm
+(much) 22.1369 Tj
+-322 TJm
+(better) 22.6848 Tj
+-321 TJm
+(than) 17.1556 Tj
+-322 TJm
+(pre) 12.7222 Tj
+25 TJm
+(vious) 21.589 Tj
+-321 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersions) 28.224 Tj
+-322 TJm
+(in) 7.7509 Tj
+-322 TJm
+(this) 14.396 Tj
+-321 TJm
+(respect.) 30.7047 Tj
+-1050 TJm
+(The) 15.4918 Tj
+-321 TJm
+(ratio) 18.2614 Tj
+-322 TJm
+(between) 33.1954 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.951 Td
+(6) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 7 10
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+477.109 749.245 Td
+/F122_0 9.9626 Tf
+(Ho) 12.1743 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(bzip2) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(w) 7.193 Tj
+10 TJm
+(orst-case) 35.4071 Tj
+-289 TJm
+(and) 14.386 Tj
+-290 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(erage-case) 42.0322 Tj
+-289 TJm
+(compression) 50.3609 Tj
+-290 TJm
+(time) 17.7135 Tj
+-289 TJm
+(is) 6.6451 Tj
+-290 TJm
+(in) 7.7509 Tj
+-289 TJm
+(the) 12.1743 Tj
+-290 TJm
+(re) 7.7409 Tj
+15 TJm
+(gion) 17.7135 Tj
+-289 TJm
+(of) 8.2988 Tj
+-289 TJm
+(10:1.) 20.2042 Tj
+-857 TJm
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-290 TJm
+(pre) 12.7222 Tj
+25 TJm
+(vious) 21.589 Tj
+-289 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersions,) 30.7147 Tj
+-299 TJm
+(this) 14.396 Tj
+-290 TJm
+(\002gure) 23.2427 Tj
+-289 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-290 TJm
+(more) 20.4731 Tj
+72 698.082 Td
+(lik) 10.5205 Tj
+10 TJm
+(e) 4.4234 Tj
+-250 TJm
+(100:1.) 25.1855 Tj
+-620 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-250 TJm
+(can) 13.8281 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+186.002 698.082 Td
+/F124_0 9.9626 Tf
+(-vvvv) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+218.38 698.082 Td
+/F122_0 9.9626 Tf
+(option) 25.4644 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(monitor) 31.5516 Tj
+-250 TJm
+(progress) 33.7533 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(great) 19.9152 Tj
+-250 TJm
+(detail,) 24.6275 Tj
+-250 TJm
+(if) 6.0871 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ant.) 14.6649 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 676.164 Td
+(Decompression) 61.9773 Tj
+-250 TJm
+(speed) 22.6848 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(unaf) 17.7035 Tj
+25 TJm
+(fected) 24.3386 Tj
+-250 TJm
+(by) 9.9626 Tj
+-250 TJm
+(these) 20.4731 Tj
+-250 TJm
+(phenomena.) 48.4182 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 654.247 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.863 654.247 Td
+/F122_0 9.9626 Tf
+(usually) 28.782 Tj
+-299 TJm
+(allocates) 34.8591 Tj
+-298 TJm
+(se) 8.2988 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(eral) 14.9339 Tj
+-299 TJm
+(me) 12.1743 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(abytes) 25.4544 Tj
+-298 TJm
+(of) 8.2988 Tj
+-299 TJm
+(memory) 33.2053 Tj
+-299 TJm
+(to) 7.7509 Tj
+-298 TJm
+(operate) 29.3199 Tj
+-299 TJm
+(in,) 10.2416 Tj
+-311 TJm
+(and) 14.386 Tj
+-298 TJm
+(then) 17.1556 Tj
+-299 TJm
+(char) 17.1456 Tj
+18 TJm
+(ges) 13.2801 Tj
+-298 TJm
+(all) 9.9626 Tj
+-299 TJm
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-299 TJm
+(it) 5.5392 Tj
+-298 TJm
+(in) 7.7509 Tj
+-299 TJm
+(a) 4.4234 Tj
+-298 TJm
+(f) 3.3175 Tj
+10 TJm
+(airly) 18.2614 Tj
+-299 TJm
+(random) 30.4357 Tj
+72 642.291 Td
+(f) 3.3175 Tj
+10 TJm
+(ashion.) 28.503 Tj
+-743 TJm
+(This) 17.7135 Tj
+-270 TJm
+(means) 25.4544 Tj
+-271 TJm
+(that) 14.9439 Tj
+-270 TJm
+(performance,) 52.8317 Tj
+-276 TJm
+(both) 17.7135 Tj
+-270 TJm
+(for) 11.6164 Tj
+-271 TJm
+(compressing) 50.3609 Tj
+-270 TJm
+(and) 14.386 Tj
+-271 TJm
+(decompressing,) 62.2563 Tj
+-275 TJm
+(is) 6.6451 Tj
+-271 TJm
+(lar) 10.5105 Tj
+18 TJm
+(gely) 17.1556 Tj
+-270 TJm
+(determined) 44.8217 Tj
+-271 TJm
+(by) 9.9626 Tj
+-270 TJm
+(the) 12.1743 Tj
+-271 TJm
+(speed) 22.6848 Tj
+72 630.336 Td
+(at) 7.193 Tj
+-294 TJm
+(which) 24.3486 Tj
+-294 TJm
+(your) 18.2614 Tj
+-294 TJm
+(machine) 33.7533 Tj
+-295 TJm
+(ca) 8.8468 Tj
+1 TJm
+(n) 4.9813 Tj
+-295 TJm
+(service) 28.2141 Tj
+-294 TJm
+(cache) 22.6749 Tj
+-294 TJm
+(misses.) 29.0609 Tj
+-442 TJm
+(Because) 33.1954 Tj
+-294 TJm
+(of) 8.2988 Tj
+-294 TJm
+(this,) 16.8866 Tj
+-306 TJm
+(small) 21.589 Tj
+-294 TJm
+(changes) 32.0895 Tj
+-294 TJm
+(to) 7.7509 Tj
+-294 TJm
+(the) 12.1743 Tj
+-294 TJm
+(code) 18.8094 Tj
+-294 TJm
+(to) 7.7509 Tj
+-294 TJm
+(reduce) 26.5503 Tj
+-294 TJm
+(the) 12.1743 Tj
+-295 TJm
+(miss) 18.2714 Tj
+-294 TJm
+(rate) 14.9339 Tj
+72 618.381 Td
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-253 TJm
+(been) 18.8094 Tj
+-253 TJm
+(observ) 26.5603 Tj
+15 TJm
+(ed) 9.4047 Tj
+-253 TJm
+(to) 7.7509 Tj
+-253 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-253 TJm
+(disproportionately) 73.0557 Tj
+-253 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ge) 9.4047 Tj
+-253 TJm
+(performance) 50.341 Tj
+-253 TJm
+(impro) 23.8007 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(ements.) 30.7147 Tj
+-639 TJm
+(I) 3.3175 Tj
+-253 TJm
+(imagine) 32.0995 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+438.909 618.381 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+471.318 618.381 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-253 TJm
+(perform) 32.0895 Tj
+-253 TJm
+(best) 16.0497 Tj
+72 606.426 Td
+(on) 9.9626 Tj
+-250 TJm
+(machines) 37.6287 Tj
+-250 TJm
+(with) 17.7135 Tj
+-250 TJm
+(v) 4.9813 Tj
+15 TJm
+(ery) 12.7222 Tj
+-250 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ge) 9.4047 Tj
+-250 TJm
+(caches.) 29.041 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 571.673 Td
+/F116_0 20.6585 Tf
+(2.8.) 34.4584 Tj
+-278 TJm
+(CA) 29.8309 Tj
+80 TJm
+(VEA) 42.4739 Tj
+90 TJm
+(TS) 26.4016 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 549.755 Td
+/F122_0 9.9626 Tf
+(I/O) 13.2801 Tj
+-268 TJm
+(error) 19.3573 Tj
+-267 TJm
+(messages) 37.6287 Tj
+-268 TJm
+(are) 12.1643 Tj
+-268 TJm
+(not) 12.7322 Tj
+-268 TJm
+(as) 8.2988 Tj
+-267 TJm
+(helpful) 28.224 Tj
+-268 TJm
+(as) 8.2988 Tj
+-268 TJm
+(the) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-267 TJm
+(could) 22.1369 Tj
+-268 TJm
+(be.) 11.8953 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+293.313 549.755 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+325.868 549.755 Td
+/F122_0 9.9626 Tf
+(tries) 17.1556 Tj
+-268 TJm
+(hard) 17.7035 Tj
+-267 TJm
+(to) 7.7509 Tj
+-268 TJm
+(detect) 23.7907 Tj
+-268 TJm
+(I/O) 13.2801 Tj
+-268 TJm
+(errors) 23.2328 Tj
+-267 TJm
+(and) 14.386 Tj
+-268 TJm
+(e) 4.4234 Tj
+15 TJm
+(xit) 10.5205 Tj
+-268 TJm
+(cleanly) 28.772 Tj
+65 TJm
+(,) 2.4907 Tj
+-272 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-268 TJm
+(the) 12.1743 Tj
+72 537.8 Td
+(details) 26.0123 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(what) 19.3673 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(problem) 33.2053 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(sometimes) 42.62 Tj
+-250 TJm
+(seem) 20.4731 Tj
+-250 TJm
+(rather) 23.2328 Tj
+-250 TJm
+(misleading.) 46.2165 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 515.882 Td
+(This) 17.7135 Tj
+-280 TJm
+(manual) 29.3299 Tj
+-279 TJm
+(page) 18.8094 Tj
+-280 TJm
+(pertains) 31.5416 Tj
+-280 TJm
+(to) 7.7509 Tj
+-279 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-280 TJm
+(1.0.6) 19.9252 Tj
+-280 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+256.84 515.882 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+286.728 515.882 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-798 TJm
+(Compressed) 49.2551 Tj
+-280 TJm
+(data) 16.5977 Tj
+-279 TJm
+(created) 28.762 Tj
+-280 TJm
+(by) 9.9626 Tj
+-280 TJm
+(this) 14.396 Tj
+-279 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-280 TJm
+(is) 6.6451 Tj
+-280 TJm
+(entirely) 30.4357 Tj
+-279 TJm
+(forw) 18.8094 Tj
+10 TJm
+(ards) 16.5977 Tj
+72 503.927 Td
+(and) 14.386 Tj
+-294 TJm
+(backw) 26.0024 Tj
+10 TJm
+(ards) 16.5977 Tj
+-293 TJm
+(compatible) 44.2738 Tj
+-294 TJm
+(with) 17.7135 Tj
+-294 TJm
+(the) 12.1743 Tj
+-293 TJm
+(pre) 12.7222 Tj
+25 TJm
+(vious) 21.589 Tj
+-294 TJm
+(public) 24.9065 Tj
+-294 TJm
+(releases,) 34.0223 Tj
+-304 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersions) 28.224 Tj
+-294 TJm
+(0.1pl2,) 27.6761 Tj
+-305 TJm
+(0.9.0) 19.9252 Tj
+-293 TJm
+(and) 14.386 Tj
+-294 TJm
+(0.9.5,) 22.4159 Tj
+-305 TJm
+(1.0.0,) 22.4159 Tj
+-304 TJm
+(1.0.1,) 22.4159 Tj
+-305 TJm
+(1.0.2) 19.9252 Tj
+-294 TJm
+(and) 14.386 Tj
+72 491.972 Td
+(1.0.3,) 22.4159 Tj
+-263 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-260 TJm
+(with) 17.7135 Tj
+-260 TJm
+(the) 12.1743 Tj
+-260 TJm
+(follo) 18.8194 Tj
+25 TJm
+(wing) 19.9252 Tj
+-260 TJm
+(e) 4.4234 Tj
+15 TJm
+(xception:) 37.0808 Tj
+-330 TJm
+(0.9.0) 19.9252 Tj
+-260 TJm
+(and) 14.386 Tj
+-260 TJm
+(abo) 14.386 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-260 TJm
+(can) 13.8281 Tj
+-260 TJm
+(correctly) 35.4071 Tj
+-260 TJm
+(decompress) 47.0334 Tj
+-260 TJm
+(multiple) 33.2153 Tj
+-260 TJm
+(concatenated) 52.0048 Tj
+-260 TJm
+(compressed) 47.0334 Tj
+72 480.017 Td
+(\002les.) 19.0983 Tj
+-310 TJm
+(0.1pl2) 25.1855 Tj
+-250 TJm
+(cannot) 26.5603 Tj
+-250 TJm
+(do) 9.9626 Tj
+-250 TJm
+(this;) 17.1656 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(will) 15.5018 Tj
+-250 TJm
+(stop) 16.6077 Tj
+-250 TJm
+(after) 18.2515 Tj
+-250 TJm
+(decompressing) 59.7656 Tj
+-250 TJm
+(just) 14.396 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(\002rst) 15.5018 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(stream.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 458.099 Td
+/F124_0 9.9626 Tf
+(bzip2recover) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+146.174 458.099 Td
+/F122_0 9.9626 Tf
+(v) 4.9813 Tj
+15 TJm
+(ersions) 28.224 Tj
+-245 TJm
+(prior) 19.3673 Tj
+-245 TJm
+(to) 7.7509 Tj
+-245 TJm
+(1.0.2) 19.9252 Tj
+-246 TJm
+(used) 18.2614 Tj
+-245 TJm
+(32-bit) 23.8007 Tj
+-245 TJm
+(inte) 14.9439 Tj
+15 TJm
+(gers) 16.5977 Tj
+-245 TJm
+(to) 7.7509 Tj
+-245 TJm
+(represent) 36.5129 Tj
+-245 TJm
+(bit) 10.5205 Tj
+-246 TJm
+(positions) 35.9849 Tj
+-245 TJm
+(in) 7.7509 Tj
+-245 TJm
+(compressed) 47.0334 Tj
+-245 TJm
+(\002les,) 19.0983 Tj
+-246 TJm
+(so) 8.8568 Tj
+-245 TJm
+(it) 5.5392 Tj
+-245 TJm
+(could) 22.1369 Tj
+72 446.144 Td
+(not) 12.7322 Tj
+-384 TJm
+(handle) 26.5603 Tj
+-383 TJm
+(compressed) 47.0334 Tj
+-384 TJm
+(\002les) 16.6077 Tj
+-383 TJm
+(more) 20.4731 Tj
+-384 TJm
+(than) 17.1556 Tj
+-383 TJm
+(512) 14.9439 Tj
+-384 TJm
+(me) 12.1743 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(abytes) 25.4544 Tj
+-383 TJm
+(long.) 20.2042 Tj
+-1421 TJm
+(V) 7.193 Tj
+111 TJm
+(ersions) 28.224 Tj
+-384 TJm
+(1.0.2) 19.9252 Tj
+-383 TJm
+(and) 14.386 Tj
+-384 TJm
+(abo) 14.386 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-384 TJm
+(use) 13.2801 Tj
+-383 TJm
+(64-bit) 23.8007 Tj
+-384 TJm
+(ints) 14.396 Tj
+-383 TJm
+(on) 9.9626 Tj
+-384 TJm
+(some) 21.031 Tj
+72 434.189 Td
+(platforms) 38.1866 Tj
+-245 TJm
+(which) 24.3486 Tj
+-246 TJm
+(support) 29.8878 Tj
+-245 TJm
+(them) 19.9252 Tj
+-246 TJm
+(\(GNU) 24.8965 Tj
+-245 TJm
+(supported) 39.2925 Tj
+-245 TJm
+(tar) 10.5105 Tj
+18 TJm
+(gets,) 18.5404 Tj
+-247 TJm
+(and) 14.386 Tj
+-245 TJm
+(W) 9.4047 Tj
+40 TJm
+(indo) 17.7135 Tj
+25 TJm
+(ws\).) 16.8766 Tj
+-309 TJm
+(T) 6.0871 Tj
+80 TJm
+(o) 4.9813 Tj
+-245 TJm
+(establish) 34.8691 Tj
+-245 TJm
+(whether) 32.0895 Tj
+-246 TJm
+(or) 8.2988 Tj
+-245 TJm
+(not) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+468.269 434.189 Td
+/F124_0 9.9626 Tf
+(bzip2recover) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 422.233 Td
+/F122_0 9.9626 Tf
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-255 TJm
+(b) 4.9813 Tj
+20 TJm
+(uilt) 13.2901 Tj
+-255 TJm
+(with) 17.7135 Tj
+-255 TJm
+(such) 18.2614 Tj
+-255 TJm
+(a) 4.4234 Tj
+-255 TJm
+(limitation,) 41.2452 Tj
+-256 TJm
+(run) 13.2801 Tj
+-255 TJm
+(it) 5.5392 Tj
+-255 TJm
+(without) 30.4457 Tj
+-255 TJm
+(ar) 7.7409 Tj
+18 TJm
+(guments.) 36.2539 Tj
+-325 TJm
+(In) 8.2988 Tj
+-255 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-256 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ent) 12.1743 Tj
+-255 TJm
+(you) 14.9439 Tj
+-255 TJm
+(can) 13.8281 Tj
+-255 TJm
+(b) 4.9813 Tj
+20 TJm
+(uild) 15.5018 Tj
+-255 TJm
+(yourself) 32.6474 Tj
+-255 TJm
+(an) 9.4047 Tj
+-255 TJm
+(unlimited) 38.1966 Tj
+-255 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-255 TJm
+(if) 6.0871 Tj
+72 410.278 Td
+(you) 14.9439 Tj
+-250 TJm
+(can) 13.8281 Tj
+-250 TJm
+(recompile) 39.8404 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.318 410.278 Td
+/F124_0 9.9626 Tf
+(MaybeUInt64) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+244.562 410.278 Td
+/F122_0 9.9626 Tf
+(set) 11.0684 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(an) 9.4047 Tj
+-250 TJm
+(unsigned) 35.9749 Tj
+-250 TJm
+(64-bit) 23.8007 Tj
+-250 TJm
+(inte) 14.9439 Tj
+15 TJm
+(ger) 12.7222 Tj
+55 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 375.525 Td
+/F116_0 20.6585 Tf
+(2.9.) 34.4584 Tj
+-278 TJm
+(A) 14.9154 Tj
+50 TJm
+(UTHOR) 73.441 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 353.607 Td
+/F122_0 9.9626 Tf
+(Julian) 23.8007 Tj
+-250 TJm
+(Se) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(ard,) 15.2129 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+132.801 353.607 Td
+/F124_0 9.9626 Tf
+(jseward@bzip.org) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 331.69 Td
+/F122_0 9.9626 Tf
+(The) 15.4918 Tj
+-299 TJm
+(ideas) 20.4731 Tj
+-300 TJm
+(embodied) 39.2925 Tj
+-299 TJm
+(in) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.942 331.69 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+199.813 331.69 Td
+/F122_0 9.9626 Tf
+(are) 12.1643 Tj
+-299 TJm
+(du) 9.9626 Tj
+-1 TJm
+(e) 4.4234 Tj
+-299 TJm
+(to) 7.7509 Tj
+-299 TJm
+(\(at) 10.5105 Tj
+-300 TJm
+(least\)) 21.579 Tj
+-299 TJm
+(the) 12.1743 Tj
+-300 TJm
+(follo) 18.8194 Tj
+25 TJm
+(wing) 19.9252 Tj
+-299 TJm
+(people:) 29.3299 Tj
+-409 TJm
+(Michael) 32.6474 Tj
+-300 TJm
+(Burro) 23.2427 Tj
+25 TJm
+(ws) 11.0684 Tj
+-299 TJm
+(and) 14.386 Tj
+-300 TJm
+(Da) 11.6164 Tj
+20 TJm
+(vid) 12.7322 Tj
+-299 TJm
+(Wheeler) 33.7433 Tj
+-299 TJm
+(\(for) 14.9339 Tj
+72 319.735 Td
+(the) 12.1743 Tj
+-312 TJm
+(block) 22.1369 Tj
+-313 TJm
+(sorting) 27.6761 Tj
+-312 TJm
+(transformation\),) 64.468 Tj
+-328 TJm
+(Da) 11.6164 Tj
+20 TJm
+(vid) 12.7322 Tj
+-312 TJm
+(Wheeler) 33.7433 Tj
+-313 TJm
+(\(ag) 12.7222 Tj
+5 TJm
+(ain,) 14.6649 Tj
+-327 TJm
+(for) 11.6164 Tj
+-313 TJm
+(the) 12.1743 Tj
+-312 TJm
+(Huf) 15.4918 Tj
+25 TJm
+(fman) 20.4731 Tj
+-312 TJm
+(coder\),) 27.9351 Tj
+-328 TJm
+(Peter) 20.4731 Tj
+-313 TJm
+(Fenwick) 34.3112 Tj
+-312 TJm
+(\(for) 14.9339 Tj
+-312 TJm
+(the) 12.1743 Tj
+-313 TJm
+(structured) 39.8404 Tj
+72 307.779 Td
+(coding) 27.1182 Tj
+-325 TJm
+(model) 24.9065 Tj
+-326 TJm
+(in) 7.7509 Tj
+-325 TJm
+(the) 12.1743 Tj
+-326 TJm
+(original) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+191.156 307.779 Td
+/F124_0 9.9626 Tf
+(bzip) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+215.067 307.779 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-344 TJm
+(and) 14.386 Tj
+-326 TJm
+(man) 17.1556 Tj
+15 TJm
+(y) 4.9813 Tj
+-325 TJm
+(re\002nements\),) 52.2937 Tj
+-345 TJm
+(and) 14.386 Tj
+-325 TJm
+(Alistair) 29.8878 Tj
+-326 TJm
+(Mof) 17.1556 Tj
+25 TJm
+(f) 3.3175 Tj
+10 TJm
+(at,) 9.6836 Tj
+-344 TJm
+(Radford) 32.6474 Tj
+-325 TJm
+(Neal) 18.8094 Tj
+-326 TJm
+(and) 14.386 Tj
+-325 TJm
+(Ian) 12.7222 Tj
+-326 TJm
+(W) 9.4047 Tj
+40 TJm
+(itten) 17.7135 Tj
+-325 TJm
+(\(for) 14.9339 Tj
+72 295.824 Td
+(the) 12.1743 Tj
+-277 TJm
+(arithmetic) 40.3983 Tj
+-277 TJm
+(coder) 22.1269 Tj
+-277 TJm
+(in) 7.7509 Tj
+-277 TJm
+(the) 12.1743 Tj
+-277 TJm
+(original) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+214.171 295.824 Td
+/F124_0 9.9626 Tf
+(bzip) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+238.082 295.824 Td
+/F122_0 9.9626 Tf
+(\).) 5.8082 Tj
+-782 TJm
+(I) 3.3175 Tj
+-277 TJm
+(am) 12.1743 Tj
+-276 TJm
+(much) 22.1369 Tj
+-277 TJm
+(indebted) 34.3112 Tj
+-277 TJm
+(for) 11.6164 Tj
+-277 TJm
+(their) 18.2614 Tj
+-277 TJm
+(help,) 19.6462 Tj
+-284 TJm
+(support) 29.8878 Tj
+-277 TJm
+(and) 14.386 Tj
+-277 TJm
+(advice.) 28.493 Tj
+-781 TJm
+(See) 14.386 Tj
+-277 TJm
+(the) 12.1743 Tj
+-277 TJm
+(manual) 29.3299 Tj
+72 283.869 Td
+(in) 7.7509 Tj
+-330 TJm
+(the) 12.1743 Tj
+-330 TJm
+(source) 26.0024 Tj
+-330 TJm
+(distrib) 25.4644 Tj
+20 TJm
+(ution) 20.4831 Tj
+-330 TJm
+(for) 11.6164 Tj
+-329 TJm
+(pointers) 32.0995 Tj
+-330 TJm
+(to) 7.7509 Tj
+-330 TJm
+(sources) 29.8778 Tj
+-330 TJm
+(of) 8.2988 Tj
+-330 TJm
+(documentation.) 61.7083 Tj
+-1099 TJm
+(Christian) 36.5329 Tj
+-330 TJm
+(v) 4.9813 Tj
+20 TJm
+(on) 9.9626 Tj
+-330 TJm
+(Roques) 29.8878 Tj
+-330 TJm
+(encouraged) 45.9176 Tj
+-330 TJm
+(me) 12.1743 Tj
+-330 TJm
+(to) 7.7509 Tj
+-330 TJm
+(look) 17.7135 Tj
+72 271.914 Td
+(for) 11.6164 Tj
+-271 TJm
+(f) 3.3175 Tj
+10 TJm
+(aster) 18.8094 Tj
+-271 TJm
+(sorting) 27.6761 Tj
+-271 TJm
+(algorithms,) 45.1107 Tj
+-276 TJm
+(so) 8.8568 Tj
+-272 TJm
+(as) 8.2988 Tj
+-271 TJm
+(to) 7.7509 Tj
+-271 TJm
+(speed) 22.6848 Tj
+-271 TJm
+(up) 9.9626 Tj
+-271 TJm
+(compression.) 52.8516 Tj
+-746 TJm
+(Bela) 18.2614 Tj
+-271 TJm
+(Lubkin) 28.782 Tj
+-271 TJm
+(encouraged) 45.9176 Tj
+-271 TJm
+(me) 12.1743 Tj
+-272 TJm
+(to) 7.7509 Tj
+-271 TJm
+(impro) 23.8007 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-271 TJm
+(the) 12.1743 Tj
+-271 TJm
+(w) 7.193 Tj
+10 TJm
+(orst-case) 35.4071 Tj
+72 259.959 Td
+(compression) 50.3609 Tj
+-340 TJm
+(performance.) 52.8317 Tj
+-580 TJm
+(Donna) 26.5603 Tj
+-339 TJm
+(Robinson) 38.1966 Tj
+-340 TJm
+(XMLised) 38.1866 Tj
+-340 TJm
+(the) 12.1743 Tj
+-340 TJm
+(documentation.) 61.7083 Tj
+-580 TJm
+(Man) 18.2614 Tj
+15 TJm
+(y) 4.9813 Tj
+-340 TJm
+(people) 26.5603 Tj
+-340 TJm
+(sent) 16.0497 Tj
+-339 TJm
+(patches,) 32.3685 Tj
+-363 TJm
+(helped) 26.5603 Tj
+-340 TJm
+(with) 17.7135 Tj
+72 248.003 Td
+(portability) 41.5142 Tj
+-250 TJm
+(problems,) 39.5714 Tj
+-250 TJm
+(lent) 14.9439 Tj
+-250 TJm
+(machines,) 40.1194 Tj
+-250 TJm
+(g) 4.9813 Tj
+5 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(advice) 26.0024 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(were) 19.3573 Tj
+-250 TJm
+(generally) 37.0708 Tj
+-250 TJm
+(helpful.) 30.7147 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.951 Td
+(7) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 8 11
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 75.786 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 701.916 Td
+/F116_0 24.7902 Tf
+(3.) 20.675 Tj
+-556 TJm
+(Pr) 26.1785 Tj
+20 TJm
+(ogramming) 134.9826 Tj
+-278 TJm
+(with) 49.5804 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+330.484 701.916 Td
+/F440_0 24.7902 Tf
+(libbzip2) 118.993 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 656.35 Td
+/F116_0 17.2154 Tf
+(T) 10.5186 Tj
+80 TJm
+(ab) 20.0904 Tj
+10 TJm
+(le) 14.3576 Tj
+-278 TJm
+(of) 16.2513 Tj
+-278 TJm
+(Contents) 74.5943 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 635.788 Td
+/F122_0 9.9626 Tf
+(3.1.) 14.9439 Tj
+-310 TJm
+(T) 6.0871 Tj
+80 TJm
+(op-le) 20.4731 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(structure) 34.8591 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+179.997 635.788 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 635.788 Td
+/F122_0 9.9626 Tf
+(8) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 623.832 Td
+(3.1.1.) 22.4159 Tj
+-310 TJm
+(Lo) 11.0684 Tj
+25 TJm
+(w-le) 17.7035 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(summary) 37.0808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+192.866 623.832 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 623.832 Td
+/F122_0 9.9626 Tf
+(9) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 611.877 Td
+(3.1.2.) 22.4159 Tj
+-310 TJm
+(High-le) 30.4357 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(summary) 37.0808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+193.822 611.877 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 611.877 Td
+/F122_0 9.9626 Tf
+(9) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 599.922 Td
+(3.1.3.) 22.4159 Tj
+-310 TJm
+(Utility) 26.0223 Tj
+-250 TJm
+(functions) 37.0808 Tj
+-250 TJm
+(summary) 37.0808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.582 599.922 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 599.922 Td
+/F122_0 9.9626 Tf
+(9) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 587.967 Td
+(3.2.) 14.9439 Tj
+-310 TJm
+(Error) 21.0211 Tj
+-250 TJm
+(handling) 34.8691 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.611 587.967 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 587.967 Td
+/F122_0 9.9626 Tf
+(10) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 576.012 Td
+(3.3.) 14.9439 Tj
+-310 TJm
+(Lo) 11.0684 Tj
+25 TJm
+(w-le) 17.7035 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace) 13.2702 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+181.045 576.012 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 576.012 Td
+/F122_0 9.9626 Tf
+(11) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 564.057 Td
+(3.3.1.) 22.4159 Tj
+-310 TJm
+(BZ2_bzCompressInit) 85.7879 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+197.762 564.057 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 564.057 Td
+/F122_0 9.9626 Tf
+(11) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 552.101 Td
+(3.3.2.) 22.4159 Tj
+-310 TJm
+(BZ2_bzCompress) 71.9499 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+184.201 552.101 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 552.101 Td
+/F122_0 9.9626 Tf
+(13) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 540.146 Td
+(3.3.3.) 22.4159 Tj
+-310 TJm
+(BZ2_bzCompressEnd) 87.9996 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+198.868 540.146 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 540.146 Td
+/F122_0 9.9626 Tf
+(16) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 528.191 Td
+(3.3.4.) 22.4159 Tj
+-310 TJm
+(BZ2_bzDecompressInit) 95.1827 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+206.887 528.191 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 528.191 Td
+/F122_0 9.9626 Tf
+(16) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 516.236 Td
+(3.3.5.) 22.4159 Tj
+-310 TJm
+(BZ2_bzDecompress) 81.3446 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+193.326 516.236 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 516.236 Td
+/F122_0 9.9626 Tf
+(17) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 504.281 Td
+(3.3.6.) 22.4159 Tj
+-310 TJm
+(BZ2_bzDecompressEnd) 97.3944 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.207 504.281 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 504.281 Td
+/F122_0 9.9626 Tf
+(18) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 492.325 Td
+(3.4.) 14.9439 Tj
+-310 TJm
+(High-le) 30.4357 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace) 13.2702 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+184.216 492.325 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 492.325 Td
+/F122_0 9.9626 Tf
+(18) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 480.37 Td
+(3.4.1.) 22.4159 Tj
+-310 TJm
+(BZ2_bzReadOpen) 74.1516 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+185.302 480.37 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 480.37 Td
+/F122_0 9.9626 Tf
+(19) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 468.415 Td
+(3.4.2.) 22.4159 Tj
+-310 TJm
+(BZ2_bzRead) 52.5726 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+163.443 468.415 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 468.415 Td
+/F122_0 9.9626 Tf
+(20) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 456.46 Td
+(3.4.3.) 22.4159 Tj
+-310 TJm
+(BZ2_bzReadGetUnused) 97.3944 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.207 456.46 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 456.46 Td
+/F122_0 9.9626 Tf
+(21) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 444.505 Td
+(3.4.4.) 22.4159 Tj
+-310 TJm
+(BZ2_bzReadClose) 75.2674 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.074 444.505 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 444.505 Td
+/F122_0 9.9626 Tf
+(22) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 432.55 Td
+(3.4.5.) 22.4159 Tj
+-310 TJm
+(BZ2_bzWriteOpen) 76.3633 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.622 432.55 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 432.55 Td
+/F122_0 9.9626 Tf
+(22) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 420.594 Td
+(3.4.6.) 22.4159 Tj
+-310 TJm
+(BZ2_bzWrite) 54.7843 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.763 420.594 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 420.594 Td
+/F122_0 9.9626 Tf
+(23) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 408.639 Td
+(3.4.7.) 22.4159 Tj
+-310 TJm
+(BZ2_bzWriteClose) 77.4791 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.179 408.639 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 408.639 Td
+/F122_0 9.9626 Tf
+(23) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 396.684 Td
+(3.4.8.) 22.4159 Tj
+-310 TJm
+(Handling) 37.0808 Tj
+-250 TJm
+(embedded) 40.9463 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(streams) 30.4357 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.601 396.684 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 396.684 Td
+/F122_0 9.9626 Tf
+(24) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 384.729 Td
+(3.4.9.) 22.4159 Tj
+-310 TJm
+(Standard) 35.417 Tj
+-250 TJm
+(\002le-reading/writing) 77.4791 Tj
+-250 TJm
+(code) 18.8094 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+247.564 384.729 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 384.729 Td
+/F122_0 9.9626 Tf
+(25) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 372.774 Td
+(3.5.) 14.9439 Tj
+-310 TJm
+(Utility) 26.0223 Tj
+-250 TJm
+(functions) 37.0808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+170.645 372.774 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 372.774 Td
+/F122_0 9.9626 Tf
+(26) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 360.819 Td
+(3.5.1.) 22.4159 Tj
+-310 TJm
+(BZ2_bzBuf) 47.0434 Tj
+25 TJm
+(fT) 9.4047 Tj
+80 TJm
+(oBuf) 19.9252 Tj
+25 TJm
+(fCompress) 43.1679 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+229.488 360.819 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 360.819 Td
+/F122_0 9.9626 Tf
+(26) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 348.863 Td
+(3.5.2.) 22.4159 Tj
+-310 TJm
+(BZ2_bzBuf) 47.0434 Tj
+25 TJm
+(fT) 9.4047 Tj
+80 TJm
+(oBuf) 19.9252 Tj
+25 TJm
+(fDecompress) 52.5627 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+238.613 348.863 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 348.863 Td
+/F122_0 9.9626 Tf
+(27) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 336.908 Td
+(3.6.) 14.9439 Tj
+-310 TJm
+(zlib) 14.9439 Tj
+-250 TJm
+(compatibility) 53.1405 Tj
+-250 TJm
+(functions) 37.0808 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+215.06 336.908 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 336.908 Td
+/F122_0 9.9626 Tf
+(28) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 324.953 Td
+(3.7.) 14.9439 Tj
+-310 TJm
+(Using) 23.8007 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(library) 26.5603 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(stdio-free) 38.1767 Tj
+-250 TJm
+(en) 9.4047 Tj
+40 TJm
+(vironment) 40.9562 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+282.092 324.953 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 324.953 Td
+/F122_0 9.9626 Tf
+(28) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 312.998 Td
+(3.7.1.) 22.4159 Tj
+-310 TJm
+(Getting) 29.8878 Tj
+-250 TJm
+(rid) 11.0684 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(stdio) 19.3773 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.492 312.998 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 312.998 Td
+/F122_0 9.9626 Tf
+(29) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 301.043 Td
+(3.7.2.) 22.4159 Tj
+-310 TJm
+(Critical) 29.8878 Tj
+-250 TJm
+(error) 19.3573 Tj
+-250 TJm
+(handling) 34.8691 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+201.629 301.043 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 301.043 Td
+/F122_0 9.9626 Tf
+(29) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 289.088 Td
+(3.8.) 14.9439 Tj
+-310 TJm
+(Making) 30.9936 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(W) 9.4047 Tj
+40 TJm
+(indo) 17.7135 Tj
+25 TJm
+(ws) 11.0684 Tj
+-250 TJm
+(DLL) 19.3673 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.243 289.088 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 289.088 Td
+/F122_0 9.9626 Tf
+(29) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 257.207 Td
+(This) 17.7135 Tj
+-250 TJm
+(chapter) 29.3199 Tj
+-250 TJm
+(describes) 37.0708 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(programming) 54.2364 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace) 13.2702 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+282.448 257.207 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+330.269 257.207 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 235.289 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-273 TJm
+(general) 29.3199 Tj
+-272 TJm
+(background) 47.0334 Tj
+-273 TJm
+(information,) 49.534 Tj
+-278 TJm
+(particularly) 45.9276 Tj
+-273 TJm
+(about) 22.1369 Tj
+-273 TJm
+(memory) 33.2053 Tj
+-272 TJm
+(use) 13.2801 Tj
+-273 TJm
+(and) 14.386 Tj
+-273 TJm
+(performance) 50.341 Tj
+-272 TJm
+(aspects,) 31.2626 Tj
+-279 TJm
+(you') 18.2614 Tj
+50 TJm
+(d) 4.9813 Tj
+-272 TJm
+(be) 9.4047 Tj
+-273 TJm
+(well) 17.1556 Tj
+-273 TJm
+(advised) 30.4357 Tj
+72 223.334 Td
+(to) 7.7509 Tj
+-250 TJm
+(read) 17.1456 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+(Ho) 12.1743 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(bzip2) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+([2]) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(as) 8.2988 Tj
+-250 TJm
+(well.) 19.6462 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 188.581 Td
+/F116_0 20.6585 Tf
+(3.1.) 34.4584 Tj
+-278 TJm
+(T) 12.6223 Tj
+80 TJm
+(op-le) 49.3532 Tj
+15 TJm
+(vel) 28.7153 Tj
+-278 TJm
+(structure) 89.5339 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 166.663 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+123.608 166.663 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-380 TJm
+(a) 4.4234 Tj
+-380 TJm
+(\003e) 9.9626 Tj
+15 TJm
+(xible) 19.9252 Tj
+-381 TJm
+(library) 26.5603 Tj
+-380 TJm
+(for) 11.6164 Tj
+-380 TJm
+(compressing) 50.3609 Tj
+-380 TJm
+(and) 14.386 Tj
+-380 TJm
+(decompressing) 59.7656 Tj
+-380 TJm
+(data) 16.5977 Tj
+-381 TJm
+(in) 7.7509 Tj
+-380 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.291 166.663 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+438.966 166.663 Td
+/F122_0 9.9626 Tf
+(data) 16.5977 Tj
+-380 TJm
+(format.) 29.0509 Tj
+-1401 TJm
+(Although) 37.6387 Tj
+72 154.708 Td
+(packaged) 37.6188 Tj
+-285 TJm
+(as) 8.2988 Tj
+-284 TJm
+(a) 4.4234 Tj
+-285 TJm
+(single) 23.8007 Tj
+-285 TJm
+(entity) 22.6948 Tj
+65 TJm
+(,) 2.4907 Tj
+-293 TJm
+(it) 5.5392 Tj
+-285 TJm
+(helps) 21.031 Tj
+-285 TJm
+(to) 7.7509 Tj
+-284 TJm
+(re) 7.7409 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(ard) 12.7222 Tj
+-285 TJm
+(the) 12.1743 Tj
+-285 TJm
+(library) 26.5603 Tj
+-284 TJm
+(as) 8.2988 Tj
+-285 TJm
+(three) 19.9152 Tj
+-285 TJm
+(separate) 32.6375 Tj
+-284 TJm
+(parts:) 22.1369 Tj
+-380 TJm
+(the) 12.1743 Tj
+-285 TJm
+(lo) 7.7509 Tj
+25 TJm
+(w) 7.193 Tj
+-284 TJm
+(le) 7.193 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-285 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace,) 15.7608 Tj
+-293 TJm
+(and) 14.386 Tj
+-285 TJm
+(the) 12.1743 Tj
+-285 TJm
+(high) 17.7135 Tj
+72 142.753 Td
+(le) 7.193 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace,) 15.7608 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(some) 21.031 Tj
+-250 TJm
+(utility) 23.8106 Tj
+-250 TJm
+(functions.) 39.5714 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 120.835 Td
+(The) 15.4918 Tj
+-349 TJm
+(structure) 34.8591 Tj
+-349 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+141.082 120.835 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.903 120.835 Td
+/F122_0 9.9626 Tf
+(') 3.3175 Tj
+55 TJm
+(s) 3.8755 Tj
+-349 TJm
+(interf) 21.579 Tj
+10 TJm
+(aces) 17.1456 Tj
+-349 TJm
+(is) 6.6451 Tj
+-349 TJm
+(similar) 27.6761 Tj
+-349 TJm
+(to) 7.7509 Tj
+-349 TJm
+(that) 14.9439 Tj
+-349 TJm
+(of) 8.2988 Tj
+-349 TJm
+(Jean-loup) 38.7346 Tj
+-349 TJm
+(Gailly') 28.224 Tj
+55 TJm
+(s) 3.8755 Tj
+-349 TJm
+(and) 14.386 Tj
+-349 TJm
+(Mark) 21.579 Tj
+-349 TJm
+(Adler') 26.0024 Tj
+55 TJm
+(s) 3.8755 Tj
+-349 TJm
+(e) 4.4234 Tj
+15 TJm
+(xcellent) 31.5416 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+516.09 120.835 Td
+/F124_0 9.9626 Tf
+(zlib) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 108.88 Td
+/F122_0 9.9626 Tf
+(library) 26.5603 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 86.962 Td
+(All) 12.7322 Tj
+-242 TJm
+(e) 4.4234 Tj
+15 TJm
+(xternally) 35.417 Tj
+-242 TJm
+(visible) 26.5703 Tj
+-241 TJm
+(symbols) 33.2153 Tj
+-242 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-242 TJm
+(names) 25.4544 Tj
+-242 TJm
+(be) 9.4047 Tj
+15 TJm
+(ginning) 30.4457 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+284.687 86.962 Td
+/F124_0 9.9626 Tf
+(BZ2_) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+308.597 86.962 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-615 TJm
+(This) 17.7135 Tj
+-241 TJm
+(is) 6.6451 Tj
+-242 TJm
+(ne) 9.4047 Tj
+25 TJm
+(w) 7.193 Tj
+-242 TJm
+(in) 7.7509 Tj
+-242 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-242 TJm
+(1.0.) 14.9439 Tj
+-614 TJm
+(The) 15.4918 Tj
+-242 TJm
+(intention) 35.427 Tj
+-242 TJm
+(is) 6.6451 Tj
+-241 TJm
+(to) 7.7509 Tj
+-242 TJm
+(minimise) 37.0908 Tj
+72 75.007 Td
+(pollution) 35.9849 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(namespaces) 47.5814 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(library) 26.5603 Tj
+-250 TJm
+(clients.) 28.503 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+541.288 50.951 Td
+(8) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 9 12
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+420.96 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+498.449 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 75.786 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(T) 6.0871 Tj
+80 TJm
+(o) 4.9813 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-250 TJm
+(part) 15.4918 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(need) 18.8094 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+240.567 710.037 Td
+/F124_0 9.9626 Tf
+(#include) 47.8205 Tj
+-600 TJm
+(<bzlib.h>) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+350.654 710.037 Td
+/F122_0 9.9626 Tf
+(into) 15.5018 Tj
+-250 TJm
+(your) 18.2614 Tj
+-250 TJm
+(sources.) 32.3685 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 679.416 Td
+/F116_0 17.2154 Tf
+(3.1.1.) 43.0729 Tj
+-278 TJm
+(Lo) 21.0372 Tj
+15 TJm
+(w-le) 33.484 Tj
+15 TJm
+(vel) 23.9294 Tj
+-278 TJm
+(summar) 66.9679 Tj
+-10 TJm
+(y) 9.5718 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 657.498 Td
+/F122_0 9.9626 Tf
+(This) 17.7135 Tj
+-212 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace) 13.2702 Tj
+-212 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vides) 21.031 Tj
+-212 TJm
+(services) 32.0895 Tj
+-212 TJm
+(for) 11.6164 Tj
+-212 TJm
+(compressing) 50.3609 Tj
+-212 TJm
+(and) 14.386 Tj
+-212 TJm
+(decompress) 47.0334 Tj
+1 TJm
+(ing) 12.7322 Tj
+-212 TJm
+(data) 16.5977 Tj
+-212 TJm
+(in) 7.7509 Tj
+-212 TJm
+(memory) 33.2053 Tj
+65 TJm
+(.) 2.4907 Tj
+-595 TJm
+(There') 26.5503 Tj
+55 TJm
+(s) 3.8755 Tj
+-212 TJm
+(no) 9.9626 Tj
+-212 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vision) 24.3586 Tj
+-212 TJm
+(for) 11.6164 Tj
+-212 TJm
+(dealing) 29.3299 Tj
+72 645.543 Td
+(with) 17.7135 Tj
+-213 TJm
+(\002les,) 19.0983 Tj
+-220 TJm
+(streams) 30.4357 Tj
+-213 TJm
+(or) 8.2988 Tj
+-213 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-213 TJm
+(other) 20.4731 Tj
+-213 TJm
+(I/O) 13.2801 Tj
+-213 TJm
+(mechanisms,) 51.7457 Tj
+-221 TJm
+(just) 14.396 Tj
+-213 TJm
+(straight) 29.8878 Tj
+-213 TJm
+(memory-to-memory) 80.7967 Tj
+-213 TJm
+(w) 7.193 Tj
+10 TJm
+(ork.) 15.7708 Tj
+-595 TJm
+(In) 8.2988 Tj
+-213 TJm
+(f) 3.3175 Tj
+10 TJm
+(act,) 14.107 Tj
+-221 TJm
+(this) 14.396 Tj
+-213 TJm
+(part) 15.4918 Tj
+-213 TJm
+(of) 8.2988 Tj
+-213 TJm
+(the) 12.1743 Tj
+-213 TJm
+(library) 26.5603 Tj
+72 633.588 Td
+(can) 13.8281 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(compiled) 37.0808 Tj
+-250 TJm
+(without) 30.4457 Tj
+-250 TJm
+(inclusion) 36.5329 Tj
+-250 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+222.534 633.588 Td
+/F124_0 9.9626 Tf
+(stdio.h) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+264.377 633.588 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(may) 17.1556 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(helpful) 28.224 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(embedded) 40.9463 Tj
+-250 TJm
+(applications.) 50.6399 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 611.67 Td
+(The) 15.4918 Tj
+-250 TJm
+(lo) 7.7509 Tj
+25 TJm
+(w-le) 17.7035 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(part) 15.4918 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(library) 26.5603 Tj
+-250 TJm
+(has) 13.2801 Tj
+-250 TJm
+(no) 9.9626 Tj
+-250 TJm
+(global) 24.9065 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(ariables) 30.9837 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(therefore) 35.955 Tj
+-250 TJm
+(thread-safe.) 46.7445 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 589.752 Td
+(Six) 13.2901 Tj
+-875 TJm
+(routines) 32.0995 Tj
+-876 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e) 4.4234 Tj
+-875 TJm
+(up) 9.9626 Tj
+-876 TJm
+(the) 12.1743 Tj
+-875 TJm
+(lo) 7.7509 Tj
+25 TJm
+(w) 7.193 Tj
+-876 TJm
+(le) 7.193 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-875 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace:) 16.0398 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+308.791 589.752 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+416.387 589.752 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+429.158 589.752 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+512.844 589.752 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-1032 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 577.797 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressEnd) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+186.15 577.797 Td
+/F122_0 9.9626 Tf
+(for) 11.6164 Tj
+-1258 TJm
+(compression,) 52.8516 Tj
+-1510 TJm
+(and) 14.386 Tj
+-1257 TJm
+(a) 4.4234 Tj
+-1258 TJm
+(corresponding) 56.996 Tj
+-1258 TJm
+(trio) 13.8381 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+417.958 577.797 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompressInit) 119.5512 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 577.797 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 565.842 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.707 565.842 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+192.158 565.842 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompressEnd) 113.5736 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+310.798 565.842 Td
+/F122_0 9.9626 Tf
+(for) 11.6164 Tj
+-508 TJm
+(decompression.) 62.2563 Tj
+-2171 TJm
+(The) 15.4918 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+431.918 564.099 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+437.895 565.842 Td
+(Init) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+466.871 565.842 Td
+/F122_0 9.9626 Tf
+(functions) 37.0808 Tj
+-508 TJm
+(allocate) 30.9837 Tj
+72 553.887 Td
+(memory) 33.2053 Tj
+-574 TJm
+(for) 11.6164 Tj
+-573 TJm
+(compression/decompression) 112.8962 Tj
+-574 TJm
+(and) 14.386 Tj
+-574 TJm
+(do) 9.9626 Tj
+-573 TJm
+(other) 20.4731 Tj
+-574 TJm
+(initialisations,) 56.1891 Tj
+-654 TJm
+(whilst) 24.3586 Tj
+-574 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+419.503 552.143 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+425.48 553.887 Td
+(End) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+449.128 553.887 Td
+/F122_0 9.9626 Tf
+(functions) 37.0808 Tj
+-574 TJm
+(close) 20.4731 Tj
+-573 TJm
+(do) 9.9626 Tj
+25 TJm
+(wn) 12.1743 Tj
+72 541.932 Td
+(operations) 41.5042 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(release) 27.6562 Tj
+-250 TJm
+(memory) 33.2053 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 520.014 Td
+(The) 15.4918 Tj
+-303 TJm
+(real) 14.9339 Tj
+-303 TJm
+(w) 7.193 Tj
+10 TJm
+(ork) 13.2801 Tj
+-303 TJm
+(is) 6.6451 Tj
+-303 TJm
+(done) 19.3673 Tj
+-303 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.892 520.014 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+263.598 520.014 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+281.003 520.014 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+376.645 520.014 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-939 TJm
+(These) 23.7907 Tj
+-303 TJm
+(compress) 37.6287 Tj
+-303 TJm
+(and) 14.386 Tj
+-303 TJm
+(decompress) 47.0334 Tj
+-303 TJm
+(data) 16.5977 Tj
+72 508.059 Td
+(from) 19.3673 Tj
+-205 TJm
+(a) 4.4234 Tj
+-205 TJm
+(user) 16.5977 Tj
+20 TJm
+(-supplied) 37.0808 Tj
+-205 TJm
+(input) 20.4831 Tj
+-206 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-205 TJm
+(to) 7.7509 Tj
+-205 TJm
+(a) 4.4234 Tj
+-205 TJm
+(user) 16.5977 Tj
+20 TJm
+(-supplied) 37.0808 Tj
+-205 TJm
+(output) 25.4644 Tj
+-205 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+55 TJm
+(.) 2.4907 Tj
+-591 TJm
+(These) 23.7907 Tj
+-205 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fers) 14.9339 Tj
+-205 TJm
+(can) 13.8281 Tj
+-205 TJm
+(be) 9.4047 Tj
+-205 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-205 TJm
+(size;) 18.2614 Tj
+-220 TJm
+(arbitrary) 34.3012 Tj
+-206 TJm
+(quantities) 38.7446 Tj
+-205 TJm
+(of) 8.2988 Tj
+72 496.104 Td
+(data) 16.5977 Tj
+-258 TJm
+(are) 12.1643 Tj
+-258 TJm
+(handled) 31.5416 Tj
+-258 TJm
+(by) 9.9626 Tj
+-257 TJm
+(making) 29.8878 Tj
+-258 TJm
+(repeated) 33.7433 Tj
+-258 TJm
+(calls) 18.2614 Tj
+-258 TJm
+(to) 7.7509 Tj
+-258 TJm
+(these) 20.4731 Tj
+-258 TJm
+(functions.) 39.5714 Tj
+-667 TJm
+(This) 17.7135 Tj
+-258 TJm
+(is) 6.6451 Tj
+-258 TJm
+(a) 4.4234 Tj
+-257 TJm
+(\003e) 9.9626 Tj
+15 TJm
+(xible) 19.9252 Tj
+-258 TJm
+(mechanism) 45.3796 Tj
+-258 TJm
+(allo) 14.9439 Tj
+25 TJm
+(wing) 19.9252 Tj
+-258 TJm
+(a) 4.4234 Tj
+-258 TJm
+(consumer) 38.7346 Tj
+20 TJm
+(-pull) 18.8194 Tj
+72 484.148 Td
+(style) 18.8194 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(acti) 14.386 Tj
+25 TJm
+(vity) 15.5018 Tj
+65 TJm
+(,) 2.4907 Tj
+-250 TJm
+(or) 8.2988 Tj
+-250 TJm
+(producer) 35.4071 Tj
+20 TJm
+(-push,) 24.6275 Tj
+-250 TJm
+(or) 8.2988 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(mixture) 30.9936 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(both.) 20.2042 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 453.527 Td
+/F116_0 17.2154 Tf
+(3.1.2.) 43.0729 Tj
+-278 TJm
+(High-le) 58.343 Tj
+15 TJm
+(vel) 23.9294 Tj
+-278 TJm
+(summar) 66.9679 Tj
+-10 TJm
+(y) 9.5718 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 431.609 Td
+/F122_0 9.9626 Tf
+(This) 17.7135 Tj
+-284 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace) 13.2702 Tj
+-284 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vides) 21.031 Tj
+-285 TJm
+(some) 21.031 Tj
+-284 TJm
+(handy) 24.3486 Tj
+-284 TJm
+(wrappers) 36.5129 Tj
+-284 TJm
+(around) 27.6661 Tj
+-284 TJm
+(the) 12.1743 Tj
+-284 TJm
+(lo) 7.7509 Tj
+25 TJm
+(w-le) 17.7035 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-285 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace) 13.2702 Tj
+-284 TJm
+(to) 7.7509 Tj
+-284 TJm
+(f) 3.3175 Tj
+10 TJm
+(acilitate) 31.5416 Tj
+-284 TJm
+(reading) 29.8778 Tj
+-284 TJm
+(and) 14.386 Tj
+-285 TJm
+(writ) 16.0497 Tj
+1 TJm
+(ing) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+510.112 431.609 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 419.654 Td
+/F122_0 9.9626 Tf
+(format) 26.5603 Tj
+-347 TJm
+(\002les) 16.6077 Tj
+-346 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+125.391 419.654 Td
+/F124_0 9.9626 Tf
+(.bz2) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+152.754 419.654 Td
+/F122_0 9.9626 Tf
+(\002les\).) 22.4159 Tj
+-1200 TJm
+(The) 15.4918 Tj
+-346 TJm
+(routines) 32.0995 Tj
+-347 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vide) 17.1556 Tj
+-346 TJm
+(hooks) 23.8007 Tj
+-347 TJm
+(to) 7.7509 Tj
+-346 TJm
+(f) 3.3175 Tj
+10 TJm
+(acilitate) 31.5416 Tj
+-347 TJm
+(reading) 29.8778 Tj
+-347 TJm
+(\002les) 16.6077 Tj
+-346 TJm
+(in) 7.7509 Tj
+-347 TJm
+(which) 24.3486 Tj
+-346 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+460.049 419.654 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+493.39 419.654 Td
+/F122_0 9.9626 Tf
+(data) 16.5977 Tj
+-347 TJm
+(stream) 26.5603 Tj
+72 407.699 Td
+(is) 6.6451 Tj
+-339 TJm
+(embedded) 40.9463 Tj
+-339 TJm
+(within) 25.4644 Tj
+-339 TJm
+(some) 21.031 Tj
+-339 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ger) 12.7222 Tj
+20 TJm
+(-scale) 23.2328 Tj
+-339 TJm
+(\002le) 12.7322 Tj
+-339 TJm
+(structure,) 37.3498 Tj
+-361 TJm
+(or) 8.2988 Tj
+-340 TJm
+(wher) 19.9152 Tj
+1 TJm
+(e) 4.4234 Tj
+-340 TJm
+(there) 19.9152 Tj
+-339 TJm
+(are) 12.1643 Tj
+-339 TJm
+(multiple) 33.2153 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+400.941 407.699 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+434.207 407.699 Td
+/F122_0 9.9626 Tf
+(data) 16.5977 Tj
+-339 TJm
+(streams) 30.4357 Tj
+-339 TJm
+(concatenated) 52.0048 Tj
+72 395.744 Td
+(end-to-end.) 45.6486 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 373.826 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-332 TJm
+(reading) 29.8778 Tj
+-333 TJm
+(\002les,) 19.0983 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+144.803 373.826 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadOpen) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+228.489 373.826 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.496 373.826 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.272 373.826 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+300.279 373.826 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadClose) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+393.253 373.826 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+410.951 373.826 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadGetUnused) 113.5736 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+527.836 373.826 Td
+/F122_0 9.9626 Tf
+(are) 12.1643 Tj
+72 361.871 Td
+(supplied.) 36.2539 Tj
+-620 TJm
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-250 TJm
+(writing) 28.782 Tj
+-250 TJm
+(\002les,) 19.0983 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+183.471 361.871 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteOpen) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+273.135 361.871 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+278.116 361.871 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWrite) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+346.36 361.871 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.237 361.871 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteFinish) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+467.346 361.871 Td
+/F122_0 9.9626 Tf
+(are) 12.1643 Tj
+-250 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+25 TJm
+(ailable.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 339.953 Td
+(As) 11.0684 Tj
+-374 TJm
+(with) 17.7135 Tj
+-374 TJm
+(the) 12.1743 Tj
+-375 TJm
+(lo) 7.7509 Tj
+25 TJm
+(w-le) 17.7035 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-374 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+-405 TJm
+(no) 9.9626 Tj
+-374 TJm
+(global) 24.9065 Tj
+-374 TJm
+(v) 4.9813 Tj
+25 TJm
+(ariables) 30.9837 Tj
+-375 TJm
+(are) 12.1643 Tj
+-374 TJm
+(used) 18.2614 Tj
+-374 TJm
+(so) 8.8568 Tj
+-374 TJm
+(the) 12.1743 Tj
+-374 TJm
+(library) 26.5603 Tj
+-375 TJm
+(is) 6.6451 Tj
+-374 TJm
+(per) 12.7222 Tj
+-374 TJm
+(se) 8.2988 Tj
+-374 TJm
+(thread-safe.) 46.7445 Tj
+-1365 TJm
+(Ho) 12.1743 Tj
+25 TJm
+(we) 11.6164 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+40 TJm
+(,) 2.4907 Tj
+-406 TJm
+(if) 6.0871 Tj
+-374 TJm
+(I/O) 13.2801 Tj
+72 327.998 Td
+(errors) 23.2328 Tj
+-267 TJm
+(occur) 22.1269 Tj
+-267 TJm
+(whilst) 24.3586 Tj
+-267 TJm
+(reading) 29.8778 Tj
+-267 TJm
+(or) 8.2988 Tj
+-267 TJm
+(writing) 28.782 Tj
+-267 TJm
+(the) 12.1743 Tj
+-268 TJm
+(underlying) 43.1679 Tj
+-267 TJm
+(compressed) 47.0334 Tj
+-267 TJm
+(\002les,) 19.0983 Tj
+-271 TJm
+(you) 14.9439 Tj
+-267 TJm
+(may) 17.1556 Tj
+-267 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-267 TJm
+(to) 7.7509 Tj
+-267 TJm
+(consult) 28.782 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+457.199 327.998 Td
+/F124_0 9.9626 Tf
+(errno) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+489.748 327.998 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-267 TJm
+(determine) 39.8404 Tj
+72 316.043 Td
+(the) 12.1743 Tj
+-366 TJm
+(cause) 22.1269 Tj
+-365 TJm
+(of) 8.2988 Tj
+-366 TJm
+(the) 12.1743 Tj
+-365 TJm
+(error) 19.3573 Tj
+55 TJm
+(.) 2.4907 Tj
+-1314 TJm
+(In) 8.2988 Tj
+-366 TJm
+(that) 14.9439 Tj
+-365 TJm
+(case,) 19.6363 Tj
+-395 TJm
+(you') 18.2614 Tj
+50 TJm
+(d) 4.9813 Tj
+-366 TJm
+(need) 18.8094 Tj
+-365 TJm
+(a) 4.4234 Tj
+-366 TJm
+(C) 6.6451 Tj
+-365 TJm
+(library) 26.5603 Tj
+-366 TJm
+(which) 24.3486 Tj
+-366 TJm
+(correctly) 35.4071 Tj
+-365 TJm
+(supports) 33.7633 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+431.668 316.043 Td
+/F124_0 9.9626 Tf
+(errno) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+465.199 316.043 Td
+/F122_0 9.9626 Tf
+(in) 7.7509 Tj
+-366 TJm
+(a) 4.4234 Tj
+-365 TJm
+(multithreaded) 55.3422 Tj
+72 304.088 Td
+(en) 9.4047 Tj
+40 TJm
+(vironment.) 43.4469 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 282.17 Td
+(T) 6.0871 Tj
+80 TJm
+(o) 4.9813 Tj
+-243 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e) 4.4234 Tj
+-243 TJm
+(the) 12.1743 Tj
+-242 TJm
+(library) 26.5603 Tj
+-243 TJm
+(a) 4.4234 Tj
+-243 TJm
+(little) 18.2714 Tj
+-242 TJm
+(simpler) 29.8878 Tj
+-243 TJm
+(and) 14.386 Tj
+-243 TJm
+(more) 20.4731 Tj
+-243 TJm
+(portable,) 35.1381 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+289.263 282.17 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadOpen) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+375.368 282.17 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.172 282.17 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteOpen) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+484.254 282.17 Td
+/F122_0 9.9626 Tf
+(require) 28.2141 Tj
+-243 TJm
+(you) 14.9439 Tj
+-243 TJm
+(to) 7.7509 Tj
+72 270.215 Td
+(pass) 17.1556 Tj
+-247 TJm
+(them) 19.9252 Tj
+-248 TJm
+(\002le) 12.7322 Tj
+-247 TJm
+(handles) 30.4357 Tj
+-247 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+165.421 270.215 Td
+/F124_0 9.9626 Tf
+(FILE) 23.9102 Tj
+189.331 268.471 Td
+(*) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+195.309 270.215 Td
+/F122_0 9.9626 Tf
+(s\)) 7.193 Tj
+-247 TJm
+(which) 24.3486 Tj
+-248 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-247 TJm
+(pre) 12.7222 Tj
+25 TJm
+(viously) 29.3399 Tj
+-247 TJm
+(been) 18.8094 Tj
+-248 TJm
+(opened) 28.772 Tj
+-247 TJm
+(for) 11.6164 Tj
+-247 TJm
+(reading) 29.8778 Tj
+-247 TJm
+(or) 8.2988 Tj
+-248 TJm
+(writing) 28.782 Tj
+-247 TJm
+(respecti) 30.9837 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ely) 12.1743 Tj
+65 TJm
+(.) 2.4907 Tj
+-618 TJm
+(That) 18.2614 Tj
+-248 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+20 TJm
+(oids) 16.6077 Tj
+72 258.259 Td
+(portability) 41.5142 Tj
+-272 TJm
+(problems) 37.0808 Tj
+-273 TJm
+(associated) 40.9463 Tj
+-272 TJm
+(with) 17.7135 Tj
+-272 TJm
+(\002le) 12.7322 Tj
+-273 TJm
+(operations) 41.5042 Tj
+-272 TJm
+(and) 14.386 Tj
+-272 TJm
+(\002le) 12.7322 Tj
+-273 TJm
+(attrib) 21.031 Tj
+20 TJm
+(utes,) 18.5404 Tj
+-278 TJm
+(whilst) 24.3586 Tj
+-272 TJm
+(not) 12.7322 Tj
+-272 TJm
+(being) 22.1369 Tj
+-273 TJm
+(much) 22.1369 Tj
+-272 TJm
+(of) 8.2988 Tj
+-273 TJm
+(an) 9.4047 Tj
+-272 TJm
+(imposition) 42.63 Tj
+-272 TJm
+(on) 9.9626 Tj
+-273 TJm
+(the) 12.1743 Tj
+72 246.304 Td
+(programmer) 49.2451 Tj
+55 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 215.683 Td
+/F116_0 17.2154 Tf
+(3.1.3.) 43.0729 Tj
+-278 TJm
+(Utility) 47.8244 Tj
+-278 TJm
+(functions) 77.4693 Tj
+-278 TJm
+(summar) 66.9679 Tj
+-10 TJm
+(y) 9.5718 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 193.765 Td
+/F122_0 9.9626 Tf
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-273 TJm
+(v) 4.9813 Tj
+15 TJm
+(ery) 12.7222 Tj
+-273 TJm
+(simple) 26.5703 Tj
+-273 TJm
+(needs,) 25.1755 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+165.929 193.765 Td
+/F124_0 9.9626 Tf
+(BZ2_bzBuffToBuffCompress) 143.4614 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+312.112 193.765 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+329.219 193.765 Td
+/F124_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress) 155.4166 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+487.357 193.765 Td
+/F122_0 9.9626 Tf
+(are) 12.1643 Tj
+-273 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vided.) 24.6275 Tj
+72 181.81 Td
+(These) 23.7907 Tj
+-374 TJm
+(compress) 37.6287 Tj
+-373 TJm
+(data) 16.5977 Tj
+-374 TJm
+(in) 7.7509 Tj
+-373 TJm
+(memory) 33.2053 Tj
+-374 TJm
+(from) 19.3673 Tj
+-373 TJm
+(one) 14.386 Tj
+-374 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-373 TJm
+(to) 7.7509 Tj
+-374 TJm
+(another) 29.8778 Tj
+-374 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-373 TJm
+(in) 7.7509 Tj
+-374 TJm
+(a) 4.4234 Tj
+-373 TJm
+(single) 23.8007 Tj
+-374 TJm
+(function) 33.2053 Tj
+-373 TJm
+(call.) 16.8766 Tj
+-1362 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-373 TJm
+(should) 26.5703 Tj
+-374 TJm
+(assess) 24.3486 Tj
+72 169.855 Td
+(whether) 32.0895 Tj
+-344 TJm
+(these) 20.4731 Tj
+-343 TJm
+(functions) 37.0808 Tj
+-344 TJm
+(ful\002ll) 22.1469 Tj
+-344 TJm
+(your) 18.2614 Tj
+-343 TJm
+(memory-to-memory) 80.7967 Tj
+-344 TJm
+(compression/decompression) 112.8962 Tj
+-343 TJm
+(requirements) 52.0147 Tj
+-344 TJm
+(before) 25.4445 Tj
+-344 TJm
+(in) 7.7509 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(esting) 23.8007 Tj
+72 157.9 Td
+(ef) 7.7409 Tj
+25 TJm
+(fort) 14.386 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(understanding) 56.4481 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(more) 20.4731 Tj
+-250 TJm
+(general) 29.3199 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(more) 20.4731 Tj
+-250 TJm
+(comple) 29.3299 Tj
+15 TJm
+(x) 4.9813 Tj
+-250 TJm
+(lo) 7.7509 Tj
+25 TJm
+(w-le) 17.7035 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace.) 15.7608 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 135.982 Td
+(Y) 7.193 Tj
+110 TJm
+(oshioka) 30.9936 Tj
+-423 TJm
+(Tsuneo) 29.3299 Tj
+-422 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+150.161 135.982 Td
+/F124_0 9.9626 Tf
+(tsuneo@rr.iij4u.or.jp) 125.5288 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+275.69 135.982 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-423 TJm
+(has) 13.2801 Tj
+-422 TJm
+(contrib) 28.224 Tj
+20 TJm
+(uted) 17.1556 Tj
+-423 TJm
+(some) 21.031 Tj
+-423 TJm
+(functions) 37.0808 Tj
+-422 TJm
+(to) 7.7509 Tj
+-423 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-423 TJm
+(better) 22.6848 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+476.462 135.982 Td
+/F124_0 9.9626 Tf
+(zlib) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+504.583 135.982 Td
+/F122_0 9.9626 Tf
+(compati-) 35.417 Tj
+72 124.027 Td
+(bility) 21.041 Tj
+65 TJm
+(.) 2.4907 Tj
+-1446 TJm
+(These) 23.7907 Tj
+-388 TJm
+(functions) 37.0808 Tj
+-387 TJm
+(are) 12.1643 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+193.914 124.027 Td
+/F124_0 9.9626 Tf
+(BZ2_bzopen) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+253.689 124.027 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+260.385 124.027 Td
+/F124_0 9.9626 Tf
+(BZ2_bzread) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+320.161 124.027 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+326.857 124.027 Td
+/F124_0 9.9626 Tf
+(BZ2_bzwrite) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.611 124.027 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+399.307 124.027 Td
+/F124_0 9.9626 Tf
+(BZ2_bzflush) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+465.06 124.027 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+471.756 124.027 Td
+/F124_0 9.9626 Tf
+(BZ2_bzclose) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 124.027 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 112.072 Td
+/F124_0 9.9626 Tf
+(BZ2_bzerror) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+140.408 112.072 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+157.449 112.072 Td
+/F124_0 9.9626 Tf
+(BZ2_bzlibVersion) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+253.091 112.072 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-719 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-266 TJm
+(may) 17.1556 Tj
+-267 TJm
+(\002nd) 15.5018 Tj
+-266 TJm
+(these) 20.4731 Tj
+-267 TJm
+(functions) 37.0808 Tj
+-266 TJm
+(more) 20.4731 Tj
+-267 TJm
+(con) 14.386 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(enient) 24.3486 Tj
+-266 TJm
+(for) 11.6164 Tj
+-267 TJm
+(simple) 26.5703 Tj
+-266 TJm
+(\002le) 12.7322 Tj
+-267 TJm
+(reading) 29.8778 Tj
+72 100.116 Td
+(and) 14.386 Tj
+-270 TJm
+(writ) 16.0497 Tj
+1 TJm
+(ing,) 15.2229 Tj
+-275 TJm
+(than) 17.1556 Tj
+-269 TJm
+(those) 21.031 Tj
+-270 TJm
+(in) 7.7509 Tj
+-269 TJm
+(the) 12.1743 Tj
+-270 TJm
+(high-le) 28.224 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-269 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace.) 15.7608 Tj
+-737 TJm
+(These) 23.7907 Tj
+-270 TJm
+(functions) 37.0808 Tj
+-269 TJm
+(are) 12.1643 Tj
+-270 TJm
+(not) 12.7322 Tj
+-269 TJm
+(\(yet\)) 18.8094 Tj
+-270 TJm
+(of) 8.2988 Tj
+25 TJm
+(\002cially) 27.6761 Tj
+-269 TJm
+(part) 15.4918 Tj
+-270 TJm
+(of) 8.2988 Tj
+-269 TJm
+(the) 12.1743 Tj
+-270 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+-274 TJm
+(and) 14.386 Tj
+-270 TJm
+(are) 12.1643 Tj
+72 88.161 Td
+(minimally) 40.9662 Tj
+-291 TJm
+(documented) 48.6972 Tj
+-291 TJm
+(here.) 19.6363 Tj
+-867 TJm
+(If) 6.6351 Tj
+-291 TJm
+(the) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-291 TJm
+(break,) 24.6176 Tj
+-301 TJm
+(you) 14.9439 Tj
+-291 TJm
+(get) 12.1743 Tj
+-292 TJm
+(to) 7.7509 Tj
+-291 TJm
+(k) 4.9813 Tj
+10 TJm
+(eep) 13.8281 Tj
+-291 TJm
+(all) 9.9626 Tj
+-291 TJm
+(the) 12.1743 Tj
+-291 TJm
+(pieces.) 27.3872 Tj
+-433 TJm
+(I) 3.3175 Tj
+-291 TJm
+(hope) 19.3673 Tj
+-291 TJm
+(to) 7.7509 Tj
+-291 TJm
+(document) 39.2925 Tj
+-292 TJm
+(them) 19.9252 Tj
+-291 TJm
+(properly) 33.7533 Tj
+-291 TJm
+(when) 21.579 Tj
+72 76.206 Td
+(time) 17.7135 Tj
+-250 TJm
+(permits.) 32.3785 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+541.288 51.071 Td
+(9) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 10 13
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(Y) 7.193 Tj
+110 TJm
+(oshioka) 30.9936 Tj
+-250 TJm
+(also) 16.0497 Tj
+-250 TJm
+(contrib) 28.224 Tj
+20 TJm
+(uted) 17.1556 Tj
+-250 TJm
+(modi\002cations) 54.2464 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(allo) 14.9439 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(library) 26.5603 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(uilt) 13.2901 Tj
+-250 TJm
+(as) 8.2988 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(W) 9.4047 Tj
+40 TJm
+(indo) 17.7135 Tj
+25 TJm
+(ws) 11.0684 Tj
+-250 TJm
+(DLL.) 21.8579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 675.504 Td
+/F116_0 20.6585 Tf
+(3.2.) 34.4584 Tj
+-278 TJm
+(Err) 29.8515 Tj
+20 TJm
+(or) 20.6585 Tj
+-278 TJm
+(handling) 86.084 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 653.805 Td
+/F122_0 9.9626 Tf
+(The) 15.4918 Tj
+-214 TJm
+(library) 26.5603 Tj
+-215 TJm
+(is) 6.6451 Tj
+-214 TJm
+(designed) 35.417 Tj
+-215 TJm
+(to) 7.7509 Tj
+-214 TJm
+(reco) 17.1456 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-215 TJm
+(cleanly) 28.772 Tj
+-214 TJm
+(in) 7.7509 Tj
+-215 TJm
+(all) 9.9626 Tj
+-214 TJm
+(situations,) 40.6873 Tj
+-222 TJm
+(including) 37.6387 Tj
+-214 TJm
+(the) 12.1743 Tj
+-215 TJm
+(w) 7.193 Tj
+10 TJm
+(orst-case) 35.4071 Tj
+-214 TJm
+(situation) 34.3212 Tj
+-215 TJm
+(of) 8.2988 Tj
+-214 TJm
+(decompressing) 59.7656 Tj
+-215 TJm
+(random) 30.4357 Tj
+72 641.85 Td
+(data.) 19.0883 Tj
+-764 TJm
+(I'm) 14.386 Tj
+-274 TJm
+(not) 12.7322 Tj
+-275 TJm
+(100%) 23.2427 Tj
+-274 TJm
+(sure) 16.5977 Tj
+-274 TJm
+(that) 14.9439 Tj
+-274 TJm
+(it) 5.5392 Tj
+-274 TJm
+(can) 13.8281 Tj
+-274 TJm
+(al) 7.193 Tj
+10 TJm
+(w) 7.193 Tj
+10 TJm
+(ays) 13.2801 Tj
+-274 TJm
+(do) 9.9626 Tj
+-274 TJm
+(this,) 16.8866 Tj
+-280 TJm
+(so) 8.8568 Tj
+-274 TJm
+(you) 14.9439 Tj
+-274 TJm
+(might) 23.2527 Tj
+-274 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-274 TJm
+(to) 7.7509 Tj
+-274 TJm
+(add) 14.386 Tj
+-274 TJm
+(a) 4.4234 Tj
+-275 TJm
+(s) 3.8755 Tj
+1 TJm
+(ignal) 19.9252 Tj
+-275 TJm
+(handler) 29.8778 Tj
+-274 TJm
+(to) 7.7509 Tj
+-274 TJm
+(catch) 21.0211 Tj
+-274 TJm
+(se) 8.2988 Tj
+15 TJm
+(gmentation) 44.8317 Tj
+72 629.895 Td
+(violations) 39.3025 Tj
+-273 TJm
+(during) 26.0123 Tj
+-273 TJm
+(decompression) 59.7656 Tj
+-273 TJm
+(if) 6.0871 Tj
+-273 TJm
+(you) 14.9439 Tj
+-273 TJm
+(are) 12.1643 Tj
+-273 TJm
+(feeling) 27.6661 Tj
+-274 TJm
+(especiall) 34.8591 Tj
+1 TJm
+(y) 4.9813 Tj
+-274 TJm
+(paranoid.) 37.3498 Tj
+-758 TJm
+(I) 3.3175 Tj
+-273 TJm
+(w) 7.193 Tj
+10 TJm
+(ould) 17.7135 Tj
+-273 TJm
+(be) 9.4047 Tj
+-273 TJm
+(interested) 38.7346 Tj
+-273 TJm
+(in) 7.7509 Tj
+-274 TJm
+(hearing) 29.8778 Tj
+-273 TJm
+(more) 20.4731 Tj
+-273 TJm
+(about) 22.1369 Tj
+72 617.939 Td
+(the) 12.1743 Tj
+-250 TJm
+(rob) 13.2801 Tj
+20 TJm
+(ustness) 28.782 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(library) 26.5603 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(corrupted) 38.1767 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(data.) 19.0883 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 596.241 Td
+(V) 7.193 Tj
+111 TJm
+(ersion) 24.3486 Tj
+-251 TJm
+(1.0.3) 19.9252 Tj
+-251 TJm
+(more) 20.4731 Tj
+-251 TJm
+(rob) 13.2801 Tj
+20 TJm
+(ust) 11.6264 Tj
+-251 TJm
+(in) 7.7509 Tj
+-251 TJm
+(this) 14.396 Tj
+-251 TJm
+(respect) 28.2141 Tj
+-252 TJm
+(than) 17.1556 Tj
+-251 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-251 TJm
+(pre) 12.7222 Tj
+25 TJm
+(vious) 21.589 Tj
+-251 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion.) 26.8392 Tj
+-626 TJm
+(In) 8.2988 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(estig) 18.8194 Tj
+5 TJm
+(ations) 23.8007 Tj
+-251 TJm
+(with) 17.7135 Tj
+-251 TJm
+(V) 7.193 Tj
+111 TJm
+(algrind) 28.224 Tj
+-251 TJm
+(\(a) 7.7409 Tj
+-252 TJm
+(tool) 15.5018 Tj
+-251 TJm
+(for) 11.6164 Tj
+-251 TJm
+(detecting) 36.5229 Tj
+72 584.285 Td
+(problems) 37.0808 Tj
+-422 TJm
+(with) 17.7135 Tj
+-421 TJm
+(memory) 33.2053 Tj
+-422 TJm
+(management\)) 54.2264 Tj
+-421 TJm
+(indicate) 31.5416 Tj
+-422 TJm
+(that,) 17.4346 Tj
+-464 TJm
+(at) 7.193 Tj
+-422 TJm
+(least) 18.2614 Tj
+-421 TJm
+(for) 11.6164 Tj
+-422 TJm
+(the) 12.1743 Tj
+-422 TJm
+(f) 3.3175 Tj
+1 TJm
+(e) 4.4234 Tj
+25 TJm
+(w) 7.193 Tj
+-422 TJm
+(\002les) 16.6077 Tj
+-422 TJm
+(I) 3.3175 Tj
+-421 TJm
+(tested,) 25.7334 Tj
+-464 TJm
+(all) 9.9626 Tj
+-422 TJm
+(single-bit) 37.6387 Tj
+-422 TJm
+(errors) 23.2328 Tj
+-421 TJm
+(in) 7.7509 Tj
+-422 TJm
+(the) 12.1743 Tj
+72 572.33 Td
+(decompressed) 56.4381 Tj
+-342 TJm
+(data) 16.5977 Tj
+-341 TJm
+(are) 12.1643 Tj
+-342 TJm
+(caught) 26.5603 Tj
+-342 TJm
+(properly) 33.7533 Tj
+65 TJm
+(,) 2.4907 Tj
+-365 TJm
+(with) 17.7135 Tj
+-341 TJm
+(no) 9.9626 Tj
+-342 TJm
+(se) 8.2988 Tj
+15 TJm
+(gmentation) 44.8317 Tj
+-342 TJm
+(f) 3.3175 Tj
+10 TJm
+(aults,) 21.31 Tj
+-365 TJm
+(no) 9.9626 Tj
+-341 TJm
+(uses) 17.1556 Tj
+-342 TJm
+(of) 8.2988 Tj
+-342 TJm
+(uninitialised) 49.2651 Tj
+-342 TJm
+(data,) 19.0883 Tj
+-364 TJm
+(no) 9.9626 Tj
+-342 TJm
+(out) 12.7322 Tj
+-342 TJm
+(of) 8.2988 Tj
+-342 TJm
+(range) 22.1269 Tj
+72 560.375 Td
+(reads) 21.0211 Tj
+-261 TJm
+(or) 8.2988 Tj
+-260 TJm
+(writes,) 26.8392 Tj
+-263 TJm
+(and) 14.386 Tj
+-261 TJm
+(no) 9.9626 Tj
+-261 TJm
+(in\002nit) 23.8106 Tj
+1 TJm
+(e) 4.4234 Tj
+-261 TJm
+(looping) 30.4457 Tj
+-261 TJm
+(in) 7.7509 Tj
+-260 TJm
+(the) 12.1743 Tj
+-261 TJm
+(decompressor) 55.3323 Tj
+55 TJm
+(.) 2.4907 Tj
+-342 TJm
+(So) 10.5205 Tj
+-260 TJm
+(it') 8.8568 Tj
+55 TJm
+(s) 3.8755 Tj
+-261 TJm
+(certainly) 34.8591 Tj
+-260 TJm
+(pretty) 23.2427 Tj
+-261 TJm
+(rob) 13.2801 Tj
+20 TJm
+(ust,) 14.117 Tj
+-263 TJm
+(although) 34.8691 Tj
+-261 TJm
+(I) 3.3175 Tj
+-260 TJm
+(w) 7.193 Tj
+10 TJm
+(ouldn') 26.0123 Tj
+18 TJm
+(t) 2.7696 Tj
+-261 TJm
+(claim) 22.1369 Tj
+72 548.42 Td
+(it) 5.5392 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(totally) 25.4644 Tj
+-250 TJm
+(bombproof.) 46.7644 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 526.721 Td
+(The) 15.4918 Tj
+-282 TJm
+(\002le) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+105.84 526.721 Td
+/F124_0 9.9626 Tf
+(bzlib.h) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+150.491 526.721 Td
+/F122_0 9.9626 Tf
+(contains) 33.2053 Tj
+-282 TJm
+(all) 9.9626 Tj
+-282 TJm
+(de\002nitions) 42.0721 Tj
+-282 TJm
+(needed) 28.2141 Tj
+-281 TJm
+(to) 7.7509 Tj
+-282 TJm
+(use) 13.2801 Tj
+-282 TJm
+(the) 12.1743 Tj
+-282 TJm
+(library) 26.5603 Tj
+65 TJm
+(.) 2.4907 Tj
+-811 TJm
+(In) 8.2988 Tj
+-282 TJm
+(particular) 38.1767 Tj
+40 TJm
+(,) 2.4907 Tj
+-290 TJm
+(you) 14.9439 Tj
+-282 TJm
+(should) 26.5703 Tj
+-281 TJm
+(de\002nitely) 37.6387 Tj
+-282 TJm
+(not) 12.7322 Tj
+-282 TJm
+(include) 29.3299 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 514.766 Td
+/F124_0 9.9626 Tf
+(bzlib_private.h) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.664 514.766 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 493.067 Td
+(In) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.807 493.067 Td
+/F124_0 9.9626 Tf
+(bzlib.h) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+124.651 493.067 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-252 TJm
+(the) 12.1743 Tj
+-252 TJm
+(v) 4.9813 Tj
+25 TJm
+(arious) 24.3486 Tj
+-252 TJm
+(return) 23.7907 Tj
+-252 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues) 20.4731 Tj
+-251 TJm
+(are) 12.1643 Tj
+-252 TJm
+(de\002ned.) 31.8205 Tj
+-631 TJm
+(The) 15.4918 Tj
+-252 TJm
+(follo) 18.8194 Tj
+25 TJm
+(wing) 19.9252 Tj
+-252 TJm
+(list) 12.1843 Tj
+-251 TJm
+(is) 6.6451 Tj
+-252 TJm
+(not) 12.7322 Tj
+-252 TJm
+(intended) 34.3112 Tj
+-252 TJm
+(as) 8.2988 Tj
+-251 TJm
+(an) 9.4047 Tj
+-252 TJm
+(e) 4.4234 Tj
+15 TJm
+(xhausti) 28.782 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-252 TJm
+(description) 44.2738 Tj
+-252 TJm
+(of) 8.2988 Tj
+72 481.112 Td
+(the) 12.1743 Tj
+-236 TJm
+(circumstances) 56.4381 Tj
+-236 TJm
+(in) 7.7509 Tj
+-237 TJm
+(which) 24.3486 Tj
+-236 TJm
+(a) 4.4234 Tj
+-236 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-236 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue) 16.5977 Tj
+-236 TJm
+(may) 17.1556 Tj
+-237 TJm
+(be) 9.4047 Tj
+-236 TJm
+(returned) 33.1954 Tj
+-236 TJm
+(--) 6.6351 Tj
+-236 TJm
+(those) 21.031 Tj
+-236 TJm
+(descriptions) 48.1492 Tj
+-236 TJm
+(are) 12.1643 Tj
+-237 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-236 TJm
+(later) 17.7035 Tj
+55 TJm
+(.) 2.4907 Tj
+-305 TJm
+(Rather) 26.5603 Tj
+40 TJm
+(,) 2.4907 Tj
+-239 TJm
+(it) 5.5392 Tj
+-236 TJm
+(is) 6.6451 Tj
+-237 TJm
+(intended) 34.3112 Tj
+-236 TJm
+(to) 7.7509 Tj
+72 469.157 Td
+(con) 14.386 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+15 TJm
+(y) 4.9813 Tj
+-266 TJm
+(the) 12.1743 Tj
+-265 TJm
+(rough) 23.2427 Tj
+-266 TJm
+(meaning) 34.3112 Tj
+-265 TJm
+(of) 8.2988 Tj
+-266 TJm
+(each) 18.2515 Tj
+-266 TJm
+(return) 23.7907 Tj
+-265 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue.) 19.0883 Tj
+-714 TJm
+(The) 15.4918 Tj
+-265 TJm
+(\002rst) 15.5018 Tj
+-266 TJm
+(\002) 5.5392 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-265 TJm
+(actions) 28.224 Tj
+-266 TJm
+(are) 12.1643 Tj
+-266 TJm
+(normal) 28.224 Tj
+-265 TJm
+(and) 14.386 Tj
+-266 TJm
+(not) 12.7322 Tj
+-265 TJm
+(intended) 34.3112 Tj
+-266 TJm
+(to) 7.7509 Tj
+-266 TJm
+(denote) 26.5603 Tj
+-265 TJm
+(an) 9.4047 Tj
+-266 TJm
+(error) 19.3573 Tj
+72 457.202 Td
+(situation.) 36.8118 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 425.759 Td
+/F124_0 9.9626 Tf
+(BZ_OK) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 413.804 Td
+/F122_0 9.9626 Tf
+(The) 15.4918 Tj
+-250 TJm
+(requested) 38.1767 Tj
+-250 TJm
+(action) 24.3486 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-250 TJm
+(completed) 41.5042 Tj
+-250 TJm
+(successfully) 48.6972 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 388.34 Td
+/F124_0 9.9626 Tf
+(BZ_RUN_OK,) 59.7756 Tj
+-600 TJm
+(BZ_FLUSH_OK,) 71.7307 Tj
+-600 TJm
+(BZ_FINISH_OK) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 376.384 Td
+/F122_0 9.9626 Tf
+(In) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+118.789 376.384 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+202.476 376.384 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(requested) 38.1767 Tj
+-250 TJm
+(\003ush/\002nish/nothing-special) 108.4927 Tj
+-250 TJm
+(action) 24.3486 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-250 TJm
+(completed) 41.5042 Tj
+-250 TJm
+(successfully) 48.6972 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 350.92 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 338.965 Td
+/F122_0 9.9626 Tf
+(Compression) 52.5826 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-250 TJm
+(completed,) 43.9948 Tj
+-250 TJm
+(or) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(logical) 27.1182 Tj
+-250 TJm
+(stream) 26.5603 Tj
+-250 TJm
+(end) 14.386 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-250 TJm
+(detected) 33.1954 Tj
+-250 TJm
+(during) 26.0123 Tj
+-250 TJm
+(decompression.) 62.2563 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 303.756 Td
+(The) 15.4918 Tj
+-250 TJm
+(follo) 18.8194 Tj
+25 TJm
+(wing) 19.9252 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues) 20.4731 Tj
+-250 TJm
+(indicate) 31.5416 Tj
+-250 TJm
+(an) 9.4047 Tj
+-250 TJm
+(error) 19.3573 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(some) 21.031 Tj
+-250 TJm
+(kind.) 20.2042 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 272.314 Td
+/F124_0 9.9626 Tf
+(BZ_CONFIG_ERROR) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 260.359 Td
+/F122_0 9.9626 Tf
+(Indicates) 35.965 Tj
+-386 TJm
+(that) 14.9439 Tj
+-385 TJm
+(the) 12.1743 Tj
+-386 TJm
+(library) 26.5603 Tj
+-386 TJm
+(has) 13.2801 Tj
+-386 TJm
+(been) 18.8094 Tj
+-385 TJm
+(improperly) 44.2738 Tj
+-386 TJm
+(compiled) 37.0808 Tj
+-386 TJm
+(on) 9.9626 Tj
+-386 TJm
+(your) 18.2614 Tj
+-385 TJm
+(platform) 34.3112 Tj
+-386 TJm
+(--) 6.6351 Tj
+-386 TJm
+(a) 4.4234 Tj
+-386 TJm
+(major) 23.2427 Tj
+-385 TJm
+(con\002guration) 53.1305 Tj
+-386 TJm
+(error) 19.3573 Tj
+55 TJm
+(.) 2.4907 Tj
+108 248.404 Td
+(Speci\002cally) 47.0434 Tj
+65 TJm
+(,) 2.4907 Tj
+-481 TJm
+(it) 5.5392 Tj
+-435 TJm
+(means) 25.4544 Tj
+-435 TJm
+(that) 14.9439 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+220.614 248.404 Td
+/F124_0 9.9626 Tf
+(sizeof\(char\)) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+292.345 248.404 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+299.628 248.404 Td
+/F124_0 9.9626 Tf
+(sizeof\(short\)) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+381.669 248.404 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+400.388 248.404 Td
+/F124_0 9.9626 Tf
+(sizeof\(int\)) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+470.474 248.404 Td
+/F122_0 9.9626 Tf
+(are) 12.1643 Tj
+-435 TJm
+(not) 12.7322 Tj
+-435 TJm
+(1,) 7.472 Tj
+-481 TJm
+(2) 4.9813 Tj
+-435 TJm
+(and) 14.386 Tj
+108 236.448 Td
+(4) 4.9813 Tj
+-389 TJm
+(respecti) 30.9837 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ely) 12.1743 Tj
+65 TJm
+(,) 2.4907 Tj
+-424 TJm
+(as) 8.2988 Tj
+-390 TJm
+(the) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-389 TJm
+(should) 26.5703 Tj
+-389 TJm
+(be.) 11.8953 Tj
+-1456 TJm
+(Note) 19.3673 Tj
+-389 TJm
+(that) 14.9439 Tj
+-389 TJm
+(the) 12.1743 Tj
+-389 TJm
+(library) 26.5603 Tj
+-390 TJm
+(should) 26.5703 Tj
+-389 TJm
+(still) 14.9539 Tj
+-389 TJm
+(w) 7.193 Tj
+10 TJm
+(ork) 13.2801 Tj
+-389 TJm
+(properly) 33.7533 Tj
+-390 TJm
+(on) 9.9626 Tj
+-389 TJm
+(64-bit) 23.8007 Tj
+-389 TJm
+(platforms) 38.1866 Tj
+108 224.493 Td
+(which) 24.3486 Tj
+-292 TJm
+(follo) 18.8194 Tj
+25 TJm
+(w) 7.193 Tj
+-292 TJm
+(the) 12.1743 Tj
+-292 TJm
+(LP64) 21.589 Tj
+-292 TJm
+(programming) 54.2364 Tj
+-293 TJm
+(model) 24.9065 Tj
+-292 TJm
+(--) 6.6351 Tj
+-292 TJm
+(that) 14.9439 Tj
+-292 TJm
+(is,) 9.1357 Tj
+-303 TJm
+(where) 24.3386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+355.279 224.493 Td
+/F124_0 9.9626 Tf
+(sizeof\(long\)) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+429.92 224.493 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+447.217 224.493 Td
+/F124_0 9.9626 Tf
+(sizeof\(void) 65.7532 Tj
+512.97 222.75 Td
+(*) 5.9776 Tj
+518.948 224.493 Td
+(\)) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+527.836 224.493 Td
+/F122_0 9.9626 Tf
+(are) 12.1643 Tj
+108 212.538 Td
+(8.) 7.472 Tj
+-620 TJm
+(Under) 24.8965 Tj
+-250 TJm
+(LP64,) 24.0796 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+175.606 212.538 Td
+/F124_0 9.9626 Tf
+(sizeof\(int\)) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+243.85 212.538 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(still) 14.9539 Tj
+-250 TJm
+(4,) 7.472 Tj
+-250 TJm
+(so) 8.8568 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+291.74 212.538 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+339.561 212.538 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(doesn') 26.5603 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+433.458 212.538 Td
+/F124_0 9.9626 Tf
+(long) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+459.859 212.538 Td
+/F122_0 9.9626 Tf
+(type,) 19.6462 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(OK.) 16.8766 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 187.073 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 175.118 Td
+/F122_0 9.9626 Tf
+(When) 23.7907 Tj
+-291 TJm
+(using) 21.589 Tj
+-290 TJm
+(the) 12.1743 Tj
+-291 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+-300 TJm
+(it) 5.5392 Tj
+-291 TJm
+(is) 6.6451 Tj
+-290 TJm
+(important) 38.7446 Tj
+-291 TJm
+(to) 7.7509 Tj
+-290 TJm
+(call) 14.386 Tj
+-291 TJm
+(the) 12.1743 Tj
+-290 TJm
+(functions) 37.0808 Tj
+-291 TJm
+(in) 7.7509 Tj
+-290 TJm
+(the) 12.1743 Tj
+-291 TJm
+(correct) 27.6562 Tj
+-290 TJm
+(sequence) 36.5129 Tj
+-291 TJm
+(and) 14.386 Tj
+-290 TJm
+(with) 17.7135 Tj
+-291 TJm
+(data) 16.5977 Tj
+-290 TJm
+(structures) 38.7346 Tj
+108 163.163 Td
+(\(b) 8.2988 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fers) 14.9339 Tj
+-206 TJm
+(etc\)) 14.9339 Tj
+-205 TJm
+(in) 7.7509 Tj
+-206 TJm
+(the) 12.1743 Tj
+-205 TJm
+(correct) 27.6562 Tj
+-206 TJm
+(states.) 24.6275 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+239.409 163.163 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+289.278 163.163 Td
+/F122_0 9.9626 Tf
+(checks) 27.1082 Tj
+-206 TJm
+(as) 8.2988 Tj
+-205 TJm
+(much) 22.1369 Tj
+-206 TJm
+(as) 8.2988 Tj
+-206 TJm
+(it) 5.5392 Tj
+-205 TJm
+(can) 13.8281 Tj
+-206 TJm
+(to) 7.7509 Tj
+-205 TJm
+(ensure) 26.0024 Tj
+-206 TJm
+(this) 14.396 Tj
+-206 TJm
+(is) 6.6451 Tj
+-205 TJm
+(happening,) 43.9948 Tj
+-215 TJm
+(and) 14.386 Tj
+-205 TJm
+(returns) 27.6661 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 151.208 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+213.27 151.208 Td
+/F122_0 9.9626 Tf
+(if) 6.0871 Tj
+-367 TJm
+(not.) 15.2229 Tj
+-659 TJm
+(Code) 21.031 Tj
+-367 TJm
+(which) 24.3486 Tj
+-367 TJm
+(complies) 35.9749 Tj
+-366 TJm
+(precisely) 35.965 Tj
+-367 TJm
+(with) 17.7135 Tj
+-366 TJm
+(the) 12.1743 Tj
+-367 TJm
+(function) 33.2053 Tj
+-366 TJm
+(semantics,) 41.7831 Tj
+-396 TJm
+(as) 8.2988 Tj
+-367 TJm
+(detailed) 31.5416 Tj
+108 139.253 Td
+(belo) 17.1556 Tj
+25 TJm
+(w) 7.193 Tj
+65 TJm
+(,) 2.4907 Tj
+-250 TJm
+(should) 26.5703 Tj
+-250 TJm
+(ne) 9.4047 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-250 TJm
+(recei) 19.3573 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(this) 14.396 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue;) 19.3673 Tj
+-250 TJm
+(such) 18.2614 Tj
+-250 TJm
+(an) 9.4047 Tj
+-250 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ent) 12.1743 Tj
+-250 TJm
+(denotes) 30.4357 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(uggy) 19.9252 Tj
+-250 TJm
+(code) 18.8094 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(should) 26.5703 Tj
+-250 TJm
+(in) 7.7509 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(estig) 18.8194 Tj
+5 TJm
+(ate.) 14.107 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 113.788 Td
+/F124_0 9.9626 Tf
+(BZ_PARAM_ERROR) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 101.833 Td
+/F122_0 9.9626 Tf
+(Returned) 36.5229 Tj
+-434 TJm
+(when) 21.579 Tj
+-434 TJm
+(a) 4.4234 Tj
+-434 TJm
+(parameter) 39.8305 Tj
+-434 TJm
+(to) 7.7509 Tj
+-434 TJm
+(a) 4.4234 Tj
+-433 TJm
+(function) 33.2053 Tj
+-434 TJm
+(call) 14.386 Tj
+-434 TJm
+(is) 6.6451 Tj
+-434 TJm
+(out) 12.7322 Tj
+-434 TJm
+(of) 8.2988 Tj
+-434 TJm
+(range) 22.1269 Tj
+-434 TJm
+(or) 8.2988 Tj
+-434 TJm
+(otherwise) 38.7346 Tj
+-434 TJm
+(manifestly) 42.0621 Tj
+-434 TJm
+(incorrect.) 37.8977 Tj
+-1723 TJm
+(As) 11.0684 Tj
+108 89.878 Td
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+131.644 89.878 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+233.263 89.878 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-595 TJm
+(this) 14.396 Tj
+-596 TJm
+(denotes) 30.4357 Tj
+-595 TJm
+(a) 4.4234 Tj
+-595 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug) 9.9626 Tj
+-596 TJm
+(in) 7.7509 Tj
+-595 TJm
+(the) 12.1743 Tj
+-595 TJm
+(client) 22.1369 Tj
+-595 TJm
+(code.) 21.3 Tj
+-2692 TJm
+(The) 15.4918 Tj
+-596 TJm
+(distinction) 42.0721 Tj
+-595 TJm
+(between) 33.1954 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 77.923 Td
+/F124_0 9.9626 Tf
+(BZ_PARAM_ERROR) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+194.177 77.923 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+211.054 77.923 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+315.163 77.923 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(bit) 10.5205 Tj
+-250 TJm
+(hazy) 18.8094 Tj
+65 TJm
+(,) 2.4907 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(still) 14.9539 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(orth) 16.0497 Tj
+-250 TJm
+(making.) 32.3785 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(10) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 11 14
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F124_0 9.9626 Tf
+(BZ_MEM_ERROR) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 698.082 Td
+/F122_0 9.9626 Tf
+(Returned) 36.5229 Tj
+-228 TJm
+(when) 21.579 Tj
+-227 TJm
+(a) 4.4234 Tj
+-228 TJm
+(request) 28.772 Tj
+-227 TJm
+(to) 7.7509 Tj
+-228 TJm
+(allocate) 30.9837 Tj
+-228 TJm
+(memory) 33.2053 Tj
+-227 TJm
+(f) 3.3175 Tj
+10 TJm
+(ailed.) 21.8579 Tj
+-605 TJm
+(Note) 19.3673 Tj
+-228 TJm
+(that) 14.9439 Tj
+-228 TJm
+(the) 12.1743 Tj
+-227 TJm
+(quantity) 32.6574 Tj
+-228 TJm
+(of) 8.2988 Tj
+-227 TJm
+(memory) 33.2053 Tj
+-228 TJm
+(needed) 28.2141 Tj
+-228 TJm
+(to) 7.7509 Tj
+-227 TJm
+(decompress) 47.0334 Tj
+108 686.127 Td
+(a) 4.4234 Tj
+-351 TJm
+(stream) 26.5603 Tj
+-352 TJm
+(cannot) 26.5603 Tj
+-351 TJm
+(be) 9.4047 Tj
+-352 TJm
+(determined) 44.8217 Tj
+-351 TJm
+(until) 18.2714 Tj
+-352 TJm
+(the) 12.1743 Tj
+-351 TJm
+(stream') 29.8778 Tj
+55 TJm
+(s) 3.8755 Tj
+-351 TJm
+(header) 26.5503 Tj
+-352 TJm
+(has) 13.2801 Tj
+-351 TJm
+(been) 18.8094 Tj
+-352 TJm
+(read.) 19.6363 Tj
+-1228 TJm
+(So) 10.5205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+426.471 686.127 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+525.614 686.127 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 674.172 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.13 674.172 Td
+/F122_0 9.9626 Tf
+(may) 17.1556 Tj
+-437 TJm
+(return) 23.7907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.784 674.172 Td
+/F124_0 9.9626 Tf
+(BZ_MEM_ERROR) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+297.867 674.172 Td
+/F122_0 9.9626 Tf
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-437 TJm
+(though) 27.6761 Tj
+-437 TJm
+(some) 21.031 Tj
+-437 TJm
+(of) 8.2988 Tj
+-437 TJm
+(the) 12.1743 Tj
+-437 TJm
+(compressed) 47.0334 Tj
+-437 TJm
+(data) 16.5977 Tj
+-437 TJm
+(has) 13.2801 Tj
+-437 TJm
+(been) 18.8094 Tj
+-437 TJm
+(read.) 19.6363 Tj
+108 662.217 Td
+(The) 15.4918 Tj
+-479 TJm
+(same) 20.4731 Tj
+-478 TJm
+(is) 6.6451 Tj
+-479 TJm
+(not) 12.7322 Tj
+-478 TJm
+(true) 15.4918 Tj
+-479 TJm
+(for) 11.6164 Tj
+-479 TJm
+(compression;) 53.1305 Tj
+-593 TJm
+(once) 18.8094 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+301.675 662.217 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+414.04 662.217 Td
+/F122_0 9.9626 Tf
+(or) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+427.107 662.217 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteOpen) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+521.539 662.217 Td
+/F122_0 9.9626 Tf
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+108 650.261 Td
+(successfully) 48.6972 Tj
+-250 TJm
+(completed,) 43.9948 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+205.672 650.261 Td
+/F124_0 9.9626 Tf
+(BZ_MEM_ERROR) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+279.894 650.261 Td
+/F122_0 9.9626 Tf
+(cannot) 26.5603 Tj
+-250 TJm
+(occur) 22.1269 Tj
+55 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 624.359 Td
+/F124_0 9.9626 Tf
+(BZ_DATA_ERROR) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 612.404 Td
+/F122_0 9.9626 Tf
+(Returned) 36.5229 Tj
+-266 TJm
+(when) 21.579 Tj
+-265 TJm
+(a) 4.4234 Tj
+-266 TJm
+(data) 16.5977 Tj
+-265 TJm
+(inte) 14.9439 Tj
+15 TJm
+(grity) 18.8194 Tj
+-266 TJm
+(error) 19.3573 Tj
+-266 TJm
+(is) 6.6451 Tj
+-265 TJm
+(detected) 33.1954 Tj
+-266 TJm
+(during) 26.0123 Tj
+-265 TJm
+(decompression.) 62.2563 Tj
+-714 TJm
+(Most) 20.4831 Tj
+-266 TJm
+(importantl) 41.5142 Tj
+1 TJm
+(y) 4.9813 Tj
+64 TJm
+(,) 2.4907 Tj
+-269 TJm
+(this) 14.396 Tj
+-266 TJm
+(means) 25.4544 Tj
+-265 TJm
+(when) 21.579 Tj
+108 600.448 Td
+(stored) 24.3486 Tj
+-222 TJm
+(and) 14.386 Tj
+-223 TJm
+(computed) 39.2925 Tj
+-222 TJm
+(CRCs) 23.8106 Tj
+-222 TJm
+(for) 11.6164 Tj
+-222 TJm
+(the) 12.1743 Tj
+-223 TJm
+(data) 16.5977 Tj
+-222 TJm
+(do) 9.9626 Tj
+-222 TJm
+(not) 12.7322 Tj
+-222 TJm
+(match.) 26.8392 Tj
+-602 TJm
+(This) 17.7135 Tj
+-222 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue) 16.5977 Tj
+-222 TJm
+(is) 6.6451 Tj
+-223 TJm
+(also) 16.0497 Tj
+-222 TJm
+(returned) 33.1954 Tj
+-222 TJm
+(upon) 19.9252 Tj
+-222 TJm
+(detection) 36.5229 Tj
+-223 TJm
+(of) 8.2988 Tj
+-222 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-222 TJm
+(other) 20.4731 Tj
+108 588.493 Td
+(anomaly) 34.3112 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(data.) 19.0883 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 562.59 Td
+/F124_0 9.9626 Tf
+(BZ_DATA_ERROR_MAGIC) 113.5736 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 550.635 Td
+/F122_0 9.9626 Tf
+(As) 11.0684 Tj
+-306 TJm
+(a) 4.4234 Tj
+-306 TJm
+(special) 27.6661 Tj
+-306 TJm
+(case) 17.1456 Tj
+-307 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+191.852 550.635 Td
+/F124_0 9.9626 Tf
+(BZ_DATA_ERROR) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+269.561 550.635 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-306 TJm
+(it) 5.5392 Tj
+-306 TJm
+(is) 6.6451 Tj
+-306 TJm
+(sometimes) 42.62 Tj
+-306 TJm
+(useful) 24.3486 Tj
+-307 TJm
+(to) 7.7509 Tj
+-306 TJm
+(kno) 14.9439 Tj
+25 TJm
+(w) 7.193 Tj
+-306 TJm
+(when) 21.579 Tj
+-306 TJm
+(the) 12.1743 Tj
+-306 TJm
+(compressed) 47.0334 Tj
+-306 TJm
+(stream) 26.5603 Tj
+-306 TJm
+(does) 18.2614 Tj
+108 538.68 Td
+(not) 12.7322 Tj
+-250 TJm
+(start) 17.1556 Tj
+-250 TJm
+(with) 17.7135 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(correct) 27.6562 Tj
+-250 TJm
+(magic) 24.3486 Tj
+-250 TJm
+(bytes) 21.031 Tj
+-250 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+261.562 538.68 Td
+/F124_0 9.9626 Tf
+('B') 17.9327 Tj
+-600 TJm
+('Z') 17.9327 Tj
+-600 TJm
+('h') 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+327.316 538.68 Td
+/F122_0 9.9626 Tf
+(\).) 5.8082 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 512.777 Td
+/F124_0 9.9626 Tf
+(BZ_IO_ERROR) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 500.822 Td
+/F122_0 9.9626 Tf
+(Returned) 36.5229 Tj
+-233 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.123 500.822 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.218 500.822 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+237.922 500.822 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWrite) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.995 500.822 Td
+/F122_0 9.9626 Tf
+(when) 21.579 Tj
+-233 TJm
+(there) 19.9152 Tj
+-232 TJm
+(is) 6.6451 Tj
+-233 TJm
+(an) 9.4047 Tj
+-233 TJm
+(error) 19.3573 Tj
+-233 TJm
+(reading) 29.8778 Tj
+-232 TJm
+(or) 8.2988 Tj
+-233 TJm
+(writing) 28.782 Tj
+-233 TJm
+(in) 7.7509 Tj
+-233 TJm
+(the) 12.1743 Tj
+-232 TJm
+(compressed) 47.0334 Tj
+108 488.867 Td
+(\002le,) 15.2229 Tj
+-384 TJm
+(and) 14.386 Tj
+-357 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.511 488.867 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadOpen) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+245.755 488.867 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+263.698 488.867 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteOpen) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+356.92 488.867 Td
+/F122_0 9.9626 Tf
+(for) 11.6164 Tj
+-357 TJm
+(attempts) 33.7633 Tj
+-357 TJm
+(to) 7.7509 Tj
+-357 TJm
+(use) 13.2801 Tj
+-357 TJm
+(a) 4.4234 Tj
+-357 TJm
+(\002le) 12.7322 Tj
+-357 TJm
+(for) 11.6164 Tj
+-358 TJm
+(which) 24.3486 Tj
+-357 TJm
+(the) 12.1743 Tj
+-357 TJm
+(error) 19.3573 Tj
+108 476.912 Td
+(indicator) 35.417 Tj
+-260 TJm
+(\(viz,) 17.9825 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.603 476.912 Td
+/F124_0 9.9626 Tf
+(ferror\(f\)) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+220.401 476.912 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-260 TJm
+(is) 6.6451 Tj
+-260 TJm
+(set.) 13.5591 Tj
+-680 TJm
+(On) 12.1743 Tj
+-259 TJm
+(receipt) 27.1082 Tj
+-260 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+311.223 476.912 Td
+/F124_0 9.9626 Tf
+(BZ_IO_ERROR) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+376.976 476.912 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-260 TJm
+(the) 12.1743 Tj
+-260 TJm
+(caller) 22.1269 Tj
+-260 TJm
+(should) 26.5703 Tj
+-260 TJm
+(consult) 28.782 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+482.068 476.912 Td
+/F124_0 9.9626 Tf
+(errno) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+514.546 476.912 Td
+/F122_0 9.9626 Tf
+(and/or) 25.4544 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 464.956 Td
+/F124_0 9.9626 Tf
+(perror) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+146.356 464.956 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(acquire) 29.3199 Tj
+-250 TJm
+(operating-system) 68.6224 Tj
+-250 TJm
+(speci\002c) 30.4357 Tj
+-250 TJm
+(information) 47.0434 Tj
+-250 TJm
+(about) 22.1369 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(problem.) 35.696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 439.054 Td
+/F124_0 9.9626 Tf
+(BZ_UNEXPECTED_EOF) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 427.099 Td
+/F122_0 9.9626 Tf
+(Returned) 36.5229 Tj
+-250 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.467 427.099 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.733 427.099 Td
+/F122_0 9.9626 Tf
+(when) 21.579 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(\002nishes) 30.4457 Tj
+-250 TJm
+(before) 25.4445 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(logical) 27.1182 Tj
+-250 TJm
+(end) 14.386 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(stream) 26.5603 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(detected.) 35.686 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 401.196 Td
+/F124_0 9.9626 Tf
+(BZ_OUTBUFF_FULL) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 389.241 Td
+/F122_0 9.9626 Tf
+(Returned) 36.5229 Tj
+-258 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.632 389.241 Td
+/F124_0 9.9626 Tf
+(BZ2_bzBuffToBuffCompress) 143.4614 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.668 389.241 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+322.627 389.241 Td
+/F124_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress) 155.4166 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+480.617 389.241 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-258 TJm
+(indicate) 31.5416 Tj
+-259 TJm
+(that) 14.9439 Tj
+108 377.285 Td
+(the) 12.1743 Tj
+-250 TJm
+(output) 25.4644 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(will) 15.5018 Tj
+-250 TJm
+(not) 12.7322 Tj
+-250 TJm
+(\002t) 8.3088 Tj
+-250 TJm
+(into) 15.5018 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(output) 25.4644 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-250 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vided.) 24.6275 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 328.585 Td
+/F116_0 20.6585 Tf
+(3.3.) 34.4584 Tj
+-278 TJm
+(Lo) 25.2447 Tj
+15 TJm
+(w-le) 40.1808 Tj
+15 TJm
+(vel) 28.7153 Tj
+-278 TJm
+(interface) 86.1046 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 297.964 Td
+/F116_0 17.2154 Tf
+(3.3.1.) 43.0729 Tj
+-278 TJm
+(BZ2_bzCompressInit) 171.2244 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+/F122_0 9.9626 Tf
+(11) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 12 15
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 445.031] cm
+0 0 468 274.969 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(typedef) 41.8429 Tj
+-426 TJm
+(struct) 35.8654 Tj
+-426 TJm
+({) 5.9776 Tj
+98.488 699.676 Td
+(char) 23.9102 Tj
+126.642 697.933 Td
+(*) 5.9776 Tj
+132.62 699.676 Td
+(next_in;) 47.8205 Tj
+98.488 687.721 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(avail_in;) 53.798 Tj
+98.488 675.766 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(total_in_lo32;) 83.6858 Tj
+98.488 663.811 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(total_in_hi32;) 83.6858 Tj
+98.488 639.9 Td
+(char) 23.9102 Tj
+126.642 638.157 Td
+(*) 5.9776 Tj
+132.62 639.9 Td
+(next_out;) 53.798 Tj
+98.488 627.945 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(avail_out;) 59.7756 Tj
+98.488 615.99 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(total_out_lo32;) 89.6634 Tj
+98.488 604.035 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(total_out_hi32;) 89.6634 Tj
+98.488 580.124 Td
+(void) 23.9102 Tj
+126.642 578.381 Td
+(*) 5.9776 Tj
+132.62 580.124 Td
+(state;) 35.8654 Tj
+98.488 556.214 Td
+(void) 23.9102 Tj
+126.642 554.471 Td
+(*) 5.9776 Tj
+132.62 556.214 Td
+(\() 5.9776 Tj
+138.597 554.471 Td
+(*) 5.9776 Tj
+144.575 556.214 Td
+(bzalloc\)\(void) 77.7083 Tj
+226.528 554.471 Td
+(*) 5.9776 Tj
+232.505 556.214 Td
+(,int,int\);) 59.7756 Tj
+98.488 544.259 Td
+(void) 23.9102 Tj
+-426 TJm
+(\() 5.9776 Tj
+132.62 542.515 Td
+(*) 5.9776 Tj
+138.597 544.259 Td
+(bzfree\)\(void) 71.7307 Tj
+214.572 542.515 Td
+(*) 5.9776 Tj
+220.55 544.259 Td
+(,void) 29.8878 Tj
+254.682 542.515 Td
+(*) 5.9776 Tj
+260.659 544.259 Td
+(\);) 11.9551 Tj
+98.488 532.304 Td
+(void) 23.9102 Tj
+126.642 530.56 Td
+(*) 5.9776 Tj
+132.62 532.304 Td
+(opaque;) 41.8429 Tj
+90 520.349 Td
+(}) 5.9776 Tj
+-426 TJm
+(bz_stream;) 59.7756 Tj
+90 496.438 Td
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzCompressInit) 107.5961 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(bz_stream) 53.798 Tj
+292.281 494.695 Td
+(*) 5.9776 Tj
+298.259 496.438 Td
+(strm,) 29.8878 Tj
+196.099 484.483 Td
+(int) 17.9327 Tj
+-426 TJm
+(blockSize100k,) 83.6858 Tj
+196.099 472.528 Td
+(int) 17.9327 Tj
+-426 TJm
+(verbosity,) 59.7756 Tj
+196.099 460.573 Td
+(int) 17.9327 Tj
+-426 TJm
+(workFactor) 59.7756 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 423.113 Td
+/F122_0 9.9626 Tf
+(Prepares) 34.3012 Tj
+-356 TJm
+(for) 11.6164 Tj
+-356 TJm
+(compression.) 52.8516 Tj
+-1256 TJm
+(The) 15.4918 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+209.41 423.113 Td
+/F124_0 9.9626 Tf
+(bz_stream) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+266.754 423.113 Td
+/F122_0 9.9626 Tf
+(structure) 34.8591 Tj
+-356 TJm
+(holds) 21.589 Tj
+-356 TJm
+(all) 9.9626 Tj
+-356 TJm
+(data) 16.5977 Tj
+-356 TJm
+(pertaining) 40.3983 Tj
+-356 TJm
+(to) 7.7509 Tj
+-356 TJm
+(the) 12.1743 Tj
+-356 TJm
+(compression) 50.3609 Tj
+-355 TJm
+(acti) 14.386 Tj
+25 TJm
+(vity) 15.5018 Tj
+65 TJm
+(.) 2.4907 Tj
+-1256 TJm
+(A) 7.193 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 411.158 Td
+/F124_0 9.9626 Tf
+(bz_stream) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+128.581 411.158 Td
+/F122_0 9.9626 Tf
+(structure) 34.8591 Tj
+-279 TJm
+(should) 26.5703 Tj
+-280 TJm
+(be) 9.4047 Tj
+-279 TJm
+(allocated) 35.965 Tj
+-279 TJm
+(and) 14.386 Tj
+-280 TJm
+(initialised) 39.3025 Tj
+-279 TJm
+(prior) 19.3673 Tj
+-279 TJm
+(to) 7.7509 Tj
+-279 TJm
+(the) 12.1743 Tj
+-280 TJm
+(call.) 16.8766 Tj
+-796 TJm
+(The) 15.4918 Tj
+-279 TJm
+(\002elds) 21.589 Tj
+-279 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+431.939 411.158 Td
+/F124_0 9.9626 Tf
+(bz_stream) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+488.52 411.158 Td
+/F122_0 9.9626 Tf
+(comprise) 36.5229 Tj
+-279 TJm
+(the) 12.1743 Tj
+72 399.203 Td
+(entirety) 30.4357 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(user) 16.5977 Tj
+20 TJm
+(-visible) 29.8878 Tj
+-250 TJm
+(data.) 19.0883 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+204.422 399.203 Td
+/F124_0 9.9626 Tf
+(state) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+236.8 399.203 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(pointer) 28.224 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(pri) 11.0684 Tj
+25 TJm
+(v) 4.9813 Tj
+25 TJm
+(ate) 11.6164 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(structures) 38.7346 Tj
+-250 TJm
+(required) 33.1954 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(compression.) 52.8516 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 377.285 Td
+(Custom) 31.0036 Tj
+-372 TJm
+(memory) 33.2053 Tj
+-372 TJm
+(allocators) 38.7346 Tj
+-372 TJm
+(are) 12.1643 Tj
+-372 TJm
+(supported,) 41.7831 Tj
+-403 TJm
+(via) 12.1743 Tj
+-372 TJm
+(\002elds) 21.589 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+288.908 377.285 Td
+/F124_0 9.9626 Tf
+(bzalloc) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+330.751 377.285 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+337.253 377.285 Td
+/F124_0 9.9626 Tf
+(bzfree) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+373.118 377.285 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-403 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+397.714 377.285 Td
+/F124_0 9.9626 Tf
+(opaque) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+433.579 377.285 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1353 TJm
+(The) 15.4918 Tj
+-372 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue) 16.5977 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+493.782 377.285 Td
+/F124_0 9.9626 Tf
+(opaque) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+533.355 377.285 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+72 365.33 Td
+(passed) 26.5603 Tj
+-306 TJm
+(to) 7.7509 Tj
+-306 TJm
+(as) 8.2988 Tj
+-306 TJm
+(the) 12.1743 Tj
+-306 TJm
+(\002rst) 15.5018 Tj
+-306 TJm
+(ar) 7.7409 Tj
+18 TJm
+(gument) 29.8878 Tj
+-306 TJm
+(to) 7.7509 Tj
+-306 TJm
+(all) 9.9626 Tj
+-306 TJm
+(calls) 18.2614 Tj
+-305 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+253.941 365.33 Td
+/F124_0 9.9626 Tf
+(bzalloc) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+298.832 365.33 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+316.266 365.33 Td
+/F124_0 9.9626 Tf
+(bzfree) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+352.132 365.33 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-320 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-306 TJm
+(is) 6.6451 Tj
+-306 TJm
+(otherwise) 38.7346 Tj
+-306 TJm
+(ignored) 30.4357 Tj
+-306 TJm
+(by) 9.9626 Tj
+-306 TJm
+(the) 12.1743 Tj
+-306 TJm
+(library) 26.5603 Tj
+65 TJm
+(.) 2.4907 Tj
+-955 TJm
+(The) 15.4918 Tj
+72 353.375 Td
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+89.431 353.375 Td
+/F124_0 9.9626 Tf
+(bzalloc) 41.8429 Tj
+-600 TJm
+(\() 5.9776 Tj
+-600 TJm
+(opaque,) 41.8429 Tj
+-600 TJm
+(n,) 11.9551 Tj
+-600 TJm
+(m) 5.9776 Tj
+-600 TJm
+(\)) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+235.938 353.375 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-306 TJm
+(e) 4.4234 Tj
+15 TJm
+(xpected) 30.9837 Tj
+-305 TJm
+(to) 7.7509 Tj
+-306 TJm
+(return) 23.7907 Tj
+-306 TJm
+(a) 4.4234 Tj
+-305 TJm
+(pointer) 28.224 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+360.3 353.375 Td
+/F124_0 9.9626 Tf
+(p) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+369.322 353.375 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+380.118 353.375 Td
+/F124_0 9.9626 Tf
+(n) 5.9776 Tj
+392.073 351.631 Td
+(*) 5.9776 Tj
+404.029 353.375 Td
+(m) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+413.051 353.375 Td
+/F122_0 9.9626 Tf
+(bytes) 21.031 Tj
+-306 TJm
+(of) 8.2988 Tj
+-305 TJm
+(memory) 33.2053 Tj
+65 TJm
+(,) 2.4907 Tj
+-320 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+504.135 353.375 Td
+/F124_0 9.9626 Tf
+(bzfree) 35.8654 Tj
+72 341.42 Td
+(\() 5.9776 Tj
+-600 TJm
+(opaque,) 41.8429 Tj
+-600 TJm
+(p) 5.9776 Tj
+-600 TJm
+(\)) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+152.199 341.42 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-250 TJm
+(free) 15.4819 Tj
+-250 TJm
+(that) 14.9439 Tj
+-250 TJm
+(memory) 33.2053 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 319.502 Td
+(If) 6.6351 Tj
+-280 TJm
+(you) 14.9439 Tj
+-280 TJm
+(don') 18.2614 Tj
+18 TJm
+(t) 2.7696 Tj
+-280 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-279 TJm
+(to) 7.7509 Tj
+-280 TJm
+(use) 13.2801 Tj
+-280 TJm
+(a) 4.4234 Tj
+-280 TJm
+(custom) 28.782 Tj
+-280 TJm
+(memory) 33.2053 Tj
+-279 TJm
+(allocator) 34.8591 Tj
+40 TJm
+(,) 2.4907 Tj
+-288 TJm
+(set) 11.0684 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+299.9 319.502 Td
+/F124_0 9.9626 Tf
+(bzalloc) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+341.743 319.502 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+347.096 319.502 Td
+/F124_0 9.9626 Tf
+(bzfree) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+385.749 319.502 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+402.923 319.502 Td
+/F124_0 9.9626 Tf
+(opaque) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+441.576 319.502 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+452.115 319.502 Td
+/F124_0 9.9626 Tf
+(NULL) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+476.025 319.502 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-280 TJm
+(and) 14.386 Tj
+-280 TJm
+(the) 12.1743 Tj
+-280 TJm
+(library) 26.5603 Tj
+72 307.547 Td
+(will) 15.5018 Tj
+-250 TJm
+(then) 17.1556 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(standard) 33.7533 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.318 307.547 Td
+/F124_0 9.9626 Tf
+(malloc) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+214.674 307.547 Td
+/F122_0 9.9626 Tf
+(/) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+219.934 307.547 Td
+/F124_0 9.9626 Tf
+(free) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+246.335 307.547 Td
+/F122_0 9.9626 Tf
+(routines.) 34.5901 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 285.629 Td
+(Before) 27.1082 Tj
+-362 TJm
+(calling) 27.1182 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+133.438 285.629 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+241.035 285.629 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-390 TJm
+(\002elds) 21.589 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+272.606 285.629 Td
+/F124_0 9.9626 Tf
+(bzalloc) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+314.449 285.629 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+320.825 285.629 Td
+/F124_0 9.9626 Tf
+(bzfree) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+360.296 285.629 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+378.289 285.629 Td
+/F124_0 9.9626 Tf
+(opaque) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+417.76 285.629 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-362 TJm
+(be) 9.4047 Tj
+-362 TJm
+(\002lled) 20.4831 Tj
+-362 TJm
+(appropriately) 53.1206 Tj
+65 TJm
+(,) 2.4907 Tj
+72 273.674 Td
+(as) 8.2988 Tj
+-322 TJm
+(just) 14.396 Tj
+-323 TJm
+(described.) 40.6673 Tj
+-1055 TJm
+(Upon) 22.1369 Tj
+-322 TJm
+(return,) 26.2813 Tj
+-341 TJm
+(the) 12.1743 Tj
+-322 TJm
+(internal) 30.4357 Tj
+-323 TJm
+(state) 18.2614 Tj
+-322 TJm
+(will) 15.5018 Tj
+-323 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-322 TJm
+(been) 18.8094 Tj
+-323 TJm
+(allocated) 35.965 Tj
+-322 TJm
+(and) 14.386 Tj
+-323 TJm
+(initialised,) 41.7931 Tj
+-340 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+459.801 273.674 Td
+/F124_0 9.9626 Tf
+(total_in_lo32) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 273.674 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 261.718 Td
+/F124_0 9.9626 Tf
+(total_in_hi32) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+149.709 261.718 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.006 261.718 Td
+/F124_0 9.9626 Tf
+(total_out_lo32) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+241.435 261.718 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+258.564 261.718 Td
+/F124_0 9.9626 Tf
+(total_out_hi32) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+344.994 261.718 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-275 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-276 TJm
+(been) 18.8094 Tj
+-275 TJm
+(set) 11.0684 Tj
+-275 TJm
+(to) 7.7509 Tj
+-276 TJm
+(zero.) 19.6363 Tj
+-772 TJm
+(These) 23.7907 Tj
+-275 TJm
+(four) 16.5977 Tj
+-275 TJm
+(\002elds) 21.589 Tj
+-276 TJm
+(are) 12.1643 Tj
+72 249.763 Td
+(used) 18.2614 Tj
+-340 TJm
+(by) 9.9626 Tj
+-339 TJm
+(the) 12.1743 Tj
+-340 TJm
+(library) 26.5603 Tj
+-339 TJm
+(to) 7.7509 Tj
+-340 TJm
+(inform) 27.1182 Tj
+-339 TJm
+(the) 12.1743 Tj
+-340 TJm
+(caller) 22.1269 Tj
+-339 TJm
+(of) 8.2988 Tj
+-340 TJm
+(the) 12.1743 Tj
+-339 TJm
+(total) 17.7135 Tj
+-340 TJm
+(amount) 29.8878 Tj
+-339 TJm
+(of) 8.2988 Tj
+-340 TJm
+(data) 16.5977 Tj
+-340 TJm
+(passed) 26.5603 Tj
+-339 TJm
+(into) 15.5018 Tj
+-340 TJm
+(and) 14.386 Tj
+-339 TJm
+(out) 12.7322 Tj
+-340 TJm
+(of) 8.2988 Tj
+-339 TJm
+(the) 12.1743 Tj
+-340 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+-362 TJm
+(respecti) 30.9837 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ely) 12.1743 Tj
+65 TJm
+(.) 2.4907 Tj
+72 237.808 Td
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-376 TJm
+(should) 26.5703 Tj
+-377 TJm
+(not) 12.7322 Tj
+-376 TJm
+(try) 11.0684 Tj
+-376 TJm
+(to) 7.7509 Tj
+-377 TJm
+(change) 28.2141 Tj
+-376 TJm
+(them.) 22.4159 Tj
+-1378 TJm
+(As) 11.0684 Tj
+-377 TJm
+(of) 8.2988 Tj
+-376 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-377 TJm
+(1.0,) 14.9439 Tj
+-408 TJm
+(64-bit) 23.8007 Tj
+-376 TJm
+(counts) 26.0123 Tj
+-376 TJm
+(are) 12.1643 Tj
+-377 TJm
+(maintained,) 46.7644 Tj
+-408 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-376 TJm
+(on) 9.9626 Tj
+-376 TJm
+(32-bit) 23.8007 Tj
+-377 TJm
+(platforms,) 40.6773 Tj
+72 225.853 Td
+(using) 21.589 Tj
+-371 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+113.148 225.853 Td
+/F124_0 9.9626 Tf
+(_hi32) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+146.729 225.853 Td
+/F122_0 9.9626 Tf
+(\002elds) 21.589 Tj
+-371 TJm
+(to) 7.7509 Tj
+-370 TJm
+(store) 19.3673 Tj
+-371 TJm
+(the) 12.1743 Tj
+-371 TJm
+(upper) 22.6848 Tj
+-370 TJm
+(32) 9.9626 Tj
+-371 TJm
+(bits) 14.396 Tj
+-370 TJm
+(of) 8.2988 Tj
+-371 TJm
+(the) 12.1743 Tj
+-371 TJm
+(count.) 24.6275 Tj
+-1344 TJm
+(So,) 13.0112 Tj
+-400 TJm
+(for) 11.6164 Tj
+-371 TJm
+(e) 4.4234 Tj
+15 TJm
+(xample,) 31.8205 Tj
+-401 TJm
+(the) 12.1743 Tj
+-371 TJm
+(total) 17.7135 Tj
+-370 TJm
+(amount) 29.8878 Tj
+-371 TJm
+(of) 8.2988 Tj
+-370 TJm
+(data) 16.5977 Tj
+-371 TJm
+(in) 7.7509 Tj
+-371 TJm
+(is) 6.6451 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 213.898 Td
+/F124_0 9.9626 Tf
+(\(total_in_hi32) 83.6858 Tj
+-600 TJm
+(<<) 11.9551 Tj
+-600 TJm
+(32\)) 17.9327 Tj
+-600 TJm
+(+) 5.9776 Tj
+-600 TJm
+(total_in_lo32) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+293.171 213.898 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 191.98 Td
+(P) 5.5392 Tj
+15 TJm
+(arameter) 34.8492 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+115.367 191.98 Td
+/F124_0 9.9626 Tf
+(blockSize100k) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+196.205 191.98 Td
+/F122_0 9.9626 Tf
+(speci\002es) 34.3112 Tj
+-314 TJm
+(the) 12.1743 Tj
+-314 TJm
+(block) 22.1369 Tj
+-314 TJm
+(size) 15.4918 Tj
+-314 TJm
+(to) 7.7509 Tj
+-314 TJm
+(be) 9.4047 Tj
+-314 TJm
+(used) 18.2614 Tj
+-314 TJm
+(for) 11.6164 Tj
+-314 TJm
+(compression.) 52.8516 Tj
+-1004 TJm
+(It) 6.0871 Tj
+-314 TJm
+(should) 26.5703 Tj
+-314 TJm
+(be) 9.4047 Tj
+-314 TJm
+(a) 4.4234 Tj
+-315 TJm
+(v) 4.9813 Tj
+25 TJm
+(al) 7.193 Tj
+1 TJm
+(u) 4.9813 Tj
+-1 TJm
+(e) 4.4234 Tj
+-314 TJm
+(between) 33.1954 Tj
+-314 TJm
+(1) 4.9813 Tj
+72 180.025 Td
+(and) 14.386 Tj
+-289 TJm
+(9) 4.9813 Tj
+-289 TJm
+(inclusi) 26.5703 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e,) 6.914 Tj
+-299 TJm
+(and) 14.386 Tj
+-289 TJm
+(the) 12.1743 Tj
+-289 TJm
+(actual) 23.7907 Tj
+-289 TJm
+(block) 22.1369 Tj
+-289 TJm
+(size) 15.4918 Tj
+-289 TJm
+(used) 18.2614 Tj
+-289 TJm
+(is) 6.6451 Tj
+-289 TJm
+(100000) 29.8878 Tj
+-289 TJm
+(x) 4.9813 Tj
+-289 TJm
+(this) 14.396 Tj
+-289 TJm
+(\002gure.) 25.7334 Tj
+-854 TJm
+(9) 4.9813 Tj
+-290 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(es) 8.2988 Tj
+-289 TJm
+(the) 12.1743 Tj
+-289 TJm
+(best) 16.0497 Tj
+-289 TJm
+(compression) 50.3609 Tj
+-289 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-289 TJm
+(tak) 12.1743 Tj
+10 TJm
+(es) 8.2988 Tj
+-289 TJm
+(most) 19.3773 Tj
+72 168.07 Td
+(memory) 33.2053 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 146.152 Td
+(P) 5.5392 Tj
+15 TJm
+(arameter) 34.8492 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+115.095 146.152 Td
+/F124_0 9.9626 Tf
+(verbosity) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+171.75 146.152 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-287 TJm
+(be) 9.4047 Tj
+-286 TJm
+(set) 11.0684 Tj
+-287 TJm
+(to) 7.7509 Tj
+-287 TJm
+(a) 4.4234 Tj
+-287 TJm
+(number) 30.4357 Tj
+-286 TJm
+(between) 33.1954 Tj
+-287 TJm
+(0) 4.9813 Tj
+-287 TJm
+(and) 14.386 Tj
+-287 TJm
+(4) 4.9813 Tj
+-286 TJm
+(inclusi) 26.5703 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e.) 6.914 Tj
+-841 TJm
+(0) 4.9813 Tj
+-286 TJm
+(is) 6.6451 Tj
+-287 TJm
+(silent,) 24.0796 Tj
+-296 TJm
+(and) 14.386 Tj
+-287 TJm
+(greater) 27.6562 Tj
+-287 TJm
+(numbers) 34.3112 Tj
+-286 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+72 134.197 Td
+(increasingly) 48.6972 Tj
+-342 TJm
+(v) 4.9813 Tj
+15 TJm
+(erbose) 26.0024 Tj
+-342 TJm
+(monitoring/deb) 61.4394 Tj
+20 TJm
+(ugging) 27.6761 Tj
+-342 TJm
+(output.) 27.9551 Tj
+-1173 TJm
+(If) 6.6351 Tj
+-343 TJm
+(the) 12.1743 Tj
+-342 TJm
+(library) 26.5603 Tj
+-342 TJm
+(has) 13.2801 Tj
+-342 TJm
+(been) 18.8094 Tj
+-342 TJm
+(compiled) 37.0808 Tj
+-342 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+446.429 134.197 Td
+/F124_0 9.9626 Tf
+(-DBZ_NO_STDIO) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+524.138 134.197 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-342 TJm
+(no) 9.9626 Tj
+72 122.241 Td
+(such) 18.2614 Tj
+-250 TJm
+(output) 25.4644 Tj
+-250 TJm
+(will) 15.5018 Tj
+-250 TJm
+(appear) 26.5503 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-250 TJm
+(v) 4.9813 Tj
+15 TJm
+(erbosity) 32.0995 Tj
+-250 TJm
+(setting.) 29.0609 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 100.324 Td
+(P) 5.5392 Tj
+15 TJm
+(arameter) 34.8492 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+116.619 100.324 Td
+/F124_0 9.9626 Tf
+(workFactor) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+180.775 100.324 Td
+/F122_0 9.9626 Tf
+(controls) 32.0995 Tj
+-440 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-439 TJm
+(the) 12.1743 Tj
+-440 TJm
+(compression) 50.3609 Tj
+-439 TJm
+(phase) 22.6848 Tj
+-440 TJm
+(beha) 18.8094 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(es) 8.2988 Tj
+-440 TJm
+(when) 21.579 Tj
+-439 TJm
+(presented) 38.1767 Tj
+-440 TJm
+(with) 17.7135 Tj
+-440 TJm
+(w) 7.193 Tj
+10 TJm
+(orst) 14.9439 Tj
+-439 TJm
+(case,) 19.6363 Tj
+-487 TJm
+(highly) 25.4644 Tj
+72 88.368 Td
+(repetiti) 28.224 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e,) 6.914 Tj
+-433 TJm
+(input) 20.4831 Tj
+-396 TJm
+(data.) 19.0883 Tj
+-1496 TJm
+(If) 6.6351 Tj
+-396 TJm
+(compression) 50.3609 Tj
+-396 TJm
+(runs) 17.1556 Tj
+-397 TJm
+(i) 2.7696 Tj
+1 TJm
+(nto) 12.7322 Tj
+-397 TJm
+(dif) 11.0684 Tj
+25 TJm
+(\002culties) 31.5516 Tj
+-396 TJm
+(caused) 27.1082 Tj
+-396 TJm
+(by) 9.9626 Tj
+-396 TJm
+(repetiti) 28.224 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-396 TJm
+(data,) 19.0883 Tj
+-432 TJm
+(the) 12.1743 Tj
+-397 TJm
+(library) 26.5603 Tj
+-396 TJm
+(switches) 34.3112 Tj
+-396 TJm
+(from) 19.3673 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+(12) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 13 16
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(the) 12.1743 Tj
+-255 TJm
+(standard) 33.7533 Tj
+-254 TJm
+(sorting) 27.6761 Tj
+-255 TJm
+(algorithm) 38.7446 Tj
+-254 TJm
+(to) 7.7509 Tj
+-255 TJm
+(a) 4.4234 Tj
+-255 TJm
+(f) 3.3175 Tj
+10 TJm
+(allback) 28.772 Tj
+-254 TJm
+(algorithm.) 41.2352 Tj
+-648 TJm
+(The) 15.4918 Tj
+-255 TJm
+(f) 3.3175 Tj
+10 TJm
+(allback) 28.772 Tj
+-254 TJm
+(is) 6.6451 Tj
+-255 TJm
+(slo) 11.6264 Tj
+25 TJm
+(wer) 14.9339 Tj
+-255 TJm
+(than) 17.1556 Tj
+-254 TJm
+(the) 12.1743 Tj
+-255 TJm
+(standard) 33.7533 Tj
+-254 TJm
+(algorithm) 38.7446 Tj
+-255 TJm
+(by) 9.9626 Tj
+-255 TJm
+(perhaps) 30.9837 Tj
+72 698.082 Td
+(a) 4.4234 Tj
+-250 TJm
+(f) 3.3175 Tj
+10 TJm
+(actor) 19.9152 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(three,) 22.4059 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(al) 7.193 Tj
+10 TJm
+(w) 7.193 Tj
+10 TJm
+(ays) 13.2801 Tj
+-250 TJm
+(beha) 18.8094 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(es) 8.2988 Tj
+-250 TJm
+(reasonably) 43.158 Tj
+65 TJm
+(,) 2.4907 Tj
+-250 TJm
+(no) 9.9626 Tj
+-250 TJm
+(matter) 25.4544 Tj
+-250 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(bad) 14.386 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(input.) 22.9738 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 676.268 Td
+(Lo) 11.0684 Tj
+25 TJm
+(wer) 14.9339 Tj
+-240 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues) 20.4731 Tj
+-239 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+138.421 676.268 Td
+/F124_0 9.9626 Tf
+(workFactor) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.585 676.268 Td
+/F122_0 9.9626 Tf
+(reduce) 26.5503 Tj
+-240 TJm
+(the) 12.1743 Tj
+-239 TJm
+(amount) 29.8878 Tj
+-240 TJm
+(of) 8.2988 Tj
+-240 TJm
+(ef) 7.7409 Tj
+25 TJm
+(fort) 14.386 Tj
+-239 TJm
+(the) 12.1743 Tj
+-240 TJm
+(standard) 33.7533 Tj
+-240 TJm
+(algorithm) 38.7446 Tj
+-240 TJm
+(wi) 9.9626 Tj
+1 TJm
+(ll) 5.5392 Tj
+-240 TJm
+(e) 4.4234 Tj
+15 TJm
+(xpend) 24.3486 Tj
+-240 TJm
+(before) 25.4445 Tj
+-240 TJm
+(resorting) 35.417 Tj
+-239 TJm
+(to) 7.7509 Tj
+-240 TJm
+(the) 12.1743 Tj
+72 664.313 Td
+(f) 3.3175 Tj
+10 TJm
+(allback.) 31.2626 Tj
+-618 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-248 TJm
+(should) 26.5703 Tj
+-247 TJm
+(set) 11.0684 Tj
+-248 TJm
+(this) 14.396 Tj
+-247 TJm
+(parameter) 39.8305 Tj
+-248 TJm
+(carefully;) 38.1767 Tj
+-248 TJm
+(too) 12.7322 Tj
+-248 TJm
+(lo) 7.7509 Tj
+25 TJm
+(w) 7.193 Tj
+65 TJm
+(,) 2.4907 Tj
+-248 TJm
+(and) 14.386 Tj
+-247 TJm
+(man) 17.1556 Tj
+15 TJm
+(y) 4.9813 Tj
+-248 TJm
+(inputs) 24.3586 Tj
+-248 TJm
+(will) 15.5018 Tj
+-247 TJm
+(be) 9.4047 Tj
+-248 TJm
+(handled) 31.5416 Tj
+-247 TJm
+(by) 9.9626 Tj
+-248 TJm
+(the) 12.1743 Tj
+-247 TJm
+(f) 3.3175 Tj
+10 TJm
+(allback) 28.772 Tj
+-248 TJm
+(algorithm) 38.7446 Tj
+72 652.358 Td
+(and) 14.386 Tj
+-308 TJm
+(so) 8.8568 Tj
+-308 TJm
+(compress) 37.6287 Tj
+-308 TJm
+(rather) 23.2328 Tj
+-309 TJm
+(slo) 11.6264 Tj
+25 TJm
+(wly) 14.9439 Tj
+65 TJm
+(,) 2.4907 Tj
+-322 TJm
+(too) 12.7322 Tj
+-309 TJm
+(high,) 20.2042 Tj
+-322 TJm
+(and) 14.386 Tj
+-308 TJm
+(your) 18.2614 Tj
+-309 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(erage-to-w) 43.148 Tj
+10 TJm
+(orst) 14.9439 Tj
+-308 TJm
+(case) 17.1456 Tj
+-308 TJm
+(compression) 50.3609 Tj
+-308 TJm
+(times) 21.589 Tj
+-308 TJm
+(can) 13.8281 Tj
+-308 TJm
+(become) 30.9837 Tj
+-309 TJm
+(v) 4.9813 Tj
+15 TJm
+(ery) 12.7222 Tj
+-308 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ge.) 11.8953 Tj
+72 640.402 Td
+(The) 15.4918 Tj
+-250 TJm
+(def) 12.7222 Tj
+10 TJm
+(ault) 14.9439 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue) 16.5977 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(30) 9.9626 Tj
+-250 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(es) 8.2988 Tj
+-250 TJm
+(reasonable) 42.6001 Tj
+-250 TJm
+(beha) 18.8094 Tj
+20 TJm
+(viour) 21.031 Tj
+-250 TJm
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(wide) 19.3673 Tj
+-250 TJm
+(range) 22.1269 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(circumstances.) 58.9288 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 618.588 Td
+(Allo) 17.7135 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues) 20.4731 Tj
+-250 TJm
+(range) 22.1269 Tj
+-250 TJm
+(from) 19.3673 Tj
+-250 TJm
+(0) 4.9813 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(250) 14.9439 Tj
+-250 TJm
+(inclusi) 26.5703 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e.) 6.914 Tj
+-620 TJm
+(0) 4.9813 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(special) 27.6661 Tj
+-250 TJm
+(case,) 19.6363 Tj
+-250 TJm
+(equi) 17.1556 Tj
+25 TJm
+(v) 4.9813 Tj
+25 TJm
+(alent) 19.3673 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(using) 21.589 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(def) 12.7222 Tj
+10 TJm
+(ault) 14.9439 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue) 16.5977 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(30.) 12.4533 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 596.774 Td
+(Note) 19.3673 Tj
+-250 TJm
+(that) 14.9439 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(output) 25.4644 Tj
+-250 TJm
+(generated) 38.7246 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(same) 20.4731 Tj
+-250 TJm
+(re) 7.7409 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(ardless) 27.6661 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(whether) 32.0895 Tj
+-250 TJm
+(or) 8.2988 Tj
+-250 TJm
+(not) 12.7322 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(f) 3.3175 Tj
+10 TJm
+(allback) 28.772 Tj
+-250 TJm
+(algorithm) 38.7446 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(used.) 20.7521 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 574.96 Td
+(Be) 11.0684 Tj
+-303 TJm
+(a) 4.4234 Tj
+15 TJm
+(w) 7.193 Tj
+10 TJm
+(are) 12.1643 Tj
+-303 TJm
+(also) 16.0497 Tj
+-303 TJm
+(that) 14.9439 Tj
+-303 TJm
+(this) 14.396 Tj
+-304 TJm
+(parameter) 39.8305 Tj
+-303 TJm
+(may) 17.1556 Tj
+-303 TJm
+(disappear) 38.1767 Tj
+-303 TJm
+(entirely) 30.4357 Tj
+-303 TJm
+(in) 7.7509 Tj
+-303 TJm
+(future) 23.7907 Tj
+-303 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersions) 28.224 Tj
+-303 TJm
+(of) 8.2988 Tj
+-303 TJm
+(the) 12.1743 Tj
+-304 TJm
+(library) 26.5603 Tj
+65 TJm
+(.) 2.4907 Tj
+-938 TJm
+(In) 8.2988 Tj
+-303 TJm
+(principle) 35.417 Tj
+-303 TJm
+(it) 5.5392 Tj
+-304 TJm
+(should) 26.5703 Tj
+-303 TJm
+(be) 9.4047 Tj
+72 563.005 Td
+(possible) 32.6574 Tj
+-270 TJm
+(to) 7.7509 Tj
+-270 TJm
+(de) 9.4047 Tj
+25 TJm
+(vise) 16.0497 Tj
+-270 TJm
+(a) 4.4234 Tj
+-270 TJm
+(good) 19.9252 Tj
+-270 TJm
+(w) 7.193 Tj
+10 TJm
+(ay) 9.4047 Tj
+-270 TJm
+(to) 7.7509 Tj
+-271 TJm
+(automat) 32.0995 Tj
+1 TJm
+(ically) 22.1369 Tj
+-271 TJm
+(choose) 27.6661 Tj
+-270 TJm
+(which) 24.3486 Tj
+-270 TJm
+(algorithm) 38.7446 Tj
+-270 TJm
+(to) 7.7509 Tj
+-270 TJm
+(use.) 15.7708 Tj
+-740 TJm
+(Such) 19.9252 Tj
+-270 TJm
+(a) 4.4234 Tj
+-270 TJm
+(mechanism) 45.3796 Tj
+-271 TJm
+(w) 7.193 Tj
+10 TJm
+(ould) 17.7135 Tj
+-270 TJm
+(render) 25.4445 Tj
+-270 TJm
+(the) 12.1743 Tj
+72 551.049 Td
+(parameter) 39.8305 Tj
+-250 TJm
+(obsolete.) 35.696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 529.235 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 384.677] cm
+0 0 468 143.462 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 519.771 Td
+/F124_0 9.9626 Tf
+(BZ_CONFIG_ERROR) 89.6634 Tj
+98.488 507.816 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(library) 41.8429 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(mis-compiled) 71.7307 Tj
+90 495.86 Td
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 483.905 Td
+(if) 11.9551 Tj
+-426 TJm
+(strm) 23.9102 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+98.488 471.95 Td
+(or) 11.9551 Tj
+-426 TJm
+(blockSize) 53.798 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(1) 5.9776 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(blockSize) 53.798 Tj
+-426 TJm
+(>) 5.9776 Tj
+-426 TJm
+(9) 5.9776 Tj
+98.488 459.995 Td
+(or) 11.9551 Tj
+-426 TJm
+(verbosity) 53.798 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(verbosity) 53.798 Tj
+-426 TJm
+(>) 5.9776 Tj
+-426 TJm
+(4) 5.9776 Tj
+98.488 448.04 Td
+(or) 11.9551 Tj
+-426 TJm
+(workFactor) 59.7756 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(workFactor) 59.7756 Tj
+-426 TJm
+(>) 5.9776 Tj
+-426 TJm
+(250) 17.9327 Tj
+90 436.085 Td
+(BZ_MEM_ERROR) 71.7307 Tj
+98.488 424.129 Td
+(if) 11.9551 Tj
+-426 TJm
+(not) 17.9327 Tj
+-426 TJm
+(enough) 35.8654 Tj
+-426 TJm
+(memory) 35.8654 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(available) 53.798 Tj
+90 412.174 Td
+(BZ_OK) 29.8878 Tj
+98.488 400.219 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 362.863 Td
+/F122_0 9.9626 Tf
+(Allo) 17.7135 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-250 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-250 TJm
+(actions:) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 313.947] cm
+0 0 468 47.821 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 353.399 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+98.488 341.444 Td
+(if) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(returned) 47.8205 Tj
+98.488 329.488 Td
+(no) 11.9551 Tj
+-426 TJm
+(specific) 47.8205 Tj
+-426 TJm
+(action) 35.8654 Tj
+-426 TJm
+(needed) 35.8654 Tj
+-426 TJm
+(in) 11.9551 Tj
+-426 TJm
+(case) 23.9102 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(error) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 283.429 Td
+/F116_0 17.2154 Tf
+(3.3.2.) 43.0729 Tj
+-278 TJm
+(BZ2_bzCompress) 145.4013 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 254.959] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 270.501 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzCompress) 83.6858 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(bz_stream) 53.798 Tj
+268.371 268.757 Td
+(*) 5.9776 Tj
+274.348 270.501 Td
+(strm,) 29.8878 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(action) 35.8654 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 233.145 Td
+/F122_0 9.9626 Tf
+(Pro) 13.8381 Tj
+15 TJm
+(vides) 21.031 Tj
+-222 TJm
+(more) 20.4731 Tj
+-221 TJm
+(input) 20.4831 Tj
+-222 TJm
+(and/or) 25.4544 Tj
+-222 TJm
+(output) 25.4644 Tj
+-222 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-221 TJm
+(space) 22.1269 Tj
+-222 TJm
+(for) 11.6164 Tj
+-222 TJm
+(the) 12.1743 Tj
+-221 TJm
+(library) 26.5603 Tj
+65 TJm
+(.) 2.4907 Tj
+-601 TJm
+(The) 15.4918 Tj
+-222 TJm
+(caller) 22.1269 Tj
+-222 TJm
+(maintains) 38.7446 Tj
+-222 TJm
+(input) 20.4831 Tj
+-221 TJm
+(and) 14.386 Tj
+-222 TJm
+(output) 25.4644 Tj
+-222 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fers,) 17.4246 Tj
+-227 TJm
+(and) 14.386 Tj
+-222 TJm
+(calls) 18.2614 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 221.19 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.177 221.19 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(transfer) 30.4258 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(between) 33.1954 Tj
+-250 TJm
+(them.) 22.4159 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 199.375 Td
+(Before) 27.1082 Tj
+-212 TJm
+(each) 18.2515 Tj
+-213 TJm
+(call) 14.386 Tj
+-212 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+147.961 199.375 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+231.647 199.375 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+236.329 199.375 Td
+/F124_0 9.9626 Tf
+(next_in) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+280.288 199.375 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-212 TJm
+(point) 20.4831 Tj
+-213 TJm
+(at) 7.193 Tj
+-212 TJm
+(the) 12.1743 Tj
+-213 TJm
+(data) 16.5977 Tj
+-212 TJm
+(to) 7.7509 Tj
+-213 TJm
+(be) 9.4047 Tj
+-212 TJm
+(compressed,) 49.5241 Tj
+-220 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+463.493 199.375 Td
+/F124_0 9.9626 Tf
+(avail_in) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+513.43 199.375 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+72 187.42 Td
+(indicate) 31.5416 Tj
+-246 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-247 TJm
+(m) 7.7509 Tj
+1 TJm
+(an) 9.4047 Tj
+14 TJm
+(y) 4.9813 Tj
+-246 TJm
+(bytes) 21.031 Tj
+-246 TJm
+(the) 12.1743 Tj
+-246 TJm
+(library) 26.5603 Tj
+-247 TJm
+(may) 17.1556 Tj
+-246 TJm
+(read.) 19.6363 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+259.242 187.42 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+345.382 187.42 Td
+/F122_0 9.9626 Tf
+(updates) 30.4357 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+378.271 187.42 Td
+/F124_0 9.9626 Tf
+(next_in) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+420.114 187.42 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+425.066 187.42 Td
+/F124_0 9.9626 Tf
+(avail_in) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+475.34 187.42 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+492.179 187.42 Td
+/F124_0 9.9626 Tf
+(total_in) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 175.465 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(re\003ect) 24.8965 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(number) 30.4357 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(bytes) 21.031 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(has) 13.2801 Tj
+-250 TJm
+(read.) 19.6363 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 153.651 Td
+(Similarly) 37.0908 Tj
+65 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+113.611 153.651 Td
+/F124_0 9.9626 Tf
+(next_out) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+164.072 153.651 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-265 TJm
+(point) 20.4831 Tj
+-265 TJm
+(to) 7.7509 Tj
+-265 TJm
+(a) 4.4234 Tj
+-265 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-265 TJm
+(in) 7.7509 Tj
+-265 TJm
+(which) 24.3486 Tj
+-265 TJm
+(the) 12.1743 Tj
+-265 TJm
+(compressed) 47.0334 Tj
+-265 TJm
+(data) 16.5977 Tj
+-265 TJm
+(is) 6.6451 Tj
+-265 TJm
+(to) 7.7509 Tj
+-265 TJm
+(be) 9.4047 Tj
+-265 TJm
+(placed,) 28.493 Tj
+-269 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+464.742 153.651 Td
+/F124_0 9.9626 Tf
+(avail_out) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+521.181 153.651 Td
+/F122_0 9.9626 Tf
+(indi-) 18.8194 Tj
+72 141.696 Td
+(cating) 24.3486 Tj
+-209 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-209 TJm
+(much) 22.1369 Tj
+-209 TJm
+(output) 25.4644 Tj
+-209 TJm
+(space) 22.1269 Tj
+-209 TJm
+(is) 6.6451 Tj
+-210 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+25 TJm
+(ailable.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+243.087 141.696 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+328.856 141.696 Td
+/F122_0 9.9626 Tf
+(updates) 30.4357 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+361.375 141.696 Td
+/F124_0 9.9626 Tf
+(next_out) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+409.196 141.696 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+413.851 141.696 Td
+/F124_0 9.9626 Tf
+(avail_out) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+469.732 141.696 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+486.202 141.696 Td
+/F124_0 9.9626 Tf
+(total_out) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 129.74 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(re\003ect) 24.8965 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(number) 30.4357 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(bytes) 21.031 Tj
+-250 TJm
+(output.) 27.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 107.926 Td
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-272 TJm
+(may) 17.1556 Tj
+-272 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vide) 17.1556 Tj
+-272 TJm
+(and) 14.386 Tj
+-272 TJm
+(remo) 20.4731 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-272 TJm
+(as) 8.2988 Tj
+-272 TJm
+(little) 18.2714 Tj
+-272 TJm
+(or) 8.2988 Tj
+-272 TJm
+(as) 8.2988 Tj
+-272 TJm
+(much) 22.1369 Tj
+-271 TJm
+(data) 16.5977 Tj
+-272 TJm
+(as) 8.2988 Tj
+-272 TJm
+(you) 14.9439 Tj
+-272 TJm
+(lik) 10.5205 Tj
+10 TJm
+(e) 4.4234 Tj
+-272 TJm
+(on) 9.9626 Tj
+-272 TJm
+(each) 18.2515 Tj
+-272 TJm
+(call) 14.386 Tj
+-272 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+399.123 107.926 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+482.809 107.926 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-752 TJm
+(In) 8.2988 Tj
+-272 TJm
+(the) 12.1743 Tj
+-272 TJm
+(limit,) 21.32 Tj
+72 95.971 Td
+(it) 5.5392 Tj
+-266 TJm
+(is) 6.6451 Tj
+-265 TJm
+(acceptable) 42.0422 Tj
+-266 TJm
+(to) 7.7509 Tj
+-266 TJm
+(supply) 26.5703 Tj
+-266 TJm
+(and) 14.386 Tj
+-265 TJm
+(remo) 20.4731 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-266 TJm
+(data) 16.5977 Tj
+-266 TJm
+(one) 14.386 Tj
+-265 TJm
+(byte) 17.1556 Tj
+-266 TJm
+(at) 7.193 Tj
+-266 TJm
+(a) 4.4234 Tj
+-266 TJm
+(time,) 20.2042 Tj
+-269 TJm
+(although) 34.8691 Tj
+-266 TJm
+(this) 14.396 Tj
+-266 TJm
+(w) 7.193 Tj
+10 TJm
+(ould) 17.7135 Tj
+-265 TJm
+(be) 9.4047 Tj
+-266 TJm
+(terribly) 29.3299 Tj
+-266 TJm
+(inef) 15.4918 Tj
+25 TJm
+(\002cient.) 27.3972 Tj
+-714 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-266 TJm
+(should) 26.5703 Tj
+72 84.016 Td
+(al) 7.193 Tj
+10 TJm
+(w) 7.193 Tj
+10 TJm
+(ays) 13.2801 Tj
+-250 TJm
+(ensure) 26.0024 Tj
+-250 TJm
+(that) 14.9439 Tj
+-250 TJm
+(at) 7.193 Tj
+-250 TJm
+(least) 18.2614 Tj
+-250 TJm
+(one) 14.386 Tj
+-250 TJm
+(byte) 17.1556 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(output) 25.4644 Tj
+-250 TJm
+(space) 22.1269 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+25 TJm
+(ailable) 26.5603 Tj
+-250 TJm
+(at) 7.193 Tj
+-250 TJm
+(each) 18.2515 Tj
+-250 TJm
+(call.) 16.8766 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(13) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 14 17
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(A) 7.193 Tj
+-250 TJm
+(second) 27.6661 Tj
+-250 TJm
+(purpose) 31.5416 Tj
+-250 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+156.662 710.037 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+242.839 710.037 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(request) 28.772 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(change) 28.2141 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(mode) 22.1369 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(stream.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 688.12 Td
+(Conceptually) 53.1305 Tj
+65 TJm
+(,) 2.4907 Tj
+-217 TJm
+(a) 4.4234 Tj
+-210 TJm
+(compressed) 47.0334 Tj
+-209 TJm
+(stream) 26.5603 Tj
+-209 TJm
+(can) 13.8281 Tj
+-209 TJm
+(be) 9.4047 Tj
+-210 TJm
+(in) 7.7509 Tj
+-209 TJm
+(one) 14.386 Tj
+-209 TJm
+(of) 8.2988 Tj
+-209 TJm
+(four) 16.5977 Tj
+-210 TJm
+(states:) 24.9065 Tj
+-289 TJm
+(IDLE,) 25.1755 Tj
+-209 TJm
+(R) 6.6451 Tj
+40 TJm
+(UNNING,) 41.7732 Tj
+-210 TJm
+(FLUSHING) 49.2551 Tj
+-209 TJm
+(and) 14.386 Tj
+-209 TJm
+(FINISHING.) 52.2937 Tj
+-419 TJm
+(Be-) 14.386 Tj
+72 676.164 Td
+(fore) 16.0398 Tj
+-264 TJm
+(initialisation) 49.823 Tj
+-263 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+146.434 676.164 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+254.031 676.164 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-264 TJm
+(and) 14.386 Tj
+-263 TJm
+(after) 18.2515 Tj
+-264 TJm
+(termination) 45.9375 Tj
+-264 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+349.75 676.164 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressEnd) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+451.369 676.164 Td
+/F122_0 9.9626 Tf
+(\),) 5.8082 Tj
+-267 TJm
+(a) 4.4234 Tj
+-264 TJm
+(stream) 26.5603 Tj
+-264 TJm
+(is) 6.6451 Tj
+-263 TJm
+(re) 7.7409 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(arded) 22.1269 Tj
+72 664.209 Td
+(as) 8.2988 Tj
+-250 TJm
+(IDLE.) 25.1755 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 642.291 Td
+(Upon) 22.1369 Tj
+-389 TJm
+(initialisation) 49.823 Tj
+-390 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.036 642.291 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+262.632 642.291 Td
+/F122_0 9.9626 Tf
+(\),) 5.8082 Tj
+-424 TJm
+(the) 12.1743 Tj
+-390 TJm
+(stream) 26.5603 Tj
+-389 TJm
+(is) 6.6451 Tj
+-390 TJm
+(placed) 26.0024 Tj
+-389 TJm
+(in) 7.7509 Tj
+-389 TJm
+(the) 12.1743 Tj
+-390 TJm
+(R) 6.6451 Tj
+40 TJm
+(UNNING) 39.2825 Tj
+-389 TJm
+(state.) 20.7521 Tj
+-1457 TJm
+(Subsequent) 45.9375 Tj
+-389 TJm
+(calls) 18.2614 Tj
+72 630.336 Td
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+83.818 630.336 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+171.571 630.336 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-408 TJm
+(pass) 17.1556 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+223.431 630.336 Td
+/F124_0 9.9626 Tf
+(BZ_RUN) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+263.362 630.336 Td
+/F122_0 9.9626 Tf
+(as) 8.2988 Tj
+-408 TJm
+(the) 12.1743 Tj
+-409 TJm
+(request) 28.772 Tj
+1 TJm
+(ed) 9.4047 Tj
+-409 TJm
+(action;) 27.1182 Tj
+-487 TJm
+(other) 20.4731 Tj
+-408 TJm
+(actions) 28.224 Tj
+-409 TJm
+(are) 12.1643 Tj
+-408 TJm
+(ille) 12.7322 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(al) 7.193 Tj
+-408 TJm
+(and) 14.386 Tj
+-408 TJm
+(will) 15.5018 Tj
+-408 TJm
+(result) 22.1369 Tj
+-409 TJm
+(in) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 618.381 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+173.619 618.381 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 596.463 Td
+(At) 9.9626 Tj
+-279 TJm
+(some) 21.031 Tj
+-279 TJm
+(point,) 22.9738 Tj
+-286 TJm
+(the) 12.1743 Tj
+-279 TJm
+(calling) 27.1182 Tj
+-279 TJm
+(program) 33.7533 Tj
+-279 TJm
+(will) 15.5018 Tj
+-279 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-278 TJm
+(pro) 13.2801 Tj
+14 TJm
+(vi) 7.7509 Tj
+1 TJm
+(ded) 14.386 Tj
+-279 TJm
+(all) 9.9626 Tj
+-279 TJm
+(the) 12.1743 Tj
+-279 TJm
+(input) 20.4831 Tj
+-279 TJm
+(data) 16.5977 Tj
+-279 TJm
+(it) 5.5392 Tj
+-279 TJm
+(w) 7.193 Tj
+10 TJm
+(ants) 16.0497 Tj
+-279 TJm
+(to.) 10.2416 Tj
+-793 TJm
+(It) 6.0871 Tj
+-279 TJm
+(will) 15.5018 Tj
+-279 TJm
+(then) 17.1556 Tj
+-279 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-279 TJm
+(to) 7.7509 Tj
+-279 TJm
+(\002nish) 22.1469 Tj
+-279 TJm
+(up) 9.9626 Tj
+-279 TJm
+(--) 6.6351 Tj
+72 584.508 Td
+(in) 7.7509 Tj
+-287 TJm
+(ef) 7.7409 Tj
+25 TJm
+(fect,) 17.4246 Tj
+-297 TJm
+(asking) 26.0123 Tj
+-288 TJm
+(the) 12.1743 Tj
+-287 TJm
+(library) 26.5603 Tj
+-287 TJm
+(to) 7.7509 Tj
+-288 TJm
+(process) 29.8778 Tj
+-287 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-288 TJm
+(data) 16.5977 Tj
+-287 TJm
+(it) 5.5392 Tj
+-287 TJm
+(might) 23.2527 Tj
+-288 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-287 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fered) 20.4632 Tj
+-288 TJm
+(internally) 38.1866 Tj
+65 TJm
+(.) 2.4907 Tj
+-844 TJm
+(In) 8.2988 Tj
+-288 TJm
+(this) 14.396 Tj
+-287 TJm
+(state,) 20.7521 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+456.314 584.508 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 572.553 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-258 TJm
+(no) 9.9626 Tj
+-257 TJm
+(longer) 25.4544 Tj
+-258 TJm
+(attempt) 29.8878 Tj
+-258 TJm
+(to) 7.7509 Tj
+-258 TJm
+(read) 17.1456 Tj
+-257 TJm
+(data) 16.5977 Tj
+-258 TJm
+(from) 19.3673 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.208 572.553 Td
+/F124_0 9.9626 Tf
+(next_in) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+276.051 572.553 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-260 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-257 TJm
+(it) 5.5392 Tj
+-258 TJm
+(will) 15.5018 Tj
+-258 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-257 TJm
+(to) 7.7509 Tj
+-258 TJm
+(write) 20.4731 Tj
+-258 TJm
+(data) 16.5977 Tj
+-258 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+407.082 572.553 Td
+/F124_0 9.9626 Tf
+(next_out) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+454.902 572.553 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-666 TJm
+(Because) 33.1954 Tj
+-258 TJm
+(the) 12.1743 Tj
+-258 TJm
+(output) 25.4644 Tj
+72 560.598 Td
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-228 TJm
+(supplied) 33.7633 Tj
+-228 TJm
+(by) 9.9626 Tj
+-229 TJm
+(the) 12.1743 Tj
+-228 TJm
+(user) 16.5977 Tj
+-228 TJm
+(can) 13.8281 Tj
+-228 TJm
+(be) 9.4047 Tj
+-228 TJm
+(arbitrarily) 39.8404 Tj
+-229 TJm
+(sma) 16.0497 Tj
+1 TJm
+(ll,) 8.0299 Tj
+-233 TJm
+(the) 12.1743 Tj
+-228 TJm
+(\002nishing-up) 48.1592 Tj
+-228 TJm
+(operation) 37.6287 Tj
+-229 TJm
+(cannot) 26.5603 Tj
+-228 TJm
+(necessarily) 44.2638 Tj
+-228 TJm
+(be) 9.4047 Tj
+-228 TJm
+(done) 19.3673 Tj
+-228 TJm
+(with) 17.7135 Tj
+-229 TJm
+(a) 4.4234 Tj
+-228 TJm
+(single) 23.8007 Tj
+72 548.642 Td
+(call) 14.386 Tj
+-250 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+99.666 548.642 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+183.352 548.642 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 526.725 Td
+(Instead,) 31.2626 Tj
+-346 TJm
+(the) 12.1743 Tj
+-327 TJm
+(calling) 27.1182 Tj
+-326 TJm
+(program) 33.7533 Tj
+-327 TJm
+(passes) 25.4544 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+218.231 526.725 Td
+/F124_0 9.9626 Tf
+(BZ_FINISH) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+275.284 526.725 Td
+/F122_0 9.9626 Tf
+(as) 8.2988 Tj
+-327 TJm
+(an) 9.4047 Tj
+-327 TJm
+(acti) 14.386 Tj
+1 TJm
+(on) 9.9626 Tj
+-327 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+338.109 526.725 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+421.795 526.725 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1081 TJm
+(This) 17.7135 Tj
+-326 TJm
+(changes) 32.0895 Tj
+-327 TJm
+(the) 12.1743 Tj
+-327 TJm
+(stream') 29.8778 Tj
+55 TJm
+(s) 3.8755 Tj
+72 514.77 Td
+(state) 18.2614 Tj
+-291 TJm
+(to) 7.7509 Tj
+-290 TJm
+(FINISHING.) 52.2937 Tj
+-581 TJm
+(An) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-291 TJm
+(remaining) 40.3983 Tj
+-290 TJm
+(input) 20.4831 Tj
+-291 TJm
+(\(ie,) 13.0012 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+264.452 514.77 Td
+/F124_0 9.9626 Tf
+(next_in[0) 53.798 Tj
+-600 TJm
+(..) 11.9551 Tj
+-1200 TJm
+(avail_in-1]) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+413.892 514.77 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-291 TJm
+(is) 6.6451 Tj
+-290 TJm
+(compressed) 47.0334 Tj
+-291 TJm
+(and) 14.386 Tj
+-290 TJm
+(transferred) 43.148 Tj
+72 502.814 Td
+(to) 7.7509 Tj
+-421 TJm
+(the) 12.1743 Tj
+-421 TJm
+(output) 25.4644 Tj
+-421 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+55 TJm
+(.) 2.4907 Tj
+-1646 TJm
+(T) 6.0871 Tj
+80 TJm
+(o) 4.9813 Tj
+-421 TJm
+(do) 9.9626 Tj
+-422 TJm
+(this) 14.396 Tj
+1 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+222.339 502.814 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+310.22 502.814 Td
+/F122_0 9.9626 Tf
+(must) 19.3773 Tj
+-421 TJm
+(be) 9.4047 Tj
+-421 TJm
+(called) 23.7907 Tj
+-421 TJm
+(repeatedly) 41.4942 Tj
+-421 TJm
+(until) 18.2714 Tj
+-421 TJm
+(all) 9.9626 Tj
+-421 TJm
+(the) 12.1743 Tj
+-421 TJm
+(output) 25.4644 Tj
+-421 TJm
+(has) 13.2801 Tj
+-421 TJm
+(been) 18.8094 Tj
+72 490.859 Td
+(consumed.) 42.889 Tj
+-1397 TJm
+(At) 9.9626 Tj
+-379 TJm
+(that) 14.9439 Tj
+-380 TJm
+(point,) 22.9738 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.346 490.859 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+275.813 490.859 Td
+/F122_0 9.9626 Tf
+(returns) 27.6661 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+307.259 490.859 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+384.968 490.859 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-379 TJm
+(and) 14.386 Tj
+-380 TJm
+(the) 12.1743 Tj
+-379 TJm
+(stream') 29.8778 Tj
+55 TJm
+(s) 3.8755 Tj
+-380 TJm
+(state) 18.2614 Tj
+-379 TJm
+(is) 6.6451 Tj
+-380 TJm
+(set) 11.0684 Tj
+-379 TJm
+(back) 18.8094 Tj
+-379 TJm
+(to) 7.7509 Tj
+72 478.904 Td
+(IDLE.) 25.1755 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+99.666 478.904 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressEnd) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.776 478.904 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-250 TJm
+(then) 17.1556 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(called.) 26.2813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 456.986 Td
+(Just) 15.5018 Tj
+-380 TJm
+(to) 7.7509 Tj
+-380 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e) 4.4234 Tj
+-379 TJm
+(sure) 16.5977 Tj
+-380 TJm
+(the) 12.1743 Tj
+-380 TJm
+(calling) 27.1182 Tj
+-380 TJm
+(program) 33.7533 Tj
+-379 TJm
+(does) 18.2614 Tj
+-380 TJm
+(not) 12.7322 Tj
+-380 TJm
+(cheat,) 23.5117 Tj
+-412 TJm
+(the) 12.1743 Tj
+-380 TJm
+(library) 26.5603 Tj
+-380 TJm
+(mak) 17.1556 Tj
+10 TJm
+(es) 8.2988 Tj
+-379 TJm
+(a) 4.4234 Tj
+-380 TJm
+(note) 17.1556 Tj
+-380 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+415.708 456.986 Td
+/F124_0 9.9626 Tf
+(avail_in) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+467.312 456.986 Td
+/F122_0 9.9626 Tf
+(at) 7.193 Tj
+-380 TJm
+(the) 12.1743 Tj
+-380 TJm
+(time) 17.7135 Tj
+-379 TJm
+(of) 8.2988 Tj
+-380 TJm
+(the) 12.1743 Tj
+72 445.031 Td
+(\002rst) 15.5018 Tj
+-286 TJm
+(call) 14.386 Tj
+-286 TJm
+(t) 2.7696 Tj
+1 TJm
+(o) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+118.179 445.031 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+204.713 445.031 Td
+/F122_0 9.9626 Tf
+(which) 24.3486 Tj
+-286 TJm
+(has) 13.2801 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+248.035 445.031 Td
+/F124_0 9.9626 Tf
+(BZ_FINISH) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+304.68 445.031 Td
+/F122_0 9.9626 Tf
+(as) 8.2988 Tj
+-286 TJm
+(an) 9.4047 Tj
+-286 TJm
+(action) 24.3486 Tj
+-285 TJm
+(\(ie,) 13.0012 Tj
+-295 TJm
+(at) 7.193 Tj
+-286 TJm
+(the) 12.1743 Tj
+-286 TJm
+(time) 17.7135 Tj
+-285 TJm
+(the) 12.1743 Tj
+-286 TJm
+(program) 33.7533 Tj
+-286 TJm
+(has) 13.2801 Tj
+-286 TJm
+(announced) 43.158 Tj
+-285 TJm
+(its) 9.4147 Tj
+72 433.076 Td
+(intention) 35.427 Tj
+-292 TJm
+(to) 7.7509 Tj
+-292 TJm
+(not) 12.7322 Tj
+-291 TJm
+(supply) 26.5703 Tj
+-292 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-292 TJm
+(more) 20.4731 Tj
+-292 TJm
+(input\).) 26.2913 Tj
+-870 TJm
+(By) 11.6264 Tj
+-292 TJm
+(comparing) 42.61 Tj
+-292 TJm
+(this) 14.396 Tj
+-292 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue) 16.5977 Tj
+-291 TJm
+(with) 17.7135 Tj
+-292 TJm
+(that) 14.9439 Tj
+-292 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.862 433.076 Td
+/F124_0 9.9626 Tf
+(avail_in) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+443.589 433.076 Td
+/F122_0 9.9626 Tf
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-292 TJm
+(subsequent) 44.2738 Tj
+-292 TJm
+(calls) 18.2614 Tj
+-291 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 421.121 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.686 421.121 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-247 TJm
+(the) 12.1743 Tj
+-247 TJm
+(library) 26.5603 Tj
+-246 TJm
+(can) 13.8281 Tj
+-247 TJm
+(detect) 23.7907 Tj
+-246 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-247 TJm
+(attem) 22.1369 Tj
+1 TJm
+(p) 4.9813 Tj
+-1 TJm
+(t) 2.7696 Tj
+1 TJm
+(s) 3.8755 Tj
+-247 TJm
+(to) 7.7509 Tj
+-246 TJm
+(slip) 14.396 Tj
+-247 TJm
+(in) 7.7509 Tj
+-246 TJm
+(more) 20.4731 Tj
+-247 TJm
+(data) 16.5977 Tj
+-246 TJm
+(to) 7.7509 Tj
+-247 TJm
+(compress.) 40.1194 Tj
+-617 TJm
+(An) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-247 TJm
+(calls) 18.2614 Tj
+-246 TJm
+(for) 11.6164 Tj
+-247 TJm
+(which) 24.3486 Tj
+-246 TJm
+(this) 14.396 Tj
+-247 TJm
+(is) 6.6451 Tj
+72 409.165 Td
+(detected) 33.1954 Tj
+-250 TJm
+(will) 15.5018 Tj
+-250 TJm
+(return) 23.7907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+151.959 409.165 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+253.578 409.165 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-500 TJm
+(This) 17.7135 Tj
+-250 TJm
+(indicates) 35.417 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(programming) 54.2364 Tj
+-250 TJm
+(mistak) 26.5703 Tj
+10 TJm
+(e) 4.4234 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(should) 26.5703 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(corrected.) 39.5515 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 387.248 Td
+(Instead) 28.772 Tj
+-224 TJm
+(of) 8.2988 Tj
+-223 TJm
+(asking) 26.0123 Tj
+-224 TJm
+(to) 7.7509 Tj
+-223 TJm
+(\002nish,) 24.6375 Tj
+-229 TJm
+(the) 12.1743 Tj
+-224 TJm
+(calling) 27.1182 Tj
+-223 TJm
+(program) 33.7533 Tj
+-224 TJm
+(may) 17.1556 Tj
+-224 TJm
+(ask) 13.2801 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+293.282 387.248 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+379.196 387.248 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-224 TJm
+(tak) 12.1743 Tj
+10 TJm
+(e) 4.4234 Tj
+-223 TJm
+(all) 9.9626 Tj
+-224 TJm
+(the) 12.1743 Tj
+-223 TJm
+(remaining) 40.3983 Tj
+-224 TJm
+(input,) 22.9738 Tj
+-229 TJm
+(compress) 37.6287 Tj
+72 375.293 Td
+(it) 5.5392 Tj
+-278 TJm
+(and) 14.386 Tj
+-278 TJm
+(terminate) 37.6287 Tj
+-278 TJm
+(the) 12.1743 Tj
+-278 TJm
+(current) 28.2141 Tj
+-277 TJm
+(\(Burro) 26.5603 Tj
+25 TJm
+(ws-Wheeler\)) 51.4469 Tj
+-278 TJm
+(compression) 50.3609 Tj
+-278 TJm
+(block.) 24.6275 Tj
+-787 TJm
+(Th) 11.0684 Tj
+-1 TJm
+(i) 2.7696 Tj
+1 TJm
+(s) 3.8755 Tj
+-278 TJm
+(could) 22.1369 Tj
+-278 TJm
+(be) 9.4047 Tj
+-278 TJm
+(useful) 24.3486 Tj
+-278 TJm
+(for) 11.6164 Tj
+-278 TJm
+(error) 19.3573 Tj
+-278 TJm
+(control) 28.224 Tj
+-278 TJm
+(purposes.) 37.9077 Tj
+72 363.337 Td
+(The) 15.4918 Tj
+-328 TJm
+(mechanism) 45.3796 Tj
+-328 TJm
+(is) 6.6451 Tj
+-328 TJm
+(analogous) 40.3983 Tj
+-328 TJm
+(to) 7.7509 Tj
+-328 TJm
+(that) 14.9439 Tj
+-328 TJm
+(for) 11.6164 Tj
+-328 TJm
+(\002nishing:) 37.6487 Tj
+-466 TJm
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+297.049 363.337 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+384.003 363.337 Td
+/F122_0 9.9626 Tf
+(with) 17.7135 Tj
+-328 TJm
+(an) 9.4047 Tj
+-328 TJm
+(action) 24.3486 Tj
+-328 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+456.841 363.337 Td
+/F124_0 9.9626 Tf
+(BZ_FLUSH) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+504.662 363.337 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-328 TJm
+(remo) 20.4731 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+72 351.382 Td
+(output) 25.4644 Tj
+-445 TJm
+(data,) 19.0883 Tj
+-494 TJm
+(and) 14.386 Tj
+-446 TJm
+(persist) 26.0123 Tj
+-445 TJm
+(with) 17.7135 Tj
+-445 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+213.94 351.382 Td
+/F124_0 9.9626 Tf
+(BZ_FLUSH) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+266.195 351.382 Td
+/F122_0 9.9626 Tf
+(action) 24.3486 Tj
+-445 TJm
+(until) 18.2714 Tj
+-445 TJm
+(the) 12.1743 Tj
+-446 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue) 16.5977 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+360.062 351.382 Td
+/F124_0 9.9626 Tf
+(BZ_RUN) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+400.362 351.382 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-445 TJm
+(returned.) 35.686 Tj
+-1792 TJm
+(As) 11.0684 Tj
+-445 TJm
+(with) 17.7135 Tj
+-445 TJm
+(\002nishing,) 37.3697 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 339.427 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.177 339.427 Td
+/F122_0 9.9626 Tf
+(detects) 27.6661 Tj
+-250 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-250 TJm
+(attempt) 29.8878 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vide) 17.1556 Tj
+-250 TJm
+(more) 20.4731 Tj
+-250 TJm
+(input) 20.4831 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(once) 18.8094 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(\003ush) 19.3773 Tj
+-250 TJm
+(has) 13.2801 Tj
+-250 TJm
+(be) 9.4047 Tj
+15 TJm
+(gun.) 17.4346 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 317.509 Td
+(Once) 21.0211 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(\003ush) 19.3773 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(complete,) 39.0135 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(stream) 26.5603 Tj
+-250 TJm
+(returns) 27.6661 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(normal) 28.224 Tj
+-250 TJm
+(R) 6.6451 Tj
+40 TJm
+(UNNING) 39.2825 Tj
+-250 TJm
+(state.) 20.7521 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 295.591 Td
+(This) 17.7135 Tj
+-344 TJm
+(all) 9.9626 Tj
+-343 TJm
+(sounds) 27.6761 Tj
+-344 TJm
+(pretty) 23.2427 Tj
+-344 TJm
+(comple) 29.3299 Tj
+15 TJm
+(x,) 7.472 Tj
+-367 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-344 TJm
+(isn') 14.9439 Tj
+18 TJm
+(t) 2.7696 Tj
+-344 TJm
+(really) 22.6848 Tj
+65 TJm
+(.) 2.4907 Tj
+-1182 TJm
+(Here') 22.6749 Tj
+55 TJm
+(s) 3.8755 Tj
+-344 TJm
+(a) 4.4234 Tj
+-344 TJm
+(table) 19.3673 Tj
+-343 TJm
+(which) 24.3486 Tj
+-344 TJm
+(sho) 13.8381 Tj
+25 TJm
+(ws) 11.0684 Tj
+-344 TJm
+(which) 24.3486 Tj
+-344 TJm
+(actions) 28.224 Tj
+-343 TJm
+(are) 12.1643 Tj
+-344 TJm
+(allo) 14.9439 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-344 TJm
+(in) 7.7509 Tj
+-344 TJm
+(each) 18.2515 Tj
+72 283.636 Td
+(state,) 20.7521 Tj
+-281 TJm
+(what) 19.3673 Tj
+-274 TJm
+(action) 24.3486 Tj
+-275 TJm
+(will) 15.5018 Tj
+-274 TJm
+(be) 9.4047 Tj
+-275 TJm
+(tak) 12.1743 Tj
+10 TJm
+(en,) 11.8953 Tj
+-280 TJm
+(what) 19.3673 Tj
+-275 TJm
+(the) 12.1743 Tj
+-274 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-275 TJm
+(state) 18.2614 Tj
+-274 TJm
+(is,) 9.1357 Tj
+-281 TJm
+(and) 14.386 Tj
+-274 TJm
+(what) 19.3673 Tj
+-275 TJm
+(the) 12.1743 Tj
+-275 TJm
+(non-error) 37.6188 Tj
+-274 TJm
+(return) 23.7907 Tj
+-275 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues) 20.4731 Tj
+-274 TJm
+(are.) 14.655 Tj
+-767 TJm
+(Note) 19.3673 Tj
+-275 TJm
+(that) 14.9439 Tj
+-274 TJm
+(you) 14.9439 Tj
+-275 TJm
+(can') 17.1456 Tj
+18 TJm
+(t) 2.7696 Tj
+72 271.681 Td
+(e) 4.4234 Tj
+15 TJm
+(xplicitly) 33.2153 Tj
+-347 TJm
+(ask) 13.2801 Tj
+-348 TJm
+(what) 19.3673 Tj
+-347 TJm
+(state) 18.2614 Tj
+-348 TJm
+(the) 12.1743 Tj
+-347 TJm
+(stream) 26.5603 Tj
+-348 TJm
+(is) 6.6451 Tj
+-347 TJm
+(in,) 10.2416 Tj
+-372 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-347 TJm
+(nor) 13.2801 Tj
+-348 TJm
+(do) 9.9626 Tj
+-347 TJm
+(you) 14.9439 Tj
+-348 TJm
+(need) 18.8094 Tj
+-347 TJm
+(to) 7.7509 Tj
+-348 TJm
+(--) 6.6351 Tj
+-347 TJm
+(it) 5.5392 Tj
+-348 TJm
+(can) 13.8281 Tj
+-347 TJm
+(be) 9.4047 Tj
+-347 TJm
+(inferred) 31.5316 Tj
+-348 TJm
+(from) 19.3673 Tj
+-347 TJm
+(the) 12.1743 Tj
+-348 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues) 20.4731 Tj
+-347 TJm
+(returned) 33.1954 Tj
+-348 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 259.726 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.686 259.726 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+(14) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 15 18
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 146.152] cm
+0 0 468 573.848 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(IDLE/any) 47.8205 Tj
+98.488 699.676 Td
+(Illegal.) 47.8205 Tj
+-852 TJm
+(IDLE) 23.9102 Tj
+-426 TJm
+(state) 29.8878 Tj
+-426 TJm
+(only) 23.9102 Tj
+-426 TJm
+(exists) 35.8654 Tj
+-426 TJm
+(after) 29.8878 Tj
+-426 TJm
+(BZ2_bzCompressEnd) 101.6185 Tj
+-426 TJm
+(or) 11.9551 Tj
+98.488 687.721 Td
+(before) 35.8654 Tj
+-426 TJm
+(BZ2_bzCompressInit.) 113.5736 Tj
+98.488 675.766 Td
+(Return) 35.8654 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+90 651.856 Td
+(RUNNING/BZ_RUN) 83.6858 Tj
+98.488 639.9 Td
+(Compress) 47.8205 Tj
+-426 TJm
+(from) 23.9102 Tj
+-426 TJm
+(next_in) 41.8429 Tj
+-426 TJm
+(to) 11.9551 Tj
+-426 TJm
+(next_out) 47.8205 Tj
+-426 TJm
+(as) 11.9551 Tj
+-426 TJm
+(much) 23.9102 Tj
+-426 TJm
+(as) 11.9551 Tj
+-426 TJm
+(possible.) 53.798 Tj
+98.488 627.945 Td
+(Next) 23.9102 Tj
+-426 TJm
+(state) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(RUNNING) 41.8429 Tj
+98.488 615.99 Td
+(Return) 35.8654 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_RUN_OK) 53.798 Tj
+90 592.08 Td
+(RUNNING/BZ_FLUSH) 95.641 Tj
+98.488 580.124 Td
+(Remember) 47.8205 Tj
+-426 TJm
+(current) 41.8429 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(next_in.) 47.8205 Tj
+-426 TJm
+(Compress) 47.8205 Tj
+-426 TJm
+(from) 23.9102 Tj
+-426 TJm
+(next_in) 41.8429 Tj
+98.488 568.169 Td
+(to) 11.9551 Tj
+-426 TJm
+(next_out) 47.8205 Tj
+-426 TJm
+(as) 11.9551 Tj
+-426 TJm
+(much) 23.9102 Tj
+-426 TJm
+(as) 11.9551 Tj
+-426 TJm
+(possible,) 53.798 Tj
+-426 TJm
+(but) 17.9327 Tj
+-426 TJm
+(do) 11.9551 Tj
+-426 TJm
+(not) 17.9327 Tj
+-426 TJm
+(accept) 35.8654 Tj
+-426 TJm
+(any) 17.9327 Tj
+-426 TJm
+(more) 23.9102 Tj
+-426 TJm
+(input.) 35.8654 Tj
+98.488 556.214 Td
+(Next) 23.9102 Tj
+-426 TJm
+(state) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(FLUSHING) 47.8205 Tj
+98.488 544.259 Td
+(Return) 35.8654 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_FLUSH_OK) 65.7532 Tj
+90 520.349 Td
+(RUNNING/BZ_FINISH) 101.6185 Tj
+98.488 508.393 Td
+(Remember) 47.8205 Tj
+-426 TJm
+(current) 41.8429 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(next_in.) 47.8205 Tj
+-426 TJm
+(Compress) 47.8205 Tj
+-426 TJm
+(from) 23.9102 Tj
+-426 TJm
+(next_in) 41.8429 Tj
+98.488 496.438 Td
+(to) 11.9551 Tj
+-426 TJm
+(next_out) 47.8205 Tj
+-426 TJm
+(as) 11.9551 Tj
+-426 TJm
+(much) 23.9102 Tj
+-426 TJm
+(as) 11.9551 Tj
+-426 TJm
+(possible,) 53.798 Tj
+-426 TJm
+(but) 17.9327 Tj
+-426 TJm
+(do) 11.9551 Tj
+-426 TJm
+(not) 17.9327 Tj
+-426 TJm
+(accept) 35.8654 Tj
+-426 TJm
+(any) 17.9327 Tj
+-426 TJm
+(more) 23.9102 Tj
+-426 TJm
+(input.) 35.8654 Tj
+98.488 484.483 Td
+(Next) 23.9102 Tj
+-426 TJm
+(state) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(FINISHING) 53.798 Tj
+98.488 472.528 Td
+(Return) 35.8654 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_FINISH_OK) 71.7307 Tj
+90 448.618 Td
+(FLUSHING/BZ_FLUSH) 101.6185 Tj
+98.488 436.662 Td
+(Compress) 47.8205 Tj
+-426 TJm
+(from) 23.9102 Tj
+-426 TJm
+(next_in) 41.8429 Tj
+-426 TJm
+(to) 11.9551 Tj
+-426 TJm
+(next_out) 47.8205 Tj
+-426 TJm
+(as) 11.9551 Tj
+-426 TJm
+(much) 23.9102 Tj
+-426 TJm
+(as) 11.9551 Tj
+-426 TJm
+(possible,) 53.798 Tj
+98.488 424.707 Td
+(but) 17.9327 Tj
+-426 TJm
+(do) 11.9551 Tj
+-426 TJm
+(not) 17.9327 Tj
+-426 TJm
+(accept) 35.8654 Tj
+-426 TJm
+(any) 17.9327 Tj
+-426 TJm
+(more) 23.9102 Tj
+-426 TJm
+(input.) 35.8654 Tj
+98.488 412.752 Td
+(If) 11.9551 Tj
+-426 TJm
+(all) 17.9327 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(existing) 47.8205 Tj
+-426 TJm
+(input) 29.8878 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(used) 23.9102 Tj
+-426 TJm
+(up) 11.9551 Tj
+-426 TJm
+(and) 17.9327 Tj
+-426 TJm
+(all) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+98.488 400.797 Td
+(output) 35.8654 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(removed) 41.8429 Tj
+106.976 388.842 Td
+(Next) 23.9102 Tj
+-426 TJm
+(state) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(RUNNING;) 47.8205 Tj
+-426 TJm
+(Return) 35.8654 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_RUN_OK) 53.798 Tj
+98.488 376.887 Td
+(else) 23.9102 Tj
+106.976 364.931 Td
+(Next) 23.9102 Tj
+-426 TJm
+(state) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(FLUSHING;) 53.798 Tj
+-426 TJm
+(Return) 35.8654 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_FLUSH_OK) 65.7532 Tj
+90 341.021 Td
+(FLUSHING/other) 83.6858 Tj
+98.488 329.066 Td
+(Illegal.) 47.8205 Tj
+98.488 317.111 Td
+(Return) 35.8654 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+90 293.2 Td
+(FINISHING/BZ_FINISH) 113.5736 Tj
+98.488 281.245 Td
+(Compress) 47.8205 Tj
+-426 TJm
+(from) 23.9102 Tj
+-426 TJm
+(next_in) 41.8429 Tj
+-426 TJm
+(to) 11.9551 Tj
+-426 TJm
+(next_out) 47.8205 Tj
+-426 TJm
+(as) 11.9551 Tj
+-426 TJm
+(much) 23.9102 Tj
+-426 TJm
+(as) 11.9551 Tj
+-426 TJm
+(possible,) 53.798 Tj
+98.488 269.29 Td
+(but) 17.9327 Tj
+-426 TJm
+(to) 11.9551 Tj
+-426 TJm
+(not) 17.9327 Tj
+-426 TJm
+(accept) 35.8654 Tj
+-426 TJm
+(any) 17.9327 Tj
+-426 TJm
+(more) 23.9102 Tj
+-426 TJm
+(input.) 35.8654 Tj
+98.488 257.335 Td
+(If) 11.9551 Tj
+-426 TJm
+(all) 17.9327 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(existing) 47.8205 Tj
+-426 TJm
+(input) 29.8878 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(used) 23.9102 Tj
+-426 TJm
+(up) 11.9551 Tj
+-426 TJm
+(and) 17.9327 Tj
+-426 TJm
+(all) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+98.488 245.38 Td
+(output) 35.8654 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(removed) 41.8429 Tj
+106.976 233.424 Td
+(Next) 23.9102 Tj
+-426 TJm
+(state) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(IDLE;) 29.8878 Tj
+-426 TJm
+(Return) 35.8654 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_STREAM_END) 77.7083 Tj
+98.488 221.469 Td
+(else) 23.9102 Tj
+106.976 209.514 Td
+(Next) 23.9102 Tj
+-426 TJm
+(state) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(FINISHING;) 59.7756 Tj
+-426 TJm
+(Return) 35.8654 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_FINISH_OK) 71.7307 Tj
+90 185.604 Td
+(FINISHING/other) 89.6634 Tj
+98.488 173.649 Td
+(Illegal.) 47.8205 Tj
+98.488 161.693 Td
+(Return) 35.8654 Tj
+-426 TJm
+(value) 29.8878 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 124.234 Td
+/F122_0 9.9626 Tf
+(That) 18.2614 Tj
+-250 TJm
+(still) 14.9539 Tj
+-250 TJm
+(looks) 21.589 Tj
+-250 TJm
+(complicated?) 53.1206 Tj
+-620 TJm
+(W) 9.4047 Tj
+80 TJm
+(ell,) 12.4533 Tj
+-250 TJm
+(f) 3.3175 Tj
+10 TJm
+(air) 10.5105 Tj
+-250 TJm
+(enough.) 31.8205 Tj
+-620 TJm
+(The) 15.4918 Tj
+-250 TJm
+(usual) 21.031 Tj
+-250 TJm
+(sequence) 36.5129 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(calls) 18.2614 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(compressing) 50.3609 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(load) 17.1556 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(is:) 9.4147 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 92.353 Td
+(1.) 7.472 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-510 TJm
+(Get) 14.386 Tj
+-250 TJm
+(started) 26.5603 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+153.175 92.353 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+260.771 92.353 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(15) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 16 19
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+74.491 710.037 Td
+/F122_0 9.9626 Tf
+(2.) 7.472 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-510 TJm
+(Sho) 15.5018 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-267 TJm
+(data) 16.5977 Tj
+-268 TJm
+(in) 7.7509 Tj
+-267 TJm
+(and) 14.386 Tj
+-268 TJm
+(shlurp) 24.9065 Tj
+-267 TJm
+(out) 12.7322 Tj
+-268 TJm
+(its) 9.4147 Tj
+-267 TJm
+(compressed) 47.0334 Tj
+-267 TJm
+(form) 19.3673 Tj
+-268 TJm
+(using) 21.589 Tj
+-267 TJm
+(zero) 17.1456 Tj
+-268 TJm
+(or) 8.2988 Tj
+-267 TJm
+(more) 20.4731 Tj
+-268 TJm
+(call) 14.386 Tj
+1 TJm
+(s) 3.8755 Tj
+-268 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+400.64 710.037 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+486.991 710.037 Td
+/F122_0 9.9626 Tf
+(with) 17.7135 Tj
+-267 TJm
+(action) 24.3486 Tj
+-268 TJm
+(=) 5.6189 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+83.955 698.082 Td
+/F124_0 9.9626 Tf
+(BZ_RUN) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+119.821 698.082 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 676.164 Td
+(3.) 7.472 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-510 TJm
+(Finish) 24.9165 Tj
+-276 TJm
+(up.) 12.4533 Tj
+-387 TJm
+(Repeatedly) 44.8217 Tj
+-276 TJm
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+195.722 676.164 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+282.156 676.164 Td
+/F122_0 9.9626 Tf
+(with) 17.7135 Tj
+-276 TJm
+(action) 24.3486 Tj
+-276 TJm
+(=) 5.6189 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+338.079 676.164 Td
+/F124_0 9.9626 Tf
+(BZ_FINISH) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+391.877 676.164 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-276 TJm
+(cop) 14.386 Tj
+10 TJm
+(ying) 17.7135 Tj
+-276 TJm
+(out) 12.7322 Tj
+-275 TJm
+(the) 12.1743 Tj
+-276 TJm
+(compressed) 47.0334 Tj
+-276 TJm
+(output,) 27.9551 Tj
+83.955 664.209 Td
+(until) 18.2714 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.717 664.209 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+184.916 664.209 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(returned.) 35.686 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 642.291 Td
+(4.) 7.472 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-510 TJm
+(Close) 22.6948 Tj
+-250 TJm
+(up) 9.9626 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(go) 9.9626 Tj
+-250 TJm
+(home.) 24.6275 Tj
+-620 TJm
+(Call) 16.6077 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.914 642.291 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressEnd) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.533 642.291 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 620.374 Td
+(If) 6.6351 Tj
+-269 TJm
+(the) 12.1743 Tj
+-270 TJm
+(data) 16.5977 Tj
+-269 TJm
+(you) 14.9439 Tj
+-270 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-269 TJm
+(to) 7.7509 Tj
+-270 TJm
+(compress) 37.6287 Tj
+-269 TJm
+(\002ts) 12.1843 Tj
+-270 TJm
+(into) 15.5018 Tj
+-269 TJm
+(your) 18.2614 Tj
+-270 TJm
+(input) 20.4831 Tj
+-269 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-270 TJm
+(all) 9.9626 Tj
+-269 TJm
+(at) 7.193 Tj
+-270 TJm
+(once,) 21.3 Tj
+-274 TJm
+(you) 14.9439 Tj
+-269 TJm
+(can) 13.8281 Tj
+-270 TJm
+(skip) 16.6077 Tj
+-269 TJm
+(the) 12.1743 Tj
+-270 TJm
+(calls) 18.2614 Tj
+-269 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+456.314 620.374 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+72 608.418 Td
+(\() 5.9776 Tj
+-600 TJm
+(...,) 23.9102 Tj
+-600 TJm
+(BZ_RUN) 35.8654 Tj
+-600 TJm
+(\)) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+164.154 608.418 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+-250 TJm
+(just) 14.396 Tj
+-250 TJm
+(do) 9.9626 Tj
+-250 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+225.036 608.418 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+-600 TJm
+(\() 5.9776 Tj
+-600 TJm
+(...,) 23.9102 Tj
+-600 TJm
+(BZ_FINISH) 53.798 Tj
+-600 TJm
+(\)) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+424.786 608.418 Td
+/F122_0 9.9626 Tf
+(calls.) 20.7521 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 586.501 Td
+(All) 12.7322 Tj
+-278 TJm
+(required) 33.1954 Tj
+-277 TJm
+(memory) 33.2053 Tj
+-278 TJm
+(is) 6.6451 Tj
+-277 TJm
+(allocated) 35.965 Tj
+-278 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+220.295 586.501 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+327.891 586.501 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-785 TJm
+(The) 15.4918 Tj
+-278 TJm
+(compression) 50.3609 Tj
+-277 TJm
+(library) 26.5603 Tj
+-278 TJm
+(can) 13.8281 Tj
+-277 TJm
+(accept) 25.4445 Tj
+-278 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-277 TJm
+(data) 16.5977 Tj
+-278 TJm
+(at) 7.193 Tj
+-278 TJm
+(all) 9.9626 Tj
+72 574.545 Td
+(\(ob) 13.2801 Tj
+15 TJm
+(viously\).) 35.1481 Tj
+-612 TJm
+(So) 10.5205 Tj
+-238 TJm
+(you) 14.9439 Tj
+-237 TJm
+(shouldn') 34.8691 Tj
+18 TJm
+(t) 2.7696 Tj
+-238 TJm
+(get) 12.1743 Tj
+-238 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-237 TJm
+(error) 19.3573 Tj
+-238 TJm
+(return) 23.7907 Tj
+-238 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues) 20.4731 Tj
+-238 TJm
+(from) 19.3673 Tj
+-237 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+339.287 574.545 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+425.342 574.545 Td
+/F122_0 9.9626 Tf
+(calls.) 20.7521 Tj
+-612 TJm
+(If) 6.6351 Tj
+-237 TJm
+(you) 14.9439 Tj
+-238 TJm
+(do,) 12.4533 Tj
+-240 TJm
+(the) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-238 TJm
+(will) 15.5018 Tj
+-238 TJm
+(be) 9.4047 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 562.59 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+173.619 562.59 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(indicate) 31.5416 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug) 9.9626 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(your) 18.2614 Tj
+-250 TJm
+(programming.) 56.727 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 540.672 Td
+(T) 6.0871 Tj
+35 TJm
+(ri) 6.0871 Tj
+25 TJm
+(vial) 14.9439 Tj
+-250 TJm
+(other) 20.4731 Tj
+-250 TJm
+(possible) 32.6574 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 501.654] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 529.151 Td
+/F124_0 9.9626 Tf
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 517.196 Td
+(if) 11.9551 Tj
+-426 TJm
+(strm) 23.9102 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL,) 29.8878 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(strm->s) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 471.033 Td
+/F116_0 17.2154 Tf
+(3.3.3.) 43.0729 Tj
+-278 TJm
+(BZ2_bzCompressEnd) 177.9212 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 442.563] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 458.104 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzCompressEnd) 101.6185 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(bz_stream) 53.798 Tj
+286.303 456.361 Td
+(*) 5.9776 Tj
+292.281 458.104 Td
+(strm) 23.9102 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 420.645 Td
+/F122_0 9.9626 Tf
+(Releases) 34.8591 Tj
+-250 TJm
+(all) 9.9626 Tj
+-250 TJm
+(memory) 33.2053 Tj
+-250 TJm
+(associated) 40.9463 Tj
+-250 TJm
+(with) 17.7135 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(compression) 50.3609 Tj
+-250 TJm
+(stream.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 398.727 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 361.766] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 389.263 Td
+/F124_0 9.9626 Tf
+(BZ_PARAM_ERROR) 83.6858 Tj
+-852 TJm
+(if) 11.9551 Tj
+-426 TJm
+(strm) 23.9102 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(strm->s) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+90 377.307 Td
+(BZ_OK) 29.8878 Tj
+-4686 TJm
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 331.145 Td
+/F116_0 17.2154 Tf
+(3.3.4.) 43.0729 Tj
+-278 TJm
+(BZ2_bzDecompressInit) 190.3679 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 302.674] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 318.216 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzDecompressInit) 119.5512 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(bz_stream) 53.798 Tj
+304.236 316.473 Td
+(*) 5.9776 Tj
+310.214 318.216 Td
+(strm,) 29.8878 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(verbosity,) 59.7756 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(small) 29.8878 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 280.757 Td
+/F122_0 9.9626 Tf
+(Prepares) 34.3012 Tj
+-351 TJm
+(for) 11.6164 Tj
+-351 TJm
+(decompression.) 62.2563 Tj
+-1228 TJm
+(As) 11.0684 Tj
+-351 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+235.177 280.757 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+342.773 280.757 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-377 TJm
+(a) 4.4234 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+356.937 280.757 Td
+/F124_0 9.9626 Tf
+(bz_stream) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+414.235 280.757 Td
+/F122_0 9.9626 Tf
+(record) 25.4445 Tj
+-351 TJm
+(should) 26.5703 Tj
+-351 TJm
+(be) 9.4047 Tj
+-352 TJm
+(allocated) 35.965 Tj
+-351 TJm
+(and) 14.386 Tj
+72 268.801 Td
+(initialised) 39.3025 Tj
+-306 TJm
+(before) 25.4445 Tj
+-305 TJm
+(the) 12.1743 Tj
+-306 TJm
+(call.) 16.8766 Tj
+-953 TJm
+(Fields) 24.3586 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+211.833 268.801 Td
+/F124_0 9.9626 Tf
+(bzalloc) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+253.676 268.801 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+259.35 268.801 Td
+/F124_0 9.9626 Tf
+(bzfree) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+298.26 268.801 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+315.69 268.801 Td
+/F124_0 9.9626 Tf
+(opaque) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+354.6 268.801 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-306 TJm
+(be) 9.4047 Tj
+-305 TJm
+(set) 11.0684 Tj
+-306 TJm
+(if) 6.0871 Tj
+-305 TJm
+(a) 4.4234 Tj
+-306 TJm
+(custom) 28.782 Tj
+-305 TJm
+(memory) 33.2053 Tj
+-306 TJm
+(allocator) 34.8591 Tj
+-306 TJm
+(is) 6.6451 Tj
+72 256.846 Td
+(required,) 35.686 Tj
+-350 TJm
+(or) 8.2988 Tj
+-331 TJm
+(made) 21.579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+147.635 256.846 Td
+/F124_0 9.9626 Tf
+(NULL) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+174.836 256.846 Td
+/F122_0 9.9626 Tf
+(for) 11.6164 Tj
+-330 TJm
+(the) 12.1743 Tj
+-331 TJm
+(normal) 28.224 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+236.722 256.846 Td
+/F124_0 9.9626 Tf
+(malloc) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+275.878 256.846 Td
+/F122_0 9.9626 Tf
+(/) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+281.938 256.846 Td
+/F124_0 9.9626 Tf
+(free) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+309.139 256.846 Td
+/F122_0 9.9626 Tf
+(routines.) 34.5901 Tj
+-1102 TJm
+(Upon) 22.1369 Tj
+-330 TJm
+(return,) 26.2813 Tj
+-350 TJm
+(the) 12.1743 Tj
+-331 TJm
+(internal) 30.4357 Tj
+-330 TJm
+(state) 18.2614 Tj
+-330 TJm
+(will) 15.5018 Tj
+-330 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-331 TJm
+(been) 18.8094 Tj
+72 244.891 Td
+(initialised,) 41.7931 Tj
+-250 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+133.16 244.891 Td
+/F124_0 9.9626 Tf
+(total_in) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+183.471 244.891 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.348 244.891 Td
+/F124_0 9.9626 Tf
+(total_out) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+256.637 244.891 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(zero.) 19.6363 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 222.973 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(meaning) 34.3112 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(parameter) 39.8305 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+192.756 222.973 Td
+/F124_0 9.9626 Tf
+(verbosity) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+246.554 222.973 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(see) 12.7222 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+266.748 222.973 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+374.345 222.973 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 201.055 Td
+(If) 6.6351 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.497 201.055 Td
+/F124_0 9.9626 Tf
+(small) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+114.248 201.055 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-287 TJm
+(nonzero,) 34.5802 Tj
+-297 TJm
+(the) 12.1743 Tj
+-287 TJm
+(library) 26.5603 Tj
+-288 TJm
+(wil) 12.7322 Tj
+1 TJm
+(l) 2.7696 Tj
+-288 TJm
+(use) 13.2801 Tj
+-287 TJm
+(an) 9.4047 Tj
+-287 TJm
+(alternati) 32.6474 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-288 TJm
+(decompression) 59.7656 Tj
+-287 TJm
+(algorithm) 38.7446 Tj
+-287 TJm
+(which) 24.3486 Tj
+-288 TJm
+(uses) 17.1556 Tj
+-287 TJm
+(less) 14.9439 Tj
+-287 TJm
+(memory) 33.2053 Tj
+-287 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-288 TJm
+(at) 7.193 Tj
+-287 TJm
+(the) 12.1743 Tj
+72 189.1 Td
+(cost) 16.0497 Tj
+-289 TJm
+(of) 8.2988 Tj
+-290 TJm
+(decompressing) 59.7656 Tj
+-289 TJm
+(more) 20.4731 Tj
+-289 TJm
+(slo) 11.6264 Tj
+25 TJm
+(wly) 14.9439 Tj
+-290 TJm
+(\(roughly) 34.3112 Tj
+-289 TJm
+(speaking,) 37.9077 Tj
+-299 TJm
+(half) 15.4918 Tj
+-290 TJm
+(the) 12.1743 Tj
+-289 TJm
+(speed,) 25.1755 Tj
+-299 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-289 TJm
+(the) 12.1743 Tj
+-290 TJm
+(maximum) 40.4083 Tj
+-289 TJm
+(memory) 33.2053 Tj
+-289 TJm
+(requirement) 48.1393 Tj
+-290 TJm
+(drops) 22.1369 Tj
+72 177.145 Td
+(to) 7.7509 Tj
+-250 TJm
+(around) 27.6661 Tj
+-250 TJm
+(2300k\).) 30.7147 Tj
+-620 TJm
+(See) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+(Ho) 12.1743 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(bzip2) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+([2]) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(more) 20.4731 Tj
+-250 TJm
+(information) 47.0434 Tj
+-250 TJm
+(on) 9.9626 Tj
+-250 TJm
+(memory) 33.2053 Tj
+-250 TJm
+(management.) 53.3995 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 155.227 Td
+(Note) 19.3673 Tj
+-289 TJm
+(that) 14.9439 Tj
+-290 TJm
+(the) 12.1743 Tj
+-289 TJm
+(amount) 29.8878 Tj
+-289 TJm
+(of) 8.2988 Tj
+-289 TJm
+(memory) 33.2053 Tj
+-290 TJm
+(needed) 28.2141 Tj
+-289 TJm
+(to) 7.7509 Tj
+-289 TJm
+(decompress) 47.0334 Tj
+-289 TJm
+(a) 4.4234 Tj
+-290 TJm
+(stream) 26.5603 Tj
+-289 TJm
+(cannot) 26.5603 Tj
+-289 TJm
+(be) 9.4047 Tj
+-289 TJm
+(determined) 44.8217 Tj
+-290 TJm
+(until) 18.2714 Tj
+-289 TJm
+(the) 12.1743 Tj
+-289 TJm
+(stream') 29.8778 Tj
+55 TJm
+(s) 3.8755 Tj
+-289 TJm
+(header) 26.5503 Tj
+-290 TJm
+(has) 13.2801 Tj
+72 143.272 Td
+(been) 18.8094 Tj
+-342 TJm
+(read,) 19.6363 Tj
+-366 TJm
+(so) 8.8568 Tj
+-342 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-342 TJm
+(if) 6.0871 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.081 143.272 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompressInit) 119.5512 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+284.043 143.272 Td
+/F122_0 9.9626 Tf
+(succeeds,) 37.8977 Tj
+-365 TJm
+(a) 4.4234 Tj
+-343 TJm
+(subsequent) 44.2738 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+381.098 143.272 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+480.149 143.272 Td
+/F122_0 9.9626 Tf
+(could) 22.1369 Tj
+-342 TJm
+(f) 3.3175 Tj
+10 TJm
+(ail) 9.9626 Tj
+-343 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 131.317 Td
+/F124_0 9.9626 Tf
+(BZ_MEM_ERROR) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.731 131.317 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 109.399 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(16) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 17 20
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 624.359] cm
+0 0 468 95.641 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(BZ_CONFIG_ERROR) 89.6634 Tj
+98.488 699.676 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(library) 41.8429 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(mis-compiled) 71.7307 Tj
+90 687.721 Td
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 675.766 Td
+(if) 11.9551 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(small) 29.8878 Tj
+-426 TJm
+(!=) 11.9551 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(&&) 11.9551 Tj
+-426 TJm
+(small) 29.8878 Tj
+-426 TJm
+(!=) 11.9551 Tj
+-426 TJm
+(1) 5.9776 Tj
+-426 TJm
+(\)) 5.9776 Tj
+98.488 663.811 Td
+(or) 11.9551 Tj
+-426 TJm
+(\(verbosity) 59.7756 Tj
+-426 TJm
+(<;) 11.9551 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(||) 11.9551 Tj
+-426 TJm
+(verbosity) 53.798 Tj
+-426 TJm
+(>) 5.9776 Tj
+-426 TJm
+(4\)) 11.9551 Tj
+90 651.856 Td
+(BZ_MEM_ERROR) 71.7307 Tj
+98.488 639.9 Td
+(if) 11.9551 Tj
+-426 TJm
+(insufficient) 71.7307 Tj
+-426 TJm
+(memory) 35.8654 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(available) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 602.441 Td
+/F122_0 9.9626 Tf
+(Allo) 17.7135 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-250 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-250 TJm
+(actions:) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 553.524] cm
+0 0 468 47.821 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 592.976 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+98.488 581.021 Td
+(if) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(returned) 47.8205 Tj
+98.488 569.066 Td
+(no) 11.9551 Tj
+-426 TJm
+(specific) 47.8205 Tj
+-426 TJm
+(action) 35.8654 Tj
+-426 TJm
+(required) 47.8205 Tj
+-426 TJm
+(in) 11.9551 Tj
+-426 TJm
+(case) 23.9102 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(error) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 522.903 Td
+/F116_0 17.2154 Tf
+(3.3.5.) 43.0729 Tj
+-278 TJm
+(BZ2_bzDecompress) 164.5448 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 494.433] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 509.975 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzDecompress) 95.641 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(bz_stream) 53.798 Tj
+280.326 508.231 Td
+(*) 5.9776 Tj
+286.303 509.975 Td
+(strm) 23.9102 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 472.515 Td
+/F122_0 9.9626 Tf
+(Pro) 13.8381 Tj
+15 TJm
+(vides) 21.031 Tj
+-301 TJm
+(more) 20.4731 Tj
+-302 TJm
+(input) 20.4831 Tj
+-301 TJm
+(and/out) 29.8878 Tj
+-302 TJm
+(output) 25.4644 Tj
+-301 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-301 TJm
+(space) 22.1269 Tj
+-302 TJm
+(for) 11.6164 Tj
+-301 TJm
+(the) 12.1743 Tj
+-302 TJm
+(library) 26.5603 Tj
+65 TJm
+(.) 2.4907 Tj
+-928 TJm
+(The) 15.4918 Tj
+-301 TJm
+(caller) 22.1269 Tj
+-302 TJm
+(maintains) 38.7446 Tj
+-301 TJm
+(input) 20.4831 Tj
+-302 TJm
+(and) 14.386 Tj
+-301 TJm
+(output) 25.4644 Tj
+-301 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fers,) 17.4246 Tj
+-315 TJm
+(and) 14.386 Tj
+72 460.56 Td
+(uses) 17.1556 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+91.646 460.56 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.778 460.56 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(transfer) 30.4258 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(between) 33.1954 Tj
+-250 TJm
+(them.) 22.4159 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 438.642 Td
+(Before) 27.1082 Tj
+-498 TJm
+(each) 18.2515 Tj
+-499 TJm
+(call) 14.386 Tj
+-498 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.356 438.642 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+254.997 438.642 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+263.071 438.642 Td
+/F124_0 9.9626 Tf
+(next_in) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+309.879 438.642 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-498 TJm
+(point) 20.4831 Tj
+-499 TJm
+(at) 7.193 Tj
+-498 TJm
+(the) 12.1743 Tj
+-498 TJm
+(compressed) 47.0334 Tj
+-499 TJm
+(data,) 19.0883 Tj
+-560 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+492.179 438.642 Td
+/F124_0 9.9626 Tf
+(avail_in) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 426.687 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-308 TJm
+(indicate) 31.5416 Tj
+-308 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-309 TJm
+(man) 17.1556 Tj
+15 TJm
+(y) 4.9813 Tj
+-308 TJm
+(bytes) 21.031 Tj
+-308 TJm
+(the) 12.1743 Tj
+-308 TJm
+(library) 26.5603 Tj
+-308 TJm
+(may) 17.1556 Tj
+-309 TJm
+(read.) 19.6363 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.955 426.687 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+393.667 426.687 Td
+/F122_0 9.9626 Tf
+(updates) 30.4357 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+427.173 426.687 Td
+/F124_0 9.9626 Tf
+(next_in) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+469.016 426.687 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+474.723 426.687 Td
+/F124_0 9.9626 Tf
+(avail_in) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+525.614 426.687 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 414.732 Td
+/F124_0 9.9626 Tf
+(total_in) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+122.311 414.732 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(re\003ect) 24.8965 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(number) 30.4357 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(bytes) 21.031 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(has) 13.2801 Tj
+-250 TJm
+(read.) 19.6363 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 392.814 Td
+(Similarly) 37.0908 Tj
+65 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+113.799 392.814 Td
+/F124_0 9.9626 Tf
+(next_out) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+164.41 392.814 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-280 TJm
+(point) 20.4831 Tj
+-280 TJm
+(to) 7.7509 Tj
+-280 TJm
+(a) 4.4234 Tj
+-280 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-281 TJm
+(i) 2.7696 Tj
+1 TJm
+(n) 4.9813 Tj
+-281 TJm
+(which) 24.3486 Tj
+-280 TJm
+(the) 12.1743 Tj
+-280 TJm
+(uncompressed) 56.996 Tj
+-280 TJm
+(output) 25.4644 Tj
+-280 TJm
+(is) 6.6451 Tj
+-280 TJm
+(to) 7.7509 Tj
+-280 TJm
+(be) 9.4047 Tj
+-280 TJm
+(placed,) 28.493 Tj
+-288 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+486.202 392.814 Td
+/F124_0 9.9626 Tf
+(avail_out) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 380.859 Td
+/F122_0 9.9626 Tf
+(indicating) 39.8504 Tj
+-525 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-524 TJm
+(much) 22.1369 Tj
+-525 TJm
+(output) 25.4644 Tj
+-524 TJm
+(space) 22.1269 Tj
+-525 TJm
+(is) 6.6451 Tj
+-525 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+25 TJm
+(ailable.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+285.792 380.859 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+374.705 380.859 Td
+/F122_0 9.9626 Tf
+(updates) 30.4357 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+410.367 380.859 Td
+/F124_0 9.9626 Tf
+(next_out) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+458.188 380.859 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+466.589 380.859 Td
+/F124_0 9.9626 Tf
+(avail_out) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+525.614 380.859 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 368.904 Td
+/F124_0 9.9626 Tf
+(total_out) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+128.289 368.904 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(re\003ect) 24.8965 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(number) 30.4357 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(bytes) 21.031 Tj
+-250 TJm
+(output.) 27.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 346.986 Td
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-320 TJm
+(may) 17.1556 Tj
+-321 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vide) 17.1556 Tj
+-320 TJm
+(and) 14.386 Tj
+-321 TJm
+(remo) 20.4731 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-320 TJm
+(as) 8.2988 Tj
+-321 TJm
+(little) 18.2714 Tj
+-320 TJm
+(or) 8.2988 Tj
+-320 TJm
+(as) 8.2988 Tj
+-321 TJm
+(much) 22.1369 Tj
+-320 TJm
+(data) 16.5977 Tj
+-321 TJm
+(as) 8.2988 Tj
+-320 TJm
+(you) 14.9439 Tj
+-321 TJm
+(lik) 10.5205 Tj
+10 TJm
+(e) 4.4234 Tj
+-320 TJm
+(on) 9.9626 Tj
+-320 TJm
+(each) 18.2515 Tj
+-321 TJm
+(call) 14.386 Tj
+-320 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+407.816 346.986 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+503.457 346.986 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1043 TJm
+(In) 8.2988 Tj
+-320 TJm
+(the) 12.1743 Tj
+72 335.031 Td
+(limit,) 21.32 Tj
+-295 TJm
+(it) 5.5392 Tj
+-286 TJm
+(is) 6.6451 Tj
+-287 TJm
+(acceptable) 42.0422 Tj
+-286 TJm
+(to) 7.7509 Tj
+-286 TJm
+(supply) 26.5703 Tj
+-286 TJm
+(and) 14.386 Tj
+-287 TJm
+(remo) 20.4731 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-286 TJm
+(data) 16.5977 Tj
+-286 TJm
+(one) 14.386 Tj
+-286 TJm
+(byte) 17.1556 Tj
+-287 TJm
+(at) 7.193 Tj
+-286 TJm
+(a) 4.4234 Tj
+-286 TJm
+(time,) 20.2042 Tj
+-295 TJm
+(although) 34.8691 Tj
+-286 TJm
+(this) 14.396 Tj
+-287 TJm
+(w) 7.193 Tj
+10 TJm
+(ould) 17.7135 Tj
+-286 TJm
+(be) 9.4047 Tj
+-286 TJm
+(terribly) 29.3299 Tj
+-286 TJm
+(inef) 15.4918 Tj
+25 TJm
+(\002cient.) 27.3972 Tj
+-838 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+72 323.076 Td
+(should) 26.5703 Tj
+-250 TJm
+(al) 7.193 Tj
+10 TJm
+(w) 7.193 Tj
+10 TJm
+(ays) 13.2801 Tj
+-250 TJm
+(ensure) 26.0024 Tj
+-250 TJm
+(that) 14.9439 Tj
+-250 TJm
+(at) 7.193 Tj
+-250 TJm
+(least) 18.2614 Tj
+-250 TJm
+(one) 14.386 Tj
+-250 TJm
+(byte) 17.1556 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(output) 25.4644 Tj
+-250 TJm
+(space) 22.1269 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+25 TJm
+(ailable) 26.5603 Tj
+-250 TJm
+(at) 7.193 Tj
+-250 TJm
+(each) 18.2515 Tj
+-250 TJm
+(call.) 16.8766 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 301.158 Td
+(Use) 15.4918 Tj
+-250 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+100.772 301.158 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+198.904 301.158 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(simpler) 29.8878 Tj
+-250 TJm
+(than) 17.1556 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+260.064 301.158 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+343.75 301.158 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 279.24 Td
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-346 TJm
+(should) 26.5703 Tj
+-347 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vide) 17.1556 Tj
+-346 TJm
+(input) 20.4831 Tj
+-346 TJm
+(and) 14.386 Tj
+-346 TJm
+(remo) 20.4731 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-347 TJm
+(output) 25.4644 Tj
+-346 TJm
+(as) 8.2988 Tj
+-346 TJm
+(described) 38.1767 Tj
+-346 TJm
+(abo) 14.386 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e,) 6.914 Tj
+-371 TJm
+(and) 14.386 Tj
+-346 TJm
+(repeatedly) 41.4942 Tj
+-346 TJm
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+422.638 279.24 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+521.729 279.24 Td
+/F122_0 9.9626 Tf
+(until) 18.2714 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 267.285 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+152.314 267.285 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-262 TJm
+(returned.) 35.686 Tj
+-344 TJm
+(Appearance) 47.5714 Tj
+-262 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+261.767 267.285 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+342.081 267.285 Td
+/F122_0 9.9626 Tf
+(denotes) 30.4357 Tj
+-262 TJm
+(that) 14.9439 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.672 267.285 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+490.919 267.285 Td
+/F122_0 9.9626 Tf
+(has) 13.2801 Tj
+-262 TJm
+(detected) 33.1954 Tj
+72 255.33 Td
+(the) 12.1743 Tj
+-212 TJm
+(logical) 27.1182 Tj
+-212 TJm
+(end) 14.386 Tj
+-211 TJm
+(of) 8.2988 Tj
+-212 TJm
+(the) 12.1743 Tj
+-212 TJm
+(compressed) 47.0334 Tj
+-212 TJm
+(stream.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+237.858 255.33 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+335.609 255.33 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-212 TJm
+(not) 12.7322 Tj
+-212 TJm
+(produce) 32.0895 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+402.263 255.33 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+482.082 255.33 Td
+/F122_0 9.9626 Tf
+(until) 18.2714 Tj
+-212 TJm
+(all) 9.9626 Tj
+-212 TJm
+(output) 25.4644 Tj
+72 243.375 Td
+(data) 16.5977 Tj
+-256 TJm
+(has) 13.2801 Tj
+-256 TJm
+(been) 18.8094 Tj
+-255 TJm
+(placed) 26.0024 Tj
+-256 TJm
+(into) 15.5018 Tj
+-256 TJm
+(the) 12.1743 Tj
+-256 TJm
+(output) 25.4644 Tj
+-256 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+40 TJm
+(,) 2.4907 Tj
+-257 TJm
+(so) 8.8568 Tj
+-256 TJm
+(once) 18.8094 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+278.979 243.375 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+359.236 243.375 Td
+/F122_0 9.9626 Tf
+(appears,) 32.9164 Tj
+-257 TJm
+(you) 14.9439 Tj
+-256 TJm
+(are) 12.1643 Tj
+-256 TJm
+(guaranteed) 43.7059 Tj
+-256 TJm
+(to) 7.7509 Tj
+-255 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-256 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+25 TJm
+(ailable) 26.5603 Tj
+72 231.419 Td
+(all) 9.9626 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(decompressed) 56.4381 Tj
+-250 TJm
+(output,) 27.9551 Tj
+-250 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+205.369 231.419 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompressEnd) 113.5736 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+321.433 231.419 Td
+/F122_0 9.9626 Tf
+(can) 13.8281 Tj
+-250 TJm
+(safely) 23.7907 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(called.) 26.2813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 209.502 Td
+(If) 6.6351 Tj
+-250 TJm
+(case) 17.1456 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(an) 9.4047 Tj
+-250 TJm
+(error) 19.3573 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue,) 19.0883 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(should) 26.5703 Tj
+-250 TJm
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+261.259 209.502 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompressEnd) 113.5736 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+377.323 209.502 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(clean) 21.0211 Tj
+-250 TJm
+(up) 9.9626 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(release) 27.6562 Tj
+-250 TJm
+(memory) 33.2053 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 187.584 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(17) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 18 21
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 540.672] cm
+0 0 468 179.328 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 699.676 Td
+(if) 11.9551 Tj
+-426 TJm
+(strm) 23.9102 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(strm->s) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+98.488 687.721 Td
+(or) 11.9551 Tj
+-426 TJm
+(strm->avail_out) 89.6634 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(1) 5.9776 Tj
+90 675.766 Td
+(BZ_DATA_ERROR) 77.7083 Tj
+98.488 663.811 Td
+(if) 11.9551 Tj
+-426 TJm
+(a) 5.9776 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(integrity) 53.798 Tj
+-426 TJm
+(error) 29.8878 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(detected) 47.8205 Tj
+-426 TJm
+(in) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(stream) 35.8654 Tj
+90 651.856 Td
+(BZ_DATA_ERROR_MAGIC) 113.5736 Tj
+98.488 639.9 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(stream) 35.8654 Tj
+-426 TJm
+(doesn't) 41.8429 Tj
+-426 TJm
+(begin) 29.8878 Tj
+-426 TJm
+(with) 23.9102 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(right) 29.8878 Tj
+-426 TJm
+(magic) 29.8878 Tj
+-426 TJm
+(bytes) 29.8878 Tj
+90 627.945 Td
+(BZ_MEM_ERROR) 71.7307 Tj
+98.488 615.99 Td
+(if) 11.9551 Tj
+-426 TJm
+(there) 29.8878 Tj
+-426 TJm
+(wasn't) 35.8654 Tj
+-426 TJm
+(enough) 35.8654 Tj
+-426 TJm
+(memory) 35.8654 Tj
+-426 TJm
+(available) 53.798 Tj
+90 604.035 Td
+(BZ_STREAM_END) 77.7083 Tj
+98.488 592.08 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(logical) 41.8429 Tj
+-426 TJm
+(end) 17.9327 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(stream) 35.8654 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(detected) 47.8205 Tj
+-426 TJm
+(and) 17.9327 Tj
+-426 TJm
+(all) 17.9327 Tj
+98.488 580.124 Td
+(output) 35.8654 Tj
+-426 TJm
+(in) 11.9551 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(consumed,) 53.798 Tj
+-426 TJm
+(eg) 11.9551 Tj
+-426 TJm
+(s-->avail_out) 77.7083 Tj
+-426 TJm
+(>) 5.9776 Tj
+-426 TJm
+(0) 5.9776 Tj
+90 568.169 Td
+(BZ_OK) 29.8878 Tj
+98.488 556.214 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 518.755 Td
+/F122_0 9.9626 Tf
+(Allo) 17.7135 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-250 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-250 TJm
+(actions:) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 457.883] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 509.29 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+98.488 497.335 Td
+(if) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(returned) 47.8205 Tj
+90 485.38 Td
+(BZ2_bzDecompressEnd) 113.5736 Tj
+98.488 473.425 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 427.262 Td
+/F116_0 17.2154 Tf
+(3.3.6.) 43.0729 Tj
+-278 TJm
+(BZ2_bzDecompressEnd) 197.0647 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 398.792] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 414.334 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzDecompressEnd) 113.5736 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(bz_stream) 53.798 Tj
+298.259 412.59 Td
+(*) 5.9776 Tj
+304.236 414.334 Td
+(strm) 23.9102 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 376.874 Td
+/F122_0 9.9626 Tf
+(Releases) 34.8591 Tj
+-250 TJm
+(all) 9.9626 Tj
+-250 TJm
+(memory) 33.2053 Tj
+-250 TJm
+(associated) 40.9463 Tj
+-250 TJm
+(with) 17.7135 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(decompression) 59.7656 Tj
+-250 TJm
+(stream.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 354.956 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 294.085] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 345.492 Td
+/F124_0 9.9626 Tf
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 333.537 Td
+(if) 11.9551 Tj
+-426 TJm
+(strm) 23.9102 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(strm->s) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+90 321.581 Td
+(BZ_OK) 29.8878 Tj
+98.488 309.626 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 272.167 Td
+/F122_0 9.9626 Tf
+(Allo) 17.7135 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-250 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-250 TJm
+(actions:) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 247.161] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+98.488 262.702 Td
+/F124_0 9.9626 Tf
+(None.) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 212.408 Td
+/F116_0 20.6585 Tf
+(3.4.) 34.4584 Tj
+-278 TJm
+(High-le) 70.0117 Tj
+15 TJm
+(vel) 28.7153 Tj
+-278 TJm
+(interface) 86.1046 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 190.49 Td
+/F122_0 9.9626 Tf
+(This) 17.7135 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace) 13.2702 Tj
+-250 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vides) 21.031 Tj
+-250 TJm
+(functions) 37.0808 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(reading) 29.8778 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(writing) 28.782 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+300.292 190.49 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+332.67 190.49 Td
+/F122_0 9.9626 Tf
+(format) 26.5603 Tj
+-250 TJm
+(\002les.) 19.0983 Tj
+-620 TJm
+(First,) 20.7621 Tj
+-250 TJm
+(some) 21.031 Tj
+-250 TJm
+(general) 29.3199 Tj
+-250 TJm
+(points.) 26.8492 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 158.609 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(All) 12.7322 Tj
+-353 TJm
+(of) 8.2988 Tj
+-352 TJm
+(the) 12.1743 Tj
+-353 TJm
+(functions) 37.0808 Tj
+-352 TJm
+(tak) 12.1743 Tj
+10 TJm
+(e) 4.4234 Tj
+-353 TJm
+(an) 9.4047 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+199.726 158.609 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+217.658 156.866 Td
+(*) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+227.149 158.609 Td
+/F122_0 9.9626 Tf
+(\002rst) 15.5018 Tj
+-353 TJm
+(ar) 7.7409 Tj
+18 TJm
+(gument,) 32.3785 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+289.871 158.609 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+331.715 158.609 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1236 TJm
+(After) 21.0211 Tj
+-352 TJm
+(each) 18.2515 Tj
+-353 TJm
+(call,) 16.8766 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+413.457 158.609 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+458.813 158.609 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-353 TJm
+(be) 9.4047 Tj
+-352 TJm
+(consulted) 38.1866 Tj
+81.963 146.654 Td
+(\002rst) 15.5018 Tj
+-371 TJm
+(to) 7.7509 Tj
+-371 TJm
+(determine) 39.8404 Tj
+-372 TJm
+(the) 12.1743 Tj
+-371 TJm
+(outcome) 34.3112 Tj
+-371 TJm
+(of) 8.2988 Tj
+-371 TJm
+(the) 12.1743 Tj
+-372 TJm
+(call.) 16.8766 Tj
+-1347 TJm
+(If) 6.6351 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+278.539 146.654 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+324.081 146.654 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+334.424 146.654 Td
+/F124_0 9.9626 Tf
+(BZ_OK) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+364.312 146.654 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-371 TJm
+(the) 12.1743 Tj
+-372 TJm
+(call) 14.386 Tj
+-371 TJm
+(completed) 41.5042 Tj
+-371 TJm
+(successfully) 48.6972 Tj
+65 TJm
+(,) 2.4907 Tj
+-402 TJm
+(and) 14.386 Tj
+-371 TJm
+(only) 17.7135 Tj
+81.963 134.699 Td
+(then) 17.1556 Tj
+-292 TJm
+(should) 26.5703 Tj
+-293 TJm
+(the) 12.1743 Tj
+-292 TJm
+(return) 23.7907 Tj
+-292 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue) 16.5977 Tj
+-293 TJm
+(of) 8.2988 Tj
+-292 TJm
+(the) 12.1743 Tj
+-292 TJm
+(function) 33.2053 Tj
+-293 TJm
+(\(if) 9.4047 Tj
+-292 TJm
+(an) 9.4047 Tj
+15 TJm
+(y\)) 8.2988 Tj
+-292 TJm
+(be) 9.4047 Tj
+-293 TJm
+(consulted.) 40.6773 Tj
+-874 TJm
+(If) 6.6351 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.994 134.699 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+408.749 134.699 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+418.307 134.699 Td
+/F124_0 9.9626 Tf
+(BZ_IO_ERROR) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+484.06 134.699 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-292 TJm
+(there) 19.9152 Tj
+-293 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-292 TJm
+(an) 9.4047 Tj
+81.963 122.744 Td
+(error) 19.3573 Tj
+-279 TJm
+(reading/writ) 48.6972 Tj
+1 TJm
+(ing) 12.7322 Tj
+-279 TJm
+(the) 12.1743 Tj
+-279 TJm
+(underlying) 43.1679 Tj
+-278 TJm
+(compressed) 47.0334 Tj
+-279 TJm
+(\002le,) 15.2229 Tj
+-285 TJm
+(and) 14.386 Tj
+-279 TJm
+(you) 14.9439 Tj
+-279 TJm
+(should) 26.5703 Tj
+-278 TJm
+(then) 17.1556 Tj
+-279 TJm
+(consult) 28.782 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+412.785 122.744 Td
+/F124_0 9.9626 Tf
+(errno) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+445.448 122.744 Td
+/F122_0 9.9626 Tf
+(/) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+450.993 122.744 Td
+/F124_0 9.9626 Tf
+(perror) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+489.634 122.744 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-279 TJm
+(determine) 39.8404 Tj
+81.963 110.789 Td
+(the) 12.1743 Tj
+-376 TJm
+(cause) 22.1269 Tj
+-376 TJm
+(of) 8.2988 Tj
+-377 TJm
+(the) 12.1743 Tj
+-376 TJm
+(dif) 11.0684 Tj
+25 TJm
+(\002culty) 25.4644 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.58 110.789 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+249.171 110.789 Td
+/F122_0 9.9626 Tf
+(may) 17.1556 Tj
+-376 TJm
+(also) 16.0497 Tj
+-376 TJm
+(be) 9.4047 Tj
+-377 TJm
+(set) 11.0684 Tj
+-376 TJm
+(to) 7.7509 Tj
+-376 TJm
+(v) 4.9813 Tj
+25 TJm
+(arious) 24.3486 Tj
+-376 TJm
+(other) 20.4731 Tj
+-377 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues;) 23.2427 Tj
+-439 TJm
+(precise) 28.2141 Tj
+-376 TJm
+(details) 26.0123 Tj
+-376 TJm
+(are) 12.1643 Tj
+-377 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-376 TJm
+(on) 9.9626 Tj
+-376 TJm
+(a) 4.4234 Tj
+81.963 98.834 Td
+(per) 12.7222 Tj
+20 TJm
+(-function) 36.5229 Tj
+-250 TJm
+(basis) 19.9252 Tj
+-250 TJm
+(belo) 17.1556 Tj
+25 TJm
+(w) 7.193 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(18) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 19 22
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+74.491 710.037 Td
+/F122_0 9.9626 Tf
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(If) 6.6351 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+91.793 710.037 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+136.332 710.037 Td
+/F122_0 9.9626 Tf
+(indicates) 35.417 Tj
+-271 TJm
+(an) 9.4047 Tj
+-270 TJm
+(error) 19.3573 Tj
+-271 TJm
+(\(ie,) 13.0012 Tj
+-276 TJm
+(an) 9.4047 Tj
+15 TJm
+(ything) 25.4644 Tj
+-271 TJm
+(e) 4.4234 Tj
+15 TJm
+(xcept) 21.579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+290.317 710.037 Td
+/F124_0 9.9626 Tf
+(BZ_OK) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+322.901 710.037 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+339.984 710.037 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+417.693 710.037 Td
+/F122_0 9.9626 Tf
+(\),) 5.8082 Tj
+-271 TJm
+(you) 14.9439 Tj
+-270 TJm
+(should) 26.5703 Tj
+-271 TJm
+(immediately) 49.813 Tj
+-271 TJm
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 698.082 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadClose) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+173.971 698.082 Td
+/F122_0 9.9626 Tf
+(\(or) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+187.932 698.082 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteClose) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+283.573 698.082 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-238 TJm
+(depending) 41.5042 Tj
+-236 TJm
+(on) 9.9626 Tj
+-235 TJm
+(whether) 32.0895 Tj
+-235 TJm
+(you) 14.9439 Tj
+-236 TJm
+(are) 12.1643 Tj
+-235 TJm
+(attempting) 42.62 Tj
+-235 TJm
+(to) 7.7509 Tj
+-236 TJm
+(read) 17.1456 Tj
+-235 TJm
+(or) 8.2988 Tj
+-235 TJm
+(to) 7.7509 Tj
+-236 TJm
+(write\)) 23.7907 Tj
+-235 TJm
+(to) 7.7509 Tj
+81.963 686.127 Td
+(free) 15.4819 Tj
+-309 TJm
+(up) 9.9626 Tj
+-309 TJm
+(all) 9.9626 Tj
+-309 TJm
+(resources) 37.6188 Tj
+-310 TJm
+(associated) 40.9463 Tj
+-309 TJm
+(with) 17.7135 Tj
+-309 TJm
+(the) 12.1743 Tj
+-309 TJm
+(stream.) 29.0509 Tj
+-975 TJm
+(Once) 21.0211 Tj
+-309 TJm
+(an) 9.4047 Tj
+-310 TJm
+(error) 19.3573 Tj
+-309 TJm
+(has) 13.2801 Tj
+-309 TJm
+(been) 18.8094 Tj
+-309 TJm
+(indicated,) 39.0135 Tj
+-324 TJm
+(beha) 18.8094 Tj
+20 TJm
+(viour) 21.031 Tj
+-309 TJm
+(of) 8.2988 Tj
+-309 TJm
+(all) 9.9626 Tj
+-310 TJm
+(calls) 18.2614 Tj
+-309 TJm
+(e) 4.4234 Tj
+15 TJm
+(xcept) 21.579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 674.172 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadClose) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+175.035 674.172 Td
+/F122_0 9.9626 Tf
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+178.352 674.172 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteClose) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+273.994 674.172 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-342 TJm
+(is) 6.6451 Tj
+-342 TJm
+(unde\002ned.) 41.7831 Tj
+-1173 TJm
+(The) 15.4918 Tj
+-342 TJm
+(implication) 45.3896 Tj
+-342 TJm
+(is) 6.6451 Tj
+-342 TJm
+(that) 14.9439 Tj
+-342 TJm
+(\(1\)) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+455.366 674.172 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+500.617 674.172 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-342 TJm
+(be) 9.4047 Tj
+81.963 662.217 Td
+(check) 23.2328 Tj
+10 TJm
+(ed) 9.4047 Tj
+-331 TJm
+(after) 18.2515 Tj
+-331 TJm
+(each) 18.2515 Tj
+-331 TJm
+(call,) 16.8766 Tj
+-351 TJm
+(and) 14.386 Tj
+-331 TJm
+(\(2\)) 11.6164 Tj
+-331 TJm
+(if) 6.0871 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+223.255 662.217 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+268.396 662.217 Td
+/F122_0 9.9626 Tf
+(indicates) 35.417 Tj
+-331 TJm
+(an) 9.4047 Tj
+-331 TJm
+(error) 19.3573 Tj
+40 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+344.762 662.217 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadClose) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+437.724 662.217 Td
+/F122_0 9.9626 Tf
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+441.041 662.217 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteClose) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+536.682 662.217 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+81.963 650.261 Td
+(should) 26.5703 Tj
+-250 TJm
+(then) 17.1556 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(called) 23.7907 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(clean) 21.0211 Tj
+-250 TJm
+(up.) 12.4533 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 628.344 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The) 15.4918 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+100.186 628.344 Td
+/F124_0 9.9626 Tf
+(FILE) 23.9102 Tj
+124.097 626.6 Td
+(*) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+132.308 628.344 Td
+/F122_0 9.9626 Tf
+(ar) 7.7409 Tj
+18 TJm
+(guments) 33.7633 Tj
+-224 TJm
+(passed) 26.5603 Tj
+-224 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+214.645 628.344 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadOpen) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+300.565 628.344 Td
+/F122_0 9.9626 Tf
+(/) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.569 628.344 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteOpen) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+397.466 628.344 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-224 TJm
+(be) 9.4047 Tj
+-224 TJm
+(set) 11.0684 Tj
+-225 TJm
+(to) 7.7509 Tj
+-224 TJm
+(binary) 25.4544 Tj
+-224 TJm
+(mode.) 24.6275 Tj
+-603 TJm
+(Most) 20.4831 Tj
+81.963 616.389 Td
+(Unix) 19.9252 Tj
+-269 TJm
+(systems) 31.5516 Tj
+-270 TJm
+(will) 15.5018 Tj
+-269 TJm
+(do) 9.9626 Tj
+-269 TJm
+(this) 14.396 Tj
+-270 TJm
+(by) 9.9626 Tj
+-269 TJm
+(def) 12.7222 Tj
+10 TJm
+(ault,) 17.4346 Tj
+-274 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-270 TJm
+(ot) 7.7509 Tj
+1 TJm
+(her) 12.7222 Tj
+-270 TJm
+(platforms,) 40.6773 Tj
+-274 TJm
+(including) 37.6387 Tj
+-269 TJm
+(W) 9.4047 Tj
+40 TJm
+(indo) 17.7135 Tj
+25 TJm
+(ws) 11.0684 Tj
+-270 TJm
+(and) 14.386 Tj
+-269 TJm
+(Mac,) 20.1942 Tj
+-274 TJm
+(will) 15.5018 Tj
+-270 TJm
+(not.) 15.2229 Tj
+-736 TJm
+(If) 6.6351 Tj
+-269 TJm
+(you) 14.9439 Tj
+-269 TJm
+(omit) 18.2714 Tj
+-270 TJm
+(this,) 16.8866 Tj
+81.963 604.433 Td
+(you) 14.9439 Tj
+-250 TJm
+(may) 17.1556 Tj
+-250 TJm
+(encounter) 39.2825 Tj
+-250 TJm
+(problems) 37.0808 Tj
+-250 TJm
+(when) 21.579 Tj
+-250 TJm
+(mo) 12.7322 Tj
+15 TJm
+(ving) 17.7135 Tj
+-250 TJm
+(code) 18.8094 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(ne) 9.4047 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(platforms.) 40.6773 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 582.516 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Memory) 34.3112 Tj
+-369 TJm
+(allocation) 39.2925 Tj
+-370 TJm
+(requests) 32.6474 Tj
+-369 TJm
+(are) 12.1643 Tj
+-370 TJm
+(handled) 31.5416 Tj
+-369 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+264.468 582.516 Td
+/F124_0 9.9626 Tf
+(malloc) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+304.014 582.516 Td
+/F122_0 9.9626 Tf
+(/) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+310.465 582.516 Td
+/F124_0 9.9626 Tf
+(free) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+334.376 582.516 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1337 TJm
+(At) 9.9626 Tj
+-370 TJm
+(present) 28.772 Tj
+-369 TJm
+(there) 19.9152 Tj
+-370 TJm
+(is) 6.6451 Tj
+-369 TJm
+(no) 9.9626 Tj
+-370 TJm
+(f) 3.3175 Tj
+10 TJm
+(acility) 24.9065 Tj
+-369 TJm
+(for) 11.6164 Tj
+-370 TJm
+(user) 16.5977 Tj
+20 TJm
+(-de\002ned) 32.6474 Tj
+81.963 570.56 Td
+(memory) 33.2053 Tj
+-250 TJm
+(allocators) 38.7346 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(I/O) 13.2801 Tj
+-250 TJm
+(functions) 37.0808 Tj
+-250 TJm
+(\(could) 25.4544 Tj
+-250 TJm
+(easily) 23.2427 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(added,) 26.2813 Tj
+-250 TJm
+(though\).) 33.4843 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 529.977 Td
+/F116_0 17.2154 Tf
+(3.4.1.) 43.0729 Tj
+-278 TJm
+(BZ2_bzReadOpen) 147.3122 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 453.686] cm
+0 0 468 71.731 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 517.048 Td
+/F124_0 9.9626 Tf
+(typedef) 41.8429 Tj
+-426 TJm
+(void) 23.9102 Tj
+-426 TJm
+(BZFILE;) 41.8429 Tj
+90 493.138 Td
+(BZFILE) 35.8654 Tj
+130.109 491.394 Td
+(*) 5.9776 Tj
+136.087 493.138 Td
+(BZ2_bzReadOpen\() 89.6634 Tj
+-426 TJm
+(int) 17.9327 Tj
+252.171 491.394 Td
+(*) 5.9776 Tj
+258.149 493.138 Td
+(bzerror,) 47.8205 Tj
+-426 TJm
+(FILE) 23.9102 Tj
+338.368 491.394 Td
+(*) 5.9776 Tj
+344.346 493.138 Td
+(f,) 11.9551 Tj
+191.855 481.183 Td
+(int) 17.9327 Tj
+-426 TJm
+(verbosity,) 59.7756 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(small,) 35.8654 Tj
+191.855 469.228 Td
+(void) 23.9102 Tj
+220.01 467.484 Td
+(*) 5.9776 Tj
+225.987 469.228 Td
+(unused,) 41.8429 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(nUnused) 41.8429 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 431.768 Td
+/F122_0 9.9626 Tf
+(Prepare) 30.4258 Tj
+-290 TJm
+(to) 7.7509 Tj
+-289 TJm
+(read) 17.1456 Tj
+-290 TJm
+(compressed) 47.0334 Tj
+-290 TJm
+(data) 16.5977 Tj
+-289 TJm
+(from) 19.3673 Tj
+-290 TJm
+(\002le) 12.7322 Tj
+-289 TJm
+(handle) 26.5603 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+272.697 431.768 Td
+/F124_0 9.9626 Tf
+(f) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+278.675 431.768 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+285.439 431.768 Td
+/F124_0 9.9626 Tf
+(f) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.302 431.768 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-290 TJm
+(refer) 18.7994 Tj
+-289 TJm
+(to) 7.7509 Tj
+-290 TJm
+(a) 4.4234 Tj
+-290 TJm
+(\002le) 12.7322 Tj
+-289 TJm
+(which) 24.3486 Tj
+-290 TJm
+(has) 13.2801 Tj
+-290 TJm
+(been) 18.8094 Tj
+-289 TJm
+(opened) 28.772 Tj
+-290 TJm
+(for) 11.6164 Tj
+-289 TJm
+(reading,) 32.3685 Tj
+-300 TJm
+(and) 14.386 Tj
+72 419.813 Td
+(for) 11.6164 Tj
+-306 TJm
+(which) 24.3486 Tj
+-305 TJm
+(the) 12.1743 Tj
+-306 TJm
+(error) 19.3573 Tj
+-306 TJm
+(indicator) 35.417 Tj
+-305 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+193.457 419.813 Td
+/F124_0 9.9626 Tf
+(ferror\(f\)) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+247.255 419.813 Td
+/F122_0 9.9626 Tf
+(\)is) 9.9626 Tj
+-306 TJm
+(not) 12.7322 Tj
+-305 TJm
+(set.) 13.5591 Tj
+-954 TJm
+(If) 6.6351 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+308.784 419.813 Td
+/F124_0 9.9626 Tf
+(small) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+341.717 419.813 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-306 TJm
+(1,) 7.472 Tj
+-319 TJm
+(the) 12.1743 Tj
+-306 TJm
+(library) 26.5603 Tj
+-306 TJm
+(wil) 12.7322 Tj
+1 TJm
+(l) 2.7696 Tj
+-306 TJm
+(try) 11.0684 Tj
+-306 TJm
+(to) 7.7509 Tj
+-305 TJm
+(decompress) 47.0334 Tj
+-306 TJm
+(using) 21.589 Tj
+-306 TJm
+(less) 14.9439 Tj
+72 407.858 Td
+(memory) 33.2053 Tj
+65 TJm
+(,) 2.4907 Tj
+-250 TJm
+(at) 7.193 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(e) 4.4234 Tj
+15 TJm
+(xpense) 27.6661 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(speed.) 25.1755 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 385.94 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-227 TJm
+(reasons) 29.8778 Tj
+-227 TJm
+(e) 4.4234 Tj
+15 TJm
+(xplained) 34.3112 Tj
+-228 TJm
+(belo) 17.1556 Tj
+25 TJm
+(w) 7.193 Tj
+65 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.193 385.94 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+251.232 385.94 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-227 TJm
+(decompress) 47.0334 Tj
+-227 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+332.732 385.94 Td
+/F124_0 9.9626 Tf
+(nUnused) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+376.838 385.94 Td
+/F122_0 9.9626 Tf
+(bytes) 21.031 Tj
+-227 TJm
+(starting) 29.8878 Tj
+-227 TJm
+(at) 7.193 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+441.74 385.94 Td
+/F124_0 9.9626 Tf
+(unused) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+477.605 385.94 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-232 TJm
+(before) 25.4445 Tj
+-227 TJm
+(starting) 29.8878 Tj
+72 373.985 Td
+(to) 7.7509 Tj
+-280 TJm
+(read) 17.1456 Tj
+-279 TJm
+(from) 19.3673 Tj
+-280 TJm
+(the) 12.1743 Tj
+-279 TJm
+(\002le) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.094 373.985 Td
+/F124_0 9.9626 Tf
+(f) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.072 373.985 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-797 TJm
+(At) 9.9626 Tj
+-280 TJm
+(most) 19.3773 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+206.414 373.985 Td
+/F124_0 9.9626 Tf
+(BZ_MAX_UNUSED) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+286.907 373.985 Td
+/F122_0 9.9626 Tf
+(bytes) 21.031 Tj
+-280 TJm
+(may) 17.1556 Tj
+-279 TJm
+(be) 9.4047 Tj
+-280 TJm
+(supplied) 33.7633 Tj
+-279 TJm
+(lik) 10.5205 Tj
+10 TJm
+(e) 4.4234 Tj
+-280 TJm
+(this.) 16.8866 Tj
+-797 TJm
+(If) 6.6351 Tj
+-279 TJm
+(this) 14.396 Tj
+-280 TJm
+(f) 3.3175 Tj
+10 TJm
+(acility) 24.9065 Tj
+-279 TJm
+(is) 6.6451 Tj
+-280 TJm
+(not) 12.7322 Tj
+-279 TJm
+(required,) 35.686 Tj
+72 362.03 Td
+(you) 14.9439 Tj
+-250 TJm
+(should) 26.5703 Tj
+-250 TJm
+(pass) 17.1556 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+138.141 362.03 Td
+/F124_0 9.9626 Tf
+(NULL) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+164.542 362.03 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+181.419 362.03 Td
+/F124_0 9.9626 Tf
+(0) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.887 362.03 Td
+/F122_0 9.9626 Tf
+(for) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.994 362.03 Td
+/F124_0 9.9626 Tf
+(unused) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+242.35 362.03 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+-250 TJm
+(n) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+264.208 362.03 Td
+/F124_0 9.9626 Tf
+(Unused) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+302.565 362.03 Td
+/F122_0 9.9626 Tf
+(respecti) 30.9837 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ely) 12.1743 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 340.112 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(meaning) 34.3112 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(parameters) 43.7059 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+196.631 340.112 Td
+/F124_0 9.9626 Tf
+(small) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+229.01 340.112 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+245.887 340.112 Td
+/F124_0 9.9626 Tf
+(verbosity) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+299.685 340.112 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(see) 12.7222 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+319.879 340.112 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompressInit) 119.5512 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+439.431 340.112 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 318.194 Td
+(The) 15.4918 Tj
+-402 TJm
+(amount) 29.8878 Tj
+-402 TJm
+(of) 8.2988 Tj
+-402 TJm
+(memory) 33.2053 Tj
+-402 TJm
+(needed) 28.2141 Tj
+-402 TJm
+(to) 7.7509 Tj
+-402 TJm
+(decompress) 47.0334 Tj
+-402 TJm
+(a) 4.4234 Tj
+-401 TJm
+(\002le) 12.7322 Tj
+-402 TJm
+(cannot) 26.5603 Tj
+-402 TJm
+(be) 9.4047 Tj
+-402 TJm
+(determined) 44.8217 Tj
+-402 TJm
+(until) 18.2714 Tj
+-402 TJm
+(the) 12.1743 Tj
+-402 TJm
+(\002le') 16.0497 Tj
+55 TJm
+(s) 3.8755 Tj
+-402 TJm
+(header) 26.5503 Tj
+-402 TJm
+(has) 13.2801 Tj
+-402 TJm
+(been) 18.8094 Tj
+-402 TJm
+(read.) 19.6363 Tj
+72 306.239 Td
+(So) 10.5205 Tj
+-492 TJm
+(it) 5.5392 Tj
+-491 TJm
+(is) 6.6451 Tj
+-492 TJm
+(possible) 32.6574 Tj
+-492 TJm
+(that) 14.9439 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.797 306.239 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadOpen) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+255.381 306.239 Td
+/F122_0 9.9626 Tf
+(returns) 27.6661 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+287.946 306.239 Td
+/F124_0 9.9626 Tf
+(BZ_OK) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+322.729 306.239 Td
+/F122_0 9.9626 Tf
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-492 TJm
+(a) 4.4234 Tj
+-491 TJm
+(subsequent) 44.2738 Tj
+-492 TJm
+(call) 14.386 Tj
+-492 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+431.135 306.239 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+495.81 306.239 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-492 TJm
+(return) 23.7907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 294.284 Td
+/F124_0 9.9626 Tf
+(BZ_MEM_ERROR) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.731 294.284 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 272.366 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(assignments) 48.7072 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 272.366 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 272.366 Td
+/F122_0 9.9626 Tf
+(:) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 101.84] cm
+0 0 468 167.372 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 260.844 Td
+/F124_0 9.9626 Tf
+(BZ_CONFIG_ERROR) 89.6634 Tj
+98.488 248.889 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(library) 41.8429 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(mis-compiled) 71.7307 Tj
+90 236.934 Td
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 224.979 Td
+(if) 11.9551 Tj
+-426 TJm
+(f) 5.9776 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+98.488 213.023 Td
+(or) 11.9551 Tj
+-426 TJm
+(small) 29.8878 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(neither) 41.8429 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(nor) 17.9327 Tj
+-426 TJm
+(1) 5.9776 Tj
+98.488 201.068 Td
+(or) 11.9551 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(unused) 35.8654 Tj
+-426 TJm
+(==) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(&&) 11.9551 Tj
+-426 TJm
+(nUnused) 41.8429 Tj
+-426 TJm
+(!=) 11.9551 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(\)) 5.9776 Tj
+98.488 189.113 Td
+(or) 11.9551 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(unused) 35.8654 Tj
+-426 TJm
+(!=) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(&&) 11.9551 Tj
+-426 TJm
+(!\(0) 17.9327 Tj
+-426 TJm
+(<=) 11.9551 Tj
+-426 TJm
+(nUnused) 41.8429 Tj
+-426 TJm
+(<=) 11.9551 Tj
+-426 TJm
+(BZ_MAX_UNUSED\)) 83.6858 Tj
+-426 TJm
+(\)) 5.9776 Tj
+90 177.158 Td
+(BZ_IO_ERROR) 65.7532 Tj
+98.488 165.203 Td
+(if) 11.9551 Tj
+-426 TJm
+(ferror\(f\)) 53.798 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(nonzero) 41.8429 Tj
+90 153.248 Td
+(BZ_MEM_ERROR) 71.7307 Tj
+98.488 141.292 Td
+(if) 11.9551 Tj
+-426 TJm
+(insufficient) 71.7307 Tj
+-426 TJm
+(memory) 35.8654 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(available) 53.798 Tj
+90 129.337 Td
+(BZ_OK) 29.8878 Tj
+98.488 117.382 Td
+(otherwise.) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 79.922 Td
+/F122_0 9.9626 Tf
+(Possible) 33.2153 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 51.071 Td
+(19) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 20 23
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 660.224] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(Pointer) 41.8429 Tj
+-426 TJm
+(to) 11.9551 Tj
+-426 TJm
+(an) 11.9551 Tj
+-426 TJm
+(abstract) 47.8205 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+98.488 699.676 Td
+(if) 11.9551 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+90 687.721 Td
+(NULL) 23.9102 Tj
+98.488 675.766 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 638.306 Td
+/F122_0 9.9626 Tf
+(Allo) 17.7135 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-250 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-250 TJm
+(actions:) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 577.435] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 628.842 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+98.488 616.887 Td
+(if) 11.9551 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+90 604.932 Td
+(BZ2_bzClose) 65.7532 Tj
+98.488 592.976 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 546.814 Td
+/F116_0 17.2154 Tf
+(3.4.2.) 43.0729 Tj
+-278 TJm
+(BZ2_bzRead) 103.3096 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 519.841] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 535.383 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzRead) 59.7756 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(int) 17.9327 Tj
+208.595 533.639 Td
+(*) 5.9776 Tj
+214.572 535.383 Td
+(bzerror,) 47.8205 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+306.747 533.639 Td
+(*) 5.9776 Tj
+312.724 535.383 Td
+(b,) 11.9551 Tj
+-426 TJm
+(void) 23.9102 Tj
+357.078 533.639 Td
+(*) 5.9776 Tj
+363.055 535.383 Td
+(buf,) 23.9102 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(len) 17.9327 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 497.923 Td
+/F122_0 9.9626 Tf
+(Reads) 24.3486 Tj
+-285 TJm
+(up) 9.9626 Tj
+-284 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+122.569 497.923 Td
+/F124_0 9.9626 Tf
+(len) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.337 497.923 Td
+/F122_0 9.9626 Tf
+(\(uncompressed\)) 63.6311 Tj
+-285 TJm
+(bytes) 21.031 Tj
+-284 TJm
+(from) 19.3673 Tj
+-285 TJm
+(the) 12.1743 Tj
+-284 TJm
+(compressed) 47.0334 Tj
+-285 TJm
+(\002le) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+336.319 497.923 Td
+/F124_0 9.9626 Tf
+(b) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+345.132 497.923 Td
+/F122_0 9.9626 Tf
+(into) 15.5018 Tj
+-285 TJm
+(the) 12.1743 Tj
+-284 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.205 497.923 Td
+/F124_0 9.9626 Tf
+(buf) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+423.137 497.923 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-828 TJm
+(If) 6.6351 Tj
+-284 TJm
+(the) 12.1743 Tj
+-285 TJm
+(read) 17.1456 Tj
+-285 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-284 TJm
+(successful,) 43.4369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 485.968 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+117.36 485.968 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-353 TJm
+(set) 11.0684 Tj
+-353 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+153.374 485.968 Td
+/F124_0 9.9626 Tf
+(BZ_OK) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+186.778 485.968 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+-353 TJm
+(the) 12.1743 Tj
+-353 TJm
+(number) 30.4357 Tj
+-353 TJm
+(of) 8.2988 Tj
+-353 TJm
+(bytes) 21.031 Tj
+-353 TJm
+(read) 17.1456 Tj
+-353 TJm
+(is) 6.6451 Tj
+-353 TJm
+(returned.) 35.686 Tj
+-1238 TJm
+(If) 6.6351 Tj
+-353 TJm
+(the) 12.1743 Tj
+-353 TJm
+(logical) 27.1182 Tj
+-353 TJm
+(end-of-stream) 55.8802 Tj
+-353 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-353 TJm
+(detected,) 35.686 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 474.013 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+116.795 474.013 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-296 TJm
+(be) 9.4047 Tj
+-297 TJm
+(set) 11.0684 Tj
+-296 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.328 474.013 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+250.037 474.013 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-296 TJm
+(and) 14.386 Tj
+-297 TJm
+(the) 12.1743 Tj
+-296 TJm
+(number) 30.4357 Tj
+-296 TJm
+(of) 8.2988 Tj
+-297 TJm
+(bytes) 21.031 Tj
+-296 TJm
+(read) 17.1456 Tj
+-296 TJm
+(is) 6.6451 Tj
+-296 TJm
+(returned.) 35.686 Tj
+-898 TJm
+(All) 12.7322 Tj
+-297 TJm
+(other) 20.4731 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+470 474.013 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+514.795 474.013 Td
+/F122_0 9.9626 Tf
+(v) 4.9813 Tj
+25 TJm
+(alues) 20.4731 Tj
+72 462.058 Td
+(denote) 26.5603 Tj
+-250 TJm
+(an) 9.4047 Tj
+-250 TJm
+(error) 19.3573 Tj
+55 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 440.14 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+134.224 440.14 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-246 TJm
+(supply) 26.5703 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+181.193 440.14 Td
+/F124_0 9.9626 Tf
+(len) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+201.575 440.14 Td
+/F122_0 9.9626 Tf
+(bytes,) 23.5217 Tj
+-247 TJm
+(unless) 24.9065 Tj
+-245 TJm
+(the) 12.1743 Tj
+-246 TJm
+(logical) 27.1182 Tj
+-246 TJm
+(stream) 26.5603 Tj
+-246 TJm
+(end) 14.386 Tj
+-245 TJm
+(is) 6.6451 Tj
+-246 TJm
+(detected) 33.1954 Tj
+-246 TJm
+(or) 8.2988 Tj
+-246 TJm
+(an) 9.4047 Tj
+-245 TJm
+(error) 19.3573 Tj
+-246 TJm
+(occurs.) 28.493 Tj
+-617 TJm
+(Because) 33.1954 Tj
+-246 TJm
+(of) 8.2988 Tj
+-246 TJm
+(this,) 16.8866 Tj
+-247 TJm
+(it) 5.5392 Tj
+72 428.185 Td
+(is) 6.6451 Tj
+-231 TJm
+(possible) 32.6574 Tj
+-231 TJm
+(to) 7.7509 Tj
+-231 TJm
+(detect) 23.7907 Tj
+-231 TJm
+(the) 12.1743 Tj
+-231 TJm
+(stream) 26.5603 Tj
+-231 TJm
+(end) 14.386 Tj
+-232 TJm
+(by) 9.9626 Tj
+-231 TJm
+(observing) 39.2925 Tj
+-231 TJm
+(when) 21.579 Tj
+-231 TJm
+(the) 12.1743 Tj
+-231 TJm
+(number) 30.4357 Tj
+-231 TJm
+(of) 8.2988 Tj
+-231 TJm
+(bytes) 21.031 Tj
+-231 TJm
+(returned) 33.1954 Tj
+-231 TJm
+(is) 6.6451 Tj
+-231 TJm
+(less) 14.9439 Tj
+-231 TJm
+(than) 17.1556 Tj
+-232 TJm
+(the) 12.1743 Tj
+-231 TJm
+(number) 30.4357 Tj
+-231 TJm
+(requested.) 40.6673 Tj
+72 416.23 Td
+(Ne) 11.6164 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ertheless,) 37.3498 Tj
+-309 TJm
+(this) 14.396 Tj
+-297 TJm
+(is) 6.6451 Tj
+-298 TJm
+(re) 7.7409 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(arded) 22.1269 Tj
+-297 TJm
+(as) 8.2988 Tj
+-297 TJm
+(inadvisable;) 48.1492 Tj
+-321 TJm
+(you) 14.9439 Tj
+-298 TJm
+(should) 26.5703 Tj
+-297 TJm
+(instead) 28.224 Tj
+-297 TJm
+(check) 23.2328 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+360.631 416.23 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.437 416.23 Td
+/F122_0 9.9626 Tf
+(after) 18.2515 Tj
+-297 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ery) 12.7222 Tj
+-298 TJm
+(call) 14.386 Tj
+-297 TJm
+(and) 14.386 Tj
+-297 TJm
+(w) 7.193 Tj
+10 TJm
+(atch) 16.5977 Tj
+-298 TJm
+(out) 12.7322 Tj
+-297 TJm
+(for) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 404.275 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+149.709 404.275 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 382.357 Td
+(Internally) 38.7346 Tj
+65 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+117.541 382.357 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+181.786 382.357 Td
+/F122_0 9.9626 Tf
+(copies) 25.4544 Tj
+-449 TJm
+(data) 16.5977 Tj
+-448 TJm
+(from) 19.3673 Tj
+-449 TJm
+(the) 12.1743 Tj
+-448 TJm
+(compressed) 47.0334 Tj
+-449 TJm
+(\002le) 12.7322 Tj
+-449 TJm
+(in) 7.7509 Tj
+-448 TJm
+(chunks) 28.224 Tj
+-449 TJm
+(of) 8.2988 Tj
+-448 TJm
+(size) 15.4918 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+419.602 382.357 Td
+/F124_0 9.9626 Tf
+(BZ_MAX_UNUSED) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+501.778 382.357 Td
+/F122_0 9.9626 Tf
+(bytes) 21.031 Tj
+-449 TJm
+(be-) 12.7222 Tj
+72 370.402 Td
+(fore) 16.0398 Tj
+-414 TJm
+(decompressing) 59.7656 Tj
+-414 TJm
+(it.) 8.0299 Tj
+-1605 TJm
+(If) 6.6351 Tj
+-415 TJm
+(the) 12.1743 Tj
+-414 TJm
+(\002le) 12.7322 Tj
+-414 TJm
+(contains) 33.2053 Tj
+-414 TJm
+(more) 20.4731 Tj
+-414 TJm
+(bytes) 21.031 Tj
+-415 TJm
+(than) 17.1556 Tj
+-414 TJm
+(strictly) 27.6761 Tj
+-414 TJm
+(needed) 28.2141 Tj
+-414 TJm
+(to) 7.7509 Tj
+-414 TJm
+(reach) 21.569 Tj
+-414 TJm
+(the) 12.1743 Tj
+-415 TJm
+(logical) 27.1182 Tj
+-414 TJm
+(end-of-stream,) 58.3709 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 358.446 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+134.749 358.446 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-298 TJm
+(almost) 26.5703 Tj
+-299 TJm
+(certainly) 34.8591 Tj
+-298 TJm
+(read) 17.1456 Tj
+-299 TJm
+(some) 21.031 Tj
+-298 TJm
+(of) 8.2988 Tj
+-299 TJm
+(the) 12.1743 Tj
+-298 TJm
+(trailing) 28.782 Tj
+-299 TJm
+(data) 16.5977 Tj
+-298 TJm
+(before) 25.4445 Tj
+-298 TJm
+(signalling) 39.3025 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+413.162 358.446 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_END) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+502.826 358.446 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-597 TJm
+(T) 6.0871 Tj
+80 TJm
+(o) 4.9813 Tj
+-298 TJm
+(col-) 15.4918 Tj
+72 346.491 Td
+(lect) 14.386 Tj
+-242 TJm
+(the) 12.1743 Tj
+-242 TJm
+(read) 17.1456 Tj
+-243 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-242 TJm
+(unused) 28.224 Tj
+-242 TJm
+(data) 16.5977 Tj
+-242 TJm
+(once) 18.8094 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+208.759 346.491 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_END) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+300.835 346.491 Td
+/F122_0 9.9626 Tf
+(has) 13.2801 Tj
+-242 TJm
+(appeared,) 38.4457 Tj
+-244 TJm
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+374.201 346.491 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadGetUnused) 113.5736 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+490.188 346.491 Td
+/F122_0 9.9626 Tf
+(immediately) 49.813 Tj
+72 334.536 Td
+(before) 25.4445 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+99.935 334.536 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadClose) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.599 334.536 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 312.618 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(assignments) 48.7072 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 312.618 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 312.618 Td
+/F122_0 9.9626 Tf
+(:) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(20) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 21 24
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 456.986] cm
+0 0 468 263.014 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 699.676 Td
+(if) 11.9551 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(buf) 17.9327 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(len) 17.9327 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(0) 5.9776 Tj
+90 687.721 Td
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+98.488 675.766 Td
+(if) 11.9551 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(opened) 35.8654 Tj
+-426 TJm
+(with) 23.9102 Tj
+-426 TJm
+(BZ2_bzWriteOpen) 89.6634 Tj
+90 663.811 Td
+(BZ_IO_ERROR) 65.7532 Tj
+98.488 651.856 Td
+(if) 11.9551 Tj
+-426 TJm
+(there) 29.8878 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(an) 11.9551 Tj
+-426 TJm
+(error) 29.8878 Tj
+-426 TJm
+(reading) 41.8429 Tj
+-426 TJm
+(from) 23.9102 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(file) 23.9102 Tj
+90 639.9 Td
+(BZ_UNEXPECTED_EOF) 101.6185 Tj
+98.488 627.945 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(file) 23.9102 Tj
+-426 TJm
+(ended) 29.8878 Tj
+-426 TJm
+(before) 35.8654 Tj
+98.488 615.99 Td
+(the) 17.9327 Tj
+-426 TJm
+(logical) 41.8429 Tj
+-426 TJm
+(end-of-stream) 77.7083 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(detected) 47.8205 Tj
+90 604.035 Td
+(BZ_DATA_ERROR) 77.7083 Tj
+98.488 592.08 Td
+(if) 11.9551 Tj
+-426 TJm
+(a) 5.9776 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(integrity) 53.798 Tj
+-426 TJm
+(error) 29.8878 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(detected) 47.8205 Tj
+-426 TJm
+(in) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(stream) 35.8654 Tj
+90 580.124 Td
+(BZ_DATA_ERROR_MAGIC) 113.5736 Tj
+98.488 568.169 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(stream) 35.8654 Tj
+-426 TJm
+(does) 23.9102 Tj
+-426 TJm
+(not) 17.9327 Tj
+-426 TJm
+(begin) 29.8878 Tj
+-426 TJm
+(with) 23.9102 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(requisite) 53.798 Tj
+-426 TJm
+(header) 35.8654 Tj
+-426 TJm
+(bytes) 29.8878 Tj
+98.488 556.214 Td
+(\(ie,) 23.9102 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(not) 17.9327 Tj
+-426 TJm
+(a) 5.9776 Tj
+-426 TJm
+(bzip2) 29.8878 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(file\).) 35.8654 Tj
+-852 TJm
+(This) 23.9102 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(really) 35.8654 Tj
+98.488 544.259 Td
+(a) 5.9776 Tj
+-426 TJm
+(special) 41.8429 Tj
+-426 TJm
+(case) 23.9102 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(BZ_DATA_ERROR.) 83.6858 Tj
+90 532.304 Td
+(BZ_MEM_ERROR) 71.7307 Tj
+98.488 520.349 Td
+(if) 11.9551 Tj
+-426 TJm
+(insufficient) 71.7307 Tj
+-426 TJm
+(memory) 35.8654 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(available) 53.798 Tj
+90 508.393 Td
+(BZ_STREAM_END) 77.7083 Tj
+98.488 496.438 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(logical) 41.8429 Tj
+-426 TJm
+(end) 17.9327 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(stream) 35.8654 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(detected.) 53.798 Tj
+90 484.483 Td
+(BZ_OK) 29.8878 Tj
+98.488 472.528 Td
+(otherwise.) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 435.068 Td
+/F122_0 9.9626 Tf
+(Possible) 33.2153 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 374.197] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 425.604 Td
+/F124_0 9.9626 Tf
+(number) 35.8654 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(bytes) 29.8878 Tj
+-426 TJm
+(read) 23.9102 Tj
+98.488 413.649 Td
+(if) 11.9551 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(BZ_STREAM_END) 77.7083 Tj
+90 401.694 Td
+(undefined) 53.798 Tj
+98.488 389.739 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 352.279 Td
+/F122_0 9.9626 Tf
+(Allo) 17.7135 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-250 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-250 TJm
+(actions:) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 267.497] cm
+0 0 468 83.686 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 342.815 Td
+/F124_0 9.9626 Tf
+(collect) 41.8429 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(from) 23.9102 Tj
+-426 TJm
+(buf,) 23.9102 Tj
+-426 TJm
+(then) 23.9102 Tj
+-426 TJm
+(BZ2_bzRead) 59.7756 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(BZ2_bzReadClose) 89.6634 Tj
+98.488 330.859 Td
+(if) 11.9551 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+90 318.904 Td
+(collect) 41.8429 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(from) 23.9102 Tj
+-426 TJm
+(buf,) 23.9102 Tj
+-426 TJm
+(then) 23.9102 Tj
+-426 TJm
+(BZ2_bzReadClose) 89.6634 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(BZ2_bzReadGetUnused) 113.5736 Tj
+98.488 306.949 Td
+(if) 11.9551 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(BZ_SEQUENCE_END) 89.6634 Tj
+90 294.994 Td
+(BZ2_bzReadClose) 89.6634 Tj
+98.488 283.039 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 236.876 Td
+/F116_0 17.2154 Tf
+(3.4.3.) 43.0729 Tj
+-278 TJm
+(BZ2_bzReadGetUn) 154.9558 Tj
+10 TJm
+(used) 40.1807 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 197.948] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 225.445 Td
+/F124_0 9.9626 Tf
+(void) 23.9102 Tj
+-426 TJm
+(BZ2_bzReadGetUnused\() 119.5512 Tj
+-426 TJm
+(int) 17.9327 Tj
+259.883 223.702 Td
+(*) 5.9776 Tj
+270.104 225.445 Td
+(bzerror,) 47.8205 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+362.278 223.702 Td
+(*) 5.9776 Tj
+368.256 225.445 Td
+(b,) 11.9551 Tj
+200.343 213.49 Td
+(void) 23.9102 Tj
+224.254 211.747 Td
+(**) 11.9551 Tj
+240.453 213.49 Td
+(unused,) 41.8429 Tj
+-426 TJm
+(int) 17.9327 Tj
+304.473 211.747 Td
+(*) 5.9776 Tj
+314.694 213.49 Td
+(nUnused) 41.8429 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 176.031 Td
+/F122_0 9.9626 Tf
+(Returns) 30.9936 Tj
+-435 TJm
+(data) 16.5977 Tj
+-435 TJm
+(which) 24.3486 Tj
+-435 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-435 TJm
+(read) 17.1456 Tj
+-435 TJm
+(from) 19.3673 Tj
+-435 TJm
+(the) 12.1743 Tj
+-435 TJm
+(compressed) 47.0334 Tj
+-435 TJm
+(\002le) 12.7322 Tj
+-435 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-435 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-435 TJm
+(not) 12.7322 Tj
+-435 TJm
+(needed) 28.2141 Tj
+-435 TJm
+(to) 7.7509 Tj
+-435 TJm
+(get) 12.1743 Tj
+-435 TJm
+(to) 7.7509 Tj
+-435 TJm
+(the) 12.1743 Tj
+-435 TJm
+(logical) 27.1182 Tj
+-435 TJm
+(end-of-stream.) 58.3709 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 162.332 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+77.978 164.075 Td
+(unused) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+117.2 164.075 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-337 TJm
+(set) 11.0684 Tj
+-337 TJm
+(to) 7.7509 Tj
+-337 TJm
+(the) 12.1743 Tj
+-337 TJm
+(address) 29.8778 Tj
+-337 TJm
+(of) 8.2988 Tj
+-336 TJm
+(the) 12.1743 Tj
+-337 TJm
+(data,) 19.0883 Tj
+-359 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+269.089 162.332 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+275.067 164.075 Td
+(nUnused) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+320.267 164.075 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-337 TJm
+(the) 12.1743 Tj
+-337 TJm
+(number) 30.4357 Tj
+-337 TJm
+(of) 8.2988 Tj
+-337 TJm
+(bytes.) 23.5217 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+427.247 162.332 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+433.225 164.075 Td
+(nUnused) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+478.425 164.075 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-337 TJm
+(be) 9.4047 Tj
+-337 TJm
+(set) 11.0684 Tj
+-337 TJm
+(to) 7.7509 Tj
+-337 TJm
+(a) 4.4234 Tj
+72 152.12 Td
+(v) 4.9813 Tj
+25 TJm
+(alue) 16.5977 Tj
+-250 TJm
+(between) 33.1954 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+131.506 152.12 Td
+/F124_0 9.9626 Tf
+(0) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+139.975 152.12 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+156.851 152.12 Td
+/F124_0 9.9626 Tf
+(BZ_MAX_UNUSED) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+237.05 152.12 Td
+/F122_0 9.9626 Tf
+(inclusi) 26.5703 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e.) 6.914 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 130.202 Td
+(This) 17.7135 Tj
+-882 TJm
+(function) 33.2053 Tj
+-883 TJm
+(may) 17.1556 Tj
+-882 TJm
+(only) 17.7135 Tj
+-883 TJm
+(be) 9.4047 Tj
+-882 TJm
+(called) 23.7907 Tj
+-883 TJm
+(once) 18.8094 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+271.332 130.202 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+339.9 130.202 Td
+/F122_0 9.9626 Tf
+(has) 13.2801 Tj
+-882 TJm
+(signalled) 35.9749 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+406.737 130.202 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+493.231 130.202 Td
+/F122_0 9.9626 Tf
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-882 TJm
+(before) 25.4445 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 118.247 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadClose) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.664 118.247 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 96.329 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(assignments) 48.7072 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 96.329 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 96.329 Td
+/F122_0 9.9626 Tf
+(:) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+(21) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 22 25
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 612.403] cm
+0 0 468 107.597 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 699.676 Td
+(if) 11.9551 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+98.488 687.721 Td
+(or) 11.9551 Tj
+-426 TJm
+(unused) 35.8654 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(nUnused) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+90 675.766 Td
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+98.488 663.811 Td
+(if) 11.9551 Tj
+-426 TJm
+(BZ_STREAM_END) 77.7083 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(not) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(signalled) 53.798 Tj
+98.488 651.856 Td
+(or) 11.9551 Tj
+-426 TJm
+(if) 11.9551 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(opened) 35.8654 Tj
+-426 TJm
+(with) 23.9102 Tj
+-426 TJm
+(BZ2_bzWriteOpen) 89.6634 Tj
+90 639.9 Td
+(BZ_OK) 29.8878 Tj
+98.488 627.945 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 590.486 Td
+/F122_0 9.9626 Tf
+(Allo) 17.7135 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-250 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-250 TJm
+(actions:) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 565.48] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 581.021 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadClose) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 534.858 Td
+/F116_0 17.2154 Tf
+(3.4.4.) 43.0729 Tj
+-278 TJm
+(BZ2_bzReadClose) 150.1871 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 507.886] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 523.428 Td
+/F124_0 9.9626 Tf
+(void) 23.9102 Tj
+-426 TJm
+(BZ2_bzReadClose) 89.6634 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(int) 17.9327 Tj
+244.46 521.684 Td
+(*) 5.9776 Tj
+250.438 523.428 Td
+(bzerror,) 47.8205 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+342.612 521.684 Td
+(*) 5.9776 Tj
+348.59 523.428 Td
+(b) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 485.968 Td
+/F122_0 9.9626 Tf
+(Releases) 34.8591 Tj
+-430 TJm
+(all) 9.9626 Tj
+-429 TJm
+(memory) 33.2053 Tj
+-430 TJm
+(pertaining) 40.3983 Tj
+-429 TJm
+(to) 7.7509 Tj
+-430 TJm
+(the) 12.1743 Tj
+-429 TJm
+(compressed) 47.0334 Tj
+-430 TJm
+(\002le) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+304.352 485.968 Td
+/F124_0 9.9626 Tf
+(b) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+310.33 485.968 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+321.276 485.968 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadClose) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+415.22 485.968 Td
+/F122_0 9.9626 Tf
+(does) 18.2614 Tj
+-430 TJm
+(not) 12.7322 Tj
+-429 TJm
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+473.438 485.968 Td
+/F124_0 9.9626 Tf
+(fclose) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+513.583 485.968 Td
+/F122_0 9.9626 Tf
+(on) 9.9626 Tj
+-430 TJm
+(the) 12.1743 Tj
+72 474.013 Td
+(underlying) 43.1679 Tj
+-264 TJm
+(\002le) 12.7322 Tj
+-264 TJm
+(handle,) 29.0509 Tj
+-267 TJm
+(so) 8.8568 Tj
+-264 TJm
+(you) 14.9439 Tj
+-264 TJm
+(should) 26.5703 Tj
+-264 TJm
+(do) 9.9626 Tj
+-264 TJm
+(that) 14.9439 Tj
+-264 TJm
+(yourself) 32.6474 Tj
+-264 TJm
+(if) 6.0871 Tj
+-263 TJm
+(appropriate.) 47.8603 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+348.653 474.013 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadClose) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+440.946 474.013 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-264 TJm
+(be) 9.4047 Tj
+-264 TJm
+(called) 23.7907 Tj
+-264 TJm
+(to) 7.7509 Tj
+-264 TJm
+(clean) 21.0211 Tj
+72 462.058 Td
+(up) 9.9626 Tj
+-250 TJm
+(after) 18.2515 Tj
+-250 TJm
+(all) 9.9626 Tj
+-250 TJm
+(error) 19.3573 Tj
+-250 TJm
+(situations.) 40.6873 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 440.14 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(assignments) 48.7072 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 440.14 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 440.14 Td
+/F122_0 9.9626 Tf
+(:) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 377.211] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 428.618 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+98.488 416.663 Td
+(if) 11.9551 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(opened) 35.8654 Tj
+-426 TJm
+(with) 23.9102 Tj
+-426 TJm
+(BZ2_bzOpenWrite) 89.6634 Tj
+90 404.708 Td
+(BZ_OK) 29.8878 Tj
+98.488 392.753 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 355.293 Td
+/F122_0 9.9626 Tf
+(Allo) 17.7135 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-250 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-250 TJm
+(actions:) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 330.287] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 345.829 Td
+/F124_0 9.9626 Tf
+(none) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 299.666 Td
+/F116_0 17.2154 Tf
+(3.4.5.) 43.0729 Tj
+-278 TJm
+(BZ2_bzWriteOpen) 148.259 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 247.286] cm
+0 0 468 47.821 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 286.738 Td
+/F124_0 9.9626 Tf
+(BZFILE) 35.8654 Tj
+130.109 284.994 Td
+(*) 5.9776 Tj
+136.087 286.738 Td
+(BZ2_bzWriteOpen\() 95.641 Tj
+-426 TJm
+(int) 17.9327 Tj
+258.149 284.994 Td
+(*) 5.9776 Tj
+264.127 286.738 Td
+(bzerror,) 47.8205 Tj
+-426 TJm
+(FILE) 23.9102 Tj
+344.346 284.994 Td
+(*) 5.9776 Tj
+350.323 286.738 Td
+(f,) 11.9551 Tj
+196.099 274.783 Td
+(int) 17.9327 Tj
+-426 TJm
+(blockSize100k,) 83.6858 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(verbosity,) 59.7756 Tj
+196.099 262.827 Td
+(int) 17.9327 Tj
+-426 TJm
+(workFactor) 59.7756 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 225.368 Td
+/F122_0 9.9626 Tf
+(Prepare) 30.4258 Tj
+-268 TJm
+(to) 7.7509 Tj
+-269 TJm
+(write) 20.4731 Tj
+-268 TJm
+(compressed) 47.0334 Tj
+-269 TJm
+(data) 16.5977 Tj
+-268 TJm
+(to) 7.7509 Tj
+-269 TJm
+(\002le) 12.7322 Tj
+-268 TJm
+(handle) 26.5603 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+262.72 225.368 Td
+/F124_0 9.9626 Tf
+(f) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+268.698 225.368 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+274.829 225.368 Td
+/F124_0 9.9626 Tf
+(f) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+283.481 225.368 Td
+/F122_0 9.9626 Tf
+(should) 26.5703 Tj
+-268 TJm
+(refer) 18.7994 Tj
+-269 TJm
+(to) 7.7509 Tj
+-268 TJm
+(a) 4.4234 Tj
+-269 TJm
+(\002le) 12.7322 Tj
+-268 TJm
+(which) 24.3486 Tj
+-269 TJm
+(has) 13.2801 Tj
+-268 TJm
+(been) 18.8094 Tj
+-269 TJm
+(opened) 28.772 Tj
+-268 TJm
+(for) 11.6164 Tj
+-269 TJm
+(writing,) 31.2726 Tj
+-273 TJm
+(and) 14.386 Tj
+-268 TJm
+(for) 11.6164 Tj
+72 213.413 Td
+(which) 24.3486 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(error) 19.3573 Tj
+-250 TJm
+(indicator) 35.417 Tj
+-250 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.577 213.413 Td
+/F124_0 9.9626 Tf
+(ferror\(f\)) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+230.375 213.413 Td
+/F122_0 9.9626 Tf
+(\)is) 9.9626 Tj
+-250 TJm
+(not) 12.7322 Tj
+-250 TJm
+(set.) 13.5591 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 191.495 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-223 TJm
+(the) 12.1743 Tj
+-224 TJm
+(meaning) 34.3112 Tj
+-223 TJm
+(of) 8.2988 Tj
+-224 TJm
+(parameters) 43.7059 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+195.306 191.495 Td
+/F124_0 9.9626 Tf
+(blockSize100k) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+273.015 191.495 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+277.784 191.495 Td
+/F124_0 9.9626 Tf
+(verbosity) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+333.808 191.495 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+350.42 191.495 Td
+/F124_0 9.9626 Tf
+(workFactor) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+410.196 191.495 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-229 TJm
+(see) 12.7222 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+429.913 191.495 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 191.495 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 169.577 Td
+(All) 12.7322 Tj
+-382 TJm
+(required) 33.1954 Tj
+-382 TJm
+(memory) 33.2053 Tj
+-382 TJm
+(is) 6.6451 Tj
+-382 TJm
+(allocated) 35.965 Tj
+-383 TJm
+(at) 7.193 Tj
+-382 TJm
+(this) 14.396 Tj
+-382 TJm
+(stage,) 22.9638 Tj
+-415 TJm
+(so) 8.8568 Tj
+-382 TJm
+(if) 6.0871 Tj
+-382 TJm
+(the) 12.1743 Tj
+-382 TJm
+(call) 14.386 Tj
+-382 TJm
+(completes) 40.3983 Tj
+-382 TJm
+(successfully) 48.6972 Tj
+65 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+424.691 169.577 Td
+/F124_0 9.9626 Tf
+(BZ_MEM_ERROR) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+500.228 169.577 Td
+/F122_0 9.9626 Tf
+(cannot) 26.5603 Tj
+-382 TJm
+(be) 9.4047 Tj
+72 157.622 Td
+(signalled) 35.9749 Tj
+-250 TJm
+(by) 9.9626 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(subsequent) 44.2738 Tj
+-250 TJm
+(call) 14.386 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.715 157.622 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWrite) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+269.468 157.622 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 135.704 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(assignments) 48.7072 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 135.704 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 135.704 Td
+/F122_0 9.9626 Tf
+(:) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+(22) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 23 26
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 576.538] cm
+0 0 468 143.462 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(BZ_CONFIG_ERROR) 89.6634 Tj
+98.488 699.676 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(library) 41.8429 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(mis-compiled) 71.7307 Tj
+90 687.721 Td
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 675.766 Td
+(if) 11.9551 Tj
+-426 TJm
+(f) 5.9776 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+98.488 663.811 Td
+(or) 11.9551 Tj
+-426 TJm
+(blockSize100k) 77.7083 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(1) 5.9776 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(blockSize100k) 77.7083 Tj
+-426 TJm
+(>) 5.9776 Tj
+-426 TJm
+(9) 5.9776 Tj
+90 651.856 Td
+(BZ_IO_ERROR) 65.7532 Tj
+98.488 639.9 Td
+(if) 11.9551 Tj
+-426 TJm
+(ferror\(f\)) 53.798 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(nonzero) 41.8429 Tj
+90 627.945 Td
+(BZ_MEM_ERROR) 71.7307 Tj
+98.488 615.99 Td
+(if) 11.9551 Tj
+-426 TJm
+(insufficient) 71.7307 Tj
+-426 TJm
+(memory) 35.8654 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(available) 53.798 Tj
+90 604.035 Td
+(BZ_OK) 29.8878 Tj
+98.488 592.08 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 554.62 Td
+/F122_0 9.9626 Tf
+(Possible) 33.2153 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 493.749] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 545.156 Td
+/F124_0 9.9626 Tf
+(Pointer) 41.8429 Tj
+-426 TJm
+(to) 11.9551 Tj
+-426 TJm
+(an) 11.9551 Tj
+-426 TJm
+(abstract) 47.8205 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+98.488 533.201 Td
+(if) 11.9551 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+90 521.245 Td
+(NULL) 23.9102 Tj
+98.488 509.29 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 471.831 Td
+/F122_0 9.9626 Tf
+(Allo) 17.7135 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able) 16.5977 Tj
+-250 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-250 TJm
+(actions:) 30.9936 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 387.049] cm
+0 0 468 83.686 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 462.366 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWrite) 65.7532 Tj
+98.488 450.411 Td
+(if) 11.9551 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+98.488 438.456 Td
+(\(you) 23.9102 Tj
+-426 TJm
+(could) 29.8878 Tj
+-426 TJm
+(go) 11.9551 Tj
+-426 TJm
+(directly) 47.8205 Tj
+-426 TJm
+(to) 11.9551 Tj
+-426 TJm
+(BZ2_bzWriteClose,) 101.6185 Tj
+-426 TJm
+(but) 17.9327 Tj
+-426 TJm
+(this) 23.9102 Tj
+-426 TJm
+(would) 29.8878 Tj
+-426 TJm
+(be) 11.9551 Tj
+-426 TJm
+(pretty) 35.8654 Tj
+485.506 434.212 Td
+/F548_0 9.9626 Tf
+( ) 9.9626 Tj
+493.808 434.212 Td
+/F230_0 9.9626 Tf
+(-) 2.7676 Tj
+90 426.501 Td
+/F124_0 9.9626 Tf
+(pointless\)) 59.7756 Tj
+90 414.546 Td
+(BZ2_bzWriteClose) 95.641 Tj
+98.488 402.59 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 356.428 Td
+/F116_0 17.2154 Tf
+(3.4.6.) 43.0729 Tj
+-278 TJm
+(BZ2_bzWrite) 104.2565 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 329.455] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 344.997 Td
+/F124_0 9.9626 Tf
+(void) 23.9102 Tj
+-426 TJm
+(BZ2_bzWrite) 65.7532 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(int) 17.9327 Tj
+220.55 343.254 Td
+(*) 5.9776 Tj
+226.528 344.997 Td
+(bzerror,) 47.8205 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+318.702 343.254 Td
+(*) 5.9776 Tj
+324.679 344.997 Td
+(b,) 11.9551 Tj
+-426 TJm
+(void) 23.9102 Tj
+369.033 343.254 Td
+(*) 5.9776 Tj
+375.01 344.997 Td
+(buf,) 23.9102 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(len) 17.9327 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 307.537 Td
+/F122_0 9.9626 Tf
+(Absorbs) 33.2053 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+107.696 307.537 Td
+/F124_0 9.9626 Tf
+(len) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+128.119 307.537 Td
+/F122_0 9.9626 Tf
+(bytes) 21.031 Tj
+-250 TJm
+(from) 19.3673 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+214.544 307.537 Td
+/F124_0 9.9626 Tf
+(buf) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+232.477 307.537 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(entually) 32.0995 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(written) 28.224 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(\002le.) 15.2229 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 285.62 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(assignments) 48.7072 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 285.62 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 285.62 Td
+/F122_0 9.9626 Tf
+(:) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 174.87] cm
+0 0 468 107.597 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 274.098 Td
+/F124_0 9.9626 Tf
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 262.143 Td
+(if) 11.9551 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(buf) 17.9327 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(len) 17.9327 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(0) 5.9776 Tj
+90 250.188 Td
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+98.488 238.232 Td
+(if) 11.9551 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(opened) 35.8654 Tj
+-426 TJm
+(with) 23.9102 Tj
+-426 TJm
+(BZ2_bzReadOpen) 83.6858 Tj
+90 226.277 Td
+(BZ_IO_ERROR) 65.7532 Tj
+98.488 214.322 Td
+(if) 11.9551 Tj
+-426 TJm
+(there) 29.8878 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(an) 11.9551 Tj
+-426 TJm
+(error) 29.8878 Tj
+-426 TJm
+(writing) 41.8429 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(file.) 29.8878 Tj
+90 202.367 Td
+(BZ_OK) 29.8878 Tj
+98.488 190.412 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 144.249 Td
+/F116_0 17.2154 Tf
+(3.4.7.) 43.0729 Tj
+-278 TJm
+(BZ2_bzWriteClose) 151.134 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+/F122_0 9.9626 Tf
+(23) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 24 27
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 576.538] cm
+0 0 468 143.462 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(void) 23.9102 Tj
+-426 TJm
+(BZ2_bzWriteClose\() 101.6185 Tj
+-426 TJm
+(int) 17.9327 Tj
+246.194 709.888 Td
+(*) 5.9776 Tj
+252.172 711.631 Td
+(bzerror,) 47.8205 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+340.102 709.888 Td
+(*) 5.9776 Tj
+350.323 711.631 Td
+(f,) 11.9551 Tj
+187.611 699.676 Td
+(int) 17.9327 Tj
+-426 TJm
+(abandon,) 47.8205 Tj
+187.611 687.721 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+257.609 685.978 Td
+(*) 5.9776 Tj
+267.83 687.721 Td
+(nbytes_in,) 59.7756 Tj
+187.611 675.766 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+257.609 674.022 Td
+(*) 5.9776 Tj
+267.83 675.766 Td
+(nbytes_out) 59.7756 Tj
+-426 TJm
+(\);) 11.9551 Tj
+90 651.856 Td
+(void) 23.9102 Tj
+-426 TJm
+(BZ2_bzWriteClose64\() 113.5736 Tj
+-426 TJm
+(int) 17.9327 Tj
+258.149 650.112 Td
+(*) 5.9776 Tj
+264.127 651.856 Td
+(bzerror,) 47.8205 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+352.057 650.112 Td
+(*) 5.9776 Tj
+362.278 651.856 Td
+(f,) 11.9551 Tj
+196.099 639.9 Td
+(int) 17.9327 Tj
+-426 TJm
+(abandon,) 47.8205 Tj
+196.099 627.945 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+266.097 626.202 Td
+(*) 5.9776 Tj
+276.318 627.945 Td
+(nbytes_in_lo32,) 89.6634 Tj
+196.099 615.99 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+266.097 614.247 Td
+(*) 5.9776 Tj
+276.318 615.99 Td
+(nbytes_in_hi32,) 89.6634 Tj
+196.099 604.035 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+266.097 602.291 Td
+(*) 5.9776 Tj
+276.318 604.035 Td
+(nbytes_out_lo32,) 95.641 Tj
+196.099 592.08 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+266.097 590.336 Td
+(*) 5.9776 Tj
+276.318 592.08 Td
+(nbytes_out_hi32) 89.6634 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 554.62 Td
+/F122_0 9.9626 Tf
+(Compresses) 48.1492 Tj
+-403 TJm
+(and) 14.386 Tj
+-402 TJm
+(\003ushes) 27.6761 Tj
+-403 TJm
+(to) 7.7509 Tj
+-403 TJm
+(the) 12.1743 Tj
+-402 TJm
+(compressed) 47.0334 Tj
+-403 TJm
+(\002le) 12.7322 Tj
+-402 TJm
+(all) 9.9626 Tj
+-403 TJm
+(data) 16.5977 Tj
+-403 TJm
+(so) 8.8568 Tj
+-402 TJm
+(f) 3.3175 Tj
+10 TJm
+(ar) 7.7409 Tj
+-403 TJm
+(supplied) 33.7633 Tj
+-403 TJm
+(by) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+384.152 554.62 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWrite) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+449.906 554.62 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-768 TJm
+(The) 15.4918 Tj
+-403 TJm
+(logical) 27.1182 Tj
+-402 TJm
+(end-of-) 29.3199 Tj
+72 542.665 Td
+(stream) 26.5603 Tj
+-352 TJm
+(mark) 20.4731 Tj
+10 TJm
+(ers) 11.6164 Tj
+-352 TJm
+(are) 12.1643 Tj
+-353 TJm
+(also) 16.0497 Tj
+-352 TJm
+(written,) 30.7147 Tj
+-378 TJm
+(so) 8.8568 Tj
+-352 TJm
+(subsequent) 44.2738 Tj
+-352 TJm
+(calls) 18.2614 Tj
+-352 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+300.456 542.665 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWrite) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+369.718 542.665 Td
+/F122_0 9.9626 Tf
+(are) 12.1643 Tj
+-352 TJm
+(ille) 12.7322 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(al.) 9.6836 Tj
+-1234 TJm
+(All) 12.7322 Tj
+-352 TJm
+(memory) 33.2053 Tj
+-352 TJm
+(associated) 40.9463 Tj
+-352 TJm
+(with) 17.7135 Tj
+72 530.71 Td
+(the) 12.1743 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+151.411 530.71 Td
+/F124_0 9.9626 Tf
+(b) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.88 530.71 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(released.) 35.1281 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+207.231 530.71 Td
+/F124_0 9.9626 Tf
+(fflush) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+245.587 530.71 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(called) 23.7907 Tj
+-250 TJm
+(on) 9.9626 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(\002le,) 15.2229 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(not) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+422.771 530.71 Td
+/F124_0 9.9626 Tf
+(fclose) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+458.636 530.71 Td
+/F122_0 9.9626 Tf
+(') 3.3175 Tj
+50 TJm
+(d.) 7.472 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 508.792 Td
+(If) 6.6351 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.574 508.792 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteClose) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+180.155 508.792 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-295 TJm
+(called) 23.7907 Tj
+-295 TJm
+(to) 7.7509 Tj
+-295 TJm
+(clean) 21.0211 Tj
+-295 TJm
+(up) 9.9626 Tj
+-295 TJm
+(after) 18.2515 Tj
+-295 TJm
+(an) 9.4047 Tj
+-295 TJm
+(error) 19.3573 Tj
+40 TJm
+(,) 2.4907 Tj
+-306 TJm
+(the) 12.1743 Tj
+-295 TJm
+(only) 17.7135 Tj
+-295 TJm
+(action) 24.3486 Tj
+-295 TJm
+(is) 6.6451 Tj
+-295 TJm
+(to) 7.7509 Tj
+-295 TJm
+(release) 27.6562 Tj
+-295 TJm
+(the) 12.1743 Tj
+-295 TJm
+(memory) 33.2053 Tj
+65 TJm
+(.) 2.4907 Tj
+-891 TJm
+(The) 15.4918 Tj
+-295 TJm
+(library) 26.5603 Tj
+72 496.837 Td
+(records) 29.3199 Tj
+-289 TJm
+(the) 12.1743 Tj
+-289 TJm
+(error) 19.3573 Tj
+-289 TJm
+(codes) 22.6848 Tj
+-289 TJm
+(issued) 24.9065 Tj
+-289 TJm
+(by) 9.9626 Tj
+-289 TJm
+(pre) 12.7222 Tj
+25 TJm
+(vious) 21.589 Tj
+-289 TJm
+(calls,) 20.7521 Tj
+-299 TJm
+(so) 8.8568 Tj
+-289 TJm
+(this) 14.396 Tj
+-289 TJm
+(situation) 34.3212 Tj
+-289 TJm
+(will) 15.5018 Tj
+-289 TJm
+(be) 9.4047 Tj
+-289 TJm
+(detected) 33.1954 Tj
+-289 TJm
+(automatically) 54.2364 Tj
+65 TJm
+(.) 2.4907 Tj
+-427 TJm
+(There) 23.2328 Tj
+-289 TJm
+(is) 6.6451 Tj
+-289 TJm
+(no) 9.9626 Tj
+-289 TJm
+(attempt) 29.8878 Tj
+72 484.882 Td
+(to) 7.7509 Tj
+-263 TJm
+(complete) 36.5229 Tj
+-262 TJm
+(the) 12.1743 Tj
+-263 TJm
+(compression) 50.3609 Tj
+-263 TJm
+(operation,) 40.1194 Tj
+-265 TJm
+(nor) 13.2801 Tj
+-263 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+258.308 484.882 Td
+/F124_0 9.9626 Tf
+(fflush) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+296.79 484.882 Td
+/F122_0 9.9626 Tf
+(the) 12.1743 Tj
+-263 TJm
+(compressed) 47.0334 Tj
+-262 TJm
+(\002le.) 15.2229 Tj
+-696 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-263 TJm
+(can) 13.8281 Tj
+-263 TJm
+(force) 20.4632 Tj
+-262 TJm
+(this) 14.396 Tj
+-263 TJm
+(beha) 18.8094 Tj
+20 TJm
+(viour) 21.031 Tj
+-263 TJm
+(to) 7.7509 Tj
+-262 TJm
+(happen) 28.772 Tj
+72 472.926 Td
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(case) 17.1456 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(no) 9.9626 Tj
+-250 TJm
+(error) 19.3573 Tj
+40 TJm
+(,) 2.4907 Tj
+-250 TJm
+(by) 9.9626 Tj
+-250 TJm
+(passing) 29.8878 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(nonzero) 32.0895 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue) 16.5977 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.015 472.926 Td
+/F124_0 9.9626 Tf
+(abandon) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+346.858 472.926 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 451.009 Td
+(If) 6.6351 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+80.597 451.009 Td
+/F124_0 9.9626 Tf
+(nbytes_in) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+136.358 451.009 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-197 TJm
+(non-null,) 36.2539 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+183.287 449.265 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+189.265 451.009 Td
+(nbytes_in) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+245.025 451.009 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-197 TJm
+(be) 9.4047 Tj
+-197 TJm
+(set) 11.0684 Tj
+-197 TJm
+(to) 7.7509 Tj
+-197 TJm
+(be) 9.4047 Tj
+-197 TJm
+(the) 12.1743 Tj
+-197 TJm
+(total) 17.7135 Tj
+-197 TJm
+(v) 4.9813 Tj
+20 TJm
+(olume) 24.9065 Tj
+-197 TJm
+(of) 8.2988 Tj
+-197 TJm
+(uncompressed) 56.996 Tj
+-197 TJm
+(data) 16.5977 Tj
+-197 TJm
+(handled.) 34.0322 Tj
+-584 TJm
+(Similarly) 37.0908 Tj
+65 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 439.053 Td
+/F124_0 9.9626 Tf
+(nbytes_out) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+134.716 439.053 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-295 TJm
+(be) 9.4047 Tj
+-295 TJm
+(set) 11.0684 Tj
+-295 TJm
+(to) 7.7509 Tj
+-295 TJm
+(the) 12.1743 Tj
+-295 TJm
+(total) 17.7135 Tj
+-295 TJm
+(v) 4.9813 Tj
+20 TJm
+(olume) 24.9065 Tj
+-295 TJm
+(of) 8.2988 Tj
+-296 TJm
+(compressed) 47.0334 Tj
+-295 TJm
+(data) 16.5977 Tj
+-295 TJm
+(written.) 30.7147 Tj
+-890 TJm
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-295 TJm
+(compatibility) 53.1405 Tj
+-295 TJm
+(with) 17.7135 Tj
+-295 TJm
+(older) 20.4731 Tj
+-295 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersions) 28.224 Tj
+-296 TJm
+(of) 8.2988 Tj
+72 427.098 Td
+(the) 12.1743 Tj
+-283 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+118.294 427.098 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteClose) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.753 427.098 Td
+/F122_0 9.9626 Tf
+(only) 17.7135 Tj
+-283 TJm
+(yields) 23.8007 Tj
+-283 TJm
+(the) 12.1743 Tj
+-282 TJm
+(lo) 7.7509 Tj
+25 TJm
+(wer) 14.9339 Tj
+-283 TJm
+(32) 9.9626 Tj
+-283 TJm
+(bits) 14.396 Tj
+-283 TJm
+(of) 8.2988 Tj
+-283 TJm
+(these) 20.4731 Tj
+-282 TJm
+(counts.) 28.503 Tj
+-817 TJm
+(Use) 15.4918 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+423.499 427.098 Td
+/F124_0 9.9626 Tf
+(BZ2_bzWriteClose64) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+533.913 427.098 Td
+/F122_0 9.9626 Tf
+(if) 6.0871 Tj
+72 415.143 Td
+(you) 14.9439 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(full) 13.8381 Tj
+-250 TJm
+(64) 9.9626 Tj
+-250 TJm
+(bit) 10.5205 Tj
+-250 TJm
+(counts.) 28.503 Tj
+-620 TJm
+(These) 23.7907 Tj
+-250 TJm
+(tw) 9.9626 Tj
+10 TJm
+(o) 4.9813 Tj
+-250 TJm
+(functions) 37.0808 Tj
+-250 TJm
+(are) 12.1643 Tj
+-250 TJm
+(otherwise) 38.7346 Tj
+-250 TJm
+(absolutely) 40.9562 Tj
+-250 TJm
+(identical.) 36.8018 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 393.225 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(assignments) 48.7072 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 393.225 Td
+/F124_0 9.9626 Tf
+(bzerror) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 393.225 Td
+/F122_0 9.9626 Tf
+(:) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 306.386] cm
+0 0 468 83.686 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 381.704 Td
+/F124_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR) 101.6185 Tj
+98.488 369.749 Td
+(if) 11.9551 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(opened) 35.8654 Tj
+-426 TJm
+(with) 23.9102 Tj
+-426 TJm
+(BZ2_bzReadOpen) 83.6858 Tj
+90 357.793 Td
+(BZ_IO_ERROR) 65.7532 Tj
+98.488 345.838 Td
+(if) 11.9551 Tj
+-426 TJm
+(there) 29.8878 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(an) 11.9551 Tj
+-426 TJm
+(error) 29.8878 Tj
+-426 TJm
+(writing) 41.8429 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(file) 23.9102 Tj
+90 333.883 Td
+(BZ_OK) 29.8878 Tj
+98.488 321.928 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 275.765 Td
+/F116_0 17.2154 Tf
+(3.4.8.) 43.0729 Tj
+-278 TJm
+(Handling) 73.6475 Tj
+-278 TJm
+(embed) 55.4852 Tj
+10 TJm
+(ded) 30.609 Tj
+-278 TJm
+(compressed) 101.4159 Tj
+-278 TJm
+(data) 35.3949 Tj
+-278 TJm
+(streams) 66.0211 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 253.847 Td
+/F122_0 9.9626 Tf
+(The) 15.4918 Tj
+-203 TJm
+(high-le) 28.224 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-203 TJm
+(library) 26.5603 Tj
+-203 TJm
+(f) 3.3175 Tj
+10 TJm
+(acilitates) 35.417 Tj
+-203 TJm
+(use) 13.2801 Tj
+-203 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+226.404 253.847 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+258.316 253.847 Td
+/F122_0 9.9626 Tf
+(data) 16.5977 Tj
+-203 TJm
+(streams) 30.4357 Tj
+-203 TJm
+(which) 24.3486 Tj
+-203 TJm
+(form) 19.3673 Tj
+-203 TJm
+(some) 21.031 Tj
+-203 TJm
+(part) 15.4918 Tj
+-203 TJm
+(of) 8.2988 Tj
+-203 TJm
+(a) 4.4234 Tj
+-204 TJm
+(surrounding,) 50.6399 Tj
+-212 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ger) 12.7222 Tj
+-203 TJm
+(data) 16.5977 Tj
+-203 TJm
+(stream.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 221.967 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-264 TJm
+(writing,) 31.2726 Tj
+-267 TJm
+(the) 12.1743 Tj
+-264 TJm
+(library) 26.5603 Tj
+-264 TJm
+(tak) 12.1743 Tj
+10 TJm
+(es) 8.2988 Tj
+-264 TJm
+(an) 9.4047 Tj
+-264 TJm
+(open) 19.3673 Tj
+-264 TJm
+(\002le) 12.7322 Tj
+-264 TJm
+(handle,) 29.0509 Tj
+-267 TJm
+(writes) 24.3486 Tj
+-264 TJm
+(compressed) 47.0334 Tj
+-264 TJm
+(data) 16.5977 Tj
+-264 TJm
+(to) 7.7509 Tj
+-264 TJm
+(it,) 8.0299 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+397.758 221.967 Td
+/F124_0 9.9626 Tf
+(fflush) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+433.624 221.967 Td
+/F122_0 9.9626 Tf
+(es) 8.2988 Tj
+-264 TJm
+(it) 5.5392 Tj
+-264 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-264 TJm
+(does) 18.2614 Tj
+-264 TJm
+(not) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+504.135 221.967 Td
+/F124_0 9.9626 Tf
+(fclose) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 210.012 Td
+/F122_0 9.9626 Tf
+(it.) 8.0299 Tj
+-675 TJm
+(The) 15.4918 Tj
+-259 TJm
+(calling) 27.1182 Tj
+-260 TJm
+(a) 4.4234 Tj
+1 TJm
+(pp) 9.9626 Tj
+-1 TJm
+(l) 2.7696 Tj
+1 TJm
+(ication) 27.1182 Tj
+-260 TJm
+(can) 13.8281 Tj
+-259 TJm
+(write) 20.4731 Tj
+-259 TJm
+(its) 9.4147 Tj
+-259 TJm
+(o) 4.9813 Tj
+25 TJm
+(wn) 12.1743 Tj
+-259 TJm
+(data) 16.5977 Tj
+-260 TJm
+(before) 25.4445 Tj
+-259 TJm
+(and) 14.386 Tj
+-259 TJm
+(after) 18.2515 Tj
+-259 TJm
+(the) 12.1743 Tj
+-259 TJm
+(compressed) 47.0334 Tj
+-260 TJm
+(dat) 12.1743 Tj
+1 TJm
+(a) 4.4234 Tj
+-260 TJm
+(stream,) 29.0509 Tj
+-261 TJm
+(using) 21.589 Tj
+-259 TJm
+(that) 14.9439 Tj
+-260 TJm
+(sam) 16.0497 Tj
+1 TJm
+(e) 4.4234 Tj
+-260 TJm
+(\002le) 12.7322 Tj
+81.963 198.056 Td
+(handle.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 176.139 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Reading) 33.2053 Tj
+-258 TJm
+(is) 6.6451 Tj
+-259 TJm
+(more) 20.4731 Tj
+-258 TJm
+(comple) 29.3299 Tj
+15 TJm
+(x,) 7.472 Tj
+-261 TJm
+(and) 14.386 Tj
+-258 TJm
+(the) 12.1743 Tj
+-258 TJm
+(f) 3.3175 Tj
+10 TJm
+(acilities) 30.9936 Tj
+-259 TJm
+(are) 12.1643 Tj
+-258 TJm
+(not) 12.7322 Tj
+-258 TJm
+(as) 8.2988 Tj
+-259 TJm
+(general) 29.3199 Tj
+-258 TJm
+(as) 8.2988 Tj
+-259 TJm
+(the) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-258 TJm
+(could) 22.1369 Tj
+-258 TJm
+(be) 9.4047 Tj
+-259 TJm
+(since) 20.4731 Tj
+-258 TJm
+(generality) 39.8404 Tj
+-259 TJm
+(is) 6.6451 Tj
+-258 TJm
+(hard) 17.7035 Tj
+-258 TJm
+(to) 7.7509 Tj
+-259 TJm
+(reconcile) 36.5129 Tj
+81.963 164.183 Td
+(with) 17.7135 Tj
+-432 TJm
+(ef) 7.7409 Tj
+25 TJm
+(\002cienc) 26.5603 Tj
+15 TJm
+(y) 4.9813 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.767 164.183 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+225.847 164.183 Td
+/F122_0 9.9626 Tf
+(reads) 21.0211 Tj
+-432 TJm
+(from) 19.3673 Tj
+-432 TJm
+(the) 12.1743 Tj
+-432 TJm
+(compressed) 47.0334 Tj
+-432 TJm
+(\002le) 12.7322 Tj
+-432 TJm
+(in) 7.7509 Tj
+-432 TJm
+(blocks) 26.0123 Tj
+-432 TJm
+(of) 8.2988 Tj
+-432 TJm
+(size) 15.4918 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+434.467 164.183 Td
+/F124_0 9.9626 Tf
+(BZ_MAX_UNUSED) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+516.479 164.183 Td
+/F122_0 9.9626 Tf
+(bytes,) 23.5217 Tj
+81.963 152.228 Td
+(and) 14.386 Tj
+-436 TJm
+(in) 7.7509 Tj
+-435 TJm
+(doing) 22.6948 Tj
+-436 TJm
+(so) 8.8568 Tj
+-436 TJm
+(probably) 35.417 Tj
+-436 TJm
+(will) 15.5018 Tj
+-435 TJm
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(ershoot) 29.3299 Tj
+-436 TJm
+(the) 12.1743 Tj
+-436 TJm
+(logical) 27.1182 Tj
+-435 TJm
+(end) 14.386 Tj
+-436 TJm
+(of) 8.2988 Tj
+-436 TJm
+(compressed) 47.0334 Tj
+-436 TJm
+(s) 3.8755 Tj
+1 TJm
+(tream.) 25.1755 Tj
+-1735 TJm
+(T) 6.0871 Tj
+80 TJm
+(o) 4.9813 Tj
+-436 TJm
+(reco) 17.1456 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-435 TJm
+(this) 14.396 Tj
+-436 TJm
+(data) 16.5977 Tj
+-436 TJm
+(once) 18.8094 Tj
+81.963 140.273 Td
+(decompression) 59.7656 Tj
+-290 TJm
+(has) 13.2801 Tj
+-289 TJm
+(ended,) 26.2813 Tj
+-300 TJm
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+207.321 140.273 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadGetUnused) 113.5736 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+323.782 140.273 Td
+/F122_0 9.9626 Tf
+(after) 18.2515 Tj
+-290 TJm
+(the) 12.1743 Tj
+-289 TJm
+(last) 13.8381 Tj
+-290 TJm
+(call) 14.386 Tj
+-290 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.164 140.273 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+467.826 140.273 Td
+/F122_0 9.9626 Tf
+(\(the) 15.4918 Tj
+-290 TJm
+(one) 14.386 Tj
+-290 TJm
+(returning) 36.5229 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 128.318 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.671 128.318 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(before) 25.4445 Tj
+-250 TJm
+(calling) 27.1182 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+238.047 128.318 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadClose) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+327.71 128.318 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+(24) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 25 28
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(This) 17.7135 Tj
+-271 TJm
+(mechanism) 45.3796 Tj
+-272 TJm
+(mak) 17.1556 Tj
+10 TJm
+(es) 8.2988 Tj
+-271 TJm
+(it) 5.5392 Tj
+-271 TJm
+(easy) 17.7035 Tj
+-271 TJm
+(to) 7.7509 Tj
+-272 TJm
+(decompress) 47.0334 Tj
+-271 TJm
+(multiple) 33.2153 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+293.313 710.037 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+325.903 710.037 Td
+/F122_0 9.9626 Tf
+(streams) 30.4357 Tj
+-271 TJm
+(placed) 26.0024 Tj
+-272 TJm
+(end-to-end.) 45.6486 Tj
+-374 TJm
+(As) 11.0684 Tj
+-271 TJm
+(the) 12.1743 Tj
+-271 TJm
+(end) 14.386 Tj
+-271 TJm
+(of) 8.2988 Tj
+-272 TJm
+(one) 14.386 Tj
+-271 TJm
+(stream,) 29.0509 Tj
+72 698.082 Td
+(when) 21.579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+96.195 698.082 Td
+/F124_0 9.9626 Tf
+(BZ2_bzRead) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.586 698.082 Td
+/F122_0 9.9626 Tf
+(returns) 27.6661 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.868 698.082 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+266.577 698.082 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-263 TJm
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+288.685 698.082 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadGetUnused) 113.5736 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+404.875 698.082 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-263 TJm
+(coll) 14.9439 Tj
+1 TJm
+(ect) 11.6164 Tj
+-263 TJm
+(the) 12.1743 Tj
+-263 TJm
+(unused) 28.224 Tj
+-262 TJm
+(data) 16.5977 Tj
+-263 TJm
+(\(cop) 17.7035 Tj
+10 TJm
+(y) 4.9813 Tj
+-262 TJm
+(it) 5.5392 Tj
+72 686.127 Td
+(into) 15.5018 Tj
+-265 TJm
+(your) 18.2614 Tj
+-265 TJm
+(o) 4.9813 Tj
+25 TJm
+(wn) 12.1743 Tj
+-265 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-265 TJm
+(some) 21.031 Tj
+25 TJm
+(where\).) 30.1468 Tj
+-711 TJm
+(That) 18.2614 Tj
+-265 TJm
+(data) 16.5977 Tj
+-265 TJm
+(forms) 23.2427 Tj
+-265 TJm
+(the) 12.1743 Tj
+-265 TJm
+(start) 17.1556 Tj
+-265 TJm
+(of) 8.2988 Tj
+-265 TJm
+(the) 12.1743 Tj
+-265 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-265 TJm
+(compressed) 47.0334 Tj
+-265 TJm
+(stream.) 29.0509 Tj
+-711 TJm
+(T) 6.0871 Tj
+80 TJm
+(o) 4.9813 Tj
+-265 TJm
+(start) 17.1556 Tj
+-265 TJm
+(uncompressing) 60.3235 Tj
+72 674.172 Td
+(that) 14.9439 Tj
+-246 TJm
+(ne) 9.4047 Tj
+15 TJm
+(xt) 7.7509 Tj
+-246 TJm
+(stream,) 29.0509 Tj
+-247 TJm
+(call) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+157.205 674.172 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadOpen) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+243.344 674.172 Td
+/F122_0 9.9626 Tf
+(ag) 9.4047 Tj
+5 TJm
+(ain,) 14.6649 Tj
+-247 TJm
+(feeding) 29.8778 Tj
+-246 TJm
+(in) 7.7509 Tj
+-246 TJm
+(the) 12.1743 Tj
+-247 TJm
+(unused) 28.224 Tj
+-246 TJm
+(data) 16.5977 Tj
+-246 TJm
+(via) 12.1743 Tj
+-246 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.967 674.172 Td
+/F124_0 9.9626 Tf
+(unused) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+444.286 674.172 Td
+/F122_0 9.9626 Tf
+(/) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+449.508 674.172 Td
+/F124_0 9.9626 Tf
+(nUnused) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+493.804 674.172 Td
+/F122_0 9.9626 Tf
+(parameters.) 46.1966 Tj
+72 662.217 Td
+(K) 7.193 Tj
+25 TJm
+(eep) 13.8281 Tj
+-263 TJm
+(doing) 22.6948 Tj
+-263 TJm
+(this) 14.396 Tj
+-264 TJm
+(until) 18.2714 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.622 662.217 Td
+/F124_0 9.9626 Tf
+(BZ_STREAM_END) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+238.952 662.217 Td
+/F122_0 9.9626 Tf
+(return) 23.7907 Tj
+-263 TJm
+(coincides) 37.6287 Tj
+-263 TJm
+(with) 17.7135 Tj
+-264 TJm
+(the) 12.1743 Tj
+-263 TJm
+(ph) 9.9626 Tj
+5 TJm
+(ysical) 23.2427 Tj
+-263 TJm
+(end) 14.386 Tj
+-263 TJm
+(of) 8.2988 Tj
+-263 TJm
+(\002le) 12.7322 Tj
+-263 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+423.124 662.217 Td
+/F124_0 9.9626 Tf
+(feof\(f\)) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+464.968 662.217 Td
+/F122_0 9.9626 Tf
+(\).) 5.8082 Tj
+-699 TJm
+(In) 8.2988 Tj
+-263 TJm
+(this) 14.396 Tj
+-263 TJm
+(situation) 34.3212 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 650.261 Td
+/F124_0 9.9626 Tf
+(BZ2_bzReadGetUnused) 113.5736 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.065 650.261 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(course) 26.0024 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(no) 9.9626 Tj
+-250 TJm
+(data.) 19.0883 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 628.344 Td
+(This) 17.7135 Tj
+-240 TJm
+(should) 26.5703 Tj
+-241 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-240 TJm
+(some) 21.031 Tj
+-241 TJm
+(feel) 14.9339 Tj
+-240 TJm
+(for) 11.6164 Tj
+-241 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-240 TJm
+(the) 12.1743 Tj
+-240 TJm
+(high-le) 28.224 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-241 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace) 13.2702 Tj
+-240 TJm
+(can) 13.8281 Tj
+-241 TJm
+(be) 9.4047 Tj
+-240 TJm
+(used.) 20.7521 Tj
+-614 TJm
+(If) 6.6351 Tj
+-240 TJm
+(you) 14.9439 Tj
+-241 TJm
+(require) 28.2141 Tj
+-240 TJm
+(e) 4.4234 Tj
+15 TJm
+(xtra) 15.4918 Tj
+-241 TJm
+(\003e) 9.9626 Tj
+15 TJm
+(xibi) 15.5018 Tj
+1 TJm
+(lity) 13.2901 Tj
+65 TJm
+(,) 2.4907 Tj
+-243 TJm
+(you') 18.2614 Tj
+10 TJm
+(ll) 5.5392 Tj
+-240 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-241 TJm
+(to) 7.7509 Tj
+72 616.389 Td
+(bite) 14.9439 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ullet) 17.7135 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(get) 12.1743 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(grips) 19.9252 Tj
+-250 TJm
+(with) 17.7135 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(lo) 7.7509 Tj
+25 TJm
+(w-le) 17.7035 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace.) 15.7608 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 585.767 Td
+/F116_0 17.2154 Tf
+(3.4.9.) 43.0729 Tj
+-278 TJm
+(Standar) 64.0929 Tj
+20 TJm
+(d) 10.5186 Tj
+-278 TJm
+(\002le-reading/writing) 154.009 Tj
+-278 TJm
+(code) 40.1807 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 563.85 Td
+/F122_0 9.9626 Tf
+(Here') 22.6749 Tj
+55 TJm
+(s) 3.8755 Tj
+-250 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(you') 18.2614 Tj
+50 TJm
+(d) 4.9813 Tj
+-250 TJm
+(write) 20.4731 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(\002le:) 15.5018 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 190.086] cm
+0 0 468 370.61 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 552.328 Td
+/F124_0 9.9626 Tf
+(FILE) 23.9102 Tj
+113.91 550.584 Td
+(*) 5.9776 Tj
+132.62 552.328 Td
+(f;) 11.9551 Tj
+90 540.373 Td
+(BZFILE) 35.8654 Tj
+125.866 538.629 Td
+(*) 5.9776 Tj
+136.087 540.373 Td
+(b;) 11.9551 Tj
+90 528.418 Td
+(int) 17.9327 Tj
+-2130 TJm
+(nBuf;) 29.8878 Tj
+90 516.462 Td
+(char) 23.9102 Tj
+-1704 TJm
+(buf[) 23.9102 Tj
+-426 TJm
+(/) 5.9776 Tj
+165.018 514.719 Td
+(*) 5.9776 Tj
+175.24 516.462 Td
+(whatever) 47.8205 Tj
+-426 TJm
+(size) 23.9102 Tj
+-426 TJm
+(you) 17.9327 Tj
+-426 TJm
+(like) 23.9102 Tj
+305.79 514.719 Td
+(*) 5.9776 Tj
+311.767 516.462 Td
+(/) 5.9776 Tj
+-426 TJm
+(];) 11.9551 Tj
+90 504.507 Td
+(int) 17.9327 Tj
+-2130 TJm
+(bzerror;) 47.8205 Tj
+90 492.552 Td
+(int) 17.9327 Tj
+-2130 TJm
+(nWritten;) 53.798 Tj
+90 468.642 Td
+(f) 5.9776 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(fopen) 29.8878 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+("myfile.bz2",) 77.7083 Tj
+-426 TJm
+("w") 17.9327 Tj
+-426 TJm
+(\);) 11.9551 Tj
+90 456.687 Td
+(if) 11.9551 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(!f) 11.9551 Tj
+-426 TJm
+(\)) 5.9776 Tj
+-426 TJm
+({) 5.9776 Tj
+94.244 444.731 Td
+(/) 5.9776 Tj
+100.222 442.988 Td
+(*) 5.9776 Tj
+110.443 444.731 Td
+(handle) 35.8654 Tj
+-426 TJm
+(error) 29.8878 Tj
+184.684 442.988 Td
+(*) 5.9776 Tj
+190.662 444.731 Td
+(/) 5.9776 Tj
+90 432.776 Td
+(}) 5.9776 Tj
+90 420.821 Td
+(b) 5.9776 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ2_bzWriteOpen\() 95.641 Tj
+-426 TJm
+(&bzerror,) 53.798 Tj
+-426 TJm
+(f,) 11.9551 Tj
+-426 TJm
+(9) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+90 408.866 Td
+(if) 11.9551 Tj
+-426 TJm
+(\(bzerror) 47.8205 Tj
+-426 TJm
+(!=) 11.9551 Tj
+-426 TJm
+(BZ_OK\)) 35.8654 Tj
+-426 TJm
+({) 5.9776 Tj
+94.244 396.911 Td
+(BZ2_bzWriteClose) 95.641 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+94.244 384.955 Td
+(/) 5.9776 Tj
+100.222 383.212 Td
+(*) 5.9776 Tj
+110.443 384.955 Td
+(handle) 35.8654 Tj
+-426 TJm
+(error) 29.8878 Tj
+184.684 383.212 Td
+(*) 5.9776 Tj
+190.662 384.955 Td
+(/) 5.9776 Tj
+90 373 Td
+(}) 5.9776 Tj
+90 349.09 Td
+(while) 29.8878 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(/) 5.9776 Tj
+140.331 347.346 Td
+(*) 5.9776 Tj
+150.553 349.09 Td
+(condition) 53.798 Tj
+208.595 347.346 Td
+(*) 5.9776 Tj
+214.572 349.09 Td
+(/) 5.9776 Tj
+-426 TJm
+(\)) 5.9776 Tj
+-426 TJm
+({) 5.9776 Tj
+94.244 337.135 Td
+(/) 5.9776 Tj
+100.222 335.391 Td
+(*) 5.9776 Tj
+110.443 337.135 Td
+(get) 17.9327 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(to) 11.9551 Tj
+-426 TJm
+(write) 29.8878 Tj
+-426 TJm
+(into) 23.9102 Tj
+-426 TJm
+(buf,) 23.9102 Tj
+-426 TJm
+(and) 17.9327 Tj
+-426 TJm
+(set) 17.9327 Tj
+-426 TJm
+(nBuf) 23.9102 Tj
+-426 TJm
+(appropriately) 77.7083 Tj
+421.874 335.391 Td
+(*) 5.9776 Tj
+427.852 337.135 Td
+(/) 5.9776 Tj
+94.244 325.18 Td
+(nWritten) 47.8205 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ2_bzWrite) 65.7532 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(&bzerror,) 53.798 Tj
+-426 TJm
+(b,) 11.9551 Tj
+-426 TJm
+(buf,) 23.9102 Tj
+-426 TJm
+(nBuf) 23.9102 Tj
+-426 TJm
+(\);) 11.9551 Tj
+94.244 313.224 Td
+(if) 11.9551 Tj
+-426 TJm
+(\(bzerror) 47.8205 Tj
+-426 TJm
+(==) 11.9551 Tj
+-426 TJm
+(BZ_IO_ERROR\)) 71.7307 Tj
+-426 TJm
+({) 5.9776 Tj
+102.732 301.269 Td
+(BZ2_bzWriteClose) 95.641 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(&bzerror,) 53.798 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+102.732 289.314 Td
+(/) 5.9776 Tj
+108.71 287.571 Td
+(*) 5.9776 Tj
+118.931 289.314 Td
+(handle) 35.8654 Tj
+-426 TJm
+(error) 29.8878 Tj
+193.172 287.571 Td
+(*) 5.9776 Tj
+199.15 289.314 Td
+(/) 5.9776 Tj
+94.244 277.359 Td
+(}) 5.9776 Tj
+90 265.404 Td
+(}) 5.9776 Tj
+90 241.493 Td
+(BZ2_bzWriteClose\() 101.6185 Tj
+-426 TJm
+(&bzerror,) 53.798 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+90 229.538 Td
+(if) 11.9551 Tj
+-426 TJm
+(\(bzerror) 47.8205 Tj
+-426 TJm
+(==) 11.9551 Tj
+-426 TJm
+(BZ_IO_ERROR\)) 71.7307 Tj
+-426 TJm
+({) 5.9776 Tj
+94.244 217.583 Td
+(/) 5.9776 Tj
+100.222 215.84 Td
+(*) 5.9776 Tj
+110.443 217.583 Td
+(handle) 35.8654 Tj
+-426 TJm
+(error) 29.8878 Tj
+184.684 215.84 Td
+(*) 5.9776 Tj
+190.662 217.583 Td
+(/) 5.9776 Tj
+90 205.628 Td
+(}) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 168.168 Td
+/F122_0 9.9626 Tf
+(And) 17.1556 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(read) 17.1456 Tj
+-250 TJm
+(from) 19.3673 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(\002le:) 15.5018 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(25) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 26 29
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 349.39] cm
+0 0 468 370.61 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(FILE) 23.9102 Tj
+113.91 709.888 Td
+(*) 5.9776 Tj
+132.62 711.631 Td
+(f;) 11.9551 Tj
+90 699.676 Td
+(BZFILE) 35.8654 Tj
+125.866 697.933 Td
+(*) 5.9776 Tj
+136.087 699.676 Td
+(b;) 11.9551 Tj
+90 687.721 Td
+(int) 17.9327 Tj
+-2130 TJm
+(nBuf;) 29.8878 Tj
+90 675.766 Td
+(char) 23.9102 Tj
+-1704 TJm
+(buf[) 23.9102 Tj
+-426 TJm
+(/) 5.9776 Tj
+165.018 674.022 Td
+(*) 5.9776 Tj
+175.24 675.766 Td
+(whatever) 47.8205 Tj
+-426 TJm
+(size) 23.9102 Tj
+-426 TJm
+(you) 17.9327 Tj
+-426 TJm
+(like) 23.9102 Tj
+305.79 674.022 Td
+(*) 5.9776 Tj
+311.767 675.766 Td
+(/) 5.9776 Tj
+-426 TJm
+(];) 11.9551 Tj
+90 663.811 Td
+(int) 17.9327 Tj
+-2130 TJm
+(bzerror;) 47.8205 Tj
+90 651.856 Td
+(int) 17.9327 Tj
+-2130 TJm
+(nWritten;) 53.798 Tj
+90 627.945 Td
+(f) 5.9776 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(fopen) 29.8878 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+("myfile.bz2",) 77.7083 Tj
+-426 TJm
+("r") 17.9327 Tj
+-426 TJm
+(\);) 11.9551 Tj
+90 615.99 Td
+(if) 11.9551 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(!f) 11.9551 Tj
+-426 TJm
+(\)) 5.9776 Tj
+-426 TJm
+({) 5.9776 Tj
+98.488 604.035 Td
+(/) 5.9776 Tj
+104.466 602.291 Td
+(*) 5.9776 Tj
+114.687 604.035 Td
+(handle) 35.8654 Tj
+-426 TJm
+(error) 29.8878 Tj
+188.928 602.291 Td
+(*) 5.9776 Tj
+194.906 604.035 Td
+(/) 5.9776 Tj
+90 592.08 Td
+(}) 5.9776 Tj
+90 580.125 Td
+(b) 5.9776 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ2_bzReadOpen) 83.6858 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(&bzerror,) 53.798 Tj
+-426 TJm
+(f,) 11.9551 Tj
+-426 TJm
+(0,) 11.9551 Tj
+-426 TJm
+(NULL,) 29.8878 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+90 568.169 Td
+(if) 11.9551 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(!=) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+-426 TJm
+(\)) 5.9776 Tj
+-426 TJm
+({) 5.9776 Tj
+98.488 556.214 Td
+(BZ2_bzReadClose) 89.6634 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(&bzerror,) 53.798 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+98.488 544.259 Td
+(/) 5.9776 Tj
+104.466 542.516 Td
+(*) 5.9776 Tj
+114.687 544.259 Td
+(handle) 35.8654 Tj
+-426 TJm
+(error) 29.8878 Tj
+188.928 542.516 Td
+(*) 5.9776 Tj
+194.906 544.259 Td
+(/) 5.9776 Tj
+90 532.304 Td
+(}) 5.9776 Tj
+90 508.393 Td
+(bzerror) 41.8429 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ_OK;) 35.8654 Tj
+90 496.438 Td
+(while) 29.8878 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(==) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+-426 TJm
+(&&) 11.9551 Tj
+-426 TJm
+(/) 5.9776 Tj
+252.948 494.695 Td
+(*) 5.9776 Tj
+263.17 496.438 Td
+(arbitrary) 53.798 Tj
+-426 TJm
+(other) 29.8878 Tj
+-426 TJm
+(conditions) 59.7756 Tj
+419.364 494.695 Td
+(*) 5.9776 Tj
+425.341 496.438 Td
+(/\)) 11.9551 Tj
+-426 TJm
+({) 5.9776 Tj
+98.488 484.483 Td
+(nBuf) 23.9102 Tj
+-426 TJm
+(=) 5.9776 Tj
+-426 TJm
+(BZ2_bzRead) 59.7756 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(&bzerror,) 53.798 Tj
+-426 TJm
+(b,) 11.9551 Tj
+-426 TJm
+(buf,) 23.9102 Tj
+-426 TJm
+(/) 5.9776 Tj
+319.478 482.74 Td
+(*) 5.9776 Tj
+329.7 484.483 Td
+(size) 23.9102 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(buf) 17.9327 Tj
+396.23 482.74 Td
+(*) 5.9776 Tj
+402.208 484.483 Td
+(/) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+98.488 472.528 Td
+(if) 11.9551 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(==) 11.9551 Tj
+-426 TJm
+(BZ_OK) 29.8878 Tj
+-426 TJm
+(\)) 5.9776 Tj
+-426 TJm
+({) 5.9776 Tj
+106.976 460.573 Td
+(/) 5.9776 Tj
+112.953 458.829 Td
+(*) 5.9776 Tj
+123.175 460.573 Td
+(do) 11.9551 Tj
+-426 TJm
+(something) 53.798 Tj
+-426 TJm
+(with) 23.9102 Tj
+-426 TJm
+(buf[0) 29.8878 Tj
+-426 TJm
+(..) 11.9551 Tj
+-426 TJm
+(nBuf-1]) 41.8429 Tj
+321.989 458.829 Td
+(*) 5.9776 Tj
+327.966 460.573 Td
+(/) 5.9776 Tj
+98.488 448.618 Td
+(}) 5.9776 Tj
+90 436.662 Td
+(}) 5.9776 Tj
+90 424.707 Td
+(if) 11.9551 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(bzerror) 41.8429 Tj
+-426 TJm
+(!=) 11.9551 Tj
+-426 TJm
+(BZ_STREAM_END) 77.7083 Tj
+-426 TJm
+(\)) 5.9776 Tj
+-426 TJm
+({) 5.9776 Tj
+102.732 412.752 Td
+(BZ2_bzReadClose) 89.6634 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(&bzerror,) 53.798 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+102.732 400.797 Td
+(/) 5.9776 Tj
+108.71 399.053 Td
+(*) 5.9776 Tj
+118.931 400.797 Td
+(handle) 35.8654 Tj
+-426 TJm
+(error) 29.8878 Tj
+193.172 399.053 Td
+(*) 5.9776 Tj
+199.15 400.797 Td
+(/) 5.9776 Tj
+90 388.842 Td
+(}) 5.9776 Tj
+-426 TJm
+(else) 23.9102 Tj
+-426 TJm
+({) 5.9776 Tj
+102.732 376.887 Td
+(BZ2_bzReadClose) 89.6634 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(&bzerror,) 53.798 Tj
+-426 TJm
+(b) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+90 364.931 Td
+(}) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 314.637 Td
+/F116_0 20.6585 Tf
+(3.5.) 34.4584 Tj
+-278 TJm
+(Utility) 57.3893 Tj
+-278 TJm
+(functions) 92.9633 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 284.016 Td
+/F116_0 17.2154 Tf
+(3.5.1.) 43.0729 Tj
+-278 TJm
+(BZ2_bzBuffT) 106.1502 Tj
+80 TJm
+(oBuffCompress) 129.1155 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 183.815] cm
+0 0 468 95.641 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 271.087 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzBuffToBuffCompress\() 149.439 Tj
+-426 TJm
+(char) 23.9102 Tj
+289.771 269.344 Td
+(*) 5.9776 Tj
+333.944 271.087 Td
+(dest,) 29.8878 Tj
+217.319 259.132 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+287.317 257.389 Td
+(*) 5.9776 Tj
+297.538 259.132 Td
+(destLen,) 47.8205 Tj
+217.319 247.177 Td
+(char) 23.9102 Tj
+241.23 245.434 Td
+(*) 5.9776 Tj
+285.403 247.177 Td
+(source,) 41.8429 Tj
+217.319 235.222 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+-852 TJm
+(sourceLen,) 59.7756 Tj
+217.319 223.267 Td
+(int) 17.9327 Tj
+-4686 TJm
+(blockSize100k,) 83.6858 Tj
+217.319 211.312 Td
+(int) 17.9327 Tj
+-4686 TJm
+(verbosity,) 59.7756 Tj
+217.319 199.356 Td
+(int) 17.9327 Tj
+-4686 TJm
+(workFactor) 59.7756 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 161.897 Td
+/F122_0 9.9626 Tf
+(Attempts) 36.5329 Tj
+-442 TJm
+(to) 7.7509 Tj
+-442 TJm
+(compress) 37.6287 Tj
+-443 TJm
+(the) 12.1743 Tj
+-442 TJm
+(data) 16.5977 Tj
+-442 TJm
+(in) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.87 161.897 Td
+/F124_0 9.9626 Tf
+(source[0) 47.8205 Tj
+-600 TJm
+(..) 11.9551 Tj
+-1200 TJm
+(sourceLen-1]) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+370.715 161.897 Td
+/F122_0 9.9626 Tf
+(into) 15.5018 Tj
+-442 TJm
+(the) 12.1743 Tj
+-443 TJm
+(dest) 16.0497 Tj
+1 TJm
+(ination) 27.6761 Tj
+-443 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+40 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+486.202 161.897 Td
+/F124_0 9.9626 Tf
+(dest[0) 35.8654 Tj
+-600 TJm
+(..) 11.9551 Tj
+72 148.198 Td
+(*) 5.9776 Tj
+77.978 149.942 Td
+(destLen-1]) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+137.753 149.942 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1393 TJm
+(If) 6.6351 Tj
+-379 TJm
+(the) 12.1743 Tj
+-379 TJm
+(destination) 43.7259 Tj
+-379 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-378 TJm
+(is) 6.6451 Tj
+-379 TJm
+(big) 12.7322 Tj
+-379 TJm
+(enough,) 31.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+318.487 148.198 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+324.464 149.942 Td
+(destLen) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+370.082 149.942 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-379 TJm
+(set) 11.0684 Tj
+-379 TJm
+(to) 7.7509 Tj
+-378 TJm
+(the) 12.1743 Tj
+-379 TJm
+(size) 15.4918 Tj
+-379 TJm
+(of) 8.2988 Tj
+-379 TJm
+(the) 12.1743 Tj
+-379 TJm
+(compressed) 47.0334 Tj
+-379 TJm
+(data,) 19.0883 Tj
+72 137.986 Td
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+89.527 137.986 Td
+/F124_0 9.9626 Tf
+(BZ_OK) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+122.556 137.986 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-315 TJm
+(returned.) 35.686 Tj
+-1012 TJm
+(If) 6.6351 Tj
+-315 TJm
+(the) 12.1743 Tj
+-316 TJm
+(compressed) 47.0334 Tj
+-315 TJm
+(data) 16.5977 Tj
+-315 TJm
+(w) 7.193 Tj
+10 TJm
+(on') 13.2801 Tj
+18 TJm
+(t) 2.7696 Tj
+-316 TJm
+(\002t,) 10.7995 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+313.323 136.243 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+319.3 137.986 Td
+(destLen) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+364.285 137.986 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-315 TJm
+(unchanged,) 45.6486 Tj
+-332 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+440.551 137.986 Td
+/F124_0 9.9626 Tf
+(BZ_OUTBUFF_FULL) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+533.355 137.986 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+72 126.031 Td
+(returned.) 35.686 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 104.113 Td
+(Compression) 52.5826 Tj
+-297 TJm
+(in) 7.7509 Tj
+-297 TJm
+(this) 14.396 Tj
+-297 TJm
+(manner) 29.8778 Tj
+-297 TJm
+(is) 6.6451 Tj
+-297 TJm
+(a) 4.4234 Tj
+-297 TJm
+(one-shot) 34.3112 Tj
+-297 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ent,) 14.6649 Tj
+-309 TJm
+(done) 19.3673 Tj
+-297 TJm
+(with) 17.7135 Tj
+-297 TJm
+(a) 4.4234 Tj
+-297 TJm
+(single) 23.8007 Tj
+-297 TJm
+(call) 14.386 Tj
+-297 TJm
+(to) 7.7509 Tj
+-297 TJm
+(this) 14.396 Tj
+-297 TJm
+(function.) 35.696 Tj
+-903 TJm
+(The) 15.4918 Tj
+-297 TJm
+(resulting) 34.8691 Tj
+-297 TJm
+(compressed) 47.0334 Tj
+72 92.158 Td
+(data) 16.5977 Tj
+-296 TJm
+(is) 6.6451 Tj
+-296 TJm
+(a) 4.4234 Tj
+-296 TJm
+(complete) 36.5229 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+147.988 92.158 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+180.825 92.158 Td
+/F122_0 9.9626 Tf
+(format) 26.5603 Tj
+-296 TJm
+(data) 16.5977 Tj
+-296 TJm
+(stream.) 29.0509 Tj
+-897 TJm
+(There) 23.2328 Tj
+-296 TJm
+(is) 6.6451 Tj
+-296 TJm
+(no) 9.9626 Tj
+-296 TJm
+(mechanism) 45.3796 Tj
+-296 TJm
+(for) 11.6164 Tj
+-296 TJm
+(making) 29.8878 Tj
+-296 TJm
+(additional) 39.8504 Tj
+-296 TJm
+(calls) 18.2614 Tj
+-296 TJm
+(to) 7.7509 Tj
+-296 TJm
+(pro) 13.2801 Tj
+15 TJm
+(vide) 17.1556 Tj
+-296 TJm
+(e) 4.4234 Tj
+15 TJm
+(xtra) 15.4918 Tj
+72 80.203 Td
+(input) 20.4831 Tj
+-250 TJm
+(data.) 19.0883 Tj
+-620 TJm
+(If) 6.6351 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-250 TJm
+(that) 14.9439 Tj
+-250 TJm
+(kind) 17.7135 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(mechanism,) 47.8703 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(lo) 7.7509 Tj
+25 TJm
+(w-le) 17.7035 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(el) 7.193 Tj
+-250 TJm
+(interf) 21.579 Tj
+10 TJm
+(ace.) 15.7608 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(26) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 27 30
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-223 TJm
+(the) 12.1743 Tj
+-224 TJm
+(meaning) 34.3112 Tj
+-223 TJm
+(of) 8.2988 Tj
+-224 TJm
+(parameters) 43.7059 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+195.306 710.037 Td
+/F124_0 9.9626 Tf
+(blockSize100k) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+273.015 710.037 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+277.784 710.037 Td
+/F124_0 9.9626 Tf
+(verbosity) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+333.808 710.037 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+350.42 710.037 Td
+/F124_0 9.9626 Tf
+(workFactor) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+410.196 710.037 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-229 TJm
+(see) 12.7222 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+429.913 710.037 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 710.037 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 688.12 Td
+(T) 6.0871 Tj
+80 TJm
+(o) 4.9813 Tj
+-410 TJm
+(guarantee) 38.7246 Tj
+-410 TJm
+(that) 14.9439 Tj
+-410 TJm
+(the) 12.1743 Tj
+-410 TJm
+(compressed) 47.0334 Tj
+-410 TJm
+(data) 16.5977 Tj
+-410 TJm
+(will) 15.5018 Tj
+-410 TJm
+(\002t) 8.3088 Tj
+-410 TJm
+(in) 7.7509 Tj
+-410 TJm
+(its) 9.4147 Tj
+-410 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+40 TJm
+(,) 2.4907 Tj
+-450 TJm
+(allocate) 30.9837 Tj
+-410 TJm
+(an) 9.4047 Tj
+-410 TJm
+(output) 25.4644 Tj
+-410 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-411 TJm
+(of) 8.2988 Tj
+-410 TJm
+(size) 15.4918 Tj
+-410 TJm
+(1%) 13.2801 Tj
+-410 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ger) 12.7222 Tj
+-410 TJm
+(than) 17.1556 Tj
+-410 TJm
+(the) 12.1743 Tj
+72 676.164 Td
+(uncompressed) 56.996 Tj
+-250 TJm
+(data,) 19.0883 Tj
+-250 TJm
+(plus) 16.6077 Tj
+-250 TJm
+(six) 11.6264 Tj
+-250 TJm
+(hundred) 32.6474 Tj
+-250 TJm
+(e) 4.4234 Tj
+15 TJm
+(xtra) 15.4918 Tj
+-250 TJm
+(bytes.) 23.5217 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 654.247 Td
+/F124_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress) 155.4166 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+230.553 654.247 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-315 TJm
+(not) 12.7322 Tj
+-315 TJm
+(write) 20.4731 Tj
+-314 TJm
+(data) 16.5977 Tj
+-315 TJm
+(at) 7.193 Tj
+-315 TJm
+(or) 8.2988 Tj
+-315 TJm
+(be) 9.4047 Tj
+15 TJm
+(yond) 19.9252 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+362.484 654.247 Td
+/F124_0 9.9626 Tf
+(dest[) 29.8878 Tj
+392.372 652.503 Td
+(*) 5.9776 Tj
+398.349 654.247 Td
+(destLen]) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+446.17 654.247 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-331 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-315 TJm
+(in) 7.7509 Tj
+-315 TJm
+(case) 17.1456 Tj
+-314 TJm
+(of) 8.2988 Tj
+-315 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+72 642.291 Td
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er\003o) 18.2614 Tj
+25 TJm
+(w) 7.193 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 620.374 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 451.905] cm
+0 0 468 167.372 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 610.909 Td
+/F124_0 9.9626 Tf
+(BZ_CONFIG_ERROR) 89.6634 Tj
+98.488 598.954 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(library) 41.8429 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(mis-compiled) 71.7307 Tj
+90 586.999 Td
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 575.044 Td
+(if) 11.9551 Tj
+-426 TJm
+(dest) 23.9102 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(destLen) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+98.488 563.089 Td
+(or) 11.9551 Tj
+-426 TJm
+(blockSize100k) 77.7083 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(1) 5.9776 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(blockSize100k) 77.7083 Tj
+-426 TJm
+(>) 5.9776 Tj
+-426 TJm
+(9) 5.9776 Tj
+98.488 551.133 Td
+(or) 11.9551 Tj
+-426 TJm
+(verbosity) 53.798 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(verbosity) 53.798 Tj
+-426 TJm
+(>) 5.9776 Tj
+-426 TJm
+(4) 5.9776 Tj
+98.488 539.178 Td
+(or) 11.9551 Tj
+-426 TJm
+(workFactor) 59.7756 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(workFactor) 59.7756 Tj
+-426 TJm
+(>) 5.9776 Tj
+-426 TJm
+(250) 17.9327 Tj
+90 527.223 Td
+(BZ_MEM_ERROR) 71.7307 Tj
+98.488 515.268 Td
+(if) 11.9551 Tj
+-426 TJm
+(insufficient) 71.7307 Tj
+-426 TJm
+(memory) 35.8654 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(available) 53.798 Tj
+90 503.313 Td
+(BZ_OUTBUFF_FULL) 89.6634 Tj
+98.488 491.357 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(size) 23.9102 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(exceeds) 41.8429 Tj
+341.655 489.614 Td
+(*) 5.9776 Tj
+347.633 491.357 Td
+(destLen) 41.8429 Tj
+90 479.402 Td
+(BZ_OK) 29.8878 Tj
+98.488 467.447 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 421.284 Td
+/F116_0 17.2154 Tf
+(3.5.2.) 43.0729 Tj
+-278 TJm
+(BZ2_bzBuffT) 106.1502 Tj
+80 TJm
+(oBuffDecompress) 148.259 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 333.038] cm
+0 0 468 83.686 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 408.356 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzBuffToBuffDecompress\() 161.3941 Tj
+-426 TJm
+(char) 23.9102 Tj
+301.726 406.612 Td
+(*) 5.9776 Tj
+345.899 408.356 Td
+(dest,) 29.8878 Tj
+225.807 396.401 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+295.805 394.657 Td
+(*) 5.9776 Tj
+306.026 396.401 Td
+(destLen,) 47.8205 Tj
+225.807 384.446 Td
+(char) 23.9102 Tj
+249.717 382.702 Td
+(*) 5.9776 Tj
+293.891 384.446 Td
+(source,) 41.8429 Tj
+225.807 372.49 Td
+(unsigned) 47.8205 Tj
+-426 TJm
+(int) 17.9327 Tj
+-852 TJm
+(sourceLen,) 59.7756 Tj
+225.807 360.535 Td
+(int) 17.9327 Tj
+-4686 TJm
+(small,) 35.8654 Tj
+225.807 348.58 Td
+(int) 17.9327 Tj
+-4686 TJm
+(verbosity) 53.798 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 311.12 Td
+/F122_0 9.9626 Tf
+(Attempts) 36.5329 Tj
+-358 TJm
+(to) 7.7509 Tj
+-359 TJm
+(decompress) 47.0334 Tj
+-358 TJm
+(the) 12.1743 Tj
+-358 TJm
+(data) 16.5977 Tj
+-359 TJm
+(in) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.259 311.12 Td
+/F124_0 9.9626 Tf
+(source[0) 47.8205 Tj
+-600 TJm
+(..) 11.9551 Tj
+-1200 TJm
+(sourceLen-1]) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+374.268 311.12 Td
+/F122_0 9.9626 Tf
+(into) 15.5018 Tj
+-358 TJm
+(the) 12.1743 Tj
+-359 TJm
+(destination) 43.7259 Tj
+-358 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+40 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+486.202 311.12 Td
+/F124_0 9.9626 Tf
+(dest[0) 35.8654 Tj
+-600 TJm
+(..) 11.9551 Tj
+72 297.422 Td
+(*) 5.9776 Tj
+77.978 299.165 Td
+(destLen-1]) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+137.753 299.165 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1123 TJm
+(If) 6.6351 Tj
+-334 TJm
+(the) 12.1743 Tj
+-334 TJm
+(destination) 43.7259 Tj
+-334 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-334 TJm
+(is) 6.6451 Tj
+-334 TJm
+(big) 12.7322 Tj
+-334 TJm
+(enough,) 31.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+312.554 297.422 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+318.531 299.165 Td
+(destLen) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.701 299.165 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-334 TJm
+(set) 11.0684 Tj
+-334 TJm
+(to) 7.7509 Tj
+-334 TJm
+(the) 12.1743 Tj
+-334 TJm
+(size) 15.4918 Tj
+-333 TJm
+(of) 8.2988 Tj
+-334 TJm
+(the) 12.1743 Tj
+-334 TJm
+(uncompressed) 56.996 Tj
+-334 TJm
+(data,) 19.0883 Tj
+72 287.21 Td
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+89.527 287.21 Td
+/F124_0 9.9626 Tf
+(BZ_OK) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+122.556 287.21 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-315 TJm
+(returned.) 35.686 Tj
+-1012 TJm
+(If) 6.6351 Tj
+-315 TJm
+(the) 12.1743 Tj
+-316 TJm
+(compressed) 47.0334 Tj
+-315 TJm
+(data) 16.5977 Tj
+-315 TJm
+(w) 7.193 Tj
+10 TJm
+(on') 13.2801 Tj
+18 TJm
+(t) 2.7696 Tj
+-316 TJm
+(\002t,) 10.7995 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+313.323 285.467 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+319.3 287.21 Td
+(destLen) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+364.285 287.21 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-315 TJm
+(unchanged,) 45.6486 Tj
+-332 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+440.551 287.21 Td
+/F124_0 9.9626 Tf
+(BZ_OUTBUFF_FULL) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+533.355 287.21 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+72 275.255 Td
+(returned.) 35.686 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 253.337 Td
+/F124_0 9.9626 Tf
+(source) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+110.981 253.337 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-313 TJm
+(assumed) 34.3112 Tj
+-312 TJm
+(to) 7.7509 Tj
+-313 TJm
+(hold) 17.7135 Tj
+-313 TJm
+(a) 4.4234 Tj
+-313 TJm
+(complete) 36.5229 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+237.04 253.337 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+270.044 253.337 Td
+/F122_0 9.9626 Tf
+(format) 26.5603 Tj
+-313 TJm
+(data) 16.5977 Tj
+-312 TJm
+(stream.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+353.446 253.337 Td
+/F124_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress) 155.4166 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.978 253.337 Td
+/F122_0 9.9626 Tf
+(tries) 17.1556 Tj
+-313 TJm
+(to) 7.7509 Tj
+72 241.382 Td
+(decompress) 47.0334 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(entirety) 30.4357 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(stream) 26.5603 Tj
+-250 TJm
+(into) 15.5018 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(output) 25.4644 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+55 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 219.464 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(meaning) 34.3112 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(parameters) 43.7059 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+196.631 219.464 Td
+/F124_0 9.9626 Tf
+(small) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+229.01 219.464 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+245.887 219.464 Td
+/F124_0 9.9626 Tf
+(verbosity) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+299.685 219.464 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(see) 12.7222 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+319.879 219.464 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompressInit) 119.5512 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+439.431 219.464 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 197.546 Td
+(Because) 33.1954 Tj
+-250 TJm
+(the) 12.1743 Tj
+-249 TJm
+(compression) 50.3609 Tj
+-250 TJm
+(ratio) 18.2614 Tj
+-249 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-249 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(data) 16.5977 Tj
+-249 TJm
+(cannot) 26.5603 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(kno) 14.9439 Tj
+25 TJm
+(wn) 12.1743 Tj
+-249 TJm
+(in) 7.7509 Tj
+-250 TJm
+(adv) 14.386 Tj
+25 TJm
+(ance,) 20.7421 Tj
+-249 TJm
+(there) 19.9152 Tj
+-250 TJm
+(is) 6.6451 Tj
+-249 TJm
+(no) 9.9626 Tj
+-250 TJm
+(easy) 17.7035 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ay) 9.4047 Tj
+-249 TJm
+(to) 7.7509 Tj
+-250 TJm
+(guarantee) 38.7246 Tj
+72 185.591 Td
+(that) 14.9439 Tj
+-286 TJm
+(the) 12.1743 Tj
+-287 TJm
+(output) 25.4644 Tj
+-286 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+-287 TJm
+(will) 15.5018 Tj
+-286 TJm
+(be) 9.4047 Tj
+-286 TJm
+(big) 12.7322 Tj
+-287 TJm
+(enough.) 31.8205 Tj
+-838 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-287 TJm
+(may) 17.1556 Tj
+-286 TJm
+(of) 8.2988 Tj
+-287 TJm
+(course) 26.0024 Tj
+-286 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e) 4.4234 Tj
+-286 TJm
+(arrangements) 53.6685 Tj
+-287 TJm
+(in) 7.7509 Tj
+-286 TJm
+(your) 18.2614 Tj
+-287 TJm
+(code) 18.8094 Tj
+-286 TJm
+(to) 7.7509 Tj
+-286 TJm
+(record) 25.4445 Tj
+-287 TJm
+(the) 12.1743 Tj
+-286 TJm
+(size) 15.4918 Tj
+-287 TJm
+(of) 8.2988 Tj
+72 173.636 Td
+(the) 12.1743 Tj
+-250 TJm
+(uncompressed) 56.996 Tj
+-250 TJm
+(data,) 19.0883 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(such) 18.2614 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(mechanism) 45.3796 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(be) 9.4047 Tj
+15 TJm
+(yond) 19.9252 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(scope) 22.6848 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(this) 14.396 Tj
+-250 TJm
+(library) 26.5603 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 151.718 Td
+/F124_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress) 155.4166 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+230.553 151.718 Td
+/F122_0 9.9626 Tf
+(will) 15.5018 Tj
+-315 TJm
+(not) 12.7322 Tj
+-315 TJm
+(write) 20.4731 Tj
+-314 TJm
+(data) 16.5977 Tj
+-315 TJm
+(at) 7.193 Tj
+-315 TJm
+(or) 8.2988 Tj
+-315 TJm
+(be) 9.4047 Tj
+15 TJm
+(yond) 19.9252 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+362.484 151.718 Td
+/F124_0 9.9626 Tf
+(dest[) 29.8878 Tj
+392.372 149.975 Td
+(*) 5.9776 Tj
+398.349 151.718 Td
+(destLen]) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+446.17 151.718 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-331 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(en) 9.4047 Tj
+-315 TJm
+(in) 7.7509 Tj
+-315 TJm
+(case) 17.1456 Tj
+-314 TJm
+(of) 8.2988 Tj
+-315 TJm
+(b) 4.9813 Tj
+20 TJm
+(uf) 8.2988 Tj
+25 TJm
+(fer) 11.0585 Tj
+72 139.763 Td
+(o) 4.9813 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(er\003o) 18.2614 Tj
+25 TJm
+(w) 7.193 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 117.845 Td
+(Possible) 33.2153 Tj
+-250 TJm
+(return) 23.7907 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues:) 23.2427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(27) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 28 31
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+420.96 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+498.449 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 75.786 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 492.852] cm
+0 0 468 227.148 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F124_0 9.9626 Tf
+(BZ_CONFIG_ERROR) 89.6634 Tj
+98.488 699.676 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(library) 41.8429 Tj
+-426 TJm
+(has) 17.9327 Tj
+-426 TJm
+(been) 23.9102 Tj
+-426 TJm
+(mis-compiled) 71.7307 Tj
+90 687.721 Td
+(BZ_PARAM_ERROR) 83.6858 Tj
+98.488 675.766 Td
+(if) 11.9551 Tj
+-426 TJm
+(dest) 23.9102 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(destLen) 41.8429 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(NULL) 23.9102 Tj
+98.488 663.811 Td
+(or) 11.9551 Tj
+-426 TJm
+(small) 29.8878 Tj
+-426 TJm
+(!=) 11.9551 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(&&) 11.9551 Tj
+-426 TJm
+(small) 29.8878 Tj
+-426 TJm
+(!=) 11.9551 Tj
+-426 TJm
+(1) 5.9776 Tj
+98.488 651.856 Td
+(or) 11.9551 Tj
+-426 TJm
+(verbosity) 53.798 Tj
+-426 TJm
+(<) 5.9776 Tj
+-426 TJm
+(0) 5.9776 Tj
+-426 TJm
+(or) 11.9551 Tj
+-426 TJm
+(verbosity) 53.798 Tj
+-426 TJm
+(>) 5.9776 Tj
+-426 TJm
+(4) 5.9776 Tj
+90 639.9 Td
+(BZ_MEM_ERROR) 71.7307 Tj
+98.488 627.945 Td
+(if) 11.9551 Tj
+-426 TJm
+(insufficient) 71.7307 Tj
+-426 TJm
+(memory) 35.8654 Tj
+-426 TJm
+(is) 11.9551 Tj
+-426 TJm
+(available) 53.798 Tj
+90 615.99 Td
+(BZ_OUTBUFF_FULL) 89.6634 Tj
+98.488 604.035 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(size) 23.9102 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(exceeds) 41.8429 Tj
+341.655 602.291 Td
+(*) 5.9776 Tj
+347.633 604.035 Td
+(destLen) 41.8429 Tj
+90 592.08 Td
+(BZ_DATA_ERROR) 77.7083 Tj
+98.488 580.124 Td
+(if) 11.9551 Tj
+-426 TJm
+(a) 5.9776 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(integrity) 53.798 Tj
+-426 TJm
+(error) 29.8878 Tj
+-426 TJm
+(was) 17.9327 Tj
+-426 TJm
+(detected) 47.8205 Tj
+-426 TJm
+(in) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(data) 23.9102 Tj
+90 568.169 Td
+(BZ_DATA_ERROR_MAGIC) 113.5736 Tj
+98.488 556.214 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(doesn't) 41.8429 Tj
+-426 TJm
+(begin) 29.8878 Tj
+-426 TJm
+(with) 23.9102 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(right) 29.8878 Tj
+-426 TJm
+(magic) 29.8878 Tj
+-426 TJm
+(bytes) 29.8878 Tj
+90 544.259 Td
+(BZ_UNEXPECTED_EOF) 101.6185 Tj
+98.488 532.304 Td
+(if) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compressed) 59.7756 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(ends) 23.9102 Tj
+-426 TJm
+(unexpectedly) 71.7307 Tj
+90 520.349 Td
+(BZ_OK) 29.8878 Tj
+98.488 508.393 Td
+(otherwise) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 458.099 Td
+/F116_0 20.6585 Tf
+(3.6.) 34.4584 Tj
+-278 TJm
+(zlib) 34.4377 Tj
+-278 TJm
+(compatibility) 127.4216 Tj
+-278 TJm
+(functions) 92.9633 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 436.181 Td
+/F122_0 9.9626 Tf
+(Y) 7.193 Tj
+110 TJm
+(oshioka) 30.9936 Tj
+-604 TJm
+(Tsuneo) 29.3299 Tj
+-604 TJm
+(has) 13.2801 Tj
+-604 TJm
+(contrib) 28.224 Tj
+20 TJm
+(uted) 17.1556 Tj
+-604 TJm
+(some) 21.031 Tj
+-604 TJm
+(functions) 37.0808 Tj
+-604 TJm
+(to) 7.7509 Tj
+-604 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-604 TJm
+(better) 22.6848 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+356.347 436.181 Td
+/F124_0 9.9626 Tf
+(zlib) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+386.275 436.181 Td
+/F122_0 9.9626 Tf
+(compatibility) 53.1405 Tj
+65 TJm
+(.) 2.4907 Tj
+-1372 TJm
+(These) 23.7907 Tj
+-604 TJm
+(functions) 37.0808 Tj
+-604 TJm
+(are) 12.1643 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 424.226 Td
+/F124_0 9.9626 Tf
+(BZ2_bzopen) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+131.776 424.226 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+144.283 424.226 Td
+/F124_0 9.9626 Tf
+(BZ2_bzread) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+204.059 424.226 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.567 424.226 Td
+/F124_0 9.9626 Tf
+(BZ2_bzwrite) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+282.32 424.226 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.827 424.226 Td
+/F124_0 9.9626 Tf
+(BZ2_bzflush) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+360.581 424.226 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+373.088 424.226 Td
+/F124_0 9.9626 Tf
+(BZ2_bzclose) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+438.842 424.226 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+451.349 424.226 Td
+/F124_0 9.9626 Tf
+(BZ2_bzerror) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+525.614 424.226 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 412.271 Td
+/F124_0 9.9626 Tf
+(BZ2_bzlibVersion) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+167.641 412.271 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1420 TJm
+(These) 23.7907 Tj
+-383 TJm
+(functions) 37.0808 Tj
+-383 TJm
+(are) 12.1643 Tj
+-383 TJm
+(not) 12.7322 Tj
+-383 TJm
+(\(yet\)) 18.8094 Tj
+-384 TJm
+(of) 8.2988 Tj
+25 TJm
+(\002cially) 27.6761 Tj
+-383 TJm
+(part) 15.4918 Tj
+-383 TJm
+(of) 8.2988 Tj
+-383 TJm
+(the) 12.1743 Tj
+-384 TJm
+(library) 26.5603 Tj
+65 TJm
+(.) 2.4907 Tj
+-1419 TJm
+(If) 6.6351 Tj
+-383 TJm
+(the) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-384 TJm
+(break,) 24.6176 Tj
+-416 TJm
+(you) 14.9439 Tj
+-383 TJm
+(get) 12.1743 Tj
+-384 TJm
+(to) 7.7509 Tj
+72 400.316 Td
+(k) 4.9813 Tj
+10 TJm
+(eep) 13.8281 Tj
+-250 TJm
+(all) 9.9626 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(pieces.) 27.3872 Tj
+-620 TJm
+(Ne) 11.6164 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ertheless,) 37.3498 Tj
+-250 TJm
+(I) 3.3175 Tj
+-250 TJm
+(think) 20.4831 Tj
+-250 TJm
+(the) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ork) 13.2801 Tj
+-250 TJm
+(ok.) 12.4533 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 349.342] cm
+0 0 468 47.821 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 388.794 Td
+/F124_0 9.9626 Tf
+(typedef) 41.8429 Tj
+-426 TJm
+(void) 23.9102 Tj
+-426 TJm
+(BZFILE;) 41.8429 Tj
+90 364.884 Td
+(const) 29.8878 Tj
+-426 TJm
+(char) 23.9102 Tj
+152.286 363.14 Td
+(*) 5.9776 Tj
+162.508 364.884 Td
+(BZ2_bzlibVersion) 95.641 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(void) 23.9102 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 327.424 Td
+/F122_0 9.9626 Tf
+(Returns) 30.9936 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(string) 22.6948 Tj
+-250 TJm
+(indicating) 39.8504 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(library) 26.5603 Tj
+-250 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion.) 26.8392 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 288.405] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 315.902 Td
+/F124_0 9.9626 Tf
+(BZFILE) 35.8654 Tj
+130.109 314.159 Td
+(*) 5.9776 Tj
+140.331 315.902 Td
+(BZ2_bzopen) 59.7756 Tj
+-852 TJm
+(\() 5.9776 Tj
+-426 TJm
+(const) 29.8878 Tj
+-426 TJm
+(char) 23.9102 Tj
+281.103 314.159 Td
+(*) 5.9776 Tj
+287.08 315.902 Td
+(path,) 29.8878 Tj
+-426 TJm
+(const) 29.8878 Tj
+-426 TJm
+(char) 23.9102 Tj
+383.498 314.159 Td
+(*) 5.9776 Tj
+389.476 315.902 Td
+(mode) 23.9102 Tj
+-426 TJm
+(\);) 11.9551 Tj
+90 303.947 Td
+(BZFILE) 35.8654 Tj
+130.109 302.204 Td
+(*) 5.9776 Tj
+140.331 303.947 Td
+(BZ2_bzdopen) 65.7532 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(int) 17.9327 Tj
+-3408 TJm
+(fd,) 17.9327 Tj
+-1704 TJm
+(const) 29.8878 Tj
+-426 TJm
+(char) 23.9102 Tj
+369.629 302.204 Td
+(*) 5.9776 Tj
+375.607 303.947 Td
+(mode) 23.9102 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 266.488 Td
+/F122_0 9.9626 Tf
+(Opens) 25.4544 Tj
+-243 TJm
+(a) 4.4234 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+106.713 266.488 Td
+/F124_0 9.9626 Tf
+(.bz2) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+133.041 266.488 Td
+/F122_0 9.9626 Tf
+(\002le) 12.7322 Tj
+-243 TJm
+(for) 11.6164 Tj
+-242 TJm
+(reading) 29.8778 Tj
+-243 TJm
+(or) 8.2988 Tj
+-243 TJm
+(writing,) 31.2726 Tj
+-244 TJm
+(using) 21.589 Tj
+-243 TJm
+(either) 22.6848 Tj
+-242 TJm
+(its) 9.4147 Tj
+-243 TJm
+(name) 21.579 Tj
+-243 TJm
+(or) 8.2988 Tj
+-242 TJm
+(a) 4.4234 Tj
+-243 TJm
+(pre-e) 20.4632 Tj
+15 TJm
+(xisting) 27.1282 Tj
+-243 TJm
+(\002le) 12.7322 Tj
+-242 TJm
+(descriptor) 39.8404 Tj
+55 TJm
+(.) 2.4907 Tj
+-615 TJm
+(Analogous) 43.1679 Tj
+-243 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+510.112 266.488 Td
+/F124_0 9.9626 Tf
+(fopen) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 254.532 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+88.877 254.532 Td
+/F124_0 9.9626 Tf
+(fdopen) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+124.742 254.532 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 216.137] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 243.633 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzread) 59.7756 Tj
+-852 TJm
+(\() 5.9776 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+226.528 241.89 Td
+(*) 5.9776 Tj
+236.749 243.633 Td
+(b,) 11.9551 Tj
+-426 TJm
+(void) 23.9102 Tj
+276.859 241.89 Td
+(*) 5.9776 Tj
+287.08 243.633 Td
+(buf,) 23.9102 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(len) 17.9327 Tj
+-426 TJm
+(\);) 11.9551 Tj
+90 231.678 Td
+(int) 17.9327 Tj
+-426 TJm
+(BZ2_bzwrite) 65.7532 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+228.261 229.935 Td
+(*) 5.9776 Tj
+238.483 231.678 Td
+(b,) 11.9551 Tj
+-426 TJm
+(void) 23.9102 Tj
+278.592 229.935 Td
+(*) 5.9776 Tj
+288.814 231.678 Td
+(buf,) 23.9102 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(len) 17.9327 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 194.219 Td
+/F122_0 9.9626 Tf
+(Reads/writes) 51.4668 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(from/to) 29.8878 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(pre) 12.7222 Tj
+25 TJm
+(viously) 29.3399 Tj
+-250 TJm
+(opened) 28.772 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+259.903 194.219 Td
+/F124_0 9.9626 Tf
+(BZFILE) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+295.769 194.219 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-500 TJm
+(Analogous) 43.1679 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+359.141 194.219 Td
+/F124_0 9.9626 Tf
+(fread) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+391.519 194.219 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+408.396 194.219 Td
+/F124_0 9.9626 Tf
+(fwrite) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+444.261 194.219 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 155.2] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 182.697 Td
+/F124_0 9.9626 Tf
+(int) 17.9327 Tj
+-852 TJm
+(BZ2_bzflush) 65.7532 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+232.505 180.954 Td
+(*) 5.9776 Tj
+242.727 182.697 Td
+(b) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+90 170.742 Td
+(void) 23.9102 Tj
+-426 TJm
+(BZ2_bzclose) 65.7532 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+234.239 168.998 Td
+(*) 5.9776 Tj
+244.46 170.742 Td
+(b) 5.9776 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 133.282 Td
+/F122_0 9.9626 Tf
+(Flushes/closes) 57.5639 Tj
+-250 TJm
+(a) 4.4234 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+138.968 133.282 Td
+/F124_0 9.9626 Tf
+(BZFILE) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+174.833 133.282 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+179.815 133.282 Td
+/F124_0 9.9626 Tf
+(BZ2_bzflush) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+248.059 133.282 Td
+/F122_0 9.9626 Tf
+(doesn') 26.5603 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(actually) 31.5416 Tj
+-250 TJm
+(do) 9.9626 Tj
+-250 TJm
+(an) 9.4047 Tj
+15 TJm
+(ything.) 27.9551 Tj
+-620 TJm
+(Analogous) 43.1679 Tj
+-250 TJm
+(to) 7.7509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+425.472 133.282 Td
+/F124_0 9.9626 Tf
+(fflush) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+463.828 133.282 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+480.705 133.282 Td
+/F124_0 9.9626 Tf
+(fclose) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+516.57 133.282 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 106.219] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 121.761 Td
+/F124_0 9.9626 Tf
+(const) 29.8878 Tj
+-426 TJm
+(char) 23.9102 Tj
+152.286 120.017 Td
+(*) 5.9776 Tj
+162.508 121.761 Td
+(BZ2_bzerror) 65.7532 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(BZFILE) 35.8654 Tj
+282.836 120.017 Td
+(*) 5.9776 Tj
+288.814 121.761 Td
+(b,) 11.9551 Tj
+-426 TJm
+(int) 17.9327 Tj
+327.19 120.017 Td
+(*) 5.9776 Tj
+333.167 121.761 Td
+(errnum) 35.8654 Tj
+-426 TJm
+(\)) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 84.301 Td
+/F122_0 9.9626 Tf
+(Returns) 30.9936 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(string) 22.6948 Tj
+-250 TJm
+(describing) 41.5042 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(more) 20.4731 Tj
+-250 TJm
+(recent) 24.3386 Tj
+-250 TJm
+(error) 19.3573 Tj
+-250 TJm
+(status) 22.6948 Tj
+-250 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+303.858 84.301 Td
+/F124_0 9.9626 Tf
+(b) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+309.835 84.301 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(also) 16.0497 Tj
+-250 TJm
+(sets) 14.9439 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+367.668 82.558 Td
+/F124_0 9.9626 Tf
+(*) 5.9776 Tj
+373.645 84.301 Td
+(errnum) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+412.002 84.301 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(its) 9.4147 Tj
+-250 TJm
+(numerical) 39.8404 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alue.) 19.0883 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+536.307 50.951 Td
+(28) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 29 32
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 704.93 Td
+/F116_0 20.6585 Tf
+(3.7.) 34.4584 Tj
+-278 TJm
+(Using) 57.3893 Tj
+-278 TJm
+(the) 30.9878 Tj
+-278 TJm
+(librar) 51.6669 Tj
+-10 TJm
+(y) 11.4861 Tj
+-278 TJm
+(in) 18.3654 Tj
+-278 TJm
+(a) 11.4861 Tj
+-278 TJm
+(stdio-free) 94.1201 Tj
+72 680.139 Td
+(en) 24.1085 Tj
+40 TJm
+(vir) 25.2653 Tj
+20 TJm
+(onment) 74.5978 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 649.583 Td
+/F116_0 17.2154 Tf
+(3.7.1.) 43.0729 Tj
+-278 TJm
+(Getting) 60.2539 Tj
+-278 TJm
+(rid) 22.0013 Tj
+-278 TJm
+(of) 16.2513 Tj
+-278 TJm
+(stdio) 41.1276 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 627.73 Td
+/F122_0 9.9626 Tf
+(In) 8.2988 Tj
+-319 TJm
+(a) 4.4234 Tj
+-319 TJm
+(deeply) 26.5603 Tj
+-319 TJm
+(embedded) 40.9463 Tj
+-319 TJm
+(application,) 46.7644 Tj
+-336 TJm
+(you) 14.9439 Tj
+-319 TJm
+(might) 23.2527 Tj
+-319 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-319 TJm
+(to) 7.7509 Tj
+-319 TJm
+(use) 13.2801 Tj
+-319 TJm
+(just) 14.396 Tj
+-319 TJm
+(the) 12.1743 Tj
+-319 TJm
+(memory-to-memory) 80.7967 Tj
+-319 TJm
+(functions.) 39.5714 Tj
+-1035 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-319 TJm
+(can) 13.8281 Tj
+-319 TJm
+(do) 9.9626 Tj
+-319 TJm
+(this) 14.396 Tj
+72 615.775 Td
+(con) 14.386 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(eniently) 32.0995 Tj
+-327 TJm
+(by) 9.9626 Tj
+-327 TJm
+(compiling) 40.4083 Tj
+-327 TJm
+(the) 12.1743 Tj
+-327 TJm
+(library) 26.5603 Tj
+-327 TJm
+(with) 17.7135 Tj
+-328 TJm
+(preproces) 38.7246 Tj
+1 TJm
+(sor) 12.1743 Tj
+-328 TJm
+(symbol) 29.3399 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+336.045 615.775 Td
+/F124_0 9.9626 Tf
+(BZ_NO_STDIO) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.057 615.775 Td
+/F122_0 9.9626 Tf
+(de\002ned.) 31.8205 Tj
+-1083 TJm
+(Doing) 24.9065 Tj
+-327 TJm
+(this) 14.396 Tj
+-327 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(es) 8.2988 Tj
+-327 TJm
+(you) 14.9439 Tj
+-327 TJm
+(a) 4.4234 Tj
+72 603.819 Td
+(library) 26.5603 Tj
+-250 TJm
+(containing) 42.0621 Tj
+-250 TJm
+(only) 17.7135 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(follo) 18.8194 Tj
+25 TJm
+(wing) 19.9252 Tj
+-250 TJm
+(eight) 19.9252 Tj
+-250 TJm
+(functions:) 39.8504 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 581.966 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressInit) 107.5961 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+179.597 581.966 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+199.079 581.966 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompress) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+282.765 581.966 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+302.247 581.966 Td
+/F124_0 9.9626 Tf
+(BZ2_bzCompressEnd) 101.6185 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-1414 TJm
+(BZ2_bzDe) 47.8205 Tj
+-1 TJm
+(compressInit) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 581.966 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 570.011 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompress) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+167.641 570.011 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.144 570.011 Td
+/F124_0 9.9626 Tf
+(BZ2_bzDecompressEnd) 113.5736 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-190 TJm
+(BZ2_bzBuffToBuffCompress) 143.4614 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+431.073 570.011 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+435.577 570.011 Td
+/F124_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress) 155.4166 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 548.158 Td
+/F122_0 9.9626 Tf
+(When) 23.7907 Tj
+-250 TJm
+(compiled) 37.0808 Tj
+-250 TJm
+(lik) 10.5205 Tj
+10 TJm
+(e) 4.4234 Tj
+-250 TJm
+(this,) 16.8866 Tj
+-250 TJm
+(all) 9.9626 Tj
+-250 TJm
+(functions) 37.0808 Tj
+-250 TJm
+(will) 15.5018 Tj
+-250 TJm
+(ignore) 25.4544 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+272.526 548.158 Td
+/F124_0 9.9626 Tf
+(verbosity) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+328.815 548.158 Td
+/F122_0 9.9626 Tf
+(settings.) 32.9364 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 517.601 Td
+/F116_0 17.2154 Tf
+(3.7.2.) 43.0729 Tj
+-278 TJm
+(Critical) 58.3602 Tj
+-278 TJm
+(err) 22.9653 Tj
+20 TJm
+(or) 17.2154 Tj
+-278 TJm
+(handling) 71.7366 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 495.748 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+124.529 495.748 Td
+/F122_0 9.9626 Tf
+(contains) 33.2053 Tj
+-473 TJm
+(a) 4.4234 Tj
+-472 TJm
+(number) 30.4357 Tj
+-473 TJm
+(of) 8.2988 Tj
+-472 TJm
+(internal) 30.4357 Tj
+-473 TJm
+(assertion) 35.417 Tj
+-472 TJm
+(checks) 27.1082 Tj
+-473 TJm
+(which) 24.3486 Tj
+-472 TJm
+(should,) 29.0609 Tj
+-529 TJm
+(needless) 33.7533 Tj
+-472 TJm
+(to) 7.7509 Tj
+-473 TJm
+(say) 13.2801 Tj
+65 TJm
+(,) 2.4907 Tj
+-528 TJm
+(ne) 9.4047 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-473 TJm
+(be) 9.4047 Tj
+-472 TJm
+(acti) 14.386 Tj
+25 TJm
+(v) 4.9813 Tj
+25 TJm
+(ated.) 19.0883 Tj
+72 483.793 Td
+(Ne) 11.6164 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ertheless,) 37.3498 Tj
+-533 TJm
+(if) 6.0871 Tj
+-476 TJm
+(an) 9.4047 Tj
+-476 TJm
+(assertion) 35.417 Tj
+-476 TJm
+(should) 26.5703 Tj
+-476 TJm
+(f) 3.3175 Tj
+10 TJm
+(ail,) 12.4533 Tj
+-532 TJm
+(beha) 18.8094 Tj
+20 TJm
+(viour) 21.031 Tj
+-476 TJm
+(depends) 32.6474 Tj
+-476 TJm
+(on) 9.9626 Tj
+-476 TJm
+(whether) 32.0895 Tj
+-476 TJm
+(or) 8.2988 Tj
+-477 TJm
+(not) 12.7322 Tj
+-476 TJm
+(the) 12.1743 Tj
+-476 TJm
+(library) 26.5603 Tj
+-476 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-476 TJm
+(compiled) 37.0808 Tj
+-476 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 471.838 Td
+/F124_0 9.9626 Tf
+(BZ_NO_STDIO) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+140.244 471.838 Td
+/F122_0 9.9626 Tf
+(set.) 13.5591 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 449.985 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(normal) 28.224 Tj
+-250 TJm
+(compile,) 34.5901 Tj
+-250 TJm
+(an) 9.4047 Tj
+-250 TJm
+(assertion) 35.417 Tj
+-250 TJm
+(f) 3.3175 Tj
+10 TJm
+(ailure) 22.6848 Tj
+-250 TJm
+(yields) 23.8007 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(message:) 36.5229 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 428.131 Td
+(bzip2/libbzip2:) 60.3335 Tj
+-310 TJm
+(internal) 30.4357 Tj
+-250 TJm
+(error) 19.3573 Tj
+-250 TJm
+(number) 30.4357 Tj
+-250 TJm
+(N.) 9.6836 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 406.278 Td
+(This) 17.7135 Tj
+-344 TJm
+(is) 6.6451 Tj
+-344 TJm
+(a) 4.4234 Tj
+-344 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug) 9.9626 Tj
+-343 TJm
+(in) 7.7509 Tj
+-344 TJm
+(bzip2/libbzip2,) 60.0546 Tj
+-368 TJm
+(1.0.6) 19.9252 Tj
+-343 TJm
+(of) 8.2988 Tj
+-344 TJm
+(6) 4.9813 Tj
+-344 TJm
+(September) 42.61 Tj
+-344 TJm
+(2010.) 22.4159 Tj
+-592 TJm
+(Please) 25.4544 Tj
+-344 TJm
+(report) 23.7907 Tj
+-343 TJm
+(it) 5.5392 Tj
+-344 TJm
+(to) 7.7509 Tj
+-344 TJm
+(me) 12.1743 Tj
+-344 TJm
+(at:) 9.9626 Tj
+-498 TJm
+(jse) 11.0684 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(ard@bzip.or) 49.8429 Tj
+18 TJm
+(g.) 7.472 Tj
+-1183 TJm
+(If) 6.6351 Tj
+-344 TJm
+(this) 14.396 Tj
+72 394.323 Td
+(happened) 38.1767 Tj
+-297 TJm
+(when) 21.579 Tj
+-298 TJm
+(you) 14.9439 Tj
+-297 TJm
+(were) 19.3573 Tj
+-297 TJm
+(using) 21.589 Tj
+-297 TJm
+(some) 21.031 Tj
+-298 TJm
+(program) 33.7533 Tj
+-297 TJm
+(which) 24.3486 Tj
+-297 TJm
+(uses) 17.1556 Tj
+-297 TJm
+(libbzip2) 32.6574 Tj
+-298 TJm
+(as) 8.2988 Tj
+-297 TJm
+(a) 4.4234 Tj
+-297 TJm
+(component,) 46.7644 Tj
+-309 TJm
+(you) 14.9439 Tj
+-298 TJm
+(should) 26.5703 Tj
+-297 TJm
+(also) 16.0497 Tj
+-297 TJm
+(report) 23.7907 Tj
+-297 TJm
+(this) 14.396 Tj
+-298 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug) 9.9626 Tj
+72 382.368 Td
+(to) 7.7509 Tj
+-264 TJm
+(the) 12.1743 Tj
+-264 TJm
+(author\(s\)) 35.965 Tj
+-264 TJm
+(of) 8.2988 Tj
+-264 TJm
+(that) 14.9439 Tj
+-264 TJm
+(program.) 36.2439 Tj
+-703 TJm
+(Please) 25.4544 Tj
+-264 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e) 4.4234 Tj
+-264 TJm
+(an) 9.4047 Tj
+-264 TJm
+(ef) 7.7409 Tj
+25 TJm
+(fort) 14.386 Tj
+-264 TJm
+(to) 7.7509 Tj
+-264 TJm
+(report) 23.7907 Tj
+-263 TJm
+(this) 14.396 Tj
+-264 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug;) 12.7322 Tj
+-271 TJm
+(timely) 25.4644 Tj
+-264 TJm
+(and) 14.386 Tj
+-264 TJm
+(accurate) 33.1854 Tj
+-264 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug) 9.9626 Tj
+-264 TJm
+(reports) 27.6661 Tj
+-264 TJm
+(e) 4.4234 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(entually) 32.0995 Tj
+72 370.413 Td
+(lead) 16.5977 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(higher) 25.4544 Tj
+-250 TJm
+(quality) 27.6761 Tj
+-250 TJm
+(softw) 22.1369 Tj
+10 TJm
+(are.) 14.655 Tj
+-620 TJm
+(Thanks.) 31.8205 Tj
+-620 TJm
+(Julian) 23.8007 Tj
+-250 TJm
+(Se) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(ard,) 15.2129 Tj
+-250 TJm
+(6) 4.9813 Tj
+-250 TJm
+(September) 42.61 Tj
+-250 TJm
+(2010.) 22.4159 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 338.758 Td
+(where) 24.3386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+98.831 338.758 Td
+/F124_0 9.9626 Tf
+(N) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+107.301 338.758 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(some) 21.031 Tj
+-250 TJm
+(error) 19.3573 Tj
+-251 TJm
+(code) 18.8094 Tj
+-250 TJm
+(number) 30.4357 Tj
+55 TJm
+(.) 2.4907 Tj
+-621 TJm
+(If) 6.6351 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+230.81 338.758 Td
+/F124_0 9.9626 Tf
+(N) 5.9776 Tj
+-600 TJm
+(==) 11.9551 Tj
+-600 TJm
+(1007) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+284.608 338.758 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(also) 16.0497 Tj
+-251 TJm
+(prints) 22.6948 Tj
+-250 TJm
+(some) 21.031 Tj
+-250 TJm
+(e) 4.4234 Tj
+15 TJm
+(xtra) 15.4918 Tj
+-250 TJm
+(te) 7.193 Tj
+15 TJm
+(xt) 7.7509 Tj
+-250 TJm
+(advising) 33.7633 Tj
+-251 TJm
+(the) 12.1743 Tj
+-250 TJm
+(reader) 24.8866 Tj
+-250 TJm
+(that) 14.9439 Tj
+-250 TJm
+(unreliable) 39.8404 Tj
+72 326.803 Td
+(memory) 33.2053 Tj
+-425 TJm
+(is) 6.6451 Tj
+-424 TJm
+(often) 20.4731 Tj
+-425 TJm
+(associated) 40.9463 Tj
+-425 TJm
+(with) 17.7135 Tj
+-424 TJm
+(internal) 30.4357 Tj
+-425 TJm
+(error) 19.3573 Tj
+-424 TJm
+(1007.) 22.4159 Tj
+-834 TJm
+(\(This) 21.031 Tj
+-425 TJm
+(is) 6.6451 Tj
+-425 TJm
+(a) 4.4234 Tj
+-424 TJm
+(frequently-observ) 70.8241 Tj
+15 TJm
+(ed-phenomenon) 64.189 Tj
+-425 TJm
+(with) 17.7135 Tj
+-425 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersions) 28.224 Tj
+72 314.848 Td
+(1.0.0/1.0.1\).) 48.4282 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 292.995 Td
+/F124_0 9.9626 Tf
+(exit\(3\)) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+116.334 292.995 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(then) 17.1556 Tj
+-250 TJm
+(called.) 26.2813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 271.142 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-250 TJm
+(a) 4.4234 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+95.093 271.142 Td
+/F124_0 9.9626 Tf
+(stdio) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+124.981 271.142 Td
+/F122_0 9.9626 Tf
+(-free) 18.7994 Tj
+-250 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+-250 TJm
+(assertion) 35.417 Tj
+-250 TJm
+(f) 3.3175 Tj
+10 TJm
+(ailures) 26.5603 Tj
+-250 TJm
+(result) 22.1369 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(call) 14.386 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(function) 33.2053 Tj
+-250 TJm
+(declared) 33.7433 Tj
+-250 TJm
+(as:) 11.0684 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 244.078] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 259.62 Td
+/F124_0 9.9626 Tf
+(extern) 35.8654 Tj
+-426 TJm
+(void) 23.9102 Tj
+-426 TJm
+(bz_internal_error) 101.6185 Tj
+-426 TJm
+(\() 5.9776 Tj
+-426 TJm
+(int) 17.9327 Tj
+-426 TJm
+(errcode) 41.8429 Tj
+-426 TJm
+(\);) 11.9551 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 222.225 Td
+/F122_0 9.9626 Tf
+(The) 15.4918 Tj
+-250 TJm
+(rele) 14.9339 Tj
+25 TJm
+(v) 4.9813 Tj
+25 TJm
+(ant) 12.1743 Tj
+-250 TJm
+(code) 18.8094 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(passed) 26.5603 Tj
+-250 TJm
+(as) 8.2988 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(parameter) 39.8305 Tj
+55 TJm
+(.) 2.4907 Tj
+-620 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-250 TJm
+(should) 26.5703 Tj
+-250 TJm
+(supply) 26.5703 Tj
+-250 TJm
+(such) 18.2614 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(function.) 35.696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 200.372 Td
+(In) 8.2988 Tj
+-294 TJm
+(either) 22.6848 Tj
+-294 TJm
+(case,) 19.6363 Tj
+-306 TJm
+(once) 18.8094 Tj
+-294 TJm
+(an) 9.4047 Tj
+-294 TJm
+(assertion) 35.417 Tj
+-294 TJm
+(f) 3.3175 Tj
+10 TJm
+(ailure) 22.6848 Tj
+-294 TJm
+(has) 13.2801 Tj
+-295 TJm
+(occurred,) 37.3398 Tj
+-305 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+306.541 200.372 Td
+/F124_0 9.9626 Tf
+(bz_stream) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.271 200.372 Td
+/F122_0 9.9626 Tf
+(records) 29.3199 Tj
+-294 TJm
+(in) 7.7509 Tj
+40 TJm
+(v) 4.9813 Tj
+20 TJm
+(olv) 12.7322 Tj
+15 TJm
+(ed) 9.4047 Tj
+-294 TJm
+(can) 13.8281 Tj
+-295 TJm
+(be) 9.4047 Tj
+-294 TJm
+(re) 7.7409 Tj
+15 TJm
+(g) 4.9813 Tj
+5 TJm
+(arded) 22.1269 Tj
+-294 TJm
+(as) 8.2988 Tj
+-294 TJm
+(in) 7.7509 Tj
+40 TJm
+(v) 4.9813 Tj
+25 TJm
+(alid.) 17.4346 Tj
+72 188.417 Td
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-250 TJm
+(should) 26.5703 Tj
+-250 TJm
+(not) 12.7322 Tj
+-250 TJm
+(attempt) 29.8878 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(resume) 28.772 Tj
+-250 TJm
+(normal) 28.224 Tj
+-250 TJm
+(operation) 37.6287 Tj
+-250 TJm
+(with) 17.7135 Tj
+-250 TJm
+(them.) 22.4159 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 166.564 Td
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-299 TJm
+(may) 17.1556 Tj
+65 TJm
+(,) 2.4907 Tj
+-310 TJm
+(of) 8.2988 Tj
+-299 TJm
+(course,) 28.493 Tj
+-311 TJm
+(change) 28.2141 Tj
+-298 TJm
+(critical) 27.6661 Tj
+-299 TJm
+(error) 19.3573 Tj
+-298 TJm
+(handling) 34.8691 Tj
+-299 TJm
+(to) 7.7509 Tj
+-298 TJm
+(suit) 14.396 Tj
+-299 TJm
+(your) 18.2614 Tj
+-298 TJm
+(needs.) 25.1755 Tj
+-912 TJm
+(As) 11.0684 Tj
+-298 TJm
+(I) 3.3175 Tj
+-299 TJm
+(said) 16.0497 Tj
+-298 TJm
+(abo) 14.386 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e,) 6.914 Tj
+-311 TJm
+(critical) 27.6661 Tj
+-299 TJm
+(errors) 23.2328 Tj
+-298 TJm
+(indicate) 31.5416 Tj
+-299 TJm
+(b) 4.9813 Tj
+20 TJm
+(ugs) 13.8381 Tj
+72 154.609 Td
+(in) 7.7509 Tj
+-263 TJm
+(the) 12.1743 Tj
+-263 TJm
+(library) 26.5603 Tj
+-263 TJm
+(and) 14.386 Tj
+-263 TJm
+(should) 26.5703 Tj
+-263 TJm
+(not) 12.7322 Tj
+-263 TJm
+(occur) 22.1269 Tj
+55 TJm
+(.) 2.4907 Tj
+-697 TJm
+(All) 12.7322 Tj
+-263 TJm
+("normal") 36.3535 Tj
+-263 TJm
+(error) 19.3573 Tj
+-263 TJm
+(situations) 38.1966 Tj
+-263 TJm
+(are) 12.1643 Tj
+-263 TJm
+(indicated) 36.5229 Tj
+-263 TJm
+(via) 12.1743 Tj
+-263 TJm
+(error) 19.3573 Tj
+-263 TJm
+(return) 23.7907 Tj
+-263 TJm
+(codes) 22.6848 Tj
+-263 TJm
+(from) 19.3673 Tj
+-263 TJm
+(functions,) 39.5714 Tj
+72 142.653 Td
+(and) 14.386 Tj
+-250 TJm
+(can) 13.8281 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(reco) 17.1456 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(ered) 17.1456 Tj
+-250 TJm
+(from.) 21.8579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 107.965 Td
+/F116_0 20.6585 Tf
+(3.8.) 34.4584 Tj
+-278 TJm
+(Making) 71.1685 Tj
+-278 TJm
+(a) 11.4861 Tj
+-278 TJm
+(Windo) 63.1117 Tj
+15 TJm
+(ws) 27.5584 Tj
+-278 TJm
+(DLL) 40.1601 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 86.112 Td
+/F122_0 9.9626 Tf
+(Ev) 11.0684 Tj
+15 TJm
+(erything) 33.2053 Tj
+-328 TJm
+(related) 27.1082 Tj
+-327 TJm
+(to) 7.7509 Tj
+-328 TJm
+(W) 9.4047 Tj
+40 TJm
+(indo) 17.7135 Tj
+25 TJm
+(ws) 11.0684 Tj
+-328 TJm
+(has) 13.2801 Tj
+-327 TJm
+(been) 18.8094 Tj
+-328 TJm
+(contrib) 28.224 Tj
+20 TJm
+(uted) 17.1556 Tj
+-328 TJm
+(by) 9.9626 Tj
+-327 TJm
+(Y) 7.193 Tj
+110 TJm
+(oshioka) 30.9936 Tj
+-328 TJm
+(Tsuneo) 29.3299 Tj
+-328 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+378.139 86.112 Td
+/F124_0 9.9626 Tf
+(tsuneo@rr.iij4u.or.jp) 125.5288 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+503.668 86.112 Td
+/F122_0 9.9626 Tf
+(\),) 5.8082 Tj
+-347 TJm
+(so) 8.8568 Tj
+-328 TJm
+(you) 14.9439 Tj
+72 74.157 Td
+(should) 26.5703 Tj
+-250 TJm
+(send) 18.2614 Tj
+-250 TJm
+(your) 18.2614 Tj
+-250 TJm
+(queries) 28.772 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(him) 15.5018 Tj
+-250 TJm
+(\(b) 8.2988 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(perhaps) 30.9837 Tj
+-250 TJm
+(Cc:) 13.8381 Tj
+-310 TJm
+(me,) 14.6649 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+287.958 74.157 Td
+/F124_0 9.9626 Tf
+(jseward@bzip.org) 95.641 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+383.6 74.157 Td
+/F122_0 9.9626 Tf
+(\).) 5.8082 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 51.071 Td
+(29) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 30 33
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F122_0 9.9626 Tf
+(Programming) 54.7943 Tj
+-250 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(My) 13.8381 Tj
+-367 TJm
+(v) 4.9813 Tj
+25 TJm
+(ague) 18.8094 Tj
+-367 TJm
+(understanding) 56.4481 Tj
+-367 TJm
+(of) 8.2988 Tj
+-367 TJm
+(what) 19.3673 Tj
+-368 TJm
+(to) 7.7509 Tj
+-367 TJm
+(do) 9.9626 Tj
+-367 TJm
+(is:) 9.4147 Tj
+-544 TJm
+(using) 21.589 Tj
+-367 TJm
+(V) 7.193 Tj
+60 TJm
+(isual) 18.8194 Tj
+-367 TJm
+(C++) 17.8829 Tj
+-367 TJm
+(5.0,) 14.9439 Tj
+-397 TJm
+(open) 19.3673 Tj
+-367 TJm
+(the) 12.1743 Tj
+-367 TJm
+(project) 27.6661 Tj
+-367 TJm
+(\002le) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+432.966 710.037 Td
+/F124_0 9.9626 Tf
+(libbz2.dsp) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+492.742 710.037 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-396 TJm
+(and) 14.386 Tj
+-368 TJm
+(b) 4.9813 Tj
+20 TJm
+(uild.) 17.9925 Tj
+72 698.082 Td
+(That') 21.579 Tj
+55 TJm
+(s) 3.8755 Tj
+-250 TJm
+(all.) 12.4533 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 676.164 Td
+(If) 6.6351 Tj
+-284 TJm
+(you) 14.9439 Tj
+-284 TJm
+(can') 17.1456 Tj
+18 TJm
+(t) 2.7696 Tj
+-285 TJm
+(open) 19.3673 Tj
+-284 TJm
+(the) 12.1743 Tj
+-284 TJm
+(project) 27.6661 Tj
+-284 TJm
+(\002le) 12.7322 Tj
+-284 TJm
+(for) 11.6164 Tj
+-285 TJm
+(some) 21.031 Tj
+-284 TJm
+(reason,) 28.493 Tj
+-293 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e) 4.4234 Tj
+-284 TJm
+(a) 4.4234 Tj
+-284 TJm
+(ne) 9.4047 Tj
+25 TJm
+(w) 7.193 Tj
+-284 TJm
+(one,) 16.8766 Tj
+-293 TJm
+(naming) 29.8878 Tj
+-284 TJm
+(these) 20.4731 Tj
+-284 TJm
+(\002les:) 19.3773 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+424.505 676.164 Td
+/F124_0 9.9626 Tf
+(blocksort.c) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+490.259 676.164 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+495.666 676.164 Td
+/F124_0 9.9626 Tf
+(bzlib.c) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 676.164 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 664.209 Td
+/F124_0 9.9626 Tf
+(compress.c) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+131.776 664.209 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+136.436 664.209 Td
+/F124_0 9.9626 Tf
+(crctable.c) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+196.211 664.209 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.871 664.209 Td
+/F124_0 9.9626 Tf
+(decompress.c) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+272.602 664.209 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+277.262 664.209 Td
+/F124_0 9.9626 Tf
+(huffman.c) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+331.06 664.209 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+335.72 664.209 Td
+/F124_0 9.9626 Tf
+(randtable.c) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+403.562 664.209 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+420.037 664.209 Td
+/F124_0 9.9626 Tf
+(libbz2.def) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+479.812 664.209 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-593 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-210 TJm
+(will) 15.5018 Tj
+-209 TJm
+(also) 16.0497 Tj
+72 652.254 Td
+(need) 18.8094 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(name) 21.579 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(header) 26.5503 Tj
+-250 TJm
+(\002les) 16.6077 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+190.415 652.254 Td
+/F124_0 9.9626 Tf
+(bzlib.h) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.749 652.254 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+251.625 652.254 Td
+/F124_0 9.9626 Tf
+(bzlib_private.h) 89.6634 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+341.289 652.254 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 630.336 Td
+(If) 6.6351 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(don') 18.2614 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(VC++,) 27.5665 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(may) 17.1556 Tj
+-250 TJm
+(need) 18.8094 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(de\002ne) 24.3486 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(proprocessor) 51.4568 Tj
+-250 TJm
+(symbol) 29.3399 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.634 630.336 Td
+/F124_0 9.9626 Tf
+(_WIN32) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+399.5 630.336 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 608.418 Td
+(Finally) 28.234 Tj
+65 TJm
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.568 608.418 Td
+/F124_0 9.9626 Tf
+(dlltest.c) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+160.856 608.418 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(sample) 28.224 Tj
+-250 TJm
+(program) 33.7533 Tj
+-250 TJm
+(using) 21.589 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(DLL.) 21.8579 Tj
+-500 TJm
+(It) 6.0871 Tj
+-250 TJm
+(has) 13.2801 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(project) 27.6661 Tj
+-250 TJm
+(\002le,) 15.2229 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+388.58 608.418 Td
+/F124_0 9.9626 Tf
+(dlltest.dsp) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+454.334 608.418 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 586.501 Td
+(If) 6.6351 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(just) 14.396 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e\002le) 17.1556 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(V) 7.193 Tj
+60 TJm
+(isual) 18.8194 Tj
+-250 TJm
+(C,) 9.1357 Tj
+-250 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(look) 17.7135 Tj
+-250 TJm
+(at) 7.193 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+292.212 586.501 Td
+/F124_0 9.9626 Tf
+(makefile.msc) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.943 586.501 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 564.583 Td
+(Be) 11.0684 Tj
+-291 TJm
+(a) 4.4234 Tj
+15 TJm
+(w) 7.193 Tj
+10 TJm
+(are) 12.1643 Tj
+-291 TJm
+(that) 14.9439 Tj
+-291 TJm
+(if) 6.0871 Tj
+-291 TJm
+(you) 14.9439 Tj
+-291 TJm
+(compile) 32.0995 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+192.07 564.583 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+224.857 564.583 Td
+/F122_0 9.9626 Tf
+(itself) 19.9252 Tj
+-291 TJm
+(on) 9.9626 Tj
+-291 TJm
+(W) 9.4047 Tj
+40 TJm
+(in32,) 20.2042 Tj
+-301 TJm
+(you) 14.9439 Tj
+-291 TJm
+(must) 19.3773 Tj
+-291 TJm
+(set) 11.0684 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+346.842 564.583 Td
+/F124_0 9.9626 Tf
+(BZ_UNIX) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+391.584 564.583 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-291 TJm
+(0) 4.9813 Tj
+-291 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+427.4 564.583 Td
+/F124_0 9.9626 Tf
+(BZ_LCCWIN32) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.052 564.583 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-291 TJm
+(1,) 7.472 Tj
+-301 TJm
+(in) 7.7509 Tj
+-291 TJm
+(the) 12.1743 Tj
+72 552.628 Td
+(\002le) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+87.223 552.628 Td
+/F124_0 9.9626 Tf
+(bzip2.c) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+129.066 552.628 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(before) 25.4445 Tj
+-250 TJm
+(compiling.) 42.899 Tj
+-310 TJm
+(Otherwise) 40.9463 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(resulting) 34.8691 Tj
+-250 TJm
+(binary) 25.4544 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(on') 13.2801 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ork) 13.2801 Tj
+-250 TJm
+(correctly) 35.4071 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 530.71 Td
+(I) 3.3175 Tj
+-250 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(en') 12.7222 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(tried) 18.2614 Tj
+-250 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(this) 14.396 Tj
+-250 TJm
+(stuf) 14.9439 Tj
+25 TJm
+(f) 3.3175 Tj
+-250 TJm
+(myself,) 29.6088 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(all) 9.9626 Tj
+-250 TJm
+(looks) 21.589 Tj
+-250 TJm
+(plausible.) 38.4656 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(30) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 31 34
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 701.916 Td
+/F116_0 24.7902 Tf
+(4.) 20.675 Tj
+-278 TJm
+(Miscellanea) 139.1722 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 656.35 Td
+/F116_0 17.2154 Tf
+(T) 10.5186 Tj
+80 TJm
+(ab) 20.0904 Tj
+10 TJm
+(le) 14.3576 Tj
+-278 TJm
+(of) 16.2513 Tj
+-278 TJm
+(Contents) 74.5943 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 635.788 Td
+/F122_0 9.9626 Tf
+(4.1.) 14.9439 Tj
+-310 TJm
+(Limitations) 45.9475 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(compressed) 47.0334 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(format) 26.5603 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+269.154 635.788 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 635.788 Td
+/F122_0 9.9626 Tf
+(31) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 623.832 Td
+(4.2.) 14.9439 Tj
+-310 TJm
+(Portability) 42.0721 Tj
+-250 TJm
+(issues) 23.8007 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.03 623.832 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 623.832 Td
+/F122_0 9.9626 Tf
+(32) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 611.877 Td
+(4.3.) 14.9439 Tj
+-310 TJm
+(Reporting) 39.8504 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ugs) 13.8381 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.115 611.877 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 611.877 Td
+/F122_0 9.9626 Tf
+(32) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 599.922 Td
+(4.4.) 14.9439 Tj
+-310 TJm
+(Did) 14.9439 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(get) 12.1743 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(right) 18.8194 Tj
+-250 TJm
+(package?) 37.0609 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+229.109 599.922 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 599.922 Td
+/F122_0 9.9626 Tf
+(33) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 587.967 Td
+(4.5.) 14.9439 Tj
+-310 TJm
+(Further) 29.3299 Tj
+-250 TJm
+(Reading) 33.2053 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+170.361 587.967 Td
+/F230_0 9.9626 Tf
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-166 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+-167 TJm
+(:) 2.7676 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 587.967 Td
+/F122_0 9.9626 Tf
+(34) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 556.086 Td
+(These) 23.7907 Tj
+-250 TJm
+(are) 12.1643 Tj
+-250 TJm
+(just) 14.396 Tj
+-250 TJm
+(some) 21.031 Tj
+-250 TJm
+(random) 30.4357 Tj
+-250 TJm
+(thoughts) 34.3212 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(mine.) 22.4159 Tj
+-620 TJm
+(Y) 7.193 Tj
+110 TJm
+(our) 13.2801 Tj
+-250 TJm
+(mileage) 31.5416 Tj
+-250 TJm
+(may) 17.1556 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(ary) 12.7222 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 521.334 Td
+/F116_0 20.6585 Tf
+(4.1.) 34.4584 Tj
+-278 TJm
+(Limitations) 110.1924 Tj
+-278 TJm
+(of) 19.5016 Tj
+-278 TJm
+(the) 30.9878 Tj
+-278 TJm
+(compressed) 121.6992 Tj
+-278 TJm
+(\002le) 29.8515 Tj
+-278 TJm
+(f) 6.8793 Tj
+20 TJm
+(ormat) 57.3893 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 499.416 Td
+/F124_0 9.9626 Tf
+(bzip2-1.0.X) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+137.753 499.416 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.405 499.416 Td
+/F124_0 9.9626 Tf
+(0.9.5) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.453 499.416 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+194 499.416 Td
+/F124_0 9.9626 Tf
+(0.9.0) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+227.048 499.416 Td
+/F122_0 9.9626 Tf
+(use) 13.2801 Tj
+-317 TJm
+(e) 4.4234 Tj
+15 TJm
+(xactly) 24.3486 Tj
+-318 TJm
+(the) 12.1743 Tj
+-317 TJm
+(same) 20.4731 Tj
+-317 TJm
+(\002le) 12.7322 Tj
+-317 TJm
+(format) 26.5603 Tj
+-317 TJm
+(as) 8.2988 Tj
+-318 TJm
+(the) 12.1743 Tj
+-317 TJm
+(original) 30.9936 Tj
+-317 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion,) 26.8392 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+455.801 499.416 Td
+/F124_0 9.9626 Tf
+(bzip2-0.1) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+509.599 499.416 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1024 TJm
+(This) 17.7135 Tj
+72 487.461 Td
+(decision) 33.2053 Tj
+-222 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-222 TJm
+(made) 21.579 Tj
+-222 TJm
+(in) 7.7509 Tj
+-221 TJm
+(the) 12.1743 Tj
+-222 TJm
+(interests) 33.2053 Tj
+-222 TJm
+(of) 8.2988 Tj
+-222 TJm
+(stability) 32.1095 Tj
+65 TJm
+(.) 2.4907 Tj
+-601 TJm
+(Creating) 34.3112 Tj
+-222 TJm
+(yet) 12.1743 Tj
+-222 TJm
+(another) 29.8778 Tj
+-222 TJm
+(incompatible) 52.0247 Tj
+-221 TJm
+(compressed) 47.0334 Tj
+-222 TJm
+(\002le) 12.7322 Tj
+-222 TJm
+(format) 26.5603 Tj
+-222 TJm
+(w) 7.193 Tj
+10 TJm
+(ould) 17.7135 Tj
+-222 TJm
+(create) 23.7807 Tj
+72 475.505 Td
+(further) 27.1082 Tj
+-250 TJm
+(confusion) 39.2925 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(disruption) 40.4083 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(users.) 22.9638 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 453.588 Td
+(Ne) 11.6164 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ertheless,) 37.3498 Tj
+-234 TJm
+(this) 14.396 Tj
+-229 TJm
+(is) 6.6451 Tj
+-230 TJm
+(not) 12.7322 Tj
+-229 TJm
+(a) 4.4234 Tj
+-230 TJm
+(painless) 32.0995 Tj
+-229 TJm
+(decision.) 35.696 Tj
+-606 TJm
+(De) 11.6164 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(elopment) 37.0808 Tj
+-230 TJm
+(w) 7.193 Tj
+10 TJm
+(ork) 13.2801 Tj
+-230 TJm
+(sinc) 16.0497 Tj
+1 TJm
+(e) 4.4234 Tj
+-230 TJm
+(the) 12.1743 Tj
+-230 TJm
+(release) 27.6562 Tj
+-229 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+407.317 453.588 Td
+/F124_0 9.9626 Tf
+(bzip2-0.1) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+463.402 453.588 Td
+/F122_0 9.9626 Tf
+(in) 7.7509 Tj
+-230 TJm
+(August) 28.782 Tj
+-229 TJm
+(1997) 19.9252 Tj
+-230 TJm
+(has) 13.2801 Tj
+72 441.632 Td
+(sho) 13.8381 Tj
+25 TJm
+(wn) 12.1743 Tj
+-226 TJm
+(comple) 29.3299 Tj
+15 TJm
+(xities) 21.589 Tj
+-226 TJm
+(in) 7.7509 Tj
+-225 TJm
+(the) 12.1743 Tj
+-226 TJm
+(\002le) 12.7322 Tj
+-226 TJm
+(format) 26.5603 Tj
+-226 TJm
+(which) 24.3486 Tj
+-226 TJm
+(slo) 11.6264 Tj
+25 TJm
+(w) 7.193 Tj
+-225 TJm
+(do) 9.9626 Tj
+25 TJm
+(wn) 12.1743 Tj
+-226 TJm
+(decompression) 59.7656 Tj
+-226 TJm
+(and,) 16.8766 Tj
+-231 TJm
+(in) 7.7509 Tj
+-226 TJm
+(retrospect,) 41.7732 Tj
+-230 TJm
+(are) 12.1643 Tj
+-226 TJm
+(unnecessary) 48.6872 Tj
+65 TJm
+(.) 2.4907 Tj
+-604 TJm
+(These) 23.7907 Tj
+-226 TJm
+(are:) 14.9339 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 409.752 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The) 15.4918 Tj
+-287 TJm
+(run-length) 41.5042 Tj
+-287 TJm
+(encoder) 31.5316 Tj
+40 TJm
+(,) 2.4907 Tj
+-297 TJm
+(which) 24.3486 Tj
+-287 TJm
+(is) 6.6451 Tj
+-288 TJm
+(the) 12.1743 Tj
+-287 TJm
+(\002rst) 15.5018 Tj
+-287 TJm
+(of) 8.2988 Tj
+-287 TJm
+(the) 12.1743 Tj
+-288 TJm
+(compression) 50.3609 Tj
+-287 TJm
+(transformations,) 65.0259 Tj
+-296 TJm
+(is) 6.6451 Tj
+-288 TJm
+(entirely) 30.4357 Tj
+-287 TJm
+(irrele) 21.0211 Tj
+25 TJm
+(v) 4.9813 Tj
+25 TJm
+(ant.) 14.6649 Tj
+-843 TJm
+(The) 15.4918 Tj
+-288 TJm
+(original) 30.9936 Tj
+81.963 397.797 Td
+(purpose) 31.5416 Tj
+-322 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-322 TJm
+(to) 7.7509 Tj
+-322 TJm
+(protect) 27.6661 Tj
+-321 TJm
+(the) 12.1743 Tj
+-322 TJm
+(sorting) 27.6761 Tj
+-322 TJm
+(algorithm) 38.7446 Tj
+-322 TJm
+(from) 19.3673 Tj
+-322 TJm
+(the) 12.1743 Tj
+-322 TJm
+(v) 4.9813 Tj
+15 TJm
+(ery) 12.7222 Tj
+-322 TJm
+(w) 7.193 Tj
+10 TJm
+(orst) 14.9439 Tj
+-321 TJm
+(case) 17.1456 Tj
+-322 TJm
+(input:) 23.2527 Tj
+-454 TJm
+(a) 4.4234 Tj
+-322 TJm
+(string) 22.6948 Tj
+-322 TJm
+(of) 8.2988 Tj
+-322 TJm
+(repeated) 33.7433 Tj
+-321 TJm
+(symbols.) 35.706 Tj
+-1052 TJm
+(But) 14.396 Tj
+81.963 385.842 Td
+(algorithm) 38.7446 Tj
+-229 TJm
+(steps) 19.9252 Tj
+-230 TJm
+(Q6a) 16.5977 Tj
+-229 TJm
+(and) 14.386 Tj
+-230 TJm
+(Q6b) 17.1556 Tj
+-229 TJm
+(in) 7.7509 Tj
+-230 TJm
+(t) 2.7696 Tj
+1 TJm
+(he) 9.4047 Tj
+-230 TJm
+(original) 30.9936 Tj
+-229 TJm
+(Burro) 23.2427 Tj
+25 TJm
+(ws-Wheeler) 48.1293 Tj
+-230 TJm
+(technical) 35.965 Tj
+-229 TJm
+(report) 23.7907 Tj
+-230 TJm
+(\(SRC-124\)) 43.7259 Tj
+-229 TJm
+(sho) 13.8381 Tj
+25 TJm
+(w) 7.193 Tj
+-229 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-230 TJm
+(repeats) 28.2141 Tj
+-229 TJm
+(can) 13.8281 Tj
+-230 TJm
+(be) 9.4047 Tj
+81.963 373.886 Td
+(handled) 31.5416 Tj
+-250 TJm
+(without) 30.4457 Tj
+-250 TJm
+(dif) 11.0684 Tj
+25 TJm
+(\002culty) 25.4644 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(block) 22.1369 Tj
+-250 TJm
+(sorting.) 30.1668 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 351.969 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The) 15.4918 Tj
+-315 TJm
+(randomisation) 57.006 Tj
+-314 TJm
+(mechanism) 45.3796 Tj
+-315 TJm
+(doesn') 26.5603 Tj
+18 TJm
+(t) 2.7696 Tj
+-314 TJm
+(really) 22.6848 Tj
+-315 TJm
+(need) 18.8094 Tj
+-315 TJm
+(to) 7.7509 Tj
+-314 TJm
+(be) 9.4047 Tj
+-315 TJm
+(there.) 22.4059 Tj
+-1007 TJm
+(Udi) 14.9439 Tj
+-315 TJm
+(Manber) 30.9837 Tj
+-315 TJm
+(and) 14.386 Tj
+-314 TJm
+(Gene) 21.0211 Tj
+-315 TJm
+(Myers) 25.4544 Tj
+-314 TJm
+(published) 38.7446 Tj
+-315 TJm
+(a) 4.4234 Tj
+-315 TJm
+(suf) 12.1743 Tj
+25 TJm
+(\002x) 10.5205 Tj
+81.963 340.013 Td
+(array) 20.4632 Tj
+-266 TJm
+(construction) 49.2551 Tj
+-266 TJm
+(algorithm) 38.7446 Tj
+-266 TJm
+(a) 4.4234 Tj
+-266 TJm
+(fe) 7.7409 Tj
+25 TJm
+(w) 7.193 Tj
+-266 TJm
+(years) 21.0211 Tj
+-266 TJm
+(back,) 21.3 Tj
+-269 TJm
+(which) 24.3486 Tj
+-266 TJm
+(can) 13.8281 Tj
+-266 TJm
+(be) 9.4047 Tj
+-266 TJm
+(emplo) 24.9065 Tj
+10 TJm
+(yed) 14.386 Tj
+-266 TJm
+(to) 7.7509 Tj
+-266 TJm
+(sort) 14.9439 Tj
+-266 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-266 TJm
+(block,) 24.6275 Tj
+-270 TJm
+(no) 9.9626 Tj
+-266 TJm
+(matter) 25.4544 Tj
+-266 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-266 TJm
+(repetiti) 28.224 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e,) 6.914 Tj
+81.963 328.058 Td
+(in) 7.7509 Tj
+-257 TJm
+(O\(N) 17.7035 Tj
+-257 TJm
+(log) 12.7322 Tj
+-257 TJm
+(N\)) 10.5105 Tj
+-258 TJm
+(time.) 20.2042 Tj
+-663 TJm
+(Subsequent) 45.9375 Tj
+-257 TJm
+(w) 7.193 Tj
+10 TJm
+(ork) 13.2801 Tj
+-257 TJm
+(by) 9.9626 Tj
+-257 TJm
+(K) 7.193 Tj
+15 TJm
+(unihik) 25.4644 Tj
+10 TJm
+(o) 4.9813 Tj
+-257 TJm
+(Sadakane) 38.1767 Tj
+-258 TJm
+(has) 13.2801 Tj
+-257 TJm
+(produced) 37.0708 Tj
+-257 TJm
+(a) 4.4234 Tj
+-257 TJm
+(deri) 15.4918 Tj
+25 TJm
+(v) 4.9813 Tj
+25 TJm
+(ati) 9.9626 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-257 TJm
+(O\(N) 17.7035 Tj
+-257 TJm
+(\(log) 16.0497 Tj
+-258 TJm
+(N\)^2\)) 23.4818 Tj
+-257 TJm
+(algorithm) 38.7446 Tj
+81.963 316.103 Td
+(which) 24.3486 Tj
+-250 TJm
+(usually) 28.782 Tj
+-250 TJm
+(outperforms) 48.6972 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(Manber) 30.9837 Tj
+20 TJm
+(-Myers) 28.772 Tj
+-250 TJm
+(algorithm.) 41.2352 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 294.185 Td
+(I) 3.3175 Tj
+-274 TJm
+(could) 22.1369 Tj
+-274 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-274 TJm
+(changed) 33.1954 Tj
+-274 TJm
+(to) 7.7509 Tj
+-274 TJm
+(Sadakane') 41.4942 Tj
+55 TJm
+(s) 3.8755 Tj
+-274 TJm
+(algorithm,) 41.2352 Tj
+-280 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-274 TJm
+(I) 3.3175 Tj
+-274 TJm
+(\002nd) 15.5018 Tj
+-274 TJm
+(it) 5.5392 Tj
+-274 TJm
+(to) 7.7509 Tj
+-274 TJm
+(be) 9.4047 Tj
+-274 TJm
+(slo) 11.6264 Tj
+25 TJm
+(wer) 14.9339 Tj
+-274 TJm
+(than) 17.1556 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+391.407 294.185 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+421.295 294.185 Td
+/F122_0 9.9626 Tf
+(') 3.3175 Tj
+55 TJm
+(s) 3.8755 Tj
+-274 TJm
+(e) 4.4234 Tj
+15 TJm
+(xisting) 27.1282 Tj
+-274 TJm
+(algorithm) 38.7446 Tj
+-274 TJm
+(for) 11.6164 Tj
+-274 TJm
+(most) 19.3773 Tj
+81.963 282.23 Td
+(inputs,) 26.8492 Tj
+-399 TJm
+(and) 14.386 Tj
+-369 TJm
+(the) 12.1743 Tj
+-369 TJm
+(randomisation) 57.006 Tj
+-370 TJm
+(me) 12.1743 Tj
+1 TJm
+(chanism) 33.2053 Tj
+-370 TJm
+(protects) 31.5416 Tj
+-369 TJm
+(adequately) 43.158 Tj
+-369 TJm
+(ag) 9.4047 Tj
+5 TJm
+(ainst) 18.8194 Tj
+-369 TJm
+(bad) 14.386 Tj
+-369 TJm
+(cases.) 23.5117 Tj
+-1336 TJm
+(I) 3.3175 Tj
+-369 TJm
+(didn') 21.031 Tj
+18 TJm
+(t) 2.7696 Tj
+-369 TJm
+(think) 20.4831 Tj
+-369 TJm
+(it) 5.5392 Tj
+-369 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-369 TJm
+(a) 4.4234 Tj
+-370 TJm
+(good) 19.9252 Tj
+81.963 270.275 Td
+(tradeof) 28.2141 Tj
+25 TJm
+(f) 3.3175 Tj
+-282 TJm
+(to) 7.7509 Tj
+-283 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e.) 6.914 Tj
+-815 TJm
+(P) 5.5392 Tj
+15 TJm
+(artly) 18.2614 Tj
+-282 TJm
+(this) 14.396 Tj
+-282 TJm
+(is) 6.6451 Tj
+-283 TJm
+(due) 14.386 Tj
+-282 TJm
+(to) 7.7509 Tj
+-283 TJm
+(the) 12.1743 Tj
+-282 TJm
+(f) 3.3175 Tj
+10 TJm
+(act) 11.6164 Tj
+-283 TJm
+(that) 14.9439 Tj
+-282 TJm
+(I) 3.3175 Tj
+-283 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-282 TJm
+(not) 12.7322 Tj
+-282 TJm
+(\003ooded) 29.8878 Tj
+-283 TJm
+(with) 17.7135 Tj
+-282 TJm
+(email) 22.1369 Tj
+-283 TJm
+(complaints) 43.7259 Tj
+-282 TJm
+(about) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+479.557 270.275 Td
+/F124_0 9.9626 Tf
+(bzip2-0.1) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+533.355 270.275 Td
+/F122_0 9.9626 Tf
+(') 3.3175 Tj
+55 TJm
+(s) 3.8755 Tj
+81.963 258.32 Td
+(performance) 50.341 Tj
+-250 TJm
+(on) 9.9626 Tj
+-250 TJm
+(repetiti) 28.224 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(data,) 19.0883 Tj
+-250 TJm
+(so) 8.8568 Tj
+-250 TJm
+(perhaps) 30.9837 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(isn') 14.9439 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(problem) 33.2053 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(real) 14.9339 Tj
+-250 TJm
+(inputs.) 26.8492 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 236.402 Td
+(Probably) 35.9749 Tj
+-314 TJm
+(the) 12.1743 Tj
+-315 TJm
+(best) 16.0497 Tj
+-314 TJm
+(long-term) 39.2925 Tj
+-314 TJm
+(solution,) 34.6001 Tj
+-331 TJm
+(and) 14.386 Tj
+-314 TJm
+(the) 12.1743 Tj
+-314 TJm
+(one) 14.386 Tj
+-315 TJm
+(I) 3.3175 Tj
+-314 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-314 TJm
+(incorporated) 50.351 Tj
+-315 TJm
+(into) 15.5018 Tj
+-314 TJm
+(0.9.5) 19.9252 Tj
+-314 TJm
+(and) 14.386 Tj
+-315 TJm
+(abo) 14.386 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e,) 6.914 Tj
+-330 TJm
+(is) 6.6451 Tj
+-315 TJm
+(to) 7.7509 Tj
+-314 TJm
+(use) 13.2801 Tj
+-314 TJm
+(the) 12.1743 Tj
+-315 TJm
+(e) 4.4234 Tj
+15 TJm
+(xisting) 27.1282 Tj
+81.963 224.447 Td
+(sorting) 27.6761 Tj
+-206 TJm
+(algorithm) 38.7446 Tj
+-206 TJm
+(initially) 31.0036 Tj
+65 TJm
+(,) 2.4907 Tj
+-215 TJm
+(and) 14.386 Tj
+-207 TJm
+(f) 3.3175 Tj
+10 TJm
+(all) 9.9626 Tj
+-206 TJm
+(back) 18.8094 Tj
+-206 TJm
+(to) 7.7509 Tj
+-206 TJm
+(a) 4.4234 Tj
+-207 TJm
+(O\(N) 17.7035 Tj
+-206 TJm
+(\(log) 16.0497 Tj
+-206 TJm
+(N\)^2\)) 23.4818 Tj
+-206 TJm
+(algorithm) 38.7446 Tj
+-206 TJm
+(if) 6.0871 Tj
+-207 TJm
+(the) 12.1743 Tj
+-206 TJm
+(standard) 33.7533 Tj
+-206 TJm
+(algorithm) 38.7446 Tj
+-206 TJm
+(gets) 16.0497 Tj
+-206 TJm
+(into) 15.5018 Tj
+-207 TJm
+(dif) 11.0684 Tj
+25 TJm
+(\002culties.) 34.0422 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 202.529 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The) 15.4918 Tj
+-321 TJm
+(compressed) 47.0334 Tj
+-322 TJm
+(\002le) 12.7322 Tj
+-321 TJm
+(format) 26.5603 Tj
+-321 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-322 TJm
+(ne) 9.4047 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-321 TJm
+(designed) 35.417 Tj
+-321 TJm
+(to) 7.7509 Tj
+-322 TJm
+(be) 9.4047 Tj
+-321 TJm
+(handled) 31.5416 Tj
+-321 TJm
+(by) 9.9626 Tj
+-322 TJm
+(a) 4.4234 Tj
+-321 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+-339 TJm
+(and) 14.386 Tj
+-322 TJm
+(I) 3.3175 Tj
+-321 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-321 TJm
+(had) 14.386 Tj
+-322 TJm
+(to) 7.7509 Tj
+-321 TJm
+(jump) 20.4831 Tj
+-321 TJm
+(though) 27.6761 Tj
+-322 TJm
+(some) 21.031 Tj
+81.963 190.574 Td
+(hoops) 23.8007 Tj
+-299 TJm
+(t) 2.7696 Tj
+1 TJm
+(o) 4.9813 Tj
+-299 TJm
+(produce) 32.0895 Tj
+-299 TJm
+(an) 9.4047 Tj
+-298 TJm
+(ef) 7.7409 Tj
+25 TJm
+(\002cient) 24.9065 Tj
+-299 TJm
+(implementation) 62.5452 Tj
+-298 TJm
+(of) 8.2988 Tj
+-299 TJm
+(decompression.) 62.2563 Tj
+-911 TJm
+(It') 9.4047 Tj
+55 TJm
+(s) 3.8755 Tj
+-298 TJm
+(a) 4.4234 Tj
+-299 TJm
+(bit) 10.5205 Tj
+-298 TJm
+(hairy) 20.4731 Tj
+65 TJm
+(.) 2.4907 Tj
+-912 TJm
+(T) 6.0871 Tj
+35 TJm
+(ry) 8.2988 Tj
+-298 TJm
+(passing) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+468.269 190.574 Td
+/F124_0 9.9626 Tf
+(decompress.c) 71.7307 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 178.619 Td
+/F122_0 9.9626 Tf
+(through) 30.9936 Tj
+-289 TJm
+(the) 12.1743 Tj
+-289 TJm
+(C) 6.6451 Tj
+-289 TJm
+(preprocessor) 50.8989 Tj
+-289 TJm
+(and) 14.386 Tj
+-289 TJm
+(you') 18.2614 Tj
+10 TJm
+(ll) 5.5392 Tj
+-289 TJm
+(see) 12.7222 Tj
+-289 TJm
+(what) 19.3673 Tj
+-289 TJm
+(I) 3.3175 Tj
+-289 TJm
+(mean.) 24.0696 Tj
+-854 TJm
+(Much) 23.2427 Tj
+-289 TJm
+(of) 8.2988 Tj
+-289 TJm
+(this) 14.396 Tj
+-289 TJm
+(comple) 29.3299 Tj
+15 TJm
+(xity) 15.5018 Tj
+-289 TJm
+(could) 22.1369 Tj
+-289 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-289 TJm
+(been) 18.8094 Tj
+-289 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+20 TJm
+(oided) 22.1369 Tj
+-289 TJm
+(if) 6.0871 Tj
+-289 TJm
+(the) 12.1743 Tj
+81.963 166.663 Td
+(compressed) 47.0334 Tj
+-250 TJm
+(size) 15.4918 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(each) 18.2515 Tj
+-250 TJm
+(block) 22.1369 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-250 TJm
+(recorded) 34.8492 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(data) 16.5977 Tj
+-250 TJm
+(stream.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 144.746 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(An) 12.1743 Tj
+-250 TJm
+(Adler) 22.6848 Tj
+20 TJm
+(-32) 13.2801 Tj
+-250 TJm
+(checksum,) 42.3311 Tj
+-250 TJm
+(rather) 23.2328 Tj
+-250 TJm
+(than) 17.1556 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(CRC32) 29.8978 Tj
+-250 TJm
+(checksum,) 42.3311 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ould) 17.7135 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(f) 3.3175 Tj
+10 TJm
+(aster) 18.8094 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(compute.) 36.8018 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 122.828 Td
+(It) 6.0871 Tj
+-349 TJm
+(w) 7.193 Tj
+10 TJm
+(ould) 17.7135 Tj
+-349 TJm
+(be) 9.4047 Tj
+-349 TJm
+(f) 3.3175 Tj
+10 TJm
+(air) 10.5105 Tj
+-348 TJm
+(to) 7.7509 Tj
+-349 TJm
+(say) 13.2801 Tj
+-349 TJm
+(that) 14.9439 Tj
+-349 TJm
+(the) 12.1743 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+201.979 122.828 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+235.342 122.828 Td
+/F122_0 9.9626 Tf
+(format) 26.5603 Tj
+-349 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-349 TJm
+(frozen) 25.4445 Tj
+-348 TJm
+(before) 25.4445 Tj
+-349 TJm
+(I) 3.3175 Tj
+-349 TJm
+(properly) 33.7533 Tj
+-349 TJm
+(and) 14.386 Tj
+-349 TJm
+(fully) 18.8194 Tj
+-349 TJm
+(understood) 44.2738 Tj
+-348 TJm
+(the) 12.1743 Tj
+-349 TJm
+(performance) 50.341 Tj
+72 110.873 Td
+(consequences) 54.7744 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(doing) 22.6948 Tj
+-250 TJm
+(so.) 11.3474 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 88.955 Td
+(Impro) 24.3486 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(ements) 28.224 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(I) 3.3175 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(as) 8.2988 Tj
+-250 TJm
+(able) 16.5977 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(incorporate) 45.3697 Tj
+-250 TJm
+(into) 15.5018 Tj
+-250 TJm
+(0.9.0,) 22.4159 Tj
+-250 TJm
+(despite) 28.224 Tj
+-250 TJm
+(using) 21.589 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(same) 20.4731 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(format,) 29.0509 Tj
+-250 TJm
+(are:) 14.9339 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(31) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 32 35
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+498.728 749.245 Td
+/F122_0 9.9626 Tf
+(Miscellanea) 48.1393 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+74.491 710.037 Td
+/F122_0 9.9626 Tf
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Single) 25.4644 Tj
+-234 TJm
+(array) 20.4632 Tj
+-234 TJm
+(implementation) 62.5452 Tj
+-235 TJm
+(of) 8.2988 Tj
+-234 TJm
+(the) 12.1743 Tj
+-234 TJm
+(in) 7.7509 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(erse) 16.0398 Tj
+-234 TJm
+(BWT) 22.1369 Tj
+74 TJm
+(.) 2.4907 Tj
+-469 TJm
+(This) 17.7135 Tj
+-234 TJm
+(signi\002cantly) 49.2651 Tj
+-235 TJm
+(speeds) 26.5603 Tj
+-234 TJm
+(up) 9.9626 Tj
+-234 TJm
+(decompression,) 62.2563 Tj
+-237 TJm
+(presumably) 46.4855 Tj
+-235 TJm
+(because) 31.5316 Tj
+81.963 698.082 Td
+(it) 5.5392 Tj
+-250 TJm
+(reduces) 30.4258 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(number) 30.4357 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(cache) 22.6749 Tj
+-250 TJm
+(misses.) 29.0609 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 676.164 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(F) 5.5392 Tj
+15 TJm
+(aster) 18.8094 Tj
+-338 TJm
+(in) 7.7509 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(erse) 16.0398 Tj
+-338 TJm
+(MTF) 20.4831 Tj
+-338 TJm
+(transform) 38.7346 Tj
+-338 TJm
+(for) 11.6164 Tj
+-339 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ge) 9.4047 Tj
+-338 TJm
+(MTF) 20.4831 Tj
+-338 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues.) 22.9638 Tj
+-574 TJm
+(The) 15.4918 Tj
+-338 TJm
+(ne) 9.4047 Tj
+25 TJm
+(w) 7.193 Tj
+-339 TJm
+(implementation) 62.5452 Tj
+-338 TJm
+(is) 6.6451 Tj
+-338 TJm
+(based) 22.6848 Tj
+-338 TJm
+(on) 9.9626 Tj
+-338 TJm
+(the) 12.1743 Tj
+-338 TJm
+(notion) 25.4644 Tj
+-339 TJm
+(of) 8.2988 Tj
+-338 TJm
+(sliding) 27.1282 Tj
+81.963 664.209 Td
+(blocks) 26.0123 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(v) 4.9813 Tj
+25 TJm
+(alues.) 22.9638 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 642.291 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 642.291 Td
+/F124_0 9.9626 Tf
+(bzip2-0.9.0) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+151.137 642.291 Td
+/F122_0 9.9626 Tf
+(no) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-293 TJm
+(reads) 21.0211 Tj
+-294 TJm
+(and) 14.386 Tj
+-293 TJm
+(writes) 24.3486 Tj
+-293 TJm
+(\002les) 16.6077 Tj
+-294 TJm
+(with) 17.7135 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+279.657 642.291 Td
+/F124_0 9.9626 Tf
+(fread) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+312.467 642.291 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+329.776 642.291 Td
+/F124_0 9.9626 Tf
+(fwrite) 35.8654 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+365.642 642.291 Td
+/F122_0 9.9626 Tf
+(;) 2.7696 Tj
+-315 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-293 TJm
+(0.1) 12.4533 Tj
+-294 TJm
+(used) 18.2614 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+440.214 642.291 Td
+/F124_0 9.9626 Tf
+(putc) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+467.047 642.291 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+484.356 642.291 Td
+/F124_0 9.9626 Tf
+(getc) 23.9102 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+508.266 642.291 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-880 TJm
+(Duh!) 20.4731 Tj
+81.963 630.336 Td
+(W) 9.4047 Tj
+80 TJm
+(ell,) 12.4533 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(li) 5.5392 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(learn.) 22.4059 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 608.418 Td
+(Further) 29.3299 Tj
+-304 TJm
+(ahead,) 25.7234 Tj
+-318 TJm
+(it) 5.5392 Tj
+-305 TJm
+(w) 7.193 Tj
+10 TJm
+(ould) 17.7135 Tj
+-304 TJm
+(be) 9.4047 Tj
+-305 TJm
+(nice) 16.5977 Tj
+-304 TJm
+(to) 7.7509 Tj
+-305 TJm
+(be) 9.4047 Tj
+-304 TJm
+(able) 16.5977 Tj
+-304 TJm
+(to) 7.7509 Tj
+-305 TJm
+(do) 9.9626 Tj
+-304 TJm
+(random) 30.4357 Tj
+-305 TJm
+(access) 25.4445 Tj
+-304 TJm
+(into) 15.5018 Tj
+-305 TJm
+(\002les.) 19.0983 Tj
+-946 TJm
+(This) 17.7135 Tj
+-305 TJm
+(will) 15.5018 Tj
+-304 TJm
+(require) 28.2141 Tj
+-304 TJm
+(some) 21.031 Tj
+-305 TJm
+(careful) 27.6562 Tj
+-304 TJm
+(design) 26.0123 Tj
+-305 TJm
+(of) 8.2988 Tj
+72 596.463 Td
+(compressed) 47.0334 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(formats.) 32.9264 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 561.71 Td
+/F116_0 20.6585 Tf
+(4.2.) 34.4584 Tj
+-278 TJm
+(P) 13.7792 Tj
+40 TJm
+(or) 20.6585 Tj
+-20 TJm
+(tability) 66.5823 Tj
+-278 TJm
+(issues) 64.3099 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 539.792 Td
+/F122_0 9.9626 Tf
+(After) 21.0211 Tj
+-250 TJm
+(some) 21.031 Tj
+-250 TJm
+(consideration,) 56.1691 Tj
+-250 TJm
+(I) 3.3175 Tj
+-250 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(decided) 30.9837 Tj
+-250 TJm
+(not) 12.7322 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(use) 13.2801 Tj
+-250 TJm
+(GNU) 21.579 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+303.231 539.792 Td
+/F124_0 9.9626 Tf
+(autoconf) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+353.542 539.792 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-250 TJm
+(con\002gure) 37.6287 Tj
+-250 TJm
+(0.9.5) 19.9252 Tj
+-250 TJm
+(or) 8.2988 Tj
+-250 TJm
+(1.0.) 14.9439 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 517.875 Td
+/F124_0 9.9626 Tf
+(autoconf) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+119.821 517.875 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-502 TJm
+(admirable) 39.8404 Tj
+-452 TJm
+(and) 14.386 Tj
+-452 TJm
+(w) 7.193 Tj
+10 TJm
+(onderful) 33.7533 Tj
+-452 TJm
+(though) 27.6761 Tj
+-452 TJm
+(it) 5.5392 Tj
+-452 TJm
+(is,) 9.1357 Tj
+-502 TJm
+(mainly) 27.6761 Tj
+-452 TJm
+(assists) 25.4644 Tj
+-452 TJm
+(with) 17.7135 Tj
+-452 TJm
+(portability) 41.5142 Tj
+-452 TJm
+(problems) 37.0808 Tj
+-452 TJm
+(between) 33.1954 Tj
+-452 TJm
+(Unix-lik) 33.7633 Tj
+10 TJm
+(e) 4.4234 Tj
+72 505.92 Td
+(platforms.) 40.6773 Tj
+-1398 TJm
+(But) 14.396 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+144.784 505.92 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+178.455 505.92 Td
+/F122_0 9.9626 Tf
+(doesn') 26.5603 Tj
+18 TJm
+(t) 2.7696 Tj
+-380 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-379 TJm
+(much) 22.1369 Tj
+-380 TJm
+(in) 7.7509 Tj
+-380 TJm
+(the) 12.1743 Tj
+-379 TJm
+(w) 7.193 Tj
+10 TJm
+(ay) 9.4047 Tj
+-380 TJm
+(of) 8.2988 Tj
+-380 TJm
+(portability) 41.5142 Tj
+-379 TJm
+(problems) 37.0808 Tj
+-380 TJm
+(on) 9.9626 Tj
+-380 TJm
+(Unix;) 22.6948 Tj
+-444 TJm
+(most) 19.3773 Tj
+-380 TJm
+(of) 8.2988 Tj
+-380 TJm
+(the) 12.1743 Tj
+-379 TJm
+(dif) 11.0684 Tj
+25 TJm
+(\002culties) 31.5516 Tj
+72 493.964 Td
+(appear) 26.5503 Tj
+-297 TJm
+(when) 21.579 Tj
+-296 TJm
+(p) 4.9813 Tj
+-1 TJm
+(or) 8.2988 Tj
+1 TJm
+(ting) 15.5018 Tj
+-297 TJm
+(to) 7.7509 Tj
+-297 TJm
+(the) 12.1743 Tj
+-297 TJm
+(Mac,) 20.1942 Tj
+-308 TJm
+(or) 8.2988 Tj
+-297 TJm
+(to) 7.7509 Tj
+-297 TJm
+(Microsoft') 42.61 Tj
+55 TJm
+(s) 3.8755 Tj
+-296 TJm
+(operating) 37.6287 Tj
+-297 TJm
+(systems.) 34.0422 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+361.339 493.964 Td
+/F124_0 9.9626 Tf
+(autoconf) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+412.116 493.964 Td
+/F122_0 9.9626 Tf
+(doesn') 26.5603 Tj
+18 TJm
+(t) 2.7696 Tj
+-297 TJm
+(help) 17.1556 Tj
+-297 TJm
+(in) 7.7509 Tj
+-296 TJm
+(those) 21.031 Tj
+-297 TJm
+(cases,) 23.5117 Tj
+-308 TJm
+(and) 14.386 Tj
+72 482.009 Td
+(brings) 24.9065 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(whole) 24.3486 Tj
+-250 TJm
+(load) 17.1556 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(ne) 9.4047 Tj
+25 TJm
+(w) 7.193 Tj
+-250 TJm
+(comple) 29.3299 Tj
+15 TJm
+(xity) 15.5018 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 460.091 Td
+(Most) 20.4831 Tj
+-392 TJm
+(people) 26.5603 Tj
+-392 TJm
+(should) 26.5703 Tj
+-393 TJm
+(be) 9.4047 Tj
+-392 TJm
+(able) 16.5977 Tj
+-392 TJm
+(to) 7.7509 Tj
+-392 TJm
+(compile) 32.0995 Tj
+-393 TJm
+(the) 12.1743 Tj
+-392 TJm
+(library) 26.5603 Tj
+-392 TJm
+(and) 14.386 Tj
+-392 TJm
+(program) 33.7533 Tj
+-393 TJm
+(under) 22.6848 Tj
+-392 TJm
+(Unix) 19.9252 Tj
+-392 TJm
+(straight) 29.8878 Tj
+-392 TJm
+(out-of-the-box,) 60.5925 Tj
+-428 TJm
+(so) 8.8568 Tj
+-392 TJm
+(to) 7.7509 Tj
+-393 TJm
+(speak,) 25.1755 Tj
+72 448.136 Td
+(especially) 39.8404 Tj
+-250 TJm
+(if) 6.0871 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(GNU) 21.579 Tj
+-250 TJm
+(C) 6.6451 Tj
+-250 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+25 TJm
+(ailable.) 29.0509 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 426.218 Td
+(There) 23.2328 Tj
+-259 TJm
+(are) 12.1643 Tj
+-258 TJm
+(a) 4.4234 Tj
+-259 TJm
+(couple) 26.5603 Tj
+-258 TJm
+(of) 8.2988 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.561 426.218 Td
+/F124_0 9.9626 Tf
+(__inline__) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.913 426.218 Td
+/F122_0 9.9626 Tf
+(directi) 25.4544 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(es) 8.2988 Tj
+-259 TJm
+(in) 7.7509 Tj
+-258 TJm
+(the) 12.1743 Tj
+-259 TJm
+(code.) 21.3 Tj
+-671 TJm
+(GNU) 21.579 Tj
+-259 TJm
+(C) 6.6451 Tj
+-258 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+352.587 426.218 Td
+/F124_0 9.9626 Tf
+(gcc) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+370.52 426.218 Td
+/F122_0 9.9626 Tf
+(\)) 3.3175 Tj
+-259 TJm
+(should) 26.5703 Tj
+-258 TJm
+(be) 9.4047 Tj
+-259 TJm
+(able) 16.5977 Tj
+-258 TJm
+(to) 7.7509 Tj
+-259 TJm
+(handle) 26.5603 Tj
+-258 TJm
+(them.) 22.4159 Tj
+-672 TJm
+(If) 6.6351 Tj
+-259 TJm
+(you') 18.2614 Tj
+50 TJm
+(re) 7.7409 Tj
+72 414.263 Td
+(not) 12.7322 Tj
+-279 TJm
+(using) 21.589 Tj
+-279 TJm
+(GNU) 21.579 Tj
+-279 TJm
+(C,) 9.1357 Tj
+-279 TJm
+(your) 18.2614 Tj
+-279 TJm
+(C) 6.6451 Tj
+-279 TJm
+(compiler) 35.417 Tj
+-279 TJm
+(shouldn') 34.8691 Tj
+18 TJm
+(t) 2.7696 Tj
+-279 TJm
+(see) 12.7222 Tj
+-279 TJm
+(them) 19.9252 Tj
+-279 TJm
+(at) 7.193 Tj
+-279 TJm
+(all.) 12.4533 Tj
+-794 TJm
+(If) 6.6351 Tj
+-279 TJm
+(your) 18.2614 Tj
+-279 TJm
+(compiler) 35.417 Tj
+-279 TJm
+(does,) 20.7521 Tj
+-286 TJm
+(for) 11.6164 Tj
+-279 TJm
+(some) 21.031 Tj
+-279 TJm
+(reason,) 28.493 Tj
+-287 TJm
+(see) 12.7222 Tj
+-279 TJm
+(them) 19.9252 Tj
+-279 TJm
+(and) 14.386 Tj
+72 402.308 Td
+(doesn') 26.5603 Tj
+18 TJm
+(t) 2.7696 Tj
+-283 TJm
+(lik) 10.5205 Tj
+10 TJm
+(e) 4.4234 Tj
+-283 TJm
+(them,) 22.4159 Tj
+-291 TJm
+(just) 14.396 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+164.167 402.308 Td
+/F124_0 9.9626 Tf
+(#define) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-283 TJm
+(__inline__) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+271.425 402.308 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-283 TJm
+(be) 9.4047 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.22 402.308 Td
+/F124_0 9.9626 Tf
+(/) 5.9776 Tj
+300.197 400.565 Td
+(*) 5.9776 Tj
+-600 TJm
+(*) 5.9776 Tj
+318.13 402.308 Td
+(/) 5.9776 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+324.108 402.308 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-818 TJm
+(One) 16.5977 Tj
+-283 TJm
+(easy) 17.7035 Tj
+-283 TJm
+(w) 7.193 Tj
+10 TJm
+(ay) 9.4047 Tj
+-283 TJm
+(to) 7.7509 Tj
+-283 TJm
+(do) 9.9626 Tj
+-283 TJm
+(this) 14.396 Tj
+-283 TJm
+(is) 6.6451 Tj
+-283 TJm
+(to) 7.7509 Tj
+-283 TJm
+(compile) 32.0995 Tj
+-283 TJm
+(with) 17.7135 Tj
+-283 TJm
+(the) 12.1743 Tj
+-283 TJm
+(\003ag) 14.9439 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 390.353 Td
+/F124_0 9.9626 Tf
+(-D__inline__=) 77.7083 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+149.709 390.353 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-250 TJm
+(which) 24.3486 Tj
+-250 TJm
+(should) 26.5703 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(understood) 44.2738 Tj
+-250 TJm
+(by) 9.9626 Tj
+-250 TJm
+(most) 19.3773 Tj
+-250 TJm
+(Unix) 19.9252 Tj
+-250 TJm
+(compilers.) 41.7831 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 368.435 Td
+(If) 6.6351 Tj
+-321 TJm
+(you) 14.9439 Tj
+-321 TJm
+(still) 14.9539 Tj
+-322 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-321 TJm
+(dif) 11.0684 Tj
+25 TJm
+(\002culties,) 34.0422 Tj
+-339 TJm
+(try) 11.0684 Tj
+-321 TJm
+(compiling) 40.4083 Tj
+-321 TJm
+(with) 17.7135 Tj
+-322 TJm
+(t) 2.7696 Tj
+1 TJm
+(he) 9.4047 Tj
+-322 TJm
+(macro) 24.8965 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+310.295 368.435 Td
+/F124_0 9.9626 Tf
+(BZ_STRICT_ANSI) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+397.181 368.435 Td
+/F122_0 9.9626 Tf
+(de\002ned.) 31.8205 Tj
+-524 TJm
+(This) 17.7135 Tj
+-321 TJm
+(should) 26.5703 Tj
+-321 TJm
+(enable) 26.0024 Tj
+-321 TJm
+(you) 14.9439 Tj
+-322 TJm
+(to) 7.7509 Tj
+72 356.48 Td
+(b) 4.9813 Tj
+20 TJm
+(uild) 15.5018 Tj
+-321 TJm
+(the) 12.1743 Tj
+-321 TJm
+(library) 26.5603 Tj
+-322 TJm
+(in) 7.7509 Tj
+-321 TJm
+(a) 4.4234 Tj
+-321 TJm
+(strictly) 27.6761 Tj
+-321 TJm
+(ANSI) 23.2427 Tj
+-321 TJm
+(compliant) 39.8504 Tj
+-322 TJm
+(en) 9.4047 Tj
+40 TJm
+(vironment.) 43.4469 Tj
+-1047 TJm
+(Building) 34.8791 Tj
+-321 TJm
+(the) 12.1743 Tj
+-321 TJm
+(program) 33.7533 Tj
+-322 TJm
+(itself) 19.9252 Tj
+-321 TJm
+(lik) 10.5205 Tj
+10 TJm
+(e) 4.4234 Tj
+-321 TJm
+(this) 14.396 Tj
+-321 TJm
+(is) 6.6451 Tj
+-321 TJm
+(dangerous) 40.9463 Tj
+-322 TJm
+(and) 14.386 Tj
+72 344.525 Td
+(not) 12.7322 Tj
+-260 TJm
+(supported,) 41.7831 Tj
+-263 TJm
+(since) 20.4731 Tj
+-260 TJm
+(you) 14.9439 Tj
+-260 TJm
+(remo) 20.4731 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+204.498 344.525 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.386 344.525 Td
+/F122_0 9.9626 Tf
+(') 3.3175 Tj
+55 TJm
+(s) 3.8755 Tj
+-260 TJm
+(checks) 27.1082 Tj
+-260 TJm
+(ag) 9.4047 Tj
+5 TJm
+(ainst) 18.8194 Tj
+-260 TJm
+(compressing) 50.3609 Tj
+-261 TJm
+(directories,) 44.5428 Tj
+-262 TJm
+(symbolic) 36.5329 Tj
+-261 TJm
+(li) 5.5392 Tj
+1 TJm
+(nks,) 16.3287 Tj
+-263 TJm
+(de) 9.4047 Tj
+25 TJm
+(vices,) 22.9638 Tj
+-263 TJm
+(and) 14.386 Tj
+-260 TJm
+(other) 20.4731 Tj
+72 332.57 Td
+(not-really-a-\002le) 62.5253 Tj
+-250 TJm
+(entities.) 31.2726 Tj
+-620 TJm
+(This) 17.7135 Tj
+-250 TJm
+(could) 22.1369 Tj
+-250 TJm
+(cause) 22.1269 Tj
+-250 TJm
+(\002lesystem) 40.4083 Tj
+-250 TJm
+(corruption!) 44.8217 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 310.652 Td
+(One) 16.5977 Tj
+-392 TJm
+(other) 20.4731 Tj
+-391 TJm
+(thing:) 23.2527 Tj
+-594 TJm
+(if) 6.0871 Tj
+-391 TJm
+(you) 14.9439 Tj
+-392 TJm
+(create) 23.7807 Tj
+-391 TJm
+(a) 4.4234 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.879 310.652 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+244.669 310.652 Td
+/F122_0 9.9626 Tf
+(binary) 25.4544 Tj
+-392 TJm
+(for) 11.6164 Tj
+-391 TJm
+(public) 24.9065 Tj
+-392 TJm
+(distrib) 25.4644 Tj
+20 TJm
+(ution,) 22.9738 Tj
+-427 TJm
+(please) 24.8965 Tj
+-392 TJm
+(consider) 33.7533 Tj
+-391 TJm
+(linking) 28.234 Tj
+-392 TJm
+(it) 5.5392 Tj
+-391 TJm
+(statically) 35.9749 Tj
+-392 TJm
+(\() 3.3175 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+522.067 310.652 Td
+/F124_0 9.9626 Tf
+(gcc) 17.9327 Tj
+72 298.697 Td
+(-static) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+113.843 298.697 Td
+/F122_0 9.9626 Tf
+(\).) 5.8082 Tj
+-620 TJm
+(This) 17.7135 Tj
+-250 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+20 TJm
+(oids) 16.6077 Tj
+-250 TJm
+(all) 9.9626 Tj
+-250 TJm
+(sorts) 18.8194 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(library-v) 34.8591 Tj
+15 TJm
+(ersion) 24.3486 Tj
+-250 TJm
+(issues) 23.8007 Tj
+-250 TJm
+(that) 14.9439 Tj
+-250 TJm
+(others) 24.3486 Tj
+-250 TJm
+(may) 17.1556 Tj
+-250 TJm
+(encounter) 39.2825 Tj
+-250 TJm
+(later) 17.7035 Tj
+-250 TJm
+(on.) 12.4533 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 276.779 Td
+(If) 6.6351 Tj
+-296 TJm
+(you) 14.9439 Tj
+-296 TJm
+(b) 4.9813 Tj
+20 TJm
+(uild) 15.5018 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+122.708 276.779 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.545 276.779 Td
+/F122_0 9.9626 Tf
+(on) 9.9626 Tj
+-296 TJm
+(W) 9.4047 Tj
+40 TJm
+(in32,) 20.2042 Tj
+-307 TJm
+(you) 14.9439 Tj
+-296 TJm
+(must) 19.3773 Tj
+-296 TJm
+(set) 11.0684 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+254.965 276.779 Td
+/F124_0 9.9626 Tf
+(BZ_UNIX) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+299.756 276.779 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-296 TJm
+(0) 4.9813 Tj
+-296 TJm
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+335.72 276.779 Td
+/F124_0 9.9626 Tf
+(BZ_LCCWIN32) 65.7532 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+404.422 276.779 Td
+/F122_0 9.9626 Tf
+(to) 7.7509 Tj
+-296 TJm
+(1,) 7.472 Tj
+-307 TJm
+(in) 7.7509 Tj
+-296 TJm
+(the) 12.1743 Tj
+-296 TJm
+(\002le) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+467.159 276.779 Td
+/F124_0 9.9626 Tf
+(bzip2.c) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+509.002 276.779 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-307 TJm
+(before) 25.4445 Tj
+72 264.824 Td
+(compiling.) 42.899 Tj
+-310 TJm
+(Otherwise) 40.9463 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(resulting) 34.8691 Tj
+-250 TJm
+(binary) 25.4544 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(on') 13.2801 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ork) 13.2801 Tj
+-250 TJm
+(correctly) 35.4071 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 230.071 Td
+/F116_0 20.6585 Tf
+(4.3.) 34.4584 Tj
+-278 TJm
+(Repor) 59.6824 Tj
+-20 TJm
+(ting) 37.867 Tj
+-278 TJm
+(b) 12.6223 Tj
+20 TJm
+(ugs) 36.7308 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 208.153 Td
+/F122_0 9.9626 Tf
+(I) 3.3175 Tj
+-228 TJm
+(tried) 18.2614 Tj
+-228 TJm
+(pretty) 23.2427 Tj
+-228 TJm
+(hard) 17.7035 Tj
+-228 TJm
+(to) 7.7509 Tj
+-228 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e) 4.4234 Tj
+-228 TJm
+(sure) 16.5977 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+196.25 208.153 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+228.409 208.153 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-228 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug) 9.9626 Tj
+-228 TJm
+(free,) 17.9725 Tj
+-232 TJm
+(both) 17.7135 Tj
+-228 TJm
+(by) 9.9626 Tj
+-228 TJm
+(design) 26.0123 Tj
+-228 TJm
+(and) 14.386 Tj
+-228 TJm
+(by) 9.9626 Tj
+-228 TJm
+(testing.) 29.0609 Tj
+-605 TJm
+(Hopefully) 40.3983 Tj
+-228 TJm
+(you') 18.2614 Tj
+10 TJm
+(ll) 5.5392 Tj
+-228 TJm
+(ne) 9.4047 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+-228 TJm
+(need) 18.8094 Tj
+-228 TJm
+(to) 7.7509 Tj
+-228 TJm
+(read) 17.1456 Tj
+72 196.198 Td
+(this) 14.396 Tj
+-250 TJm
+(section) 28.224 Tj
+-250 TJm
+(for) 11.6164 Tj
+-250 TJm
+(real.) 17.4246 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 174.28 Td
+(Ne) 11.6164 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ertheless,) 37.3498 Tj
+-313 TJm
+(if) 6.0871 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+137.751 174.28 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+170.634 174.28 Td
+/F122_0 9.9626 Tf
+(dies) 16.0497 Tj
+-301 TJm
+(with) 17.7135 Tj
+-300 TJm
+(a) 4.4234 Tj
+-301 TJm
+(se) 8.2988 Tj
+15 TJm
+(gmentation) 44.8317 Tj
+-300 TJm
+(f) 3.3175 Tj
+10 TJm
+(ault,) 17.4346 Tj
+-314 TJm
+(a) 4.4234 Tj
+-300 TJm
+(b) 4.9813 Tj
+20 TJm
+(us) 8.8568 Tj
+-301 TJm
+(error) 19.3573 Tj
+-300 TJm
+(or) 8.2988 Tj
+-301 TJm
+(an) 9.4047 Tj
+-301 TJm
+(internal) 30.4357 Tj
+-300 TJm
+(assertion) 35.417 Tj
+-301 TJm
+(f) 3.3175 Tj
+10 TJm
+(ailure,) 25.1755 Tj
+-313 TJm
+(it) 5.5392 Tj
+-301 TJm
+(wil) 12.7322 Tj
+1 TJm
+(l) 2.7696 Tj
+-301 TJm
+(ask) 13.2801 Tj
+-301 TJm
+(you) 14.9439 Tj
+-300 TJm
+(to) 7.7509 Tj
+72 162.325 Td
+(email) 22.1369 Tj
+-242 TJm
+(me) 12.1743 Tj
+-243 TJm
+(a) 4.4234 Tj
+-242 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug) 9.9626 Tj
+-243 TJm
+(report.) 26.2813 Tj
+-615 TJm
+(Experience) 44.8118 Tj
+-242 TJm
+(from) 19.3673 Tj
+-243 TJm
+(years) 21.0211 Tj
+-242 TJm
+(of) 8.2988 Tj
+-242 TJm
+(feedback) 35.955 Tj
+-243 TJm
+(of) 8.2988 Tj
+-242 TJm
+(bzip2) 22.1369 Tj
+-243 TJm
+(users) 20.4731 Tj
+-242 TJm
+(indicates) 35.417 Tj
+-243 TJm
+(that) 14.9439 Tj
+-242 TJm
+(almost) 26.5703 Tj
+-242 TJm
+(all) 9.9626 Tj
+-243 TJm
+(these) 20.4731 Tj
+-242 TJm
+(problems) 37.0808 Tj
+-243 TJm
+(can) 13.8281 Tj
+72 150.37 Td
+(be) 9.4047 Tj
+-250 TJm
+(traced) 24.3386 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(either) 22.6848 Tj
+-250 TJm
+(compiler) 35.417 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ugs) 13.8381 Tj
+-250 TJm
+(or) 8.2988 Tj
+-250 TJm
+(hardw) 24.8965 Tj
+10 TJm
+(are) 12.1643 Tj
+-250 TJm
+(problems.) 39.5714 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(32) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 33 36
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+498.728 749.245 Td
+/F122_0 9.9626 Tf
+(Miscellanea) 48.1393 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+74.491 710.037 Td
+/F122_0 9.9626 Tf
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Recompile) 43.1679 Tj
+-322 TJm
+(the) 12.1743 Tj
+-322 TJm
+(program) 33.7533 Tj
+-322 TJm
+(with) 17.7135 Tj
+-322 TJm
+(no) 9.9626 Tj
+-322 TJm
+(optimisat) 37.0908 Tj
+1 TJm
+(ion,) 15.2229 Tj
+-340 TJm
+(and) 14.386 Tj
+-322 TJm
+(see) 12.7222 Tj
+-322 TJm
+(if) 6.0871 Tj
+-322 TJm
+(it) 5.5392 Tj
+-322 TJm
+(w) 7.193 Tj
+10 TJm
+(orks.) 19.6462 Tj
+-1052 TJm
+(And/or) 28.224 Tj
+-322 TJm
+(try) 11.0684 Tj
+-322 TJm
+(a) 4.4234 Tj
+-321 TJm
+(dif) 11.0684 Tj
+25 TJm
+(ferent) 23.2328 Tj
+-322 TJm
+(compiler) 35.417 Tj
+55 TJm
+(.) 2.4907 Tj
+-1052 TJm
+(I) 3.3175 Tj
+-322 TJm
+(heard) 22.1269 Tj
+-322 TJm
+(all) 9.9626 Tj
+81.963 698.082 Td
+(sorts) 18.8194 Tj
+-309 TJm
+(of) 8.2988 Tj
+-310 TJm
+(stories) 26.0123 Tj
+-310 TJm
+(about) 22.1369 Tj
+-309 TJm
+(v) 4.9813 Tj
+25 TJm
+(arious) 24.3486 Tj
+-310 TJm
+(\003a) 9.9626 Tj
+20 TJm
+(v) 4.9813 Tj
+20 TJm
+(ours) 17.1556 Tj
+-309 TJm
+(of) 8.2988 Tj
+-310 TJm
+(GNU) 21.579 Tj
+-309 TJm
+(C) 6.6451 Tj
+-310 TJm
+(\(and) 17.7035 Tj
+-309 TJm
+(other) 20.4731 Tj
+-310 TJm
+(compilers\)) 42.61 Tj
+-309 TJm
+(generating) 42.0521 Tj
+-310 TJm
+(bad) 14.386 Tj
+-310 TJm
+(code) 18.8094 Tj
+-309 TJm
+(for) 11.6164 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+471.527 698.082 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+501.415 698.082 Td
+/F122_0 9.9626 Tf
+(,) 2.4907 Tj
+-324 TJm
+(and) 14.386 Tj
+-310 TJm
+(I') 6.6351 Tj
+50 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+81.963 686.127 Td
+(run) 13.2801 Tj
+-250 TJm
+(across) 24.8965 Tj
+-250 TJm
+(tw) 9.9626 Tj
+10 TJm
+(o) 4.9813 Tj
+-250 TJm
+(such) 18.2614 Tj
+-250 TJm
+(e) 4.4234 Tj
+15 TJm
+(xamples) 33.2053 Tj
+-250 TJm
+(myself.) 29.6088 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 664.209 Td
+(2.7.X) 22.1369 Tj
+-299 TJm
+(v) 4.9813 Tj
+15 TJm
+(ersions) 28.224 Tj
+-300 TJm
+(of) 8.2988 Tj
+-299 TJm
+(GNU) 21.579 Tj
+-299 TJm
+(C) 6.6451 Tj
+-300 TJm
+(are) 12.1643 Tj
+-299 TJm
+(kno) 14.9439 Tj
+25 TJm
+(wn) 12.1743 Tj
+-300 TJm
+(to) 7.7509 Tj
+-299 TJm
+(generate) 33.7433 Tj
+-299 TJm
+(bad) 14.386 Tj
+-300 TJm
+(code) 18.8094 Tj
+-299 TJm
+(from) 19.3673 Tj
+-299 TJm
+(time) 17.7135 Tj
+-300 TJm
+(to) 7.7509 Tj
+-299 TJm
+(time,) 20.2042 Tj
+-312 TJm
+(at) 7.193 Tj
+-299 TJm
+(high) 17.7135 Tj
+-300 TJm
+(optimisation) 49.823 Tj
+-299 TJm
+(le) 7.193 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(els.) 13.5591 Tj
+-916 TJm
+(If) 6.6351 Tj
+-300 TJm
+(you) 14.9439 Tj
+81.963 652.254 Td
+(get) 12.1743 Tj
+-328 TJm
+(problems,) 39.5714 Tj
+-348 TJm
+(try) 11.0684 Tj
+-328 TJm
+(using) 21.589 Tj
+-329 TJm
+(the) 12.1743 Tj
+-328 TJm
+(\003ags) 18.8194 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+217.176 652.254 Td
+/F124_0 9.9626 Tf
+(-O2) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-328 TJm
+(-fomit-frame-pointer) 119.5512 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-329 TJm
+(-fno-strength-reduce) 119.5512 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+480.753 652.254 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-1090 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-328 TJm
+(should) 26.5703 Tj
+81.963 640.299 Td
+(speci\002cally) 45.3796 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+129.832 640.299 Td
+/F621_0 9.9626 Tf
+(not) 12.7322 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.055 640.299 Td
+/F122_0 9.9626 Tf
+(use) 13.2801 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+160.826 640.299 Td
+/F124_0 9.9626 Tf
+(-funroll-loops) 83.6858 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+244.512 640.299 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 618.381 Td
+(Y) 7.193 Tj
+110 TJm
+(ou) 9.9626 Tj
+-240 TJm
+(may) 17.1556 Tj
+-240 TJm
+(notice) 24.3486 Tj
+-241 TJm
+(that) 14.9439 Tj
+-240 TJm
+(the) 12.1743 Tj
+-240 TJm
+(Mak) 18.2614 Tj
+10 TJm
+(e\002le) 17.1556 Tj
+-240 TJm
+(runs) 17.1556 Tj
+-240 TJm
+(six) 11.6264 Tj
+-241 TJm
+(tests) 17.7135 Tj
+-240 TJm
+(as) 8.2988 Tj
+-240 TJm
+(part) 15.4918 Tj
+-240 TJm
+(of) 8.2988 Tj
+-240 TJm
+(the) 12.1743 Tj
+-241 TJm
+(b) 4.9813 Tj
+20 TJm
+(uild) 15.5018 Tj
+-240 TJm
+(process.) 32.3685 Tj
+-613 TJm
+(If) 6.6351 Tj
+-240 TJm
+(the) 12.1743 Tj
+-241 TJm
+(program) 33.7533 Tj
+-240 TJm
+(passes) 25.4544 Tj
+-240 TJm
+(all) 9.9626 Tj
+-240 TJm
+(of) 8.2988 Tj
+-240 TJm
+(these,) 22.9638 Tj
+-242 TJm
+(it') 8.8568 Tj
+55 TJm
+(s) 3.8755 Tj
+-241 TJm
+(a) 4.4234 Tj
+81.963 606.426 Td
+(pretty) 23.2427 Tj
+-250 TJm
+(good) 19.9252 Tj
+-250 TJm
+(\(b) 8.2988 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(not) 12.7322 Tj
+-250 TJm
+(100%\)) 26.5603 Tj
+-250 TJm
+(indication) 39.8504 Tj
+-250 TJm
+(that) 14.9439 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(compiler) 35.417 Tj
+-250 TJm
+(has) 13.2801 Tj
+-250 TJm
+(done) 19.3673 Tj
+-250 TJm
+(its) 9.4147 Tj
+-250 TJm
+(job) 12.7322 Tj
+-250 TJm
+(correctly) 35.4071 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 584.508 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(If) 6.6351 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+91.723 584.508 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+124.239 584.508 Td
+/F122_0 9.9626 Tf
+(crashes) 29.3199 Tj
+-264 TJm
+(randomly) 38.1866 Tj
+65 TJm
+(,) 2.4907 Tj
+-267 TJm
+(and) 14.386 Tj
+-264 TJm
+(the) 12.1743 Tj
+-263 TJm
+(crashes) 29.3199 Tj
+-264 TJm
+(are) 12.1643 Tj
+-264 TJm
+(not) 12.7322 Tj
+-263 TJm
+(repeatable,) 43.427 Tj
+-268 TJm
+(you) 14.9439 Tj
+-263 TJm
+(may) 17.1556 Tj
+-264 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-264 TJm
+(a) 4.4234 Tj
+-264 TJm
+(\003ak) 14.9439 Tj
+15 TJm
+(y) 4.9813 Tj
+-263 TJm
+(memory) 33.2053 Tj
+-264 TJm
+(subsystem.) 44.0048 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+510.112 584.508 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 572.553 Td
+/F122_0 9.9626 Tf
+(really) 22.6848 Tj
+-274 TJm
+(hammers) 36.5229 Tj
+-274 TJm
+(your) 18.2614 Tj
+-274 TJm
+(memory) 33.2053 Tj
+-274 TJm
+(hierarch) 32.6375 Tj
+5 TJm
+(y) 4.9813 Tj
+65 TJm
+(,) 2.4907 Tj
+-280 TJm
+(and) 14.386 Tj
+-274 TJm
+(if) 6.0871 Tj
+-274 TJm
+(it') 8.8568 Tj
+55 TJm
+(s) 3.8755 Tj
+-274 TJm
+(a) 4.4234 Tj
+-274 TJm
+(bit) 10.5205 Tj
+-274 TJm
+(mar) 15.4918 Tj
+18 TJm
+(ginal,) 22.4159 Tj
+-280 TJm
+(you) 14.9439 Tj
+-274 TJm
+(may) 17.1556 Tj
+-274 TJm
+(get) 12.1743 Tj
+-274 TJm
+(these) 20.4731 Tj
+-274 TJm
+(problems.) 39.5714 Tj
+-764 TJm
+(Ditto) 20.4831 Tj
+-274 TJm
+(if) 6.0871 Tj
+-274 TJm
+(your) 18.2614 Tj
+-274 TJm
+(disk) 16.6077 Tj
+81.963 560.598 Td
+(or) 8.2988 Tj
+-250 TJm
+(I/O) 13.2801 Tj
+-250 TJm
+(subsystem) 41.5142 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(slo) 11.6264 Tj
+25 TJm
+(wly) 14.9439 Tj
+-250 TJm
+(f) 3.3175 Tj
+10 TJm
+(ailing.) 25.1855 Tj
+-620 TJm
+(Y) 7.193 Tj
+111 TJm
+(up,) 12.4533 Tj
+-250 TJm
+(this) 14.396 Tj
+-250 TJm
+(really) 22.6848 Tj
+-250 TJm
+(does) 18.2614 Tj
+-250 TJm
+(happen.) 31.2626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 538.68 Td
+(T) 6.0871 Tj
+35 TJm
+(ry) 8.2988 Tj
+-250 TJm
+(using) 21.589 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(dif) 11.0684 Tj
+25 TJm
+(ferent) 23.2328 Tj
+-250 TJm
+(machine) 33.7533 Tj
+-250 TJm
+(of) 8.2988 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(same) 20.4731 Tj
+-250 TJm
+(type,) 19.6462 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(see) 12.7222 Tj
+-250 TJm
+(if) 6.0871 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(can) 13.8281 Tj
+-250 TJm
+(repeat) 24.3386 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(problem.) 35.696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 516.762 Td
+(\225) 3.4869 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(This) 17.7135 Tj
+-252 TJm
+(isn') 14.9439 Tj
+18 TJm
+(t) 2.7696 Tj
+-251 TJm
+(really) 22.6848 Tj
+-252 TJm
+(a) 4.4234 Tj
+-252 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug,) 12.4533 Tj
+-252 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-251 TJm
+(...) 7.472 Tj
+-315 TJm
+(If) 6.6351 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+209.383 516.762 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+241.778 516.762 Td
+/F122_0 9.9626 Tf
+(tells) 16.6077 Tj
+-252 TJm
+(you) 14.9439 Tj
+-251 TJm
+(your) 18.2614 Tj
+-252 TJm
+(\002le) 12.7322 Tj
+-252 TJm
+(is) 6.6451 Tj
+-251 TJm
+(corrupted) 38.1767 Tj
+-252 TJm
+(on) 9.9626 Tj
+-252 TJm
+(decompression,) 62.2563 Tj
+-252 TJm
+(and) 14.386 Tj
+-251 TJm
+(you) 14.9439 Tj
+-252 TJm
+(obtained) 34.3112 Tj
+-252 TJm
+(the) 12.1743 Tj
+-251 TJm
+(\002le) 12.7322 Tj
+81.963 504.807 Td
+(via) 12.1743 Tj
+-281 TJm
+(FTP) 17.1656 Tj
+111 TJm
+(,) 2.4907 Tj
+-282 TJm
+(there) 19.9152 Tj
+-282 TJm
+(is) 6.6451 Tj
+-281 TJm
+(a) 4.4234 Tj
+-282 TJm
+(possibility) 41.5241 Tj
+-281 TJm
+(that) 14.9439 Tj
+-282 TJm
+(you) 14.9439 Tj
+-281 TJm
+(for) 11.6164 Tj
+18 TJm
+(got) 12.7322 Tj
+-282 TJm
+(to) 7.7509 Tj
+-281 TJm
+(tell) 12.7322 Tj
+-282 TJm
+(FTP) 17.1656 Tj
+-281 TJm
+(to) 7.7509 Tj
+-282 TJm
+(do) 9.9626 Tj
+-281 TJm
+(a) 4.4234 Tj
+-282 TJm
+(binary) 25.4544 Tj
+-281 TJm
+(mode) 22.1369 Tj
+-282 TJm
+(transfer) 30.4258 Tj
+55 TJm
+(.) 2.4907 Tj
+-809 TJm
+(That) 18.2614 Tj
+-282 TJm
+(absolutely) 40.9562 Tj
+-281 TJm
+(will) 15.5018 Tj
+-282 TJm
+(cause) 22.1269 Tj
+81.963 492.852 Td
+(the) 12.1743 Tj
+-250 TJm
+(\002le) 12.7322 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(be) 9.4047 Tj
+-250 TJm
+(non-decompressible.) 82.7294 Tj
+-620 TJm
+(Y) 7.193 Tj
+110 TJm
+(ou') 13.2801 Tj
+10 TJm
+(ll) 5.5392 Tj
+-250 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(transfer) 30.4258 Tj
+-250 TJm
+(it) 5.5392 Tj
+-250 TJm
+(ag) 9.4047 Tj
+5 TJm
+(ain.) 14.6649 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 470.934 Td
+(If) 6.6351 Tj
+-235 TJm
+(you') 18.2614 Tj
+50 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-236 TJm
+(inc) 12.1743 Tj
+1 TJm
+(o) 4.9813 Tj
+-1 TJm
+(r) 3.3175 Tj
+1 TJm
+(po) 9.9626 Tj
+-1 TJm
+(r) 3.3175 Tj
+1 TJm
+(ated) 16.5977 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+163.036 470.934 Td
+/F124_0 9.9626 Tf
+(libbzip2) 47.8205 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+213.2 470.934 Td
+/F122_0 9.9626 Tf
+(into) 15.5018 Tj
+-235 TJm
+(your) 18.2614 Tj
+-236 TJm
+(o) 4.9813 Tj
+25 TJm
+(wn) 12.1743 Tj
+-235 TJm
+(program) 33.7533 Tj
+-235 TJm
+(and) 14.386 Tj
+-235 TJm
+(are) 12.1643 Tj
+-236 TJm
+(gett) 14.9439 Tj
+1 TJm
+(ing) 12.7322 Tj
+-236 TJm
+(problems,) 39.5714 Tj
+-238 TJm
+(please,) 27.3872 Tj
+-238 TJm
+(please,) 27.3872 Tj
+-238 TJm
+(please,) 27.3872 Tj
+-238 TJm
+(check) 23.2328 Tj
+-236 TJm
+(that) 14.9439 Tj
+72 458.979 Td
+(the) 12.1743 Tj
+-242 TJm
+(parameters) 43.7059 Tj
+-243 TJm
+(you) 14.9439 Tj
+-242 TJm
+(are) 12.1643 Tj
+-242 TJm
+(passing) 29.8878 Tj
+-243 TJm
+(in) 7.7509 Tj
+-242 TJm
+(calls) 18.2614 Tj
+-242 TJm
+(to) 7.7509 Tj
+-243 TJm
+(the) 12.1743 Tj
+-242 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+-244 TJm
+(are) 12.1643 Tj
+-242 TJm
+(correct,) 30.1468 Tj
+-244 TJm
+(and) 14.386 Tj
+-243 TJm
+(in) 7.7509 Tj
+-242 TJm
+(accordance) 44.8018 Tj
+-242 TJm
+(with) 17.7135 Tj
+-243 TJm
+(what) 19.3673 Tj
+-242 TJm
+(the) 12.1743 Tj
+-242 TJm
+(documentation) 59.2177 Tj
+-243 TJm
+(says) 17.1556 Tj
+72 447.024 Td
+(is) 6.6451 Tj
+-250 TJm
+(allo) 14.9439 Tj
+25 TJm
+(w) 7.193 Tj
+10 TJm
+(able.) 19.0883 Tj
+-310 TJm
+(I) 3.3175 Tj
+-250 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(tried) 18.2614 Tj
+-250 TJm
+(to) 7.7509 Tj
+-250 TJm
+(mak) 17.1556 Tj
+10 TJm
+(e) 4.4234 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(library) 26.5603 Tj
+-250 TJm
+(rob) 13.2801 Tj
+20 TJm
+(ust) 11.6264 Tj
+-250 TJm
+(ag) 9.4047 Tj
+5 TJm
+(ainst) 18.8194 Tj
+-250 TJm
+(such) 18.2614 Tj
+-250 TJm
+(problems,) 39.5714 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-250 TJm
+(I'm) 14.386 Tj
+-250 TJm
+(sure) 16.5977 Tj
+-250 TJm
+(I) 3.3175 Tj
+-250 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(en') 12.7222 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(succeeded.) 43.427 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 425.106 Td
+(Finally) 28.234 Tj
+65 TJm
+(,) 2.4907 Tj
+-324 TJm
+(if) 6.0871 Tj
+-310 TJm
+(the) 12.1743 Tj
+-309 TJm
+(abo) 14.386 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-309 TJm
+(comments) 40.9562 Tj
+-310 TJm
+(don') 18.2614 Tj
+18 TJm
+(t) 2.7696 Tj
+-309 TJm
+(help,) 19.6462 Tj
+-324 TJm
+(you') 18.2614 Tj
+10 TJm
+(ll) 5.5392 Tj
+-310 TJm
+(ha) 9.4047 Tj
+20 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-309 TJm
+(to) 7.7509 Tj
+-309 TJm
+(send) 18.2614 Tj
+-310 TJm
+(me) 12.1743 Tj
+-309 TJm
+(a) 4.4234 Tj
+-309 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug) 9.9626 Tj
+-310 TJm
+(report.) 26.2813 Tj
+-976 TJm
+(No) 12.1743 Tj
+25 TJm
+(w) 7.193 Tj
+65 TJm
+(,) 2.4907 Tj
+-324 TJm
+(it') 8.8568 Tj
+55 TJm
+(s) 3.8755 Tj
+-310 TJm
+(just) 14.396 Tj
+-309 TJm
+(amazing) 33.7533 Tj
+-309 TJm
+(ho) 9.9626 Tj
+25 TJm
+(w) 7.193 Tj
+-310 TJm
+(man) 17.1556 Tj
+15 TJm
+(y) 4.9813 Tj
+72 413.151 Td
+(people) 26.5603 Tj
+-250 TJm
+(will) 15.5018 Tj
+-250 TJm
+(send) 18.2614 Tj
+-250 TJm
+(me) 12.1743 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(b) 4.9813 Tj
+20 TJm
+(ug) 9.9626 Tj
+-250 TJm
+(report) 23.7907 Tj
+-250 TJm
+(saying) 26.0123 Tj
+-250 TJm
+(something) 41.5142 Tj
+-250 TJm
+(lik) 10.5205 Tj
+10 TJm
+(e:) 7.193 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 386.087] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 401.629 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+-426 TJm
+(crashed) 41.8429 Tj
+-426 TJm
+(with) 23.9102 Tj
+-426 TJm
+(segmentation) 71.7307 Tj
+-426 TJm
+(fault) 29.8878 Tj
+-426 TJm
+(on) 11.9551 Tj
+-426 TJm
+(my) 11.9551 Tj
+-426 TJm
+(machine) 41.8429 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 364.169 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+-241 TJm
+(absolutely) 40.9562 Tj
+-241 TJm
+(nothing) 30.4457 Tj
+-241 TJm
+(el) 7.193 Tj
+1 TJm
+(se.) 10.7895 Tj
+-614 TJm
+(Needless) 35.965 Tj
+-241 TJm
+(to) 7.7509 Tj
+-241 TJm
+(say) 13.2801 Tj
+65 TJm
+(,) 2.4907 Tj
+-243 TJm
+(a) 4.4234 Tj
+-241 TJm
+(such) 18.2614 Tj
+-240 TJm
+(a) 4.4234 Tj
+-241 TJm
+(report) 23.7907 Tj
+-241 TJm
+(is) 6.6451 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+324.681 364.169 Td
+/F621_0 9.9626 Tf
+(totally) 25.4644 Tj
+55 TJm
+(,) 2.4907 Tj
+-243 TJm
+(utterly) 26.0123 Tj
+55 TJm
+(,) 2.4907 Tj
+-242 TJm
+(completely) 43.158 Tj
+-241 TJm
+(and) 14.9439 Tj
+-241 TJm
+(compr) 25.4544 Tj
+37 TJm
+(ehensively) 41.4942 Tj
+-241 TJm
+(100%) 23.2427 Tj
+72 352.214 Td
+(useless;) 31.5416 Tj
+-257 TJm
+(a) 4.9813 Tj
+-255 TJm
+(waste) 22.6948 Tj
+-255 TJm
+(of) 7.7509 Tj
+-255 TJm
+(your) 18.2614 Tj
+-255 TJm
+(time) 17.1556 Tj
+10 TJm
+(,) 2.4907 Tj
+-256 TJm
+(my) 11.6164 Tj
+-255 TJm
+(time) 17.1556 Tj
+10 TJm
+(,) 2.4907 Tj
+-256 TJm
+(and) 14.9439 Tj
+-255 TJm
+(net) 12.1743 Tj
+-255 TJm
+(bandwidth) 42.0721 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+302.574 352.214 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-650 TJm
+(W) 9.4047 Tj
+40 TJm
+(ith) 10.5205 Tj
+-254 TJm
+(no) 9.9626 Tj
+-255 TJm
+(details) 26.0123 Tj
+-255 TJm
+(at) 7.193 Tj
+-255 TJm
+(all,) 12.4533 Tj
+-256 TJm
+(there') 23.2328 Tj
+55 TJm
+(s) 3.8755 Tj
+-255 TJm
+(no) 9.9626 Tj
+-255 TJm
+(w) 7.193 Tj
+10 TJm
+(ay) 9.4047 Tj
+-255 TJm
+(I) 3.3175 Tj
+-255 TJm
+(can) 13.8281 Tj
+-255 TJm
+(possibly) 33.2153 Tj
+-255 TJm
+(be) 9.4047 Tj
+15 TJm
+(gin) 12.7322 Tj
+72 340.259 Td
+(to) 7.7509 Tj
+-250 TJm
+(\002gure) 23.2427 Tj
+-250 TJm
+(out) 12.7322 Tj
+-250 TJm
+(what) 19.3673 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(problem) 33.2053 Tj
+-250 TJm
+(is.) 9.1357 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 318.341 Td
+(The) 15.4918 Tj
+-309 TJm
+(rules) 19.3673 Tj
+-309 TJm
+(of) 8.2988 Tj
+-309 TJm
+(the) 12.1743 Tj
+-310 TJm
+(g) 4.9813 Tj
+5 TJm
+(ame) 16.5977 Tj
+-309 TJm
+(are:) 14.9339 Tj
+-428 TJm
+(f) 3.3175 Tj
+10 TJm
+(acts,) 17.9825 Tj
+-324 TJm
+(f) 3.3175 Tj
+10 TJm
+(acts,) 17.9825 Tj
+-324 TJm
+(f) 3.3175 Tj
+10 TJm
+(acts.) 17.9825 Tj
+-975 TJm
+(Don') 20.4731 Tj
+18 TJm
+(t) 2.7696 Tj
+-309 TJm
+(omit) 18.2714 Tj
+-309 TJm
+(them) 19.9252 Tj
+-309 TJm
+(because) 31.5316 Tj
+-309 TJm
+("oh,) 16.518 Tj
+-324 TJm
+(the) 12.1743 Tj
+15 TJm
+(y) 4.9813 Tj
+-309 TJm
+(w) 7.193 Tj
+10 TJm
+(on') 13.2801 Tj
+18 TJm
+(t) 2.7696 Tj
+-309 TJm
+(be) 9.4047 Tj
+-310 TJm
+(rele) 14.9339 Tj
+25 TJm
+(v) 4.9813 Tj
+25 TJm
+(ant".) 18.7297 Tj
+-974 TJm
+(At) 9.9626 Tj
+-310 TJm
+(the) 12.1743 Tj
+-309 TJm
+(bare) 17.1456 Tj
+72 306.386 Td
+(minimum:) 41.5241 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 245.514] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 296.922 Td
+/F124_0 9.9626 Tf
+(Machine) 41.8429 Tj
+-426 TJm
+(type.) 29.8878 Tj
+-852 TJm
+(Operating) 53.798 Tj
+-426 TJm
+(system) 35.8654 Tj
+-426 TJm
+(version.) 47.8205 Tj
+90 284.967 Td
+(Exact) 29.8878 Tj
+-426 TJm
+(version) 41.8429 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(bzip2) 29.8878 Tj
+-426 TJm
+(\(do) 17.9327 Tj
+-426 TJm
+(bzip2) 29.8878 Tj
+-426 TJm
+(-V\).) 23.9102 Tj
+90 273.011 Td
+(Exact) 29.8878 Tj
+-426 TJm
+(version) 41.8429 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compiler) 47.8205 Tj
+-426 TJm
+(used.) 29.8878 Tj
+90 261.056 Td
+(Flags) 29.8878 Tj
+-426 TJm
+(passed) 35.8654 Tj
+-426 TJm
+(to) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(compiler.) 53.798 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 223.597 Td
+/F122_0 9.9626 Tf
+(Ho) 12.1743 Tj
+25 TJm
+(we) 11.6164 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(er) 7.7409 Tj
+40 TJm
+(,) 2.4907 Tj
+-254 TJm
+(the) 12.1743 Tj
+-252 TJm
+(most) 19.3773 Tj
+-253 TJm
+(important) 38.7446 Tj
+-253 TJm
+(single) 23.8007 Tj
+-253 TJm
+(thing) 20.4831 Tj
+-253 TJm
+(t) 2.7696 Tj
+1 TJm
+(hat) 12.1743 Tj
+-253 TJm
+(will) 15.5018 Tj
+-253 TJm
+(help) 17.1556 Tj
+-253 TJm
+(me) 12.1743 Tj
+-253 TJm
+(is) 6.6451 Tj
+-252 TJm
+(the) 12.1743 Tj
+-253 TJm
+(\002le) 12.7322 Tj
+-253 TJm
+(that) 14.9439 Tj
+-253 TJm
+(you) 14.9439 Tj
+-253 TJm
+(were) 19.3573 Tj
+-253 TJm
+(trying) 23.8007 Tj
+-252 TJm
+(to) 7.7509 Tj
+-253 TJm
+(compress) 37.6287 Tj
+-253 TJm
+(or) 8.2988 Tj
+-253 TJm
+(decompress) 47.0334 Tj
+72 211.641 Td
+(at) 7.193 Tj
+-304 TJm
+(the) 12.1743 Tj
+-305 TJm
+(time) 17.7135 Tj
+-304 TJm
+(the) 12.1743 Tj
+-304 TJm
+(problem) 33.2053 Tj
+-305 TJm
+(happened.) 40.6673 Tj
+-946 TJm
+(W) 9.4047 Tj
+40 TJm
+(ithout) 23.2527 Tj
+-304 TJm
+(that,) 17.4346 Tj
+-318 TJm
+(my) 12.7322 Tj
+-305 TJm
+(ability) 25.4644 Tj
+-304 TJm
+(to) 7.7509 Tj
+-304 TJm
+(do) 9.9626 Tj
+-305 TJm
+(an) 9.4047 Tj
+15 TJm
+(ything) 25.4644 Tj
+-304 TJm
+(more) 20.4731 Tj
+-304 TJm
+(than) 17.1556 Tj
+-305 TJm
+(speculate) 37.0708 Tj
+-304 TJm
+(about) 22.1369 Tj
+-304 TJm
+(the) 12.1743 Tj
+-305 TJm
+(cause,) 24.6176 Tj
+-318 TJm
+(is) 6.6451 Tj
+72 199.686 Td
+(limited.) 30.7247 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 164.933 Td
+/F116_0 20.6585 Tf
+(4.4.) 34.4584 Tj
+-278 TJm
+(Did) 33.2808 Tj
+-278 TJm
+(y) 11.4861 Tj
+25 TJm
+(ou) 25.2447 Tj
+-278 TJm
+(g) 12.6223 Tj
+-10 TJm
+(et) 18.3654 Tj
+-278 TJm
+(the) 30.9878 Tj
+-278 TJm
+(right) 45.9032 Tj
+-278 TJm
+(pac) 35.5946 Tj
+20 TJm
+(ka) 22.9723 Tj
+10 TJm
+(g) 12.6223 Tj
+-10 TJm
+(e?) 24.1085 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 143.016 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.603 143.016 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-272 TJm
+(a) 4.4234 Tj
+-273 TJm
+(resource) 33.7433 Tj
+-272 TJm
+(hog.) 17.4346 Tj
+-378 TJm
+(It) 6.0871 Tj
+-272 TJm
+(soaks) 22.1369 Tj
+-273 TJm
+(up) 9.9626 Tj
+-272 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ge) 9.4047 Tj
+-273 TJm
+(amounts) 33.7633 Tj
+-272 TJm
+(of) 8.2988 Tj
+-273 TJm
+(CPU) 19.3773 Tj
+-272 TJm
+(c) 4.4234 Tj
+15 TJm
+(ycles) 20.4731 Tj
+-273 TJm
+(and) 14.386 Tj
+-272 TJm
+(memory) 33.2053 Tj
+65 TJm
+(.) 2.4907 Tj
+-755 TJm
+(Also,) 21.31 Tj
+-278 TJm
+(it) 5.5392 Tj
+-273 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(es) 8.2988 Tj
+-272 TJm
+(v) 4.9813 Tj
+15 TJm
+(ery) 12.7222 Tj
+-273 TJm
+(lar) 10.5105 Tj
+18 TJm
+(ge) 9.4047 Tj
+-272 TJm
+(latencies.) 37.3498 Tj
+72 131.06 Td
+(In) 8.2988 Tj
+-251 TJm
+(the) 12.1743 Tj
+-251 TJm
+(w) 7.193 Tj
+10 TJm
+(orst) 14.9439 Tj
+-251 TJm
+(case,) 19.6363 Tj
+-251 TJm
+(you) 14.9439 Tj
+-251 TJm
+(can) 13.8281 Tj
+-251 TJm
+(feed) 17.1456 Tj
+-251 TJm
+(man) 17.1556 Tj
+15 TJm
+(y) 4.9813 Tj
+-251 TJm
+(me) 12.1743 Tj
+15 TJm
+(g) 4.9813 Tj
+4 TJm
+(abyt) 17.1556 Tj
+1 TJm
+(es) 8.2988 Tj
+-252 TJm
+(of) 8.2988 Tj
+-251 TJm
+(uncompressed) 56.996 Tj
+-251 TJm
+(data) 16.5977 Tj
+-251 TJm
+(into) 15.5018 Tj
+-251 TJm
+(the) 12.1743 Tj
+-251 TJm
+(library) 26.5603 Tj
+-251 TJm
+(before) 25.4445 Tj
+-251 TJm
+(getting) 27.6761 Tj
+-251 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-251 TJm
+(compressed) 47.0334 Tj
+72 119.105 Td
+(output,) 27.9551 Tj
+-250 TJm
+(so) 8.8568 Tj
+-250 TJm
+(this) 14.396 Tj
+-250 TJm
+(probably) 35.417 Tj
+-250 TJm
+(rules) 19.3673 Tj
+-250 TJm
+(out) 12.7322 Tj
+-250 TJm
+(applications) 48.1492 Tj
+-250 TJm
+(requiring) 36.5229 Tj
+-250 TJm
+(interacti) 32.6474 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(e) 4.4234 Tj
+-250 TJm
+(beha) 18.8094 Tj
+20 TJm
+(viour) 21.031 Tj
+55 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 97.187 Td
+(These) 23.7907 Tj
+-304 TJm
+(aren') 20.4632 Tj
+18 TJm
+(t) 2.7696 Tj
+-304 TJm
+(f) 3.3175 Tj
+10 TJm
+(aults) 18.8194 Tj
+-304 TJm
+(of) 8.2988 Tj
+-304 TJm
+(my) 12.7322 Tj
+-304 TJm
+(implementation,) 65.0359 Tj
+-317 TJm
+(I) 3.3175 Tj
+-304 TJm
+(hope,) 21.8579 Tj
+-318 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-304 TJm
+(more) 20.4731 Tj
+-304 TJm
+(an) 9.4047 Tj
+-304 TJm
+(intrinsic) 32.6574 Tj
+-304 TJm
+(property) 33.7533 Tj
+-304 TJm
+(of) 8.2988 Tj
+-304 TJm
+(the) 12.1743 Tj
+-304 TJm
+(Burro) 23.2427 Tj
+25 TJm
+(ws-Wheeler) 48.1293 Tj
+-304 TJm
+(transform) 38.7346 Tj
+72 85.232 Td
+(\(unfortunately\).) 62.8042 Tj
+-620 TJm
+(Maybe) 27.6661 Tj
+-250 TJm
+(this) 14.396 Tj
+-250 TJm
+(isn') 14.9439 Tj
+18 TJm
+(t) 2.7696 Tj
+-250 TJm
+(what) 19.3673 Tj
+-250 TJm
+(you) 14.9439 Tj
+-250 TJm
+(w) 7.193 Tj
+10 TJm
+(ant.) 14.6649 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(33) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 34 37
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+498.728 749.245 Td
+/F122_0 9.9626 Tf
+(Miscellanea) 48.1393 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(If) 6.6351 Tj
+-275 TJm
+(you) 14.9439 Tj
+-274 TJm
+(w) 7.193 Tj
+10 TJm
+(ant) 12.1743 Tj
+-275 TJm
+(a) 4.4234 Tj
+-274 TJm
+(compressor) 45.9276 Tj
+-275 TJm
+(and/or) 25.4544 Tj
+-275 TJm
+(library) 26.5603 Tj
+-274 TJm
+(which) 24.3486 Tj
+-275 TJm
+(is) 6.6451 Tj
+-274 TJm
+(f) 3.3175 Tj
+10 TJm
+(aster) 18.8094 Tj
+40 TJm
+(,) 2.4907 Tj
+-281 TJm
+(uses) 17.1556 Tj
+-275 TJm
+(less) 14.9439 Tj
+-274 TJm
+(memory) 33.2053 Tj
+-275 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-275 TJm
+(gets) 16.0497 Tj
+-274 TJm
+(pretty) 23.2427 Tj
+-275 TJm
+(good) 19.9252 Tj
+-274 TJm
+(compression,) 52.8516 Tj
+-281 TJm
+(and) 14.386 Tj
+-275 TJm
+(has) 13.2801 Tj
+72 698.082 Td
+(minimal) 33.2153 Tj
+-288 TJm
+(latenc) 23.7907 Tj
+15 TJm
+(y) 4.9813 Tj
+65 TJm
+(,) 2.4907 Tj
+-297 TJm
+(consider) 33.7533 Tj
+-288 TJm
+(Jean-loup) 38.7346 Tj
+-288 TJm
+(Gailly') 28.224 Tj
+55 TJm
+(s) 3.8755 Tj
+-288 TJm
+(and) 14.386 Tj
+-288 TJm
+(Mark) 21.579 Tj
+-288 TJm
+(Adl) 14.9439 Tj
+1 TJm
+(er') 11.0585 Tj
+55 TJm
+(s) 3.8755 Tj
+-288 TJm
+(w) 7.193 Tj
+10 TJm
+(ork,) 15.7708 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+353.879 698.082 Td
+/F124_0 9.9626 Tf
+(zlib-1.2.1) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+416.523 698.082 Td
+/F122_0 9.9626 Tf
+(and) 14.386 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+433.777 698.082 Td
+/F124_0 9.9626 Tf
+(gzip-1.2.4) 59.7756 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+493.553 698.082 Td
+/F122_0 9.9626 Tf
+(.) 2.4907 Tj
+-847 TJm
+(Look) 21.031 Tj
+-288 TJm
+(for) 11.6164 Tj
+72 686.127 Td
+(them) 19.9252 Tj
+-250 TJm
+(at) 7.193 Tj
+-250 TJm
+(http://www) 45.3896 Tj
+65 TJm
+(.zlib) 17.4346 Tj
+40 TJm
+(.or) 10.7895 Tj
+18 TJm
+(g) 4.9813 Tj
+-250 TJm
+(and) 14.386 Tj
+-250 TJm
+(http://www) 45.3896 Tj
+65 TJm
+(.gzip.or) 30.4357 Tj
+18 TJm
+(g) 4.9813 Tj
+-250 TJm
+(respecti) 30.9837 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(ely) 12.1743 Tj
+65 TJm
+(.) 2.4907 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 664.209 Td
+(F) 5.5392 Tj
+15 TJm
+(or) 8.2988 Tj
+-582 TJm
+(something) 41.5142 Tj
+-583 TJm
+(f) 3.3175 Tj
+10 TJm
+(aster) 18.8094 Tj
+-582 TJm
+(and) 14.386 Tj
+-582 TJm
+(lighter) 26.0123 Tj
+-583 TJm
+(still,) 17.4445 Tj
+-665 TJm
+(you) 14.9439 Tj
+-582 TJm
+(might) 23.2527 Tj
+-583 TJm
+(try) 11.0684 Tj
+-582 TJm
+(Markus) 30.4357 Tj
+-582 TJm
+(F) 5.5392 Tj
+-582 TJm
+(X) 7.193 Tj
+-582 TJm
+(J) 3.8755 Tj
+-582 TJm
+(Oberhumer') 48.6872 Tj
+55 TJm
+(s) 3.8755 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+437.433 664.209 Td
+/F124_0 9.9626 Tf
+(LZO) 17.9327 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+461.164 664.209 Td
+/F122_0 9.9626 Tf
+(real-time) 35.965 Tj
+-582 TJm
+(compres-) 37.0708 Tj
+72 652.254 Td
+(sion/decompression) 79.1429 Tj
+-250 TJm
+(library) 26.5603 Tj
+65 TJm
+(,) 2.4907 Tj
+-250 TJm
+(at) 7.193 Tj
+-250 TJm
+(http://www) 45.3896 Tj
+65 TJm
+(.oberhumer) 45.6486 Tj
+55 TJm
+(.com/opensource.) 70.2762 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 617.501 Td
+/F116_0 20.6585 Tf
+(4.5.) 34.4584 Tj
+-278 TJm
+(Fur) 33.2808 Tj
+-20 TJm
+(ther) 39.0239 Tj
+-278 TJm
+(Reading) 81.4978 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 595.583 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.923 595.583 Td
+/F122_0 9.9626 Tf
+(is) 6.6451 Tj
+-305 TJm
+(not) 12.7322 Tj
+-304 TJm
+(research) 33.1854 Tj
+-305 TJm
+(w) 7.193 Tj
+10 TJm
+(ork,) 15.7708 Tj
+-318 TJm
+(in) 7.7509 Tj
+-305 TJm
+(the) 12.1743 Tj
+-304 TJm
+(sense) 21.579 Tj
+-305 TJm
+(that) 14.9439 Tj
+-304 TJm
+(it) 5.5392 Tj
+-305 TJm
+(doesn') 26.5603 Tj
+18 TJm
+(t) 2.7696 Tj
+-304 TJm
+(present) 28.772 Tj
+-305 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-305 TJm
+(ne) 9.4047 Tj
+25 TJm
+(w) 7.193 Tj
+-304 TJm
+(ideas.) 22.9638 Tj
+-474 TJm
+(Rather) 26.5603 Tj
+40 TJm
+(,) 2.4907 Tj
+-318 TJm
+(it') 8.8568 Tj
+55 TJm
+(s) 3.8755 Tj
+-305 TJm
+(an) 9.4047 Tj
+-304 TJm
+(engineering) 47.0334 Tj
+-305 TJm
+(e) 4.4234 Tj
+15 TJm
+(x) 4.9813 Tj
+15 TJm
+(ercise) 23.2328 Tj
+72 583.628 Td
+(based) 22.6848 Tj
+-250 TJm
+(on) 9.9626 Tj
+-250 TJm
+(e) 4.4234 Tj
+15 TJm
+(xisting) 27.1282 Tj
+-250 TJm
+(ideas.) 22.9638 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 561.71 Td
+(F) 5.5392 Tj
+15 TJm
+(our) 13.2801 Tj
+-250 TJm
+(documents) 43.1679 Tj
+-250 TJm
+(describe) 33.1954 Tj
+-250 TJm
+(essentially) 42.0621 Tj
+-250 TJm
+(all) 9.9626 Tj
+-250 TJm
+(the) 12.1743 Tj
+-250 TJm
+(ideas) 20.4731 Tj
+-250 TJm
+(behind) 27.1182 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+298.747 561.71 Td
+/F124_0 9.9626 Tf
+(bzip2) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+328.635 561.71 Td
+/F122_0 9.9626 Tf
+(:) 2.7696 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.9294 0.9686 0.9568] sc
+/DeviceRGB {} CS
+[0.9294 0.9686 0.9568] SC
+q
+[1 0 0 1 72 259.678] cm
+0 0 468 298.879 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 550.189 Td
+/F124_0 9.9626 Tf
+(Michael) 41.8429 Tj
+-426 TJm
+(Burrows) 41.8429 Tj
+-426 TJm
+(and) 17.9327 Tj
+-426 TJm
+(D.) 11.9551 Tj
+-426 TJm
+(J.) 11.9551 Tj
+-426 TJm
+(Wheeler:) 47.8205 Tj
+98.488 538.234 Td
+("A) 11.9551 Tj
+-426 TJm
+(block-sorting) 77.7083 Tj
+-426 TJm
+(lossless) 47.8205 Tj
+-426 TJm
+(data) 23.9102 Tj
+-426 TJm
+(compression) 65.7532 Tj
+-426 TJm
+(algorithm") 59.7756 Tj
+102.732 526.278 Td
+(10th) 23.9102 Tj
+-426 TJm
+(May) 17.9327 Tj
+-426 TJm
+(1994.) 29.8878 Tj
+102.732 514.323 Td
+(Digital) 41.8429 Tj
+-426 TJm
+(SRC) 17.9327 Tj
+-426 TJm
+(Research) 47.8205 Tj
+-426 TJm
+(Report) 35.8654 Tj
+-426 TJm
+(124.) 23.9102 Tj
+102.732 502.368 Td
+(ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-124.ps.g\
+z) 382.5638 Tj
+102.732 490.413 Td
+(If) 11.9551 Tj
+-426 TJm
+(you) 17.9327 Tj
+-426 TJm
+(have) 23.9102 Tj
+-426 TJm
+(trouble) 41.8429 Tj
+-426 TJm
+(finding) 41.8429 Tj
+-426 TJm
+(it,) 17.9327 Tj
+-426 TJm
+(try) 17.9327 Tj
+-426 TJm
+(searching) 53.798 Tj
+-426 TJm
+(at) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+102.732 478.458 Td
+(New) 17.9327 Tj
+-426 TJm
+(Zealand) 41.8429 Tj
+-426 TJm
+(Digital) 41.8429 Tj
+-426 TJm
+(Library,) 47.8205 Tj
+-426 TJm
+(http://www.nzdl.org.) 119.5512 Tj
+90 454.547 Td
+(Daniel) 35.8654 Tj
+-426 TJm
+(S.) 11.9551 Tj
+-426 TJm
+(Hirschberg) 59.7756 Tj
+-426 TJm
+(and) 17.9327 Tj
+-426 TJm
+(Debra) 29.8878 Tj
+-426 TJm
+(A.) 11.9551 Tj
+-426 TJm
+(LeLewer) 41.8429 Tj
+98.488 442.592 Td
+("Efficient) 59.7756 Tj
+-426 TJm
+(Decoding) 47.8205 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(Prefix) 35.8654 Tj
+-426 TJm
+(Codes") 35.8654 Tj
+102.732 430.637 Td
+(Communications) 83.6858 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(ACM,) 23.9102 Tj
+-426 TJm
+(April) 29.8878 Tj
+-426 TJm
+(1990,) 29.8878 Tj
+-426 TJm
+(Vol) 17.9327 Tj
+-426 TJm
+(33,) 17.9327 Tj
+-426 TJm
+(Number) 35.8654 Tj
+-426 TJm
+(4.) 11.9551 Tj
+102.732 418.682 Td
+(You) 17.9327 Tj
+-426 TJm
+(might) 29.8878 Tj
+-426 TJm
+(be) 11.9551 Tj
+-426 TJm
+(able) 23.9102 Tj
+-426 TJm
+(to) 11.9551 Tj
+-426 TJm
+(get) 17.9327 Tj
+-426 TJm
+(an) 11.9551 Tj
+-426 TJm
+(electronic) 59.7756 Tj
+-426 TJm
+(copy) 23.9102 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(this) 23.9102 Tj
+102.732 406.727 Td
+(from) 23.9102 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(ACM) 17.9327 Tj
+-426 TJm
+(Digital) 41.8429 Tj
+-426 TJm
+(Library.) 47.8205 Tj
+90 382.816 Td
+(David) 29.8878 Tj
+-426 TJm
+(J.) 11.9551 Tj
+-426 TJm
+(Wheeler) 41.8429 Tj
+102.732 370.861 Td
+(Program) 41.8429 Tj
+-426 TJm
+(bred3.c) 41.8429 Tj
+-426 TJm
+(and) 17.9327 Tj
+-426 TJm
+(accompanying) 71.7307 Tj
+-426 TJm
+(document) 47.8205 Tj
+-426 TJm
+(bred3.ps.) 53.798 Tj
+102.732 358.906 Td
+(This) 23.9102 Tj
+-426 TJm
+(contains) 47.8205 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(idea) 23.9102 Tj
+-426 TJm
+(behind) 35.8654 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(multi-table) 65.7532 Tj
+-426 TJm
+(Huffman) 41.8429 Tj
+-426 TJm
+(coding) 35.8654 Tj
+-426 TJm
+(scheme.) 41.8429 Tj
+102.732 346.951 Td
+(ftp://ftp.cl.cam.ac.uk/users/djw3/) 203.237 Tj
+90 323.04 Td
+(Jon) 17.9327 Tj
+-426 TJm
+(L.) 11.9551 Tj
+-426 TJm
+(Bentley) 41.8429 Tj
+-426 TJm
+(and) 17.9327 Tj
+-426 TJm
+(Robert) 35.8654 Tj
+-426 TJm
+(Sedgewick) 53.798 Tj
+98.488 311.085 Td
+("Fast) 29.8878 Tj
+-426 TJm
+(Algorithms) 59.7756 Tj
+-426 TJm
+(for) 17.9327 Tj
+-426 TJm
+(Sorting) 41.8429 Tj
+-426 TJm
+(and) 17.9327 Tj
+-426 TJm
+(Searching) 53.798 Tj
+-426 TJm
+(Strings") 47.8205 Tj
+102.732 299.13 Td
+(Available) 53.798 Tj
+-426 TJm
+(from) 23.9102 Tj
+-426 TJm
+(Sedgewick's) 65.7532 Tj
+-426 TJm
+(web) 17.9327 Tj
+-426 TJm
+(page,) 29.8878 Tj
+102.732 287.175 Td
+(www.cs.princeton.edu/~rs) 143.4614 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 237.76 Td
+/F122_0 9.9626 Tf
+(The) 15.4918 Tj
+-239 TJm
+(follo) 18.8194 Tj
+25 TJm
+(wing) 19.9252 Tj
+-238 TJm
+(paper) 22.1269 Tj
+-239 TJm
+(gi) 7.7509 Tj
+25 TJm
+(v) 4.9813 Tj
+15 TJm
+(es) 8.2988 Tj
+-239 TJm
+(v) 4.9813 Tj
+25 TJm
+(aluable) 28.772 Tj
+-238 TJm
+(additional) 39.8504 Tj
+-239 TJm
+(insights) 31.0036 Tj
+-238 TJm
+(into) 15.5018 Tj
+-239 TJm
+(the) 12.1743 Tj
+-239 TJm
+(algorithm,) 41.2352 Tj
+-241 TJm
+(b) 4.9813 Tj
+20 TJm
+(ut) 7.7509 Tj
+-238 TJm
+(is) 6.6451 Tj
+-239 TJm
+(not) 12.7322 Tj
+-239 TJm
+(immedia) 34.8691 Tj
+1 TJm
+(tely) 14.9439 Tj
+-239 TJm
+(the) 12.1743 Tj
+-239 TJm
+(basis) 19.9252 Tj
+-238 TJm
+(of) 8.2988 Tj
+-239 TJm
+(an) 9.4047 Tj
+15 TJm
+(y) 4.9813 Tj
+-239 TJm
+(code) 18.8094 Tj
+72 225.805 Td
+(used) 18.2614 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(bzip2.) 24.6275 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.9294 0.9686 0.9568] sc
+/DeviceRGB {} CS
+[0.9294 0.9686 0.9568] SC
+q
+[1 0 0 1 72 150.921] cm
+0 0 468 71.731 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 214.283 Td
+/F124_0 9.9626 Tf
+(Peter) 29.8878 Tj
+-426 TJm
+(Fenwick:) 47.8205 Tj
+102.732 202.328 Td
+(Block) 29.8878 Tj
+-426 TJm
+(Sorting) 41.8429 Tj
+-426 TJm
+(Text) 23.9102 Tj
+-426 TJm
+(Compression) 65.7532 Tj
+102.732 190.373 Td
+(Proceedings) 65.7532 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(19th) 23.9102 Tj
+-426 TJm
+(Australasian) 71.7307 Tj
+-426 TJm
+(Computer) 47.8205 Tj
+-426 TJm
+(Science) 41.8429 Tj
+-426 TJm
+(Conference,) 65.7532 Tj
+111.22 178.418 Td
+(Melbourne,) 59.7756 Tj
+-426 TJm
+(Australia.) 59.7756 Tj
+-852 TJm
+(Jan) 17.9327 Tj
+-426 TJm
+(31) 11.9551 Tj
+-426 TJm
+(-) 5.9776 Tj
+-426 TJm
+(Feb) 17.9327 Tj
+-426 TJm
+(2,) 11.9551 Tj
+-426 TJm
+(1996.) 29.8878 Tj
+102.732 166.463 Td
+(ftp://ftp.cs.auckland.ac.nz/pub/peter-f/ACSC96paper.ps) 322.7882 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 129.003 Td
+/F122_0 9.9626 Tf
+(K) 7.193 Tj
+15 TJm
+(unihik) 25.4644 Tj
+10 TJm
+(o) 4.9813 Tj
+-250 TJm
+(Sadakane') 41.4942 Tj
+55 TJm
+(s) 3.8755 Tj
+-250 TJm
+(sorting) 27.6761 Tj
+-250 TJm
+(algorithm,) 41.2352 Tj
+-250 TJm
+(mentioned) 42.0621 Tj
+-250 TJm
+(abo) 14.386 Tj
+15 TJm
+(v) 4.9813 Tj
+15 TJm
+(e,) 6.914 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+25 TJm
+(ailable) 26.5603 Tj
+-250 TJm
+(from:) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.9294 0.9686 0.9568] sc
+/DeviceRGB {} CS
+[0.9294 0.9686 0.9568] SC
+q
+[1 0 0 1 72 89.985] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 117.482 Td
+/F124_0 9.9626 Tf
+(http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz) 346.6985 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+/F122_0 9.9626 Tf
+(34) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 35 38
+%%BeginPageSetup
+%%PageOrientation: Portrait
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+498.728 749.245 Td
+/F122_0 9.9626 Tf
+(Miscellanea) 48.1393 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F122_0 9.9626 Tf
+(The) 15.4918 Tj
+-250 TJm
+(Manber) 30.9837 Tj
+20 TJm
+(-Myers) 28.772 Tj
+-250 TJm
+(suf) 12.1743 Tj
+25 TJm
+(\002x) 10.5205 Tj
+-250 TJm
+(array) 20.4632 Tj
+-250 TJm
+(construction) 49.2551 Tj
+-250 TJm
+(algorithm) 38.7446 Tj
+-250 TJm
+(is) 6.6451 Tj
+-250 TJm
+(described) 38.1767 Tj
+-250 TJm
+(in) 7.7509 Tj
+-250 TJm
+(a) 4.4234 Tj
+-250 TJm
+(paper) 22.1269 Tj
+-250 TJm
+(a) 4.4234 Tj
+20 TJm
+(v) 4.9813 Tj
+25 TJm
+(ailable) 26.5603 Tj
+-250 TJm
+(from:) 22.1369 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.9294 0.9686 0.9568] sc
+/DeviceRGB {} CS
+[0.9294 0.9686 0.9568] SC
+q
+[1 0 0 1 72 671.019] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 698.516 Td
+/F124_0 9.9626 Tf
+(http://www.cs.arizona.edu/people/gene/PAPERS/suffix.ps) 322.7882 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 649.101 Td
+/F122_0 9.9626 Tf
+(Finally) 28.234 Tj
+65 TJm
+(,) 2.4907 Tj
+-227 TJm
+(the) 12.1743 Tj
+-221 TJm
+(follo) 18.8194 Tj
+25 TJm
+(wing) 19.9252 Tj
+-222 TJm
+(papers) 26.0024 Tj
+-221 TJm
+(document) 39.2925 Tj
+-221 TJm
+(some) 21.031 Tj
+-222 TJm
+(in) 7.7509 Tj
+40 TJm
+(v) 4.9813 Tj
+15 TJm
+(estig) 18.8194 Tj
+5 TJm
+(ations) 23.8007 Tj
+-221 TJm
+(I) 3.3175 Tj
+-221 TJm
+(made) 21.579 Tj
+-222 TJm
+(into) 15.5018 Tj
+-221 TJm
+(the) 12.1743 Tj
+-221 TJm
+(performance) 50.341 Tj
+-222 TJm
+(of) 8.2988 Tj
+-221 TJm
+(sorting) 27.6761 Tj
+-221 TJm
+(and) 14.386 Tj
+-222 TJm
+(decompression) 59.7656 Tj
+72 637.146 Td
+(algorithms:) 45.3896 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.9294 0.9686 0.9568] sc
+/DeviceRGB {} CS
+[0.9294 0.9686 0.9568] SC
+q
+[1 0 0 1 72 502.486] cm
+0 0 468 131.507 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 625.624 Td
+/F124_0 9.9626 Tf
+(Julian) 35.8654 Tj
+-426 TJm
+(Seward) 35.8654 Tj
+102.732 613.669 Td
+(On) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(Performance) 65.7532 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(BWT) 17.9327 Tj
+-426 TJm
+(Sorting) 41.8429 Tj
+-426 TJm
+(Algorithms) 59.7756 Tj
+102.732 601.714 Td
+(Proceedings) 65.7532 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(IEEE) 23.9102 Tj
+-426 TJm
+(Data) 23.9102 Tj
+-426 TJm
+(Compression) 65.7532 Tj
+-426 TJm
+(Conference) 59.7756 Tj
+-426 TJm
+(2000) 23.9102 Tj
+111.22 589.759 Td
+(Snowbird,) 53.798 Tj
+-426 TJm
+(Utah.) 29.8878 Tj
+-852 TJm
+(28-30) 29.8878 Tj
+-426 TJm
+(March) 29.8878 Tj
+-426 TJm
+(2000.) 29.8878 Tj
+90 565.848 Td
+(Julian) 35.8654 Tj
+-426 TJm
+(Seward) 35.8654 Tj
+102.732 553.893 Td
+(Space-time) 59.7756 Tj
+-426 TJm
+(Tradeoffs) 53.798 Tj
+-426 TJm
+(in) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(Inverse) 41.8429 Tj
+-426 TJm
+(B-W) 17.9327 Tj
+-426 TJm
+(Transform) 53.798 Tj
+102.732 541.938 Td
+(Proceedings) 65.7532 Tj
+-426 TJm
+(of) 11.9551 Tj
+-426 TJm
+(the) 17.9327 Tj
+-426 TJm
+(IEEE) 23.9102 Tj
+-426 TJm
+(Data) 23.9102 Tj
+-426 TJm
+(Compression) 65.7532 Tj
+-426 TJm
+(Conference) 59.7756 Tj
+-426 TJm
+(2001) 23.9102 Tj
+111.22 529.983 Td
+(Snowbird,) 53.798 Tj
+-426 TJm
+(Utah.) 29.8878 Tj
+-852 TJm
+(27-29) 29.8878 Tj
+-426 TJm
+(March) 29.8878 Tj
+-426 TJm
+(2001.) 29.8878 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+/F122_0 9.9626 Tf
+(35) 9.9626 Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Trailer
+end
+%%DocumentSuppliedResources:
+%%+ font PYRIYB+NimbusSanL-Bold
+%%+ font XDVKOU+NimbusRomNo9L-Regu
+%%+ font QYKIKI+NimbusMonL-Regu
+%%+ font BITXNG+CMMI10
+%%+ font ZWXELK+NimbusMonL-Bold
+%%+ font FRBTTO+CMSY10
+%%+ font AMYDOG+NimbusRomNo9L-ReguItal
+%%EOF
diff --git a/bzip2/manual.xml b/bzip2/manual.xml
new file mode 100644 (file)
index 0000000..a7fbcb3
--- /dev/null
@@ -0,0 +1,2964 @@
+<?xml version="1.0"?> <!-- -*- sgml -*- -->
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"[
+
+<!-- various strings, dates etc. common to all docs -->
+<!ENTITY % common-ents SYSTEM "entities.xml"> %common-ents;
+]>
+
+<book lang="en" id="userman" xreflabel="bzip2 Manual">
+
+ <bookinfo>
+  <title>bzip2 and libbzip2, version 1.0.6</title>
+  <subtitle>A program and library for data compression</subtitle>
+  <copyright>
+   <year>&bz-lifespan;</year>
+   <holder>Julian Seward</holder>
+  </copyright>
+  <releaseinfo>Version &bz-version; of &bz-date;</releaseinfo>
+
+  <authorgroup>
+   <author>
+    <firstname>Julian</firstname>
+    <surname>Seward</surname>
+    <affiliation>
+     <orgname>&bz-url;</orgname>
+    </affiliation>
+   </author>
+  </authorgroup>
+
+  <legalnotice>
+
+  <para>This program, <computeroutput>bzip2</computeroutput>, the
+  associated library <computeroutput>libbzip2</computeroutput>, and
+  all documentation, are copyright &copy; &bz-lifespan; Julian Seward.
+  All rights reserved.</para>
+
+  <para>Redistribution and use in source and binary forms, with
+  or without modification, are permitted provided that the
+  following conditions are met:</para>
+
+  <itemizedlist mark='bullet'>
+
+   <listitem><para>Redistributions of source code must retain the
+   above copyright notice, this list of conditions and the
+   following disclaimer.</para></listitem>
+
+   <listitem><para>The origin of this software must not be
+   misrepresented; you must not claim that you wrote the original
+   software.  If you use this software in a product, an
+   acknowledgment in the product documentation would be
+   appreciated but is not required.</para></listitem>
+
+   <listitem><para>Altered source versions must be plainly marked
+   as such, and must not be misrepresented as being the original
+   software.</para></listitem>
+
+   <listitem><para>The name of the author may not be used to
+   endorse or promote products derived from this software without
+   specific prior written permission.</para></listitem>
+
+  </itemizedlist>
+
+  <para>THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY
+  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+  PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+  AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+  IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.</para>
+
+ <para>PATENTS: To the best of my knowledge,
+ <computeroutput>bzip2</computeroutput> and
+ <computeroutput>libbzip2</computeroutput> do not use any patented
+ algorithms.  However, I do not have the resources to carry
+ out a patent search.  Therefore I cannot give any guarantee of
+ the above statement.
+ </para>
+
+</legalnotice>
+
+</bookinfo>
+
+
+
+<chapter id="intro" xreflabel="Introduction">
+<title>Introduction</title>
+
+<para><computeroutput>bzip2</computeroutput> compresses files
+using the Burrows-Wheeler block-sorting text compression
+algorithm, and Huffman coding.  Compression is generally
+considerably better than that achieved by more conventional
+LZ77/LZ78-based compressors, and approaches the performance of
+the PPM family of statistical compressors.</para>
+
+<para><computeroutput>bzip2</computeroutput> is built on top of
+<computeroutput>libbzip2</computeroutput>, a flexible library for
+handling compressed data in the
+<computeroutput>bzip2</computeroutput> format.  This manual
+describes both how to use the program and how to work with the
+library interface.  Most of the manual is devoted to this
+library, not the program, which is good news if your interest is
+only in the program.</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para><xref linkend="using"/> describes how to use
+ <computeroutput>bzip2</computeroutput>; this is the only part
+ you need to read if you just want to know how to operate the
+ program.</para></listitem>
+
+ <listitem><para><xref linkend="libprog"/> describes the
+ programming interfaces in detail, and</para></listitem>
+
+ <listitem><para><xref linkend="misc"/> records some
+ miscellaneous notes which I thought ought to be recorded
+ somewhere.</para></listitem>
+
+</itemizedlist>
+
+</chapter>
+
+
+<chapter id="using" xreflabel="How to use bzip2">
+<title>How to use bzip2</title>
+
+<para>This chapter contains a copy of the
+<computeroutput>bzip2</computeroutput> man page, and nothing
+else.</para>
+
+<sect1 id="name" xreflabel="NAME">
+<title>NAME</title>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para><computeroutput>bzip2</computeroutput>,
+  <computeroutput>bunzip2</computeroutput> - a block-sorting file
+  compressor, v1.0.6</para></listitem>
+
+ <listitem><para><computeroutput>bzcat</computeroutput> -
+   decompresses files to stdout</para></listitem>
+
+ <listitem><para><computeroutput>bzip2recover</computeroutput> -
+   recovers data from damaged bzip2 files</para></listitem>
+
+</itemizedlist>
+
+</sect1>
+
+
+<sect1 id="synopsis" xreflabel="SYNOPSIS">
+<title>SYNOPSIS</title>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para><computeroutput>bzip2</computeroutput> [
+  -cdfkqstvzVL123456789 ] [ filenames ...  ]</para></listitem>
+
+ <listitem><para><computeroutput>bunzip2</computeroutput> [
+  -fkvsVL ] [ filenames ...  ]</para></listitem>
+
+ <listitem><para><computeroutput>bzcat</computeroutput> [ -s ] [
+  filenames ...  ]</para></listitem>
+
+ <listitem><para><computeroutput>bzip2recover</computeroutput>
+  filename</para></listitem>
+
+</itemizedlist>
+
+</sect1>
+
+
+<sect1 id="description" xreflabel="DESCRIPTION">
+<title>DESCRIPTION</title>
+
+<para><computeroutput>bzip2</computeroutput> compresses files
+using the Burrows-Wheeler block sorting text compression
+algorithm, and Huffman coding.  Compression is generally
+considerably better than that achieved by more conventional
+LZ77/LZ78-based compressors, and approaches the performance of
+the PPM family of statistical compressors.</para>
+
+<para>The command-line options are deliberately very similar to
+those of GNU <computeroutput>gzip</computeroutput>, but they are
+not identical.</para>
+
+<para><computeroutput>bzip2</computeroutput> expects a list of
+file names to accompany the command-line flags.  Each file is
+replaced by a compressed version of itself, with the name
+<computeroutput>original_name.bz2</computeroutput>.  Each
+compressed file has the same modification date, permissions, and,
+when possible, ownership as the corresponding original, so that
+these properties can be correctly restored at decompression time.
+File name handling is naive in the sense that there is no
+mechanism for preserving original file names, permissions,
+ownerships or dates in filesystems which lack these concepts, or
+have serious file name length restrictions, such as
+MS-DOS.</para>
+
+<para><computeroutput>bzip2</computeroutput> and
+<computeroutput>bunzip2</computeroutput> will by default not
+overwrite existing files.  If you want this to happen, specify
+the <computeroutput>-f</computeroutput> flag.</para>
+
+<para>If no file names are specified,
+<computeroutput>bzip2</computeroutput> compresses from standard
+input to standard output.  In this case,
+<computeroutput>bzip2</computeroutput> will decline to write
+compressed output to a terminal, as this would be entirely
+incomprehensible and therefore pointless.</para>
+
+<para><computeroutput>bunzip2</computeroutput> (or
+<computeroutput>bzip2 -d</computeroutput>) decompresses all
+specified files.  Files which were not created by
+<computeroutput>bzip2</computeroutput> will be detected and
+ignored, and a warning issued.
+<computeroutput>bzip2</computeroutput> attempts to guess the
+filename for the decompressed file from that of the compressed
+file as follows:</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para><computeroutput>filename.bz2 </computeroutput>
+  becomes
+  <computeroutput>filename</computeroutput></para></listitem>
+
+ <listitem><para><computeroutput>filename.bz </computeroutput>
+  becomes
+  <computeroutput>filename</computeroutput></para></listitem>
+
+ <listitem><para><computeroutput>filename.tbz2</computeroutput>
+  becomes
+  <computeroutput>filename.tar</computeroutput></para></listitem>
+
+ <listitem><para><computeroutput>filename.tbz </computeroutput>
+  becomes
+  <computeroutput>filename.tar</computeroutput></para></listitem>
+
+ <listitem><para><computeroutput>anyothername </computeroutput>
+  becomes
+  <computeroutput>anyothername.out</computeroutput></para></listitem>
+
+</itemizedlist>
+
+<para>If the file does not end in one of the recognised endings,
+<computeroutput>.bz2</computeroutput>,
+<computeroutput>.bz</computeroutput>,
+<computeroutput>.tbz2</computeroutput> or
+<computeroutput>.tbz</computeroutput>,
+<computeroutput>bzip2</computeroutput> complains that it cannot
+guess the name of the original file, and uses the original name
+with <computeroutput>.out</computeroutput> appended.</para>
+
+<para>As with compression, supplying no filenames causes
+decompression from standard input to standard output.</para>
+
+<para><computeroutput>bunzip2</computeroutput> will correctly
+decompress a file which is the concatenation of two or more
+compressed files.  The result is the concatenation of the
+corresponding uncompressed files.  Integrity testing
+(<computeroutput>-t</computeroutput>) of concatenated compressed
+files is also supported.</para>
+
+<para>You can also compress or decompress files to the standard
+output by giving the <computeroutput>-c</computeroutput> flag.
+Multiple files may be compressed and decompressed like this.  The
+resulting outputs are fed sequentially to stdout.  Compression of
+multiple files in this manner generates a stream containing
+multiple compressed file representations.  Such a stream can be
+decompressed correctly only by
+<computeroutput>bzip2</computeroutput> version 0.9.0 or later.
+Earlier versions of <computeroutput>bzip2</computeroutput> will
+stop after decompressing the first file in the stream.</para>
+
+<para><computeroutput>bzcat</computeroutput> (or
+<computeroutput>bzip2 -dc</computeroutput>) decompresses all
+specified files to the standard output.</para>
+
+<para><computeroutput>bzip2</computeroutput> will read arguments
+from the environment variables
+<computeroutput>BZIP2</computeroutput> and
+<computeroutput>BZIP</computeroutput>, in that order, and will
+process them before any arguments read from the command line.
+This gives a convenient way to supply default arguments.</para>
+
+<para>Compression is always performed, even if the compressed
+file is slightly larger than the original.  Files of less than
+about one hundred bytes tend to get larger, since the compression
+mechanism has a constant overhead in the region of 50 bytes.
+Random data (including the output of most file compressors) is
+coded at about 8.05 bits per byte, giving an expansion of around
+0.5%.</para>
+
+<para>As a self-check for your protection,
+<computeroutput>bzip2</computeroutput> uses 32-bit CRCs to make
+sure that the decompressed version of a file is identical to the
+original.  This guards against corruption of the compressed data,
+and against undetected bugs in
+<computeroutput>bzip2</computeroutput> (hopefully very unlikely).
+The chances of data corruption going undetected is microscopic,
+about one chance in four billion for each file processed.  Be
+aware, though, that the check occurs upon decompression, so it
+can only tell you that something is wrong.  It can't help you
+recover the original uncompressed data.  You can use
+<computeroutput>bzip2recover</computeroutput> to try to recover
+data from damaged files.</para>
+
+<para>Return values: 0 for a normal exit, 1 for environmental
+problems (file not found, invalid flags, I/O errors, etc.), 2
+to indicate a corrupt compressed file, 3 for an internal
+consistency error (eg, bug) which caused
+<computeroutput>bzip2</computeroutput> to panic.</para>
+
+</sect1>
+
+
+<sect1 id="options" xreflabel="OPTIONS">
+<title>OPTIONS</title>
+
+<variablelist>
+
+ <varlistentry>
+ <term><computeroutput>-c --stdout</computeroutput></term>
+ <listitem><para>Compress or decompress to standard
+  output.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-d --decompress</computeroutput></term>
+ <listitem><para>Force decompression.
+  <computeroutput>bzip2</computeroutput>,
+  <computeroutput>bunzip2</computeroutput> and
+  <computeroutput>bzcat</computeroutput> are really the same
+  program, and the decision about what actions to take is done on
+  the basis of which name is used.  This flag overrides that
+  mechanism, and forces bzip2 to decompress.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-z --compress</computeroutput></term>
+ <listitem><para>The complement to
+  <computeroutput>-d</computeroutput>: forces compression,
+  regardless of the invokation name.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-t --test</computeroutput></term>
+ <listitem><para>Check integrity of the specified file(s), but
+  don't decompress them.  This really performs a trial
+  decompression and throws away the result.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-f --force</computeroutput></term>
+ <listitem><para>Force overwrite of output files.  Normally,
+  <computeroutput>bzip2</computeroutput> will not overwrite
+  existing output files.  Also forces
+  <computeroutput>bzip2</computeroutput> to break hard links to
+  files, which it otherwise wouldn't do.</para>
+  <para><computeroutput>bzip2</computeroutput> normally declines
+  to decompress files which don't have the correct magic header
+  bytes. If forced (<computeroutput>-f</computeroutput>),
+  however, it will pass such files through unmodified. This is
+  how GNU <computeroutput>gzip</computeroutput> behaves.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-k --keep</computeroutput></term>
+ <listitem><para>Keep (don't delete) input files during
+  compression or decompression.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-s --small</computeroutput></term>
+ <listitem><para>Reduce memory usage, for compression,
+  decompression and testing.  Files are decompressed and tested
+  using a modified algorithm which only requires 2.5 bytes per
+  block byte.  This means any file can be decompressed in 2300k
+  of memory, albeit at about half the normal speed.</para>
+  <para>During compression, <computeroutput>-s</computeroutput>
+  selects a block size of 200k, which limits memory use to around
+  the same figure, at the expense of your compression ratio.  In
+  short, if your machine is low on memory (8 megabytes or less),
+  use <computeroutput>-s</computeroutput> for everything.  See
+  <xref linkend="memory-management"/> below.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-q --quiet</computeroutput></term>
+ <listitem><para>Suppress non-essential warning messages.
+  Messages pertaining to I/O errors and other critical events
+  will not be suppressed.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-v --verbose</computeroutput></term>
+ <listitem><para>Verbose mode -- show the compression ratio for
+  each file processed.  Further
+  <computeroutput>-v</computeroutput>'s increase the verbosity
+  level, spewing out lots of information which is primarily of
+  interest for diagnostic purposes.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-L --license -V --version</computeroutput></term>
+ <listitem><para>Display the software version, license terms and
+  conditions.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-1</computeroutput> (or
+ <computeroutput>--fast</computeroutput>) to
+ <computeroutput>-9</computeroutput> (or
+ <computeroutput>-best</computeroutput>)</term>
+ <listitem><para>Set the block size to 100 k, 200 k ...  900 k
+  when compressing.  Has no effect when decompressing.  See <xref
+  linkend="memory-management" /> below.  The
+  <computeroutput>--fast</computeroutput> and
+  <computeroutput>--best</computeroutput> aliases are primarily
+  for GNU <computeroutput>gzip</computeroutput> compatibility.
+  In particular, <computeroutput>--fast</computeroutput> doesn't
+  make things significantly faster.  And
+  <computeroutput>--best</computeroutput> merely selects the
+  default behaviour.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>--</computeroutput></term>
+ <listitem><para>Treats all subsequent arguments as file names,
+  even if they start with a dash.  This is so you can handle
+  files with names beginning with a dash, for example:
+  <computeroutput>bzip2 --
+  -myfilename</computeroutput>.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>--repetitive-fast</computeroutput></term>
+ <term><computeroutput>--repetitive-best</computeroutput></term>
+ <listitem><para>These flags are redundant in versions 0.9.5 and
+  above.  They provided some coarse control over the behaviour of
+  the sorting algorithm in earlier versions, which was sometimes
+  useful.  0.9.5 and above have an improved algorithm which
+  renders these flags irrelevant.</para></listitem>
+ </varlistentry>
+
+</variablelist>
+
+</sect1>
+
+
+<sect1 id="memory-management" xreflabel="MEMORY MANAGEMENT">
+<title>MEMORY MANAGEMENT</title>
+
+<para><computeroutput>bzip2</computeroutput> compresses large
+files in blocks.  The block size affects both the compression
+ratio achieved, and the amount of memory needed for compression
+and decompression.  The flags <computeroutput>-1</computeroutput>
+through <computeroutput>-9</computeroutput> specify the block
+size to be 100,000 bytes through 900,000 bytes (the default)
+respectively.  At decompression time, the block size used for
+compression is read from the header of the compressed file, and
+<computeroutput>bunzip2</computeroutput> then allocates itself
+just enough memory to decompress the file.  Since block sizes are
+stored in compressed files, it follows that the flags
+<computeroutput>-1</computeroutput> to
+<computeroutput>-9</computeroutput> are irrelevant to and so
+ignored during decompression.</para>
+
+<para>Compression and decompression requirements, in bytes, can be
+estimated as:</para>
+<programlisting>
+Compression:   400k + ( 8 x block size )
+
+Decompression: 100k + ( 4 x block size ), or
+               100k + ( 2.5 x block size )
+</programlisting>
+
+<para>Larger block sizes give rapidly diminishing marginal
+returns.  Most of the compression comes from the first two or
+three hundred k of block size, a fact worth bearing in mind when
+using <computeroutput>bzip2</computeroutput> on small machines.
+It is also important to appreciate that the decompression memory
+requirement is set at compression time by the choice of block
+size.</para>
+
+<para>For files compressed with the default 900k block size,
+<computeroutput>bunzip2</computeroutput> will require about 3700
+kbytes to decompress.  To support decompression of any file on a
+4 megabyte machine, <computeroutput>bunzip2</computeroutput> has
+an option to decompress using approximately half this amount of
+memory, about 2300 kbytes.  Decompression speed is also halved,
+so you should use this option only where necessary.  The relevant
+flag is <computeroutput>-s</computeroutput>.</para>
+
+<para>In general, try and use the largest block size memory
+constraints allow, since that maximises the compression achieved.
+Compression and decompression speed are virtually unaffected by
+block size.</para>
+
+<para>Another significant point applies to files which fit in a
+single block -- that means most files you'd encounter using a
+large block size.  The amount of real memory touched is
+proportional to the size of the file, since the file is smaller
+than a block.  For example, compressing a file 20,000 bytes long
+with the flag <computeroutput>-9</computeroutput> will cause the
+compressor to allocate around 7600k of memory, but only touch
+400k + 20000 * 8 = 560 kbytes of it.  Similarly, the decompressor
+will allocate 3700k but only touch 100k + 20000 * 4 = 180
+kbytes.</para>
+
+<para>Here is a table which summarises the maximum memory usage
+for different block sizes.  Also recorded is the total compressed
+size for 14 files of the Calgary Text Compression Corpus
+totalling 3,141,622 bytes.  This column gives some feel for how
+compression varies with block size.  These figures tend to
+understate the advantage of larger block sizes for larger files,
+since the Corpus is dominated by smaller files.</para>
+
+<programlisting>
+        Compress   Decompress   Decompress   Corpus
+Flag     usage      usage       -s usage     Size
+
+ -1      1200k       500k         350k      914704
+ -2      2000k       900k         600k      877703
+ -3      2800k      1300k         850k      860338
+ -4      3600k      1700k        1100k      846899
+ -5      4400k      2100k        1350k      845160
+ -6      5200k      2500k        1600k      838626
+ -7      6100k      2900k        1850k      834096
+ -8      6800k      3300k        2100k      828642
+ -9      7600k      3700k        2350k      828642
+</programlisting>
+
+</sect1>
+
+
+<sect1 id="recovering" xreflabel="RECOVERING DATA FROM DAMAGED FILES">
+<title>RECOVERING DATA FROM DAMAGED FILES</title>
+
+<para><computeroutput>bzip2</computeroutput> compresses files in
+blocks, usually 900kbytes long.  Each block is handled
+independently.  If a media or transmission error causes a
+multi-block <computeroutput>.bz2</computeroutput> file to become
+damaged, it may be possible to recover data from the undamaged
+blocks in the file.</para>
+
+<para>The compressed representation of each block is delimited by
+a 48-bit pattern, which makes it possible to find the block
+boundaries with reasonable certainty.  Each block also carries
+its own 32-bit CRC, so damaged blocks can be distinguished from
+undamaged ones.</para>
+
+<para><computeroutput>bzip2recover</computeroutput> is a simple
+program whose purpose is to search for blocks in
+<computeroutput>.bz2</computeroutput> files, and write each block
+out into its own <computeroutput>.bz2</computeroutput> file.  You
+can then use <computeroutput>bzip2 -t</computeroutput> to test
+the integrity of the resulting files, and decompress those which
+are undamaged.</para>
+
+<para><computeroutput>bzip2recover</computeroutput> takes a
+single argument, the name of the damaged file, and writes a
+number of files <computeroutput>rec0001file.bz2</computeroutput>,
+<computeroutput>rec0002file.bz2</computeroutput>, etc, containing
+the extracted blocks.  The output filenames are designed so that
+the use of wildcards in subsequent processing -- for example,
+<computeroutput>bzip2 -dc rec*file.bz2 &#62;
+recovered_data</computeroutput> -- lists the files in the correct
+order.</para>
+
+<para><computeroutput>bzip2recover</computeroutput> should be of
+most use dealing with large <computeroutput>.bz2</computeroutput>
+files, as these will contain many blocks.  It is clearly futile
+to use it on damaged single-block files, since a damaged block
+cannot be recovered.  If you wish to minimise any potential data
+loss through media or transmission errors, you might consider
+compressing with a smaller block size.</para>
+
+</sect1>
+
+
+<sect1 id="performance" xreflabel="PERFORMANCE NOTES">
+<title>PERFORMANCE NOTES</title>
+
+<para>The sorting phase of compression gathers together similar
+strings in the file.  Because of this, files containing very long
+runs of repeated symbols, like "aabaabaabaab ..."  (repeated
+several hundred times) may compress more slowly than normal.
+Versions 0.9.5 and above fare much better than previous versions
+in this respect.  The ratio between worst-case and average-case
+compression time is in the region of 10:1.  For previous
+versions, this figure was more like 100:1.  You can use the
+<computeroutput>-vvvv</computeroutput> option to monitor progress
+in great detail, if you want.</para>
+
+<para>Decompression speed is unaffected by these
+phenomena.</para>
+
+<para><computeroutput>bzip2</computeroutput> usually allocates
+several megabytes of memory to operate in, and then charges all
+over it in a fairly random fashion.  This means that performance,
+both for compressing and decompressing, is largely determined by
+the speed at which your machine can service cache misses.
+Because of this, small changes to the code to reduce the miss
+rate have been observed to give disproportionately large
+performance improvements.  I imagine
+<computeroutput>bzip2</computeroutput> will perform best on
+machines with very large caches.</para>
+
+</sect1>
+
+
+
+<sect1 id="caveats" xreflabel="CAVEATS">
+<title>CAVEATS</title>
+
+<para>I/O error messages are not as helpful as they could be.
+<computeroutput>bzip2</computeroutput> tries hard to detect I/O
+errors and exit cleanly, but the details of what the problem is
+sometimes seem rather misleading.</para>
+
+<para>This manual page pertains to version &bz-version; of
+<computeroutput>bzip2</computeroutput>.  Compressed data created by
+this version is entirely forwards and backwards compatible with the
+previous public releases, versions 0.1pl2, 0.9.0 and 0.9.5, 1.0.0,
+1.0.1, 1.0.2 and 1.0.3, but with the following exception: 0.9.0 and
+above can correctly decompress multiple concatenated compressed files.
+0.1pl2 cannot do this; it will stop after decompressing just the first
+file in the stream.</para>
+
+<para><computeroutput>bzip2recover</computeroutput> versions
+prior to 1.0.2 used 32-bit integers to represent bit positions in
+compressed files, so it could not handle compressed files more
+than 512 megabytes long.  Versions 1.0.2 and above use 64-bit ints
+on some platforms which support them (GNU supported targets, and
+Windows). To establish whether or not
+<computeroutput>bzip2recover</computeroutput> was built with such
+a limitation, run it without arguments. In any event you can
+build yourself an unlimited version if you can recompile it with
+<computeroutput>MaybeUInt64</computeroutput> set to be an
+unsigned 64-bit integer.</para>
+
+</sect1>
+
+
+
+<sect1 id="author" xreflabel="AUTHOR">
+<title>AUTHOR</title>
+
+<para>Julian Seward,
+<computeroutput>&bz-email;</computeroutput></para>
+
+<para>The ideas embodied in
+<computeroutput>bzip2</computeroutput> are due to (at least) the
+following people: Michael Burrows and David Wheeler (for the
+block sorting transformation), David Wheeler (again, for the
+Huffman coder), Peter Fenwick (for the structured coding model in
+the original <computeroutput>bzip</computeroutput>, and many
+refinements), and Alistair Moffat, Radford Neal and Ian Witten
+(for the arithmetic coder in the original
+<computeroutput>bzip</computeroutput>).  I am much indebted for
+their help, support and advice.  See the manual in the source
+distribution for pointers to sources of documentation.  Christian
+von Roques encouraged me to look for faster sorting algorithms,
+so as to speed up compression.  Bela Lubkin encouraged me to
+improve the worst-case compression performance.  
+Donna Robinson XMLised the documentation.
+Many people sent
+patches, helped with portability problems, lent machines, gave
+advice and were generally helpful.</para>
+
+</sect1>
+
+</chapter>
+
+
+
+<chapter id="libprog" xreflabel="Programming with libbzip2">
+<title>
+Programming with <computeroutput>libbzip2</computeroutput>
+</title>
+
+<para>This chapter describes the programming interface to
+<computeroutput>libbzip2</computeroutput>.</para>
+
+<para>For general background information, particularly about
+memory use and performance aspects, you'd be well advised to read
+<xref linkend="using"/> as well.</para>
+
+
+<sect1 id="top-level" xreflabel="Top-level structure">
+<title>Top-level structure</title>
+
+<para><computeroutput>libbzip2</computeroutput> is a flexible
+library for compressing and decompressing data in the
+<computeroutput>bzip2</computeroutput> data format.  Although
+packaged as a single entity, it helps to regard the library as
+three separate parts: the low level interface, and the high level
+interface, and some utility functions.</para>
+
+<para>The structure of
+<computeroutput>libbzip2</computeroutput>'s interfaces is similar
+to that of Jean-loup Gailly's and Mark Adler's excellent
+<computeroutput>zlib</computeroutput> library.</para>
+
+<para>All externally visible symbols have names beginning
+<computeroutput>BZ2_</computeroutput>.  This is new in version
+1.0.  The intention is to minimise pollution of the namespaces of
+library clients.</para>
+
+<para>To use any part of the library, you need to
+<computeroutput>#include &lt;bzlib.h&gt;</computeroutput>
+into your sources.</para>
+
+
+
+<sect2 id="ll-summary" xreflabel="Low-level summary">
+<title>Low-level summary</title>
+
+<para>This interface provides services for compressing and
+decompressing data in memory.  There's no provision for dealing
+with files, streams or any other I/O mechanisms, just straight
+memory-to-memory work.  In fact, this part of the library can be
+compiled without inclusion of
+<computeroutput>stdio.h</computeroutput>, which may be helpful
+for embedded applications.</para>
+
+<para>The low-level part of the library has no global variables
+and is therefore thread-safe.</para>
+
+<para>Six routines make up the low level interface:
+<computeroutput>BZ2_bzCompressInit</computeroutput>,
+<computeroutput>BZ2_bzCompress</computeroutput>, and
+<computeroutput>BZ2_bzCompressEnd</computeroutput> for
+compression, and a corresponding trio
+<computeroutput>BZ2_bzDecompressInit</computeroutput>,
+<computeroutput>BZ2_bzDecompress</computeroutput> and
+<computeroutput>BZ2_bzDecompressEnd</computeroutput> for
+decompression.  The <computeroutput>*Init</computeroutput>
+functions allocate memory for compression/decompression and do
+other initialisations, whilst the
+<computeroutput>*End</computeroutput> functions close down
+operations and release memory.</para>
+
+<para>The real work is done by
+<computeroutput>BZ2_bzCompress</computeroutput> and
+<computeroutput>BZ2_bzDecompress</computeroutput>.  These
+compress and decompress data from a user-supplied input buffer to
+a user-supplied output buffer.  These buffers can be any size;
+arbitrary quantities of data are handled by making repeated calls
+to these functions.  This is a flexible mechanism allowing a
+consumer-pull style of activity, or producer-push, or a mixture
+of both.</para>
+
+</sect2>
+
+
+<sect2 id="hl-summary" xreflabel="High-level summary">
+<title>High-level summary</title>
+
+<para>This interface provides some handy wrappers around the
+low-level interface to facilitate reading and writing
+<computeroutput>bzip2</computeroutput> format files
+(<computeroutput>.bz2</computeroutput> files).  The routines
+provide hooks to facilitate reading files in which the
+<computeroutput>bzip2</computeroutput> data stream is embedded
+within some larger-scale file structure, or where there are
+multiple <computeroutput>bzip2</computeroutput> data streams
+concatenated end-to-end.</para>
+
+<para>For reading files,
+<computeroutput>BZ2_bzReadOpen</computeroutput>,
+<computeroutput>BZ2_bzRead</computeroutput>,
+<computeroutput>BZ2_bzReadClose</computeroutput> and 
+<computeroutput>BZ2_bzReadGetUnused</computeroutput> are
+supplied.  For writing files,
+<computeroutput>BZ2_bzWriteOpen</computeroutput>,
+<computeroutput>BZ2_bzWrite</computeroutput> and
+<computeroutput>BZ2_bzWriteFinish</computeroutput> are
+available.</para>
+
+<para>As with the low-level library, no global variables are used
+so the library is per se thread-safe.  However, if I/O errors
+occur whilst reading or writing the underlying compressed files,
+you may have to consult <computeroutput>errno</computeroutput> to
+determine the cause of the error.  In that case, you'd need a C
+library which correctly supports
+<computeroutput>errno</computeroutput> in a multithreaded
+environment.</para>
+
+<para>To make the library a little simpler and more portable,
+<computeroutput>BZ2_bzReadOpen</computeroutput> and
+<computeroutput>BZ2_bzWriteOpen</computeroutput> require you to
+pass them file handles (<computeroutput>FILE*</computeroutput>s)
+which have previously been opened for reading or writing
+respectively.  That avoids portability problems associated with
+file operations and file attributes, whilst not being much of an
+imposition on the programmer.</para>
+
+</sect2>
+
+
+<sect2 id="util-fns-summary" xreflabel="Utility functions summary">
+<title>Utility functions summary</title>
+
+<para>For very simple needs,
+<computeroutput>BZ2_bzBuffToBuffCompress</computeroutput> and
+<computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput> are
+provided.  These compress data in memory from one buffer to
+another buffer in a single function call.  You should assess
+whether these functions fulfill your memory-to-memory
+compression/decompression requirements before investing effort in
+understanding the more general but more complex low-level
+interface.</para>
+
+<para>Yoshioka Tsuneo
+(<computeroutput>tsuneo@rr.iij4u.or.jp</computeroutput>) has
+contributed some functions to give better
+<computeroutput>zlib</computeroutput> compatibility.  These
+functions are <computeroutput>BZ2_bzopen</computeroutput>,
+<computeroutput>BZ2_bzread</computeroutput>,
+<computeroutput>BZ2_bzwrite</computeroutput>,
+<computeroutput>BZ2_bzflush</computeroutput>,
+<computeroutput>BZ2_bzclose</computeroutput>,
+<computeroutput>BZ2_bzerror</computeroutput> and
+<computeroutput>BZ2_bzlibVersion</computeroutput>.  You may find
+these functions more convenient for simple file reading and
+writing, than those in the high-level interface.  These functions
+are not (yet) officially part of the library, and are minimally
+documented here.  If they break, you get to keep all the pieces.
+I hope to document them properly when time permits.</para>
+
+<para>Yoshioka also contributed modifications to allow the
+library to be built as a Windows DLL.</para>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="err-handling" xreflabel="Error handling">
+<title>Error handling</title>
+
+<para>The library is designed to recover cleanly in all
+situations, including the worst-case situation of decompressing
+random data.  I'm not 100% sure that it can always do this, so
+you might want to add a signal handler to catch segmentation
+violations during decompression if you are feeling especially
+paranoid.  I would be interested in hearing more about the
+robustness of the library to corrupted compressed data.</para>
+
+<para>Version 1.0.3 more robust in this respect than any
+previous version.  Investigations with Valgrind (a tool for detecting
+problems with memory management) indicate
+that, at least for the few files I tested, all single-bit errors
+in the decompressed data are caught properly, with no
+segmentation faults, no uses of uninitialised data, no out of
+range reads or writes, and no infinite looping in the decompressor.
+So it's certainly pretty robust, although
+I wouldn't claim it to be totally bombproof.</para>
+
+<para>The file <computeroutput>bzlib.h</computeroutput> contains
+all definitions needed to use the library.  In particular, you
+should definitely not include
+<computeroutput>bzlib_private.h</computeroutput>.</para>
+
+<para>In <computeroutput>bzlib.h</computeroutput>, the various
+return values are defined.  The following list is not intended as
+an exhaustive description of the circumstances in which a given
+value may be returned -- those descriptions are given later.
+Rather, it is intended to convey the rough meaning of each return
+value.  The first five actions are normal and not intended to
+denote an error situation.</para>
+
+<variablelist>
+
+ <varlistentry>
+  <term><computeroutput>BZ_OK</computeroutput></term>
+  <listitem><para>The requested action was completed
+   successfully.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term><computeroutput>BZ_RUN_OK, BZ_FLUSH_OK,
+    BZ_FINISH_OK</computeroutput></term>
+  <listitem><para>In 
+   <computeroutput>BZ2_bzCompress</computeroutput>, the requested
+   flush/finish/nothing-special action was completed
+   successfully.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term><computeroutput>BZ_STREAM_END</computeroutput></term>
+  <listitem><para>Compression of data was completed, or the
+   logical stream end was detected during
+   decompression.</para></listitem>
+ </varlistentry>
+
+</variablelist>
+
+<para>The following return values indicate an error of some
+kind.</para>
+
+<variablelist>
+
+ <varlistentry>
+  <term><computeroutput>BZ_CONFIG_ERROR</computeroutput></term>
+  <listitem><para>Indicates that the library has been improperly
+   compiled on your platform -- a major configuration error.
+   Specifically, it means that
+   <computeroutput>sizeof(char)</computeroutput>,
+   <computeroutput>sizeof(short)</computeroutput> and
+   <computeroutput>sizeof(int)</computeroutput> are not 1, 2 and
+   4 respectively, as they should be.  Note that the library
+   should still work properly on 64-bit platforms which follow
+   the LP64 programming model -- that is, where
+   <computeroutput>sizeof(long)</computeroutput> and
+   <computeroutput>sizeof(void*)</computeroutput> are 8.  Under
+   LP64, <computeroutput>sizeof(int)</computeroutput> is still 4,
+   so <computeroutput>libbzip2</computeroutput>, which doesn't
+   use the <computeroutput>long</computeroutput> type, is
+   OK.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term><computeroutput>BZ_SEQUENCE_ERROR</computeroutput></term>
+  <listitem><para>When using the library, it is important to call
+   the functions in the correct sequence and with data structures
+   (buffers etc) in the correct states.
+   <computeroutput>libbzip2</computeroutput> checks as much as it
+   can to ensure this is happening, and returns
+   <computeroutput>BZ_SEQUENCE_ERROR</computeroutput> if not.
+   Code which complies precisely with the function semantics, as
+   detailed below, should never receive this value; such an event
+   denotes buggy code which you should
+   investigate.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term><computeroutput>BZ_PARAM_ERROR</computeroutput></term>
+  <listitem><para>Returned when a parameter to a function call is
+   out of range or otherwise manifestly incorrect.  As with
+   <computeroutput>BZ_SEQUENCE_ERROR</computeroutput>, this
+   denotes a bug in the client code.  The distinction between
+   <computeroutput>BZ_PARAM_ERROR</computeroutput> and
+   <computeroutput>BZ_SEQUENCE_ERROR</computeroutput> is a bit
+   hazy, but still worth making.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term><computeroutput>BZ_MEM_ERROR</computeroutput></term>
+  <listitem><para>Returned when a request to allocate memory
+   failed.  Note that the quantity of memory needed to decompress
+   a stream cannot be determined until the stream's header has
+   been read.  So
+   <computeroutput>BZ2_bzDecompress</computeroutput> and
+   <computeroutput>BZ2_bzRead</computeroutput> may return
+   <computeroutput>BZ_MEM_ERROR</computeroutput> even though some
+   of the compressed data has been read.  The same is not true
+   for compression; once
+   <computeroutput>BZ2_bzCompressInit</computeroutput> or
+   <computeroutput>BZ2_bzWriteOpen</computeroutput> have
+   successfully completed,
+   <computeroutput>BZ_MEM_ERROR</computeroutput> cannot
+   occur.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term><computeroutput>BZ_DATA_ERROR</computeroutput></term>
+  <listitem><para>Returned when a data integrity error is
+   detected during decompression.  Most importantly, this means
+   when stored and computed CRCs for the data do not match.  This
+   value is also returned upon detection of any other anomaly in
+   the compressed data.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term><computeroutput>BZ_DATA_ERROR_MAGIC</computeroutput></term>
+  <listitem><para>As a special case of
+   <computeroutput>BZ_DATA_ERROR</computeroutput>, it is
+   sometimes useful to know when the compressed stream does not
+   start with the correct magic bytes (<computeroutput>'B' 'Z'
+   'h'</computeroutput>).</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term><computeroutput>BZ_IO_ERROR</computeroutput></term>
+  <listitem><para>Returned by
+   <computeroutput>BZ2_bzRead</computeroutput> and
+   <computeroutput>BZ2_bzWrite</computeroutput> when there is an
+   error reading or writing in the compressed file, and by
+   <computeroutput>BZ2_bzReadOpen</computeroutput> and
+   <computeroutput>BZ2_bzWriteOpen</computeroutput> for attempts
+   to use a file for which the error indicator (viz,
+   <computeroutput>ferror(f)</computeroutput>) is set.  On
+   receipt of <computeroutput>BZ_IO_ERROR</computeroutput>, the
+   caller should consult <computeroutput>errno</computeroutput>
+   and/or <computeroutput>perror</computeroutput> to acquire
+   operating-system specific information about the
+   problem.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term><computeroutput>BZ_UNEXPECTED_EOF</computeroutput></term>
+  <listitem><para>Returned by
+   <computeroutput>BZ2_bzRead</computeroutput> when the
+   compressed file finishes before the logical end of stream is
+   detected.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term><computeroutput>BZ_OUTBUFF_FULL</computeroutput></term>
+  <listitem><para>Returned by
+   <computeroutput>BZ2_bzBuffToBuffCompress</computeroutput> and
+   <computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput> to
+   indicate that the output data will not fit into the output
+   buffer provided.</para></listitem>
+ </varlistentry>
+
+</variablelist>
+
+</sect1>
+
+
+
+<sect1 id="low-level" xreflabel=">Low-level interface">
+<title>Low-level interface</title>
+
+
+<sect2 id="bzcompress-init" xreflabel="BZ2_bzCompressInit">
+<title>BZ2_bzCompressInit</title>
+
+<programlisting>
+typedef struct {
+  char *next_in;
+  unsigned int avail_in;
+  unsigned int total_in_lo32;
+  unsigned int total_in_hi32;
+
+  char *next_out;
+  unsigned int avail_out;
+  unsigned int total_out_lo32;
+  unsigned int total_out_hi32;
+
+  void *state;
+
+  void *(*bzalloc)(void *,int,int);
+  void (*bzfree)(void *,void *);
+  void *opaque;
+} bz_stream;
+
+int BZ2_bzCompressInit ( bz_stream *strm, 
+                         int blockSize100k, 
+                         int verbosity,
+                         int workFactor );
+</programlisting>
+
+<para>Prepares for compression.  The
+<computeroutput>bz_stream</computeroutput> structure holds all
+data pertaining to the compression activity.  A
+<computeroutput>bz_stream</computeroutput> structure should be
+allocated and initialised prior to the call.  The fields of
+<computeroutput>bz_stream</computeroutput> comprise the entirety
+of the user-visible data.  <computeroutput>state</computeroutput>
+is a pointer to the private data structures required for
+compression.</para>
+
+<para>Custom memory allocators are supported, via fields
+<computeroutput>bzalloc</computeroutput>,
+<computeroutput>bzfree</computeroutput>, and
+<computeroutput>opaque</computeroutput>.  The value
+<computeroutput>opaque</computeroutput> is passed to as the first
+argument to all calls to <computeroutput>bzalloc</computeroutput>
+and <computeroutput>bzfree</computeroutput>, but is otherwise
+ignored by the library.  The call <computeroutput>bzalloc (
+opaque, n, m )</computeroutput> is expected to return a pointer
+<computeroutput>p</computeroutput> to <computeroutput>n *
+m</computeroutput> bytes of memory, and <computeroutput>bzfree (
+opaque, p )</computeroutput> should free that memory.</para>
+
+<para>If you don't want to use a custom memory allocator, set
+<computeroutput>bzalloc</computeroutput>,
+<computeroutput>bzfree</computeroutput> and
+<computeroutput>opaque</computeroutput> to
+<computeroutput>NULL</computeroutput>, and the library will then
+use the standard <computeroutput>malloc</computeroutput> /
+<computeroutput>free</computeroutput> routines.</para>
+
+<para>Before calling
+<computeroutput>BZ2_bzCompressInit</computeroutput>, fields
+<computeroutput>bzalloc</computeroutput>,
+<computeroutput>bzfree</computeroutput> and
+<computeroutput>opaque</computeroutput> should be filled
+appropriately, as just described.  Upon return, the internal
+state will have been allocated and initialised, and
+<computeroutput>total_in_lo32</computeroutput>,
+<computeroutput>total_in_hi32</computeroutput>,
+<computeroutput>total_out_lo32</computeroutput> and
+<computeroutput>total_out_hi32</computeroutput> will have been
+set to zero.  These four fields are used by the library to inform
+the caller of the total amount of data passed into and out of the
+library, respectively.  You should not try to change them.  As of
+version 1.0, 64-bit counts are maintained, even on 32-bit
+platforms, using the <computeroutput>_hi32</computeroutput>
+fields to store the upper 32 bits of the count.  So, for example,
+the total amount of data in is <computeroutput>(total_in_hi32
+&#60;&#60; 32) + total_in_lo32</computeroutput>.</para>
+
+<para>Parameter <computeroutput>blockSize100k</computeroutput>
+specifies the block size to be used for compression.  It should
+be a value between 1 and 9 inclusive, and the actual block size
+used is 100000 x this figure.  9 gives the best compression but
+takes most memory.</para>
+
+<para>Parameter <computeroutput>verbosity</computeroutput> should
+be set to a number between 0 and 4 inclusive.  0 is silent, and
+greater numbers give increasingly verbose monitoring/debugging
+output.  If the library has been compiled with
+<computeroutput>-DBZ_NO_STDIO</computeroutput>, no such output
+will appear for any verbosity setting.</para>
+
+<para>Parameter <computeroutput>workFactor</computeroutput>
+controls how the compression phase behaves when presented with
+worst case, highly repetitive, input data.  If compression runs
+into difficulties caused by repetitive data, the library switches
+from the standard sorting algorithm to a fallback algorithm.  The
+fallback is slower than the standard algorithm by perhaps a
+factor of three, but always behaves reasonably, no matter how bad
+the input.</para>
+
+<para>Lower values of <computeroutput>workFactor</computeroutput>
+reduce the amount of effort the standard algorithm will expend
+before resorting to the fallback.  You should set this parameter
+carefully; too low, and many inputs will be handled by the
+fallback algorithm and so compress rather slowly, too high, and
+your average-to-worst case compression times can become very
+large.  The default value of 30 gives reasonable behaviour over a
+wide range of circumstances.</para>
+
+<para>Allowable values range from 0 to 250 inclusive.  0 is a
+special case, equivalent to using the default value of 30.</para>
+
+<para>Note that the compressed output generated is the same
+regardless of whether or not the fallback algorithm is
+used.</para>
+
+<para>Be aware also that this parameter may disappear entirely in
+future versions of the library.  In principle it should be
+possible to devise a good way to automatically choose which
+algorithm to use.  Such a mechanism would render the parameter
+obsolete.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if strm is NULL 
+  or blockSize < 1 or blockSize > 9
+  or verbosity < 0 or verbosity > 4
+  or workFactor < 0 or workFactor > 250
+BZ_MEM_ERROR 
+  if not enough memory is available
+BZ_OK 
+  otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzCompress
+  if BZ_OK is returned
+  no specific action needed in case of error
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzCompress" xreflabel="BZ2_bzCompress">
+<title>BZ2_bzCompress</title>
+
+<programlisting>
+int BZ2_bzCompress ( bz_stream *strm, int action );
+</programlisting>
+
+<para>Provides more input and/or output buffer space for the
+library.  The caller maintains input and output buffers, and
+calls <computeroutput>BZ2_bzCompress</computeroutput> to transfer
+data between them.</para>
+
+<para>Before each call to
+<computeroutput>BZ2_bzCompress</computeroutput>,
+<computeroutput>next_in</computeroutput> should point at the data
+to be compressed, and <computeroutput>avail_in</computeroutput>
+should indicate how many bytes the library may read.
+<computeroutput>BZ2_bzCompress</computeroutput> updates
+<computeroutput>next_in</computeroutput>,
+<computeroutput>avail_in</computeroutput> and
+<computeroutput>total_in</computeroutput> to reflect the number
+of bytes it has read.</para>
+
+<para>Similarly, <computeroutput>next_out</computeroutput> should
+point to a buffer in which the compressed data is to be placed,
+with <computeroutput>avail_out</computeroutput> indicating how
+much output space is available.
+<computeroutput>BZ2_bzCompress</computeroutput> updates
+<computeroutput>next_out</computeroutput>,
+<computeroutput>avail_out</computeroutput> and
+<computeroutput>total_out</computeroutput> to reflect the number
+of bytes output.</para>
+
+<para>You may provide and remove as little or as much data as you
+like on each call of
+<computeroutput>BZ2_bzCompress</computeroutput>.  In the limit,
+it is acceptable to supply and remove data one byte at a time,
+although this would be terribly inefficient.  You should always
+ensure that at least one byte of output space is available at
+each call.</para>
+
+<para>A second purpose of
+<computeroutput>BZ2_bzCompress</computeroutput> is to request a
+change of mode of the compressed stream.</para>
+
+<para>Conceptually, a compressed stream can be in one of four
+states: IDLE, RUNNING, FLUSHING and FINISHING.  Before
+initialisation
+(<computeroutput>BZ2_bzCompressInit</computeroutput>) and after
+termination (<computeroutput>BZ2_bzCompressEnd</computeroutput>),
+a stream is regarded as IDLE.</para>
+
+<para>Upon initialisation
+(<computeroutput>BZ2_bzCompressInit</computeroutput>), the stream
+is placed in the RUNNING state.  Subsequent calls to
+<computeroutput>BZ2_bzCompress</computeroutput> should pass
+<computeroutput>BZ_RUN</computeroutput> as the requested action;
+other actions are illegal and will result in
+<computeroutput>BZ_SEQUENCE_ERROR</computeroutput>.</para>
+
+<para>At some point, the calling program will have provided all
+the input data it wants to.  It will then want to finish up -- in
+effect, asking the library to process any data it might have
+buffered internally.  In this state,
+<computeroutput>BZ2_bzCompress</computeroutput> will no longer
+attempt to read data from
+<computeroutput>next_in</computeroutput>, but it will want to
+write data to <computeroutput>next_out</computeroutput>.  Because
+the output buffer supplied by the user can be arbitrarily small,
+the finishing-up operation cannot necessarily be done with a
+single call of
+<computeroutput>BZ2_bzCompress</computeroutput>.</para>
+
+<para>Instead, the calling program passes
+<computeroutput>BZ_FINISH</computeroutput> as an action to
+<computeroutput>BZ2_bzCompress</computeroutput>.  This changes
+the stream's state to FINISHING.  Any remaining input (ie,
+<computeroutput>next_in[0 .. avail_in-1]</computeroutput>) is
+compressed and transferred to the output buffer.  To do this,
+<computeroutput>BZ2_bzCompress</computeroutput> must be called
+repeatedly until all the output has been consumed.  At that
+point, <computeroutput>BZ2_bzCompress</computeroutput> returns
+<computeroutput>BZ_STREAM_END</computeroutput>, and the stream's
+state is set back to IDLE.
+<computeroutput>BZ2_bzCompressEnd</computeroutput> should then be
+called.</para>
+
+<para>Just to make sure the calling program does not cheat, the
+library makes a note of <computeroutput>avail_in</computeroutput>
+at the time of the first call to
+<computeroutput>BZ2_bzCompress</computeroutput> which has
+<computeroutput>BZ_FINISH</computeroutput> as an action (ie, at
+the time the program has announced its intention to not supply
+any more input).  By comparing this value with that of
+<computeroutput>avail_in</computeroutput> over subsequent calls
+to <computeroutput>BZ2_bzCompress</computeroutput>, the library
+can detect any attempts to slip in more data to compress.  Any
+calls for which this is detected will return
+<computeroutput>BZ_SEQUENCE_ERROR</computeroutput>.  This
+indicates a programming mistake which should be corrected.</para>
+
+<para>Instead of asking to finish, the calling program may ask
+<computeroutput>BZ2_bzCompress</computeroutput> to take all the
+remaining input, compress it and terminate the current
+(Burrows-Wheeler) compression block.  This could be useful for
+error control purposes.  The mechanism is analogous to that for
+finishing: call <computeroutput>BZ2_bzCompress</computeroutput>
+with an action of <computeroutput>BZ_FLUSH</computeroutput>,
+remove output data, and persist with the
+<computeroutput>BZ_FLUSH</computeroutput> action until the value
+<computeroutput>BZ_RUN</computeroutput> is returned.  As with
+finishing, <computeroutput>BZ2_bzCompress</computeroutput>
+detects any attempt to provide more input data once the flush has
+begun.</para>
+
+<para>Once the flush is complete, the stream returns to the
+normal RUNNING state.</para>
+
+<para>This all sounds pretty complex, but isn't really.  Here's a
+table which shows which actions are allowable in each state, what
+action will be taken, what the next state is, and what the
+non-error return values are.  Note that you can't explicitly ask
+what state the stream is in, but nor do you need to -- it can be
+inferred from the values returned by
+<computeroutput>BZ2_bzCompress</computeroutput>.</para>
+
+<programlisting>
+IDLE/any
+  Illegal.  IDLE state only exists after BZ2_bzCompressEnd or
+  before BZ2_bzCompressInit.
+  Return value = BZ_SEQUENCE_ERROR
+
+RUNNING/BZ_RUN
+  Compress from next_in to next_out as much as possible.
+  Next state = RUNNING
+  Return value = BZ_RUN_OK
+
+RUNNING/BZ_FLUSH
+  Remember current value of next_in. Compress from next_in
+  to next_out as much as possible, but do not accept any more input.
+  Next state = FLUSHING
+  Return value = BZ_FLUSH_OK
+
+RUNNING/BZ_FINISH
+  Remember current value of next_in. Compress from next_in
+  to next_out as much as possible, but do not accept any more input.
+  Next state = FINISHING
+  Return value = BZ_FINISH_OK
+
+FLUSHING/BZ_FLUSH
+  Compress from next_in to next_out as much as possible, 
+  but do not accept any more input.
+  If all the existing input has been used up and all compressed
+  output has been removed
+    Next state = RUNNING; Return value = BZ_RUN_OK
+  else
+    Next state = FLUSHING; Return value = BZ_FLUSH_OK
+
+FLUSHING/other     
+  Illegal.
+  Return value = BZ_SEQUENCE_ERROR
+
+FINISHING/BZ_FINISH
+  Compress from next_in to next_out as much as possible,
+  but to not accept any more input.  
+  If all the existing input has been used up and all compressed
+  output has been removed
+    Next state = IDLE; Return value = BZ_STREAM_END
+  else
+    Next state = FINISHING; Return value = BZ_FINISH_OK
+
+FINISHING/other
+  Illegal.
+  Return value = BZ_SEQUENCE_ERROR
+</programlisting>
+
+
+<para>That still looks complicated?  Well, fair enough.  The
+usual sequence of calls for compressing a load of data is:</para>
+
+<orderedlist>
+
+ <listitem><para>Get started with
+  <computeroutput>BZ2_bzCompressInit</computeroutput>.</para></listitem>
+
+ <listitem><para>Shovel data in and shlurp out its compressed form
+  using zero or more calls of
+  <computeroutput>BZ2_bzCompress</computeroutput> with action =
+  <computeroutput>BZ_RUN</computeroutput>.</para></listitem>
+
+ <listitem><para>Finish up. Repeatedly call
+  <computeroutput>BZ2_bzCompress</computeroutput> with action =
+  <computeroutput>BZ_FINISH</computeroutput>, copying out the
+  compressed output, until
+  <computeroutput>BZ_STREAM_END</computeroutput> is
+  returned.</para></listitem> <listitem><para>Close up and go home.  Call
+  <computeroutput>BZ2_bzCompressEnd</computeroutput>.</para></listitem>
+
+</orderedlist>
+
+<para>If the data you want to compress fits into your input
+buffer all at once, you can skip the calls of
+<computeroutput>BZ2_bzCompress ( ..., BZ_RUN )</computeroutput>
+and just do the <computeroutput>BZ2_bzCompress ( ..., BZ_FINISH
+)</computeroutput> calls.</para>
+
+<para>All required memory is allocated by
+<computeroutput>BZ2_bzCompressInit</computeroutput>.  The
+compression library can accept any data at all (obviously).  So
+you shouldn't get any error return values from the
+<computeroutput>BZ2_bzCompress</computeroutput> calls.  If you
+do, they will be
+<computeroutput>BZ_SEQUENCE_ERROR</computeroutput>, and indicate
+a bug in your programming.</para>
+
+<para>Trivial other possible return values:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+  if strm is NULL, or strm->s is NULL
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzCompress-end" xreflabel="BZ2_bzCompressEnd">
+<title>BZ2_bzCompressEnd</title>
+
+<programlisting>
+int BZ2_bzCompressEnd ( bz_stream *strm );
+</programlisting>
+
+<para>Releases all memory associated with a compression
+stream.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_PARAM_ERROR  if strm is NULL or strm->s is NULL
+BZ_OK           otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzDecompress-init" xreflabel="BZ2_bzDecompressInit">
+<title>BZ2_bzDecompressInit</title>
+
+<programlisting>
+int BZ2_bzDecompressInit ( bz_stream *strm, int verbosity, int small );
+</programlisting>
+
+<para>Prepares for decompression.  As with
+<computeroutput>BZ2_bzCompressInit</computeroutput>, a
+<computeroutput>bz_stream</computeroutput> record should be
+allocated and initialised before the call.  Fields
+<computeroutput>bzalloc</computeroutput>,
+<computeroutput>bzfree</computeroutput> and
+<computeroutput>opaque</computeroutput> should be set if a custom
+memory allocator is required, or made
+<computeroutput>NULL</computeroutput> for the normal
+<computeroutput>malloc</computeroutput> /
+<computeroutput>free</computeroutput> routines.  Upon return, the
+internal state will have been initialised, and
+<computeroutput>total_in</computeroutput> and
+<computeroutput>total_out</computeroutput> will be zero.</para>
+
+<para>For the meaning of parameter
+<computeroutput>verbosity</computeroutput>, see
+<computeroutput>BZ2_bzCompressInit</computeroutput>.</para>
+
+<para>If <computeroutput>small</computeroutput> is nonzero, the
+library will use an alternative decompression algorithm which
+uses less memory but at the cost of decompressing more slowly
+(roughly speaking, half the speed, but the maximum memory
+requirement drops to around 2300k).  See <xref linkend="using"/>
+for more information on memory management.</para>
+
+<para>Note that the amount of memory needed to decompress a
+stream cannot be determined until the stream's header has been
+read, so even if
+<computeroutput>BZ2_bzDecompressInit</computeroutput> succeeds, a
+subsequent <computeroutput>BZ2_bzDecompress</computeroutput>
+could fail with
+<computeroutput>BZ_MEM_ERROR</computeroutput>.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if ( small != 0 && small != 1 )
+  or (verbosity <; 0 || verbosity > 4)
+BZ_MEM_ERROR
+  if insufficient memory is available
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzDecompress
+  if BZ_OK was returned
+  no specific action required in case of error
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzDecompress" xreflabel="BZ2_bzDecompress">
+<title>BZ2_bzDecompress</title>
+
+<programlisting>
+int BZ2_bzDecompress ( bz_stream *strm );
+</programlisting>
+
+<para>Provides more input and/out output buffer space for the
+library.  The caller maintains input and output buffers, and uses
+<computeroutput>BZ2_bzDecompress</computeroutput> to transfer
+data between them.</para>
+
+<para>Before each call to
+<computeroutput>BZ2_bzDecompress</computeroutput>,
+<computeroutput>next_in</computeroutput> should point at the
+compressed data, and <computeroutput>avail_in</computeroutput>
+should indicate how many bytes the library may read.
+<computeroutput>BZ2_bzDecompress</computeroutput> updates
+<computeroutput>next_in</computeroutput>,
+<computeroutput>avail_in</computeroutput> and
+<computeroutput>total_in</computeroutput> to reflect the number
+of bytes it has read.</para>
+
+<para>Similarly, <computeroutput>next_out</computeroutput> should
+point to a buffer in which the uncompressed output is to be
+placed, with <computeroutput>avail_out</computeroutput>
+indicating how much output space is available.
+<computeroutput>BZ2_bzCompress</computeroutput> updates
+<computeroutput>next_out</computeroutput>,
+<computeroutput>avail_out</computeroutput> and
+<computeroutput>total_out</computeroutput> to reflect the number
+of bytes output.</para>
+
+<para>You may provide and remove as little or as much data as you
+like on each call of
+<computeroutput>BZ2_bzDecompress</computeroutput>.  In the limit,
+it is acceptable to supply and remove data one byte at a time,
+although this would be terribly inefficient.  You should always
+ensure that at least one byte of output space is available at
+each call.</para>
+
+<para>Use of <computeroutput>BZ2_bzDecompress</computeroutput> is
+simpler than
+<computeroutput>BZ2_bzCompress</computeroutput>.</para>
+
+<para>You should provide input and remove output as described
+above, and repeatedly call
+<computeroutput>BZ2_bzDecompress</computeroutput> until
+<computeroutput>BZ_STREAM_END</computeroutput> is returned.
+Appearance of <computeroutput>BZ_STREAM_END</computeroutput>
+denotes that <computeroutput>BZ2_bzDecompress</computeroutput>
+has detected the logical end of the compressed stream.
+<computeroutput>BZ2_bzDecompress</computeroutput> will not
+produce <computeroutput>BZ_STREAM_END</computeroutput> until all
+output data has been placed into the output buffer, so once
+<computeroutput>BZ_STREAM_END</computeroutput> appears, you are
+guaranteed to have available all the decompressed output, and
+<computeroutput>BZ2_bzDecompressEnd</computeroutput> can safely
+be called.</para>
+
+<para>If case of an error return value, you should call
+<computeroutput>BZ2_bzDecompressEnd</computeroutput> to clean up
+and release memory.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+  if strm is NULL or strm->s is NULL
+  or strm->avail_out < 1
+BZ_DATA_ERROR
+  if a data integrity error is detected in the compressed stream
+BZ_DATA_ERROR_MAGIC
+  if the compressed stream doesn't begin with the right magic bytes
+BZ_MEM_ERROR
+  if there wasn't enough memory available
+BZ_STREAM_END
+  if the logical end of the data stream was detected and all
+  output in has been consumed, eg s-->avail_out > 0
+BZ_OK
+  otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzDecompress
+  if BZ_OK was returned
+BZ2_bzDecompressEnd
+  otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzDecompress-end" xreflabel="BZ2_bzDecompressEnd">
+<title>BZ2_bzDecompressEnd</title>
+
+<programlisting>
+int BZ2_bzDecompressEnd ( bz_stream *strm );
+</programlisting>
+
+<para>Releases all memory associated with a decompression
+stream.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+  if strm is NULL or strm->s is NULL
+BZ_OK
+  otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+  None.
+</programlisting>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="hl-interface" xreflabel="High-level interface">
+<title>High-level interface</title>
+
+<para>This interface provides functions for reading and writing
+<computeroutput>bzip2</computeroutput> format files.  First, some
+general points.</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para>All of the functions take an
+  <computeroutput>int*</computeroutput> first argument,
+  <computeroutput>bzerror</computeroutput>.  After each call,
+  <computeroutput>bzerror</computeroutput> should be consulted
+  first to determine the outcome of the call.  If
+  <computeroutput>bzerror</computeroutput> is
+  <computeroutput>BZ_OK</computeroutput>, the call completed
+  successfully, and only then should the return value of the
+  function (if any) be consulted.  If
+  <computeroutput>bzerror</computeroutput> is
+  <computeroutput>BZ_IO_ERROR</computeroutput>, there was an
+  error reading/writing the underlying compressed file, and you
+  should then consult <computeroutput>errno</computeroutput> /
+  <computeroutput>perror</computeroutput> to determine the cause
+  of the difficulty.  <computeroutput>bzerror</computeroutput>
+  may also be set to various other values; precise details are
+  given on a per-function basis below.</para></listitem>
+
+ <listitem><para>If <computeroutput>bzerror</computeroutput> indicates
+  an error (ie, anything except
+  <computeroutput>BZ_OK</computeroutput> and
+  <computeroutput>BZ_STREAM_END</computeroutput>), you should
+  immediately call
+  <computeroutput>BZ2_bzReadClose</computeroutput> (or
+  <computeroutput>BZ2_bzWriteClose</computeroutput>, depending on
+  whether you are attempting to read or to write) to free up all
+  resources associated with the stream.  Once an error has been
+  indicated, behaviour of all calls except
+  <computeroutput>BZ2_bzReadClose</computeroutput>
+  (<computeroutput>BZ2_bzWriteClose</computeroutput>) is
+  undefined.  The implication is that (1)
+  <computeroutput>bzerror</computeroutput> should be checked
+  after each call, and (2) if
+  <computeroutput>bzerror</computeroutput> indicates an error,
+  <computeroutput>BZ2_bzReadClose</computeroutput>
+  (<computeroutput>BZ2_bzWriteClose</computeroutput>) should then
+  be called to clean up.</para></listitem>
+
+ <listitem><para>The <computeroutput>FILE*</computeroutput> arguments
+  passed to <computeroutput>BZ2_bzReadOpen</computeroutput> /
+  <computeroutput>BZ2_bzWriteOpen</computeroutput> should be set
+  to binary mode.  Most Unix systems will do this by default, but
+  other platforms, including Windows and Mac, will not.  If you
+  omit this, you may encounter problems when moving code to new
+  platforms.</para></listitem>
+
+ <listitem><para>Memory allocation requests are handled by
+  <computeroutput>malloc</computeroutput> /
+  <computeroutput>free</computeroutput>.  At present there is no
+  facility for user-defined memory allocators in the file I/O
+  functions (could easily be added, though).</para></listitem>
+
+</itemizedlist>
+
+
+
+<sect2 id="bzreadopen" xreflabel="BZ2_bzReadOpen">
+<title>BZ2_bzReadOpen</title>
+
+<programlisting>
+typedef void BZFILE;
+
+BZFILE *BZ2_bzReadOpen( int *bzerror, FILE *f, 
+                        int verbosity, int small,
+                        void *unused, int nUnused );
+</programlisting>
+
+<para>Prepare to read compressed data from file handle
+<computeroutput>f</computeroutput>.
+<computeroutput>f</computeroutput> should refer to a file which
+has been opened for reading, and for which the error indicator
+(<computeroutput>ferror(f)</computeroutput>)is not set.  If
+<computeroutput>small</computeroutput> is 1, the library will try
+to decompress using less memory, at the expense of speed.</para>
+
+<para>For reasons explained below,
+<computeroutput>BZ2_bzRead</computeroutput> will decompress the
+<computeroutput>nUnused</computeroutput> bytes starting at
+<computeroutput>unused</computeroutput>, before starting to read
+from the file <computeroutput>f</computeroutput>.  At most
+<computeroutput>BZ_MAX_UNUSED</computeroutput> bytes may be
+supplied like this.  If this facility is not required, you should
+pass <computeroutput>NULL</computeroutput> and
+<computeroutput>0</computeroutput> for
+<computeroutput>unused</computeroutput> and
+n<computeroutput>Unused</computeroutput> respectively.</para>
+
+<para>For the meaning of parameters
+<computeroutput>small</computeroutput> and
+<computeroutput>verbosity</computeroutput>, see
+<computeroutput>BZ2_bzDecompressInit</computeroutput>.</para>
+
+<para>The amount of memory needed to decompress a file cannot be
+determined until the file's header has been read.  So it is
+possible that <computeroutput>BZ2_bzReadOpen</computeroutput>
+returns <computeroutput>BZ_OK</computeroutput> but a subsequent
+call of <computeroutput>BZ2_bzRead</computeroutput> will return
+<computeroutput>BZ_MEM_ERROR</computeroutput>.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if f is NULL
+  or small is neither 0 nor 1
+  or ( unused == NULL && nUnused != 0 )
+  or ( unused != NULL && !(0 <= nUnused <= BZ_MAX_UNUSED) )
+BZ_IO_ERROR
+  if ferror(f) is nonzero
+BZ_MEM_ERROR
+  if insufficient memory is available
+BZ_OK
+  otherwise.
+</programlisting>
+
+<para>Possible return values:</para>
+
+<programlisting>
+Pointer to an abstract BZFILE
+  if bzerror is BZ_OK
+NULL
+  otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzRead
+  if bzerror is BZ_OK
+BZ2_bzClose
+  otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzread" xreflabel="BZ2_bzRead">
+<title>BZ2_bzRead</title>
+
+<programlisting>
+int BZ2_bzRead ( int *bzerror, BZFILE *b, void *buf, int len );
+</programlisting>
+
+<para>Reads up to <computeroutput>len</computeroutput>
+(uncompressed) bytes from the compressed file
+<computeroutput>b</computeroutput> into the buffer
+<computeroutput>buf</computeroutput>.  If the read was
+successful, <computeroutput>bzerror</computeroutput> is set to
+<computeroutput>BZ_OK</computeroutput> and the number of bytes
+read is returned.  If the logical end-of-stream was detected,
+<computeroutput>bzerror</computeroutput> will be set to
+<computeroutput>BZ_STREAM_END</computeroutput>, and the number of
+bytes read is returned.  All other
+<computeroutput>bzerror</computeroutput> values denote an
+error.</para>
+
+<para><computeroutput>BZ2_bzRead</computeroutput> will supply
+<computeroutput>len</computeroutput> bytes, unless the logical
+stream end is detected or an error occurs.  Because of this, it
+is possible to detect the stream end by observing when the number
+of bytes returned is less than the number requested.
+Nevertheless, this is regarded as inadvisable; you should instead
+check <computeroutput>bzerror</computeroutput> after every call
+and watch out for
+<computeroutput>BZ_STREAM_END</computeroutput>.</para>
+
+<para>Internally, <computeroutput>BZ2_bzRead</computeroutput>
+copies data from the compressed file in chunks of size
+<computeroutput>BZ_MAX_UNUSED</computeroutput> bytes before
+decompressing it.  If the file contains more bytes than strictly
+needed to reach the logical end-of-stream,
+<computeroutput>BZ2_bzRead</computeroutput> will almost certainly
+read some of the trailing data before signalling
+<computeroutput>BZ_SEQUENCE_END</computeroutput>.  To collect the
+read but unused data once
+<computeroutput>BZ_SEQUENCE_END</computeroutput> has appeared,
+call <computeroutput>BZ2_bzReadGetUnused</computeroutput>
+immediately before
+<computeroutput>BZ2_bzReadClose</computeroutput>.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+  if b is NULL or buf is NULL or len < 0
+BZ_SEQUENCE_ERROR
+  if b was opened with BZ2_bzWriteOpen
+BZ_IO_ERROR
+  if there is an error reading from the compressed file
+BZ_UNEXPECTED_EOF
+  if the compressed file ended before 
+  the logical end-of-stream was detected
+BZ_DATA_ERROR
+  if a data integrity error was detected in the compressed stream
+BZ_DATA_ERROR_MAGIC
+  if the stream does not begin with the requisite header bytes 
+  (ie, is not a bzip2 data file).  This is really 
+  a special case of BZ_DATA_ERROR.
+BZ_MEM_ERROR
+  if insufficient memory was available
+BZ_STREAM_END
+  if the logical end of stream was detected.
+BZ_OK
+  otherwise.
+</programlisting>
+
+<para>Possible return values:</para>
+
+<programlisting>
+number of bytes read
+  if bzerror is BZ_OK or BZ_STREAM_END
+undefined
+  otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+collect data from buf, then BZ2_bzRead or BZ2_bzReadClose
+  if bzerror is BZ_OK
+collect data from buf, then BZ2_bzReadClose or BZ2_bzReadGetUnused
+  if bzerror is BZ_SEQUENCE_END
+BZ2_bzReadClose
+  otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzreadgetunused" xreflabel="BZ2_bzReadGetUnused">
+<title>BZ2_bzReadGetUnused</title>
+
+<programlisting>
+void BZ2_bzReadGetUnused( int* bzerror, BZFILE *b, 
+                          void** unused, int* nUnused );
+</programlisting>
+
+<para>Returns data which was read from the compressed file but
+was not needed to get to the logical end-of-stream.
+<computeroutput>*unused</computeroutput> is set to the address of
+the data, and <computeroutput>*nUnused</computeroutput> to the
+number of bytes.  <computeroutput>*nUnused</computeroutput> will
+be set to a value between <computeroutput>0</computeroutput> and
+<computeroutput>BZ_MAX_UNUSED</computeroutput> inclusive.</para>
+
+<para>This function may only be called once
+<computeroutput>BZ2_bzRead</computeroutput> has signalled
+<computeroutput>BZ_STREAM_END</computeroutput> but before
+<computeroutput>BZ2_bzReadClose</computeroutput>.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+  if b is NULL
+  or unused is NULL or nUnused is NULL
+BZ_SEQUENCE_ERROR
+  if BZ_STREAM_END has not been signalled
+  or if b was opened with BZ2_bzWriteOpen
+BZ_OK
+  otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzReadClose
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzreadclose" xreflabel="BZ2_bzReadClose">
+<title>BZ2_bzReadClose</title>
+
+<programlisting>
+void BZ2_bzReadClose ( int *bzerror, BZFILE *b );
+</programlisting>
+
+<para>Releases all memory pertaining to the compressed file
+<computeroutput>b</computeroutput>.
+<computeroutput>BZ2_bzReadClose</computeroutput> does not call
+<computeroutput>fclose</computeroutput> on the underlying file
+handle, so you should do that yourself if appropriate.
+<computeroutput>BZ2_bzReadClose</computeroutput> should be called
+to clean up after all error situations.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_SEQUENCE_ERROR
+  if b was opened with BZ2_bzOpenWrite
+BZ_OK
+  otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+none
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzwriteopen" xreflabel="BZ2_bzWriteOpen">
+<title>BZ2_bzWriteOpen</title>
+
+<programlisting>
+BZFILE *BZ2_bzWriteOpen( int *bzerror, FILE *f, 
+                         int blockSize100k, int verbosity,
+                         int workFactor );
+</programlisting>
+
+<para>Prepare to write compressed data to file handle
+<computeroutput>f</computeroutput>.
+<computeroutput>f</computeroutput> should refer to a file which
+has been opened for writing, and for which the error indicator
+(<computeroutput>ferror(f)</computeroutput>)is not set.</para>
+
+<para>For the meaning of parameters
+<computeroutput>blockSize100k</computeroutput>,
+<computeroutput>verbosity</computeroutput> and
+<computeroutput>workFactor</computeroutput>, see
+<computeroutput>BZ2_bzCompressInit</computeroutput>.</para>
+
+<para>All required memory is allocated at this stage, so if the
+call completes successfully,
+<computeroutput>BZ_MEM_ERROR</computeroutput> cannot be signalled
+by a subsequent call to
+<computeroutput>BZ2_bzWrite</computeroutput>.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if f is NULL
+  or blockSize100k < 1 or blockSize100k > 9
+BZ_IO_ERROR
+  if ferror(f) is nonzero
+BZ_MEM_ERROR
+  if insufficient memory is available
+BZ_OK
+  otherwise
+</programlisting>
+
+<para>Possible return values:</para>
+
+<programlisting>
+Pointer to an abstract BZFILE
+  if bzerror is BZ_OK
+NULL
+  otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzWrite
+  if bzerror is BZ_OK
+  (you could go directly to BZ2_bzWriteClose, but this would be pretty pointless)
+BZ2_bzWriteClose
+  otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzwrite" xreflabel="BZ2_bzWrite">
+<title>BZ2_bzWrite</title>
+
+<programlisting>
+void BZ2_bzWrite ( int *bzerror, BZFILE *b, void *buf, int len );
+</programlisting>
+
+<para>Absorbs <computeroutput>len</computeroutput> bytes from the
+buffer <computeroutput>buf</computeroutput>, eventually to be
+compressed and written to the file.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+  if b is NULL or buf is NULL or len < 0
+BZ_SEQUENCE_ERROR
+  if b was opened with BZ2_bzReadOpen
+BZ_IO_ERROR
+  if there is an error writing the compressed file.
+BZ_OK
+  otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzwriteclose" xreflabel="BZ2_bzWriteClose">
+<title>BZ2_bzWriteClose</title>
+
+<programlisting>
+void BZ2_bzWriteClose( int *bzerror, BZFILE* f,
+                       int abandon,
+                       unsigned int* nbytes_in,
+                       unsigned int* nbytes_out );
+
+void BZ2_bzWriteClose64( int *bzerror, BZFILE* f,
+                         int abandon,
+                         unsigned int* nbytes_in_lo32,
+                         unsigned int* nbytes_in_hi32,
+                         unsigned int* nbytes_out_lo32,
+                         unsigned int* nbytes_out_hi32 );
+</programlisting>
+
+<para>Compresses and flushes to the compressed file all data so
+far supplied by <computeroutput>BZ2_bzWrite</computeroutput>.
+The logical end-of-stream markers are also written, so subsequent
+calls to <computeroutput>BZ2_bzWrite</computeroutput> are
+illegal.  All memory associated with the compressed file
+<computeroutput>b</computeroutput> is released.
+<computeroutput>fflush</computeroutput> is called on the
+compressed file, but it is not
+<computeroutput>fclose</computeroutput>'d.</para>
+
+<para>If <computeroutput>BZ2_bzWriteClose</computeroutput> is
+called to clean up after an error, the only action is to release
+the memory.  The library records the error codes issued by
+previous calls, so this situation will be detected automatically.
+There is no attempt to complete the compression operation, nor to
+<computeroutput>fflush</computeroutput> the compressed file.  You
+can force this behaviour to happen even in the case of no error,
+by passing a nonzero value to
+<computeroutput>abandon</computeroutput>.</para>
+
+<para>If <computeroutput>nbytes_in</computeroutput> is non-null,
+<computeroutput>*nbytes_in</computeroutput> will be set to be the
+total volume of uncompressed data handled.  Similarly,
+<computeroutput>nbytes_out</computeroutput> will be set to the
+total volume of compressed data written.  For compatibility with
+older versions of the library,
+<computeroutput>BZ2_bzWriteClose</computeroutput> only yields the
+lower 32 bits of these counts.  Use
+<computeroutput>BZ2_bzWriteClose64</computeroutput> if you want
+the full 64 bit counts.  These two functions are otherwise
+absolutely identical.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_SEQUENCE_ERROR
+  if b was opened with BZ2_bzReadOpen
+BZ_IO_ERROR
+  if there is an error writing the compressed file
+BZ_OK
+  otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="embed" xreflabel="Handling embedded compressed data streams">
+<title>Handling embedded compressed data streams</title>
+
+<para>The high-level library facilitates use of
+<computeroutput>bzip2</computeroutput> data streams which form
+some part of a surrounding, larger data stream.</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para>For writing, the library takes an open file handle,
+  writes compressed data to it,
+  <computeroutput>fflush</computeroutput>es it but does not
+  <computeroutput>fclose</computeroutput> it.  The calling
+  application can write its own data before and after the
+  compressed data stream, using that same file handle.</para></listitem>
+
+ <listitem><para>Reading is more complex, and the facilities are not as
+  general as they could be since generality is hard to reconcile
+  with efficiency.  <computeroutput>BZ2_bzRead</computeroutput>
+  reads from the compressed file in blocks of size
+  <computeroutput>BZ_MAX_UNUSED</computeroutput> bytes, and in
+  doing so probably will overshoot the logical end of compressed
+  stream.  To recover this data once decompression has ended,
+  call <computeroutput>BZ2_bzReadGetUnused</computeroutput> after
+  the last call of <computeroutput>BZ2_bzRead</computeroutput>
+  (the one returning
+  <computeroutput>BZ_STREAM_END</computeroutput>) but before
+  calling
+  <computeroutput>BZ2_bzReadClose</computeroutput>.</para></listitem>
+
+</itemizedlist>
+
+<para>This mechanism makes it easy to decompress multiple
+<computeroutput>bzip2</computeroutput> streams placed end-to-end.
+As the end of one stream, when
+<computeroutput>BZ2_bzRead</computeroutput> returns
+<computeroutput>BZ_STREAM_END</computeroutput>, call
+<computeroutput>BZ2_bzReadGetUnused</computeroutput> to collect
+the unused data (copy it into your own buffer somewhere).  That
+data forms the start of the next compressed stream.  To start
+uncompressing that next stream, call
+<computeroutput>BZ2_bzReadOpen</computeroutput> again, feeding in
+the unused data via the <computeroutput>unused</computeroutput> /
+<computeroutput>nUnused</computeroutput> parameters.  Keep doing
+this until <computeroutput>BZ_STREAM_END</computeroutput> return
+coincides with the physical end of file
+(<computeroutput>feof(f)</computeroutput>).  In this situation
+<computeroutput>BZ2_bzReadGetUnused</computeroutput> will of
+course return no data.</para>
+
+<para>This should give some feel for how the high-level interface
+can be used.  If you require extra flexibility, you'll have to
+bite the bullet and get to grips with the low-level
+interface.</para>
+
+</sect2>
+
+
+<sect2 id="std-rdwr" xreflabel="Standard file-reading/writing code">
+<title>Standard file-reading/writing code</title>
+
+<para>Here's how you'd write data to a compressed file:</para>
+
+<programlisting>
+FILE*   f;
+BZFILE* b;
+int     nBuf;
+char    buf[ /* whatever size you like */ ];
+int     bzerror;
+int     nWritten;
+
+f = fopen ( "myfile.bz2", "w" );
+if ( !f ) {
+ /* handle error */
+}
+b = BZ2_bzWriteOpen( &bzerror, f, 9 );
+if (bzerror != BZ_OK) {
+ BZ2_bzWriteClose ( b );
+ /* handle error */
+}
+
+while ( /* condition */ ) {
+ /* get data to write into buf, and set nBuf appropriately */
+ nWritten = BZ2_bzWrite ( &bzerror, b, buf, nBuf );
+ if (bzerror == BZ_IO_ERROR) { 
+   BZ2_bzWriteClose ( &bzerror, b );
+   /* handle error */
+ }
+}
+
+BZ2_bzWriteClose( &bzerror, b );
+if (bzerror == BZ_IO_ERROR) {
+ /* handle error */
+}
+</programlisting>
+
+<para>And to read from a compressed file:</para>
+
+<programlisting>
+FILE*   f;
+BZFILE* b;
+int     nBuf;
+char    buf[ /* whatever size you like */ ];
+int     bzerror;
+int     nWritten;
+
+f = fopen ( "myfile.bz2", "r" );
+if ( !f ) {
+  /* handle error */
+}
+b = BZ2_bzReadOpen ( &bzerror, f, 0, NULL, 0 );
+if ( bzerror != BZ_OK ) {
+  BZ2_bzReadClose ( &bzerror, b );
+  /* handle error */
+}
+
+bzerror = BZ_OK;
+while ( bzerror == BZ_OK && /* arbitrary other conditions */) {
+  nBuf = BZ2_bzRead ( &bzerror, b, buf, /* size of buf */ );
+  if ( bzerror == BZ_OK ) {
+    /* do something with buf[0 .. nBuf-1] */
+  }
+}
+if ( bzerror != BZ_STREAM_END ) {
+   BZ2_bzReadClose ( &bzerror, b );
+   /* handle error */
+} else {
+   BZ2_bzReadClose ( &bzerror, b );
+}
+</programlisting>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="util-fns" xreflabel="Utility functions">
+<title>Utility functions</title>
+
+
+<sect2 id="bzbufftobuffcompress" xreflabel="BZ2_bzBuffToBuffCompress">
+<title>BZ2_bzBuffToBuffCompress</title>
+
+<programlisting>
+int BZ2_bzBuffToBuffCompress( char*         dest,
+                              unsigned int* destLen,
+                              char*         source,
+                              unsigned int  sourceLen,
+                              int           blockSize100k,
+                              int           verbosity,
+                              int           workFactor );
+</programlisting>
+
+<para>Attempts to compress the data in <computeroutput>source[0
+.. sourceLen-1]</computeroutput> into the destination buffer,
+<computeroutput>dest[0 .. *destLen-1]</computeroutput>.  If the
+destination buffer is big enough,
+<computeroutput>*destLen</computeroutput> is set to the size of
+the compressed data, and <computeroutput>BZ_OK</computeroutput>
+is returned.  If the compressed data won't fit,
+<computeroutput>*destLen</computeroutput> is unchanged, and
+<computeroutput>BZ_OUTBUFF_FULL</computeroutput> is
+returned.</para>
+
+<para>Compression in this manner is a one-shot event, done with a
+single call to this function.  The resulting compressed data is a
+complete <computeroutput>bzip2</computeroutput> format data
+stream.  There is no mechanism for making additional calls to
+provide extra input data.  If you want that kind of mechanism,
+use the low-level interface.</para>
+
+<para>For the meaning of parameters
+<computeroutput>blockSize100k</computeroutput>,
+<computeroutput>verbosity</computeroutput> and
+<computeroutput>workFactor</computeroutput>, see
+<computeroutput>BZ2_bzCompressInit</computeroutput>.</para>
+
+<para>To guarantee that the compressed data will fit in its
+buffer, allocate an output buffer of size 1% larger than the
+uncompressed data, plus six hundred extra bytes.</para>
+
+<para><computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput>
+will not write data at or beyond
+<computeroutput>dest[*destLen]</computeroutput>, even in case of
+buffer overflow.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if dest is NULL or destLen is NULL
+  or blockSize100k < 1 or blockSize100k > 9
+  or verbosity < 0 or verbosity > 4
+  or workFactor < 0 or workFactor > 250
+BZ_MEM_ERROR
+  if insufficient memory is available 
+BZ_OUTBUFF_FULL
+  if the size of the compressed data exceeds *destLen
+BZ_OK
+  otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzbufftobuffdecompress" xreflabel="BZ2_bzBuffToBuffDecompress">
+<title>BZ2_bzBuffToBuffDecompress</title>
+
+<programlisting>
+int BZ2_bzBuffToBuffDecompress( char*         dest,
+                                unsigned int* destLen,
+                                char*         source,
+                                unsigned int  sourceLen,
+                                int           small,
+                                int           verbosity );
+</programlisting>
+
+<para>Attempts to decompress the data in <computeroutput>source[0
+.. sourceLen-1]</computeroutput> into the destination buffer,
+<computeroutput>dest[0 .. *destLen-1]</computeroutput>.  If the
+destination buffer is big enough,
+<computeroutput>*destLen</computeroutput> is set to the size of
+the uncompressed data, and <computeroutput>BZ_OK</computeroutput>
+is returned.  If the compressed data won't fit,
+<computeroutput>*destLen</computeroutput> is unchanged, and
+<computeroutput>BZ_OUTBUFF_FULL</computeroutput> is
+returned.</para>
+
+<para><computeroutput>source</computeroutput> is assumed to hold
+a complete <computeroutput>bzip2</computeroutput> format data
+stream.
+<computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput> tries
+to decompress the entirety of the stream into the output
+buffer.</para>
+
+<para>For the meaning of parameters
+<computeroutput>small</computeroutput> and
+<computeroutput>verbosity</computeroutput>, see
+<computeroutput>BZ2_bzDecompressInit</computeroutput>.</para>
+
+<para>Because the compression ratio of the compressed data cannot
+be known in advance, there is no easy way to guarantee that the
+output buffer will be big enough.  You may of course make
+arrangements in your code to record the size of the uncompressed
+data, but such a mechanism is beyond the scope of this
+library.</para>
+
+<para><computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput>
+will not write data at or beyond
+<computeroutput>dest[*destLen]</computeroutput>, even in case of
+buffer overflow.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+  if the library has been mis-compiled
+BZ_PARAM_ERROR
+  if dest is NULL or destLen is NULL
+  or small != 0 && small != 1
+  or verbosity < 0 or verbosity > 4
+BZ_MEM_ERROR
+  if insufficient memory is available 
+BZ_OUTBUFF_FULL
+  if the size of the compressed data exceeds *destLen
+BZ_DATA_ERROR
+  if a data integrity error was detected in the compressed data
+BZ_DATA_ERROR_MAGIC
+  if the compressed data doesn't begin with the right magic bytes
+BZ_UNEXPECTED_EOF
+  if the compressed data ends unexpectedly
+BZ_OK
+  otherwise
+</programlisting>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="zlib-compat" xreflabel="zlib compatibility functions">
+<title>zlib compatibility functions</title>
+
+<para>Yoshioka Tsuneo has contributed some functions to give
+better <computeroutput>zlib</computeroutput> compatibility.
+These functions are <computeroutput>BZ2_bzopen</computeroutput>,
+<computeroutput>BZ2_bzread</computeroutput>,
+<computeroutput>BZ2_bzwrite</computeroutput>,
+<computeroutput>BZ2_bzflush</computeroutput>,
+<computeroutput>BZ2_bzclose</computeroutput>,
+<computeroutput>BZ2_bzerror</computeroutput> and
+<computeroutput>BZ2_bzlibVersion</computeroutput>.  These
+functions are not (yet) officially part of the library.  If they
+break, you get to keep all the pieces.  Nevertheless, I think
+they work ok.</para>
+
+<programlisting>
+typedef void BZFILE;
+
+const char * BZ2_bzlibVersion ( void );
+</programlisting>
+
+<para>Returns a string indicating the library version.</para>
+
+<programlisting>
+BZFILE * BZ2_bzopen  ( const char *path, const char *mode );
+BZFILE * BZ2_bzdopen ( int        fd,    const char *mode );
+</programlisting>
+
+<para>Opens a <computeroutput>.bz2</computeroutput> file for
+reading or writing, using either its name or a pre-existing file
+descriptor.  Analogous to <computeroutput>fopen</computeroutput>
+and <computeroutput>fdopen</computeroutput>.</para>
+
+<programlisting>
+int BZ2_bzread  ( BZFILE* b, void* buf, int len );
+int BZ2_bzwrite ( BZFILE* b, void* buf, int len );
+</programlisting>
+
+<para>Reads/writes data from/to a previously opened
+<computeroutput>BZFILE</computeroutput>.  Analogous to
+<computeroutput>fread</computeroutput> and
+<computeroutput>fwrite</computeroutput>.</para>
+
+<programlisting>
+int  BZ2_bzflush ( BZFILE* b );
+void BZ2_bzclose ( BZFILE* b );
+</programlisting>
+
+<para>Flushes/closes a <computeroutput>BZFILE</computeroutput>.
+<computeroutput>BZ2_bzflush</computeroutput> doesn't actually do
+anything.  Analogous to <computeroutput>fflush</computeroutput>
+and <computeroutput>fclose</computeroutput>.</para>
+
+<programlisting>
+const char * BZ2_bzerror ( BZFILE *b, int *errnum )
+</programlisting>
+
+<para>Returns a string describing the more recent error status of
+<computeroutput>b</computeroutput>, and also sets
+<computeroutput>*errnum</computeroutput> to its numerical
+value.</para>
+
+</sect1>
+
+
+<sect1 id="stdio-free" 
+       xreflabel="Using the library in a stdio-free environment">
+<title>Using the library in a stdio-free environment</title>
+
+
+<sect2 id="stdio-bye" xreflabel="Getting rid of stdio">
+<title>Getting rid of stdio</title>
+
+<para>In a deeply embedded application, you might want to use
+just the memory-to-memory functions.  You can do this
+conveniently by compiling the library with preprocessor symbol
+<computeroutput>BZ_NO_STDIO</computeroutput> defined.  Doing this
+gives you a library containing only the following eight
+functions:</para>
+
+<para><computeroutput>BZ2_bzCompressInit</computeroutput>,
+<computeroutput>BZ2_bzCompress</computeroutput>,
+<computeroutput>BZ2_bzCompressEnd</computeroutput>
+<computeroutput>BZ2_bzDecompressInit</computeroutput>,
+<computeroutput>BZ2_bzDecompress</computeroutput>,
+<computeroutput>BZ2_bzDecompressEnd</computeroutput>
+<computeroutput>BZ2_bzBuffToBuffCompress</computeroutput>,
+<computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput></para>
+
+<para>When compiled like this, all functions will ignore
+<computeroutput>verbosity</computeroutput> settings.</para>
+
+</sect2>
+
+
+<sect2 id="critical-error" xreflabel="Critical error handling">
+<title>Critical error handling</title>
+
+<para><computeroutput>libbzip2</computeroutput> contains a number
+of internal assertion checks which should, needless to say, never
+be activated.  Nevertheless, if an assertion should fail,
+behaviour depends on whether or not the library was compiled with
+<computeroutput>BZ_NO_STDIO</computeroutput> set.</para>
+
+<para>For a normal compile, an assertion failure yields the
+message:</para>
+
+<blockquote>
+<para>bzip2/libbzip2: internal error number N.</para>
+<para>This is a bug in bzip2/libbzip2, &bz-version; of &bz-date;.
+Please report it to me at: &bz-email;.  If this happened
+when you were using some program which uses libbzip2 as a
+component, you should also report this bug to the author(s)
+of that program.  Please make an effort to report this bug;
+timely and accurate bug reports eventually lead to higher
+quality software.  Thanks.  Julian Seward, &bz-date;.
+</para></blockquote>
+
+<para>where <computeroutput>N</computeroutput> is some error code
+number.  If <computeroutput>N == 1007</computeroutput>, it also
+prints some extra text advising the reader that unreliable memory
+is often associated with internal error 1007. (This is a
+frequently-observed-phenomenon with versions 1.0.0/1.0.1).</para>
+
+<para><computeroutput>exit(3)</computeroutput> is then
+called.</para>
+
+<para>For a <computeroutput>stdio</computeroutput>-free library,
+assertion failures result in a call to a function declared
+as:</para>
+
+<programlisting>
+extern void bz_internal_error ( int errcode );
+</programlisting>
+
+<para>The relevant code is passed as a parameter.  You should
+supply such a function.</para>
+
+<para>In either case, once an assertion failure has occurred, any
+<computeroutput>bz_stream</computeroutput> records involved can
+be regarded as invalid.  You should not attempt to resume normal
+operation with them.</para>
+
+<para>You may, of course, change critical error handling to suit
+your needs.  As I said above, critical errors indicate bugs in
+the library and should not occur.  All "normal" error situations
+are indicated via error return codes from functions, and can be
+recovered from.</para>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="win-dll" xreflabel="Making a Windows DLL">
+<title>Making a Windows DLL</title>
+
+<para>Everything related to Windows has been contributed by
+Yoshioka Tsuneo
+(<computeroutput>tsuneo@rr.iij4u.or.jp</computeroutput>), so
+you should send your queries to him (but perhaps Cc: me,
+<computeroutput>&bz-email;</computeroutput>).</para>
+
+<para>My vague understanding of what to do is: using Visual C++
+5.0, open the project file
+<computeroutput>libbz2.dsp</computeroutput>, and build.  That's
+all.</para>
+
+<para>If you can't open the project file for some reason, make a
+new one, naming these files:
+<computeroutput>blocksort.c</computeroutput>,
+<computeroutput>bzlib.c</computeroutput>,
+<computeroutput>compress.c</computeroutput>,
+<computeroutput>crctable.c</computeroutput>,
+<computeroutput>decompress.c</computeroutput>,
+<computeroutput>huffman.c</computeroutput>,
+<computeroutput>randtable.c</computeroutput> and
+<computeroutput>libbz2.def</computeroutput>.  You will also need
+to name the header files <computeroutput>bzlib.h</computeroutput>
+and <computeroutput>bzlib_private.h</computeroutput>.</para>
+
+<para>If you don't use VC++, you may need to define the
+proprocessor symbol
+<computeroutput>_WIN32</computeroutput>.</para>
+
+<para>Finally, <computeroutput>dlltest.c</computeroutput> is a
+sample program using the DLL.  It has a project file,
+<computeroutput>dlltest.dsp</computeroutput>.</para>
+
+<para>If you just want a makefile for Visual C, have a look at
+<computeroutput>makefile.msc</computeroutput>.</para>
+
+<para>Be aware that if you compile
+<computeroutput>bzip2</computeroutput> itself on Win32, you must
+set <computeroutput>BZ_UNIX</computeroutput> to 0 and
+<computeroutput>BZ_LCCWIN32</computeroutput> to 1, in the file
+<computeroutput>bzip2.c</computeroutput>, before compiling.
+Otherwise the resulting binary won't work correctly.</para>
+
+<para>I haven't tried any of this stuff myself, but it all looks
+plausible.</para>
+
+</sect1>
+
+</chapter>
+
+
+
+<chapter id="misc" xreflabel="Miscellanea">
+<title>Miscellanea</title>
+
+<para>These are just some random thoughts of mine.  Your mileage
+may vary.</para>
+
+
+<sect1 id="limits" xreflabel="Limitations of the compressed file format">
+<title>Limitations of the compressed file format</title>
+
+<para><computeroutput>bzip2-1.0.X</computeroutput>,
+<computeroutput>0.9.5</computeroutput> and
+<computeroutput>0.9.0</computeroutput> use exactly the same file
+format as the original version,
+<computeroutput>bzip2-0.1</computeroutput>.  This decision was
+made in the interests of stability.  Creating yet another
+incompatible compressed file format would create further
+confusion and disruption for users.</para>
+
+<para>Nevertheless, this is not a painless decision.  Development
+work since the release of
+<computeroutput>bzip2-0.1</computeroutput> in August 1997 has
+shown complexities in the file format which slow down
+decompression and, in retrospect, are unnecessary.  These
+are:</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para>The run-length encoder, which is the first of the
+   compression transformations, is entirely irrelevant.  The
+   original purpose was to protect the sorting algorithm from the
+   very worst case input: a string of repeated symbols.  But
+   algorithm steps Q6a and Q6b in the original Burrows-Wheeler
+   technical report (SRC-124) show how repeats can be handled
+   without difficulty in block sorting.</para></listitem>
+
+ <listitem><para>The randomisation mechanism doesn't really need to be
+   there.  Udi Manber and Gene Myers published a suffix array
+   construction algorithm a few years back, which can be employed
+   to sort any block, no matter how repetitive, in O(N log N)
+   time.  Subsequent work by Kunihiko Sadakane has produced a
+   derivative O(N (log N)^2) algorithm which usually outperforms
+   the Manber-Myers algorithm.</para>
+
+   <para>I could have changed to Sadakane's algorithm, but I find
+   it to be slower than <computeroutput>bzip2</computeroutput>'s
+   existing algorithm for most inputs, and the randomisation
+   mechanism protects adequately against bad cases.  I didn't
+   think it was a good tradeoff to make.  Partly this is due to
+   the fact that I was not flooded with email complaints about
+   <computeroutput>bzip2-0.1</computeroutput>'s performance on
+   repetitive data, so perhaps it isn't a problem for real
+   inputs.</para>
+
+   <para>Probably the best long-term solution, and the one I have
+   incorporated into 0.9.5 and above, is to use the existing
+   sorting algorithm initially, and fall back to a O(N (log N)^2)
+   algorithm if the standard algorithm gets into
+   difficulties.</para></listitem>
+
+  <listitem><para>The compressed file format was never designed to be
+   handled by a library, and I have had to jump though some hoops
+   to produce an efficient implementation of decompression.  It's
+   a bit hairy.  Try passing
+   <computeroutput>decompress.c</computeroutput> through the C
+   preprocessor and you'll see what I mean.  Much of this
+   complexity could have been avoided if the compressed size of
+   each block of data was recorded in the data stream.</para></listitem>
+
+ <listitem><para>An Adler-32 checksum, rather than a CRC32 checksum,
+   would be faster to compute.</para></listitem>
+
+</itemizedlist>
+
+<para>It would be fair to say that the
+<computeroutput>bzip2</computeroutput> format was frozen before I
+properly and fully understood the performance consequences of
+doing so.</para>
+
+<para>Improvements which I was able to incorporate into 0.9.0,
+despite using the same file format, are:</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para>Single array implementation of the inverse BWT.  This
+  significantly speeds up decompression, presumably because it
+  reduces the number of cache misses.</para></listitem>
+
+ <listitem><para>Faster inverse MTF transform for large MTF values.
+  The new implementation is based on the notion of sliding blocks
+  of values.</para></listitem>
+
+ <listitem><para><computeroutput>bzip2-0.9.0</computeroutput> now reads
+  and writes files with <computeroutput>fread</computeroutput>
+  and <computeroutput>fwrite</computeroutput>; version 0.1 used
+  <computeroutput>putc</computeroutput> and
+  <computeroutput>getc</computeroutput>.  Duh!  Well, you live
+  and learn.</para></listitem>
+
+</itemizedlist>
+
+<para>Further ahead, it would be nice to be able to do random
+access into files.  This will require some careful design of
+compressed file formats.</para>
+
+</sect1>
+
+
+<sect1 id="port-issues" xreflabel="Portability issues">
+<title>Portability issues</title>
+
+<para>After some consideration, I have decided not to use GNU
+<computeroutput>autoconf</computeroutput> to configure 0.9.5 or
+1.0.</para>
+
+<para><computeroutput>autoconf</computeroutput>, admirable and
+wonderful though it is, mainly assists with portability problems
+between Unix-like platforms.  But
+<computeroutput>bzip2</computeroutput> doesn't have much in the
+way of portability problems on Unix; most of the difficulties
+appear when porting to the Mac, or to Microsoft's operating
+systems.  <computeroutput>autoconf</computeroutput> doesn't help
+in those cases, and brings in a whole load of new
+complexity.</para>
+
+<para>Most people should be able to compile the library and
+program under Unix straight out-of-the-box, so to speak,
+especially if you have a version of GNU C available.</para>
+
+<para>There are a couple of
+<computeroutput>__inline__</computeroutput> directives in the
+code.  GNU C (<computeroutput>gcc</computeroutput>) should be
+able to handle them.  If you're not using GNU C, your C compiler
+shouldn't see them at all.  If your compiler does, for some
+reason, see them and doesn't like them, just
+<computeroutput>#define</computeroutput>
+<computeroutput>__inline__</computeroutput> to be
+<computeroutput>/* */</computeroutput>.  One easy way to do this
+is to compile with the flag
+<computeroutput>-D__inline__=</computeroutput>, which should be
+understood by most Unix compilers.</para>
+
+<para>If you still have difficulties, try compiling with the
+macro <computeroutput>BZ_STRICT_ANSI</computeroutput> defined.
+This should enable you to build the library in a strictly ANSI
+compliant environment.  Building the program itself like this is
+dangerous and not supported, since you remove
+<computeroutput>bzip2</computeroutput>'s checks against
+compressing directories, symbolic links, devices, and other
+not-really-a-file entities.  This could cause filesystem
+corruption!</para>
+
+<para>One other thing: if you create a
+<computeroutput>bzip2</computeroutput> binary for public distribution,
+please consider linking it statically (<computeroutput>gcc
+-static</computeroutput>).  This avoids all sorts of library-version
+issues that others may encounter later on.</para>
+
+<para>If you build <computeroutput>bzip2</computeroutput> on
+Win32, you must set <computeroutput>BZ_UNIX</computeroutput> to 0
+and <computeroutput>BZ_LCCWIN32</computeroutput> to 1, in the
+file <computeroutput>bzip2.c</computeroutput>, before compiling.
+Otherwise the resulting binary won't work correctly.</para>
+
+</sect1>
+
+
+<sect1 id="bugs" xreflabel="Reporting bugs">
+<title>Reporting bugs</title>
+
+<para>I tried pretty hard to make sure
+<computeroutput>bzip2</computeroutput> is bug free, both by
+design and by testing.  Hopefully you'll never need to read this
+section for real.</para>
+
+<para>Nevertheless, if <computeroutput>bzip2</computeroutput> dies
+with a segmentation fault, a bus error or an internal assertion
+failure, it will ask you to email me a bug report.  Experience from
+years of feedback of bzip2 users indicates that almost all these
+problems can be traced to either compiler bugs or hardware
+problems.</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para>Recompile the program with no optimisation, and
+  see if it works.  And/or try a different compiler.  I heard all
+  sorts of stories about various flavours of GNU C (and other
+  compilers) generating bad code for
+  <computeroutput>bzip2</computeroutput>, and I've run across two
+  such examples myself.</para>
+
+  <para>2.7.X versions of GNU C are known to generate bad code
+  from time to time, at high optimisation levels.  If you get
+  problems, try using the flags
+  <computeroutput>-O2</computeroutput>
+  <computeroutput>-fomit-frame-pointer</computeroutput>
+  <computeroutput>-fno-strength-reduce</computeroutput>.  You
+  should specifically <emphasis>not</emphasis> use
+  <computeroutput>-funroll-loops</computeroutput>.</para>
+
+  <para>You may notice that the Makefile runs six tests as part
+  of the build process.  If the program passes all of these, it's
+  a pretty good (but not 100%) indication that the compiler has
+  done its job correctly.</para></listitem>
+
+ <listitem><para>If <computeroutput>bzip2</computeroutput>
+  crashes randomly, and the crashes are not repeatable, you may
+  have a flaky memory subsystem.
+  <computeroutput>bzip2</computeroutput> really hammers your
+  memory hierarchy, and if it's a bit marginal, you may get these
+  problems.  Ditto if your disk or I/O subsystem is slowly
+  failing.  Yup, this really does happen.</para>
+
+  <para>Try using a different machine of the same type, and see
+  if you can repeat the problem.</para></listitem>
+
+  <listitem><para>This isn't really a bug, but ... If
+  <computeroutput>bzip2</computeroutput> tells you your file is
+  corrupted on decompression, and you obtained the file via FTP,
+  there is a possibility that you forgot to tell FTP to do a
+  binary mode transfer.  That absolutely will cause the file to
+  be non-decompressible.  You'll have to transfer it
+  again.</para></listitem>
+
+</itemizedlist>
+
+<para>If you've incorporated
+<computeroutput>libbzip2</computeroutput> into your own program
+and are getting problems, please, please, please, check that the
+parameters you are passing in calls to the library, are correct,
+and in accordance with what the documentation says is allowable.
+I have tried to make the library robust against such problems,
+but I'm sure I haven't succeeded.</para>
+
+<para>Finally, if the above comments don't help, you'll have to
+send me a bug report.  Now, it's just amazing how many people
+will send me a bug report saying something like:</para>
+
+<programlisting>
+bzip2 crashed with segmentation fault on my machine
+</programlisting>
+
+<para>and absolutely nothing else.  Needless to say, a such a
+report is <emphasis>totally, utterly, completely and
+comprehensively 100% useless; a waste of your time, my time, and
+net bandwidth</emphasis>.  With no details at all, there's no way
+I can possibly begin to figure out what the problem is.</para>
+
+<para>The rules of the game are: facts, facts, facts.  Don't omit
+them because "oh, they won't be relevant".  At the bare
+minimum:</para>
+
+<programlisting>
+Machine type.  Operating system version.  
+Exact version of bzip2 (do bzip2 -V).  
+Exact version of the compiler used.  
+Flags passed to the compiler.
+</programlisting>
+
+<para>However, the most important single thing that will help me
+is the file that you were trying to compress or decompress at the
+time the problem happened.  Without that, my ability to do
+anything more than speculate about the cause, is limited.</para>
+
+</sect1>
+
+
+<sect1 id="package" xreflabel="Did you get the right package?">
+<title>Did you get the right package?</title>
+
+<para><computeroutput>bzip2</computeroutput> is a resource hog.
+It soaks up large amounts of CPU cycles and memory.  Also, it
+gives very large latencies.  In the worst case, you can feed many
+megabytes of uncompressed data into the library before getting
+any compressed output, so this probably rules out applications
+requiring interactive behaviour.</para>
+
+<para>These aren't faults of my implementation, I hope, but more
+an intrinsic property of the Burrows-Wheeler transform
+(unfortunately).  Maybe this isn't what you want.</para>
+
+<para>If you want a compressor and/or library which is faster,
+uses less memory but gets pretty good compression, and has
+minimal latency, consider Jean-loup Gailly's and Mark Adler's
+work, <computeroutput>zlib-1.2.1</computeroutput> and
+<computeroutput>gzip-1.2.4</computeroutput>.  Look for them at 
+<ulink url="http://www.zlib.org">http://www.zlib.org</ulink> and 
+<ulink url="http://www.gzip.org">http://www.gzip.org</ulink>
+respectively.</para>
+
+<para>For something faster and lighter still, you might try Markus F
+X J Oberhumer's <computeroutput>LZO</computeroutput> real-time
+compression/decompression library, at 
+<ulink url="http://www.oberhumer.com/opensource">http://www.oberhumer.com/opensource</ulink>.</para>
+
+</sect1>
+
+
+
+<sect1 id="reading" xreflabel="Further Reading">
+<title>Further Reading</title>
+
+<para><computeroutput>bzip2</computeroutput> is not research
+work, in the sense that it doesn't present any new ideas.
+Rather, it's an engineering exercise based on existing
+ideas.</para>
+
+<para>Four documents describe essentially all the ideas behind
+<computeroutput>bzip2</computeroutput>:</para>
+
+<literallayout>Michael Burrows and D. J. Wheeler:
+  "A block-sorting lossless data compression algorithm"
+   10th May 1994. 
+   Digital SRC Research Report 124.
+   ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-124.ps.gz
+   If you have trouble finding it, try searching at the
+   New Zealand Digital Library, http://www.nzdl.org.
+
+Daniel S. Hirschberg and Debra A. LeLewer
+  "Efficient Decoding of Prefix Codes"
+   Communications of the ACM, April 1990, Vol 33, Number 4.
+   You might be able to get an electronic copy of this
+   from the ACM Digital Library.
+
+David J. Wheeler
+   Program bred3.c and accompanying document bred3.ps.
+   This contains the idea behind the multi-table Huffman coding scheme.
+   ftp://ftp.cl.cam.ac.uk/users/djw3/
+
+Jon L. Bentley and Robert Sedgewick
+  "Fast Algorithms for Sorting and Searching Strings"
+   Available from Sedgewick's web page,
+   www.cs.princeton.edu/~rs
+</literallayout>
+
+<para>The following paper gives valuable additional insights into
+the algorithm, but is not immediately the basis of any code used
+in bzip2.</para>
+
+<literallayout>Peter Fenwick:
+   Block Sorting Text Compression
+   Proceedings of the 19th Australasian Computer Science Conference,
+     Melbourne, Australia.  Jan 31 - Feb 2, 1996.
+   ftp://ftp.cs.auckland.ac.nz/pub/peter-f/ACSC96paper.ps</literallayout>
+
+<para>Kunihiko Sadakane's sorting algorithm, mentioned above, is
+available from:</para>
+
+<literallayout>http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz
+</literallayout>
+
+<para>The Manber-Myers suffix array construction algorithm is
+described in a paper available from:</para>
+
+<literallayout>http://www.cs.arizona.edu/people/gene/PAPERS/suffix.ps
+</literallayout>
+
+<para>Finally, the following papers document some
+investigations I made into the performance of sorting
+and decompression algorithms:</para>
+
+<literallayout>Julian Seward
+   On the Performance of BWT Sorting Algorithms
+   Proceedings of the IEEE Data Compression Conference 2000
+     Snowbird, Utah.  28-30 March 2000.
+
+Julian Seward
+   Space-time Tradeoffs in the Inverse B-W Transform
+   Proceedings of the IEEE Data Compression Conference 2001
+     Snowbird, Utah.  27-29 March 2001.
+</literallayout>
+
+</sect1>
+
+</chapter>
+
+</book>
diff --git a/bzip2/mk251.c b/bzip2/mk251.c
new file mode 100644 (file)
index 0000000..c9c36f6
--- /dev/null
@@ -0,0 +1,31 @@
+
+/* Spew out a long sequence of the byte 251.  When fed to bzip2
+   versions 1.0.0 or 1.0.1, causes it to die with internal error
+   1007 in blocksort.c.  This assertion misses an extremely rare
+   case, which is fixed in this version (1.0.2) and above.
+*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#include <stdio.h>
+
+int main ()
+{
+   int i;
+   for (i = 0; i < 48500000 ; i++)
+     putchar(251);
+   return 0;
+}
diff --git a/bzip2/randtable.c b/bzip2/randtable.c
new file mode 100644 (file)
index 0000000..6d62459
--- /dev/null
@@ -0,0 +1,84 @@
+
+/*-------------------------------------------------------------*/
+/*--- Table for randomising repetitive blocks               ---*/
+/*---                                           randtable.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#include "bzlib_private.h"
+
+
+/*---------------------------------------------*/
+Int32 BZ2_rNums[512] = { 
+   619, 720, 127, 481, 931, 816, 813, 233, 566, 247, 
+   985, 724, 205, 454, 863, 491, 741, 242, 949, 214, 
+   733, 859, 335, 708, 621, 574, 73, 654, 730, 472, 
+   419, 436, 278, 496, 867, 210, 399, 680, 480, 51, 
+   878, 465, 811, 169, 869, 675, 611, 697, 867, 561, 
+   862, 687, 507, 283, 482, 129, 807, 591, 733, 623, 
+   150, 238, 59, 379, 684, 877, 625, 169, 643, 105, 
+   170, 607, 520, 932, 727, 476, 693, 425, 174, 647, 
+   73, 122, 335, 530, 442, 853, 695, 249, 445, 515, 
+   909, 545, 703, 919, 874, 474, 882, 500, 594, 612, 
+   641, 801, 220, 162, 819, 984, 589, 513, 495, 799, 
+   161, 604, 958, 533, 221, 400, 386, 867, 600, 782, 
+   382, 596, 414, 171, 516, 375, 682, 485, 911, 276, 
+   98, 553, 163, 354, 666, 933, 424, 341, 533, 870, 
+   227, 730, 475, 186, 263, 647, 537, 686, 600, 224, 
+   469, 68, 770, 919, 190, 373, 294, 822, 808, 206, 
+   184, 943, 795, 384, 383, 461, 404, 758, 839, 887, 
+   715, 67, 618, 276, 204, 918, 873, 777, 604, 560, 
+   951, 160, 578, 722, 79, 804, 96, 409, 713, 940, 
+   652, 934, 970, 447, 318, 353, 859, 672, 112, 785, 
+   645, 863, 803, 350, 139, 93, 354, 99, 820, 908, 
+   609, 772, 154, 274, 580, 184, 79, 626, 630, 742, 
+   653, 282, 762, 623, 680, 81, 927, 626, 789, 125, 
+   411, 521, 938, 300, 821, 78, 343, 175, 128, 250, 
+   170, 774, 972, 275, 999, 639, 495, 78, 352, 126, 
+   857, 956, 358, 619, 580, 124, 737, 594, 701, 612, 
+   669, 112, 134, 694, 363, 992, 809, 743, 168, 974, 
+   944, 375, 748, 52, 600, 747, 642, 182, 862, 81, 
+   344, 805, 988, 739, 511, 655, 814, 334, 249, 515, 
+   897, 955, 664, 981, 649, 113, 974, 459, 893, 228, 
+   433, 837, 553, 268, 926, 240, 102, 654, 459, 51, 
+   686, 754, 806, 760, 493, 403, 415, 394, 687, 700, 
+   946, 670, 656, 610, 738, 392, 760, 799, 887, 653, 
+   978, 321, 576, 617, 626, 502, 894, 679, 243, 440, 
+   680, 879, 194, 572, 640, 724, 926, 56, 204, 700, 
+   707, 151, 457, 449, 797, 195, 791, 558, 945, 679, 
+   297, 59, 87, 824, 713, 663, 412, 693, 342, 606, 
+   134, 108, 571, 364, 631, 212, 174, 643, 304, 329, 
+   343, 97, 430, 751, 497, 314, 983, 374, 822, 928, 
+   140, 206, 73, 263, 980, 736, 876, 478, 430, 305, 
+   170, 514, 364, 692, 829, 82, 855, 953, 676, 246, 
+   369, 970, 294, 750, 807, 827, 150, 790, 288, 923, 
+   804, 378, 215, 828, 592, 281, 565, 555, 710, 82, 
+   896, 831, 547, 261, 524, 462, 293, 465, 502, 56, 
+   661, 821, 976, 991, 658, 869, 905, 758, 745, 193, 
+   768, 550, 608, 933, 378, 286, 215, 979, 792, 961, 
+   61, 688, 793, 644, 986, 403, 106, 366, 905, 644, 
+   372, 567, 466, 434, 645, 210, 389, 550, 919, 135, 
+   780, 773, 635, 389, 707, 100, 626, 958, 165, 504, 
+   920, 176, 193, 713, 857, 265, 203, 50, 668, 108, 
+   645, 990, 626, 197, 510, 357, 358, 850, 858, 364, 
+   936, 638
+};
+
+
+/*-------------------------------------------------------------*/
+/*--- end                                       randtable.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/bzip2/sample1.bz2 b/bzip2/sample1.bz2
new file mode 100644 (file)
index 0000000..18dea60
Binary files /dev/null and b/bzip2/sample1.bz2 differ
diff --git a/bzip2/sample1.ref b/bzip2/sample1.ref
new file mode 100644 (file)
index 0000000..a56e52b
Binary files /dev/null and b/bzip2/sample1.ref differ
diff --git a/bzip2/sample2.bz2 b/bzip2/sample2.bz2
new file mode 100644 (file)
index 0000000..d5a6160
Binary files /dev/null and b/bzip2/sample2.bz2 differ
diff --git a/bzip2/sample2.ref b/bzip2/sample2.ref
new file mode 100644 (file)
index 0000000..34af958
Binary files /dev/null and b/bzip2/sample2.ref differ
diff --git a/bzip2/sample3.bz2 b/bzip2/sample3.bz2
new file mode 100644 (file)
index 0000000..d90cff9
Binary files /dev/null and b/bzip2/sample3.bz2 differ
diff --git a/bzip2/sample3.ref b/bzip2/sample3.ref
new file mode 100644 (file)
index 0000000..775a2f6
--- /dev/null
@@ -0,0 +1,30007 @@
+This file is exceedingly boring.  If you find yourself
+reading it, please (1) take it from me that you can safely
+guess what the rest of the file says, and (2) seek professional
+help.
+
+ps.  there are no further sarcastic remarks in this file.
+
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
diff --git a/bzip2/spewG.c b/bzip2/spewG.c
new file mode 100644 (file)
index 0000000..14a3649
--- /dev/null
@@ -0,0 +1,54 @@
+
+/* spew out a thoroughly gigantic file designed so that bzip2
+   can compress it reasonably rapidly.  This is to help test
+   support for large files (> 2GB) in a reasonable amount of time.
+   I suggest you use the undocumented --exponential option to
+   bzip2 when compressing the resulting file; this saves a bit of
+   time.  Note: *don't* bother with --exponential when compressing 
+   Real Files; it'll just waste a lot of CPU time :-)
+   (but is otherwise harmless).
+*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+        ------------------------------------------------------------------ */
+
+
+#define _FILE_OFFSET_BITS 64
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* The number of megabytes of junk to spew out (roughly) */
+#define MEGABYTES 5000
+
+#define N_BUF 1000000
+char buf[N_BUF];
+
+int main ( int argc, char** argv )
+{
+   int ii, kk, p;
+   srandom(1);
+   setbuffer ( stdout, buf, N_BUF );
+   for (kk = 0; kk < MEGABYTES * 515; kk+=3) {
+      p = 25+random()%50;
+      for (ii = 0; ii < p; ii++)
+         printf ( "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" );
+      for (ii = 0; ii < p-1; ii++)
+         printf ( "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" );
+      for (ii = 0; ii < p+1; ii++)
+         printf ( "ccccccccccccccccccccccccccccccccccccc" );
+   }
+   fflush(stdout);
+   return 0;
+}
diff --git a/bzip2/unzcrash.c b/bzip2/unzcrash.c
new file mode 100644 (file)
index 0000000..7041da5
--- /dev/null
@@ -0,0 +1,141 @@
+
+/* A test program written to test robustness to decompression of
+   corrupted data.  Usage is 
+       unzcrash filename
+   and the program will read the specified file, compress it (in memory),
+   and then repeatedly decompress it, each time with a different bit of
+   the compressed data inverted, so as to test all possible one-bit errors.
+   This should not cause any invalid memory accesses.  If it does, 
+   I want to know about it!
+
+   PS.  As you can see from the above description, the process is
+   incredibly slow.  A file of size eg 5KB will cause it to run for
+   many hours.
+*/
+
+/* ------------------------------------------------------------------
+   This file is part of bzip2/libbzip2, a program and library for
+   lossless, block-sorting data compression.
+
+   bzip2/libbzip2 version 1.0.6 of 6 September 2010
+   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+
+   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+   README file.
+
+   This program is released under the terms of the license contained
+   in the file LICENSE.
+   ------------------------------------------------------------------ */
+
+
+#include <stdio.h>
+#include <assert.h>
+#include "bzlib.h"
+
+#define M_BLOCK 1000000
+
+typedef unsigned char uchar;
+
+#define M_BLOCK_OUT (M_BLOCK + 1000000)
+uchar inbuf[M_BLOCK];
+uchar outbuf[M_BLOCK_OUT];
+uchar zbuf[M_BLOCK + 600 + (M_BLOCK / 100)];
+
+int nIn, nOut, nZ;
+
+static char *bzerrorstrings[] = {
+       "OK"
+      ,"SEQUENCE_ERROR"
+      ,"PARAM_ERROR"
+      ,"MEM_ERROR"
+      ,"DATA_ERROR"
+      ,"DATA_ERROR_MAGIC"
+      ,"IO_ERROR"
+      ,"UNEXPECTED_EOF"
+      ,"OUTBUFF_FULL"
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+      ,"???"   /* for future */
+};
+
+void flip_bit ( int bit )
+{
+   int byteno = bit / 8;
+   int bitno  = bit % 8;
+   uchar mask = 1 << bitno;
+   //fprintf ( stderr, "(byte %d  bit %d  mask %d)",
+   //          byteno, bitno, (int)mask );
+   zbuf[byteno] ^= mask;
+}
+
+int main ( int argc, char** argv )
+{
+   FILE* f;
+   int   r;
+   int   bit;
+   int   i;
+
+   if (argc != 2) {
+      fprintf ( stderr, "usage: unzcrash filename\n" );
+      return 1;
+   }
+
+   f = fopen ( argv[1], "r" );
+   if (!f) {
+      fprintf ( stderr, "unzcrash: can't open %s\n", argv[1] );
+      return 1;
+   }
+
+   nIn = fread ( inbuf, 1, M_BLOCK, f );
+   fprintf ( stderr, "%d bytes read\n", nIn );
+
+   nZ = M_BLOCK;
+   r = BZ2_bzBuffToBuffCompress (
+         zbuf, &nZ, inbuf, nIn, 9, 0, 30 );
+
+   assert (r == BZ_OK);
+   fprintf ( stderr, "%d after compression\n", nZ );
+
+   for (bit = 0; bit < nZ*8; bit++) {
+      fprintf ( stderr, "bit %d  ", bit );
+      flip_bit ( bit );
+      nOut = M_BLOCK_OUT;
+      r = BZ2_bzBuffToBuffDecompress (
+            outbuf, &nOut, zbuf, nZ, 0, 0 );
+      fprintf ( stderr, " %d  %s ", r, bzerrorstrings[-r] );
+
+      if (r != BZ_OK) {
+         fprintf ( stderr, "\n" );
+      } else {
+         if (nOut != nIn) {
+           fprintf(stderr, "nIn/nOut mismatch %d %d\n", nIn, nOut );
+           return 1;
+         } else {
+           for (i = 0; i < nOut; i++)
+             if (inbuf[i] != outbuf[i]) { 
+                fprintf(stderr, "mismatch at %d\n", i ); 
+                return 1; 
+           }
+           if (i == nOut) fprintf(stderr, "really ok!\n" );
+         }
+      }
+
+      flip_bit ( bit );
+   }
+
+#if 0
+   assert (nOut == nIn);
+   for (i = 0; i < nOut; i++) {
+     if (inbuf[i] != outbuf[i]) {
+        fprintf ( stderr, "difference at %d !\n", i );
+        return 1;
+     }
+   }
+#endif
+
+   fprintf ( stderr, "all ok\n" );
+   return 0;
+}
diff --git a/bzip2/vms/DESCRIP_DEPS.MMS b/bzip2/vms/DESCRIP_DEPS.MMS
new file mode 100644 (file)
index 0000000..c26ced4
--- /dev/null
@@ -0,0 +1,60 @@
+#
+# BZIP2 for VMS - MMS (or MMK) Source Dependency File.
+#
+
+# This description file is included by other description files.  It is
+# not intended to be used alone.  Verify proper inclusion.
+
+.IFDEF INCL_DESCRIP_DEPS
+.ELSE
+$$$$ THIS DESCRIPTION FILE IS NOT INTENDED TO BE USED THIS WAY.
+.ENDIF
+
+[.$(DEST)]BLOCKSORT.OBJ : []BLOCKSORT.C
+[.$(DEST)]BLOCKSORT.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]BLOCKSORT.OBJ : []BZLIB.H
+[.$(DEST)]BLOCKSORT_.OBJ : []BLOCKSORT.C
+[.$(DEST)]BLOCKSORT_.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]BLOCKSORT_.OBJ : []BZLIB.H
+[.$(DEST)]BZIP2.OBJ : []BZIP2.C
+[.$(DEST)]BZIP2.OBJ : []BZLIB.H
+[.$(DEST)]BZIP2.OBJ : [.VMS]VMS_MISC.H
+[.$(DEST)]BZIP2RECOVER.OBJ : []BZIP2RECOVER.C
+[.$(DEST)]BZLIB.OBJ : []BZLIB.C
+[.$(DEST)]BZLIB.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]BZLIB.OBJ : []BZLIB.H
+[.$(DEST)]BZLIB_.OBJ : []BZLIB.C
+[.$(DEST)]BZLIB_.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]BZLIB_.OBJ : []BZLIB.H
+[.$(DEST)]COMPRESS.OBJ : []COMPRESS.C
+[.$(DEST)]COMPRESS.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]COMPRESS.OBJ : []BZLIB.H
+[.$(DEST)]COMPRESS_.OBJ : []COMPRESS.C
+[.$(DEST)]COMPRESS_.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]COMPRESS_.OBJ : []BZLIB.H
+[.$(DEST)]CRCTABLE.OBJ : []CRCTABLE.C
+[.$(DEST)]CRCTABLE.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]CRCTABLE.OBJ : []BZLIB.H
+[.$(DEST)]CRCTABLE_.OBJ : []CRCTABLE.C
+[.$(DEST)]CRCTABLE_.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]CRCTABLE_.OBJ : []BZLIB.H
+[.$(DEST)]DECOMPRESS.OBJ : []DECOMPRESS.C
+[.$(DEST)]DECOMPRESS.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]DECOMPRESS.OBJ : []BZLIB.H
+[.$(DEST)]DECOMPRESS_.OBJ : []DECOMPRESS.C
+[.$(DEST)]DECOMPRESS_.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]DECOMPRESS_.OBJ : []BZLIB.H
+[.$(DEST)]HUFFMAN.OBJ : []HUFFMAN.C
+[.$(DEST)]HUFFMAN.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]HUFFMAN.OBJ : []BZLIB.H
+[.$(DEST)]HUFFMAN_.OBJ : []HUFFMAN.C
+[.$(DEST)]HUFFMAN_.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]HUFFMAN_.OBJ : []BZLIB.H
+[.$(DEST)]RANDTABLE.OBJ : []RANDTABLE.C
+[.$(DEST)]RANDTABLE.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]RANDTABLE.OBJ : []BZLIB.H
+[.$(DEST)]RANDTABLE_.OBJ : []RANDTABLE.C
+[.$(DEST)]RANDTABLE_.OBJ : []BZLIB_PRIVATE.H
+[.$(DEST)]RANDTABLE_.OBJ : []BZLIB.H
+[.$(DEST)]VMS_MISC.OBJ : [.VMS]VMS_MISC.C
+[.$(DEST)]VMS_MISC.OBJ : [.VMS]VMS_MISC.H
diff --git a/bzip2/vms/collect_deps.com b/bzip2/vms/collect_deps.com
new file mode 100644 (file)
index 0000000..10fd6e6
--- /dev/null
@@ -0,0 +1,136 @@
+$!                                              6 December 2006.  SMS.
+$!
+$! Common VMS accessory procedure.
+$!
+$!    For the product named by P1,
+$!    P2 = output file specification.
+$!    Collect all source file dependencies specified by P3,
+$!    and add P4 prefix to the object file.
+$!    Convert absolute dependencies to absolute from one level above P5,
+$!    and add P6 prefix (typically a rooted logical name with ":[").
+$!    Convert "[.P7]" to "[.P4]" in dependencies.
+$!
+$! MMS /EXTENDED_SYNTAX can't easily pass a macro invocation for P4, so
+$! we remove any internal spaces which might have been added to prevent
+$! immediate evaluation of such a macro invocation.
+$!
+$ prefix = f$edit( p4, "COLLAPSE")
+$!
+$ here = f$environment( "DEFAULT")
+$ dev_lose = f$edit( f$parse( p5, , , "DEVICE", "SYNTAX_ONLY"), "UPCASE")
+$ dir_lose = f$edit( f$parse( p5, , , "DIRECTORY", "SYNTAX_ONLY"), "UPCASE")
+$ set default 'dev_lose''dir_lose'
+$ set default [-]
+$ dev_dir_lose = f$environment( "DEFAULT")- "]"
+$!
+$ p6_last = f$extract( (f$length( p6)- 1), 1, p6)
+$!
+$ dest = ""
+$ if (p7 .nes. "")
+$ then
+$    dest = ".''p7']"
+$ endif
+$!
+$ set default 'here'
+$!
+$! For portability, make the output file record format Stream_LF.
+$!
+$ create /fdl = sys$input 'p2'
+RECORD
+        Carriage_Control carriage_return
+        Format stream_lf
+$!
+$ open /read /write /error = end_main deps_out 'p2'
+$ on error then goto loop_main_end
+$!
+$! Include proper-inclusion-check preface.
+$!
+$ incl_macro = "INCL_"+ f$parse( p2, , , "NAME", "SYNTAX_ONLY")
+$ write deps_out "#"
+$ write deps_out "# ''p1' - MMS (or MMK) Source Dependency File."
+$ write deps_out "#"
+$ write deps_out ""
+$ write deps_out -
+   "# This description file is included by other description files.  It is"
+$ write deps_out -
+   "# not intended to be used alone.  Verify proper inclusion."
+$ write deps_out ""
+$ write deps_out ".IFDEF ''incl_macro'"
+$ write deps_out ".ELSE"
+$ write deps_out -
+   "$$$$ THIS DESCRIPTION FILE IS NOT INTENDED TO BE USED THIS WAY."
+$ write deps_out ".ENDIF"
+$ write deps_out ""
+$!
+$! Actual dependencies from individual dependency files.
+$!
+$ loop_main_top:
+$    file = f$search( p3)
+$    if (file .eqs. "") then goto loop_main_end
+$!
+$    open /read /error = end_subs deps_in 'file'
+$    loop_subs_top:
+$       read /error = loop_subs_end deps_in line
+$       line_reduced = f$edit( line, "COMPRESS, TRIM, UPCASE")
+$       colon = f$locate( " : ", line_reduced)
+$       if (colon .ge. f$length( line_reduced)) then goto loop_subs_top
+$       d_d_l_loc = f$locate( dev_dir_lose, -
+         f$extract( (colon+ 3), 1000, line_reduced))
+$       if (d_d_l_loc .eq. 0)
+$       then
+$          front = f$extract( 0, (colon+ 3), line_reduced)
+$          back = f$extract( (colon+ 3+ f$length( dev_dir_lose)+ 1), -
+            1000, line_reduced)
+$!
+$!         If specified, replace final ".P7]" with part of P4.
+$!
+$!         This allows a system-specific subdirectory name on a
+$!         dependency file to be replaced with an MMS macro, for
+$!         example, ".ALPHA]" with ".$(DEST)]".
+$!
+$          if (dest .nes. "")
+$          then
+$             dest_dot_loc = f$locate( dest, back)
+$             if (dest_dot_loc .lt. f$length( back))
+$             then
+$                back = f$extract( 0, dest_dot_loc, back)+ -
+                  f$extract( 1, 1000, prefix)+ -
+                  f$extract( (dest_dot_loc+ f$length( dest)), 1000, back)
+$             endif
+$          endif
+$!
+$!         Replace null subdirectory with "000000".
+$!
+$          if (f$length( back) .gt. 0)
+$          then
+$             mid = p6
+$          else
+$             mid = "000000"
+$          endif
+$!
+$!         Complete an incomplete directory spec.
+$!
+$          if (f$locate( "]", back) .ge. f$length( back))
+$          then
+$             if (f$locate( ".", mid) .eq. f$length( mid)- 1)
+$             then
+$                mid = mid- "."
+$             endif
+$             mid = mid+ "]"
+$          endif
+$!
+$          line = front+ mid+ back
+$          write deps_out "''prefix'"+ "''line'"
+$       endif
+$    goto loop_subs_top
+$!
+$    loop_subs_end:
+$    close deps_in
+$!
+$ goto loop_main_top
+$!
+$ loop_main_end:
+$ close deps_out
+$!
+$ end_main:
+$!
diff --git a/bzip2/vms/decc_ver.c b/bzip2/vms/decc_ver.c
new file mode 100644 (file)
index 0000000..8d9e514
--- /dev/null
@@ -0,0 +1,30 @@
+#include <stdio.h>
+
+int main( void)
+{
+#ifdef __VMS_VERSION
+printf( " __VMS_VERSION: >%s<.\n", __VMS_VERSION);
+#else /* def __VMS_VERSION */
+printf( " __VMS_VERSION: (undefined)<.\n");
+#endif /* def __VMS_VERSION [else] */
+
+#ifdef __VMS_VER
+printf( " __VMS_VER  = %d.\n", __VMS_VER);
+#else /* def __VMS_VER */
+printf( " __VMS_VER  = (undefined).\n");
+#endif /* def __VMS_VER [else] */
+
+#ifdef __DECC_VER
+printf( " __DECC_VER = %d.\n", __DECC_VER);
+#else /* def __DECC_VER */
+printf( " __DECC_VER = (undefined).\n");
+#endif /* def __DECC_VER */
+
+#ifdef __CRTL_VER
+printf( " __CRTL_VER = %d.\n", __CRTL_VER);
+#else /* def __CRTL_VER */
+printf( " __CRTL_VER = (undefined).\n");
+#endif /* def __CRTL_VER */
+
+return 0;
+}
diff --git a/bzip2/vms/descrip.mms b/bzip2/vms/descrip.mms
new file mode 100644 (file)
index 0000000..9041eea
--- /dev/null
@@ -0,0 +1,299 @@
+#                                               30 November 2010.  SMS.
+#
+#    BZIP2 1.0 for VMS - MMS (or MMK) Description File.
+#
+# Usage:
+#
+#    MMS /DESCRIP = [.vms]descrip.mms [/MACRO = (<see_below>)] [target]
+#
+# Note that this description file must be used from the main
+# distribution directory, not from the [.vms] subdirectory.
+#
+# Optional macros:
+#
+#    CCOPTS=xxx     Compile with CC options xxx.  For example:
+#                   "CCOPTS=/ARCH=HOST" or "CCOPTS=/NAMES=AS_IS"
+#
+#    DBG=1          Compile with /DEBUG /NOOPTIMIZE.
+#                   Link with /DEBUG /TRACEBACK.
+#                   (Default is /NOTRACEBACK.)
+#
+#    LARGE=1        Enable large-file (>2GB) support.  Non-VAX only.
+#
+#    LINKOPTS=xxx   Link with LINK options xxx.  For example:
+#                   "LINKOPTS=/NOINFO"
+#
+#    LIST=1         Compile with /LIST /SHOW = (ALL, NOMESSAGES).
+#                   Link with /MAP /CROSS_REFERENCE /FULL.
+#
+#    "LOCAL_BZIP=c_macro_1=value1 [, c_macro_2=value2 [...]]"
+#                   Compile with these additional C macros defined.
+#
+# The default target, ALL, builds the selected product executables.
+#
+# Other targets:
+#
+#    CLEAN       deletes architecture-specific files, but leaves any
+#                individual source dependency files and the help files.
+#
+#    CLEAN_ALL   deletes all generated files, except the main
+#                (collected) source dependency file.
+#
+#    CLEAN_EXE   deletes only the architecture-specific executables.
+#                Handy if all you wish to do is re-link the executables.
+#
+#    CLEAN_OLB   deletes only the architecture-specific object
+#                libraries.
+#
+#    CLEAN_TEST  deletes (architecture-specific) test result files.
+#
+#    TEST        runs some simple tests.
+#
+#
+#
+#
+# Example commands:
+#
+# To build the conventional small-file product (Note: DESCRIP.MMS is the
+# default description file name.):
+#
+#    MMS /DESCRIP = [.vms]
+#
+# To get the large-file executables (on a non-VAX system):
+#
+#    MMS /DESCRIP = [.vms] /MACRO = (LARGE=1)
+#
+# To delete the architecture-specific generated files for this system
+# type:
+#
+#    MMS /DESCRIP = [.vms] /MACRO = (LARGE=1) CLEAN     ! Large-file.
+# or
+#    MMS /DESCRIP = [.vms] CLEAN                        ! Small-file.
+#
+# To build a complete small-file product for debug with compiler
+# listings and link maps:
+#
+#    MMS /DESCRIP = [.vms] CLEAN
+#    MMS /DESCRIP = [.vms] /MACRO = (DBG=1, LIST=1)
+#
+########################################################################
+
+# Include primary product description file.
+
+INCL_DESCRIP_SRC = 1
+.INCLUDE [.vms]descrip_src.mms
+
+# Object library names.
+
+LIB_BZ2 = [.$(DEST)]LIBBZ2.OLB
+
+LIB_BZ2_NS = [.$(DEST)]LIBBZ2_NS.OLB
+
+
+# TARGETS.
+
+# Default target, ALL.  Build all executables and variant object library.
+
+ALL : $(BZIP2_EXE) $(BZIPUTILS_EXE) $(LIB_BZ2_NS) $(DECC_VER_EXE)
+       @ write sys$output "Done."
+
+# CLEAN target.  Delete the [.$(DEST)] directory and everything in it.
+
+CLEAN :
+       if (f$search( "[.$(DEST)]*.*") .nes. "") then -
+        delete /noconfirm [.$(DEST)]*.*;*
+       if (f$search( "$(DEST).DIR", 1) .nes. "") then -
+        set protection = w:d $(DEST).DIR;*
+       if (f$search( "$(DEST).DIR", 2) .nes. "") then -
+        delete /noconfirm $(DEST).DIR;*
+
+# CLEAN_ALL target.  Delete:
+#    The [.$(DEST)] directories and everything in them.
+#    All individual C dependency files.
+# Also mention:
+#    Comprehensive dependency file.
+
+CLEAN_ALL :
+       if (f$search( "[.ALPHA*]*.*") .nes. "") then -
+        delete /noconfirm [.ALPHA*]*.*;*
+       if (f$search( "ALPHA*.DIR", 1) .nes. "") then -
+        set protection = w:d ALPHA*.DIR;*
+       if (f$search( "ALPHA*.DIR", 2) .nes. "") then -
+        delete /noconfirm ALPHA*.DIR;*
+       if (f$search( "[.IA64*]*.*") .nes. "") then -
+        delete /noconfirm [.IA64*]*.*;*
+       if (f$search( "IA64*.DIR", 1) .nes. "") then -
+        set protection = w:d IA64*.DIR;*
+       if (f$search( "IA64*.DIR", 2) .nes. "") then -
+        delete /noconfirm IA64*.DIR;*
+       if (f$search( "[.VAX*]*.*") .nes. "") then -
+        delete /noconfirm [.VAX*]*.*;*
+       if (f$search( "VAX*.DIR", 1) .nes. "") then -
+        set protection = w:d VAX*.DIR;*
+       if (f$search( "VAX*.DIR", 2) .nes. "") then -
+        delete /noconfirm VAX*.DIR;*
+       if (f$search( "*.MMSD") .nes. "") then -
+        delete /noconfirm *.MMSD;*
+       if (f$search( "[.vms]*.MMSD") .nes. "") then -
+        delete /noconfirm [.vms]*.MMSD;*
+       @ write sys$output ""
+       @ write sys$output "Note:  This procedure will not"
+       @ write sys$output "   DELETE [.vms]descrip_deps.mms;*"
+       @ write sys$output -
+ "You may choose to, but a recent version of MMS (V3.5 or newer?) is"
+       @ write sys$output -
+ "needed to regenerate it.  (It may also be recovered from the original"
+       @ write sys$output -
+ "distribution kit.)  See [.vms]descrip_mkdeps.mms for instructions on"
+       @ write sys$output -
+ "generating [.vms]descrip_deps.mms."
+       @ write sys$output ""
+
+# CLEAN_EXE target.  Delete the executables in [.$(DEST)].
+
+CLEAN_EXE :
+       if (f$search( "[.$(DEST)]*.EXE") .nes. "") then -
+        delete /noconfirm [.$(DEST)]*.EXE;*
+
+# CLEAN_OLB target.  Delete the object libraries in [.$(DEST)].
+
+CLEAN_OLB :
+       if (f$search( "[.$(DEST)]*.OLB") .nes. "") then -
+        delete /noconfirm [.$(DEST)]*.OLB;*
+
+# CLEAN_TEST target.  Delete the test result files in [.$(DEST)].
+
+CLEAN_TEST :
+       if (f$search( "[.$(DEST)]*.rb2") .nes. "") then -
+        delete /noconfirm [.$(DEST)]*.rb2;*
+       if (f$search( "[.$(DEST)]*.tst") .nes. "") then -
+        delete /noconfirm [.$(DEST)]*.tst;*
+
+
+# Object library module dependencies.
+
+$(LIB_BZ2) : $(LIB_BZ2)($(MODS_OBJS_LIB_BZ2))
+       @ write sys$output "$(MMS$TARGET) updated."
+
+$(LIB_BZ2_NS) : $(LIB_BZ2_NS)($(MODS_OBJS_LIB_BZ2_NS))
+       @ write sys$output "$(MMS$TARGET) updated."
+
+# Default C compile rule.
+
+.C.OBJ :
+       MY_MODULE_NAME = f$parse( "$(MMS$SOURCE)", , , "NAME", "SYNTAX_ONLY")
+       $(CC) $(CFLAGS) -
+        /define = ($(CDEFS), MY_MODULE_NAME='MY_MODULE_NAME') -
+        $(MY_MODULE_NAME_H)+ $(MMS$SOURCE)
+
+# Variant object library sources.
+
+[.$(DEST)]BLOCKSORT_.OBJ : []BLOCKSORT.C
+       MY_MODULE_NAME = f$parse( "$(MMS$SOURCE)", , , "NAME", "SYNTAX_ONLY")
+       $(CC) $(CFLAGS_NS) -
+        /define = ($(CDEFS), BZ_NO_STDIO=1, MY_MODULE_NAME='MY_MODULE_NAME') -
+        $(MY_MODULE_NAME_H)+ $(MMS$SOURCE)
+
+[.$(DEST)]BZLIB_.OBJ : []BZLIB.C
+       MY_MODULE_NAME = f$parse( "$(MMS$SOURCE)", , , "NAME", "SYNTAX_ONLY")
+       $(CC) $(CFLAGS_NS) -
+        /define = ($(CDEFS), BZ_NO_STDIO=1, MY_MODULE_NAME='MY_MODULE_NAME') -
+        $(MY_MODULE_NAME_H)+ $(MMS$SOURCE)
+
+[.$(DEST)]COMPRESS_.OBJ : []COMPRESS.C
+       MY_MODULE_NAME = f$parse( "$(MMS$SOURCE)", , , "NAME", "SYNTAX_ONLY")
+       $(CC) $(CFLAGS_NS) -
+        /define = ($(CDEFS), BZ_NO_STDIO=1, MY_MODULE_NAME='MY_MODULE_NAME') -
+        $(MY_MODULE_NAME_H)+ $(MMS$SOURCE)
+
+[.$(DEST)]CRCTABLE_.OBJ : []CRCTABLE.C
+       MY_MODULE_NAME = f$parse( "$(MMS$SOURCE)", , , "NAME", "SYNTAX_ONLY")
+       $(CC) $(CFLAGS_NS) -
+        /define = ($(CDEFS), BZ_NO_STDIO=1, MY_MODULE_NAME='MY_MODULE_NAME') -
+        $(MY_MODULE_NAME_H)+ $(MMS$SOURCE)
+
+[.$(DEST)]DECOMPRESS_.OBJ : []DECOMPRESS.C
+       MY_MODULE_NAME = f$parse( "$(MMS$SOURCE)", , , "NAME", "SYNTAX_ONLY")
+       $(CC) $(CFLAGS_NS) -
+        /define = ($(CDEFS), BZ_NO_STDIO=1, MY_MODULE_NAME='MY_MODULE_NAME') -
+        $(MY_MODULE_NAME_H)+ $(MMS$SOURCE)
+
+[.$(DEST)]HUFFMAN_.OBJ : []HUFFMAN.C
+       MY_MODULE_NAME = f$parse( "$(MMS$SOURCE)", , , "NAME", "SYNTAX_ONLY")
+       $(CC) $(CFLAGS_NS) -
+        /define = ($(CDEFS), BZ_NO_STDIO=1, MY_MODULE_NAME='MY_MODULE_NAME') -
+        $(MY_MODULE_NAME_H)+ $(MMS$SOURCE)
+
+[.$(DEST)]RANDTABLE_.OBJ : []RANDTABLE.C
+       MY_MODULE_NAME = f$parse( "$(MMS$SOURCE)", , , "NAME", "SYNTAX_ONLY")
+       $(CC) $(CFLAGS_NS) -
+        /define = ($(CDEFS), BZ_NO_STDIO=1, MY_MODULE_NAME='MY_MODULE_NAME') -
+        $(MY_MODULE_NAME_H)+ $(MMS$SOURCE)
+
+# BZIP2 executable.
+
+$(BZIP2_EXE) : [.$(DEST)]BZIP2.OBJ $(LIB_BZ2)
+       $(LINK) $(LINKFLAGS) $(MMS$SOURCE), -
+        $(LIB_BZ2) /library
+
+# BZIPUTILS executable(s).
+
+$(BZIP2RECOVER_EXE) : [.$(DEST)]BZIP2RECOVER.OBJ $(LIB_BZ2)
+       $(LINK) $(LINKFLAGS) $(MMS$SOURCE), -
+        $(LIB_BZ2) /library
+
+# DECC_VER executable.
+
+$(DECC_VER_EXE) : $(DECC_VER_OBJ)
+       $(LINK) $(LINKFLAGS) $(MMS$SOURCE)
+
+$(DECC_VER_OBJ) : [.vms]DECC_VER.C
+
+# TEST target.
+
+TEST : $(BZIP2_EXE)
+       @ type words1.
+       execute = "$ SYS$DISK:[.$(DEST)]'"
+       if (f$search( "[.$(DEST)]sample1.rb2") .nes. "") then -
+        delete [.$(DEST)]sample1.rb2;*
+       define /user_mode sys$output [.$(DEST)]sample1.rb2
+       execute bzip2 -1 -c sample1.ref
+       if (f$search( "[.$(DEST)]sample2.rb2") .nes. "") then -
+        delete [.$(DEST)]sample2.rb2;*
+       define /user_mode sys$output [.$(DEST)]sample2.rb2
+       execute bzip2 -2 -c sample2.ref
+       if (f$search( "[.$(DEST)]sample3.rb2") .nes. "") then -
+        delete [.$(DEST)]sample3.rb2;*
+       define /user_mode sys$output [.$(DEST)]sample3.rb2
+       execute bzip2 -3 -c sample3.ref
+       if (f$search( "[.$(DEST)]sample1.tst") .nes. "") then -
+        delete [.$(DEST)]sample1.tst;*
+       define /user_mode sys$output [.$(DEST)]sample1.tst
+       execute bzip2 -d -c sample1.bz2
+       if (f$search( "[.$(DEST)]sample2.tst") .nes. "") then -
+        delete [.$(DEST)]sample2.tst;*
+       define /user_mode sys$output [.$(DEST)]sample2.tst
+       execute bzip2 -d -c sample2.bz2
+       if (f$search( "[.$(DEST)]sample3.tst") .nes. "") then -
+        delete [.$(DEST)]sample3.tst;*
+       define /user_mode sys$output [.$(DEST)]sample3.tst
+       execute bzip2 -ds -c sample3.bz2
+       @ write sys$output ""
+       @ write sys$output "Tests complete.  Checking results..."
+       @ write sys$output ""
+       backup /compare sample1.bz2 [.$(DEST)]sample1.rb2
+       backup /compare sample2.bz2 [.$(DEST)]sample2.rb2
+       backup /compare sample3.bz2 [.$(DEST)]sample3.rb2
+       backup /compare sample1.ref [.$(DEST)]sample1.tst
+       backup /compare sample2.ref [.$(DEST)]sample2.tst
+       backup /compare sample3.ref [.$(DEST)]sample3.tst
+       @ write sys$output ""
+       @ write sys$output "Tests successful."
+       @ write sys$output ""
+
+
+# Include generated source dependencies.
+
+INCL_DESCRIP_DEPS = 1
+.INCLUDE [.vms]descrip_deps.mms
+
diff --git a/bzip2/vms/descrip_mkdeps.mms b/bzip2/vms/descrip_mkdeps.mms
new file mode 100644 (file)
index 0000000..068390a
--- /dev/null
@@ -0,0 +1,231 @@
+#                                               29 November 2010.  SMS.
+#
+#    BZIP2 1.0 for VMS - MMS Dependency Description File.
+#
+#    MMS /EXTENDED_SYNTAX description file to generate a C source
+#    dependencies file.  Unsightly errors result when /EXTENDED_SYNTAX
+#    is not specified.  Typical usage:
+#
+#    $ MMS /EXTEND /DESCRIP = [.vms]descrip_mkdeps.mms /SKIP
+#
+#    which discards individual source dependency files, or:
+#
+#    $ MMS /EXTEND /DESCRIP = [.vms]descrip_mkdeps.mms /MACRO = NOSKIP=1
+#
+#    which retains them.  Retaining them can save time when doing code
+#    development.
+#
+#
+# The default target is the comprehensive source dependency file,
+# $(DEPS_FILE) = "DESCRIP_DEPS.MMS".
+#
+# Other targets:
+#
+#    CLEAN      deletes the individual source dependency files,
+#               *.MMSD;*, but leaves the comprehensive source dependency
+#               file.
+#
+#    CLEAN_ALL  deletes all source dependency files, including the
+#               individual *.MMSD;* files and the comprehensive file,
+#               DESCRIP_DEPS.MMS.*.
+#
+# MMK users without MMS will be unable to generate the dependencies file
+# using this description file, however there should be one supplied in
+# the kit.  If this file has been deleted, users in this predicament
+# will need to recover it from the original distribution kit.
+#
+# Note:  This dependency generation scheme assumes that the dependencies
+# do not depend on host architecture type or other such variables.
+# Therefore, no "#include" directive in the C source itself should be
+# conditional on such variables.
+#
+# This description file uses these command procedures:
+#
+#    [.vms]collect_deps.com
+#    [.vms]mod_dep.com
+#
+# Note:  This dependency generation scheme assumes that the dependencies
+# do not depend on host architecture type or other such variables. 
+# Therefore, no "#include" directive in the C source itself should be
+# conditional on such variables.
+#
+
+# Required command procedures.
+
+COMS = [.vms]collect_deps.com [.vms]mod_dep.com
+
+# Include the source file lists (among other data).
+
+INCL_DESCRIP_SRC = 1
+.INCLUDE [.vms]descrip_src.mms
+
+# The ultimate product, a comprehensive dependency list.
+
+DEPS_FILE = [.vms]descrip_deps.mms
+
+# Detect valid qualifier and/or macro options.
+
+.IF $(FINDSTRING Skip, $(MMSQUALIFIERS)) .eq Skip
+DELETE_MMSD = 1
+.ELSIF NOSKIP
+PURGE_MMSD = 1
+.ELSE
+UNK_MMSD = 1
+.ENDIF
+
+# Dependency suffixes and rules.
+#
+# .FIRST is assumed to be used already, so the MMS qualifier/macro check
+# is included in each rule (one way or another).
+
+.SUFFIXES_BEFORE .C .MMSD
+
+.C.MMSD :
+.IF UNK_MMSD
+       @ write sys$output -
+ "   /SKIP_INTERMEDIATES is expected on the MMS command line."
+       @ write sys$output -
+ "   For normal behavior (delete .MMSD files), specify ""/SKIP""."
+       @ write sys$output -
+ "   To retain the .MMSD files, specify ""/MACRO = NOSKIP=1""."
+       @ exit %x00000004
+.ENDIF
+       $(CC) $(CFLAGS_INCL) $(MMS$SOURCE) /NOLIST /NOOBJECT -
+        /MMS_DEPENDENCIES = (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
+
+# List of MMS dependency files.
+
+# In case it's not obvious...
+# To extract module name lists from object library module=object lists:
+# 1.  Transform "module=[.dest]name.OBJ" into "module=[.dest] name".
+# 2.  For [.vms], add [.vms] to name.
+# 3.  Delete "*]" words.
+#
+# A similar scheme works for executable lists.
+
+MODS_LIB_BZ2_N = $(FILTER-OUT *], \
+ $(PATSUBST *]*.OBJ, *] *, $(MODS_OBJS_LIB_BZ2_N)))
+
+MODS_LIB_BZ2_V = $(FILTER-OUT *], \
+ $(PATSUBST *]*.OBJ, *] [.vms]*, $(MODS_OBJS_LIB_BZ2_V)))
+
+MODS_LIB_BZ2_NS_N = $(FILTER-OUT *], \
+ $(PATSUBST *]*.OBJ, *] *, $(MODS_OBJS_LIB_BZ2_NS_N)))
+
+MODS_BZIP2 = $(FILTER-OUT *], \
+ $(PATSUBST *]*.EXE, *] *, $(BZIP2_EXE)))
+
+MODS_BZIPUTILS = $(FILTER-OUT *], \
+ $(PATSUBST *]*.EXE, *] *, $(BZIPUTILS)))
+
+# Complete list of C object dependency file names.
+
+DEPS = $(FOREACH NAME, \
+ $(MODS_LIB_BZ2_N) $(MODS_LIB_BZ2_V) $(MODS_LIB_BZ2_NS_N) \
+ $(MODS_BZIP2) $(MODS_BZIPUTILS), \
+ $(NAME).MMSD)
+
+# Default target is the comprehensive dependency list.
+
+$(DEPS_FILE) : $(DEPS) $(COMS)
+.IF UNK_MMSD
+       @ write sys$output -
+ "   /SKIP_INTERMEDIATES is expected on the MMS command line."
+       @ write sys$output -
+ "   For normal behavior (delete individual .MMSD files), specify ""/SKIP""."
+       @ write sys$output -
+ "   To retain the individual .MMSD files, specify ""/MACRO = NOSKIP=1""."
+       @ exit %x00000004
+.ENDIF
+#
+#       Note that the space in P3, which prevents immediate macro
+#       expansion, is removed by collect_deps.com.
+#
+        @[.vms]collect_deps.com "BZIP2 for VMS" "$(MMS$TARGET)" -
+        "[...]*.MMSD" "[.$ (DEST)]" $(MMSDESCRIPTION_FILE) -
+        "[." $(DEST)
+        @ write sys$output -
+         "Created a new dependency file: $(MMS$TARGET)"
+.IF DELETE_MMSD
+       @ write sys$output -
+         "Deleting intermediate .MMSD files..."
+       delete /log *.MMSD;*, [.vms]*.MMSD;*
+.ELSE
+       @ write sys$output -
+         "Purging intermediate .MMSD files..."
+       purge /log *.MMSD, [.vms]*.MMSD
+.ENDIF
+
+# CLEAN target.  Delete the individual C dependency files.
+
+CLEAN :
+       if (f$search( "[...]*.MMSD") .nes. "") then -
+        delete [...]*.MMSD;*
+
+# CLEAN_ALL target.  Delete:
+#    The individual C dependency files.
+#    The collected source dependency file.
+
+CLEAN_ALL :
+       if (f$search( "[...]*.MMSD") .nes. "") then -
+        delete [...]*.MMSD;*
+       if (f$search( "$(DEPS_FILE);*") .nes. "") then -
+        delete /log $(DEPS_FILE);*
+
+# PURGE target.
+
+PURGE :
+       if (f$search( "*.MMSD;*") .nes. "") then -
+        purge /log *.MMSD;*
+       if (f$search( "[.vms]*.MMSD;*") .nes. "") then -
+        purge /log [.vms]*.MMSD;*
+       if (f$search( "$(DEPS_FILE);*") .nes. "") then -
+        purge /log $(DEPS_FILE);*
+
+# Explicit dependencies and rules for utility variant modules.
+#
+# The extra dependency on the normal dependency file obviates including
+# the /SKIP warning code in each rule here.
+
+BLOCKSORT_.MMSD : BLOCKSORT.C BLOCKSORT.MMSD
+       $(CC) $(CFLAGS_INCL) /define = BZ_NO_STDIO=1 $(MMS$SOURCE) -
+        /NOLIST /NOOBJECT -
+        /MMS_DEPENDENCIES = (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
+       @[.vms]mod_dep.com $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
+
+BZLIB_.MMSD : BZLIB.C BZLIB.MMSD
+       $(CC) $(CFLAGS_INCL) /define = BZ_NO_STDIO=1 $(MMS$SOURCE) -
+        /NOLIST /NOOBJECT -
+        /MMS_DEPENDENCIES = (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
+       @[.vms]mod_dep.com $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
+
+COMPRESS_.MMSD : COMPRESS.C COMPRESS.MMSD
+       $(CC) $(CFLAGS_INCL) /define = BZ_NO_STDIO=1 $(MMS$SOURCE) -
+        /NOLIST /NOOBJECT -
+        /MMS_DEPENDENCIES = (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
+       @[.vms]mod_dep.com $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
+
+CRCTABLE_.MMSD : CRCTABLE.C CRCTABLE.MMSD
+       $(CC) $(CFLAGS_INCL) /define = BZ_NO_STDIO=1 $(MMS$SOURCE) -
+        /NOLIST /NOOBJECT -
+        /MMS_DEPENDENCIES = (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
+       @[.vms]mod_dep.com $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
+
+DECOMPRESS_.MMSD : DECOMPRESS.C DECOMPRESS.MMSD
+       $(CC) $(CFLAGS_INCL) /define = BZ_NO_STDIO=1 $(MMS$SOURCE) -
+        /NOLIST /NOOBJECT -
+        /MMS_DEPENDENCIES = (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
+       @[.vms]mod_dep.com $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
+
+HUFFMAN_.MMSD : HUFFMAN.C HUFFMAN.MMSD
+       $(CC) $(CFLAGS_INCL) /define = BZ_NO_STDIO=1 $(MMS$SOURCE) -
+        /NOLIST /NOOBJECT -
+        /MMS_DEPENDENCIES = (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
+       @[.vms]mod_dep.com $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
+
+RANDTABLE_.MMSD : RANDTABLE.C RANDTABLE.MMSD
+       $(CC) $(CFLAGS_INCL) /define = BZ_NO_STDIO=1 $(MMS$SOURCE) -
+        /NOLIST /NOOBJECT -
+        /MMS_DEPENDENCIES = (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
+       @[.vms]mod_dep.com $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
+
diff --git a/bzip2/vms/descrip_src.mms b/bzip2/vms/descrip_src.mms
new file mode 100644 (file)
index 0000000..bc65e50
--- /dev/null
@@ -0,0 +1,223 @@
+#                                               29 November 2010.  SMS.
+#
+#    BZIP2 1.0 for VMS - MMS (or MMK) Source Description File.
+#
+
+# This description file is included by other description files.  It is
+# not intended to be used alone.  Verify proper inclusion.
+
+.IFDEF INCL_DESCRIP_SRC
+.ELSE
+$$$$ THIS DESCRIPTION FILE IS NOT INTENDED TO BE USED THIS WAY.
+.ENDIF
+
+
+# Define MMK architecture macros when using MMS.
+
+.IFDEF __MMK__                  # __MMK__
+.ELSE                           # __MMK__
+ALPHA_X_ALPHA = 1
+IA64_X_IA64 = 1
+VAX_X_VAX = 1
+.IFDEF $(MMS$ARCH_NAME)_X_ALPHA     # $(MMS$ARCH_NAME)_X_ALPHA
+__ALPHA__ = 1
+.ENDIF                              # $(MMS$ARCH_NAME)_X_ALPHA
+.IFDEF $(MMS$ARCH_NAME)_X_IA64      # $(MMS$ARCH_NAME)_X_IA64
+__IA64__ = 1
+.ENDIF                              # $(MMS$ARCH_NAME)_X_IA64
+.IFDEF $(MMS$ARCH_NAME)_X_VAX       # $(MMS$ARCH_NAME)_X_VAX
+__VAX__ = 1
+.ENDIF                              # $(MMS$ARCH_NAME)_X_VAX
+.ENDIF                          # __MMK__
+
+# Analyze architecture-related and option macros.
+
+.IFDEF __ALPHA__                # __ALPHA__
+DESTM = ALPHA
+.ELSE                           # __ALPHA__
+.IFDEF __IA64__                     # __IA64__
+DESTM = IA64
+.ELSE                               # __IA64__
+.IFDEF __VAX__                          # __VAX__
+DESTM = VAX
+.ELSE                                   # __VAX__
+DESTM = UNK
+UNK_DEST = 1
+.ENDIF                                  # __VAX__
+.ENDIF                              # __IA64__
+.ENDIF                          # __ALPHA__
+
+.IFDEF LARGE                    # LARGE
+.IFDEF __VAX__                      # __VAX__
+DESTL =
+.ELSE                               # __VAX__
+DESTL = L
+.ENDIF                              # __VAX__
+.ELSE                           # LARGE
+DESTL =
+.ENDIF                          # LARGE
+
+DEST = $(DESTM)$(DESTL)
+
+# Check for option problems.
+
+.IFDEF __VAX__                  # __VAX__
+.IFDEF LARGE                        # LARGE
+LARGE_VAX = 1
+.ENDIF                              # LARGE
+.ENDIF                          # __VAX__
+
+# Complain if warranted.  Otherwise, show destination directory.
+# Make the destination directory, if necessary.
+                               
+.IFDEF UNK_DEST                 # UNK_DEST
+.FIRST
+       @ write sys$output -
+ "   Unknown system architecture."
+.IFDEF __MMK__                      # __MMK__
+       @ write sys$output -
+ "   MMK on IA64?  Try adding ""/MACRO = __IA64__""."
+.ELSE                               # __MMK__
+       @ write sys$output -
+ "   MMS too old?  Try adding ""/MACRO = MMS$ARCH_NAME=ALPHA"","
+       @ write sys$output -
+ "   or ""/MACRO = MMS$ARCH_NAME=IA64"", or ""/MACRO = MMS$ARCH_NAME=VAX"","
+       @ write sys$output -
+ "   as appropriate.  (Or try a newer version of MMS.)"
+.ENDIF                              # __MMK__
+       @ write sys$output ""
+       I_WILL_DIE_NOW.  /$$$$INVALID$$$$
+.ELSE                           # UNK_DEST
+.IFDEF LARGE_VAX                    # LARGE_VAX
+.FIRST
+       @ write sys$output -
+ "   Macro ""LARGE"" is invalid on VAX."
+       @ write sys$output ""
+       I_WILL_DIE_NOW.  /$$$$INVALID$$$$
+.ELSE                               # LARGE_VAX
+.FIRST
+       @ write sys$output "   Destination: [.$(DEST)]"
+       @ write sys$output ""
+       if (f$search( "$(DEST).DIR;1") .eqs. "") then -
+        create /directory [.$(DEST)]
+.ENDIF                              # LARGE_VAX
+.ENDIF                          # UNK_DEST
+
+# DBG options.
+
+.IFDEF DBG                      # DBG
+CFLAGS_DBG = /debug /nooptimize
+LINKFLAGS_DBG = /debug /traceback
+.ELSE                           # DBG
+CFLAGS_DBG =
+LINKFLAGS_DBG = /notraceback
+.ENDIF                          # DBG
+
+# Large-file options.
+
+.IFDEF LARGE                    # LARGE
+CDEFS_LARGE = , _LARGEFILE
+.ELSE                           # LARGE
+CDEFS_LARGE =
+.ENDIF                          # LARGE
+
+# C compiler defines.
+
+.IFDEF LOCAL_BZIP
+C_LOCAL_BZIP = , $(LOCAL_BZIP)
+.ELSE
+C_LOCAL_BZIP =
+.ENDIF
+
+CDEFS = VMS $(CDEFS_LARGE) $(C_LOCAL_BZIP)
+
+# Other C compiler options.
+
+CFLAGS_ARCH = /decc /prefix = (all)
+
+CFLAGS_INCL = /include = ([], [.vms])
+
+CFLAGS_NAMES = /names = as_is
+
+# LIST options.
+
+.IFDEF LIST                     # LIST
+.IFDEF DECC                         # DECC
+CFLAGS_LIST = /list = $*.LIS /show = (all, nomessages)
+.ELSE                               # DECC
+CFLAGS_LIST = /list = $*.LIS /show = (all)
+.ENDIF                              # DECC
+LINKFLAGS_LIST = /map = $*.MAP /cross_reference /full
+.ELSE                           # LIST
+CFLAGS_LIST =
+LINKFLAGS_LIST =
+.ENDIF                          # LIST
+
+# Common CFLAGS and LINKFLAGS.
+
+CFLAGS = \
+ $(CFLAGS_ARCH) $(CFLAGS_DBG) $(CFLAGS_INCL) $(CFLAGS_NAMES) \
+ $(CFLAGS_LIST) $(CCOPTS) \
+ /object = $(MMS$TARGET)
+
+CFLAGS_NS = \
+ $(CFLAGS_ARCH) $(CFLAGS_DBG) $(CFLAGS_INCL) $(CFLAGS_NAMES) \
+ $(CFLAGS_LIST) $(CCOPTS) \
+ /object = $(MMS$TARGET)
+
+LINKFLAGS = \
+ $(LINKFLAGS_DBG) $(LINKFLAGS_LIST) $(LINKOPTS) \
+ /executable = $(MMS$TARGET)
+
+# Object library module=object lists.
+
+#    Primary object library, [].
+
+MODS_OBJS_LIB_BZ2_N = \
+ blocksort=[.$(DEST)]BLOCKSORT.OBJ \
+ bzlib=[.$(DEST)]BZLIB.OBJ \
+ compress=[.$(DEST)]COMPRESS.OBJ \
+ crctable=[.$(DEST)]CRCTABLE.OBJ \
+ decompress=[.$(DEST)]DECOMPRESS.OBJ \
+ huffman=[.$(DEST)]HUFFMAN.OBJ \
+ randtable=[.$(DEST)]RANDTABLE.OBJ
+
+#    Primary object library, [.vms].
+
+MODS_OBJS_LIB_BZ2_V = \
+ vms_misc=[.$(DEST)]VMS_MISC.OBJ
+
+MODS_OBJS_LIB_BZ2 = $(MODS_OBJS_LIB_BZ2_N) $(MODS_OBJS_LIB_BZ2_V)
+
+#    Variant (BZ_NO_STDIO) object library, [].
+
+MODS_OBJS_LIB_BZ2_NS_N = \
+ blocksort=[.$(DEST)]BLOCKSORT_.OBJ \
+ bzlib=[.$(DEST)]BZLIB_.OBJ \
+ compress=[.$(DEST)]COMPRESS_.OBJ \
+ crctable=[.$(DEST)]CRCTABLE_.OBJ \
+ decompress=[.$(DEST)]DECOMPRESS_.OBJ \
+ huffman=[.$(DEST)]HUFFMAN_.OBJ \
+ randtable=[.$(DEST)]RANDTABLE_.OBJ
+
+MODS_OBJS_LIB_BZ2_NS = $(MODS_OBJS_LIB_BZ2_NS_N)
+
+
+# Executables.
+
+BZIP2_EXE = [.$(DEST)]BZIP2.EXE
+
+BZIP2RECOVER_EXE = [.$(DEST)]BZIP2RECOVER.EXE
+
+BZIPUTILS = $(BZIP2RECOVER_EXE)
+
+# MY_MODULE_NAME source file.
+
+MY_MODULE_NAME_H = [.vms]my_module_name.h
+
+# DECC_VER executable and object.
+
+DECC_VER_EXE = [.$(DEST)]DECC_VER.EXE
+
+DECC_VER_OBJ = [.$(DEST)]DECC_VER.OBJ
+
diff --git a/bzip2/vms/mod_dep.com b/bzip2/vms/mod_dep.com
new file mode 100644 (file)
index 0000000..bbc6d2d
--- /dev/null
@@ -0,0 +1,33 @@
+$!                                              3 March 2005.  SMS.
+$!
+$! Info-ZIP VMS accessory procedure.
+$!
+$!    Modify a dependencies file (P1), changing the object file name to
+$!    P2.
+$!    P3 = output file specification.
+$!
+$!
+$ prefix = f$edit( p3, "COLLAPSE")
+$!
+$! Strip any device:[directory] from P2.
+$!
+$ obj_name = f$parse( P2, , , "NAME", "SYNTAX_ONLY")+ -
+   f$parse( P2, , , "TYPE", "SYNTAX_ONLY")
+$!
+$ open /read /error = end_main deps_in 'p1'
+$ open /write /error = end_main deps_out 'p3'
+$ on error then goto loop_main_end
+$ loop_main_top:
+$     read /error = loop_main_end deps_in line
+$     line_reduced = f$edit( line, "COMPRESS, TRIM")
+$     colon = f$locate( " : ", line_reduced)
+$     line = obj_name+ f$extract( colon, 2000, line)
+$     write deps_out "''line'"
+$ goto loop_main_top
+$!
+$ loop_main_end:
+$ close deps_in
+$ close deps_out
+$!
+$ end_main:
+$!
diff --git a/bzip2/vms/my_module_name.h b/bzip2/vms/my_module_name.h
new file mode 100644 (file)
index 0000000..17008fb
--- /dev/null
@@ -0,0 +1,16 @@
+/* 2010-11-30 SMS.
+ *
+ * my_module_name.h
+ *
+ * DECC "#pragma module" directive to get an upper-case module name
+ * from a lower-case source file, to avoid annoying %MMS-W-GWKACTNOUPD
+ * or %MMK-I-ACTNOUPD complaints when adding modules to an object
+ * library.
+ *
+ * The C macro, MY_MODULE_NAME, must be defined appropriately.
+ */
+
+#ifdef __DECC
+# pragma module MY_MODULE_NAME
+#endif /* def __DECC */
+
diff --git a/bzip2/vms/vms_misc.c b/bzip2/vms/vms_misc.c
new file mode 100644 (file)
index 0000000..26578ab
--- /dev/null
@@ -0,0 +1,879 @@
+/* 2007-04-05 SMS.
+   VMS-specific code for BZIP2.
+*/
+
+#include <errno.h>
+#include <stat.h>
+#include <stdio.h>
+#include <string.h>
+
+/* Work around /NAMES = AS_IS problems on VAX. */
+
+#ifdef VAX
+# ifndef sys$close
+#  define sys$close SYS$CLOSE
+# endif /* ndef sys$close */
+# ifndef sys$getjpiw
+#  define sys$getjpiw SYS$GETJPIW
+# endif /* ndef sys$getjpiw */
+# ifndef sys$open
+#  define sys$open SYS$OPEN
+# endif /* ndef sys$open */
+# ifndef sys$parse
+#  define sys$parse SYS$PARSE
+# endif /* ndef sys$parse */
+# ifndef sys$search
+#  define sys$search SYS$SEARCH
+# endif /* ndef sys$search */
+#endif /* def VAX */
+
+#include <starlet.h>
+#include <jpidef.h>
+#if 0
+#include <fabdef.h>
+#include <namdef.h>
+#include <rabdef.h>
+#endif /* 0 */
+#include <fab.h>
+#include <nam.h>
+#include <rab.h>
+#include <rmsdef.h>
+#include <stsdef.h>
+#include <xabdef.h>
+#include <xabitmdef.h>
+
+#include "vms_misc.h"
+
+
+/* Define macros for use with either NAM or NAML. */
+
+#ifdef NAML$C_MAXRSS            /* NAML is available.  Use it. */
+
+#  define NAM_STRUCT NAML
+
+#  define FAB_OR_NAML( fab, nam) nam
+#  define FAB_OR_NAML_DNA naml$l_long_defname
+#  define FAB_OR_NAML_DNS naml$l_long_defname_size
+#  define FAB_OR_NAML_FNA naml$l_long_filename
+#  define FAB_OR_NAML_FNS naml$l_long_filename_size
+
+#  define CC_RMS_NAM cc$rms_naml
+#  define FAB_NAM fab$l_naml
+#  define NAME_DNA naml$l_long_defname
+#  define NAME_DNS naml$l_long_defname_size
+#  define NAME_FNA naml$l_long_filename
+#  define NAME_FNS naml$l_long_filename_size
+#  define NAM_DID naml$w_did
+#  define NAM_DVI naml$t_dvi
+#  define NAM_ESA naml$l_long_expand
+#  define NAM_ESL naml$l_long_expand_size
+#  define NAM_ESS naml$l_long_expand_alloc
+#  define NAM_FID naml$w_fid
+#  define NAM_FNB naml$l_fnb
+#  define NAM_RSA naml$l_long_result
+#  define NAM_RSL naml$l_long_result_size
+#  define NAM_RSS naml$l_long_result_alloc
+#  define NAM_MAXRSS NAML$C_MAXRSS
+#  define NAM_NOP naml$b_nop
+#  define NAM_M_SYNCHK NAML$M_SYNCHK
+#  define NAM_B_DEV naml$l_long_dev_size
+#  define NAM_L_DEV naml$l_long_dev
+#  define NAM_B_DIR naml$l_long_dir_size
+#  define NAM_L_DIR naml$l_long_dir
+#  define NAM_B_NAME naml$l_long_name_size
+#  define NAM_L_NAME naml$l_long_name
+#  define NAM_B_TYPE naml$l_long_type_size
+#  define NAM_L_TYPE naml$l_long_type
+#  define NAM_B_VER naml$l_long_ver_size
+#  define NAM_L_VER naml$l_long_ver
+
+#else /* def NAML$C_MAXRSS */   /* NAML is not available.  Use NAM. */
+
+#  define NAM_STRUCT NAM
+
+#  define FAB_OR_NAML( fab, nam) fab
+#  define FAB_OR_NAML_DNA fab$l_dna
+#  define FAB_OR_NAML_DNS fab$b_dns
+#  define FAB_OR_NAML_FNA fab$l_fna
+#  define FAB_OR_NAML_FNS fab$b_fns
+
+#  define CC_RMS_NAM cc$rms_nam
+#  define FAB_NAM fab$l_nam
+#  define NAME_DNA fab$l_dna
+#  define NAME_DNS fab$b_dns
+#  define NAME_FNA fab$l_fna
+#  define NAME_FNS fab$b_fns
+#  define NAM_DID nam$w_did
+#  define NAM_DVI nam$t_dvi
+#  define NAM_ESA nam$l_esa
+#  define NAM_ESL nam$b_esl
+#  define NAM_ESS nam$b_ess
+#  define NAM_FID nam$w_fid
+#  define NAM_FNB nam$l_fnb
+#  define NAM_RSA nam$l_rsa
+#  define NAM_RSL nam$b_rsl
+#  define NAM_RSS nam$b_rss
+#  define NAM_MAXRSS NAM$C_MAXRSS
+#  define NAM_NOP nam$b_nop
+#  define NAM_M_SYNCHK NAM$M_SYNCHK
+#  define NAM_B_DEV nam$b_dev
+#  define NAM_L_DEV nam$l_dev
+#  define NAM_B_DIR nam$b_dir
+#  define NAM_L_DIR nam$l_dir
+#  define NAM_B_NAME nam$b_name
+#  define NAM_L_NAME nam$l_name
+#  define NAM_B_TYPE nam$b_type
+#  define NAM_L_TYPE nam$l_type
+#  define NAM_B_VER nam$b_ver
+#  define NAM_L_VER nam$l_ver
+
+#endif /* def NAML$C_MAXRSS */
+
+
+/* 2005-09-29 SMS.
+ *
+ * vms_basename()
+ *
+ *    Extract the basename from a VMS file spec.
+ */
+
+char *vms_basename( char *file_spec)
+{
+    /* Static storage for NAM[L], and so on. */
+
+    static struct NAM_STRUCT nam;
+    static char exp_name[ NAM_MAXRSS+ 1];
+    static char res_name[ NAM_MAXRSS+ 1];
+
+    struct FAB fab;
+    int status;
+
+    /* Set up the FAB and NAM[L] blocks. */
+
+    fab = cc$rms_fab;                   /* Initialize FAB. */
+    nam = CC_RMS_NAM;                   /* Initialize NAM[L]. */
+
+    fab.FAB_NAM = &nam;                 /* FAB -> NAM[L] */
+
+#ifdef NAML$C_MAXRSS
+
+    fab.fab$l_dna = (char *) -1;    /* Using NAML for default name. */
+    fab.fab$l_fna = (char *) -1;    /* Using NAML for file name. */
+
+#endif /* def NAML$C_MAXRSS */
+
+    /* Arg name and length. */
+    FAB_OR_NAML( fab, nam).FAB_OR_NAML_FNA = file_spec;
+    FAB_OR_NAML( fab, nam).FAB_OR_NAML_FNS = strlen( file_spec);
+
+    nam.NAM_ESA = exp_name;         /* Expanded name. */
+    nam.NAM_ESS = NAM_MAXRSS;       /* Max length. */
+    nam.NAM_RSA = res_name;         /* Resulting name. */
+    nam.NAM_RSS = NAM_MAXRSS;       /* Max length. */
+
+    nam.NAM_NOP = NAM_M_SYNCHK;     /* Syntax-only analysis. */
+
+    /* Parse the file name. */
+    status = sys$parse( &fab);      /* What could go wrong? */
+
+    nam.NAM_L_NAME[ nam.NAM_B_NAME] = '\0';
+
+    return nam.NAM_L_NAME;
+}
+
+
+/* 2010-11-29 SMS.
+ *
+ * vms_redot()
+ *
+ *    De-caret-escape a caret-escaped last dot in a file spec.
+ */
+void vms_redot( char *file_spec)
+{
+    char chr;
+    char chr_l1;
+    int i;
+
+    i = strlen( file_spec)- 1;
+
+    /* Minimum length = 2 for "^.". */
+    if (i > 0)
+    {
+        int j = 0;              /* j < 0 -> done.  j > 0 -> "^." found. */
+
+        /* Loop through characters, right to left, until a directory
+         * delimiter or a dot is reached.
+         */
+        chr_l1 = file_spec[ i];
+        while ((i > 0) && (j == 0))
+        {
+            /* Shift our attention one character to the left. */
+            chr = chr_l1;
+            chr_l1 = file_spec[ --i];
+            switch (chr)
+            {
+                /* Quit when a directory delimiter is reached. */
+                case '/':
+                case ']':
+                case '>':
+                    if (chr_l1 != '^')
+                        j = -1;         /* Dir. delim.  (Nothing to do.) */
+                    break;
+                /* Quit when the right-most dot is reached. */
+                case '.':
+                    if (chr_l1 != '^')
+                        j = -1;         /* Plain dot.  (Nothing to do.) */
+                    else
+                        j = i;          /* Caret-escaped dot. */
+                    break;
+            }
+        }
+
+        /* If a caret-escaped dot was found, then shift the dot, and
+         * everything to its right, one position to the left.
+         */
+        if (j > 0)
+        {
+            char *cp = file_spec+ j;
+            do
+            {
+                *cp = *(cp+ 1);
+                cp++;
+            } while (*cp != '\0');
+        }
+    }
+}
+
+
+/* 2005-09-26 SMS.
+ *
+ * vms_wild()
+ *
+ *    Expand a wild-card file spec.  Exclude directory files.
+ *       First, call with real name.
+ *       Thereafter, call with NULL arg (until NULL is returned).
+ */
+
+char *vms_wild( char *file_spec, int *wild)
+{
+    /* Static storage for FAB, NAM[L], XAB, and so on. */
+
+    static struct NAM_STRUCT nam;
+    static char exp_name[ NAM_MAXRSS+ 1];
+    static char res_name[ NAM_MAXRSS+ 1];
+    static struct FAB fab;
+
+    /* XAB item descriptor set. */
+    static int is_directory;
+    static int xab_dir_len;
+
+    static struct
+    {
+        xxi_item_t xab_dir_itm;
+        int term;
+    } xab_itm_lst =
+     { { 4, XAB$_UCHAR_DIRECTORY, &is_directory, &xab_dir_len },
+       0
+     };
+
+    static struct XABITM xab_items =
+     { XAB$C_ITM, XAB$C_ITMLEN,
+#ifndef VAX     /* VAX has a peculiar XABITM structure declaration. */
+                                0,
+#endif /* ndef VAX */
+                                   NULL, &xab_itm_lst, XAB$K_SENSEMODE };
+
+    static int vms_wild_detected;
+
+    int status;
+    int unsuitable;
+
+    if (file_spec != NULL)
+    {
+        vms_wild_detected = 0;          /* Clear wild-card flag. */
+        if (wild != NULL)
+            *wild = 0;
+
+        /* Set up the FAB and NAM[L] blocks. */
+
+        fab = cc$rms_fab;               /* Initialize FAB. */
+        nam = CC_RMS_NAM;               /* Initialize NAM[L]. */
+
+        fab.FAB_NAM = &nam;             /* FAB -> NAM[L] */
+
+        /* FAB items for XAB attribute sensing. */
+        fab.fab$l_xab = (void *) &xab_items;
+        fab.fab$b_shr = FAB$M_SHRUPD;   /* Play well with others. */
+        fab.fab$b_fac = FAB$M_GET;
+        fab.fab$v_nam = 1;              /* Use sys$search() results. */
+
+#ifdef NAML$C_MAXRSS
+
+        fab.fab$l_dna = (char *) -1;    /* Using NAML for default name. */
+        fab.fab$l_fna = (char *) -1;    /* Using NAML for file name. */
+
+#endif /* def NAML$C_MAXRSS */
+
+        /* Arg wild name and length. */
+        FAB_OR_NAML( fab, nam).FAB_OR_NAML_FNA = file_spec;
+        FAB_OR_NAML( fab, nam).FAB_OR_NAML_FNS = strlen( file_spec);
+
+#define DEF_DEVDIR "SYS$DISK:[]*.*;0"
+
+        /* Default file spec and length. */
+        FAB_OR_NAML( fab, nam).FAB_OR_NAML_DNA = DEF_DEVDIR;
+        FAB_OR_NAML( fab, nam).FAB_OR_NAML_DNS = sizeof( DEF_DEVDIR)- 1;
+
+        nam.NAM_ESA = exp_name;         /* Expanded name. */
+        nam.NAM_ESS = NAM_MAXRSS;       /* Max length. */
+        nam.NAM_RSA = res_name;         /* Resulting name. */
+        nam.NAM_RSS = NAM_MAXRSS;       /* Max length. */
+
+        /* Parse the file name. */
+        status = sys$parse( &fab);
+
+        if (status != RMS$_NORMAL)
+        {
+            /* Parse failed.
+               Return original file spec and let someone else complain.
+            */
+            return file_spec;
+        }
+        /* Set the local wild-card flag. */
+        vms_wild_detected = ((nam.NAM_FNB& NAM$M_WILDCARD) != 0);
+        if (wild != NULL)
+            *wild = vms_wild_detected;
+    }
+    else if (vms_wild_detected == 0)
+    {
+        /* Non-first call with no wild-card in file spec.  Done. */
+        return NULL;
+    }
+
+    /* Search for the next matching file spec. */
+    unsuitable = 1;
+    while (unsuitable != 0)
+    {
+        status = sys$search( &fab);
+
+        if (status == RMS$_NORMAL)
+        {
+            /* Found one.  If suitable, return resultant file spec. */
+            status = sys$open( &fab);
+
+            /* Clear internal file index.
+               (Required after sys$open(), for next sys$search().)
+            */
+            fab.fab$w_ifi = 0;
+
+            if (status == RMS$_NORMAL)
+            {
+                unsuitable = is_directory;
+                status = sys$close( &fab);
+            }
+            else
+            {
+                /* Open failed.  Let someone else complain. */
+                unsuitable = 0;
+            }
+
+            if (!unsuitable)
+            {
+                /* Suitable.  Return the resultant file spec. */
+                res_name[ nam.NAM_RSL] = '\0';
+                return res_name;
+            }
+        }
+        else if (status == RMS$_NMF)
+        {
+            /* No more (wild-card) files.  Done. */
+            return NULL;
+        }
+        else
+        {
+            /* Unexpected search failure.
+               Return expanded file spec and let someone else complain.
+               Could probably return the original spec instead.
+            */
+            exp_name[ nam.NAM_ESL] = '\0';
+            return exp_name;
+        }
+    }
+}
+
+
+/* 2005-09-26 SMS.
+ *
+ * trimFileNameVersion()
+ *
+ *    Terminate a file name to discard (effectively) its version number.
+ *
+ *    Note: Exotic cases like A.B.1 (instead of A.B;1) are not handled
+ *    properly, but using sys$parse() to get this right causes its own
+ *    problems.  (String not trimmed in place, default device and
+ *    directory added, and so on.)
+ */
+
+void trimFileNameVersion( char *file_name)
+{
+   char *cp;
+
+   /* Find the first (apparent) non-version-digit. */
+   for (cp = file_name+ strlen( file_name)- 1;
+    (*cp >= '0') && (*cp <= '9') && (cp != file_name);
+    cp--);
+
+   /* If the pre-digit character exists and is an unescaped
+      semi-colon, then terminate the string at the semi-colon.
+   */
+   if (cp != file_name)
+   {
+      if ((*cp == ';') && (*(cp- 1) != '^'))
+      {
+         *cp = '\0';
+      }
+   }   
+   return;
+}
+
+
+/* 2004-11-23 SMS.
+ *
+ *       get_rms_defaults().
+ *
+ *    Get user-specified values from (DCL) SET RMS_DEFAULT.  FAB/RAB
+ *    items of particular interest are:
+ *
+ *       fab$w_deq         default extension quantity (blocks) (write).
+ *       rab$b_mbc         multi-block count.
+ *       rab$b_mbf         multi-buffer count (used with rah and wbh).
+ */
+
+extern int verbosity;
+
+#define DIAG_FLAG (verbosity >= 2)
+
+/* Default RMS parameter values. */
+
+#define RMS_DEQ_DEFAULT 16384   /* About 1/4 the max (65535 blocks). */
+#define RMS_MBC_DEFAULT 127     /* The max, */
+#define RMS_MBF_DEFAULT 2       /* Enough to enable rah and wbh. */
+
+/* Durable storage */
+
+static int rms_defaults_known = 0;
+
+/* JPI item buffers. */
+static unsigned short rms_ext;
+static char rms_mbc;
+static unsigned char rms_mbf;
+
+/* Active RMS item values. */
+unsigned short rms_ext_active;
+char rms_mbc_active;
+unsigned char rms_mbf_active;
+
+/* GETJPI item lengths. */
+static int rms_ext_len;         /* Should come back 2. */
+static int rms_mbc_len;         /* Should come back 1. */
+static int rms_mbf_len;         /* Should come back 1. */
+
+/* GETJPI item descriptor set. */
+
+struct
+    {
+    xxi_item_t rms_ext_itm;
+    xxi_item_t rms_mbc_itm;
+    xxi_item_t rms_mbf_itm;
+    int term;
+    } jpi_itm_lst =
+     { { 2, JPI$_RMS_EXTEND_SIZE, &rms_ext, &rms_ext_len },
+       { 1, JPI$_RMS_DFMBC, &rms_mbc, &rms_mbc_len },
+       { 1, JPI$_RMS_DFMBFSDK, &rms_mbf, &rms_mbf_len },
+       0
+     };
+
+int get_rms_defaults()
+{
+int sts;
+
+/* Get process RMS_DEFAULT values. */
+
+sts = sys$getjpiw( 0, 0, 0, &jpi_itm_lst, 0, 0, 0);
+if ((sts& STS$M_SEVERITY) != STS$K_SUCCESS)
+    {
+    /* Failed.  Don't try again. */
+    rms_defaults_known = -1;
+    }
+else
+    {
+    /* Fine, but don't come back. */
+    rms_defaults_known = 1;
+    }
+
+/* Limit the active values according to the RMS_DEFAULT values. */
+
+if (rms_defaults_known > 0)
+    {
+    /* Set the default values. */
+
+    rms_ext_active = RMS_DEQ_DEFAULT;
+    rms_mbc_active = RMS_MBC_DEFAULT;
+    rms_mbf_active = RMS_MBF_DEFAULT;
+
+    /* Default extend quantity.  Use the user value, if set. */
+    if (rms_ext > 0)
+        {
+        rms_ext_active = rms_ext;
+        }
+
+    /* Default multi-block count.  Use the user value, if set. */
+    if (rms_mbc > 0)
+        {
+        rms_mbc_active = rms_mbc;
+        }
+
+    /* Default multi-buffer count.  Use the user value, if set. */
+    if (rms_mbf > 0)
+        {
+        rms_mbf_active = rms_mbf;
+        }
+    }
+
+if (DIAG_FLAG)
+    {
+    fprintf( stderr,
+     "Get RMS defaults.  getjpi sts = %%x%08x.\n",
+     sts);
+
+    if (rms_defaults_known > 0)
+        {
+        fprintf( stderr,
+         "               Default: deq = %6d, mbc = %3d, mbf = %3d.\n",
+         rms_ext, rms_mbc, rms_mbf);
+        }
+    }
+return sts;
+}
+
+
+/* 2004-11-23 SMS.
+ *
+ *       acc_cb(), access callback function for DEC C fopen().
+ *
+ *    Set some RMS FAB/RAB items, with consideration of user-specified
+ * values from (DCL) SET RMS_DEFAULT.  Items of particular interest are:
+ *
+ *       fab$w_deq         default extension quantity (blocks).
+ *       rab$b_mbc         multi-block count.
+ *       rab$b_mbf         multi-buffer count (used with rah and wbh).
+ *
+ *    See also the FOP* macros in VMS.H.  Currently, no notice is
+ * taken of the caller-ID value, but options could be set differently
+ * for read versus write access.  (I assume that specifying fab$w_deq,
+ * for example, for a read-only file has no ill effects.)
+ */
+
+/* Global storage. */
+
+int fopr_id = FOPR_ID;          /* Callback id storage, read. */
+int fopw_id = FOPW_ID;          /* Callback id storage, write. */
+
+/* acc_cb() */
+
+int acc_cb( int *id_arg, struct FAB *fab, struct RAB *rab)
+{
+int sts;
+
+/* Get process RMS_DEFAULT values, if not already done. */
+if (rms_defaults_known == 0)
+    {
+    get_rms_defaults();
+    }
+
+/* If RMS_DEFAULT (and adjusted active) values are available, then set
+ * the FAB/RAB parameters.  If RMS_DEFAULT values are not available,
+ * suffer with the default parameters.
+ */
+if (rms_defaults_known > 0)
+    {
+    /* Set the FAB/RAB parameters accordingly. */
+    fab-> fab$w_deq = rms_ext_active;
+    rab-> rab$b_mbc = rms_mbc_active;
+    rab-> rab$b_mbf = rms_mbf_active;
+
+    /* Truncate at EOF on close, as we'll probably over-extend. */
+    fab-> fab$v_tef = 1;
+
+    /* If using multiple buffers, enable read-ahead and write-behind. */
+    if (rms_mbf_active > 1)
+        {
+        rab-> rab$v_rah = 1;
+        rab-> rab$v_wbh = 1;
+        }
+
+    /* Set the "sequential access only" flag to avoid excessive lock
+       time when writing on a file system with highwater marking
+       enabled.
+    */
+    fab-> fab$v_sqo = 1;
+
+    if (DIAG_FLAG)
+        {
+        fprintf( stderr,
+         "Open callback.  ID = %d, deq = %6d, mbc = %3d, mbf = %3d.\n",
+         *id_arg, fab-> fab$w_deq, rab-> rab$b_mbc, rab-> rab$b_mbf);
+        }
+    }
+
+/* Declare success. */
+return 0;
+}
+
+
+/*
+ * 2004-09-19 SMS.
+ *
+ *----------------------------------------------------------------------
+ *
+ *       decc_init()
+ *
+ *    On non-VAX systems, uses LIB$INITIALIZE to set a collection of C
+ *    RTL features without using the DECC$* logical name method.
+ *
+ *----------------------------------------------------------------------
+ */
+
+#ifdef __CRTL_VER
+
+#if !defined( __VAX) && (__CRTL_VER >= 70301000)
+
+#include <unixlib.h>
+
+/*--------------------------------------------------------------------*/
+
+/* Global storage. */
+
+/*    Flag to sense if decc_init() was called. */
+
+int decc_init_done = -1;
+
+/*--------------------------------------------------------------------*/
+
+/* decc_init()
+
+      Uses LIB$INITIALIZE to set a collection of C RTL features without
+      requiring the user to define the corresponding logical names.
+*/
+
+/* Structure to hold a DECC$* feature name and its desired value. */
+
+typedef struct
+   {
+   char *name;
+   int value;
+   } decc_feat_t;
+
+/* Array of DECC$* feature names and their desired values. */
+
+decc_feat_t decc_feat_array[] = {
+
+   /* Preserve command-line case with SET PROCESS/PARSE_STYLE=EXTENDED */
+ { "DECC$ARGV_PARSE_STYLE", 1 },
+
+   /* Preserve case for file names on ODS5 disks. */
+ { "DECC$EFS_CASE_PRESERVE", 1 },
+
+   /* Enable multiple dots (and most characters) in ODS5 file names,
+      while preserving VMS-ness of ";version". */
+ { "DECC$EFS_CHARSET", 1 },
+
+   /* List terminator. */
+ { (char *)NULL, 0 } };
+
+/* LIB$INITIALIZE initialization function. */
+
+static void decc_init( void)
+{
+int feat_index;
+int feat_value;
+int feat_value_max;
+int feat_value_min;
+int i;
+int sts;
+
+/* Set the global flag to indicate that LIB$INITIALIZE worked. */
+
+decc_init_done = 1;
+
+/* Loop through all items in the decc_feat_array[]. */
+
+for (i = 0; decc_feat_array[i].name != NULL; i++)
+   {
+   /* Get the feature index. */
+   feat_index = decc$feature_get_index( decc_feat_array[i].name);
+   if (feat_index >= 0)
+      {
+      /* Valid item.  Collect its properties. */
+      feat_value = decc$feature_get_value( feat_index, 1);
+      feat_value_min = decc$feature_get_value( feat_index, 2);
+      feat_value_max = decc$feature_get_value( feat_index, 3);
+
+      if ((decc_feat_array[i].value >= feat_value_min) &&
+          (decc_feat_array[i].value <= feat_value_max))
+         {
+         /* Valid value.  Set it if necessary. */
+         if (feat_value != decc_feat_array[i].value)
+            {
+            sts = decc$feature_set_value( feat_index,
+             1,
+             decc_feat_array[i].value);
+            }
+         }
+      else
+         {
+         /* Invalid DECC feature value. */
+         fprintf( stderr,
+          " INVALID DECC FEATURE VALUE, %d: %d <= %s <= %d.\n",
+          feat_value, feat_value_min, decc_feat_array[i].name,
+          feat_value_max);
+         }
+      }
+   else
+      {
+      /* Invalid DECC feature name. */
+      fprintf( stderr,
+       " UNKNOWN DECC FEATURE: %s.\n", decc_feat_array[i].name);
+      }
+   }
+}
+
+/* Get "decc_init()" into a valid, loaded LIB$INITIALIZE PSECT. */
+
+#pragma nostandard
+
+/* Establish the LIB$INITIALIZE PSECT, with proper alignment and
+   attributes.
+*/
+globaldef { "LIB$INITIALIZ" } readonly _align (LONGWORD)
+   int spare[8] = { 0 };
+globaldef { "LIB$INITIALIZE" } readonly _align (LONGWORD)
+   void (*x_decc_init)() = decc_init;
+
+/* Fake reference to ensure loading the LIB$INITIALIZE PSECT. */
+
+#pragma extern_model save
+int LIB$INITIALIZE( void);
+#pragma extern_model strict_refdef
+int dmy_lib$initialize = (int) LIB$INITIALIZE;
+#pragma extern_model restore
+
+#pragma standard
+
+#endif /* !defined( __VAX) && (__CRTL_VER >= 70301000) */
+
+#endif /* def __CRTL_VER */
+
+
+/* Private replacement functions for old C RTL. */
+
+/*
+ * str[n]casecmp() replacement for old C RTL.
+ * Assumes a prehistorically incompetent toupper().
+ */
+#if __CRTL_VER < 70000000
+
+#include <ctype.h>
+#include <stdlib.h>
+
+int bz2_prvt_strncasecmp( const char *s1, const char *s2, size_t n)
+{
+  /* Initialization prepares for n == 0. */
+  char c1 = '\0';
+  char c2 = '\0';
+
+  while (n-- > 0)
+  {
+    /* Set c1 and c2.  Convert lower-case characters to upper-case. */
+    if (islower( c1 = *s1))
+      c1 = toupper( c1);
+
+    if (islower( c2 = *s2))
+      c2 = toupper( c2);
+
+    /* Quit at inequality or NUL. */
+    if ((c1 != c2) || (c1 == '\0'))
+      break;
+
+    s1++;
+    s2++;
+  }
+return ((unsigned int) c1- (unsigned int) c2);
+}
+
+
+/*
+ * strdup() replacement for old C RTL.
+ */
+char *bz2_prvt_strdup( const char *s1)
+{
+    char *s2;
+
+    s2 = malloc( strlen( s1));
+    if (s2 != NULL)
+    {
+        strcpy( s2, s1);
+    }
+    return s2;
+}
+
+#endif /* __CRTL_VER < 70000000 */
+
+
+#if defined( __VAX) || (__CRTL_VER < 80300000)
+
+#include <unixio.h>
+
+int bz2_prvt_fchmod( int fd, mode_t mode)
+{
+    char file_name[ NAM_MAXRSS+ 1];
+
+    /* Get the file name associated with the (open) file descriptor. */
+    if (getname(fd, file_name) == 0)
+    {
+        /* getname() failed.  Return failure code. */
+        return 0;
+    }
+    else
+    {
+        /* getname() ok.  Return chmod() result. */
+        return chmod( file_name, mode);
+    }
+}
+
+#endif /* defined( __VAX) || (__CRTL_VER < 80300000) */
+
+
+#if __CRTL_VER < 70300000
+
+#include <unistd.h>
+
+int bz2_prvt_fchown( int fd, uid_t owner, gid_t group)
+{
+    char file_name[ NAM_MAXRSS+ 1];
+
+    /* Get the file name associated with the (open) file descriptor. */
+    if (getname(fd, file_name) == 0)
+    {
+        /* getname() failed.  Return failure code. */
+        return 0;
+    }
+    else
+    {
+        /* getname() ok.  Return chown() result. */
+        return chown( file_name, owner, group);
+    }
+}
+
+#endif /* __CRTL_VER < 70300000 */
+
diff --git a/bzip2/vms/vms_misc.h b/bzip2/vms/vms_misc.h
new file mode 100644 (file)
index 0000000..342b4c6
--- /dev/null
@@ -0,0 +1,111 @@
+/* 2007-04-05 SMS.
+   VMS-specific header associated with vms.c.
+*/
+
+#ifndef _VMS_H
+#define _VMS_H
+
+/* GETxxI item descriptor structure. */
+typedef struct
+    {
+    short buf_len;
+    short itm_cod;
+    void *buf;
+    int *ret_len;
+    } xxi_item_t;
+
+/* Desperation attempts to define unknown macros.  Probably doomed.
+ * If these get used, expect sys$getjpiw() to return %x00000014 =
+ * %SYSTEM-F-BADPARAM, bad parameter value.
+ * They keep compilers with old header files quiet, though.
+ */
+#ifndef JPI$_RMS_EXTEND_SIZE
+#  define JPI$_RMS_EXTEND_SIZE 542
+#endif /* ndef JPI$_RMS_EXTEND_SIZE */
+
+#ifndef JPI$_RMS_DFMBC
+#  define JPI$_RMS_DFMBC 535
+#endif /* ndef JPI$_RMS_DFMBC */
+
+#ifndef JPI$_RMS_DFMBFSDK
+#  define JPI$_RMS_DFMBFSDK 536
+#endif /* ndef JPI$_RMS_DFMBFSDK */
+
+/* File open callback ID values. */
+
+#  define FOPR_ID 1
+#  define FOPW_ID 2
+
+/* File open callback ID storage. */
+
+extern int fopr_id;
+extern int fopw_id;
+
+/* File open callback ID function. */
+
+extern int acc_cb();
+
+/* File name version trim function. */
+
+extern void trimFileNameVersion( char *file_name);
+
+/* Basename extraction function. */
+
+extern char *vms_basename( char *file_spec);
+
+/* File spec last-dot adjustment. */
+
+extern void vms_redot( char *file_spec);
+
+/* Wild-card file name expansion function. */
+
+extern char *vms_wild( char *file_spec, int *wild);
+
+
+/* Private C RTL replacement functions for old C RTL. */
+
+#   if __CRTL_VER < 70000000
+
+#      ifndef UINT_MAX
+#         define UINT_MAX 4294967295U
+#      endif
+
+#      define strdup( a) bz2_prvt_strdup( a)
+       char *strdup( const char *);
+
+#      define strcasecmp( s1, s2) bz2_prvt_strcasecmp( s1, s2)
+#      define bz2_prvt_strcasecmp( s1, s2) bz2_prvt_strncasecmp( s1, s2, UINT_MAX)
+#      define strncasecmp( s1, s2, n) bz2_prvt_strncasecmp( s1, s2, n)
+       int strncasecmp( const char *, const char *, size_t);
+
+#   endif /* __CRTL_VER < 70000000 */
+
+/* Note: The __CRTL_VER condition here for fchmod() is estimated. */
+#   if defined( __VAX) || (__CRTL_VER < 80300000)
+
+#      ifndef __MODE_T
+          typedef unsigned short mode_t;
+#      endif /* ndef __MODE_T */
+
+#      define fchmod( fd, mode) bz2_prvt_fchmod( fd, mode)
+       int bz2_prvt_fchmod( int fd, mode_t mode);
+
+#   endif /* defined( __VAX) || (__CRTL_VER < 80300000) */
+
+#   if __CRTL_VER < 70300000
+
+#      ifndef __GID_T
+          typedef unsigned int gid_t;
+#      endif /* ndef __GID_T */
+
+#      ifndef __UID_T
+          typedef unsigned int uid_t;
+#      endif /* ndef __UID_T */
+
+#      define fchown( fd, owner, group) bz2_prvt_fchown( fd, owner, group)
+       int bz2_prvt_fchown( int fd, uid_t owner, gid_t group);
+
+#   endif /* __CRTL_VER < 70300000 */
+
+#endif /* ndef _VMS_H */
+
diff --git a/bzip2/vms/vms_notes.txt b/bzip2/vms/vms_notes.txt
new file mode 100644 (file)
index 0000000..43d4fba
--- /dev/null
@@ -0,0 +1,294 @@
+                                                30 November 2010.  SMS.
+
+                      BZIP2 1.0.6a Changes for VMS
+                      ============================
+
+------------------------------------------------------------------------
+
+      Disclaimer
+      ----------
+
+   No claims of any sort are made herein.  The main BZIP2 developer
+seems indifferent to this effort.  Any suggestions for improving the
+code in the VMS-specific sections are welcome, but low expectations are
+more realistic than high ones.
+
+------------------------------------------------------------------------
+
+      Description
+      -----------
+
+   This note accompanies a quick VMS port of BZIP2 version 1.0.6, a
+freely available data compressor.  The most obvious features seem to
+work, but many have not been tested.
+
+   Built and tested (slightly) in these environments:
+
+OpenVMS Alpha V8.3, HP C V7.3-009.
+
+OpenVMS IA64 V8.3-1H1, HP C V7.3-019.  (See note below.)
+
+OpenVMS VAX V7.3, Compaq C V6.4-005.
+
+------------------------------------------------------------------------
+
+      Home source URL
+      ---------------
+
+http://www.bzip.org
+
+------------------------------------------------------------------------
+
+      News
+      ----
+
+   Version 1.0.6a  2010-11-29
+   --------------------------
+
+- General update to version 1.0.6.
+
+- Output file names are now adjusted after suffix removal, to avoid
+  undesired dot retention.  For example, the result of expanding
+  "fred^.tar.bz2" should now be "fred.tar", not "fred^.tar.".
+
+- Kits are now packaged on an ODS5 file system, obviating
+  [.VMS]VMS_NAME_FIX.SH, which is no longer included.
+
+- [.VMS]VMS.C and [.VMS]VMS.H have been renamed to [.vms]vms_misc.c and
+  [.vms]vms_misc.h, respectively, to accomodate changes to the builders
+  which were made to deal with complexities involving object module
+  names for source files with lower-case names.
+
+- The builders now build DECC_VER.EXE automatically.
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+
+   Version 1.0.5a  2008-03-20
+   --------------------------
+
+- General update to version 1.0.5.  No VMS-specific changes.
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+
+   Version 1.0.4b  2007-04-06
+   --------------------------
+
+- Changed BZIP2.C, [.VMS]VMS.C, and [.VMS]VMS.H to accomodate older VMS
+  and/or C RTL versions, by adding conditional replacement functions for
+  fchmod(), fchown(), strcasecmp(), and strdup().
+- Changed [.VMS]DESCRIP_SRC.MMS to let the user more easily build the
+  BZ_NO_STDIO object library (LIBBZ2_NS.OLB) from modules compiled
+  without the default option, /NAMES = AS_IS.  To do this, specify the
+  MMS macro CFLAGS_NAMES_NS defined to null (MMS /MACRO =
+  "CFLAGS_NAMES_NS").  Because of name collisions, only the BZ_NO_STDIO
+  object library may be built without case-sensitvity.
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+
+   Version 1.0.4a  2007-03-22
+   --------------------------
+
+- General update to version 1.0.4.
+- Minor changes to VMS builders.
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+
+   Version 1.0.3c  2006-12-29
+   --------------------------
+
+- Changed the VMS builders to create an additional (variant) object
+  library, LIBBZ2_NS.OLB, using objects built with the C macro
+  BZ_NO_STDIO, which may be needed by some applications.
+- Builders were ignoring most command-line C macros (spurious use of the
+  MMS macro "CDEFS_UNX" instead of "CDEFS").
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+
+   Version 1.0.3b  2004-10-07
+   --------------------------
+
+- Added code to the access callback function to set the "sequential
+  access only" (SQO) flag.  This avoids excessive lock time when writing
+  to a file system with highwater marking enabled.
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+
+   Version 1.0.3a  2004-10-04
+   --------------------------
+
+- Added on VMS a version suffix ("a") for the main program, BZIP2.
+
+- Changed on VMS to use "BZIP2_OPTS" and "BZIP_OPTS" as option
+  "environment variables" (instead of "BZIP2" and "BZIP") to avoid
+  colliding with foreign command symbols.
+
+- Changed on VMS to use "-bz2" and "-out" instead of ".bz2" and ".out"
+  on new compressed and uncompressed file names, respectively.
+
+- Added "-bz" and "-bz2" to the list of recognized suffixes for
+  compressed file names.  Changed suffix recognition on VMS to be
+  case-insensitive and to ignore file versions.
+
+- Added VMS wild-card file name expansion on VMS.
+
+- Added non-default RMS parameter setting on VMS for better I/O speed.
+
+- Command line case is preserved if SET PROCESS /PARSE_STYLE = EXTENDED.
+
+- Added MMS/MMK builder files.
+
+------------------------------------------------------------------------
+
+      Changes to Source Files
+      -----------------------
+
+
+   Files new for VMS (all in [.vms]):
+
+      collect_deps.com   Dependency collector for descrip_mkdeps.mms.
+
+      decc_ver.c         Program to show versions: VMS, C compiler, C
+                         run-time library.
+
+      descrip.mms        Main MMK or MMS description ("make") file.
+
+      DESCRIP_DEPS.MMS   Source dependency description file.
+
+      descrip_mkdeps.mms Source dependency generator description file.
+
+      descrip_src.mms    Source list description file.
+
+      mod_dep.com        Dependency modifier for descrip_mkdeps.mms.
+
+      my_module_name.h   "#pragma module" directive, used to obtain
+                         upper-case object module names from lower-case
+                         source files.
+
+      vms_misc.c         Various VMS-specific code: VMS file name
+                         manipulation, file name wildcard expansion,
+                         open callback function for better RMS
+                         parameters.
+
+      vms_misc.h         VMS-specific header file.
+
+      vms_notes.txt      These notes.
+
+
+   Files modified for VMS:
+
+      bzip2.c            Various VMS-specific changes: version suffix,
+                         use of a file open callback function and other
+                         file open changes, a new "#if BZ_VMS"
+                         conditional code section, new file name
+                         suffixes ("-bz2", "-bz", "-out"),
+                         case-insensitive file name comparison, last-dot
+                         adjustment after file name suffix removal.
+
+      bzip2recover.c     Added a declaration of "verbosity".
+
+      bzlib.c            Added new functions, BZ2_bzlibVersionBase() and
+                         BZ2_bzlibVersionDate()
+
+      bzlib.h            Added prototypes for new functions in bzlib.c.
+
+      bzlib_private.h    Changed to "#include <string.h>"
+                         unconditionally.
+                         Restructured the BZ_VERSION macro into separate
+                         BZ_VERSION_BASE and BZ_VERSION_DATE macros (for
+                         use with changes in bzlib.c).
+
+------------------------------------------------------------------------
+
+      Instructions
+      ------------
+
+   Extract the files from the distribution kit.  The kit includes
+objects and executables for Alpha, IA64, and VAX, in the corresponding
+host-specific subdirectories.
+
+   For details on the MMS/MMK builder, see the comments in
+[.vms]descrip.mms.  The build must be done from the main directory, not
+the [.vms] subdirectory.  The basic operations look like these (MMS
+shown, MMK similar):
+
+      SET DEFAULT [.bzip2-1_0_6a_vms]
+
+      MMS /DESC = [.vms] CLEAN          ! Deletes all object, list, map,
+                                        ! and executable files for the
+                                        ! current CPU type (small-file).
+
+      MMS /DESC = [.vms]                ! Builds the small-file object
+                                        ! libraries and executables.
+
+      MMS /DESC = [.vms] TEST           ! Runs the tests (small-file
+                                        ! executable shown).  See IA64
+                                        ! note below.
+
+      MMS /DESC = [.vms] /MACRO = LARGE=1 CLEAN ! Deletes all object,
+                                                ! list, map, and
+                                                ! executable files for
+                                                ! the current CPU type
+                                                ! (large-file, non-VAX).
+
+      MMS /DESC = [.vms] /MACRO = LARGE=1       ! Builds the large-file
+                                                ! object libraries and
+                                                ! executables (non-VAX).
+
+      MMS /DESC = [.vms] /MACRO = LARGE=1 TEST  ! Runs the tests
+                                                ! (large-file
+                                                ! executable, non-VAX).
+
+------------------------------------------------------------------------
+
+      Note for VMS IA64 - Possible Data Corruption
+      --------------------------------------------
+
+   There appears to be an optimizer problem with the HP C compilers
+identifying themselves as follows (and perhaps others):
+
+      HP C S7.1-013 on OpenVMS IA64 V8.2
+      HP C V7.2-001 on OpenVMS IA64 V8.2-1
+
+The problem appears to be solved in:
+
+      HP C V7.2-022 on OpenVMS IA64 V8.3
+      
+This problem causes the tests to fail ("bzip2/libbzip2: internal error
+number 3005.  [...]").  Because this problem will cause data corruption,
+it's important to run the tests before trusting this program and/or its
+object libraries.  A work-around which appears to be effective is to
+compile huffman.c with /OPTIMIZE = LEVEL = 1.  One way to do this is
+shown below.
+
+      MMS /DESC = [.vms] /MACRO = LARGE=1       ! Large-file shown.
+
+      MMS /DESC = [.vms] /MACRO = LARGE=1 TEST  ! If this fails:
+
+      DELETE [.IA64L]HUFFMAN*.OBJ;*             ! For small-file: [.IA64].
+
+      MMS /DESC = [.vms] /MACRO = ( LARGE=1, -  ! Special re-compile and
+       "CCOPTS=/OPTIMIZE=LEVEL=1" )             ! re-link.
+
+      MMS /DESC = [.vms] /MACRO = LARGE=1 TEST  ! Re-test.
+
+------------------------------------------------------------------------
+
+   The accompanying source kit may suffer from storage on an ODS2 file
+system, which does not preserve case or allow multiple dots in a file
+name.  Building this kit should work on VMS, but it may be expected to
+fail on other systems.  To use this kit on a non-VMS system, the files
+may need to be renamed to restore their original mixed-case and/or
+multi-dot names.  The UNIX shell script "vms_name_fix.sh" (or something
+like it) should do the job.
+
+   When reporting problems, especially build problems, with BZIP2 for
+VMS, it is often useful to reveal precise compiler, run-time library,
+and VMS version information.  The program decc_ver.c (included in the
+kit) is intended to make that easier.
+
+------------------------------------------------------------------------
+
+   Steven M. Schweda               (+1) 651-699-9818  (voice)
+   382 South Warwick Street        sms@antinode.info
+   Saint Paul  MN  55105-2547
+
diff --git a/bzip2/words0 b/bzip2/words0
new file mode 100644 (file)
index 0000000..fbf442a
--- /dev/null
@@ -0,0 +1,9 @@
+
+If compilation produces errors, or a large number of warnings,
+please read README.COMPILATION.PROBLEMS -- you might be able to
+adjust the flags in this Makefile to improve matters.
+
+Also in README.COMPILATION.PROBLEMS are some hints that may help
+if your build produces an executable which is unable to correctly
+handle so-called 'large files' -- files of size 2GB or more.
+
diff --git a/bzip2/words1 b/bzip2/words1
new file mode 100644 (file)
index 0000000..2e83de9
--- /dev/null
@@ -0,0 +1,4 @@
+
+Doing 6 tests (3 compress, 3 uncompress) ...
+If there's a problem, things might stop at this point.
diff --git a/bzip2/words2 b/bzip2/words2
new file mode 100644 (file)
index 0000000..caddcf4
--- /dev/null
@@ -0,0 +1,5 @@
+
+Checking test results.  If any of the four "cmp"s which follow
+report any differences, something is wrong.  If you can't easily
+figure out what, please let me know (jseward@bzip.org).
+
diff --git a/bzip2/words3 b/bzip2/words3
new file mode 100644 (file)
index 0000000..6972669
--- /dev/null
@@ -0,0 +1,30 @@
+
+If you got this far and the 'cmp's didn't complain, it looks
+like you're in business.  
+
+To install in /usr/local/bin, /usr/local/lib, /usr/local/man and 
+/usr/local/include, type
+
+   make install
+
+To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type 
+
+   make install PREFIX=/xxx/yyy
+
+If you are (justifiably) paranoid and want to see what 'make install'
+is going to do, you can first do
+
+   make -n install                      or
+   make -n install PREFIX=/xxx/yyy      respectively.
+
+The -n instructs make to show the commands it would execute, but
+not actually execute them.
+
+Instructions for use are in the preformatted manual page, in the file
+bzip2.txt.  For more detailed documentation, read the full manual.  
+It is available in Postscript form (manual.ps), PDF form (manual.pdf),
+and HTML form (manual.html).
+
+You can also do "bzip2 --help" to see some helpful information. 
+"bzip2 -L" displays the software license.
+
diff --git a/bzip2/xmlproc.sh b/bzip2/xmlproc.sh
new file mode 100644 (file)
index 0000000..ca284ea
--- /dev/null
@@ -0,0 +1,114 @@
+#!/bin/bash
+# see the README file for usage etc.
+#
+# ------------------------------------------------------------------
+#  This file is part of bzip2/libbzip2, a program and library for
+#  lossless, block-sorting data compression.
+#
+#  bzip2/libbzip2 version 1.0.6 of 6 September 2010
+#  Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
+#
+#  Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+#  README file.
+#
+#  This program is released under the terms of the license contained
+#  in the file LICENSE.
+# ----------------------------------------------------------------
+
+
+usage() {
+  echo '';
+  echo 'Usage: xmlproc.sh -[option] <filename.xml>';
+  echo 'Specify a target from:';
+  echo '-v      verify xml file conforms to dtd';
+  echo '-html   output in html format (single file)';
+  echo '-ps     output in postscript format';
+  echo '-pdf    output in pdf format';
+  exit;
+}
+
+if test $# -ne 2; then
+  usage
+fi
+# assign the variable for the output type
+action=$1; shift
+# assign the output filename
+xmlfile=$1; shift
+# and check user input it correct
+if !(test -f $xmlfile); then
+  echo "No such file: $xmlfile";
+  exit;
+fi
+# some other stuff we will use
+OUT=output
+xsl_fo=bz-fo.xsl
+xsl_html=bz-html.xsl
+
+basename=$xmlfile
+basename=${basename//'.xml'/''}
+
+fofile="${basename}.fo"
+htmlfile="${basename}.html"
+pdffile="${basename}.pdf"
+psfile="${basename}.ps"
+xmlfmtfile="${basename}.fmt"
+
+# first process the xmlfile with CDATA tags
+./format.pl $xmlfile $xmlfmtfile
+# so the shell knows where the catalogs live
+export XML_CATALOG_FILES=/etc/xml/catalog
+
+# post-processing tidy up
+cleanup() {
+  echo "Cleaning up: $@" 
+  while [ $# != 0 ]
+  do
+    arg=$1; shift;
+    echo "  deleting $arg";
+    rm $arg
+  done
+}
+
+case $action in
+  -v)
+   flags='--noout --xinclude --noblanks --postvalid'
+   dtd='--dtdvalid http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd'
+   xmllint $flags $dtd $xmlfmtfile 2> $OUT 
+   egrep 'error' $OUT 
+   rm $OUT
+  ;;
+
+  -html)
+   echo "Creating $htmlfile ..."
+   xsltproc --nonet --xinclude  -o $htmlfile $xsl_html $xmlfmtfile
+   cleanup $xmlfmtfile
+  ;;
+
+  -pdf)
+   echo "Creating $pdffile ..."
+   xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile
+   pdfxmltex $fofile >$OUT </dev/null
+   pdfxmltex $fofile >$OUT </dev/null
+   pdfxmltex $fofile >$OUT </dev/null
+   cleanup $OUT $xmlfmtfile *.aux *.fo *.log *.out
+  ;;
+
+  -ps)
+   echo "Creating $psfile ..."
+   xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile
+   pdfxmltex $fofile >$OUT </dev/null
+   pdfxmltex $fofile >$OUT </dev/null
+   pdfxmltex $fofile >$OUT </dev/null
+   pdftops $pdffile $psfile
+   cleanup $OUT $xmlfmtfile $pdffile *.aux *.fo *.log *.out
+#  passivetex is broken, so we can't go this route yet.
+#   xmltex $fofile >$OUT </dev/null
+#   xmltex $fofile >$OUT </dev/null
+#   xmltex $fofile >$OUT </dev/null
+#   dvips -R -q -o bzip-manual.ps *.dvi
+  ;;
+
+  *)
+  usage
+  ;;
+esac
diff --git a/crypt.c b/crypt.c
index 023f60a..a1661c0 100644 (file)
--- a/crypt.c
+++ b/crypt.c
@@ -222,8 +222,8 @@ local z_uint4 near *crytab_init(__G)
 #  ifdef IZ_CRYPT_TRAD
 
 /***********************************************************************
- * Write (Traditional) encryption header to file zfile using the password
- * passwd and the cyclic redundancy check crc.
+ * Write (Traditional) encryption header to file zfile using the
+ * password passwd and the cyclic redundancy check crc.
  */
 void crypthead(passwd, crc)
     ZCONST char *passwd;         /* password string */
@@ -603,9 +603,9 @@ int zipcloak(z, passwd)
     }
     else
     {
-        /* Determine AES encryption salt length, and header+trailer length.
-         * Header has salty stuff.  Trialer has Message Authentication
-         * Code (MAC).
+        /* Determine AES encryption salt length, and header+trailer
+         * length.  Header has salty stuff.  Trailer has Message
+         * Authentication Code (MAC).
          */
         /*                Note: v-- No parentheses in SALT_LENGTH def'n.   --v */
         salt_len = SALT_LENGTH( (encryption_method - (AES_MIN_ENCRYPTION - 1)) );
@@ -752,9 +752,9 @@ int zipbare(z, passwd)
     char aes_mode = 0;  /* AES encryption mode.  (Init'd to hush cmplr.) */
     ush aes_mthd = 0;   /* Actual compress method.  (Init'd to hush cmplr.) */
     ush how_orig;               /* Original encryption method. */
-    zoff_t n;                   /* Bytes actually read. */
-    zoff_t nn;                  /* Bytes requested. */
-    zoff_t nout;                /* Total bytes put out. */
+    size_t n;                   /* Bytes actually read. */
+    size_t nn;                  /* Bytes requested. */
+    uzoff_t nout;               /* Total bytes put out. */
 #   else /* def IZ_CRYPT_AES_WG */
 #    define HEAD_LEN RAND_HEAD_LEN      /* Constant trad. header length. */
 #   endif /* def IZ_CRYPT_AES_WG [else] */
@@ -925,7 +925,7 @@ int zipbare(z, passwd)
             if (n == nn)
             {
                 fcrypt_decrypt( buf, n, &zctx);
-                n = IZ_MIN( n, (z->siz- nout));
+                n = IZ_MIN( n, (z->siz - nout));
                 bfwrite( buf, 1, n, BFWRITE_DATA);
                 nout += n;      /* Bytes written. */
             }
diff --git a/crypt.h b/crypt.h
index 47b4c93..d81bda2 100644 (file)
--- a/crypt.h
+++ b/crypt.h
  */
 
 #ifndef __crypt_h       /* Don't include more than once. */
-#define __crypt_h
+# define __crypt_h
 
-/* To enable encryption (using crypt.c and crypt.h), the builder sets
- * one or both of:
+/* To enable encryption (use crypt.c and crypt.h), the builder sets one
+ * or both of:
  *
- *    IZ_CRYPT_AES_WG   Include AES (WinZip/Gladman) (strong) encryption.
- *    IZ_CRYPT_TRAD     Include Zip Traditional (weak) encryption.
+ *    IZ_CRYPT_AES_WG   Include strong AES (WinZip/Gladman) encryption.
+ *    IZ_CRYPT_TRAD     Include Zip traditional weak encryption.
  *
  * Other necessary macros are derived from these.
  *
@@ -45,7 +45,9 @@
  * version of either the Zip or UnZip source kit is needed.
  */
 
-# undef IZ_CRYPT_ANY
+# ifdef IZ_CRYPT_ANY
+#  undef IZ_CRYPT_ANY
+# endif
 # if defined( IZ_CRYPT_AES_WG) || defined( IZ_CRYPT_TRAD)
 #  define IZ_CRYPT_ANY
 # endif /* defined( IZ_CRYPT_AES_WG) || defined( IZ_CRYPT_TRAD) */
 #   include "aes_wg/fileenc.h"
 #  endif /* def IZ_CRYPT_AES_WG */
 
-#  ifdef CR_BETA
-#   undef CR_BETA       /* This is not a beta release. */
-#  endif
-
 #  ifndef CR_BETA
 #   define CR_BETA      /* This is a beta release. */
 #  endif
 
+#  ifdef CR_BETA
+#   undef CR_BETA       /* This is not a beta release. */
+#  endif
+
 #  define CR_MAJORVER        3
 #  define CR_MINORVER        0
 #  ifdef CR_BETA
-#   define CR_BETA_VER      "j BETA"
-#   define CR_VERSION_DATE  "21 Mar 2013"       /* Last real code change. */
+#   define CR_BETA_VER      "k BETA"
+#   define CR_VERSION_DATE  "01 Oct 2014"       /* Last real code change. */
 #  else
 #   define CR_BETA_VER      ""
-#   define CR_VERSION_DATE  "01 Apr 2013"       /* Last public release date. */
+#   define CR_VERSION_DATE  "01 Oct 2014"       /* Last public release date. */
 #   define CR_RELEASE
 #  endif
 
index 0d81967..13777fb 100644 (file)
@@ -274,118 +274,133 @@ OPTIONS (Primary Mode)
               Primary mode.  Display only the archive comment.
 
 OPTIONS (Ordinary)
+       -0
+       --no-char-set
+              Do not transform FAT/NTFS names.  By default, a particular char-
+              acter mapping (CP850) is applied to the names of archive members
+              which  originated  on a FAT or NTFS file system (typically on an
+              MS-DOS or Windows system).  This can cause unexpected characters
+              in  extracted  file names if the corresponding (inverse) mapping
+              was   not   used   when   the   archive   was   created.    With
+              -0/--no-char-set,  the extracted file name should agree with the
+              name stored in the archive.
+
+              On Unix (or BeOS), -0/--no-char-set  effectively  overrides  any
+              -I/--iso-char-set  or -O/--oem-char-set option which may also be
+              specified.
+
        -2
        --force-ods2
-              [VMS]  Convert  extracted  file  names to ODS2-compatible names,
-              even on an ODS5 file system.  By  default,  if  the  destination
-              file  system  is ODS5, case is preserved, and extended file name
+              [VMS] Convert extracted file  names  to  ODS2-compatible  names,
+              even  on  an  ODS5  file system.  By default, if the destination
+              file system is ODS5, case is preserved, and extended  file  name
               characters are caret-escaped as needed, while if the destination
-              file  system  is  ODS2,  ODS2-invalid characters are replaced by
+              file system is ODS2, ODS2-invalid  characters  are  replaced  by
               underscores.
 
        -A
        --api-help
-              [OS/2, Unix DLL] Print extended help for the  DLL's  application
+              [OS/2,  Unix  DLL] Print extended help for the DLL's application
               programming interface (API).
 
        -a
        --ascii
               Convert text files.  Ordinarily, all files are extracted exactly
-              as they are stored, byte-for-byte.  With -a, line endings  in  a
-              text  file  are  adjusted  to  the local standard as the file is
+              as  they  are stored, byte-for-byte.  With -a, line endings in a
+              text file are adjusted to the local  standard  as  the  file  is
               extracted.  When appropriate, ASCII<-->EBCDIC conversion is also
               done.
 
               Zip  (or  a  similar  archiving  program)  identifies  files  as
               "binary" or "text" when they are archived.  (A short-format Zip-
-              Info  report  denotes  a binary file with a "b", and a text file
+              Info report denotes a binary file with a "b", and  a  text  file
               with a "t".)  Zip's identification of text files may not be per-
-              fect,  so  UnZip prints "[binary]" or "[text]" as a visual check
-              for each file it extracts with -a.  The -aa  option  forces  all
+              fect, so UnZip prints "[binary]" or "[text]" as a  visual  check
+              for  each  file  it extracts with -a.  The -aa option forces all
               files to be extracted (and converted) as text, regardless of the
               supposed file type.
 
-              [VMS] On VMS, for archives with VMS attribute information  (made
-              with  "zip -V"  or  "ZIP /VMS"),  files  are always created with
-              their  original  record  formats.   For  archives  without   VMS
-              attribute  information  (not  made with "zip -V" or "ZIP /VMS"),
-              all files are normally created  with  Stream_LF  record  format.
-              With  -a,  text  files are normally created with variable-length
+              [VMS]  On VMS, for archives with VMS attribute information (made
+              with "zip -V" or "ZIP /VMS"),  files  are  always  created  with
+              their   original  record  formats.   For  archives  without  VMS
+              attribute information (not made with  "zip -V"  or  "ZIP /VMS"),
+              all  files  are  normally  created with Stream_LF record format.
+              With -a, text files are normally  created  with  variable-length
               record format, but adding -S gives them Stream_LF record format.
-              With  -aa, all files are treated as text files.  See also -b and
+              With -aa, all files are treated as text files.  See also -b  and
               -S.
 
        -B
        --backup
-              [when built with UNIXBACKUP enabled] Save a backup copy of  each
-              overwritten  file.   The backup file gets the name of the target
+              [when  built with UNIXBACKUP enabled] Save a backup copy of each
+              overwritten file.  The backup file gets the name of  the  target
               file with a tilde and optionally a unique sequence number (up to
-              5  digits)  appended.   The sequence number is appended whenever
-              another file with the original name plus tilde  already  exists.
+              5 digits) appended.  The sequence number  is  appended  whenever
+              another  file  with the original name plus tilde already exists.
               When used together with the "overwrite all" option, -o, numbered
-              backup files are never created.  In this case, all backup  files
-              are  named  as  the  original  file  with an appended tilde, and
-              existing backup files are deleted without notice.  This  feature
-              works  similarly  to  the  default  behavior of emacs(1) in many
+              backup  files are never created.  In this case, all backup files
+              are named as the original  file  with  an  appended  tilde,  and
+              existing  backup files are deleted without notice.  This feature
+              works similarly to the default  behavior  of  emacs(1)  in  many
               locations.
 
               Example: the old copy of "foo" is renamed to "foo~".
 
-              Warning: Users should be aware that the -B option does not  pre-
-              vent  loss  of existing data under all circumstances.  For exam-
+              Warning:  Users should be aware that the -B option does not pre-
+              vent loss of existing data under all circumstances.   For  exam-
               ple, when UnZip is run in overwrite-all mode, an existing "foo~"
               file is deleted before UnZip attempts to rename "foo" to "foo~".
               When this rename attempt fails (because of a file lock, insuffi-
               cient privileges, or any other reason), the extraction of "foo~"
               gets cancelled, but the old backup file is already lost.  A sim-
-              ilar  scenario  takes  place  when the sequence number range for
+              ilar scenario takes place when the  sequence  number  range  for
               numbered backup files gets exhausted (99999, or 65535 for 16-bit
-              systems).   In  this  case,  the  backup  file  with the maximum
-              sequence number is deleted and replaced by the new  backup  ver-
+              systems).  In this  case,  the  backup  file  with  the  maximum
+              sequence  number  is deleted and replaced by the new backup ver-
               sion without notice.
 
        -b
        --binary
-              [Tandem,  VMS] Selects the file record format used when extract-
-              ing binary files.  -b may conflict or interact with -a  in  dif-
+              [Tandem, VMS] Selects the file record format used when  extract-
+              ing  binary  files.  -b may conflict or interact with -a in dif-
               ferent ways on different system types.  -b is ignored on systems
               other than Tandem and VMS.
 
               Zip  (or  a  similar  archiving  program)  identifies  files  as
               "binary" or "text" when they are archived.  (A short-format Zip-
-              Info report denotes a binary file with a "b", and  a  text  file
+              Info  report  denotes  a binary file with a "b", and a text file
               with a "t".)
 
-              [Tandem]  Force  the creation files with filecode type 180 ('C')
+              [Tandem] Force the creation files with filecode type  180  ('C')
               when extracting archive members marked as "text". (On Tandem, -a
               is enabled by default, see above).
 
-              [VMS]  On VMS, for archives with VMS attribute information (made
-              with "zip -V" or "ZIP /VMS"),  files  are  always  created  with
-              their   original  record  formats.   For  archives  without  VMS
-              attribute information (not made with  "zip -V"  or  "ZIP /VMS"),
-              files  are  normally created with Stream_LF record format.  With
-              -b, binary files are created with fixed-length, 512-byte  record
-              format.   With -bb, all files are treated as binary files.  When
-              extracting to standard output (-c or -p option in  effect),  the
-              default  conversion  of  text  record delimiters is disabled for
+              [VMS] On VMS, for archives with VMS attribute information  (made
+              with  "zip -V"  or  "ZIP /VMS"),  files  are always created with
+              their  original  record  formats.   For  archives  without   VMS
+              attribute  information  (not  made with "zip -V" or "ZIP /VMS"),
+              files are normally created with Stream_LF record  format.   With
+              -b,  binary files are created with fixed-length, 512-byte record
+              format.  With -bb, all files are treated as binary files.   When
+              extracting  to  standard output (-c or -p option in effect), the
+              default conversion of text record  delimiters  is  disabled  for
               binary files (with -b), or for all files (with -bb).
 
        -C
        --ignore-case    ([CMS, MVS] --CMS-MVS-lower)
-              Use case-insensitive name matching for names in the member  list
-              and  the  -x  excluded-member  list  on  the  command  line.  By
+              Use  case-insensitive name matching for names in the member list
+              and the  -x  excluded-member  list  on  the  command  line.   By
               default, case-sensitive matching is done.  For example, specify-
               ing "makefile" on the command line will match only "makefile" in
               the archive, not "Makefile" or "MAKEFILE".  On many systems, the
-              local  file system is case-insensitive, so case-insensitive name
+              local file system is case-insensitive, so case-insensitive  name
               matching would be more natural.  With -C, "makefile" would match
               "makefile", "Makefile", or "MAKEFILE".
 
-              -C  does  not affect the search for the ZIP archive file(s), nor
+              -C does not affect the search for the ZIP archive  file(s),  nor
               the matching of archive members to existing files on the extrac-
-              tion  path.   So,  on  a  case-sensitive file system, UnZip will
-              never try to overwrite a file "FOO"  when  extracting  a  member
+              tion path.  So, on a  case-sensitive  file  system,  UnZip  will
+              never  try  to  overwrite  a file "FOO" when extracting a member
               named "foo"!
 
        -c
@@ -395,17 +410,17 @@ OPTIONS (Ordinary)
 
        -D
        --dir-timestamps
-              Control timestamps  on  extracted  files  and  directories.   By
-              default,  UnZip restores timestamps for extracted files, but not
-              for directories it creates.  Specifying -D tells  UnZip  not  to
-              restore  any  timestamps.  Specifying -D- tells UnZip to restore
-              timestamps for directories as well as other  items.   -D-  works
-              only  on systems that support setting timestamps for directories
-              (currently ATheOS, BeOS, MacOS, OS/2,  Unix,  VMS,  Win32).   On
+              Control  timestamps  on  extracted  files  and  directories.  By
+              default, UnZip restores timestamps for extracted files, but  not
+              for  directories  it  creates.  Specifying -D tells UnZip not to
+              restore any timestamps.  Specifying -D- tells UnZip  to  restore
+              timestamps  for  directories  as well as other items.  -D- works
+              only on systems that support setting timestamps for  directories
+              (currently  ATheOS,  BeOS,  MacOS,  OS/2, Unix, VMS, Win32).  On
               other systems, -D- has no effect.
 
-              [Non-VMS]  Timestamp  restoration behavior changed between UnZip
-              versions 6.00 and 6.10.  The following table shows  the  effects
+              [Non-VMS] Timestamp restoration behavior changed  between  UnZip
+              versions  6.00  and 6.10.  The following table shows the effects
               of various -D options for both versions.
 
                          UnZip version      |
@@ -415,69 +430,69 @@ OPTIONS (Ordinary)
                          -D     | (default) | Files, not directories.
                       (default) |    -D-    | Files and directories.
 
-              [VMS]  The  old behavior on VMS was the same as the new behavior
+              [VMS] The old behavior on VMS was the same as the  new  behavior
               on all systems.  (The old negated --D option is now -D-, because
               of changes to the command-line parser.)
 
        -d dest_dir
        --extract-dir dest_dir
-              Specifies  a  destination  directory  for  extracted  files.  By
+              Specifies a  destination  directory  for  extracted  files.   By
               default, files are extracted (and subdirectories created) in the
               current (default, working) directory.  With -d dest_dir, extrac-
-              tion is done into the specified directory,  instead.   See  also
+              tion  is  done  into the specified directory, instead.  See also
               -da.
 
-              The  option  and directory may be concatenated without any white
-              space between them, but this may cause normal shell behavior  to
-              be  suppressed.  For example, "-d ~" (tilde) is expanded by Unix
-              shells into the name of the user's home directory, but "-d~"  is
+              The option and directory may be concatenated without  any  white
+              space  between them, but this may cause normal shell behavior to
+              be suppressed.  For example, "-d ~" (tilde) is expanded by  Unix
+              shells  into the name of the user's home directory, but "-d~" is
               treated as a literal "~" subdirectory of the current directory.
 
-              [VMS]  On VMS, only a VMS-style device:[directory] specification
+              [VMS] On VMS, only a VMS-style device:[directory]  specification
               is permitted.
 
        -da[=reuse]
        --auto-extract-dir[=reuse]
-              Specifies a destination directory for extracted files  which  is
-              derived  from  the  base name of the archive.  By default, files
+              Specifies  a  destination directory for extracted files which is
+              derived from the base name of the archive.   By  default,  files
               are  extracted  (and  subdirectories  created)  in  the  current
-              (default,  working)  directory.   With  -da, UnZip automatically
-              derives a subdirectory name from the archive name, creates  that
+              (default, working) directory.   With  -da,  UnZip  automatically
+              derives  a subdirectory name from the archive name, creates that
               subdirectory, and extracts files into that subdirectory.
 
-              For  example,  with  -da,  extraction of "fred.zip" is done into
-              subdirectory "fred" instead of into the current directory.   (On
+              For example, with -da, extraction of  "fred.zip"  is  done  into
+              subdirectory  "fred" instead of into the current directory.  (On
               VMS, subdirectory "[.fred]".)
 
-              Using  this  option  can  help  to  avoid cluttering the current
-              directory with files extracted from an archive  whose  structure
+              Using this option can  help  to  avoid  cluttering  the  current
+              directory  with  files extracted from an archive whose structure
               does not include a top-level directory.
 
-              For  greater  safety,  by  default, UnZip will refuse to extract
-              into an automatic extraction  directory  which  already  exists.
-              Specifying  the  optional keyword "reuse" will allow an existing
+              For greater safety, by default, UnZip  will  refuse  to  extract
+              into  an  automatic  extraction  directory which already exists.
+              Specifying the optional keyword "reuse" will allow  an  existing
               directory to be used.
 
-              If -da is specified as a default option in an environment  vari-
+              If  -da is specified as a default option in an environment vari-
               able, it can be overridden by either a negated -da- option or an
               explicit -d dest_dir option.  See also -d.
 
        -E
        --mac-efs
-              [MacOS (pre-OS-X)] Display contents of MacOS extra field  during
+              [MacOS (pre-OS-X)]  Display contents of MacOS extra field during
               restore operation.
 
        -F
        --keep-nfs
-              [Acorn]  Suppress  removal of NFS filetype extension from stored
+              [Acorn] Suppress removal of NFS filetype extension  from  stored
               filenames.
 
-              [non-Acorn systems supporting long filenames with embedded  com-
-              mas,  and  only if compiled with ACORN_FTYPE_NFS defined] Trans-
-              late filetype information from ACORN RISC OS extra field  blocks
-              into  a NFS filetype extension and append it to the names of the
-              extracted files.  (When the stored filename appears  already  to
-              have  an  appended NFS filetype extension, it is replaced by the
+              [non-Acorn  systems supporting long filenames with embedded com-
+              mas, and only if compiled with ACORN_FTYPE_NFS  defined]  Trans-
+              late  filetype information from ACORN RISC OS extra field blocks
+              into a NFS filetype extension and append it to the names of  the
+              extracted  files.   (When the stored filename appears already to
+              have an appended NFS filetype extension, it is replaced  by  the
               info from the extra field.)
 
        -f
@@ -487,114 +502,114 @@ OPTIONS (Ordinary)
 
        -h
        --help
-              Primary  Mode.   Display brief (roughly 24 lines) usage instruc-
+              Primary Mode.  Display brief (roughly 24 lines)  usage  instruc-
               tions.  For details, see Primary Mode options.
 
        -hh
        --long-help
-              Primary  Mode.   Display  complete  usage   instructions.    For
+              Primary   Mode.    Display  complete  usage  instructions.   For
               details, see Primary Mode options.
 
        -I char_set
        --iso-char-set char_set
-              [Unix] Select ISO character set char_set.
+              [Unix] Select ISO character set char_set.  See also -0 and -O.
 
        -i
        --no-mac-ef-names
-              [MacOS (pre-OS-X)]   Ignore  filenames  stored  in  MacOS  extra
-              fields.  Instead, the most compatible  filename  stored  in  the
+              [MacOS (pre-OS-X)]  Ignore  filenames  stored  in  MacOS   extra
+              fields.   Instead,  the  most  compatible filename stored in the
               generic part of the member's header is used.
 
        -J
        --junk-attrs
-              [BeOS]  Junk  file  attributes.  The file's BeOS file attributes
+              [BeOS] Junk file attributes.  The file's  BeOS  file  attributes
               are not restored, only the file's data.
 
               [MacOS (pre-OS-X)] Ignore Mac OS extra fields.
 
-              [Mac OS X] Do no special Mac-specific processing of  AppleDouble
+              [Mac  OS X] Do no special Mac-specific processing of AppleDouble
               archive members.  An AppleDouble archive member is restored as a
               separate "._name" file, as it would be on a non-Mac file system.
 
                   Note that "-J" is not equivalent to
                   "-Je -Jf -Jr".  With "-J", an AppleDouble archive
-                  member is restored as a separate "._name" file, as it would be on a
-                  non-Mac file system.  With "-Je -Jf -Jr", all the data in an
-                  AppleDouble archive member are ignored, so the data fork file is
-                  restored with no extended attributes (-Je), no Finder info
-                  (-Jf), and no resource fork (-Jr); no "._name" file is
-                  created.
+                  member is restored as a separate "._name" file, as it would
+                  be on a non-Mac file system.  With "-Je -Jf -Jr", all the
+                  data in an AppleDouble archive member are ignored, so the
+                  data fork file is restored with no extended attributes
+                  (-Je), no Finder info (-Jf), and no resource fork (-Jr);
+                  no "._name" file is created.
 
               Note that -j acts on the path of an archive member, and is
               independent of the destination directory specified using -d or
               -da.  For example, with "-d zz -j=1", an archive
-              member like "a/b/c/d/ee.txt" would be extracted as "zz/b/c/d/ee.txt",
-              with -j=1 stripping the "a/" off the archive path, and
-              -d zz adding the "zz/" to the path in the destination file
-              system.
+              member like "a/b/c/d/ee.txt" would be extracted as
+              "zz/b/c/d/ee.txt", with -j=1 stripping the "a/" off the
+              archive path, and -d zz adding the "zz/" to the path in the
+              destination file system.
 
        -Je
        --junk-extattr
-              [Mac OS X] Ignore all  Mac  OS  extended  attributes.   Extended
-              attribute  processing  is  available on Mac OS X 10.4 and later.
+              [Mac  OS  X]  Ignore  all  Mac OS extended attributes.  Extended
+              attribute processing is available on Mac OS X  10.4  and  later.
               See also -J, -Jf, -Jq, and -Jr.
 
        -Jf
        --junk-finder
-              [Mac OS X] Ignore Mac OS Finder info.  See also  -J,  -Je,  -Jq,
+              [Mac  OS  X]  Ignore Mac OS Finder info.  See also -J, -Je, -Jq,
               and -Jr.
 
        -Jq
        --junk-qtn
-              [Mac  OS  X] Ignore Mac OS X Quarantine ("com.apple.quarantine")
-              extended attribute.  Use "-Je", to ignore  this  and  all  other
+              [Mac OS X] Ignore Mac OS X  Quarantine  ("com.apple.quarantine")
+              extended  attribute.   Use  "-Je",  to ignore this and all other
               extended attributes.  Extended attribute processing is available
               on Mac OS X 10.4 and later.  See also -J, -Je, -Jf, and -Jr.
 
        -Jr
        --junk-rsrc
-              [Mac OS X] Ignore Mac OS Resource fork.  See also -J, -Je,  -Jf,
+              [Mac  OS X] Ignore Mac OS Resource fork.  See also -J, -Je, -Jf,
               and -Jq.
 
        -j[=depth]
        --junk-dirs[=depth]
-              Junk  directories  on  extracted  files.  With -j, all directory
-              information is stripped from an  archive  member  name,  so  all
-              files  are  extracted into the destination directory.  (See also
+              Junk directories on extracted files.   With  -j,  all  directory
+              information  is  stripped  from  an  archive member name, so all
+              files are extracted into the destination directory.   (See  also
               -d and -da.)
 
               If a depth (=depth, where depth is a positive integer) is speci-
               fied, then that number of directory levels will be stripped from
-              an archive member name.  For example,  an  archive  member  like
-              "a/b/c/d/ee.txt"     would     normally    be    extracted    as
-              "a/b/c/d/ee.txt".  With -j, it would be extracted  as  "ee.txt".
-              With  -j=2, the first two directory levels would be stripped, so
+              an  archive  member  name.   For example, an archive member like
+              "a/b/c/d/ee.txt"    would    normally    be     extracted     as
+              "a/b/c/d/ee.txt".   With  -j, it would be extracted as "ee.txt".
+              With -j=2, the first two directory levels would be stripped,  so
               it would be extracted as "c/d/ee.txt".
 
        --jar
        Treat archive(s) as Java JAR.  Over-simplification in Java JAR archives
-       can  cause UnZip to transform UTF-8 file names according to inappropri-
-       ate (MS-DOS) rules, yielding corrupt names on  extracted  files  (typi-
-       cally  those with character codes 128-255).  Archives containing a Java
-       "CAFE" extra field should be detected automatically, and  handled  cor-
-       rectly,  but not all JAR archives include that extra field.  Specifying
+       can cause UnZip to transform UTF-8 file names according to  inappropri-
+       ate  (MS-DOS)  rules,  yielding corrupt names on extracted files (typi-
+       cally those with character codes 128-255).  Archives containing a  Java
+       "CAFE"  extra  field should be detected automatically, and handled cor-
+       rectly, but not all JAR archives include that extra field.   Specifying
        --jar tells UnZip to expect UTF-8 file names, regardless of whether the
        archive contains a "CAFE" extra field.
        -K
        --keep-s-attrs
               [AtheOS, BeOS, Unix] Retain SUID/SGID/Tacky permission bits.  By
-              default, these permission bits are cleared,  for  security  rea-
+              default,  these  permission  bits are cleared, for security rea-
               sons.
 
        -k
        --keep-permissions
-              [AtheOS,  BeOS,  Unix,  VMS] Control how archived permissions or
+              [AtheOS, BeOS, Unix, VMS] Control how  archived  permissions  or
               protections are restored on extracted files and directories.
 
-              By default, archived permissions are restored with some  limita-
-              tions.   On  AtheOS,  BeOS, and Unix, the current umask value is
-              applied (to the normal user/group/other permissions).   On  VMS,
-              the  current  default  protection  is  applied  to the UIC-based
+              By  default, archived permissions are restored with some limita-
+              tions.  On AtheOS, BeOS, and Unix, the current  umask  value  is
+              applied  (to  the normal user/group/other permissions).  On VMS,
+              the current default  protection  is  applied  to  the  UIC-based
               (SOGW) protections.
 
               With -k, the archived permissions are restored without regard to
@@ -605,8 +620,8 @@ OPTIONS (Ordinary)
               umask or VMS default protection is effective.  (On VMS, directo-
               ries are always created without any Delete access.)
 
-              On AtheOS, BeOS, and Unix, the SUID/SGID/Tacky  permission  bits
-              are  controlled  by  the -K/--keep-s-attrs option, regardless of
+              On  AtheOS,  BeOS, and Unix, the SUID/SGID/Tacky permission bits
+              are controlled by the -K/--keep-s-attrs  option,  regardless  of
               the -k/--keep-permissions setting.
 
        -ka
@@ -615,113 +630,113 @@ OPTIONS (Ordinary)
 
        -L
        --lowercase-names
-              Convert to lowercase any filename originating on  an  uppercase-
+              Convert  to  lowercase any filename originating on an uppercase-
               only operating system or file system.  (This was UnZip's default
-              behavior in versions before 5.11.  The current default  behavior
-              is  the  same as the old behavior with the -U option.  -U is now
+              behavior  in versions before 5.11.  The current default behavior
+              is the same as the old behavior with the -U option.  -U  is  now
               used for another purpose.)
 
-              Depending on the archiver, files archived from single-case  file
-              systems  (old  MS-DOS FAT, VMS ODS2, and so on) may be stored as
-              all-uppercase names; this  can  be  ugly  or  inconvenient  when
+              Depending  on the archiver, files archived from single-case file
+              systems (old MS-DOS FAT, VMS ODS2, and so on) may be  stored  as
+              all-uppercase  names;  this  can  be  ugly  or inconvenient when
               extracting to a case-preserving file system such as OS/2 HPFS or
-              a case-sensitive one such as on Unix.  By  default  UnZip  lists
+              a  case-sensitive  one  such as on Unix.  By default UnZip lists
               and extracts such filenames exactly as they're stored (excepting
-              truncation, conversion of unsupported  characters,  an  so  on).
-              With  -L,  the  names  of all files from certain systems will be
-              converted to lowercase.  With -LL, all file names will be  down-
+              truncation,  conversion  of  unsupported  characters, an so on).
+              With -L, the names of all files from  certain  systems  will  be
+              converted  to lowercase.  With -LL, all file names will be down-
               cased, regardless of the originating file system.
 
        -l
        --list
-              Primary  Mode.   List archive members.  For details, see Primary
+              Primary Mode.  List archive members.  For details,  see  Primary
               Mode options.
 
        -M    ([CMS,MVS] Or: -m)
        --more
-              Pipe all output through an internal pager similar  to  the  Unix
-              more(1)  command.   At  the  end of a screenful of output, UnZip
-              pauses with a "--More--"  prompt;  the  next  screenful  may  be
+              Pipe  all  output  through an internal pager similar to the Unix
+              more(1) command.  At the end of a  screenful  of  output,  UnZip
+              pauses  with  a  "--More--"  prompt;  the  next screenful may be
               viewed by pressing the Enter/Return key or the space bar.  UnZip
-              can be terminated by pressing the "Q" key and, on some  systems,
+              can  be terminated by pressing the "Q" key and, on some systems,
               the Enter/Return key.  Unlike Unix more(1), there is no forward-
-              searching or editing capability.  Also, UnZip doesn't notice  if
+              searching  or editing capability.  Also, UnZip doesn't notice if
               long lines wrap at the edge of the screen, effectively resulting
-              in the printing of two or more lines  and  the  likelihood  that
-              some  text  will  scroll  off the top of the screen before being
-              viewed.  If the actual number of lines on the screen can not  be
+              in  the  printing  of  two or more lines and the likelihood that
+              some text will scroll off the top of  the  screen  before  being
+              viewed.   If the actual number of lines on the screen can not be
               determined, 24 lines will be assumed.
 
        -N
        --comment-to-note
               [Amiga] Extract member comments as Amiga filenotes.  Member com-
-              ments are created with the -c option of  Zip,  or  with  the  -N
-              option  of the Amiga port of Zip, which stores filenotes as com-
+              ments  are  created  with  the  -c option of Zip, or with the -N
+              option of the Amiga port of Zip, which stores filenotes as  com-
               ments.
 
        -n
        --never-overwrite
-              When extracting, never overwrite  existing  files.   If  a  file
-              already  exists,  then  skip the extraction of that file without
+              When  extracting,  never  overwrite  existing  files.  If a file
+              already exists, then skip the extraction of  that  file  without
               asking.  See also -o (--overwrite).
 
-              By default, UnZip queries the user before  extracting  any  file
-              that  already exists.  The user may choose to overwrite only the
-              current file, overwrite all files, skip extraction of  the  cur-
-              rent  file, skip extraction of all existing files, or rename the
+              By  default,  UnZip  queries the user before extracting any file
+              that already exists.  The user may choose to overwrite only  the
+              current  file,  overwrite all files, skip extraction of the cur-
+              rent file, skip extraction of all existing files, or rename  the
               current file (choose a new name for the extracted file).
 
-              [VMS] On VMS, the usual query choices are to create a  new  ver-
-              sion  of  an existing file, to skip extraction, or to rename the
+              [VMS]  On  VMS, the usual query choices are to create a new ver-
+              sion of an existing file, to skip extraction, or to  rename  the
               current file.  In the case where an archive member name includes
-              a  version number, and -V ("retain VMS file version numbers") is
-              in effect, then an additional query choice is offered: to  over-
+              a version number, and -V ("retain VMS file version numbers")  is
+              in  effect, then an additional query choice is offered: to over-
               write the existing file.
 
        -O char_set
        --oem-char-set char_set
-              [Unix] Select OEM character set char_set.
+              [Unix] Select OEM character set char_set.  See also -0 and -I.
 
        -o
        --overwrite
               When extracting, always overwrite existing files without prompt-
-              ing.  This is a dangerous option, so use it with care.   (It  is
-              often  used  with  -f, however, and is the only way to overwrite
+              ing.   This  is a dangerous option, so use it with care.  (It is
+              often used with -f, however, and is the only  way  to  overwrite
               directory EAs on OS/2.)  See also -n (--never-overwrite).
 
-              By default, UnZip queries the user before  extracting  any  file
+              By  default,  UnZip  queries the user before extracting any file
               that already exists.
 
-              [Non-VMS]  On  non-VMS systems, the user may choose to overwrite
-              only the current file, overwrite all files, skip  extraction  of
-              the  current  file,  skip  extraction  of all existing files, or
-              rename the current file (choose a new  name  for  the  extracted
+              [Non-VMS] On non-VMS systems, the user may choose  to  overwrite
+              only  the  current file, overwrite all files, skip extraction of
+              the current file, skip extraction  of  all  existing  files,  or
+              rename  the  current  file  (choose a new name for the extracted
               file).
 
-              [VMS]  On  VMS, the usual query choices are to create a new ver-
-              sion of an existing file, to skip extraction, or to  rename  the
+              [VMS] On VMS, the usual query choices are to create a  new  ver-
+              sion  of  an existing file, to skip extraction, or to rename the
               current file.  In the case where an archive member name includes
-              a version number, and -V ("retain VMS file version numbers")  is
-              in  effect, then an additional query choice is offered: to over-
+              a  version number, and -V ("retain VMS file version numbers") is
+              in effect, then an additional query choice is offered: to  over-
               write the existing file.  In this case, -o selects the "new ver-
-              sion"  choice,  and  -oo  (or  "-o  -o") selects the "overwrite"
+              sion" choice, and -oo  (or  "-o  -o")  selects  the  "overwrite"
               choice.
 
        -P password
        --password password
-              Use password to decrypt  encrypted  archive  members  (if  any).
-              THIS  IS  INSECURE!   Many  multi-user operating systems provide
-              ways for any user to see the current command line of  any  other
-              user.   Even  on stand-alone systems, there is always the threat
+              Use  password  to  decrypt  encrypted  archive members (if any).
+              THIS IS INSECURE!  Many  multi-user  operating  systems  provide
+              ways  for  any user to see the current command line of any other
+              user.  Even on stand-alone systems, there is always  the  threat
               of over-the-shoulder peeking.  Storing the plaintext password as
-              part  of  a command line in an automated script can be even less
-              secure,  Whenever possible,  use  the  non-echoing,  interactive
-              prompt  to  enter passwords.  Where security is truly important,
+              part of a command line in an automated script can be  even  less
+              secure,   Whenever  possible,  use  the non-echoing, interactive
+              prompt to enter passwords.  Where security is  truly  important,
               use a strong encryption method, such as AES, instead of the rel-
-              atively  weak encryption provided by Traditional ZIP encryption.
-              Or, use an external encryption program, such  as  GnuPG,  before
+              atively weak encryption provided by Traditional ZIP  encryption.
+              Or,  use  an  external encryption program, such as GnuPG, before
               archiving the file.  (Note that Zip will probably not be able to
-              do significant compression on a  file  which  has  already  been
+              do  significant  compression  on  a  file which has already been
               encrypted.)
 
        -p
@@ -731,11 +746,11 @@ OPTIONS (Ordinary)
 
        -q
        --quiet
-              Perform operations  quietly.   (-qq:  even  more  quietly).   By
-              default,  UnZip prints the names of the files it's extracting or
-              testing, the extraction methods, any member or archive  comments
-              that  may  be stored in the archive, and possibly a summary when
-              finished with each archive.   The  -q[q]  options  suppress  the
+              Perform  operations  quietly.   (-qq:  even  more  quietly).  By
+              default, UnZip prints the names of the files it's extracting  or
+              testing,  the extraction methods, any member or archive comments
+              that may be stored in the archive, and possibly a  summary  when
+              finished  with  each  archive.   The  -q[q] options suppress the
               printing of some or all of these messages.
 
        -r
@@ -745,103 +760,103 @@ OPTIONS (Ordinary)
        -S
        --streamlf
               [VMS] Use Stream_LF record format when converting extracted text
-              files (-a, -aa), instead of  the  text-file  default,  variable-
+              files  (-a,  -aa),  instead  of the text-file default, variable-
               length record format.
 
-              [VMS]  On VMS, for archives with VMS attribute information (made
-              with "zip -V" or "ZIP /VMS"),  files  are  always  created  with
-              their   original  record  formats.   For  archives  without  VMS
-              attribute information (not made with  "zip -V"  or  "ZIP /VMS"),
-              all  files  are  normally  created with Stream_LF record format.
-              With -a, text files are normally  created  with  variable-length
+              [VMS] On VMS, for archives with VMS attribute information  (made
+              with  "zip -V"  or  "ZIP /VMS"),  files  are always created with
+              their  original  record  formats.   For  archives  without   VMS
+              attribute  information  (not  made with "zip -V" or "ZIP /VMS"),
+              all files are normally created  with  Stream_LF  record  format.
+              With  -a,  text  files are normally created with variable-length
               record format, but adding -S gives them Stream_LF record format.
-              With -aa, all files are treated as text files.  See also -a  and
+              With  -aa, all files are treated as text files.  See also -a and
               -b.
 
        -s
        --space-to-uscore
               Convert spaces in filenames to underscores.  Normally, on a sys-
-              tem which allows spaces in filenames, UnZip  extracts  filenames
-              with  spaces  intact (for example, "EA DATA. SF").  Working with
-              such file names can be awkward, however, so -s can  be  used  to
+              tem  which  allows spaces in filenames, UnZip extracts filenames
+              with spaces intact (for example, "EA DATA. SF").   Working  with
+              such  file  names  can be awkward, however, so -s can be used to
               replace spaces with underscores.
 
        -sc
        --show-command
               Show processed command line (options, arguments), and then exit.
 
-              Strictly  speaking  this  is  a  primary-mode  option,  but it's
+              Strictly speaking  this  is  a  primary-mode  option,  but  it's
               intended for use in program development, not for normal use.
 
        -si
        --show-pid
-              [Non-VMS] Show the UnZip program's process ID (pid) before  per-
-              forming  any other work.  This value can then be used in a "kill
+              [Non-VMS]  Show the UnZip program's process ID (pid) before per-
+              forming any other work.  This value can then be used in a  "kill
               -USR1 pid" command to trigger a user-triggered progress report.
 
        -so
        --show-options
               Display all valid program options, then exit.
 
-              Strictly speaking  this  is  a  primary-mode  option,  but  it's
+              Strictly  speaking  this  is  a  primary-mode  option,  but it's
               intended for use in program development, not for normal use.
 
        -T
        --timestamp-new
-              Primary  Mode.   Set  the timestamp on the archive(s) to that of
-              the newest file in each one.   For  details,  see  Primary  Mode
+              Primary Mode.  Set the timestamp on the archive(s)  to  that  of
+              the  newest  file  in  each  one.  For details, see Primary Mode
               options.
 
        -t
        --test
-              Primary  Mode.   Test archive members.  For details, see Primary
+              Primary Mode.  Test archive members.  For details,  see  Primary
               Mode options.
 
        -U
        --unicode
-              [UNICODE_SUPPORT] Control UTF-8 handling.  When  UNICODE_SUPPORT
+              [UNICODE_SUPPORT]  Control UTF-8 handling.  When UNICODE_SUPPORT
               is available, -U forces UnZip to escape all non-ASCII characters
               from UTF-8 coded filenames as "#Uxxxx' (for UCS-2 characters, or
-              "#Lxxxxxx"  for  Unicode  codepoints  needing  3  octets).  This
-              option is provided mainly for debugging,  when  the  fairly  new
+              "#Lxxxxxx" for  Unicode  codepoints  needing  3  octets).   This
+              option  is  provided  mainly  for debugging, when the fairly new
               UTF-8 support is suspected of mangling extracted filenames.
 
-              -UU  disables  the  recognition of UTF-8 encoded filenames.  The
-              handling of filename codings within  UnZip  falls  back  to  the
+              -UU disables the recognition of UTF-8  encoded  filenames.   The
+              handling  of  filename  codings  within  UnZip falls back to the
               behavior of pre-Unicode versions.
 
-              [old,  obsolete  usage]  Leave filenames uppercase if created on
+              [old, obsolete usage] Leave filenames uppercase  if  created  on
               MS-DOS, VMS, and so on.  See -L.
 
        -u
        --update
-              Primary mode.  Update existing files  and  create  new  ones  if
+              Primary  mode.   Update  existing  files  and create new ones if
               needed.  For details, see Primary Mode options.
 
        -V
        --keep-versions
               [Non-CMS-MVS] Retain VMS file version numbers.  VMS files can be
-              stored with a version  number,  in  the  format  "file.type;##",
-              where  "##"  is a positive decimal number.  By default VMS ";##"
-              version numbers are stripped, but this option allows them to  be
+              stored  with  a  version  number,  in the format "file.type;##",
+              where "##" is a positive decimal number.  By default  VMS  ";##"
+              version  numbers are stripped, but this option allows them to be
               retained.  (On file systems that limit filenames to particularly
-              short lengths, the version numbers may be truncated or  stripped
+              short  lengths, the version numbers may be truncated or stripped
               regardless of this option.)
 
               [Non-VMS] Note that before UnZip version 6.10, on a non-VMS sys-
-              tem, a file with a name like "fred;123" would,  by  default,  be
+              tem,  a  file  with a name like "fred;123" would, by default, be
               extracted as "fred", even if the file did not originate on a VMS
-              system (so that ";123" was probably not  really  a  VMS  version
-              number).   Beginning with UnZip version 6.10, the default behav-
-              ior is to strip VMS version numbers only from files  which  were
-              archived  on  a  VMS  system.   To restore the old behavior, and
+              system  (so  that  ";123"  was probably not really a VMS version
+              number).  Beginning with UnZip version 6.10, the default  behav-
+              ior  is  to strip VMS version numbers only from files which were
+              archived on a VMS system.  To  restore  the  old  behavior,  and
               always strip apparent VMS version numbers, explicitly negate the
               option: -V-.
 
-              [VMS]  Note that on VMS, -V affects only version numbers, and is
-              not needed to restore VMS  file  attributes.   Zip's  -V  (/VMS)
-              option  is  required  to store VMS attributes in an archive.  If
-              that was done when an  archive  was  created,  then  UnZip  will
+              [VMS] Note that on VMS, -V affects only version numbers, and  is
+              not  needed  to  restore  VMS  file attributes.  Zip's -V (/VMS)
+              option is required to store VMS attributes in  an  archive.   If
+              that  was  done  when  an  archive  was created, then UnZip will
               always restore those attributes when a file is extracted.
 
        -v
@@ -849,8 +864,8 @@ OPTIONS (Ordinary)
               When used with some primary mode option, -v can make output more
               verbose.  See also Primary Mode options, and -l in particular.
 
-              Note: If only -v (--verbose) is specified with an archive  name,
-              then  UnZip  acts  as  if "-l -v" were specified, and a detailed
+              Note:  If only -v (--verbose) is specified with an archive name,
+              then UnZip acts as if "-l -v" were  specified,  and  a  detailed
               listing is generated.
 
        --version
@@ -859,15 +874,15 @@ OPTIONS (Ordinary)
 
        -W
        --wild-no-span
-              [WILD_STOP_AT_DIR] (Valid when the program was built with the  C
+              [WILD_STOP_AT_DIR]  (Valid when the program was built with the C
               macro WILD_STOP_AT_DIR defined.)  By default, the wildcard char-
               acters "?"  (single-character wildcard) and "*" (multi-character
               wildcard) match any character in a member path/name.  "-W" modi-
-              fies the pattern-matching behavior for archive members  so  that
-              both  "?"   (single-character wildcard) and "*" (multi-character
-              wildcard) do not match the directory  separator  character  "/".
+              fies  the  pattern-matching behavior for archive members so that
+              both "?"  (single-character wildcard) and  "*"  (multi-character
+              wildcard)  do  not  match the directory separator character "/".
               (The two-character sequence "**" acts as a multi-character wild-
-              card that includes the directory separator in its matched  char-
+              card  that includes the directory separator in its matched char-
               acters.)  For example, with "-W":
 
                "*.c"   matches "foo.c" but not "mydir/foo.c"
@@ -876,161 +891,161 @@ OPTIONS (Ordinary)
                "??*/*" matches "ab/foo" and "abc/foo"
                        but not "a/foo" or "a/b/foo"
 
-              This  modified  behavior  is  equivalent to the pattern matching
+              This modified behavior is equivalent  to  the  pattern  matching
               style used by the shells of some of UnZip's supported target OSs
-              (one  example  is Acorn RISC OS).  This option may not be avail-
+              (one example is Acorn RISC OS).  This option may not  be  avail-
               able on systems where the Zip archive's internal directory sepa-
-              rator  character  "/"  is allowed as regular character in native
+              rator character "/" is allowed as regular  character  in  native
               operating system filenames.
 
-              [non-VMS] Currently, UnZip uses the same pattern matching  rules
-              for  both  wildcard archive file name specifications and archive
-              member selection patterns on most  system  types.   For  systems
-              allowing  "/" as regular filename character, the -W option would
+              [non-VMS]  Currently, UnZip uses the same pattern matching rules
+              for both wildcard archive file name specifications  and  archive
+              member  selection  patterns  on  most system types.  For systems
+              allowing "/" as regular filename character, the -W option  would
               not work as expected on a wildcard file name specification.
 
        -X
        --restore-owner
               [NT, OS/2, Unix, VMS, Tandem] Restore owner info (user and group
-              info  (UID/GID)  on  Unix,  UIC  on VMS, or access control lists
-              (ACLs) on certain network-enabled versions of OS/2 (Warp  Server
-              with  IBM LAN Server/Requester 3.0 to 5.0; Warp Connect with IBM
-              Peer 1.0), or security ACLs on Windows NT.)  In most cases  this
-              will  require special system privileges, and doubling the option
-              (-XX) on NT instructs UnZip to use  privileges  for  extraction;
-              but  on  Unix, for example, a user who belongs to several groups
-              can restore files owned by any of those groups, so long  as  the
+              info (UID/GID) on Unix, UIC on  VMS,  or  access  control  lists
+              (ACLs)  on certain network-enabled versions of OS/2 (Warp Server
+              with IBM LAN Server/Requester 3.0 to 5.0; Warp Connect with  IBM
+              Peer  1.0), or security ACLs on Windows NT.)  In most cases this
+              will require special system privileges, and doubling the  option
+              (-XX)  on  NT  instructs UnZip to use privileges for extraction;
+              but on Unix, for example, a user who belongs to  several  groups
+              can  restore  files owned by any of those groups, so long as the
               user  IDs  match  the  user's  own.   Note  that  ordinary  file
-              attributes are always restored.  This  option  applies  only  to
-              optional,  extra ownership info available on some operating sys-
+              attributes  are  always  restored.   This option applies only to
+              optional, extra ownership info available on some operating  sys-
               tems.  (NT's access control lists do not appear to be especially
-              compatible  with OS/2's, so no attempt is made at cross-platform
-              portability of access privileges.  It is not clear  under  which
+              compatible with OS/2's, so no attempt is made at  cross-platform
+              portability  of  access privileges.  It is not clear under which
               conditions this would ever be useful anyway.)
 
        -x member ...
        --exclude member ...
               An optional list of archive members to be excluded from process-
-              ing.  Because wildcard characters normally match  "/"  directory
-              separators  (for exceptions, see the option -W), this option may
-              be used to exclude any files that are  in  subdirectories.   For
-              example,  "unzip foo *.[ch] -x */*"  would  extract all C source
-              files (*.c, *.h) in the main directory, but none in  any  subdi-
-              rectories.   Without  the  -x  option, all C source files in all
+              ing.   Because  wildcard characters normally match "/" directory
+              separators (for exceptions, see the option -W), this option  may
+              be  used  to  exclude any files that are in subdirectories.  For
+              example, "unzip foo *.[ch] -x */*" would extract  all  C  source
+              files  (*.c,  *.h) in the main directory, but none in any subdi-
+              rectories.  Without the -x option, all C  source  files  in  all
               directories within the archive would be extracted.
 
               When the program sees -x (--exclude) on a command line, it stops
               scanning for options, and treats every succeeding item as an ar-
-              chive member name.  To avoid confusion between member names  and
+              chive  member name.  To avoid confusion between member names and
               command options, it's simplest to specify -x (--exclude) and its
               member list as the last items on a command line.  Alternatively,
-              the  special  name  "@" can be used to terminate the member list
-              (and cause the program to resume scanning  for  options).   That
+              the special name "@" can be used to terminate  the  member  list
+              (and  cause  the  program to resume scanning for options).  That
               is, the following two commands are equivalent:
                         unzip fred.zip -b -x file1 file2 file3
                         unzip fred.zip -x file1 file2 file3 @ -b
 
        -Y
        --dot-version
-              [VMS]  Treat  archive member name endings of ".nnn" (where "nnn"
-              is a decimal  number)  as  if  they  were  VMS  version  numbers
-              (";nnn").   (The  default  is to treat them as file types.)  For
+              [VMS] Treat archive member name endings of ".nnn"  (where  "nnn"
+              is  a  decimal  number)  as  if  they  were  VMS version numbers
+              (";nnn").  (The default is to treat them as  file  types.)   For
               example:
                        "a.b.3" -> "a.b;3"
 
        -Z
        --zipinfo-mode
-              ZipInfo mode.  If the first option on the command  line  is  -Z,
-              then  the  program  runs in ZipInfo mode.  Remaining options are
+              ZipInfo  mode.   If  the first option on the command line is -Z,
+              then the program runs in ZipInfo mode.   Remaining  options  are
               interpreted as ZipInfo options.  See the zipinfo manual page for
               a description of those options.
 
        -z
        --zipfile-comment
-              Primary  mode.   Display only the archive comment.  For details,
+              Primary mode.  Display only the archive comment.   For  details,
               see Primary Mode options.
 
        -$
        --volume-labels
-              [MS-DOS, NT, OS/2, VMS] Restore the volume label if the  extrac-
-              tion  medium  is  removable (for example, a diskette).  Doubling
-              the option (-$$) allows fixed media (hard disks) to  be  labeled
+              [MS-DOS,  NT, OS/2, VMS] Restore the volume label if the extrac-
+              tion medium is removable (for example,  a  diskette).   Doubling
+              the  option  (-$$) allows fixed media (hard disks) to be labeled
               as well.  By default, volume labels are ignored.
               [VMS] On VMS, a volume must be allocated, not shared, for a vol-
               ume label to be set.
 
        -/
        --extensions
-              [Acorn] Overrides the extension list supplied by  the  Unzip$Ext
-              environment  variable.   During  extraction, filename extensions
-              that match one of the items in this extension list  are  swapped
+              [Acorn]  Overrides  the extension list supplied by the Unzip$Ext
+              environment variable.  During  extraction,  filename  extensions
+              that  match  one of the items in this extension list are swapped
               in front of the base name of the extracted file.
 
        -:
        --do-double-dots
               [all but Acorn, VM/CMS, MVS, Tandem] Allows UnZip to extract ar-
-              chive members into locations outside of the  current  extraction
+              chive  members  into locations outside of the current extraction
               destination directory (and its subdirectories).
 
-              For  security reasons, UnZip normally removes "parent directory"
-              path components ("../") from the path names of  archive  members
-              as  they  are  extracted.   This safety feature (new for version
+              For security reasons, UnZip normally removes "parent  directory"
+              path  components  ("../") from the path names of archive members
+              as they are extracted.  This safety  feature  (new  for  version
               5.50) prevents UnZip from accidentally writing files to directo-
-              ries  outside  the  current  destination directory tree.  The -:
-              option sets UnZip back to its previous, more  liberal  behavior,
+              ries outside the current destination  directory  tree.   The  -:
+              option  sets  UnZip back to its previous, more liberal behavior,
               allowing exact extraction of archives that use "../" path compo-
-              nents to create multiple directory trees at or above  the  level
+              nents  to  create multiple directory trees at or above the level
               of the destination directory.
 
-              This  option  does  not  enable  writing  explicitly to the root
-              directory ("/").  To achieve this, it is necessary  to  set  the
-              extraction  target  folder  to  "/"  (by  using  an  option like
-              "-d /").  However, when the -: option is specified, it is  still
-              possible  implicitly  to  write  to the root directory if member
+              This option does not  enable  writing  explicitly  to  the  root
+              directory  ("/").   To  achieve this, it is necessary to set the
+              extraction target  folder  to  "/"  (by  using  an  option  like
+              "-d /").   However, when the -: option is specified, it is still
+              possible implicitly to write to the  root  directory  if  member
               paths specifying enough "../" path components.
 
               Use this option with extreme caution.
 
        -^
        --control-in-name
-              [Unix] Allow control characters in file names of  extracted  ZIP
-              archive  members.   On Unix, a file name may contain any (8-bit)
-              character code with the two exceptions  of  "/"  (the  directory
-              delimiter)  and  NUL (0x00, the C string-termination character),
-              unless the specific file system  has  more  restrictive  conven-
-              tions.   Generally,  this allows embedding ASCII control charac-
-              ters or escape sequences in file names.  However,  this  feature
-              allows  the  use of malicious file names which can cause various
-              kinds of bad trouble when displayed on a user's  terminal/emula-
-              tor.   (Even a file name with unprintable but otherwise harmless
+              [Unix]  Allow  control characters in file names of extracted ZIP
+              archive members.  On Unix, a file name may contain  any  (8-bit)
+              character  code  with  the  two exceptions of "/" (the directory
+              delimiter) and NUL (0x00, the C  string-termination  character),
+              unless  the  specific  file  system has more restrictive conven-
+              tions.  Generally, this allows embedding ASCII  control  charac-
+              ters  or  escape sequences in file names.  However, this feature
+              allows the use of malicious file names which can  cause  various
+              kinds  of bad trouble when displayed on a user's terminal/emula-
+              tor.  (Even a file name with unprintable but otherwise  harmless
               characters can cause problems for users.)
 
-              For these reasons, by  default,  UnZip  applies  a  filter  that
-              removes   potentially  dangerous  control  characters  from  the
-              extracted file names.  The -^ option overrides  this  filter  in
-              the  rare  case that embedded filename dangerous control charac-
+              For  these  reasons,  by  default,  UnZip  applies a filter that
+              removes  potentially  dangerous  control  characters  from   the
+              extracted  file  names.   The -^ option overrides this filter in
+              the rare case that embedded filename dangerous  control  charac-
               ters are to be intentionally restored.
 
 ENVIRONMENT OPTIONS
-       UnZip's default  behavior  may  be  modified  by  placing  command-line
-       options  in an environment variable.  This can be done with any option,
-       but it is probably most  useful  options  like  -a  (auto-convert  text
-       files),  -L  (downcase  file names from systems with all uppercase file
+       UnZip's  default  behavior  may  be  modified  by  placing command-line
+       options in an environment variable.  This can be done with any  option,
+       but  it  is  probably  most  useful  options like -a (auto-convert text
+       files), -L (downcase file names from systems with  all  uppercase  file
        names), -C (use case-insensitive name matching), -q (quiet), -o (always
        overwrite), or -n (never overwrite).
 
-              For  UnZip,  the  environment  variable name is UNZIP, except on
-              VMS, where it's UNZIP_OPTS (to avoid conflict  with  a  foreign-
-              command  DCL  symbol, UNZIP).  For similarity with Zip, if UNZIP
+              For UnZip, the environment variable name  is  UNZIP,  except  on
+              VMS,  where  it's  UNZIP_OPTS (to avoid conflict with a foreign-
+              command DCL symbol, UNZIP).  For similarity with Zip,  if  UNZIP
               (UNZIP_OPTS on VMS) is not defined, then UnZip will use UNZIPOPT
               the same way.
 
-              For  ZipInfo ("unzip -Z"), the environment variable name is ZIP-
-              INFO, except on VMS, where it's  ZIPINFO_OPTS.   For  similarity
-              with  Zip, if ZIPINFO (ZIPINFO_OPTS on VMS) is not defined, then
+              For ZipInfo ("unzip -Z"), the environment variable name is  ZIP-
+              INFO,  except  on  VMS, where it's ZIPINFO_OPTS.  For similarity
+              with Zip, if ZIPINFO (ZIPINFO_OPTS on VMS) is not defined,  then
               ZipInfo will use ZIPINFOOPT the same way.
 
-              For example, to make UnZip act  as  quietly  as  possible,  only
+              For  example,  to  make  UnZip  act as quietly as possible, only
               reporting errors, one could use commands like the following:
 
          Unix Bourne (or similar) shell:
@@ -1046,58 +1061,58 @@ ENVIRONMENT OPTIONS
               define UNZIP_OPTS "-q -q"       ! Logical name, or
               UNZIP_OPTS = "-q -q"            ! DCL symbol.  (Either works.)
 
-              Environment  options  are treated the same as any other command-
+              Environment options are treated the same as any  other  command-
               line options, except that they are effectively the first options
               on the command line.  To override an environment option, one may
-              use an explicit option to cancel or override it.   For  example,
+              use  an  explicit option to cancel or override it.  For example,
               to override one of the "quiet" flags in the example above, use a
               command like:
                   unzip -q- [other options] archive.zip
 
-              The leading hyphen is  the  normal  option  character,  and  the
-              trailing  one  negates the option, canceling one level of quiet-
-              ness.  To  cancel  multiple  "quiet"  flags,  use  multiple  -q-
+              The  leading  hyphen  is  the  normal  option character, and the
+              trailing one negates the option, canceling one level  of  quiet-
+              ness.   To  cancel  multiple  "quiet"  flags,  use  multiple -q-
               options:
 
            unzip -t -q- -q- archive
            unzip -q- -q- -t archive
 
-              Note  that multiple one-character options like "-q" and "-q" can
-              be combined into a single "-qq", but it's generally  clearer  to
-              keep  each instance of each option separate.  Similarly, negated
-              one-character options can be  combined,  as  with  "-q-q-",  but
+              Note that multiple one-character options like "-q" and "-q"  can
+              be  combined  into a single "-qq", but it's generally clearer to
+              keep each instance of each option separate.  Similarly,  negated
+              one-character  options  can  be  combined,  as with "-q-q-", but
               "-q- -q-" is generally clearer.
 
               The examples show short (one-character) options, but long ("--")
               options are also allowed.
 
-       The timezone variable (TZ) should be set according to the  local  time-
-       zone  in  order  for  the Freshen (-f) and Update (-u) modes to operate
-       correctly.  For details, see -f.  This variable may also  be  necessary
+       The  timezone  variable (TZ) should be set according to the local time-
+       zone in order for the Freshen (-f) and Update  (-u)  modes  to  operate
+       correctly.   For  details, see -f.  This variable may also be necessary
        to get timestamps of extracted files to be set correctly.
 
-              On  Windows  systems, UnZip gets the timezone configuration from
+              On Windows systems, UnZip gets the timezone  configuration  from
               the registry, assuming it is correctly set in the Control Panel.
               The TZ variable is ignored on these systems.
 
 ENCRYPTION/DECRYPTION
-       Zip  and UnZip have long supported a relatively weak encryption method,
-       which we call Traditional ZIP encryption.  The source code  for  Tradi-
-       tional  encryption is included in the source kits, and support for Tra-
-       ditional encryption is  enabled  by  default.   (Build-time  C  macros:
+       Zip and UnZip have long supported a relatively weak encryption  method,
+       which  we  call Traditional ZIP encryption.  The source code for Tradi-
+       tional encryption is included in the source kits, and support for  Tra-
+       ditional  encryption  is  enabled  by  default.   (Build-time C macros:
        IZ_CRYPT_TRAD, NO_CRYPT.)
 
-       Beginning  with  UnZip version 6.10 and Zip version 3.1, these programs
-       also offer a stronger, Advanced Encryption  Standard  (AES)  encryption
-       method,  which  we  call  AES WinZip/Gladman (AES_WG) encryption.  (The
-       encryption code was supplied by Brian Gladman, and the  archive  format
-       is  intended  to  be  compatible  with that used by the WinZip program.
-       WinZip is a registered trademark of  WinZip  International  LLC.)   The
+       Beginning with UnZip version 6.10 and Zip version 3.1,  these  programs
+       also  offer  a  stronger, Advanced Encryption Standard (AES) encryption
+       method, which we call AES  WinZip/Gladman  (AES_WG)  encryption.   (The
+       encryption  code  was supplied by Brian Gladman, and the archive format
+       is intended to be compatible with that  used  by  the  WinZip  program.
+       WinZip  is  a  registered  trademark of WinZip International LLC.)  The
        source code for AES_WG encryption is distributed in a separate kit (for
-       export control reasons), and support  for  AES_WG  encryption  must  be
-       enabled    explicitly    at   build   time.    (Build-time   C   macro:
-       IZ_CRYPT_AES_WG.)  See the INSTALL file in the source kit  for  details
-       on  how  to  enable  AES_WG  encryption  (or how to disable Traditional
+       export  control  reasons),  and  support  for AES_WG encryption must be
+       enabled   explicitly   at   build   time.    (Build-time    C    macro:
+       IZ_CRYPT_AES_WG.)   See  the INSTALL file in the source kit for details
+       on how to enable AES_WG  encryption  (or  how  to  disable  Traditional
        encryption).
 
        For details on the WinZip AES scheme, see:
@@ -1107,49 +1122,49 @@ ENCRYPTION/DECRYPTION
               ftp://ftp.info-zip.org/pub/infozip/crypt/
               ftp://ftp.info-zip.org/pub/infozip/crypt/README_AES_WG.txt
 
-       Normally, encryption passwords are supplied by the  user  interactively
-       when  requested  by the program.  See the -P option for a (less secure)
+       Normally,  encryption  passwords are supplied by the user interactively
+       when requested by the program.  See the -P option for a  (less  secure)
        method of specifying a password on the command line.
 
-       With Traditional  encryption,  when  decrypting,  a  password  will  be
+       With  Traditional  encryption,  when  decrypting,  a  password  will be
        checked against header data, and used if it appears to be correct.  The
-       correct password will always check out against  the  header  data,  but
-       there  is  a  1-in-256  chance that an incorrect password will as well.
+       correct  password  will  always  check out against the header data, but
+       there is a 1-in-256 chance that an incorrect  password  will  as  well.
        (This is a security feature of the PKWARE archive format; it helps pre-
        vent brute-force attacks that might otherwise gain a large speed advan-
-       tage by testing only the header.)  In the case that an incorrect  pass-
+       tage  by testing only the header.)  In the case that an incorrect pass-
        word is given but it passes the header test anyway, either an incorrect
-       CRC will be generated for the extracted data or else  UnZip  will  fail
+       CRC  will  be  generated for the extracted data or else UnZip will fail
        during the extraction because the "decrypted" bytes do not constitute a
        valid compressed data stream.
 
-       If the first password fails the header check on some file,  UnZip  will
-       prompt  for  another password, and so on until all files are extracted.
-       If a password is not known, entering a null password (that is,  just  a
-       carriage  return  or  "Enter") is taken as a signal to skip all further
+       If  the  first password fails the header check on some file, UnZip will
+       prompt for another password, and so on until all files  are  extracted.
+       If  a  password is not known, entering a null password (that is, just a
+       carriage return or "Enter") is taken as a signal to  skip  all  further
        prompting.  Only unencrypted files in the archive(s) will thereafter be
        extracted.  (The situation is actually a little more complicated.  Some
-       old versions of Zip and  ZipCloak  allowed  null  passwords,  so  UnZip
+       old  versions  of  Zip  and  ZipCloak  allowed null passwords, so UnZip
        checks each encrypted file to see if the null password works.  This may
        result in "false positives" and extraction errors, as noted above.)
 
-       Archives encrypted with 8-bit-character passwords (for  example,  pass-
-       words  with  accented  European  characters) may not be portable across
+       Archives  encrypted  with 8-bit-character passwords (for example, pass-
+       words with accented European characters) may  not  be  portable  across
        systems or to other archivers.  This problem stems from the use of mul-
-       tiple  encoding  methods  for  such  characters, including Latin-1 (ISO
+       tiple encoding methods for  such  characters,  including  Latin-1  (ISO
        8859-1) and OEM code page 850.  DOS PKZIP 2.04g uses the OEM code page;
        Windows PKZIP 2.50 uses Latin-1 (and is therefore incompatible with DOS
-       PKZIP); Info-ZIP uses the OEM code page on DOS, OS/2 and  Win3.x  ports
-       but  ISO  coding  (Latin-1 etc.) everywhere else; and Nico Mak's WinZip
-       6.x does not allow 8-bit-character passwords at  all.   UnZip  5.3  (or
+       PKZIP);  Info-ZIP  uses the OEM code page on DOS, OS/2 and Win3.x ports
+       but ISO coding (Latin-1 etc.) everywhere else; and  Nico  Mak's  WinZip
+       6.x  does  not  allow  8-bit-character passwords at all.  UnZip 5.3 (or
        newer) attempts to use the default character set first (e.g., Latin-1),
-       followed by the alternate one (e.g., OEM code page) to test  passwords.
-       On  EBCDIC  systems,  if  both  of  these fail, EBCDIC encoding will be
-       tested as a last resort.  (EBCDIC is not tested on non-EBCDIC  systems,
-       because  there  are no known archivers that encrypt using EBCDIC encod-
-       ing.)  ISO character encodings other than Latin-1  are  not  supported.
-       The  new addition of (partial) Unicode (UTF-8) support in UnZip 6.0 has
-       not yet been adapted to the encryption password handling in UnZip.   On
+       followed  by the alternate one (e.g., OEM code page) to test passwords.
+       On EBCDIC systems, if both of  these  fail,  EBCDIC  encoding  will  be
+       tested  as a last resort.  (EBCDIC is not tested on non-EBCDIC systems,
+       because there are no known archivers that encrypt using  EBCDIC  encod-
+       ing.)   ISO  character  encodings other than Latin-1 are not supported.
+       The new addition of (partial) Unicode (UTF-8) support in UnZip 6.0  has
+       not  yet been adapted to the encryption password handling in UnZip.  On
        systems that use UTF-8 as native character encoding, UnZip simply tries
        decryption  with  the  native  UTF-8  encoded  password;  the  built-in
        attempts to check the password in translated encoding have not yet been
@@ -1176,11 +1191,11 @@ EXAMPLES
 
            unzip -t -q "*.zip"
 
-       Here, the wildcard archive name was quoted to keep a  Unix  shell  from
+       Here,  the  wildcard  archive name was quoted to keep a Unix shell from
        expanding ("globbing") it.  (This would not be necessary on VMS.)
 
-       The  following  command extracts to standard output all members of let-
-       ters.zip whose names end in .tex, auto-converting to the local  end-of-
+       The following command extracts to standard output all members  of  let-
+       ters.zip  whose names end in .tex, auto-converting to the local end-of-
        line convention, and piping the output into more(1) (again, quoting the
        wildcard member name pattern):
 
@@ -1191,27 +1206,27 @@ EXAMPLES
 
            unzip -p articles paper1.dvi | dvips
 
-       To  extract  from  source.zip all Fortran and C source files (*.f, *.c,
-       *.h) and Makefile into the /tmp directory  (again,  quoting  the  wild-
+       To extract from source.zip all Fortran and C source  files  (*.f,  *.c,
+       *.h)  and  Makefile  into  the /tmp directory (again, quoting the wild-
        card):
 
            unzip source.zip "*.[fch]" Makefile -d /tmp
 
-       To  extract  all  FORTRAN  and  C source files, regardless of case (for
+       To extract all FORTRAN and C source  files,  regardless  of  case  (for
        example, both *.c and *.C, and any makefile, Makefile, MAKEFILE or sim-
        ilar):
 
            unzip -C source.zip "*.[fch]" makefile -d /tmp
 
        To extract any such files but convert any uppercase MS-DOS or VMS names
-       to lowercase and convert the line-endings of all of the  files  to  the
-       local  standard  (without  respect  to  any  files that might be marked
+       to  lowercase  and  convert the line-endings of all of the files to the
+       local standard (without respect to  any  files  that  might  be  marked
        "binary"):
 
            unzip -aa -C -L source.zip "*.[fch]" makefile -d /tmp
 
        The following command extracts only newer versions of the files already
-       in  the  current  directory,  without  querying.   (Note: Be careful of
+       in the current directory,  without  querying.   (Note:  Be  careful  of
        extracting in one timezone an archive created in another.  ZIP archives
        created by Zip versions before 2.1 contain no timezone information, and
        a "newer" file from an eastern timezone may, in fact, be older):
@@ -1219,18 +1234,18 @@ EXAMPLES
            unzip -f -o sources
 
        To extract newer versions of the files already in the current directory
-       and  to  create  any  files  not already there (same caveat as previous
+       and to create any files not already  there  (same  caveat  as  previous
        example):
 
            unzip -u -o sources
 
-       To display a configuration report showing the program version,  the  OS
-       and  compiler  used to build it, a list of optional features enabled at
+       To  display  a configuration report showing the program version, the OS
+       and compiler used to build it, a list of optional features  enabled  at
        build time, and the values of all the relevant environment variables:
 
            unzip -v
 
-       In the last five examples, assume that UNZIP or UNZIP_OPTS  is  set  to
+       In  the  last  five examples, assume that UNZIP or UNZIP_OPTS is set to
        -q.  To do a (singly) quiet listing:
 
            unzip -l file.zip
@@ -1239,7 +1254,7 @@ EXAMPLES
 
            unzip -l -q file.zip
 
-       (Note  that  the  ".zip" is generally not necessary.)  To do a standard
+       (Note that the ".zip" is generally not necessary.)  To  do  a  standard
        listing:
 
            unzip -l -q- file.zip
@@ -1254,21 +1269,21 @@ EXIT STATUS
 
               0      Normal.  No errors or warnings detected.
 
-              1      One  or  more  warnings  were encountered, but processing
+              1      One or more warnings  were  encountered,  but  processing
                      completed successfully.  This includes archives where one
-                     or  more  (but  not all) files were skipped because of an
-                     unsupported compression or encryption method,  or  a  bad
+                     or more (but not all) files were skipped  because  of  an
+                     unsupported  compression  or  encryption method, or a bad
                      encryption password.
 
-              2      Error  in  the archive format.  Processing may or may not
+              2      Error in the archive format.  Processing may or  may  not
                      have completed successfully.
 
-              3      Severe error in the archive format.  Processing  probably
+              3      Severe  error in the archive format.  Processing probably
                      failed immediately.
 
               4      Memory allocation failed in program initialization.
 
-              5      Memory  allocation  or  terminal I/O failed in encryption
+              5      Memory allocation or terminal I/O  failed  in  encryption
                      password processing.
 
               6      Memory allocation failed while decompressing to disk.
@@ -1289,63 +1304,63 @@ EXIT STATUS
 
               80     User interrupt (Ctrl/C or similar).
 
-              81     No files were processed, because of unsupported  compres-
+              81     No  files were processed, because of unsupported compres-
                      sion or encryption methods.
 
-              82     No  files were processed, because of bad encryption pass-
+              82     No files were processed, because of bad encryption  pass-
                      word(s).
 
-              83     Large-file archive could not be processed by this  small-
+              83     Large-file  archive could not be processed by this small-
                      file program.
 
-              84     Failed   to   create   automatic   extraction  directory.
+              84     Failed  to   create   automatic   extraction   directory.
                      (Already exists?)
 
-       [VMS] On VMS, the standard Unix exit status values are translated  into
-       valid  VMS  status codes.  For details, see the file [.vms]NOTES.TXT in
+       [VMS]  On VMS, the standard Unix exit status values are translated into
+       valid VMS status codes.  For details, see the file  [.vms]NOTES.TXT  in
        the source kit.
 
 BUGS
-       Multi-part archives are not yet supported, except in  conjunction  with
-       Zip.   (All  parts  must  be  concatenated  together in order, and then
-       "zip -F" (for Zip 2.x) or "zip -FF" (for Zip 3.x) must be performed  on
-       the  concatenated  archive in order to "fix" it.  Also, zip version 3.0
-       and later can combine multi-part (split) archives into a combined  sin-
-       gle-file  archive using "zip -s- inarchive -O outarchive".  See the zip
-       manual page for more information.)  This may be corrected in  the  next
+       Multi-part  archives  are not yet supported, except in conjunction with
+       Zip.  (All parts must be  concatenated  together  in  order,  and  then
+       "zip -F"  (for Zip 2.x) or "zip -FF" (for Zip 3.x) must be performed on
+       the concatenated archive in order to "fix" it.  Also, zip  version  3.0
+       and  later can combine multi-part (split) archives into a combined sin-
+       gle-file archive using "zip -s- inarchive -O outarchive".  See the  zip
+       manual  page  for more information.)  This may be corrected in the next
        major release.
 
-       Archives  read  from  standard input are not yet supported, except with
+       Archives read from standard input are not yet  supported,  except  with
        fUnZip  (and  then  only  the  first  member  of  the  archive  can  be
        extracted).
 
-       Archives  encrypted  with  8-bit-character passwords (such as passwords
-       with accented European characters) may not be portable  across  systems
+       Archives encrypted with 8-bit-character passwords  (such  as  passwords
+       with  accented  European characters) may not be portable across systems
        and/or other archivers.  See also ENCRYPTION/DECRYPTION.
 
        UnZip's -M ("--more") option tries to take into account automatic wrap-
-       ping of long lines.  However, the code may fail to detect  the  correct
-       wrapping   locations.   First,  TAB  characters  (and  similar  control
-       sequences) are not taken into account, they  are  handled  as  ordinary
-       printable  characters.   Second,  depending  on the actual system type,
-       UnZip may not detect the true terminal/emulator geometry,  but  instead
-       may  rely  on "commonly used" default dimensions.  The correct handling
-       of tabs would require the implementation of a query for the actual  tab
+       ping  of  long lines.  However, the code may fail to detect the correct
+       wrapping  locations.   First,  TAB  characters  (and  similar   control
+       sequences)  are  not  taken  into account, they are handled as ordinary
+       printable characters.  Second, depending on  the  actual  system  type,
+       UnZip  may  not detect the true terminal/emulator geometry, but instead
+       may rely on "commonly used" default dimensions.  The  correct  handling
+       of  tabs would require the implementation of a query for the actual tab
        setup on the output terminal/emulator.
 
-       [Unix]  Unix  special  files  such as FIFO buffers (named pipes), block
+       [Unix] Unix special files such as FIFO  buffers  (named  pipes),  block
        devices and character devices are not restored even if they are somehow
-       represented  in the archive, nor are hard-linked files relinked.  Basi-
-       cally, the only file types restored by UnZip are regular files,  direc-
+       represented in the archive, nor are hard-linked files relinked.   Basi-
+       cally,  the only file types restored by UnZip are regular files, direc-
        tories, and symbolic (soft) links.
 
        [OS/2] Extended attributes for existing directories are only updated if
-       the -o ("overwrite all") option is given.  This is a limitation of  the
+       the  -o ("overwrite all") option is given.  This is a limitation of the
        operating system; because directories only have a creation time associ-
-       ated with them, UnZip has  no  way  to  determine  whether  the  stored
+       ated  with  them,  UnZip  has  no  way  to determine whether the stored
        attributes are newer or older than those on disk.  In practice this may
-       mean a two-pass approach is required:  first unpack  the  archive  nor-
-       mally  (with or without freshening/updating existing files), then over-
+       mean  a  two-pass  approach is required:  first unpack the archive nor-
+       mally (with or without freshening/updating existing files), then  over-
        write just the directory entries (for example, "unzip -o foo */").
 
 SEE ALSO
@@ -1360,31 +1375,31 @@ URL
                   ftp://ftp.info-zip.org/pub/infozip/
 
 AUTHORS
-       The primary Info-ZIP authors (current semi-active members of  the  Zip-
+       The  primary  Info-ZIP authors (current semi-active members of the Zip-
        Bugs workgroup) are:  Ed Gordon (Zip, general maintenance, shared code,
-       Zip64, Win32, Unix,  Unicode);  Christian  Spieler  (UnZip  maintenance
-       coordination,  VMS,  MS-DOS,  Win32, shared code, general Zip and UnZip
-       integration and optimization); Onno van der Linden  (Zip);  Mike  White
-       (Win32,  Windows  GUI,  Windows  DLLs);  Kai  Uwe Rommel (OS/2, Win32);
-       Steven M. Schweda (VMS, Unix, support of new  features);  Paul  Kienitz
-       (Amiga,  Win32,  Unicode);  Chris Herborth (BeOS, QNX, Atari); Jonathan
+       Zip64,  Win32,  Unix,  Unicode);  Christian  Spieler (UnZip maintenance
+       coordination, VMS, MS-DOS, Win32, shared code, general  Zip  and  UnZip
+       integration  and  optimization);  Onno van der Linden (Zip); Mike White
+       (Win32, Windows GUI, Windows  DLLs);  Kai  Uwe  Rommel  (OS/2,  Win32);
+       Steven  M.  Schweda  (VMS, Unix, support of new features); Paul Kienitz
+       (Amiga, Win32, Unicode); Chris Herborth (BeOS,  QNX,  Atari);  Jonathan
        Hudson (SMS/QDOS); Sergio Monesi (Acorn RISC OS); Harald Denker (Atari,
-       MVS);  John  Bush  (Solaris, Amiga); Hunter Goatley (VMS, Info-ZIP Site
-       maintenance); Steve Salisbury (Win32); Steve Miller (Windows  CE  GUI),
+       MVS); John Bush (Solaris, Amiga); Hunter Goatley  (VMS,  Info-ZIP  Site
+       maintenance);  Steve  Salisbury (Win32); Steve Miller (Windows CE GUI),
        Johnny Lee (MS-DOS, Win32, Zip64); and Dave Smith (Tandem NSK).
 
-       The  following  people  are  former members of the Info-ZIP development
-       group, and provided major contributions to key  parts  of  the  current
-       code:  Greg  "Cave Newt" Roelofs (UnZip, unshrink decompression); Jean-
-       loup Gailly (deflate compression); Mark Adler  (inflate  decompression,
+       The following people are former members  of  the  Info-ZIP  development
+       group,  and  provided  major  contributions to key parts of the current
+       code: Greg "Cave Newt" Roelofs (UnZip, unshrink  decompression);  Jean-
+       loup  Gailly  (deflate compression); Mark Adler (inflate decompression,
        fUnZip).
 
-       The  author  of the original unzip code upon which Info-ZIP's was based
-       is Samuel H. Smith; Carl Mascott did the first Unix port; and David  P.
-       Kirschbaum  organized  and  led  Info-ZIP  in its early days with Keith
-       Petersen hosting the original mailing list at WSMR-SimTel20.  The  full
-       list  of  contributors  to UnZip has grown quite large; please refer to
+       The author of the original unzip code upon which Info-ZIP's  was  based
+       is  Samuel H. Smith; Carl Mascott did the first Unix port; and David P.
+       Kirschbaum organized and led Info-ZIP in  its  early  days  with  Keith
+       Petersen  hosting the original mailing list at WSMR-SimTel20.  The full
+       list of contributors to UnZip has grown quite large;  please  refer  to
        the proginfo/CONTRIBS file in the UnZip source distribution for a rela-
        tively complete version.
 
-Info-ZIP                      09 May 2014 (v6.10)                    UNZIP(1L)
+Info-ZIP                      10 Oct 2014 (v6.10)                    UNZIP(1L)
index 1105402..3884ee2 100644 (file)
--- a/fileio.c
+++ b/fileio.c
@@ -2876,14 +2876,20 @@ int do_string(__G__ length, option)   /* return PK-type error code */
 
         flag = (option==DS_FN_L) ? G.lrec.general_purpose_bit_flag :
          G.crec.general_purpose_bit_flag;
-        /* skip ISO/OEM translation if stored name is UTF-8 */
-        /* 2012-05-20 SMS.
+
+        /* Skip ISO/OEM translation if stored name is UTF-8.
+         *
+         * 2012-05-20 SMS.
          * Added check for Java "CAFE" extra block, to avoid mistaking
          * Java's mostly-zero header info for an MS-DOS origin.  A more
          * rigorous hostnum test might be easier, but might break other
          * stuff.
+         *
+         * 2014-09-19 SMS.
+         * Also skip translation if user so requests (-0).
          */
-        if (((flag & UTF8_BIT) == 0) && (uO.java_cafe <= 0))
+        if ((uO.zero_flag == 0) &&
+         ((flag & UTF8_BIT) == 0) && (uO.java_cafe <= 0))
         {
           /* translate the Zip entry filename coded in host-dependent "extended
              ASCII" into the compiler's (system's) internal text code page */
index 0826b1a..846bf4e 100644 (file)
@@ -8,7 +8,7 @@
 .\" unzip.1 by Greg Roelofs, Fulvio Marino, Jim van Zandt and others.
 .\"
 .\" =========================================================================
-.TH UNZIP 1L "09 May 2014 (v6.10)" "Info-ZIP"
+.TH UNZIP 1L "10 Oct 2014 (v6.10)" "Info-ZIP"
 .\" =========================================================================
 .\"
 .\" Define .EX/.EE (for multiline user-command examples; normal Courier font).
@@ -363,6 +363,24 @@ Primary mode.  Display only the archive comment.
 .SH OPTIONS (Ordinary)
 .PP
 .PD 0
+.B \-0
+.TP
+.PD
+.B \-\-no-char\-set
+.br
+Do not transform FAT/NTFS names.  By default, a particular character
+mapping (CP850) is applied to the names of archive members which
+originated on a FAT or NTFS file system (typically on an MS-DOS or
+Windows system).  This can cause unexpected characters in extracted file
+names if the corresponding (inverse) mapping was not used when the
+archive was created.  With \-0/\-\-no\-char\-set, the extracted file
+name should agree with the name stored in the archive.
+.IP
+On Unix (or BeOS), \-0/\-\-no\-char\-set effectively overrides any
+\-I/\-\-iso-char-set or \-O/\-\-oem-char-set option which may also be
+specified.
+.PP
+.PD 0
 .B \-2
 .TP
 .PD
@@ -646,7 +664,7 @@ Primary Mode options.
 .PD
 .B \-\-iso\-char\-set char_set
 .br
-[Unix] Select ISO character set \fIchar_set\fP.
+[Unix] Select ISO character set \fIchar_set\fP.  See also \-0 and -O.
 .PP
 .PD 0
 .B \-i
@@ -676,20 +694,20 @@ separate "._name" file, as it would be on a non-Mac file system.
 .EX
 Note that "\fB\-J\fP" is \fInot\fP equivalent to
 "\fB\-Je\ \-Jf\ \-Jr\fP".  With "\fB\-J\fP", an AppleDouble archive
-member is restored as a separate "._name" file, as it would be on a
-non-Mac file system.  With "\fB\-Je\ \-Jf\ \-Jr\fP", all the data in an
-AppleDouble archive member are ignored, so the data fork file is
-restored with no extended attributes (\fB\-Je\fP), no Finder info
-(\fB\-Jf\fP), and no resource fork (\fB\-Jr\fP); no "._name" file is
-created.
+member is restored as a separate "._name" file, as it would
+be on a non-Mac file system.  With "\fB\-Je\ \-Jf\ \-Jr\fP", all the
+data in an AppleDouble archive member are ignored, so the
+data fork file is restored with no extended attributes
+(\fB\-Je\fP), no Finder info (\fB\-Jf\fP), and no resource fork (\fB\-Jr\fP);
+no "._name" file is created.
 .IP
 Note that \fB\-j\fP acts on the path of an archive member, and is
 independent of the destination directory specified using \fB\-d\fP or
 \fB\-da\fP.  For example, with "\fB\-d zz\fP \fB\-j=1\fP", an archive
-member like "a/b/c/d/ee.txt" would be extracted as "zz/b/c/d/ee.txt",
-with \fB\-j=1\fP stripping the "a/" off the archive path, and
-\fB\-d zz\fP adding the "zz/" to the path in the destination file
-system.
+member like "a/b/c/d/ee.txt" would be extracted as
+"zz/b/c/d/ee.txt", with \fB\-j=1\fP stripping the "a/" off the
+archive path, and \fB\-d zz\fP adding the "zz/" to the path in the
+destination file system.
 .EE
 .PP
 .PD 0
@@ -894,7 +912,7 @@ query choice is offered: to overwrite the existing file.
 .PD
 .B \-\-oem\-char\-set char_set
 .br
-[Unix] Select OEM character set \fIchar_set\fP.
+[Unix] Select OEM character set \fIchar_set\fP.  See also \-0 and \-I.
 .PP
 .PD 0
 .B \-o
index 0b5e179..a4a7cfe 100644 (file)
@@ -2,7 +2,6 @@
       ----------------------------------------------------------
 
 configure       Shell script to probe system environment, capabilities
-configure.txt   Change notes on "configure"
 Contents        This file
 macosx.h        Mac-OS-X-specific header file
 Makefile        "make" file for various Unix-like systems
index 276535d..470ed6d 100644 (file)
@@ -1,6 +1,6 @@
 #==============================================================================
 # unix/Makefile
-# - For UnZip, fUnZip, UnZipSFX, and ZipInfo            Revised: 2014-05-14
+# - For UnZip, fUnZip, UnZipSFX, and ZipInfo            Revised: 2014-10-10
 #
 # Copyright (c) 2004-2014 Info-ZIP.  All rights reserved.
 #
@@ -27,8 +27,8 @@
 # are more flags for the linker, if they need to be at the end of the
 # line instead of at the beginning (for example, some libraries).
 # LOCAL_UNZIP is a "make" macro that can be used to add default C flags
-# to your compile without editing "make" file (e.g., -DDEBUG_STRUC, or
-# -FPi87 on PCs using Microsoft C).
+# to your compile without editing the "make" file (e.g., -DDEBUG_STRUC,
+# or -FPi87 on a PC using Microsoft C).
 #
 # The "generic" target invokes the "unix/configure" script to test the
 # compile and other parts of the environment to see what's supported.
 #   the latest compatible kit available on the Info-ZIP server) to
 #   populate the local ./aes_wg subdirectory.  To disable AES_WG
 #   encryption support (when the source kit is present), set the "make"
-#   macro NO_AES_WG to 1.   
+#   macro NO_AES_WG to 1.
 #
 # LZMA compression - See the files INSTALL and szip/README_LZMA.txt for
 #   more information.  To disable LZMA compression support, set the
-#   "make" macro NO_LZMA to 1.  
+#   "make" macro NO_LZMA to 1.
 #
 # PPMd compression - See the files INSTALL and szip/README_LZMA.txt for
 #   more information.  To disable PPMd compression support, set the
 #   "make" macro NO_PPMD to 1.
 #
-# Bzip2 compression -   See the files INSTALL and bzip2/README_BZIP2.txt
+# Bzip2 compression - See the files INSTALL and bzip2/README_BZIP2.txt
 #   for more information.  To disable bzip2 compression support, set the
 #   "make" macro NO_IZ_BZIP2 to 1.
-#   To include  bzip2 compression support, there are three options: 
+#   To include bzip2 compression support, there are three options:
 #   - Let the UnZip builders build a bzip2 object library from the
 #     source kit in the bzip2 subdirectory.
 #   - Use an existing build of the bzip2 library by setting the "make"
@@ -81,8 +81,8 @@
 #   - Use the system bzip2 library.  To do this, ensure that the local
 #     ./bzip2 subdirectory exists and does not contain the files
 #     Makefile, libbz2.a, or bzlib.h.  It may be safer to use one of the
-#     above options first, if possible, to avoid an possible problem
-#     with error handling that may not be done as expected by the system
+#     above options first, if possible, to avoid a possible problem with
+#     error handling that may not be done as expected by the system
 #     library.
 #
 # Zlib deflation - To use zlib to handle Deflate compression instead of
 ###########
 
 # List of supported systems/targets in this version
-GENERIC_TARGETS1  = generic  generic_pkg  config_flags
-GENERIC_TARGETS2  = generic1  generic2  generic3
+GENERIC_TARGETS1 = generic  generic_pkg  config_flags
+GENERIC_TARGETS2 = generic1  generic2  generic3
 
 MISC_TARGETS = clean  clean_bzip2  clean_docs  clean_exe  dashv
 
-SYS_TARGETS01  = 386i 3Bx 7300 7300_gcc amdahl amdahl_eft apollo aviion
-SYS_TARGETS02  = bsd bsdi bsdi_noasm bull coherent convex cray cray_opt
-SYS_TARGETS03  = cyber_sgi cygwin dec dnix encore eta freebsd gcc gould
-SYS_TARGETS04  = hk68 hp hpux isc isc_gcc isi linux linux_dos linux_noasm
-SYS_TARGETS05  = lynx macosx macosx_gcc minix mips
-SYS_TARGETS06  = mpeix next next10 next2x next3x nextfat osf1 pixel ptx
-SYS_TARGETS07  = pyramid qnxnto realix regulus sco sco_dos sco_sl sco_x286
-SYS_TARGETS08  = sequent sgi solaris stardent stellar sunos3 sunos4
-SYS_TARGETS09  = sysv sysv_gcc sysv6300 tahoe ti_sysv ultrix vax v7
-SYS_TARGETS10  = xenix xos
+SYS_TARGETS01 = 386i 3Bx 7300 7300_gcc amdahl amdahl_eft apollo aviion
+SYS_TARGETS02 = bsd bsdi bsdi_noasm bull coherent convex cray cray_opt
+SYS_TARGETS03 = cyber_sgi cygwin dec dnix encore eta freebsd gcc gould
+SYS_TARGETS04 = hk68 hp hpux isc isc_gcc isi linux linux_dos linux_noasm
+SYS_TARGETS05 = lynx macosx macosx_gcc minix mips
+SYS_TARGETS06 = mpeix next next10 next2x next3x nextfat osf1 pixel ptx
+SYS_TARGETS07 = pyramid qnxnto realix regulus sco sco_dos sco_sl sco_x286
+SYS_TARGETS08 = sequent sgi solaris stardent stellar sunos3 sunos4
+SYS_TARGETS09 = sysv sysv_gcc sysv6300 tahoe ti_sysv ultrix vax v7
+SYS_TARGETS10 = xenix xos
 
 # By default, print help on which "make" targets to try.
 
@@ -174,16 +174,16 @@ help:
        @echo '    "PROD=subdir"     Build product files in "subdir", not ".".'
        @echo ''
        @echo 'Examples:'
-       @echo '   make -f unix/Makefile generic'
-       @echo '    - make UnZip programs using cc.'
-       @echo '   make -f unix/Makefile generic CC=gcc AES_WG=1'
-       @echo '    - make UnZip programs using gcc, with AES_WG encryption.'
+       @echo '   Make UnZip programs using cc:'
+       @echo '      make -f unix/Makefile generic'
+       @echo '   Make UnZip programs using gcc, without LZMA compression.'
+       @echo '      make -f unix/Makefile generic CC=gcc NO_LZMA=1'
        @echo ''
        @echo 'Note that many of these optional "make" macros direct the'
        @echo '"unix/configure" script, and so may work only with the'
        @echo '"generic" target.'
        @echo ''
-       @echo 'First try "make -f unix/Makefile generic" (to use "cc")'
+       @echo 'First, try "make -f unix/Makefile generic" (to use "cc")'
        @echo '(or "make -f unix/Makefile generic CC=gcc" (to use "gcc")),'
        @echo 'as "generic" should automatically set the proper flags.'
        @echo ''
@@ -207,7 +207,7 @@ help:
        @echo ''
        @echo '  For most users, the best build method is the generic target'
        @echo '  using the default compiler (cc is often gcc), or by specifying'
-       @echo '  an explicit CC=gcc override.'
+       @echo '  an explicit "CC=gcc" override.'
        @echo ''
        @echo '  Other (older) targets are less well tested, and may need'
        @echo '  considerable help from the user to get optimal results (or'
@@ -237,7 +237,7 @@ help:
 # list
 # - Display list of supported systems/targets in this version.
 # - The SYSTEM variable is no longer supported.  Instead, use:
-# -    make -f unix/Makefile <target>
+#      make -f unix/Makefile <target>
 list:
        @echo ''
        @echo 'Type "make -f unix/Makefile <target>", where <target> is one of'
@@ -273,11 +273,11 @@ list:
 #####################
 
 #----------------------------------------------------------------------------
-# Defaults most systems use
+# Defaults most systems use:
 # - The generic target invokes unix/configure to build $(PROD)/flags and
 #   $(PROD)/flags_bz containing system derived settings that are used by
 #   this "make" file.
-# - use "make" macro LOCAL_UNZIP to add C compiler flags (such as
+# - Use "make" macro LOCAL_UNZIP to add C compiler flags (such as
 #   -DDOSWILD).
 #----------------------------------------------------------------------------
 
@@ -353,29 +353,29 @@ BINPERMS = 755
 MANPERMS = 644
 
 # C compiler and flags: core and bzip2
-# - CC and LD must match, else "unresolved symbol:  ___main" is possible)
+# - CC and LD must match, else "unresolved symbol: ___main" is possible.
 # - To use "gcc", specify "make" macro, "CC=gcc", instead of editing here.
-CC     = cc
-CC_BZ  = $(CC)
+CC      = cc
+CC_BZ   = $(CC)
 
 CF_NOOPT = -I. -DUNIX $(LOCAL_UNZIP)
-CFLAGS = -O
-CF     = $(CFLAGS) $(CF_NOOPT)
-CF_BZ  = $(CF)
+CFLAGS  = -O
+CF      = $(CFLAGS) $(CF_NOOPT)         # C compiler flags (core components)
+CF_BZ   = $(CF)                         # C compiler flags (BZIP2 components)
 
 # C preprocessor
-CPP    = $(CC) -E
+CPP     = $(CC) -E
 
 # Assembler and assembler flags
-AS     = as
-AF     = $(LOCAL_UNZIP)
+AS      = as
+AF      = $(LOCAL_UNZIP)
 
 # Linker and linker flags (early and late)
-# - CC and LD must match, else "unresolved symbol:  ___main" is possible)
+# - CC and LD must match, else "unresolved symbol: ___main" is possible.
 # - To use "gcc", specify "make" macro, "CC=gcc", instead of editing here.
-LD     = $(CC)
-LF1    =
-LF2    = -s
+LD      = $(CC)
+LF1     =
+LF2     = -s
 
 # Other utility programs
 AR      = ar cq
@@ -539,28 +539,28 @@ O_PPMD   = $(PROD)/Ppmd8.o      \
            $(PROD)/Ppmd8Dec.o
 
 # object files: ZLIB compression
-# - N/A. ZLIB is not built as part of UnZip
+# - N/A.  ZLIB is not built as part of UnZip.
 
 #----------------------------------------------------------------------------
-#  Build configuration:  object archive libraries
+#  Build configuration:  object libraries
 #----------------------------------------------------------------------------
 
-# object archive: AES (WinZip/Gladman) encryption
+# object library: AES (WinZip/Gladman) encryption
 AR_AES   = $(PROD)/libiz_aes_wg.a
 
-# object archive: BZIP2 compression
+# object library: BZIP2 compression
 AR_BZ    = bzip2/libbz2.a
 
-# object archive: LZMA compression
+# object library: LZMA compression
 AR_LZMA  = $(PROD)/libiz_lzma.a
 
-# object archive: PPMd compression
+# object library: PPMd compression
 AR_PPMD  = $(PROD)/libiz_ppmd.a
 
-# object archive: Callable UnZip
+# object library: Callable UnZip
 AR_UNZIP = $(PROD)/libizunzip.a
 
-# object archive: ZLIB compression
+# object library: ZLIB compression
 AR_Z     = zlib/libz.a
 
 #----------------------------------------------------------------------------
@@ -605,17 +605,17 @@ UNZIP_PMANS = $(PMAN_UNZIP) \
               $(PMAN_ZGREP) \
               $(PMAN_ZINFO)
 
-DOC_FUZ    = $(PROD)/manout/funzip.txt
-DOC_SFX    = $(PROD)/manout/unzipsfx.txt
-DOC_UNZIP  = $(PROD)/manout/unzip.txt
-DOC_ZGREP  = $(PROD)/manout/zipgrep.txt
-DOC_ZINFO  = $(PROD)/manout/zipinfo.txt
+DOC_FUZ     = $(PROD)/manout/funzip.txt
+DOC_SFX     = $(PROD)/manout/unzipsfx.txt
+DOC_UNZIP   = $(PROD)/manout/unzip.txt
+DOC_ZGREP   = $(PROD)/manout/zipgrep.txt
+DOC_ZINFO   = $(PROD)/manout/zipinfo.txt
 
-UNZIP_DOCS = $(DOC_UNZIP) \
-             $(DOC_SFX)   \
-             $(DOC_FUZ)   \
-             $(DOC_ZINFO) \
-             $(DOC_ZGREP)
+UNZIP_DOCS  = $(DOC_UNZIP) \
+              $(DOC_SFX)   \
+              $(DOC_FUZ)   \
+              $(DOC_ZINFO) \
+              $(DOC_ZGREP)
 
 #----------------------------------------------------------------------------
 #  Build configuration:  Installation
@@ -782,9 +782,9 @@ $(PROD)/unix_l.o:   unix/unix.c $(H_UNZIPL) unix/macosx.h
        $(CC) -c $(CF) -DDLL -o $@ unix/unix.c
 
 # B) UnZip C files for specific ports
-#    - Files under msdos and os2 are used when cross compiling for those ports
-#    - Generated when referenced by OSDEP_OC*
-#    - OSDEP_OC* are customized by unix/configure, based on PORT macro
+#    - Files under msdos and os2 are used when cross compiling for those ports.
+#    - Generated when referenced by OSDEP_OC*.
+#    - OSDEP_OC* are customized by unix/configure, based on PORT macro.
 
 $(PROD)/msdos.o:    msdos/msdos.c  $(H_UNZIP)
        $(CC) -c $(CF) -o $@ msdos/msdos.c
@@ -864,8 +864,8 @@ $(PROD)/ubz2err_s.o:  ubz2err.c   $(H_UNZIP)
        $(CC) -c $(CF) -DSFX -o $@ ubz2err.c
 
 # B) UnZipSFX C files for specific ports
-#    - Generated when referenced by OSDEP_OC*
-#    - OSDEP_OC* are customized by unix/configure, based on PORT macro
+#    - Generated when referenced by OSDEP_OC*.
+#    - OSDEP_OC* are customized by unix/configure, based on PORT macro.
 
 $(PROD)/msdos_s.o:  msdos/msdos.c $(H_UNZIP)
        $(CC) -c $(CF) -DSFX -o $@ msdos/msdos.c
@@ -949,28 +949,28 @@ $(PROD)/sha1.o:     aes_wg/sha1.c     $(H_AES)
 
 # C Compile rules: LZMA compression
 
-$(PROD)/LzFind.o:  szip/LzFind.c      $(H_LZMA)
+$(PROD)/LzFind.o:   szip/LzFind.c     $(H_LZMA)
        $(CC) -c $(CF) -o $@ szip/LzFind.c
 
-$(PROD)/LzmaDec.o: szip/LzmaDec.c     $(H_LZMA)
+$(PROD)/LzmaDec.o:  szip/LzmaDec.c    $(H_LZMA)
        $(CC) -c $(CF) -o $@ szip/LzmaDec.c
 
 #----------------------------------------------------------------------------
 
 # C Compile rules: PPMd compression
 
-$(PROD)/Ppmd8.o:  szip/Ppmd8.c          $(H_PPMD)
+$(PROD)/Ppmd8.o:    szip/Ppmd8.c      $(H_PPMD)
        $(CC) -c $(CF) -o $@ szip/Ppmd8.c
 
-$(PROD)/Ppmd8Dec.o:  szip/Ppmd8Dec.c    $(H_PPMD)
+$(PROD)/Ppmd8Dec.o: szip/Ppmd8Dec.c   $(H_PPMD)
        $(CC) -c $(CF) -o $@ szip/Ppmd8Dec.c
 
 #----------------------------------------------------------------------------
 #  Build rules: Assemble (.S -> .o)
-#  - Optional assembler replacements for C routines
-#  - All are port-specific
-#    - Generated when referenced by OSDEP_OS
-#    - OSDEP_OS is customized by unix/configure, based on PORT macro
+#  - Optional assembler replacements for C routines.
+#  - All are port-specific.
+#    - Generated when referenced by OSDEP_OS.
+#    - OSDEP_OS is customized by unix/configure, based on PORT macro.
 #----------------------------------------------------------------------------
 
 # Assembler rule: CRC-32
@@ -985,15 +985,15 @@ $(O_CRC_G):  crc_i386.S $(ACONF_DEP)
 
 # 3) Assembler rule: CRC 32bit, SysV AS
 $(O_CRC_SV): crc_i386.S $(ACONF_DEP)
-       $(CPP) $(AF) crc_i386.S > _crc_i386s.s
-       $(AS) -c -o $@ crc_i386s.s
-       $(RM) crc_i386s.s
+       $(CPP) $(AF) crc_i386.S > $(PROD)/_crc_i386s.s
+       $(AS) -c -o $@ $(PROD)/_crc_i386s.s
+       $(RM) $(PROD)/_crc_i386s.s
 
 #----------------------------------------------------------------------------
-#  Build rules: Object archives (.o -> .a)
+#  Build rules: Object libraries (.o -> .a)
 #----------------------------------------------------------------------------
 
-# Object archive rule: AES (WinZip/Gladman) encryption
+# Object library rule: AES (WinZip/Gladman) encryption
 
 $(AR_AES): $(O_AES)
        @echo 'Building/updating AES (WinZip/Gladman) object library...'
@@ -1001,7 +1001,7 @@ $(AR_AES): $(O_AES)
        $(AR) $@ $(O_AES)
        -$(RANLIB) $@
 
-# Object archive rule: LZMA compression
+# Object library rule: LZMA compression
 
 $(AR_LZMA): $(O_LZMA)
        @echo 'Building/updating LZMA object library...'
@@ -1009,7 +1009,7 @@ $(AR_LZMA): $(O_LZMA)
        $(AR) $@ $(O_LZMA)
        -$(RANLIB) $@
 
-# Object archive rule: PPMd compression
+# Object library rule: PPMd compression
 
 $(AR_PPMD): $(O_PPMD)
        @echo 'Building/updating PPMd object library...'
@@ -1017,7 +1017,7 @@ $(AR_PPMD): $(O_PPMD)
        $(AR) $@ $(O_PPMD)
        -$(RANLIB) $@
 
-# Object archive rule: BZIP2 compression
+# Object library rule: BZIP2 compression
 
 $(AR_BZ):
        @echo 'Building/updating BZIP2 object library...'
@@ -1034,7 +1034,7 @@ $(AR_BZ):
           ); \
         fi
 
-# Object archive rule: ZLIB compression
+# Object library rule: ZLIB compression
 
 $(AR_Z):
        @echo 'Building/updating ZLIB object library...'
@@ -1043,16 +1043,16 @@ $(AR_Z):
            `cat ../$(PROD)/flags`; \
         )
 
-# Object archive rule: Callable UnZip
+# Object library rule: Callable UnZip
 
 $(AR_UNZIP): $(O_UNZIPL) $(O_UNZIPN) $(LIB_AES_WG) $(LIB_LZMA) $(LIB_PPMD)
        @echo 'Building/updating Callable UnZip object library...'
-       unix/mlz.sh "$(AR_UNZIP)" "$(O_UNZIPL) $(O_UNZIPN)" \
+       sh unix/mlz.sh "$(AR_UNZIP)" "$(O_UNZIPL) $(O_UNZIPN)" \
          $(LIB_AES_WG) $(LIB_LZMA) $(LIB_PPMD)
        -$(RANLIB) $@
 
 #----------------------------------------------------------------------------
-#  Build rules: Link programs (.o + .a -> unzips)
+#  Build rules: Link programs (.o + .a -> executables)
 #----------------------------------------------------------------------------
 
 # Link rule: unzip
@@ -1060,21 +1060,21 @@ $(AR_UNZIP): $(O_UNZIPL) $(O_UNZIPN) $(LIB_AES_WG) $(LIB_LZMA) $(LIB_PPMD)
 $(PPGM_UNZIP): $(O_UNZIP) $(LIB_AES_WG) $(LIB_BZ) $(LIB_LZMA) \
                 $(LIB_PPMD) $(LIB_Z)
        $(LD) -o $@ $(LF1) $(O_UNZIP) $(LIB_AES_WG) $(LIB_LZMA) \
-         $(LIB_PPMD) $(LF2)
+         $(LIB_PPMD) $(LIB_Z) $(LF2)
 
 # Link rule: unzipsfx
 
 $(PPGM_SFX): $(O_SFX) $(LIB_AES_WG) $(LIB_BZ) $(LIB_LZMA) \
               $(LIB_PPMD) $(LIB_Z)
        $(LD) -o $@ $(LF1) $(O_SFX) $(LIB_AES_WG) $(LIB_LZMA) \
-         $(LIB_PPMD) $(LF2)
+         $(LIB_PPMD) $(LIB_Z) $(LF2)
 
 # Link rule: funzip
 
 $(PPGM_FUZ): $(O_FUZ) $(LIB_AES_WG) $(LIB_BZ) $(LIB_LZMA) \
               $(LIB_PPMD) $(LIB_Z)
        $(LD) -o $@ $(LF1) $(O_FUZ) $(LIB_AES_WG) $(LIB_LZMA) \
-         $(LIB_PPMD) $(LF2)
+         $(LIB_PPMD) $(LIB_Z) $(LF2)
 
 # Link rule: zipinfo
 
@@ -1090,11 +1090,11 @@ $(PPGM_ZINFO): $(PPGM_UNZIP)
 #  Build rules: Documentation
 #  - Explicit 1:1 rules are used.
 #  - Across various "make" utilities, pattern rule support is inconsistent.
-#  - Sys V "make" ay hava problems with $< when input and output names differ.
+#  - Sys V "make" may have problems with $< when input and output names differ.
 #----------------------------------------------------------------------------
 
 # UnZip documentation output directory rules
-# - Creates $(PROD)/manout directory if unix/configure not executed
+# - Creates $(PROD)/manout directory if unix/configure does not.
 
 $(PROD)/manout:
        if [ ! -d "$(PROD)" ]; then mkdir "$(PROD)"; fi
@@ -1126,8 +1126,8 @@ $(DOC_ZGREP): man/man1/zipgrep.1
        man -M ` pwd `/man zipgrep  | $(COL) -bx | uniq | expand > $@
        @echo ''
 
-# UnZip man page generation rule
-# - Requires nroff, or GNU groff package
+# UnZip alternate documentation generation rules
+# - Requires nroff, or GNU groff package.
 
 $(PMAN_UNZIP): man/man1/unzip.1
        nroff -man man/man1/unzip.1    | $(COL) -bx | uniq > $@
@@ -1150,7 +1150,7 @@ $(PMAN_ZGREP): man/man1/zipgrep.1
 
 all:        generic_msg generic
 docs:       $(PROD)/manout $(UNZIP_DOCS)
-manuals:    $(PROD)/manout $(UNZIP_PMANS)
+docsrof:    $(PROD)/manout $(UNZIP_PMANS)
 
 # Binaries build list (BINS) options:
 L:          $(LIB_UNZIP)
@@ -1172,10 +1172,10 @@ unix_make:
        if [ ! -d $(PROD) ]; then mkdir "$(PROD)"; fi
 
 #----------------------------------------------------------------------------
-#  Build rules: Configuration flags.
+#  Build rules: Configuration flags
 #  - Creates files containing system-dependent flag values.
-#  - Generated by unix/configure based on build utility program, platform and
-#    features selected.
+#  - Generated by unix/configure based on build utility program,
+#    platform and features selected.
 #----------------------------------------------------------------------------
 
 # Main flags
@@ -1204,31 +1204,31 @@ config_flags_bz: $(PROD)/flags_bz
 
 $(PROD)/flags_bz: $(PROD)/flags
 
-# C macros, and their effects:
-# ZMEM                  - includes C language versions of memset(), memcpy(),
-#                         and memcmp() (util.c).
-# HAVE_DIRENT_H         - use <dirent.h> instead of <sys/dir.h>
-# NODIR                 - for 3B1, which has neither getdents() nor opendir().
-# HAVE_NDIR_H           - use <ndir.h> (unix/unix.c).
-# HAVE_SYS_DIR_H        - use <sys/dir.h>
-# HAVE_SYS_NDIR_H       - use <sys/ndir.h>
-# UTIL                  - select routines for utilities (note, cloak, split)
-# NO_RMDIR              - remove directories using a system("rmdir ...") call.
-# NO_PROTO              - cannot handle ANSI prototypes
-# NO_CONST              - cannot handle ANSI const
-# NO_LARGE_FILE_SUPPORT - do not enable Large File support even if available.
-# NO_ZIP64_SUPPORT      - do not enable Zip64 archive support even if available.
-# NO_UNICODE_SUPPORT    - do not enable Unicode support even if available.
-# NO_BZIP2_SUPPORT      - do not compile in bzip2 code even if available.
+# C macros (-Dxxxx, or edit a header file), and their effects:
+#
+# HAVE_DIRENT_H         - Use <dirent.h> instead of <sys/dir.h>.
+# HAVE_NDIR_H           - Use <ndir.h> (unix/unix.c).
+# HAVE_SYS_DIR_H        - Use <sys/dir.h>.
+# HAVE_SYS_NDIR_H       - Use <sys/ndir.h>.
+# NODIR                 - For 3B1, which has neither getdents() nor opendir().
+# NO_BZIP2_SUPPORT      - Do not compile in bzip2 code even if available.
+# NO_CONST              - Cannot handle ANSI "const" keyword.
+# NO_LARGE_FILE_SUPPORT - Do not enable Large File support even if available.
+# NO_PROTO              - Cannot handle ANSI function prototypes.
+# NO_RMDIR              - Remove directories using a system("rmdir ...") call.
+# NO_UNICODE_SUPPORT    - Do not enable Unicode support even if available.
+# NO_ZIP64_SUPPORT      - Do not enable Zip64 archive support even if available.
+# ZMEM                  - Include C language versions of memset(),
+#                         memcpy(), and memcmp() (util.c).
 
 #----------------------------------------------------------------------------
 #  Build rules: Clean-up targets
-#  - Used to remove old output files before performing a new build
+#  - Used to remove old output files before performing a new build.
 #  - Used when incompatible build options (or source changes) are required.
 #----------------------------------------------------------------------------
 
 clean:
-       @if unix/unsafe_prod.sh "$(PROD)"; then \
+       @if sh unix/unsafe_prod.sh "$(PROD)"; then \
           echo "Won't clean absolute (/x) or rising (../) PROD: $(PROD)"; \
         else \
           echo "rm -f \"$(PROD)\"/*.o \"$(PROD)\"/*.a $(UNZIP_PPGMS)"; \
@@ -1284,27 +1284,28 @@ install_man:
 
 install_man_gz: install_man
        gzip $(INSTALLEDMAN)
+       $(CHMOD) $(MANPERMS) $(INSTALLEDMAN_GZ)
 
 uninstall:
-       $(RM) $(INSTALLEDBIN) $(INSTALLEDMAN)  $(INSTALLEDMAN_GZ)
+       $(RM) $(INSTALLEDBIN) $(INSTALLEDMAN) $(INSTALLEDMAN_GZ)
 
 #----------------------------------------------------------------------------
 #  Build rules: SVR4 Package generation Interface
-#  - Originally tested under Sun Solaris 2.x (by JBush)
-#  - Other SVr4s may be very similar, and could possibly use this
-#  Note:  Expects version info to be stored in VERSION macro variable
-#         See "README" under unix/Packaging
+#  - Originally tested under Sun Solaris 2.x (by JBush).
+#  - Other SVr4s may be very similar, and could possibly use this.
+#  Note:  Expects version info to be stored in VERSION macro variable.
+#         See "README" under unix/Packaging/.
 #----------------------------------------------------------------------------
 
 svr4package: $(BINS)
        @echo 'Creating SVR4 package for Unix ...'
        -@rm -rf $(PKGDIR) $(PKGDIR)_`uname -p`.pkg
        -@sed -e "s/.VERSION./$(VERSION)/g" \
-           -e "s/.PSTAMP./$(LOGNAME)_`date | tr  ' ' '_'`/g" \
-           -e "s/.ARCH./Solaris_`uname -rp | tr ' ' ','`/g" \
-           unix/Packaging/pkginfo.in > unix/Packaging/pkginfo
+         -e "s/.PSTAMP./$(LOGNAME)_`date | tr  ' ' '_'`/g" \
+         -e "s/.ARCH./Solaris_`uname -rp | tr ' ' ','`/g" \
+         unix/Packaging/pkginfo.in > unix/Packaging/pkginfo
        -@sed -e "s/.ARCH./`uname -p`/g" \
-           unix/Packaging/preinstall.in > unix/Packaging/preinstall
+         unix/Packaging/preinstall.in > unix/Packaging/preinstall
        /usr/bin/pkgmk -d . -b . -r . -f unix/Packaging/prototype $(PKGDIR)
        /usr/bin/pkgtrans -o -s . $(PKGDIR)_`uname -p`.pkg $(PKGDIR)
        @echo ''
@@ -1315,7 +1316,7 @@ svr4package: $(BINS)
        @echo ''
 
 #----------------------------------------------------------------------------
-#  Build rules: Make a distribution
+#  Build rules: Distribution kit
 #----------------------------------------------------------------------------
 
 dist: $(DOC_UNZIP)
@@ -1422,7 +1423,7 @@ testmake_ppmd_zip:
 
 #----------------------------------------------------------------------------
 #  Generic targets
-#  - These invoke the configure script to determine configuration.
+#  - These invoke the unix/configure script to determine configuration.
 #----------------------------------------------------------------------------
 
 # generic_msg
@@ -1437,7 +1438,7 @@ generic_msg:
        @echo ''
 
 # generic
-# - Generate flags file (if doesn't exist), then unzip modules
+# - Generate flags file (if doesn't exist), then UnZip modules.
 
 generic: $(PROD)/flags
        eval $(MAKE) $(MAKEF) $(BINS) ACONF_DEP=$(PROD)/flags \
@@ -1451,7 +1452,7 @@ generic_pkg: generic svr4package
 
 #----------------------------------------------------------------------------
 #  Old, non-"generic" targets
-#  - For those systems which do not work with the generic targets.
+#  - For those systems which do not work with the "generic" targets.
 #  - Can not assume that the "make" utility groks "$(MAKE)".
 #----------------------------------------------------------------------------
 
diff --git a/unix/Makefile_old b/unix/Makefile_old
deleted file mode 100644 (file)
index 27d5cdf..0000000
+++ /dev/null
@@ -1,1833 +0,0 @@
-#==============================================================================
-# unix/Makefile_old
-# - For UnZip, fUnZip, UnZipSFX, and ZipInfo            Revised: 2013-11-29
-#
-# Copyright (c) 2004-2013 Info-ZIP.  All rights reserved.
-#
-# See the accompanying file LICENSE, version 2009-Jan-2 or later (the
-# contents of which are also included in zip.h) for terms of use.  If,
-# for some reason, all these files are missing, the Info-ZIP license may
-# also be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
-#==============================================================================
-
-###############################################################################
-# This file was renamed from "unix/Makefile" to "unix/Makefile_old".
-# Similarly, "unix/configure" was renamed to "unix/configure_old".
-# Please keep this in mind when reading the comments and instructions below.
-###############################################################################
-
-#==============================================================================
-#
-# INSTRUCTIONS (such as they are):
-#
-# "make -f unix/Makefile generic"         Make UnZip on most systems using cc.
-#
-# "make -f unix/Makefile generic CC=gcc"  Make UnZip on most systems using gcc.
-#
-# "make -f unix/Makefile list"            List all supported targets.
-#
-# "make -f unix/Makefile help"            Limited advice on which targets to
-#                                         try if problems occur.
-#
-# CF are flags for the C compiler.  LF are flags for the linker.  LF2 are more
-# flags for the linker, if they need to be at the end of the line instead of
-# at the beginning (for example, some libraries).  LOCAL_UNZIP is a "make"
-# macro that can be used to add default C flags to your compile without
-# editing the Makefile (e.g., -DDEBUG_STRUC, or -FPi87 on PCs using Microsoft
-# C).
-#
-# The "generic" target invokes the "unix/configure" script to test the compile
-# and other parts of the environment to see what's supported.  The results are
-# used to adjust the build procedure and to enable or disable some program
-# features.  unix/configure builds a "flags" file with appropriate values for
-# a number of "make" variables, which is used by this Makefile when performing
-# the actual builds.  A separate flags file for building BZIP2 may also be
-# created.  This Makefile recursively invokes this Makefile to perform the
-# actual builds.
-#
-# While oriented towards building Unix (and Unix work-alike) ports of UnZip,
-# this file and/or unix/configure are also used by other ports of UnZip.  See
-# below.
-#
-# If at all possible, use the generic targets.  The other (older) targets are
-# less well tested, and may need considerable help from the user to get
-# optimal results (or any success at all).
-#
-# The "generic_docs" and "generic_man" targets also invoke "unix/configure",
-# and generate the UnZip documentation files.
-#
-# Optional UnZip features are controlled by setting "make" macros as described
-# below or by the results of tests done by configure (such as checking if the
-# needed files are in an appropriate directory).
-#
-# Optional features include (see INSTALL for installation instructions):
-#
-# AES encryption - If you want AES encryption (WinZip/Gladman) support
-#   included, unzip the AES_WG source kit (iz_aes_wg13.zip, or whatever
-#   is the latest version, available on the Info-ZIP server) to populate
-#   the local ./aes_wg subdirectory, and set the "make" macro AES_WG to
-#   1.   See the files INSTALL and aes_wg/README_AES_WG.txt for more
-#   information.
-#
-# LZMA compression - If you want LZMA compression support included, set
-#   the "make" macro LZMA to 1.  See the files INSTALL and
-#   szip/README_LZMA.txt and INSTALL for more information.
-#
-# PPMd compression - If you want PPMd compression support included, set
-#   the "make" macro PPMD to 1.  See the files INSTALL and
-#   szip/README_LZMA.txt and INSTALL for more information.
-#
-# Bzip2 compression - If you want bzip2 compression support included, there
-#   are three options:
-#   - Create a local build of bzip2 by unzipping the latest bzip2 source
-#     archive into the ./bzip2 subdirectory and setting the "make" macro
-#     IS_BZIP2 to bzip2.  unix/Makefile will attempt to properly build the
-#     library using the bzip2 make file.
-#   - Use an existing build of the bzip2 library by setting the "make" macro
-#     IZ_BZIP2 to a directory containing the bzip2 header file and object
-#     (and/or shared) library files.
-#   - Use the system bzip2 library.  Ensure the local ./bzip2 subdirectory
-#     exists and does not contain the files Makefile, libbz2.a, or bzlib.h.
-#     Set the "make" macro IZ_BZIP2 to bzip2.  However, use one of the above
-#     options first, if possible, to avoid an issue with error handling that
-#     may not be corrected in the system library.
-#   See the files INSTALL and bzip2/README_BZIP2.txt for more information.
-#
-# Zlib deflation - If you want to use zlib for decompressing instead of UnZip's
-#   built-in code, there are two options:
-#   - Use an existing build of the zlib support by setting the "make" macro
-#     IZ_ZLIB to a directory containing suitable zlib header and object/shared
-#     library files.
-#   - Use the system zlib support by ensuring the local ./zlib subdirectory
-#     exists, and does not contain the files libz.a or bzlib.h. Set the "make"
-#     macro IZ_BZIP2 to zlib.
-#
-# UnZip Ports:
-#
-# This Makefile and/or the unix/configure script support a number of non-Unix
-# UnZip ports, where the UnZip program build is under Unix (or a Unix
-# work-alike), but the UnZip program execution may be on another system or
-# execution environment.  The unix/configure script will be invoked from
-# either unix/Makefile, or from a Makefile located in another port directory.
-#
-# The port may be explicitly identified by the PORT parameter, or implicitly
-# detected by compiler configuration tests.
-#
-# Supported ports include:
-#   msdos : DOS port built using the DJGPP (or Cygwin) cross-compiler
-#   os2   : OS/2 port
-#   qdos  : Sinclair Q-DOS port built using a gcc cross-compiler
-#   zos   : z/OS MVS port built under z/OS UNIX
-#   zvm   : z/VM CMS port built under z/VM OpenExtensions
-#
-# Be sure to test your new UnZip (and UnZipSFX and fUnZip and ZipInfo).  A
-# successful build does not guarantee a working program.
-
-#####################
-# DEFAULT TARGETS   #
-#####################
-
-# List of supported systems/targets in this version
-GENERIC_TARGETS1  = generic  generic_man  generic_docs  generic_pkg  flags
-GENERIC_TARGETS2  = generic1 generic2 generic3 generic_bz2 generic_zlib
-GENERIC_TARGETS3  = generic_shlib
-
-MISC_TARGETS = clean  clean_bzip2  clean_docs  clean_exe  dashv
-
-SYS_TARGETS01  = 386i 3Bx 7300 7300_gcc amdahl amdahl_eft apollo aviion
-SYS_TARGETS02  = bsd bsdi bsdi_noasm bull coherent convex cray cray_opt
-SYS_TARGETS03  = cyber_sgi cygwin dec dnix encore eta freebsd gcc gould
-SYS_TARGETS04  = hk68 hp hpux isc isc_gcc isi linux linux_dos linux_noasm
-SYS_TARGETS05  = linux_shlib linux_shlibz lynx macosx macosx_gcc minix mips
-SYS_TARGETS06  = mpeix next next10 next2x next3x nextfat osf1 pixel ptx
-SYS_TARGETS07  = pyramid qnxnto realix regulus sco sco_dos sco_sl sco_x286
-SYS_TARGETS08  = sequent sgi solaris stardent stellar sunos3 sunos4
-SYS_TARGETS09  = sysv sysv_gcc sysv6300 tahoe ti_sysv ultrix vax v7
-SYS_TARGETS10  = xenix xos
-
-# By default, print help on which makefile targets to try.
-
-# What you can make ...
-help:
-       @echo ''
-       @echo 'Make what?  You must specify which system to make UnZip for.'
-       @echo 'The "make" generic target choices are:'
-       @echo ''
-       @echo "  $(GENERIC_TARGETS1)"
-       @echo "  $(GENERIC_TARGETS2)"
-       @echo "  $(GENERIC_TARGETS3)"
-       @echo ''
-       @echo 'Additional "make" targets include:'
-       @echo ''
-       @echo "  $(MISC_TARGETS)"
-       @echo ''
-       @echo 'For a list including specific targets for older systems:'
-       @echo '   make -f unix/Makefile list'
-       @echo ''
-       @echo '"make" macros to enable varions optional features:'
-       @echo '    "AES_WG=1"        Add AES encryption (WinZip/Gladman).'
-       @echo '    "CC=gcc"          Use "gcc" instead of "cc" for C compiler.'
-       @echo '    "ICONV=1"         Enable ISO/OEM (iconv) conversion.'
-       @echo '    "IZ_BZIP2=bz2dir" Add BZIP2 compression from dir bz2dir.'
-       @echo '    "IZ_ZLIB=zdir"    Use ZLIB from dir zdir for deflate.'
-       @echo '    "LIBUNZIP=1"      Create UnZip object library.'
-       @echo '    "LIST=1"          Generate C compiler and linker listing.'
-       @echo '    "LOCAL_UNZIP=opts" Add C compiler options, "opts".'
-       @echo '    "LZMA=1"          Add LZMA compression.'
-       @echo '    "PPMD=1"          Add PPMd compression.'
-       @echo ''
-       @echo 'Examples:'
-       @echo '   make -f unix/Makefile generic'
-       @echo '    - make UnZip programs using cc.'
-       @echo '   make -f unix/Makefile generic CC=gcc AES_WG=1'
-       @echo '    - make UnZip programs using gcc, with AES_WG encryption.'
-       @echo ''
-       @echo 'Note that many of these optional "make" macros direct the'
-       @echo '"unix/configure" script, and so may work only with the'
-       @echo '"generic" target.'
-       @echo ''
-       @echo 'First try "make -f unix/Makefile generic" (to use "cc")'
-       @echo '(or "make -f unix/Makefile generic CC=gcc" (to use "gcc")),'
-       @echo 'as "generic" should automatically set the proper flags.'
-       @echo ''
-       @echo 'Use the "clean" target to delete any product files before'
-       @echo 'using one of the other "make" targets.  The generic targets'
-       @echo 'use the unix/configure script to generate an intermediate'
-       @echo '"flags" file which is used by unix/Makefile.  For debugging'
-       @echo 'purposes, the "flags" target can be used to generate the'
-       @echo '"flags" file only.'
-       @echo ''
-       @echo 'To make the manuals use "make -f unix/Makefile generic_man" to'
-       @echo 'autodetect and use the proper flags.'
-       @echo ''
-       @echo 'Use generic_docs to make the plain text docs.  These are the'
-       @echo 'files, like unzip.txt, that should already be in the UnZip root'
-       @echo 'directory.  To recreate these files, clear out the originals'
-       @echo 'using the clean_docs target, then use the generic_docs target.'
-       @echo ''
-       @echo 'After UnZip has been built, use dashv to get an "unzip -v"'
-       @echo 'report from the created executable.'
-       @echo ''
-       @echo 'See the files INSTALL, unzip.txt, and unix/Makefile for more'
-       @echo 'information.'
-       @echo ''
-       @echo '  For most users, the best build method is the generic target'
-       @echo '  using the default compiler (cc is often gcc), or by specifying'
-       @echo '  an explicit CC=gcc override.'
-       @echo ''
-       @echo '  Other (older) targets are less well tested, and may need'
-       @echo '  considerable help from the user to get optimal results (or'
-       @echo '  any success at all).  Use "make -f unix/Makefile list" to'
-       @echo '  get a list of valid targets.'
-       @echo ''
-       @echo '  Always do "make -f unix/Makefile clean clean_bzip2" before'
-       @echo '  attempting to build UnZip using a different target.'
-       @echo ''
-       @echo '  If the "generic" target fails, you might try an older generic'
-       @echo '  target that is now called "generic1".'
-       @echo ''
-       @echo '  If the compiler complains about "timezone redefined", then'
-       @echo '  the "generic2" target may work better.  If the linker'
-       @echo '  complains about an undefined symbol, "_ftime", then the'
-       @echo '  "generic3" target may work better.'
-       @echo ''
-       @echo '  One of these actions should produce working UnZip programs on'
-       @echo '  most Unix(-like) systems.  If you know a bit more about the'
-       @echo '  system on which you work, then you might try "make -f'
-       @echo '  unix/Makefile list" for a list of the system-specific targets'
-       @echo '  supported herein.  (Many of them do exactly the same thing,'
-       @echo '  so do not agonize too much over which to pick if two or more'
-       @echo '  sound equally likely.)'
-       @echo ''
-
-# list
-# - Display list of supported systems/targets in this version.
-# - The SYSTEM variable is no longer supported.  Instead, use:
-# -    make -f unix/Makefile <target>
-list:
-       @echo ''
-       @echo 'Type "make -f unix/Makefile <target>", where <target> is one of'
-       @echo 'the following:'
-       @echo ''
-       @echo 'Generic targets:'
-       @echo "  $(GENERIC_TARGETS1)"
-       @echo "  $(GENERIC_TARGETS2)"
-       @echo "  $(GENERIC_TARGETS3)"
-       @echo ''
-       @echo 'Specific targets:'
-       @echo "  $(SYS_TARGETS01)"
-       @echo "  $(SYS_TARGETS02)"
-       @echo "  $(SYS_TARGETS03)"
-       @echo "  $(SYS_TARGETS04)"
-       @echo "  $(SYS_TARGETS05)"
-       @echo "  $(SYS_TARGETS06)"
-       @echo "  $(SYS_TARGETS07)"
-       @echo "  $(SYS_TARGETS08)"
-       @echo "  $(SYS_TARGETS09)"
-       @echo "  $(SYS_TARGETS10)"
-       @echo ''
-       @echo 'Miscellaneous targets:'
-       @echo "  $(MISC_TARGETS)"
-       @echo ''
-       @echo 'Use one of the generic targets if possible, as the specific'
-       @echo 'targets tend to be woefully out of date.'
-       @echo ''
-       @echo 'For further (very useful) information, please read the comments'
-       @echo 'in unix/Makefile.'
-
-#####################
-# MACRO DEFINITIONS #
-#####################
-
-#----------------------------------------------------------------------------
-# Defaults most systems use
-# - The generic target invokes unix/configure to build ./flags and
-#   ./flags_bz containing system derived settings that are used by
-#   this makefile.
-# - use "make" macro LOCAL_UNZIP to add C compiler flags (such as
-#   -DDOSWILD).
-#----------------------------------------------------------------------------
-
-# This file name as make parameter, for recursion
-MAKEF = '-f unix/Makefile_old'
-
-# Build Directories
-# - Root    build directory is "."
-# - Manuals build directory is "./manout"
-
-# Build Dependencies for make
-# - Optional object library names
-#    AES (WinZip/Gladman) encryption
-#    BZIP2 compression
-#    LZMA compression
-#    PPMd compression
-#    Callable UnZip
-#    ZLIB compression
-LIB_AES_WG  =
-LIB_BZ      =
-LIB_LZMA    =
-LIB_PPMD    =
-LIB_UNZIP   =
-LIB_Z       =
-
-# Build makefiles
-# - Alternatively, use bzip2/Makebz2.iz
-#    BZIP2 compression
-MK_BZ   = Makefile
-
-# OS-dependent files
-# - Default:  Unix port.
-# - Compilation and execution are both for Unix (or a Unix-like) environment.
-#   The files in the UnZip root and unix directories are used.
-# - The vast majority of you out there will likely use this configuration, and
-#   do not have to ever worry about this.
-# - Where required by a specific UnZip port, a generic target (in this Makefile
-#   or a Makefile located in another port directory) uses the PORT macro to set
-#   the correct OS dependent files via unix/configure.  Or you can (very
-#   carefully) override as required.
-#    C header files
-#    C object files for funzip
-#    C object files for unzipsfx
-#    C object files for unzip
-#    Assembler object files
-OSDEP_H  = unix/unxcfg.h
-OSDEP_OCF =
-OSDEP_OCS = ./unix.o
-OSDEP_OCU = ./unix.o
-OSDEP_OS =
-
-# OS-dependent file extensions
-# - This default may be customized by unix/configure based on PORT
-#    Executable programs
-#    DLL (.so) (currently not used)
-#    man page
-PGMEXT =
-DLLEXT = .so
-MANEXT = 1
-
-# OS-dependent installation directories: executables and man pages
-# - This default may be customized by unix/configure based on PORT
-BINDIR = /usr/local/bin
-MANDIR = /usr/local/man/man$(MANEXT)
-
-# OS-dependent installation file permissions: executables and man pages
-# - This default may be customized by unix/configure based on PORT
-BINPERMS = 755
-MANPERMS = 644
-
-# C compiler and flags: core and bzip2
-# - CC and LD must match, else "unresolved symbol:  ___main" is possible)
-# - To use "gcc", specify "make" macro, "CC=gcc", instead of editing here.
-CC     = cc
-CC_BZ  = $(CC)
-
-CF_NOOPT = -I. -DUNIX $(LOCAL_UNZIP)
-CFLAGS = -O
-CF     = $(CFLAGS) $(CF_NOOPT)
-CF_BZ  = $(CF)
-
-# C preprocessor
-CPP    = $(CC) -E
-
-# Assembler and assembler flags
-AS     = as
-AF     = $(LOCAL_UNZIP)
-
-# Linker and linker flags (early and late)
-# - CC and LD must match, else "unresolved symbol:  ___main" is possible)
-# - To use "gcc", specify "make" macro, "CC=gcc", instead of editing here.
-LD     = $(CC)
-LF1    =
-LF2    = -s
-
-# Other utility programs
-AR      = ar cq
-CHMOD   = chmod
-LN      = ln
-RANLIB  = ranlib
-RM      = rm -f
-SHELL   = /bin/sh
-STRIP   = strip
-PGM_ZIP = zip
-
-# Default for dependency on auto-configure result, is an empty symbol
-# so that the static non-autoconfigure targets continue to work
-ACONF_DEP =
-
-#----------------------------------------------------------------------------
-#  Build configuration:  header files
-#----------------------------------------------------------------------------
-
-# OSDEP_H is port-dependent and can be updated by unix/configure
-
-# C header files: unzip
-H_UNZIP  = unzip.h          \
-           unzpriv.h        \
-           globals.h        \
-           $(OSDEP_H)       \
-           $(ACONF_DEP)
-
-H_UNZIPL = api.h $(H_UNZIP)
-
-# C header files: AES (WinZip/Gladman) encryption
-H_AES    = aes_wg/aes.h     \
-           aes_wg/aesopt.h  \
-           aes_wg/fileenc.h \
-           aes_wg/hmac.h    \
-           aes_wg/prng.h    \
-           aes_wg/pwd2key.h \
-           aes_wg/sha1.h
-
-# C header files: LZMA compression
-H_LZMA   = szip/SzVersion.h \
-           szip/LzFind.h    \
-           szip/LzHash.h    \
-           szip/LzmaDec.h   \
-           szip/Types.h
-
-# C header files: PPMd compression
-H_PPMD   = szip/Ppmd.h      \
-           szip/Ppmd8.h
-
-#----------------------------------------------------------------------------
-#  Build configuration:  object files
-#----------------------------------------------------------------------------
-
-# OSDEP_* are port-dependent and can be updated by unix/configure.
-
-# object files: unzip
-O_UNZIP  = unzip.o      \
-           crc32.o      \
-           crypt.o      \
-           envargs.o    \
-           explode.o    \
-           extract.o    \
-           fileio.o     \
-           globals.o    \
-           inflate.o    \
-           list.o       \
-           match.o      \
-           process.o    \
-           ttyio.o      \
-           ubz2err.o    \
-           unreduce.o   \
-           unshrink.o   \
-           zipinfo.o    \
-           $(OSDEP_OCU) \
-           $(OSDEP_OS)
-
-# object files: UnZip object library.  Modules sensitive to DLL/REENTRANT.
-O_UNZIPL = api_l.o      \
-           apihelp_l.o  \
-           crypt_l.o    \
-           explode_l.o  \
-           extract_l.o  \
-           fileio_l.o   \
-           globals_l.o  \
-           inflate_l.o  \
-           list_l.o     \
-           process_l.o  \
-           ttyio_l.o    \
-           ubz2err_l.o  \
-           unshrink_l.o \
-           unzip_l.o    \
-           zipinfo_l.o  \
-           $(OSDEP_OCU:.o=_l.o)
-
-# object files: UnZip object library.  Modules insensitive to DLL/REENTRANT.
-O_UNZIPN = crc32.o      \
-           envargs.o    \
-           match.o      \
-           unreduce.o   \
-           $(OSDEP_OS)
-
-# object files: UnZip DLL
-O_DLL    = $(O_UNZIP)   \
-           api.o        \
-           apihelp.o
-
-O_STUB   = unzipstb.o
-
-# object files: unzipsfx
-O_SFX    = unzipsfx.o   \
-           crc32_s.o    \
-           crypt_s.o    \
-           extract_s.o  \
-           fileio_s.o   \
-           globals_s.o  \
-           inflate_s.o  \
-           match_s.o    \
-           process_s.o  \
-           ttyio_s.o    \
-           ubz2err_s.o  \
-           $(OSDEP_OCS:.o=_s.o) \
-           $(OSDEP_OS)
-
-# object files: funzip
-O_FUZ    = funzip.o     \
-           crc32_f.o    \
-           crypt_f.o    \
-           globals_f.o  \
-           inflate_f.o  \
-           ttyio_f.o    \
-           $(OSDEP_OCF:.o=_f.o) \
-           $(OSDEP_OS)
-
-# object files: Assembler CRC (Source: msdos/crc_i86.S)
-# - All OS-dependent, by unix/configure based on PORT
-O_CRC_I  = ./crc_i86.o
-
-# object files: Assembler CRC (Source: crc_i386.S)
-# - All OS-dependent, by unix/configure based on PORT
-O_CRC_G  = ./crc_gcc.o
-O_CRC_SV = ./crc_sysv.o
-
-# object files: AES (WinZip/Gladman) encryption
-O_AES    = aescrypt.o   \
-           aeskey.o     \
-           aestab.o     \
-           fileenc.o    \
-           hmac.o       \
-           prng.o       \
-           pwd2key.o    \
-           sha1.o
-
-# object files: LZMA compression
-O_LZMA   = LzFind.o     \
-           LzmaDec.o
-
-# object files: PPMd compression
-O_PPMD   = Ppmd8.o      \
-           Ppmd8Dec.o
-
-# object files: ZLIB compression
-# - N/A. ZLIB is not built as part of UnZip
-
-#----------------------------------------------------------------------------
-#  Build configuration:  object archive libraries
-#----------------------------------------------------------------------------
-
-# object archive: AES (WinZip/Gladman) encryption
-AR_AES   = libaes.a
-
-# object archive: BZIP2 compression
-AR_BZ    = bzip2/libbz2.a
-
-# object archive: LZMA compression
-AR_LZMA  = liblzma.a
-
-# object archive: PPMd compression
-AR_PPMD  = libppmd.a
-
-# object archive: Callable UnZip
-AR_UNZIP = libizunzip.a
-
-# object archive: ZLIB compression
-AR_Z     = zlib/libz.a
-
-#----------------------------------------------------------------------------
-#  Build configuration:  Executable programs
-#----------------------------------------------------------------------------
-PGM_UNZIP  = unzip$(PGMEXT)
-PGM_DLL    = unzip$(DLLEXT)
-PGM_SFX    = unzipsfx$(PGMEXT)
-PGM_FUZ    = funzip$(PGMEXT)
-PGM_ZINFO  = zipinfo$(PGMEXT)
-PGM_ZGREP  = unix/zipgrep
-
-UNZIP_PGMS = $(PGM_UNZIP) \
-             $(PGM_SFX)   \
-             $(PGM_FUZ)   \
-             $(LIB_UNZIP)
-
-#----------------------------------------------------------------------------
-#  Build configuration:  Manuals
-#----------------------------------------------------------------------------
-MAN_UNZIP  = manout/unzip.$(MANEXT)
-MAN_SFX    = manout/unzipsfx.$(MANEXT)
-MAN_FUZ    = manout/funzip.$(MANEXT)
-MAN_ZINFO  = manout/zipinfo.$(MANEXT)
-MAN_ZGREP  = manout/zipgrep.$(MANEXT)
-
-UNZIP_MANS = $(MAN_UNZIP) \
-             $(MAN_SFX)   \
-             $(MAN_FUZ)   \
-             $(MAN_ZINFO) \
-             $(MAN_ZGREP)
-
-# Plain text versions go in the root directory for easy user access
-
-DOC_UNZIP  = unzip.txt
-DOC_SFX    = unzipsfx.txt
-DOC_FUZ    = funzip.txt
-DOC_ZINFO  = zipinfo.txt
-DOC_ZGREP  = zipgrep.txt
-
-UNZIP_DOCS = $(DOC_UNZIP) \
-             $(DOC_SFX)   \
-             $(DOC_FUZ)   \
-             $(DOC_ZINFO) \
-             $(DOC_ZGREP)
-
-#----------------------------------------------------------------------------
-#  Build configuration:  Installation
-#----------------------------------------------------------------------------
-
-# (probably can change next two to `install' and `install -d' if you have it)
-INSTALL   = cp
-INSTALL_PROGRAM = $(INSTALL)
-INSTALL_D = mkdir -p
-
-BIN_UNZIP = $(BINDIR)/$(PGM_UNZIP)
-BIN_DLL   = $(BINDIR)/$(PGM_DLL)
-BIN_SFX   = $(BINDIR)/$(PGM_SFX)
-BIN_FUZ   = $(BINDIR)/$(PGM_FUZ)
-BIN_ZINFO = $(BINDIR)/$(PGM_ZINFO)
-BIN_ZGREP = $(BINDIR)/zipgrep
-
-INSTALLEDBIN = $(BIN_UNZIP) \
-               $(BIN_SFX)   \
-               $(BIN_FUZ)   \
-               $(BIN_ZINFO) \
-               $(BIN_ZGREP)
-
-INSTALLEDMAN = $(MANDIR)/unzip.$(MANEXT)    \
-               $(MANDIR)/unzipsfx.$(MANEXT) \
-               $(MANDIR)/funzip.$(MANEXT)   \
-               $(MANDIR)/zipgrep.$(MANEXT)  \
-               $(MANDIR)/zipinfo.$(MANEXT)
-
-# Solaris 2.x package stuff:
-PKGDIR  = IZunzip
-VERSION = Version 6.1
-
-
-###############################################
-# BASIC COMPILE INSTRUCTIONS AND DEPENDENCIES #
-###############################################
-
-#----------------------------------------------------------------------------
-#  Build rules: File suffixes
-#  - Remove all built-in rules
-#  - Only explicit 1:1 rules are used
-#----------------------------------------------------------------------------
-.SUFFIXES:
-
-#----------------------------------------------------------------------------
-#  Build rules: C compile (.c -> .o)
-#  - Explicit 1:1 rules are used
-#  - Across various make utilities, pattern rule support is inconsistent
-#  - Sys V make has issues with $< when input and output names differ
-#----------------------------------------------------------------------------
-
-# C Compile rule: unzip
-
-# A) Core UnZip C files
-unzip.o:      unzip.c     $(H_UNZIP) consts.h crypt.h unzvers.h
-       $(CC) -c $(CF) -o $@ unzip.c
-
-crc32.o:      crc32.c     $(H_UNZIP) crc32.h zip.h
-       $(CC) -c $(CF) -o $@ crc32.c
-
-crypt.o:      crypt.c     $(H_UNZIP) crc32.h crypt.h ttyio.h zip.h
-       $(CC) -c $(CF) -o $@ crypt.c
-
-envargs.o:    envargs.c   $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ envargs.c
-
-explode.o:    explode.c   $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ explode.c
-
-extract.o:    extract.c   $(H_UNZIP) crc32.h crypt.h
-       $(CC) -c $(CF) -o $@ extract.c
-
-fileio.o:     fileio.c    $(H_UNZIP) crc32.h crypt.h ebcdic.h ttyio.h
-       $(CC) -c $(CF) -o $@ fileio.c
-
-globals.o:    globals.c   $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ globals.c
-
-inflate.o:    inflate.c   $(H_UNZIP) inflate.h
-       $(CC) -c $(CF) -o $@ inflate.c
-
-list.o:       list.c      $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ list.c
-
-match.o:      match.c     $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ match.c
-
-process.o:    process.c   $(H_UNZIP) crc32.h
-       $(CC) -c $(CF) -o $@ process.c
-
-ttyio.o:      ttyio.c     $(H_UNZIP) crypt.h ttyio.h zip.h
-       $(CC) -c $(CF) -o $@ ttyio.c
-
-ubz2err.o:    ubz2err.c   $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ ubz2err.c
-
-unreduce.o:   unreduce.c  $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ unreduce.c
-
-unshrink.o:   unshrink.c  $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ unshrink.c
-
-zipinfo.o:    zipinfo.c   $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ zipinfo.c
-
-# A') Callable UnZip C files
-
-api_l.o:      api.c       $(H_UNZIPL)
-       $(CC) -c $(CF) -DDLL -o $@ api.c
-
-apihelp_l.o:  apihelp.c   $(H_UNZIPL)
-       $(CC) -c $(CF) -DDLL -o $@ apihelp.c
-
-crypt_l.o:    crypt.c     $(H_UNZIPL) crc32.h crypt.h ttyio.h zip.h 
-       $(CC) -c $(CF) -DDLL -o $@ crypt.c
-
-explode_l.o:  explode.c   $(H_UNZIPL)
-       $(CC) -c $(CF) -DDLL -o $@ explode.c
-
-extract_l.o:  extract.c   $(H_UNZIPL) crc32.h crypt.h
-       $(CC) -c $(CF) -DDLL -o $@ extract.c
-
-fileio_l.o:   fileio.c    $(H_UNZIPL) crc32.h crypt.h ebcdic.h ttyio.h
-       $(CC) -c $(CF) -DDLL -o $@ fileio.c
-
-globals_l.o:  globals.c   $(H_UNZIPL)
-       $(CC) -c $(CF) -DDLL -o $@ globals.c
-
-inflate_l.o:  inflate.c   $(H_UNZIPL) inflate.h
-       $(CC) -c $(CF) -DDLL -o $@ inflate.c
-
-list_l.o:     list.c      $(H_UNZIPL)
-       $(CC) -c $(CF) -DDLL -o $@ list.c
-
-process_l.o:  process.c   $(H_UNZIPL)
-       $(CC) -c $(CF) -DDLL -o $@ process.c
-
-ttyio_l.o:    ttyio.c     $(H_UNZIPL) crypt.h ttyio.h zip.h
-       $(CC) -c $(CF) -DDLL -o $@ ttyio.c
-
-ubz2err_l.o:  ubz2err.c   $(H_UNZIPL)
-       $(CC) -c $(CF) -DDLL -o $@ ubz2err.c
-
-unreduce_l.o: unreduce.c  $(H_UNZIPL)
-       $(CC) -c $(CF) -DDLL -o $@ unreduce.c
-
-unshrink_l.o: unshrink.c  $(H_UNZIPL)
-       $(CC) -c $(CF) -DDLL -o $@ unshrink.c
-
-unzip_l.o:    unzip.c     $(H_UNZIPL) consts.h crypt.h unzvers.h
-       $(CC) -c $(CF) -DDLL -o $@ unzip.c
-
-zipinfo_l.o:  zipinfo.c   $(H_UNZIPL)
-       $(CC) -c $(CF) -DDLL -o $@ zipinfo.c
-
-./unix_l.o:   unix/unix.c $(H_UNZIPL) unix/macosx.h
-       $(CC) -c $(CF) -DDLL -o $@ unix/unix.c
-
-# B) UnZip C files for specific ports
-#    - Files under msdos and os2 are used when cross compiling for those ports
-#    - Generated when referenced by OSDEP_OC*
-#    - OSDEP_OC* are customized by unix/configure, based on PORT macro
-
-./msdos.o:    msdos/msdos.c  $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ msdos/msdos.c
-
-./os2.o:      os2/os2.c  $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ os2/os2.c
-
-./unix.o:     unix/unix.c  $(H_UNZIP) unix/macosx.h
-       $(CC) -c $(CF) -o $@ unix/unix.c
-
-./nt.o:       win32/nt.c  $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ win32/nt.c
-
-./win32.o:    win32/win32.c  $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ win32/win32.c
-
-./win32i64.o:  win32/win32i64.c  $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ win32/win32i64.c
-
-# C Compile rule: UnZip DLL
-api.o:        api.c       $(H_UNZIP)
-       $(CC) -c $(CF) -DDLL -o $@ api.c
-
-apihelp.o:    apihelp.c   $(H_UNZIP)
-       $(CC) -c $(CF) -DDLL -o $@ apihelp.c
-
-unzipstb.o:   unzipstb.c  $(H_UNZIP)
-       $(CC) -c $(CF) -o $@ unzipstb.c
-
-# B) UnZip DLL C files for specific ports
-#    - Generated when referenced by OSDEP_OC*
-#    - OSDEP_OC* are customized by unix/configure, based on PORT macro
-
-./nt_l.o:       win32/nt.c  $(H_UNZIP)
-       $(CC) -c $(CF) -DDLL -o $@ win32/nt.c
-
-./win32_l.o:    win32/win32.c  $(H_UNZIP)
-       $(CC) -c $(CF) -DDLL -o $@ win32/win32.c
-
-./win32i64_l.o: win32/win32i64.c  $(H_UNZIP)
-       $(CC) -c $(CF) -DDLL -o $@ win32/win32i64.c
-
-# C Compile rule: unzipsfx
-
-# A) Core UnZipSFX C files
-unzipsfx.o:   unzip.c     $(H_UNZIP) crypt.h unzvers.h consts.h
-       $(CC) -c $(CF) -DSFX -o $@ unzip.c
-
-crc32_s.o:    crc32.c     $(H_UNZIP) zip.h crc32.h
-       $(CC) -c $(CF) -DSFX -o $@ crc32.c
-
-crypt_s.o:    crypt.c     $(H_UNZIP) zip.h crypt.h crc32.h ttyio.h
-       $(CC) -c $(CF) -DSFX -o $@ crypt.c
-
-extract_s.o:  extract.c   $(H_UNZIP) crc32.h crypt.h
-       $(CC) -c $(CF) -DSFX -o $@ extract.c
-
-fileio_s.o:   fileio.c    $(H_UNZIP) crc32.h crypt.h ttyio.h ebcdic.h
-       $(CC) -c $(CF) -DSFX -o $@ fileio.c
-
-globals_s.o:  globals.c   $(H_UNZIP)
-       $(CC) -c $(CF) -DSFX -o $@ globals.c
-
-inflate_s.o:  inflate.c   $(H_UNZIP) inflate.h
-       $(CC) -c $(CF) -DSFX -o $@ inflate.c
-
-match_s.o:    match.c     $(H_UNZIP)
-       $(CC) -c $(CF) -DSFX -o $@ match.c
-
-process_s.o:  process.c   $(H_UNZIP) crc32.h
-       $(CC) -c $(CF) -DSFX -o $@ process.c
-
-ttyio_s.o:    ttyio.c     $(H_UNZIP) zip.h crypt.h ttyio.h
-       $(CC) -c $(CF) -DSFX -o $@ ttyio.c
-
-ubz2err_s.o:  ubz2err.c   $(H_UNZIP)
-       $(CC) -c $(CF) -DSFX -o $@ ubz2err.c
-
-# B) UnZipSFX C files for specific ports
-#    - Generated when referenced by OSDEP_OC*
-#    - OSDEP_OC* are customized by unix/configure, based on PORT macro
-
-./msdos_s.o:  msdos/msdos.c $(H_UNZIP)
-       $(CC) -c $(CF) -DSFX -o $@ msdos/msdos.c
-
-./os2_s.o:    os2/os2.c   $(H_UNZIP)
-       $(CC) -c $(CF) -DSFX -o $@ os2/os2.c
-
-./unix_s.o:   unix/unix.c $(H_UNZIP) unix/macosx.h
-       $(CC) -c $(CF) -DSFX -o $@ unix/unix.c
-
-./nt_s.o:       win32/nt.c  $(H_UNZIP)
-       $(CC) -c $(CF) -DSFX -o $@ win32/nt.c
-
-./win32_s.o:    win32/win32.c  $(H_UNZIP)
-       $(CC) -c $(CF) -DSFX -o $@ win32/win32.c
-
-./win32i64_s.o:  win32/win32i64.c  $(H_UNZIP)
-       $(CC) -c $(CF) -DSFX -o $@ win32/win32i64.c
-
-# C Compile rule: funzip
-funzip.o:     funzip.c    $(H_UNZIP) crc32.h crypt.h ttyio.h
-       $(CC) -c $(CF) -DFUNZIP -o $@ funzip.c
-
-crc32_f.o:    crc32.c     $(H_UNZIP) zip.h crc32.h
-       $(CC) -c $(CF) -DFUNZIP -o $@ crc32.c
-
-crypt_f.o:    crypt.c     $(H_UNZIP) zip.h crypt.h crc32.h ttyio.h
-       $(CC) -c $(CF) -DFUNZIP -o $@ crypt.c
-
-globals_f.o:  globals.c   $(H_UNZIP)
-       $(CC) -c $(CF) -DFUNZIP -o $@ globals.c
-
-inflate_f.o:  inflate.c   $(H_UNZIP) inflate.h
-       $(CC) -c $(CF) -DFUNZIP -o $@ inflate.c
-
-ttyio_f.o:    ttyio.c     $(H_UNZIP) zip.h crypt.h ttyio.h
-       $(CC) -c $(CF) -DFUNZIP -o $@ ttyio.c
-
-# B) fUnZip C files for specific ports
-#    - Generated when referenced by OSDEP_OC*
-#    - OSDEP_OC* are customized by unix/configure, based on PORT macro
-
-./unix_f.o:   unix/unix.c $(H_UNZIP) unix/macosx.h
-       $(CC) -c $(CF) -DFUNZIP -o $@ unix/unix.c
-
-./win32_f.o:    win32/win32.c  $(H_UNZIP)
-       $(CC) -c $(CF) -DFUNZIP -o $@ win32/win32.c
-
-./win32i64_f.o:  win32/win32i64.c  $(H_UNZIP)
-       $(CC) -c $(CF) -DFUNZIP -o $@ win32/win32i64.c
-
-#----------------------------------------------------------------------------
-
-# C Compile rules: AES (WinZip/Gladman) encryption
-
-aescrypt.o: aes_wg/aescrypt.c $(H_AES)
-       $(CC) -c $(CF) -o $@ aes_wg/aescrypt.c
-
-aeskey.o:   aes_wg/aeskey.c   $(H_AES)
-       $(CC) -c $(CF) -o $@ aes_wg/aeskey.c
-
-aestab.o:   aes_wg/aestab.c   $(H_AES)
-       $(CC) -c $(CF) -o $@ aes_wg/aestab.c
-
-fileenc.o:  aes_wg/fileenc.c  $(H_AES)
-       $(CC) -c $(CF) -o $@ aes_wg/fileenc.c
-
-hmac.o:     aes_wg/hmac.c     $(H_AES)
-       $(CC) -c $(CF) -o $@ aes_wg/hmac.c
-
-prng.o:     aes_wg/prng.c     $(H_AES)
-       $(CC) -c $(CF) -o $@ aes_wg/prng.c
-
-pwd2key.o:  aes_wg/pwd2key.c  $(H_AES)
-       $(CC) -c $(CF) -o $@ aes_wg/pwd2key.c
-
-sha1.o:     aes_wg/sha1.c     $(H_AES)
-       $(CC) -c $(CF) -o $@ aes_wg/sha1.c
-
-#----------------------------------------------------------------------------
-
-# C Compile rules: LZMA compression
-
-LzFind.o:  szip/LzFind.c      $(H_LZMA)
-       $(CC) -c $(CF) -o $@ szip/LzFind.c
-
-LzmaDec.o: szip/LzmaDec.c     $(H_LZMA)
-       $(CC) -c $(CF) -o $@ szip/LzmaDec.c
-
-#----------------------------------------------------------------------------
-
-# C Compile rules: PPMd compression
-
-Ppmd8.o:  szip/Ppmd8.c          $(H_PPMD)
-       $(CC) -c $(CF) -o $@ szip/Ppmd8.c
-
-Ppmd8Dec.o:  szip/Ppmd8Dec.c    $(H_PPMD)
-       $(CC) -c $(CF) -o $@ szip/Ppmd8Dec.c
-
-#----------------------------------------------------------------------------
-#  Build rules: Assemble (.S -> .o)
-#  - Optional assembler replacements for C routines
-#  - All are port-specific
-#    - Generated when referenced by OSDEP_OS
-#    - OSDEP_OS is customized by unix/configure, based on PORT macro
-#----------------------------------------------------------------------------
-
-# Assembler rule: CRC-32
-#
-# 1) Assembler rule: CRC, 16-bit only, MSDOS
-$(O_CRC_I):  msdos/crc_i86.asm
-       $(AS) $(AF) -c msdos/crc_i86.asm $(ASEOL)
-
-# 2) Assembler rule: CRC 32bit, GNU AS
-$(O_CRC_G):  crc_i386.S $(ACONF_DEP)
-       $(AS) $(AF) -c -o $@ crc_i386.S
-
-# 3) Assembler rule: CRC 32bit, SysV AS
-$(O_CRC_SV): crc_i386.S $(ACONF_DEP)
-       $(CPP) $(AF) crc_i386.S > _crc_i386s.s
-       $(AS) -c -o $@ crc_i386s.s
-       $(RM) crc_i386s.s
-
-#----------------------------------------------------------------------------
-#  Build rules: Object archives (.o -> .a)
-#----------------------------------------------------------------------------
-
-# Object archive rule: AES (WinZip/Gladman) encryption
-$(AR_AES): $(O_AES)
-       @echo 'Building/updating AES (WinZip/Gladman) object library...'
-       -$(RM) libaes.a
-       $(AR) libaes.a $(O_AES)
-       -$(RANLIB) libaes.a
-
-# Object archive rule: LZMA compression
-$(AR_LZMA): $(O_LZMA)
-       @echo 'Building/updating LZMA object library...'
-       -$(RM) liblzma.a
-       $(AR) liblzma.a $(O_LZMA)
-       -$(RANLIB) liblzma.a
-
-# Object archive rule: PPMd compression
-$(AR_PPMD): $(O_PPMD)
-       @echo 'Building/updating PPMd object library...'
-       -$(RM) libppmd.a
-       $(AR) libppmd.a $(O_PPMD)
-       -$(RANLIB) libppmd.a
-
-# Object archive rule: BZIP2 compression
-$(AR_BZ):
-       @echo 'Building/updating BZIP2 object library...'
-       @if [ -f flags_bz ]; then \
-          ( cd bzip2/; \
-          echo "Using flags_bz overrides"; \
-          eval $(MAKE) -f $(MK_BZ) libbz2.a ACONF_DEP=flags_bz \
-           `cat ../flags_bz`; \
-          ); \
-        else \
-          ( cd bzip2/; \
-            eval $(MAKE) -f $(MK_BZ) CC="$(CC_BZ)" CFLAGS="$(CF_BZ)" \
-             RANLIB="$(RANLIB)" RM="rm -f" libbz2.a; \
-          ); \
-       fi
-
-# Object archive rule: ZLIB compression
-$(AR_Z):
-       @echo 'Building/updating ZLIB object library...'
-       ( cd zlib/; \
-          eval $(MAKE) -f Makefile libz.a ACONF_DEP=flags `cat ../flags`; \
-        )
-
-# Object archive rule: Callable UnZip
-
-$(AR_UNZIP): $(O_UNZIPL) $(O_UNZIPN) $(LIB_AES_WG) $(LIB_LZMA) $(LIB_PPMD)
-       @echo 'Building/updating Callable UnZip object library...'
-       unix/mlz.sh "$(AR_UNZIP)" "$(O_UNZIPL) $(O_UNZIPN)" \
-         $(LIB_AES_WG) $(LIB_LZMA) $(LIB_PPMD)
-
-#----------------------------------------------------------------------------
-#  Build rules: Link programs (.o + .a -> unzips)
-#----------------------------------------------------------------------------
-
-# Link rule: unzip
-$(PGM_UNZIP): $(O_UNZIP) $(LIB_AES_WG) $(LIB_BZ) $(LIB_LZMA) \
-              $(LIB_PPMD) $(LIB_Z)
-       $(LD) -o $@ $(LF1) $(O_UNZIP) $(LF2)
-
-# Link rule: unzipsfx
-$(PGM_SFX): $(O_SFX) $(LIB_AES_WG) $(LIB_BZ) $(LIB_LZMA) \
-            $(LIB_PPMD) $(LIB_Z)
-       $(LD) -o $@ $(LF1) $(O_SFX) $(LF2)
-
-# Link rule: funzip
-$(PGM_FUZ): $(O_FUZ) $(LIB_AES_WG) $(LIB_BZ) $(LIB_LZMA) \
-            $(LIB_PPMD) $(LIB_Z)
-       $(LD) -o $@ $(LF1) $(O_FUZ) $(LF2)
-
-# Link rule: zipinfo
-$(PGM_ZINFO): $(PGM_UNZIP)
-       @echo '  This is a Unix-specific target.'
-       @echo ''
-       @echo '  ZipInfo is not enabled in some MS-DOS versions of UnZip;'
-       @echo '  if it is in yours, copy unzip.exe to zipinfo.exe, or else'
-       @echo '  invoke as "unzip -Z" (in a batch file, for example).'
-       $(LN) $(PGM_UNZIP) $(PGM_ZINFO)
-
-#----------------------------------------------------------------------------
-#  Build rules: Documentation
-#  - Explicit 1:1 rules are used
-#  - Across various make utilities, pattern rule support is inconsistent
-#  - Sys V make has issues with $< when input and output names differ
-#----------------------------------------------------------------------------
-
-# UnZip documentation output directory rules
-# - Creates manout directory if unix/configure not executed
-manout:
-       mkdir manout
-
-# UnZip text documentation generation rules
-
-$(DOC_UNZIP): man/unzip.1
-       man man/unzip.1    | col -bx | uniq | expand > $@
-
-$(DOC_SFX):   man/unzipsfx.1
-       man man/unzipsfx.1 | col -bx | uniq | expand > $@
-
-$(DOC_FUZ):   man/funzip.1
-       man man/funzip.1   | col -bx | uniq | expand > $@
-
-$(DOC_ZINFO): man/zipinfo.1
-       man man/zipinfo.1  | col -bx | uniq | expand > $@
-
-$(DOC_ZGREP): man/zipgrep.1
-       man man/zipgrep.1  | col -bx | uniq | expand > $@
-
-# UnZip man page generation rule
-# - Requires nroff, or GNU groff package
-
-$(MAN_UNZIP): man/unzip.1
-       nroff -man man/unzip.1    | col -bx | uniq > $@
-
-$(MAN_SFX):   man/unzipsfx.1
-       nroff -man man/unzipsfx.1 | col -bx | uniq > $@
-
-$(MAN_FUZ):   man/funzip.1
-       nroff -man man/funzip.1   | col -bx | uniq > $@
-
-$(MAN_ZINFO): man/zipinfo.1
-       nroff -man man/zipinfo.1  | col -bx | uniq > $@
-
-$(MAN_ZGREP): man/zipgrep.1
-       nroff -man man/zipgrep.1  | col -bx | uniq > $@
-
-#----------------------------------------------------------------------------
-#  Build rules: Standard build targets
-#----------------------------------------------------------------------------
-
-all:        generic_msg generic
-unzips:     $(UNZIP_PGMS)
-objs:       $(O_UNZIP)
-objsdll:    $(O_DLL)
-docs:       manout $(UNZIP_DOCS)
-manuals:    manout $(UNZIP_MANS)
-unzipsman:  unzips manuals
-unzipsdoc:  unzips docs
-
-#----------------------------------------------------------------------------
-#  Build rules: ???????
-#  FIX_ME: ??????
-#----------------------------------------------------------------------------
-unix_make:
-# @echo \
-# '(Ignore any errors from `make'"' due to the following command; it's harmless.)"
-       -@2>&1 $(LN) unix/Makefile_old . > /dev/null || echo > /dev/null
-
-#----------------------------------------------------------------------------
-#  Build rules: Configuration flags.
-#  - Creates files containing system-dependent flag values.
-#  - Generated by unix/configure based on build utility program, platform and
-#    features selected.
-#----------------------------------------------------------------------------
-
-# Main flags
-
-flags: unix/configure_old
-       @echo "Running:  unix/configure_old"
-       @sh unix/configure_old \
-         "PROD='$(PROD)'" \
-         "LIST='$(LIST)'" \
-         "CC='$(CC)'" \
-         "CFLAGS='$(LOCAL_UNZIP)'" \
-         "LFLAGS1='$(LFLAGS1)'" \
-         "LFLAGS2='$(LFLAGS2)'" \
-         "AES_WG='$(AES_WG)'" \
-         "LZMA='$(LZMA)'" \
-         "PPMD='$(PPMD)'" \
-         "IZ_BZIP2='$(IZ_BZIP2)'" \
-         "IZ_ZLIB='$(IZ_ZLIB)'"
-
-# BZIP2 flags
-
-flags_bz: flags
-
-# These symbols, when #defined using -D have these effects on compilation:
-# ZMEM                  - includes C language versions of memset(), memcpy(),
-#                         and memcmp() (util.c).
-# HAVE_DIRENT_H         - use <dirent.h> instead of <sys/dir.h>
-# NODIR                 - for 3B1, which has neither getdents() nor opendir().
-# HAVE_NDIR_H           - use <ndir.h> (unix/unix.c).
-# HAVE_SYS_DIR_H        - use <sys/dir.h>
-# HAVE_SYS_NDIR_H       - use <sys/ndir.h>
-# UTIL                  - select routines for utilities (note, cloak, split)
-# NO_RMDIR              - remove directories using a system("rmdir ...") call.
-# NO_PROTO              - cannot handle ANSI prototypes
-# NO_CONST              - cannot handle ANSI const
-# NO_LARGE_FILE_SUPPORT - do not enable Large File support even if available.
-# NO_ZIP64_SUPPORT      - do not enable Zip64 archive support even if available.
-# NO_UNICODE_SUPPORT    - do not enable Unicode support even if available.
-# NO_BZIP2_SUPPORT      - do not compile in bzip2 code even if available.
-
-#----------------------------------------------------------------------------
-#  Build rules: Clean-up targets
-#  - Used to remove old output files before performing a new build
-#  - Used when incompatible build options (or source changes) are required.
-#----------------------------------------------------------------------------
-
-clean:
-       rm -f *.o *.a $(UNZIP_PGMS) $(PGM_ZINFO) flags flags_bz
-       rm -rf manout
-       rm -rf $(PKGDIR)
-
-clean_bzip2:
-       @if [ -f bzip2/$(MK_BZ) ]; then \
-          ( cd bzip2; make -f $(MK_BZ) clean ); \
-        else \
-          echo "No bzip2 make file found: bzip2/$(MK_BZ)"; \
-        fi;
-
-clean_exe:
-       rm -f $(UNZIP_PGMS) $(PGM_ZINFO)
-
-clean_docs:
-       rm -f $(UNZIP_DOCS)
-
-#----------------------------------------------------------------------------
-#  Build rules: Installation-related
-#----------------------------------------------------------------------------
-
-install: unzips manuals
-       -$(INSTALL_D) $(BINDIR)
-       $(INSTALL_PROGRAM) $(UNZIP_PGMS) $(BINDIR)
-       $(INSTALL) $(PGM_ZGREP) $(BINDIR)
-       $(RM) $(BIN_ZINFO)
-       $(LN) $(BIN_UNZIP) $(BIN_ZINFO)
-       -$(INSTALL_D) $(MANDIR)
-       $(INSTALL) $(UNZIP_MANS) $(MANDIR)
-       $(CHMOD) $(BINPERMS) $(INSTALLEDBIN)
-       $(CHMOD) $(MANPERMS) $(INSTALLEDMAN)
-
-uninstall:
-       $(RM) $(INSTALLEDBIN) $(INSTALLEDMAN)
-
-#----------------------------------------------------------------------------
-#  Build rules: SVR4 Package generation Interface
-#  - Originally tested under Sun Solaris 2.x (by JBush)
-#  - Other SVr4s may be very similar, and could possibly use this
-#  Note:  Expects version info to be stored in VERSION macro variable
-#         See "README" under unix/Packaging
-#----------------------------------------------------------------------------
-
-svr4package: unzips
-       @echo 'Creating SVR4 package for Unix ...'
-       -@rm -rf $(PKGDIR) $(PKGDIR)_`uname -p`.pkg
-       -@sed -e "s/.VERSION./$(VERSION)/g" \
-           -e "s/.PSTAMP./$(LOGNAME)_`date | tr  ' ' '_'`/g" \
-           -e "s/.ARCH./Solaris_`uname -rp | tr ' ' ','`/g" \
-           unix/Packaging/pkginfo.in > unix/Packaging/pkginfo
-       -@sed -e "s/.ARCH./`uname -p`/g" \
-           unix/Packaging/preinstall.in > unix/Packaging/preinstall
-       /usr/bin/pkgmk -d . -b . -r . -f unix/Packaging/prototype $(PKGDIR)
-       /usr/bin/pkgtrans -o -s . $(PKGDIR)_`uname -p`.pkg $(PKGDIR)
-       @echo ''
-       @echo \
- "To install, copy $(PKGDIR)_`uname -p`.pkg to the target system, and"
-       @echo \
- "issue the command (as root):  pkgadd -d $(PKGDIR)_`uname -p`.pkg"
-       @echo ''
-
-#----------------------------------------------------------------------------
-#  Build rules: Make a distribution
-#----------------------------------------------------------------------------
-
-dist: $(DOC_UNZIP)
-       eval unzip -r9 unzip`sed -e '/VERSION/!d' -e 's/.*"\(.*\)".*/\1/' \
-         -e 's/[.]//g' -e 's/ .*//g' -e q revision.h` *
-
-#----------------------------------------------------------------------------
-#  Build rules: Unzip validation tests
-#----------------------------------------------------------------------------
-
-# Test archives.
-TESTZIP = testmake.zip
-TESTZIP_PPMD = testmake_ppmd.zip
-
-# test some basic features of the build
-check: test
-
-dashv:
-       ./unzip -v
-
-test:
-       sh unix/test_unzip.sh $(TESTZIP)
-
-test_ppmd:
-       sh unix/test_unzip.sh $(TESTZIP_PPMD) . NOFUNSFX
-
-# Create a new testmake.zip or testmake_ppmd.zip.
-#
-# These targets are intended for use by UnZip developers, not by normal
-# users.  The method used relies on an existing testmake.zip file to
-# provide "notes", which historically has non-Unix line endings.
-#
-# Note that this is typically an iterative process, because the test
-# archive includes an "unzip -Z" report on itself, which often results
-# in mismatches on date-time and file size data.  If the results don't
-# converge within a few iterations, then it may help to wait a minute (to
-# get a different date-time), or to replace the current testmake.zip with
-# the original (or some other old version).
-#
-# While crude, the method used here does try to save the original
-# testmake[_ppmd].zip file as testmake[_ppmd].zip_orig, which is deleted
-# only if the "diff" succeeds, which normally allows a manual restoration
-# to the original state, if success remains elusive.
-
-testmake_zip:
-       @if test ! -f $(TESTZIP) ; then \
-          echo "***" ; \
-          echo "*** Missing \"$(TESTZIP)\".  Expect chronic failure. ***" ; \
-          echo "***" ; \
-        fi
-       if test -f $(TESTZIP) -a ! -f $(TESTZIP)_orig ; then \
-          cp -p $(TESTZIP) $(TESTZIP)_orig ; \
-        fi
-       @rm -rf testmake
-       @mkdir testmake
-       @( cd testmake ; \
-         ../unzip ../$(TESTZIP) > /dev/null ; \
-         touch testmake.zipinfo ; \
-         $(PGM_ZIP) -X $(TESTZIP) notes testmake.zipinfo > /dev/null ; \
-         ../unzip -Z -mc- $(TESTZIP) > testmake.zipinfo ; \
-         $(PGM_ZIP) -X $(TESTZIP) notes testmake.zipinfo > /dev/null ; \
-         ../unzip -Z -mc- $(TESTZIP) > testmake.zipinfo_new ; \
-         mv $(TESTZIP) ../$(TESTZIP) )
-       @if diff testmake/testmake.zipinfo \
-          testmake/testmake.zipinfo_new 2> /dev/null ; then \
-            echo '' ; echo "   It's a miracle!" ; echo '' ; \
-            rm $(TESTZIP)_orig ; \
-        else \
-          echo '' ; echo '   Try again?' ; echo '' ; \
-        fi
-       @rm -r testmake
-
-testmake_ppmd_zip:
-       @if test ! -f $(TESTZIP_PPMD) ; then \
-           cp -p $(TESTZIP) $(TESTZIP_PPMD) ; \
-        fi
-       if test -f $(TESTZIP_PPMD) -a ! -f $(TESTZIP_PPMD)_orig ; then \
-          cp -p $(TESTZIP_PPMD) $(TESTZIP_PPMD)_orig ; \
-        fi
-       @rm -rf testmake
-       @mkdir testmake
-       @( cd testmake ; \
-         ../unzip ../$(TESTZIP_PPMD) > /dev/null ; \
-         touch testmake.zipinfo ; \
-         $(PGM_ZIP) -X -Z ppmd $(TESTZIP_PPMD) notes testmake.zipinfo > \
-         /dev/null ; \
-         ../unzip -Z -mc- $(TESTZIP_PPMD) > testmake.zipinfo ; \
-         $(PGM_ZIP) -X -Z ppmd $(TESTZIP_PPMD) notes testmake.zipinfo > \
-         /dev/null ; \
-         ../unzip -Z -mc- $(TESTZIP_PPMD) > testmake.zipinfo_new ; \
-         mv $(TESTZIP_PPMD) ../$(TESTZIP_PPMD) )
-       @if diff testmake/testmake.zipinfo \
-          testmake/testmake.zipinfo_new 2> /dev/null ; then \
-            echo '' ; echo "   It's a miracle!" ; echo '' ; \
-            rm $(TESTZIP_PPMD)_orig ; \
-        else \
-          echo '' ; echo '   Try again?' ; echo '' ; \
-        fi
-       @rm -r testmake
-
-################################
-# INDIVIDUAL MACHINE MAKERULES #
-################################
-
-#----------------------------------------------------------------------------
-#  Generic targets
-#  - These invoke the configure script to determine configuration.
-#----------------------------------------------------------------------------
-
-# generic_msg
-# - Issue warning message before generic build
-generic_msg:
-       @echo ''
-       @echo '  Attempting "make generic" now.  If this fails for some reason, type'
-       @echo '  "make help" for suggestions.  If none of the targets work for you,'
-       @echo '  contact us using the information in README so we can work the'
-       @echo '  problems.'
-       @echo ''
-
-# generic
-# - Generate flags file (if doesn't exist), then unzip modules
-
-generic: flags
-       eval $(MAKE) $(MAKEF) unzips ACONF_DEP=flags `cat flags`
-
-# generic_man
-# - Generate flags file (if doesn't exist), then man pages
-
-generic_man: flags
-       eval $(MAKE) $(MAKEF) manuals ACONF_DEP=flags `cat flags`
-
-# generic_docs
-# - Generate flags file (if doesn't exist), then plain text docs
-
-generic_docs: flags
-       eval $(MAKE) $(MAKEF) docs ACONF_DEP=flags`cat flags`
-
-# generic_pkg
-# - Generate flags file (if doesn't exist), then UnZip modules, then perform
-#   SVR4 package-creation
-
-generic_pkg: generic svr4package
-
-#----------------------------------------------------------------------------
-#  Old static generic targets
-#  - For those systems which do not work with the generic targets.
-#  - Can not assume that the make utility groks "$(MAKE)"
-#----------------------------------------------------------------------------
-
-generic1: unzips     # first try if unknown
-
-generic2: unix_make  # second try if unknown:  hope make is called "make"
-       make $(MAKEF) unzips CF="$(CF) -DBSD"
-
-generic3: unix_make  # third try if unknown:  hope make is called "make"
-       make $(MAKEF) unzips CF="$(CF) -DSYSV"
-
-# Generic build including bzip2 decompression support for UnZip.
-# Requires presence of the bzip2 sources in subdirectory bzip2.
-generic_bz2: flags_bz $(AR_BZ)
-
-# Generic unzip and funzip target using either shared or static zlib for
-# inflate rather than the original UnZip version.  (libz was libgz prior
-# to 0.94)  Need to figure out how to force unzipsfx to use static libz.
-generic_zlib: ./flags $(AR_Z)
-
-# Generic GNU C shared library.  This is an example of how to compile UnZip as
-# a shared library.  (Doing so as a static library would be similar.)  See also
-# the linux_shlib target.
-
-generic_shlib: unix_make
-       @echo \
- 'This target requires GNU C.  When done, do "setenv LD_LIBRARY_PATH `pwd`"'
-       @echo \
- 'or similar in order to test the shared library in place (with ./unzip_shlib ,'
-       @echo \
- 'which is UnZip linked with the DLL).  This target is an example only.'
-       @echo ''
-       $(MAKE) objsdll CC=gcc CFLAGS="-O3 -Wall -fPIC -DDLL"
-       gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(O_DLL)
-       $(RM) libunzip.so.0 libunzip.so
-       $(LN) -s libunzip.so.0.4 libunzip.so.0
-       $(LN) -s libunzip.so.0 libunzip.so
-       gcc -c -O unzipstb.c
-       gcc -o unzip_shlib $(O_STUB) -L. -lunzip
-
-#----------------------------------------------------------------------------
-#  "Autoconfig" group, aliases for the generic targets using configure:
-#----------------------------------------------------------------------------
-
-# Solaris:  generic, plus generation of installable package.
-solaris: generic_pkg
-
-#----------------------------------------------------------------------------
-#  "Normal" group (BSD vs. SysV may be set in unzip.h via predefined macros):
-#----------------------------------------------------------------------------
-
-386i: unzips     # sun386i, SunOS 4.0.2
-#3Bx: unzips     # AT&T 3B2/1000-80; should work on any WE32XXX machine
-bull: unzips     # Bull DPX/2, BOS 2.00.45 (doesn't require -Xk switch)
-convex: unzips   # Convex C-120 and C-210 (-O is enough; -ext is default)
-cray: unzips     # Cray-2 and Y-MP, using default (possibly old) compiler
-dec: unzips      # DEC 5820 (MIPS RISC), test version of Ultrix v4.0
-encore: unzips   # Multimax
-eta: unzips      # ETA-10P*, hybrid SysV with BSD 4.3 enhancements
-gould: unzips    # Gould PN9000 running UTX/32 2.1Bu01
-hp: unzips       # HP 9000 series (68020), 4.3BSD or HP-UX A.B3.10 Ver D
-hpux: unzips     # (to match Zip's makefile entry)
-mips: unzips     # MIPS M120-5(?), SysV.3 [error in sys/param.h file?]
-next10: unzips   # NeXT (generic; use next2x or next3x for better opt.)
-osf1: unzips     # DECstation, including Alpha-based; DEC OSF/1 v1.x
-pyr_: unzips     # [failsafe target for pyramid target below]
-pyr_ucb: unzips  # Pyramids running BSD universe by default (see below)
-realix: unzips   # Modcomp Real/IX (SysV.3); note "gcc" = GLS C, not GNU
-sco: unzips      # Xenix/386 (tested on 2.3.1); SCO Unix 3.2.0.
-sgi: unzips      # Silicon Graphics; Irix 3.3.2, 4.0.x, 5.2, etc.
-stellar: unzips  # gs-2000
-sun: unzips      # old target; no good with solaris...use "sunos" now
-sunos: unzips    # no good with SunOS 3.x...use "sunos3" or "sunos4" now
-sunos4: unzips   # Sun 3, 4; SunOS 4.x (SOME SYSTEMS ARE SYSTEM V!)
-tahoe: unzips    # tahoe (CCI Power6/32), 4.3BSD
-ultrix: unzips   # VAXen, DEC 58x0 (MIPS guts), DECstation 2100; v4.x
-vax: unzips      # general-purpose VAX target (not counting VMS)
-
-#----------------------------------------------------------------------------
-#  BSD group (for timezone structs [struct timeb]):
-#----------------------------------------------------------------------------
-
-bsd: _bsd        # generic BSD (BSD 4.2 & Ultrix handled in unzip.h)
-
-_bsd: unix_make
-       $(MAKE) unzips CF="$(CF) -DBSD"
-
-#----------------------------------------------------------------------------
-#  SysV group (for extern long timezone and ioctl.h instead of sgtty.h):
-#----------------------------------------------------------------------------
-
-aviion: _sysv   # Data General AViiONs, DG/UX 4.3x
-pyr_att: _sysv  # Pyramids running AT&T (SysV) universe by default
-stardent: _sysv # Stardent ...
-sysv: _sysv     # generic System V Unix (Xenix handled in unzip.h)
-xos: _sysv      # Olivetti LSX-3005..3045, X/OS 2.3 and 2.4
-
-_sysv: unix_make
-       $(MAKE) unzips CF="$(CF) -DSYSV"
-
-# extension to perform SVR4 package-creation after compilation
-_sysvp: _sysv svr4package
-
-#----------------------------------------------------------------------------
-#  Version 7 group (old/obsolescent):
-#----------------------------------------------------------------------------
-
-pixel: _v7      # Pixel 80, 100 (68000-based, V7/mostly BSD4.1 compat.)
-v7: _v7         # generic Unix Version 7 box (prob. only Pixel...)
-
-_v7:
-       make $(MAKEF) unzips \
- CF="$(CF) -DV7 -DNO_PARAM_H -DSHORT_NAMES -DBSD -DZMEM -DNO_LCHOWN -DNO_LCHMOD"
-
-#----------------------------------------------------------------------------
-#  "Unique" group (require non-standard options):
-#----------------------------------------------------------------------------
-
-# AT&T 3B2/1000-80; should work on any WE32XXX machine
-3Bx: unix_make
-       $(MAKE) unzips CF="$(CF) -DCBREAK=2"
-
-# AT&T 7300 (M68000/SysV.3) (add -DSYSV? -DNO_LIMITS?)
-7300: unix_make
-       $(MAKE) unzips CF="$(CF) -DNO_DIR -DNO_MKDIR -DNO_STRNICMP -DNO_UID_GID -DNO_FCHMOD -DNO_LCHOWN -DNO_LCHMOD -DCBREAK=2"
-
-7300_gcc: unix_make
-       $(MAKE) unzips CC=gcc LD=gcc LF2="" CFLAGS="-O2" \
- LOC="-DNO_DIR -DNO_MKDIR -DNO_STDLIB_H -DNO_STRNICMP -DNO_UID_GID -DNO_FCHMOD -DNO_LCHOWN -DNO_LCHMOD -DCBREAK=2 $(LOC)"
-       $(STRIP) $(UNZIP_PGMS)
-
-# Amdahl (IBMish) mainframe, UTS (SysV) 1.2.4, 2.0.1, 3.x
-amdahl: unix_make
-       $(MAKE) unzips CF="$(CF) -DSYSV -DNO_UID_GID -DNO_LCHOWN -DNO_LCHMOD"
-
-# Amdahl UTS 2.1.4 with "extended file types" filesystem (aarrrggghhhh...)
-amdahl_eft: unix_make
-       $(MAKE) unzips CF="$(CF) -eft -DSYSV -DNO_UID_GID -DNO_LCHOWN -DNO_LCHMOD"
-
-# Apollo Domain/OS machines (added -D...SOURCE options) [Gordon Fox, 960810]
-apollo: unix_make
-       $(MAKE) unzips CF="$(CF) -D_INCLUDE_BSD_SOURCE -D_INCLUDE_XOPEN_SOURCE -DNO_LCHOWN -DNO_LCHMOD"
-
-# BSDI BSD/OS on 386 platform, using the assembler replacement for crc32.c
-bsdi: unix_make
-       @echo 'NOTE:  use bsdi_noasm target for non-Intel BSD/OS compiles.'
-       $(MAKE) unzips CC=gcc2 LD=shlicc2 AS=gcc2 \
-         CFLAGS="-O3 -Wall -DASM_CRC -DBSD" OSDEP_OS="./crc_gcc.o"
-
-# BSDI BSD/OS
-bsdi_noasm: unix_make
-# @echo 'NOTE:  use bsd target for non-Intel BSD/OS compiles.'
-       $(MAKE) unzips CC=gcc2 LD=shlicc2 AS=gcc2 \
-         CFLAGS="-O3 -Wall -DBSD"
-
-# Coherent 3.x/4.x, Mark Williams C.  ``For Coherent's CC, it needs either
-# -T0 or -T150000 (or bigger) added to the CFLAGS, otherwise the compiler
-# runs out of memory and dies in zipinfo.c.'' [Fred "Fredex" Smith, 940719]
-coherent: unix_make
-       $(MAKE) unzips CFLAGS="$(CFLAGS) -T0 -DNO_LCHOWN -DNO_LCHMOD"
-
-# Cray-2, Y-MP or C90, running Unicos 5.x to 8.x (SysV + BSD enhancements)
-# and Standard (ANSI) C compiler 3.0 or later.
-cray_opt: unix_make
-       $(MAKE) unzips CFLAGS="$(CFLAGS) -h scalar3 -h vector3 -DNO_LCHOWN -DNO_LCHMOD"
-
-# The unzip41 build on a Cyber 910/SGI running Irix v3.3.3 was successful
-# with the following change to Makefile:
-cyber_sgi: unix_make
-       $(MAKE) unzips \
-         CFLAGS="$(CFLAGS) -I/usr/include/bsd -DNO_LCHOWN -DNO_LCHMOD" \
-         LF="-lbsd $(LF)" SL="-lbsd $(SL)"
-
-# The "generic" target should work with Cygwin on Windows.  The
-# following instructons are old, and probably obsolete...
-# The Cygwin environment on a Win32 system, treated as a Unix emulator.
-# This port does not offer full access to the Windows file system.
-# Info-ZIP recommends using "win32/Makefile.gcc" instead.
-cygwin: unix_make
-       $(MAKE) unzips CC=gcc LD=gcc AS=gcc \
-         CFLAGS="-O3 -DASM_CRC -DNO_LCHOWN -DNO_LCHMOD" \
-         AF="-Di386 $(AF)" OSDEP_OS="./crc_gcc.o" \
-         E=".exe" CP="cp" LN="ln -s"
-
-# 680x0, DIAB dnix 5.2/5.3 (a Swedish System V clone)
-#
-# Options for the dnix cc:
-#  -X7 = cc is strict ANSI C
-#  -X9 = warnings if a function is used without a declaration
-#
-dnix: unix_make
-       $(MAKE) unzips CFLAGS="$(CFLAGS) -X7 -X9 -DDNIX"
-
-# FreeBSD on Intel:
-freebsd: unix_make
-       @echo 'NOTE:  use bsd target for non-Intel FreeBSD compiles (if any).'
-       $(MAKE) unzips CC=gcc LD=gcc AS=gcc \
-         CFLAGS="-O3 -Wall -DASM_CRC -DBSD" \
-         AF="-Di386 $(AF)" OSDEP_OS="./crc_gcc.o"
-
-# Generic BSDish Unix gcc.  ``The -O3 only works with later versions of gcc;
-# you may have to use -O2 or -O for earlier versions.  I have no idea why
-# -s causes this bug in gcc.''  [Bug:  "nm: unzip: no name list", "collect:
-# /usr/bin/nm returned 1 exit status".]  If you don't have strip, don't
-# worry about it (it just makes the executable smaller and can be replaced
-# with "echo" instead).
-#
-gcc: unix_make
-       $(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O3" LF2=""
-       $(STRIP) $(UNZIP_PGMS)
-
-# Heurikon HK68 (68010), UniPlus+ System V 5.0, Green Hills C-68000
-hk68: unix_make
-       $(MAKE) unzips CC="gcc" LD="gcc" \
-         LF="-n $(LF)" SL="-n $(SL)" FL="-n $(FL)" \
-         CFLAGS="-ga -X138 -Dlocaltime=localti -Dtimezone=timezon"
-
-# ISC Unix on 386 platform
-isc: unix_make
-       $(MAKE) unzips LF2="-lc_s $(LF2)" OSDEP_OS="./crc_sysv.o" \
-         CFLAGS="-O" \
- LOC="-DASM_CRC -DSYSV -DNO_UID_GID -DNEED_PTEM -DNO_LCHOWN -DNO_LCHMOD $(LOC)" \
- AF="-DNO_UNDERLINE -Djecxz=jcxz -DALIGNMENT='.align 16' $(AF)"
-
-isc_gcc: unix_make
-       $(MAKE) unzips AS=gcc CC=gcc LD=gcc OSDEP_OS="./crc_gcc.o" \
- LF="-shlib $(LF)" SL="-shlib $(SL)" FL="-shlib $(FL)" LF2="" \
- CFLAGS="-O3" \
- LOC="-DSYSV -DASM_CRC -DNO_UID_GID -DNEED_PTEM -DNO_LCHOWN -DNO_LCHMOD $(LOC)" \
- AF="-DNO_UNDERLINE -Djecxz=jcxz -DALIGNMENT='.align 16' $(AF)"
-       $(STRIP) $(UNZIP_PGMS)
-
-# "ISI machine (68025 CPU)" (based on e-mail from Rob White <rsw@tfs.com>;
-# no further information).  May also need DIRENT defined.
-isi: unix_make
-       $(MAKE) unzips CF="$(CF) -DDECLARE_ERRNO -DNO_LCHOWN -DNO_LCHMOD"
-
-# The "generic" target should work with GNU/Linux.  The following
-# instructons are old, and probably obsolete...
-# Linux on 386 platform, using the assembler replacement for crc32.c. (-O4 and
-# -fno-strength-reduce have virtually no effect beyond -O3.  Add "-m486
-# -malign-functions=2 -malign-jumps=2 -malign-loops=2" for Pentium [Pro]
-# systems.)
-linux: unix_make
-       @echo 'NOTE:  use linux_noasm target for non-Intel Linux compiles.'
-       $(MAKE) unzips CC=gcc LD=gcc AS=gcc \
-         CFLAGS="-O3 -Wall -DASM_CRC" \
-         AF="-Di386 $(AF)" OSDEP_OS="./crc_gcc.o"
-
-linux_asm: linux
-
-# Linux (Posix, approximately SysV):  virtually any version since before 0.96,
-# for any platform.  Change "-O" to "-O3" or whatever, as desired...
-linux_noasm: unix_make
-       $(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O -Wall"
-
-# Linux with lcc compiler:  __inline__ (stat.h) not recognized, and must edit
-# /usr/include/gnu/types.h to get rid of "long long" if __LCC__ defined.  -O3
-# (or -O2 or -O) is ignored.  [GRR 960828: test target only]
-#
-linux_lcc: unix_make
-       $(MAKE) unzips CC=lcc LD=lcc CFLAGS="-O3 -Wall -D__inline__= "
-
-# Linux host with go32 (djgpp) cross-compiler (go32crs.tgz) for 32-bit DOS.
-linux_dos: unix_make
-       $(MAKE) unzips CC=go32gcc CFLAGS="-O2 -Wall" \
-         LD=go32gcc \
-         OSDEP_H="msdos/doscfg.h" \
-         OSDEP_OCF="./msdos.o" \
-         OSDEP_OCS="./msdos.o" \
-         OSDEP_OCU="./msdos.o" \
-         OSDEP_OS=""
-# go32-strip unzip
-# Due to limitations of the cross-compiling package, this has to be
-# done manually:
-       @echo "Copy $(UNZIP_PGMS) to your DOS partition and use coff2exe."
-
-# Linux ELF shared library (ooo, it's so easy).  This is a test target for
-# now, and it only makes the UnZip/ZipInfo stuff (not fUnZip or UnZipSFX).
-# The version number may eventually change to match the UnZip version.  Or
-# not.  Whatever.  Also do "setenv LD_LIBRARY_PATH `pwd`" or similar to test
-# the DLL in place (with unzip_shlib, which is UnZip linked with the shared
-# library).
-#
-linux_shlib: unix_make
-       $(MAKE) objsdll CC=gcc CFLAGS="-O3 -Wall -fPIC" \
-         LOC="-DDLL -DASM_CRC $(LOC)" \
-         AS=gcc AF="-fPIC -Di386 $(AF)" OSDEP_OS="./crc_gcc.o"
-       gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(O_DLL) \
-         crc_gcc.pic.o
-       ln -sf libunzip.so.0.4 libunzip.so.0
-       ln -sf libunzip.so.0 libunzip.so
-       gcc -c -O unzipstb.c
-       gcc -o unzip_shlib $(O_STUB) -L. -lunzip
-
-# Linux ELF shared library, as above, but using inflate() from zlib (libz.so)
-# instead of the original UnZip version.  (libz was libgz prior to 0.94)
-linux_shlibz: unix_make
-       $(MAKE) objsdll CC=gcc AS=gcc AF="-fPIC -Di386 $(AF)" \
-         OSDEP_OS="./crc_gcc.o" CFLAGS="-O3 -Wall -fPIC" \
-         LOC="-DDLL -DUSE_ZLIB -DASM_CRC $(LOC)"
-       gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(O_DLL) \
-         crc_gcc.pic.o
-       ln -sf libunzip.so.0.4 libunzip.so.0
-       gcc -c -O unzipstb.c
-       gcc -o unzip $(O_STUB) -L. -lunzip -lz
-
-# LynxOS-x86 2.3.0 and newer, a real-time BSD-like OS; uses gcc.
-lynx: unix_make
-       $(MAKE) unzips CC=gcc CF="$(CF) -DLynx -DLYNX -DBSD -DUNIX"
-
-# Macintosh MacOS X (Unix-compatible enviroment), using standard compiler
-macosx: unix_make
-       $(MAKE) unzips CFLAGS="-O3 -Wall -DBSD" LF2=""
-       $(STRIP) $(UNZIP_PGMS)
-
-# Macintosh MacOS X (Unix-compatible enviroment), using gcc
-macosx_gcc: unix_make
-       $(MAKE) unzips CC=gcc CFLAGS="-O3 -Wall -DBSD" LF2=""
-       $(STRIP) $(UNZIP_PGMS)
-
-# Minix 1.5 PC for the 386.  Invoke as is to use default cc, or as "make
-# minix CC=gcc" to use gcc.  Try "make linux" if you have a working termios.h.
-minix: unix_make
-       $(MAKE) unzips CF="$(CF) -DMINIX -DSHORT_NAMES -DNO_LCHOWN -DNO_LCHMOD" CC=$(CC) LD=$(CC)
-
-# MPE/iX, the Unix variant for HP 3000 systems.
-mpeix: unix_make
-       $(MAKE) unzips CC=c89 \
- CF="$(CF) -DUNIX -D_POSIX_SOURCE -DHAVE_TERMIOS_H -DPASSWD_FROM_STDIN -DNO_PARAM_H -DNO_LCHOWN -DNO_LCHMOD" \
- LF2=-lbsd CP=cp LN="ln -s"
-
-# NeXT info.
-next:
-       @echo ''
-       @echo \
- '  Please pick a specific NeXT target:  "make next10" will create a generic'
-       @echo \
- '  NeXT executable; "make next2x" will create a smaller executable (for'
-       @echo \
- '  NeXTstep 2.0 and higher); "make next3x" will create a small executable'
-       @echo \
- '  with significantly better optimization (NeXTstep 3.0 and higher only);'
-       @echo \
- '  "make nextfat" will create a fat, multi-architecture (NeXT plus Intel)'
-       @echo \
- '  executable (NeXTstep 3.1 and higher only).'
-       @echo ''
-
-# 68030 BSD 4.3+Mach.  NeXT 2.x: make the executable smaller.
-next2x: unix_make
-       $(MAKE) unzips LF2="-object -s"
-
-# NeXT 3.x: as above, plus better optimization.
-next3x: unix_make
-       $(MAKE) unzips CFLAGS="-O2" LF2="-object -s"
-
-# NeXT 3.1+: make the executable fat (multi-architecture binary [MAB],
-# for "black" [NeXT] and "white" [x86] hardware, so far).
-nextfat: unix_make
-       $(MAKE) unzips CFLAGS="-O2 -arch i386 -arch m68k" \
-         LF2="-arch i386 -arch m68k -object -s"
-
-# Sequent Symmetry running Dynix/ptx (sort of SysV.3):  needs to link
-# with libseq to get symlink().
-ptx: unix_make
-       $(MAKE) unzips CF="$(CF) -DSYSV -DTERMIO -DPTX -DNO_LCHOWN -DNO_LCHMOD" LF2="$(LF2) -lseq"
-
-# Pyramid 90X (probably all) under >= OSx4.1, either universe.  (This is an
-# experimental target!  If it fails, use either pyr_ucb or pyr_att instead.)
-# The make in the BSD half is too stupid to understand $(MAKE), sigh...
-pyramid: unix_make
-       -make $(MAKEF) pyr_`universe`
-
-# QNX/Neutrino
-# - No native development tools, so cross-build environement is used.
-# - Use gcc and set ARCH as follows:
-#      "x86"    to produce x86
-#      "ppcbe"             PowerPC (big-endian)
-#      "ppcle"             PowerPC (little-endian)
-#      "mipsbe"            MIPS    (big-endian)
-#      "mipsle"            MIPS    (little-endian)
-qnxnto: unix_make
-       @if [ "$(ARCH)" = "" ] ; then \
-          echo "You didn't set ARCH; I'll assume you meant ARCH=x86..." ; \
-          echo '' ; \
-          $(MAKE) $(MAKEF) CC="qcc -Vgcc_ntox86" unzips ; \
-        else \
-          echo "Making UnZip for $(ARCH)..." ; \
-          echo '' ; \
-          $(MAKE) $(MAKEF) CC="qcc -Vgcc_nto$(ARCH)" unzips ; \
-        fi
-
-# REGULUS:  68040-based, "real-time" SysV.3 mutant; uses gcc, with "REGULUS"
-# predefined.
-regulus: unix_make
-       $(MAKE) unzips CF="$(CF) -traditional -DSYSV -DNO_MKDIR -DNO_LCHOWN -DNO_LCHMOD"
-
-# SCO UNIX with shared libraries and no international support.  If you are
-# not using a USA-style keyboard and display, you may want to remove -nointl
-# to get support.  It adds quite a bit to the size of the executable.
-sco_sl: unix_make
-       $(MAKE) unzips LF="$(LF) -nointl" LF2="$(LF2) -lc_s" \
-         SL="$(SL) -nointl" FL="$(FL) -nointl"
-
-# SCO Xenix/286 2.2.3 or later with development system 2.2.1 or later
-sco_x286: unix_make
-       $(MAKE) unzips \
-         CF="$(CF) -Mel2 -LARGE -DNO_MKDIR -DNO_LCHOWN -DNO_LCHMOD" \
-         LF="$(LF) -Mel2 -LARGE -lx" SL="$(SL) -Mel2 -LARGE" \
-         FL="$(FL) -Mel2 -LARGE"
-
-# Sequent Symmetry with Dynix.  (386, but needs -DZMEM)
-# This should also work on Balance but I can't test it just yet.
-sequent: unix_make
-       $(MAKE) unzips CF="$(CF) -DBSD -DZMEM -DNO_LCHOWN -DNO_LCHMOD"
-
-# Sun 2, 3, 4 running SunOS 3.x
-sunos3: unix_make
-       $(MAKE) unzips CF="$(CF) -DNO_UID_GID -DUID_USHORT -DNO_LCHOWN -DNO_LCHMOD"
-
-# Generic System V + GNU C
-sysv_gcc: unix_make
-       $(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O2 -DSYSV" LF2=""
-       $(STRIP) $(UNZIP_PGMS)
-
-# AT&T 6300+, System V.2 Unix:  run-time out-of-memory error if don't use -Ml;
-# also compile-time error if work arrays dimensioned at HSIZE+2 (>32K)
-sysv6300: unix_make
-       $(MAKE) unzips CF="$(CF) -Ml -DSYSV -DNO_LCHOWN -DNO_LCHMOD" \
-         LF="$(LF) -Ml" SL="$(SL) -Ml" FL="$(FL) -Ml"
-
-# Texas Instruments System V.3 (running on HP 9000-1500)
-ti_sysv: unix_make
-       $(MAKE) unzips CF="$(CF) -DSYSV -DNO_UID_GID -DUID_USHORT -DNO_LCHOWN -DNO_LCHMOD"
-
-# SCO Xenix
-# - Joe Foster 1995/05/08
-# - unzip needs to be linked with -lx [for the opendir(), readdir(), telldir(),
-#   rewinddir(), and closedir() calls]")
-xenix: unix_make
-       $(MAKE) unzips LF2="$(LF2) -lx"
-
index 3b69c62..3a4e730 100755 (executable)
@@ -4,7 +4,7 @@
 
 #==============================================================================
 # unix/configure: Detect feature support and pass that information to Makefile.
-# - For UnZip, UnZipSFX, fUnZip, and ZipInfo            Revised: 2014-08-18
+# - For UnZip, UnZipSFX, fUnZip, and ZipInfo            Revised: 2014-10-07
 #
 # Copyright (c) 2004-2014 Info-ZIP.  All rights reserved.
 #
 #==============================================================================
 # Purpose:
 #
-# This unix/configure script is invoked by unix/Makefile for generic targets
-# to probe the system, the compiler, and other parts of the environment to
-# determine values for system-dependent "make" macros.  It generates the
-# files "$PROD/flags" and "$PROD/flags_bz" that hold the flags used by
-# unix/Makefile to enable or disable features based on available support for
-# them.
+# This unix/configure script is invoked by unix/Makefile for generic
+# targets to probe the system, the compiler, and other parts of the
+# environment to determine values for system-dependent "make" macros.
+# It generates the files "$PROD/flags" and "$PROD/flags_bz" that hold
+# the flags used by unix/Makefile to enable or disable features based on
+# available support for them and user instructions.  ("$PROD/flags" is
+# used for most code; "$PROD/flags_bz" is used for the bzip2 code.)
 #
-# This script checks for the build and manual directories, and will try to
-# create them if necessary.
-#
-# This shell script is typically invoked by unix/Makefile (via sh) rather than
+# This shell script is typically invoked by unix/Makefile rather than
 # being executed directly by the user.
 #
 # To build UnZip automatically using this file, type:
 #   make -f unix/Makefile generic
-# If this fails, then type "make list" to get a list of specific targets.
-# However, the specific targets tend to be out of date and may not enable all
-# available features.  In many cases, the specific targets may not even work
-# anymore.
+# For more information on using unix/Makefile, type:
+#   make -f unix/Makefile
+# This will give brief instructions on using unix/Makefile as well as
+# how to enable optional features.  You can also type:
+#   make -f unix/Makefile list
+# to get a list of generic and specific targets.  Note, however, that
+# most specific targets have not been tested recently, may not enable
+# all available features, or may simply not work.
+#
+# See comments in unix/Makefile for more detailed instructions.
 #
 #
 # Parameters:
 #
 # UnZip Ports:
 #
-# This configure script support a number of non-unix UnZip ports, where UnZip
-# is built is under Unix (or a Unix work-alike), but the resulting UnZip
-# program may be for another system or execution environment.  This script
-# will be invoked from either unix/Makefile, or from a port-specific Makefile.
-# The port may be explicitly identified by the PORT parameter, or implicitly
-# detected by compiler configuration tests.
+# This configure script supports a number of non-unix UnZip ports, where
+# UnZip is built under Unix (or a Unix work-alike), but the resulting
+# UnZip program may be for another system or execution environment.  This
+# script will be invoked from either unix/Makefile, or from a
+# port-specific Makefile.  The port may be explicitly identified by the
+# PORT parameter, or implicitly detected by compiler configuration tests.
 #
 # Supported ports include:
 #   msdos : DOS port built using the DJGPP native or cross-compiler
 #==============================================================================
 # Parameter and Environment variables supported:
 #
+# Note:  You probably don't need to set any of these, so set only things
+#        you know about.  If you find that a particular port needs
+#        specific settings, please let us know so we can improve this
+#        script in a future release.
+#
 #   Build utility configuration:
-#    PROD        - Build directory root (default: .)
+#    PROD        - Build directory root (default: . (The top this source tree))
+#                  If specified, PROD must be a simple subdirectory name.
+#                  (This restriction helps to avoid writing files
+#                  anywhere outside this source tree.)
 #    PORT        - Port name (default: unix)
 #
 #    CC          - C Compiler program name (for core components)
 #    CC_BZ       - C Compiler program name (for BZIP2 components)
 #                                          (default: cc)
 #    CPP         - C Preprocessor program name (default: $CC -E)
-#    AS          - Assembler program name (default: $CC -c)
+#    AS          - Assembler program name (default: $CC)
 #    LD          - Linker program name (default: $CC)
 #    RANLIB      - Archive index program name (default: ranlib)
 #
 #  DLLEXT      - Binary program DLL (.so) file extension
 #
 #==============================================================================
+KIT='UnZip'
 
 trap "rm -f conftest* core a.out; exit 1" 1 2 3 15
 
@@ -180,7 +193,10 @@ fi
 # Evaluate command-line "make"-macro-like var=value expressions.
 #==============================================================================
 echo ''
-echo 'Generating system-dependent flags...'
+echo 'Entering "configure" - generating system-dependent flags...'
+echo '-'
+echo '-Initial preparation...'
+echo '-'
 
 # Evaluate only variables in this list.  Complain about others, but continue.
 valid_v1='|AFLAGS|AS|CC|CC_BZ|CFLAGS|CFLAGS_OPT|CPP|DLLEXT'
@@ -245,7 +261,7 @@ MKDIR='mkdir'                              # Create directory
 PROD=${PROD:-.}                            # Root
 
 # Build Controls
-PORT=${PORT:-}                             # UnZip port name
+PORT=${PORT:-}                             # Kit port name
                                            # - Configure tests may set if null
                                            # - Default is "unix" (set below).
 
@@ -262,7 +278,7 @@ NO_PPMD=${NO_PPMD:-}                       # PPMd compression
 IZ_ZLIB=${IZ_ZLIB:-}                       # ZLIB compression
 
 # Generated Build Dependencies for "make".
-# These contain an object library name, if the feature is enabled.
+# These are set to an object library name, if the feature is enabled.
 LIB_AES_WG=''                              # AES (WinZip/Gladman) encryption
 LIB_BZ=''                                  # BZIP2 compression
 LIB_LZMA=''                                # LZMA compression
@@ -305,15 +321,15 @@ SIZER_V=''                                 # Tru64 system/kernel info
 # Check for build root directory.  Create if required.
 #==============================================================================
 echo "Check build root directory: (${PROD})"
-if [ -d "${PROD}" ]; then
-  echo "-- Build root directory OK."
-elif [ -f "${PROD}" ]; then
-  echo "^^ Directory name exists as an ordinary file.  Unable to build."
-  exit 1
+if sh unix/unsafe_prod.sh "${PROD}"; then
+  echo "^^ Unsafe absolute (/x) or rising (../) PROD: ${PROD}"
+  exit 13
 else
-  if unix/unsafe_prod.sh "${PROD}"; then
-    echo "^^ Unsafe absolute (/x) or rising (../) PROD: ${PROD}"
-    exit 13
+  if [ -d "${PROD}" ]; then
+    echo "-- Build root directory OK."
+  elif [ -f "${PROD}" ]; then
+    echo "^^ Directory name exists as an ordinary file.  Unable to build."
+    exit 1
   else
     echo "-- Creating build root directory."
     ${MKDIR} ${PROD}
@@ -372,7 +388,7 @@ UNAME_S=` uname -s 2>/dev/null `
 case "${UNAME_S}" in
    'OS/390' )
       # z/OS kernel still announces itself as OS/390 (for compatibility)
-      # - Must request for current product info via -I
+      # - Must request current product info via -I
       UNAME_S=` uname -Is 2>/dev/null `
       UNAME_V=` uname -Iv 2>/dev/null `
       UNAME_R=` uname -Ir 2>/dev/null `
@@ -388,7 +404,7 @@ case "${UNAME_S}" in
       UNAME_P=` uname -p 2>/dev/null `
       UNAME_X=` uname -X 2>/dev/null `
 
-      # Use sizer to capture more system configuration details
+      # Use sizer to capture more system configuration details (-v = OS vers)
       # - Tru64 UNIX, and relatives
       if [ -f /usr/sbin/sizer ]; then
         SIZER_V=` /usr/sbin/sizer -v 2>/dev/null | \
@@ -427,7 +443,7 @@ else
     echo "^^ Test executable exited with bad status: ${status}."
     exit $status
   else
-    : # Program echoes "  Ok."
+    : # Program output: "  Ok."
   fi
 fi
 
@@ -435,6 +451,9 @@ fi
 #==============================================================================
 # Perform compile- and link-based configuration discovery tests.
 #==============================================================================
+echo '-'
+echo '-Check compiler, assembler, optional features, ...'
+echo '-'
 
 #------------------------------------------------------------------------------
 # A) Determine C compiler type, set appropriate compile and linker options.
@@ -448,8 +467,8 @@ fi
 
 echon 'Check C compiler type (opt and list options)...'
 
+# Sun C?
 if [ -z "${CFLAGS_OPT}" ]; then
-  # Sun C?
   cat > conftest.c << _EOF_
 int main()
 {
@@ -467,8 +486,8 @@ _EOF_
   fi
 fi
 
+# Tru64 DEC/Compaq/HP C?
 if [ -z "${CFLAGS_OPT}" ]; then
-  # Tru64 DEC/Compaq/HP C?
   cat > conftest.c << _EOF_
 int main()
 {
@@ -486,8 +505,8 @@ _EOF_
   fi
 fi
 
+# HP-UX HP C?
 if [ -z "${CFLAGS_OPT}" ]; then
-  # HP-UX HP C?
   cat > conftest.c << _EOF_
 int main()
 {
@@ -521,9 +540,9 @@ _EOF_
   fi
 fi
 
+# MinGW 64-bit C?
+# MinGW also defines __GNUC__, so must be tested before GCC.
 if [ -z "${CFLAGS_OPT}" ]; then
-  # MinGW 64-bit C?
-  # MinGW also defines __GNUC__, so must be tested before GCC.
   cat > conftest.c << _EOF_
 int main()
 {
@@ -542,9 +561,9 @@ _EOF_
   fi
 fi
 
+# MinGW 32-bit C?
+# MinGW also defines __GNUC__, so must be tested before GCC.
 if [ -z "${CFLAGS_OPT}" ]; then
-  # MinGW 32-bit C?
-  # MinGW also defines __GNUC__, so must be tested before GCC.
   cat > conftest.c << _EOF_
 int main()
 {
@@ -563,9 +582,9 @@ _EOF_
   fi
 fi
 
+# LLVM-based C?
+# LLVM also defines __GNUC__, so must be tested before GCC.
 if [ -z "${CFLAGS_OPT}" ]; then
-  # LLVM-based C?
-  # LLVM also defines __GNUC__, so must be tested before GCC.
   cat > conftest.c << _EOF_
 int main()
 {
@@ -638,15 +657,16 @@ _EOF_
       status=$?
       if [ $status -eq 0 ]; then
         LFLAGS2="${LFLAGS2} ${lflags2_try}"
+        echo "  Link: ${lflags2_try}"
       fi
       rm -f conftest
     fi
   fi
 fi
 
+# Portable C Compiler (PCC)?
+# PCC also defines __GNUC__, so must be tested before GCC.
 if [ -z "${CFLAGS_OPT}" ]; then
-  # Portable C Compiler (PCC)?
-  # PCC also defines __GNUC__, so must be tested before GCC.
   cat > conftest.c << _EOF_
 int main()
 {
@@ -664,9 +684,9 @@ _EOF_
   fi
 fi
 
+# EKOPath C?
+# EKOPath also defines __GNUC__, so must be tested before GCC.
 if [ -z "${CFLAGS_OPT}" ]; then
-  # EKOPath C?
-  # EKOPath also defines __GNUC__, so must be tested before GCC.
   cat > conftest.c << _EOF_
 int main()
 {
@@ -680,13 +700,13 @@ _EOF_
   status=$?
   if [ $status -eq 0 ]; then
     CFLAGS_OPT='-O3'
-    echo "  EKOPAth C ($CFLAGS_OPT)"
+    echo "  EKOPath C ($CFLAGS_OPT)"
   fi
 fi
 
+# Intel C?
+# Intel also defines __GNUC__, so must be tested before GCC.
 if [ -z "${CFLAGS_OPT}" ]; then
-  # Intel C?
-  # Intel also defines __GNUC__, so must be tested before GCC.
   cat > conftest.c << _EOF_
 int main()
 {
@@ -704,8 +724,8 @@ _EOF_
   fi
 fi
 
+# GNU C?
 if [ -z "${CFLAGS_OPT}" ]; then
-  # GNU C?
   cat > conftest.c << _EOF_
 int main()
 {
@@ -720,8 +740,8 @@ _EOF_
   if [ $status -eq 0 ]; then
     # GNU C.  Check for special-case platforms.
 
+    # GNU C for MAC OS X (Darwin)?
     if [ -z "${CFLAGS_OPT}" ]; then
-      # GNU C for MAC OS X (Darwin)?
       cat > conftest.c << _EOF_
 int main()
 {
@@ -735,6 +755,7 @@ _EOF_
       status=$?
       if [ $status -eq 0 ]; then
         CFLAGS_OPT='-O3'
+        echo "  GCC ($CFLAGS_OPT)"
         OSDEP_H="${OSDEP_H} unix/macosx.h"
 
         # "ld64: warning: option -s is obsolete and being ignored"
@@ -748,15 +769,14 @@ _EOF_
         status=$?
         if [ $status -eq 0 ]; then
           LFLAGS2="${LFLAGS2} ${lflags2_try}"
+          echo "  Link: ${lflags2_try}"
         fi
         rm -f conftest
-
-        echo "  GNU C for Mac OS X Darwin ($CFLAGS_OPT)"
       fi
     fi
 
+    # GNU C for AIX?
     if [ -z "${CFLAGS_OPT}" ]; then
-      # GNU C for AIX?
       cat > conftest.c << _EOF_
 int main()
 {
@@ -774,20 +794,20 @@ _EOF_
         CFLAGS_OPT='-O3'
         CFLAGS_TST="${CFLAGS_TST} -D_ALL_SOURCE"
         CFLAGS_TST="${CFLAGS_TST} -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
-        echo "  GNU C for AIX ($CFLAGS_OPT)"
+        echo "  GNU C for AIX ($CFLAGS_OPT, CFLAGS_TST=$CFLAGS_TST)"
       fi
     fi
 
+    # Other GNU C
     if [ -z "${CFLAGS_OPT}" ]; then
-      # Other GNU C
-      CFLAGS_OPT='-O3'         
+      CFLAGS_OPT='-O3'
       echo "  GNU C ($CFLAGS_OPT)"
     fi
   fi
 fi
 
+# IBM C?
 if [ -z "${CFLAGS_OPT}" ]; then
-  # IBM C?
   cat > conftest.c << _EOF_
 int main()
 {
@@ -802,8 +822,8 @@ _EOF_
   if [ $status -eq 0 ]; then
     # IBM C.  Determine platform.
 
+    # IBM XL C for Linux?
     if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM XL C for Linux?
       cat > conftest.c << _EOF_
 int main()
 {
@@ -835,8 +855,8 @@ _EOF_
       fi
     fi
 
+    # IBM XL C for AIX?
     if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM XL C for AIX?
       cat > conftest.c << _EOF_
 int main()
 {
@@ -868,8 +888,8 @@ _EOF_
       fi
     fi
 
+    # IBM z/OS XL C?
     if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM z/OS XL C?
       cat > conftest.c << _EOF_
 int main()
 {
@@ -926,8 +946,8 @@ _EOF_
       fi
     fi
 
+    # IBM XL C for z/VM?
     if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM XL C for z/VM?
       cat > conftest.c << _EOF_
 int main()
 {
@@ -968,12 +988,12 @@ _EOF_
         CFLAGS_TST="${CFLAGS_TST} -D_XOPEN_SOURCE_EXTENDED=1"
         CFLAGS_TST="${CFLAGS_TST} -DICONV=1"
         RANLIB="echo"               # z/VM UNIX has no ranlib utility
-        echo "  IBM XL C for z/VM ($CFLAGS_OPT)"
+        echo "  IBM XL C for z/VM ($CFLAGS_OPT, CFLAGS_TST=$CFLAGS_TST)"
       fi
     fi
 
+    # IBM ILE C for iSeries?
     if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM ILE C for iSeries?
       cat > conftest.c << _EOF_
 int main()
 {
@@ -997,16 +1017,16 @@ _EOF_
       fi
     fi
 
+    # IBM XL C for other platform.
     if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM XL C for other platform.
       CFLAGS_OPT='-O3'
       echo "  IBM XL C ($CFLAGS_OPT)"
     fi
   fi
 fi
 
+# DJGPP C?
 if [ -z "${CFLAGS_OPT}" ]; then
-  # DJGPP C?
   cat > conftest.c << _EOF_
 int main()
 {
@@ -1020,16 +1040,16 @@ _EOF_
   status=$?
   if [ $status -eq 0 ]; then
     CFLAGS_OPT='-O3'
-    echo "  DJGPP C ($CFLAGS_OPT)"
     # Set port values, if defaulted.
     if [ -z "${PORT}" ]; then
       PORT='msdos'
     fi
+    echo "  DJGPP C ($CFLAGS_OPT, port: ${PORT})"
   fi
 fi
 
+# Cygnus C?
 if [ -z "${CFLAGS_OPT}" ]; then
-  # Cygnus C?
   cat > conftest.c << _EOF_
 int main()
 {
@@ -1043,17 +1063,17 @@ _EOF_
   status=$?
   if [ $status -eq 0 ]; then
     CFLAGS_OPT='-O3'
-    echo "  Cygwin C ($CFLAGS_OPT)"
     # Set port values, if defaulted.
     if [ -z "${PORT}" ]; then
       PORT='msdos'
     fi
+    echo "  Cygwin C (${CFLAGS_OPT}, port: ${PORT})"
   fi
 fi
 
 if [ -z "${CFLAGS_OPT}" ]; then
   CFLAGS_OPT='-O'
-  echo "  Other-unknown C ($CFLAGS_OPT)"
+  echo "  Other-unknown C (${CFLAGS_OPT})"
 fi
 
 if [ "${CC}" != "${CC_TST}" ]; then
@@ -1147,7 +1167,7 @@ else
         ;;
 
      *  )
-        echo "^^ UnZip port not recognized.  Unable to build."
+        echo "^^ ${KIT} port not recognized.  Unable to build."
         exit 1
         ;;
   esac
@@ -1198,7 +1218,8 @@ case "${UNAME_S}" in
    *  )
       # Other UNIX systems.
       # FIX_ME: Need to customize for ports.
-      echon 'Check if we can (and want to) use assembly code for CRC...'
+      echon \
+       'Check if we can (and want to) use assembly code for CRC...'
       asm_crc=0
       # CRC.  Fail intentionally, if NO_ASM or NO_ASM_CRC is defined.
       cat > conftest.S << _EOF_
@@ -1214,7 +1235,7 @@ _EOF_
         grep error _crc_i386.s > /dev/null
         status=$?
         if [ $status -ne 0 ]; then
-          $AS -c _crc_i386.s > /dev/null 2> /dev/null
+          ${AS} -c _crc_i386.s > /dev/null 2> /dev/null
           status=$?
           if [ $status -eq 0 -a -f _crc_i386.o ]; then
             echo '  Yes.'
@@ -1232,7 +1253,7 @@ _EOF_
       # "_" prefix on global names.
       if [ $asm_crc -ne 0 ]; then
         echon 'Check if C compiler adds "_" prefix to global names...'
-        echo "int foo() { return 0;}" > conftest.c
+        echo "int foo() { return 0; }" > conftest.c
         $CC -c conftest.c >/dev/null 2>/dev/null
         nm conftest.o | grep foo >/dev/null 2>/dev/null
         status=$?
@@ -1257,7 +1278,7 @@ esac
 #------------------------------------------------------------------------------
 # AES (WinZip/Gladman) encryption.  (User may disable: NO_AES_WG=1.)
 if [ -n "${NO_AES_WG}" ]; then
-  echo "AES WG encryption disabled."
+  echo "AES_WG encryption disabled."
 else
   echon "Check AES_WG (AES WinZip/Gladman) encryption support..."
   if [ -d "${SRCDIR}/aes_wg" ]; then
@@ -1282,7 +1303,7 @@ _EOF_
         CFLAGS_TST="${CFLAGS_TST} -DCRYPT_AES_WG"
         echo '  Yes.'
         echo "-- Including AES_WG encryption support."
-        echo "-- Building ${PROD}/lib${L_AES_WG}.a."
+        echo "-- Building ${LIB_AES_WG}."
       else
         echo '  No.'
         echo "^^ AES_WG test build failed. Check aes_wg/ directory."
@@ -1331,7 +1352,7 @@ _EOF_
         CFLAGS_TST="${CFLAGS_TST} -DLZMA_SUPPORT"
         echo '  Yes.'
         echo "-- Including LZMA compression support."
-        echo "-- Building ${PROD}/lib${L_LZMA}.a."
+        echo "-- Building ${LIB_LZMA}."
       else
         echo '  No.'
         echo "^^ LZMA test build failed. Check szip/ directory."
@@ -1350,7 +1371,7 @@ _EOF_
 fi
 
 #------------------------------------------------------------------------------
-# F'') Configure optional PPMd compression library.
+# F') Configure optional PPMd compression library.
 #------------------------------------------------------------------------------
 # PPMd compression.  (User may disable: NO_PPMD=1.)
 if [ -n "${NO_PPMD}" ]; then
@@ -1380,7 +1401,7 @@ _EOF_
         CFLAGS_TST="${CFLAGS_TST} -DPPMD_SUPPORT"
         echo '  Yes.'
         echo "-- Including PPMd compression support."
-        echo "-- Building ${PROD}/lib${L_PPMD}.a."
+        echo "-- Building ${LIB_PPMD}."
       else
         echo '  No.'
         echo "^^ PPMd test build failed.  Check szip/ directory."
@@ -1413,7 +1434,7 @@ else
     if [ -f "${IZ_BZIP2_A}/bzlib.h" ]; then
       if [ "${IZ_BZIP2}" = "bzip2" ]; then
         echo ''
-        echo "  BZIP2 files found within UnZip tree."
+        echo "  BZIP2 files found within ${KIT} tree."
         echon "  Check for BZIP2 compiled library in IZ_BZIP2 (${IZ_BZIP2})..."
         if [ -f "${IZ_BZIP2_A}/libbz2.a" ]; then
 #
@@ -1431,19 +1452,19 @@ else
             LFLAGS1="${LFLAGS1} -L${IZ_BZIP2}"
             LFLAGS2="${LFLAGS2} -lbz2"
             echo "-- Including BZIP2 compression support."
-            echo "-- Using libbz2.a in IZ_BZIP2 (${IZ_BZIP2})."
+            echo "-- Using ${LIB_BZ}."
           else
             echo '  No.'
             echo "    -----------------------------------------------------"
             echo "    Found BZIP2 library, ${IZ_BZIP2}/libbz2.a, but the"
             echo "      library was not compiled with BZ_NO_STDIO."
             echo "    ERROR: This (default) variant of bzip2 library is NOT"
-            echo "      supported with UnZip because of its incompatible"
+            echo "      supported with ${KIT} because of its incompatible"
             echo "      error handling."
-            echo "      Please see the UnZip installation instructions in"
+            echo "      Please see the ${KIT} installation instructions in"
             echo "      the INSTALL text file."
             echo "    -----------------------------------------------------"
-            echo "  ^^ Incompatible BZIP2 library within the UnZip tree."
+            echo "  ^^ Incompatible BZIP2 library within the ${KIT} tree."
             echo "^^ Unable to include BZIP2 compression support."
           fi
         else
@@ -1456,16 +1477,16 @@ else
             LFLAGS2="${LFLAGS2} -lbz2"
             echo '  Yes.'
             echo "-- Including BZIP2 compression support."
-            echo "-- Building libbz2.a in ${IZ_BZIP2}."
+            echo "-- Building ${LIB_BZ}."
           else
             echo '  No.'
-            echo "  ^^ Incomplete BZIP2 support within the UnZip tree."
+            echo "  ^^ Incomplete BZIP2 support within the ${KIT} tree."
             echo "^^ Unable to include BZIP2 compression support."
           fi
         fi
       else
         echo ''
-        echo "-- BZIP2 support is outside the UnZip tree."
+        echo "-- BZIP2 support is outside the ${KIT} tree."
         echon "  Check for BZIP2 compiled library in IZ_BZIP2 (${IZ_BZIP2})..."
         if [ -f "${IZ_BZIP2_A}/libbz2.a" ]; then
 #
@@ -1483,25 +1504,25 @@ else
             LFLAGS1="${LFLAGS1} -L${IZ_BZIP2}"
             LFLAGS2="${LFLAGS2} -lbz2"
             echo "-- Including BZIP2 compression support."
-            echo "-- Using libbz2.a in IZ_BZIP2 (${IZ_BZIP2})."
+            echo "-- Using ${LIB_BZ}."
           else
             echo '  No.'
             echo "    -----------------------------------------------------"
             echo "    Found BZIP2 library, ${IZ_BZIP2}/libbz2.a, but the"
             echo "      library was not compiled with BZ_NO_STDIO."
             echo "    ERROR: This (default) variant of bzip2 library is NOT"
-            echo "      supported with UnZip because of its incompatible"
+            echo "      supported with ${KIT} because of its incompatible"
             echo "      error handling."
-            echo "      Please see the UnZip installation instructions in"
+            echo "      Please see the ${KIT} installation instructions in"
             echo "      the INSTALL text file."
             echo "    -----------------------------------------------------"
-            echo "  ^^ Incompatible BZIP2 library outside the UnZip tree."
+            echo "  ^^ Incompatible BZIP2 library outside the ${KIT} tree."
             echo "^^ Unable to include BZIP2 compression support."
           fi
         else
           echo '  No.'
           echo "  ^^ ${IZ_BZIP2}/libbz2.a not found (IZ_BZIP2 != \"bzip2\")."
-          echo "  ^^ Incomplete BZIP2 support outside the UnZip tree."
+          echo "  ^^ Incomplete BZIP2 support outside the ${KIT} tree."
           echo "^^ Unable to include BZIP2 compression support."
         fi
       fi
@@ -1548,11 +1569,11 @@ if [ -n "${IZ_ZLIB}" ]; then
   echon "Check ZLIB deflate compression support..."
   if [ -d "${IZ_ZLIB_A}" ]; then
     echo ''
-    echo "  Check for ZLIB header file in IZ_ZLIB (${IZ_ZLIB})."
+    echo "  Check for ZLIB header file in IZ_ZLIB (${IZ_ZLIB})..."
     if [ -f "${IZ_ZLIB_A}/zlib.h" ]; then
       if [ "${IZ_ZLIB}" = "zlib" ]; then
         echo ''
-        echo "  ZLIB found within the UnZip tree."
+        echo "  ZLIB found within the ${KIT} tree."
         echon "  Check for zlib compiled library in IZ_ZLIB (${IZ_ZLIB})..."
         if [ -f "${IZ_ZLIB_A}/libz.a" ]; then
             LIB_Z="${IZ_ZLIB}/libz.a"
@@ -1561,7 +1582,7 @@ if [ -n "${IZ_ZLIB}" ]; then
             LFLAGS2="${LFLAGS2} -lz"
           echo '  Yes.'
           echo "-- Including ZLIB deflate compression support."
-          echo "-- Using libz.a in IZ_ZLIB (${IZ_ZLIB})."
+          echo "-- Using ${LIB_Z}."
         else
           echo ''
           echon "  Check for ZLIB Makefile in IZ_ZLIB (${IZ_ZLIB})..."
@@ -1572,16 +1593,16 @@ if [ -n "${IZ_ZLIB}" ]; then
             LFLAGS2="${LFLAGS2} -lz"
             echo '  Yes.'
             echo "-- Including ZLIB deflate compression support."
-            echo "-- Building libz.a in ${IZ_ZLIB}."
+            echo "-- Building ${LIB_Z}."
           else
             echo '  No.'
-            echo "  ^^ Incomplete ZLIB support within the UnZip tree."
+            echo "  ^^ Incomplete ZLIB support within the ${KIT} tree."
             echo "^^ Unable to include ZLIB compression support."
           fi
         fi
       else
         echo ''
-        echo "  ZLIB support is outside the UnZip tree."
+        echo "  ZLIB support is outside the ${KIT} tree."
         echon "  Check for ZLIB compiled library in IZ_ZLIB (${IZ_ZLIB})..."
         if [ -f "${IZ_ZLIB_A}/libz.a" ]; then
           echo '  Yes.'
@@ -1591,11 +1612,11 @@ if [ -n "${IZ_ZLIB}" ]; then
           LFLAGS1="${LFLAGS1} -L${IZ_ZLIB}"
           LFLAGS2="${LFLAGS2} -lz"
           echo "-- Including ZLIB deflate compression support."
-          echo "-- Using libz.a in IZ_ZLIB (${IZ_ZLIB})."
+          echo "-- Using ${LIB_Z}."
         else
           echo '  No.'
           echo "  ^^ ${IZ_ZLIB}/libz.a not found (IZ_ZLIB != \"zlib\")."
-          echo "  ^^ Incomplete ZLIB support outside the UnZip tree."
+          echo "  ^^ Incomplete ZLIB support outside the ${KIT} tree."
           echo "^^ Unable to include ZLIB compression support."
         fi
       fi
@@ -1632,12 +1653,16 @@ _EOF_
     echo "^^ Unable to include ZLIB compression support."
   fi
 else
-  echo "ZLIB not requested."
+  echo 'Not using ZLIB library for Deflate compression -- not requested.'
 fi
 
 #------------------------------------------------------------------------------
 # I) Common compiler feature checks.
 #------------------------------------------------------------------------------
+echo '-'
+echo '-Header files, run-time functions, ...'
+echo '-'
+
 # Feature macro common conventions:
 #
 # HAVE_HEADER_H
@@ -1717,7 +1742,7 @@ _EOF_
 $CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
 status=$?
 if [ $status -ne 0 ]; then
-  echo '  No. (NO_SIZE_T).'
+  echo '  No (NO_SIZE_T).'
   CFLAGS_TST="${CFLAGS_TST} -DNO_SIZE_T"
 else
   echo '  Yes.'
@@ -1737,7 +1762,7 @@ $CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
 status=$?
 if [ $status -ne 0 ]; then
   CFLAGS_TST="${CFLAGS_TST} -DNO_OFF_T"
-  echo '  No. (NO_OFF_T).'
+  echo '  No (NO_OFF_T).'
 else
   echo '  Yes.'
 fi
@@ -1817,7 +1842,7 @@ fi
 # tests if this OS uses 16-bit UIDs/GIDs and so if the old 16-bit storage
 # should also be used for backward compatibility.)
 
-echon 'Check size of UIDs and GIDs...'
+echo 'Check sizes of UIDs and GIDs...'
 cat > conftest.c << _EOF_
 #define _LARGEFILE_SOURCE       /* Some OSes need this for fseeko       */
 #define _LARGEFILE64_SOURCE
@@ -1827,7 +1852,7 @@ cat > conftest.c << _EOF_
 #include <sys/stat.h>
 #include <unistd.h>
 #include <stdio.h>
-int main( )
+int main()
 {
   struct stat s;
 
@@ -1851,16 +1876,16 @@ int main( )
   return 3;
 }
 _EOF_
-$CC_TST $CFLAGS -o conftest conftest.c >/dev/null 2>/dev/null
+$CC_TST $CFLAGS ${CFLAGS_TST} \
+ -o conftest conftest.c >/dev/null 2>/dev/null
 status=$?
 if [ $status -ne 0 ]; then
   echo '  Unknown (IZ_HAVE_UXUIDGID).'
   errmes="-- UID/GID test failed on compile"
   errmes="${errmes} - disabling old 16-bit UID/GID support"
-  echo "${errmes}"
+  echo "${errmes}."
   CFLAGS_TST="${CFLAGS_TST} -DIZ_HAVE_UXUIDGID"
 else
-  echo ''
   ./conftest
   status=$?
   if [ $status -eq 1 ]; then
@@ -1878,7 +1903,7 @@ else
     echo '  Unknown (IZ_HAVE_UXUIDGID).'
     errmes="-- Test failed - conftest returned $status."
     errmes="${errmes} - Enabling "ux" UID/GID support"
-    echo "${errmes}"
+    echo "${errmes}."
     CFLAGS_TST="${CFLAGS_TST} -DIZ_HAVE_UXUIDGID"
   fi
 fi
@@ -2034,9 +2059,11 @@ _EOF_
     fi
   done
 
-  # Check for wide char for Unicode support.
-  iconv_ok=0
+  # Check for wide char for Unicode support (wchar_t, wide encoding, and
+  # wide functions for Unicode support.
   echon 'Check for wide char Unicode support...'
+  iconv_ok=0
+
   cat > conftest.c << _EOF_
 #include <stdlib.h>
 #include <stdio.h>
@@ -2073,7 +2100,8 @@ int main()
 #ifndef __STDC_ISO_10646__
   return 1;
 #else
-  printf("  __STDC_ISO_10646__ = %d (yyyymm)\n", __STDC_ISO_10646__);
+  printf("  UCS encoding: __STDC_ISO_10646__ = %d (yyyymm)\n",
+   __STDC_ISO_10646__);
   return 2;
 #endif
 }
@@ -2122,7 +2150,7 @@ if [ $status -eq 0 ]; then
   CFLAGS_TST="${CFLAGS_TST} -DUNICODE_SUPPORT -DUTF8_MAYBE_NATIVE"
 else
   echo '  No (NO_SETLOCALE).'
-  echo '^^ No Unicode (UTF-8 native) support.'
+  echo '^^ No Unicode UTF-8 native support.'
   CFLAGS_TST="${CFLAGS_TST} -DNO_SETLOCALE"
 fi
 
@@ -2219,10 +2247,10 @@ do
 done
 
 # Check (very seriously) for a working lchmod().
-# On GNU/Linux (Clang, GCC) look for a compile-time warning like
+# On GNU/Linux (Clang, GCC) look for a compile-time warning like
 # "lchmod is not implemented and will always fail".
 echon 'Check for lchmod()...'
-temp_file="/tmp/unzip_test_$$"
+temp_file="/tmp/iz_${KIT}_test_$$"
 temp_link="link_$$"
 ( echo '#include <unistd.h>' ; \
   echo "int main() { lchmod(\"${temp_file}\", 0666); }" \
@@ -2231,6 +2259,7 @@ ln -s "${temp_link}" "${temp_file}" && \
 $CC_TST $CFLAGS $BIF_TST -o conftest conftest.c >/dev/null 2> conftest.err
 status=$?
 if [ $status -eq 0 ]; then
+  # Check for "not implemented" warning.
   grep implemented < conftest.err > /dev/null 2> /dev/null
   status=$?
   [ $status -eq 0 ] && status=666
@@ -2323,8 +2352,8 @@ else
   echo '  Yes.'
 fi
 
-# Check for directory libraries.
-echon 'Check for directory libraries...'
+# Check for directory traversal libraries (ndir, dirent, bsd, ...).
+echon 'Check for directory traversal libraries...'
 cat > conftest.c << _EOF_
 int main() { return closedir(opendir(".")); }
 _EOF_
@@ -2417,7 +2446,7 @@ do
   if [ $status -ne 0 ]; then
     ucname=` echo $inc | tr '[a-z]./' '[A-Z]__' `
     mname="NO_${ucname}"
-    echo "  No (${mname})."
+    echo "  No (${mname})."
     CFLAGS_TST="${CFLAGS_TST} -D${mname}"
   else
     echo '  Yes.'
@@ -2562,16 +2591,22 @@ fi
 #------------------------------------------------------------------------------
 # J) Perform OS-specific tests.
 #------------------------------------------------------------------------------
+echo '-'
+echo "-Compiler- and OS-specific flags, symlinks, ..."
+echo '-'
+
 # Check for OS-specific flags.
 ossf=0
 echon 'Check for OS-specific flags...'
 if [ -n "${UNAME_S}" ]; then
-  echo "int main() { return 0;}" > conftest.c
+  echo "int main() { return 0; }" > conftest.c
+
   case "${UNAME_S}" in
+
     OSF1|ULTRIX)
       ossf=1
       echo ''
-      echo '  Check for -Olimit option...'
+      echon '  Check for -Olimit option...'
       $CC_TST ${CFLAGS} -Olimit 1000 -o conftest conftest.c \
        >/dev/null 2>/dev/null
       status=$?
@@ -2613,7 +2648,7 @@ _EOF_
   esac
 elif [ -n "${UNAME_X}" ]; then
 # SCO shared library check.  ??? Where's the "SCO" test"???
-  echo "int main() { return 0;}" > conftest.c
+  echo "int main() { return 0; }" > conftest.c
   $CC_TST $CFLAGS -o conftest conftest.c -lc_s -nointl >/dev/null 2>/dev/null
   status=$?
   if [ $status -eq 0 ]; then
@@ -2649,7 +2684,7 @@ fi
 # K) Configure system-specific resources.
 #------------------------------------------------------------------------------
 # Check symbolic links.
-echon 'Check symbolic links...'
+echon 'Check for symbolic link support...'
 if ln -s /dev/null null >/dev/null 2>/dev/null ; then
   echo '  Yes.'
 else
@@ -2742,11 +2777,17 @@ else
 fi
 
 # Remove work files from configuration tests.
+echo '-'
+echo "Removing temporary files..."
+
 rm -f a.out conftest.c conftest.o conftest.err conftest.lst conftest null
 
-#------------------------------------------------------------------------------
+#==============================================================================
 # Finalize the configuration values.
-#------------------------------------------------------------------------------
+#==============================================================================
+echo '-'
+echo "Writing flags files..."
+
 # Add optimization (and listing) flags to initial C flags.
 if [ -n "${CFLAGS_OPT}" ]; then
   CFLAGS="${CFLAGS} ${CFLAGS_OPT}"
@@ -2783,6 +2824,8 @@ fi
 #------------------------------------------------------------------------------
 # Emit the primary configuration values in the $PROD/flags file.
 #------------------------------------------------------------------------------
+echo "-Main:  ` pwd `/flags"
+
 echo "CC=\"${CC}\" CF=\"${CFLAGS}\"" \
      "CC_BZ=\"${CC_BZ}\" CF_BZ=\"${CFLAGS_BZ}\"" \
      "CPP=\"${CPP}\"" \
@@ -2809,10 +2852,18 @@ echo "CC=\"${CC}\" CF=\"${CFLAGS}\"" \
      > flags
 
 #------------------------------------------------------------------------------
-# Emit the libbz2 configuration values in the $PROD/flags_bz file.
+# Emit the bzip2 configuration values in the $PROD/flags_bz file.
 #------------------------------------------------------------------------------
+echo "-Bzip2: ` pwd `/flags_bz"
+
 echo "CC=\"${CC_BZ}\" CFLAGS=\"${CFLAGS_BZ}\"" \
      "AR=\"${AR_BZ}\" RANLIB=\"${RANLIB}\"" \
      "RM=\"${RM}\"" \
      > flags_bz
-echo ""
+
+#==============================================================================
+# Done.
+#==============================================================================
+echo '-'
+echo 'Exiting "configure".'
+echo ''
diff --git a/unix/configure.txt b/unix/configure.txt
deleted file mode 100644 (file)
index 8b04e48..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-+==============================================================================
-| unix/configure.txt: Notes on unix/configure and unix/Makefile
-| Version:  Zip 3.1 and UnZip 6.10                                 10 Sept 2011
-+==============================================================================
-
-This brief document describing the updated unix/configure flags, and the
-differences from that generated by the original unix.configure script.
-
-Changes:
-1.  A new file $PROD/flags_bz is generated containing just the bzip2
-    compilation-related flags.  
-2.  UNAME-related flags now in more legible order
-3.  For z/OS, use "uname -I" to generate current z/OS information
-4.  Now generates installation flags (BINDIR, BINPERMS)
-5.  Now generates man page flags (MANEXT, MANDIR, MANPERMS)
-    - unix/Makefile supports generic_man and generic_doc
-6.  Now generates man page nroff option 
-    - Currently "-Tascii" or "" 
-7.  Flags renamed for consistency between zip and unzip:
-    - CFLAGS    -> CF
-    - CFLAGS_BZ -> CF_BZ
-    - LFLAGS1   -> LF1  
-    - LFLAGS2   -> LF2
-8.  Flags generated are a superset of zip and unzip (additional header checks)
-9.  OSDEP_xxxx flags contain OS-dependent values:
-    - OSDEP_C   C source files
-    - OSDEP_H   C header files
-    - OSDEP_S   Assembler source files
-    - OSDEP_OC  Object files (C)
-    - OSDEP_OS  Object files (assembler)
-    These allows multiple OS-dependent C or assembler source files
-10. Use consistent configuration, naming and recipes for assembler files
-11. Add $PROD/flags values for program extensions:
-    - PMGEXT    Executables
-    - DLLEXT    DLLs (Shared objects)
-12. Add $PROD/flags values for RANLIB, RM and LN
-13: Add $PROD/flags values for AR
-    - Required by IBM XLC for AIX 64-bit compiles
-14. Object archive dependencies.  Non-blank if library is required
-    - LIB_AES_WG
-      LIB_LZMA
-      LIB_BZ
-      LIB_Z
-15: ZLIB and BZIP2 support now consistent
-    - Supports build within tree via bzip2/Makefile or zlib/Makefile (if present)
-    - Supports build with OS-owned libbz2.a (IZ_BZIP2=bzip2, ./bzip2 is empty)
-    - Supports build with OS-owned libz.a (IZ_ZLIB=zlib, ./zlib is empty)
-    - Returns MK_BZ to allow configure to return system-specific BZIP2 makefile name
-16: Now supports AF for assembler flags
-17: Support compiler listing options (+ CC on z/OS) for LIST=1
-18: Cleanup targets now same on zip and unzip (clean, clean_bzip2, clean_exe)
-19: All make targets are now explicit for portability
-    - SysV make pattern matching is not as powerful as gmane or z/OS make (MKS)
-20: .SUFFIX reset to prevent builds from using default .c -> .o rules
-
-21: On z/OS, use CC=c89 (xlc ends with sigkill for failing compiles)
-22: On AIX (with IBM XL C) use CC=c89
-23: Use unzip nl_langinfo() test instead of following zip test (which fails because
-    codeset is not an int).
-
-    echo Check for nl_langinfo
-    cat > conftest.c << _EOF_
-    #include <langinfo.h>
-    int main() { char *codeset;  codeset = nl_langinfo(CODESET); return codeset; }
-    _EOF_
-    $CC -o conftest conftest.c >/dev/null 2>/dev/null
-    [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_NL_LANGINFO"
-24: Add test for sys/param.h (for -DNO_PARAM_H)
-25: Add test for sys/time.h (separate from entry timing)
-26: Add tests for sys/timeb.h and utime.h
-27: Set z/OS linker flags
-28. Add PORT unix/configure parm [AD]
-    - Allows reuse by z/OS MVS build (under z/OS UNIX)
-
-Fixes:
-1.  CF_BZ now has "-DBZ_NO_STDIO" to build correct bzip2 variation
-2.  CF_BZ now contains "-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" if large files supported
-3.  Customize unzip unix/unxcfg.h for time.h et al
-
-To Do:
-1.  Ensure all Unicode/wchar bits and pieces work
-2.  Emit CC with system-dependent ANSI build compiler name (gcc, c89, xlc) automatically
-    - Check system, compiler version
-3.  Generation of man pages needs to be corrected 
-
-
-+-----------------------------------------------------------------------------+
-| Flag output                                                                 | 
-+-----------------------------------------------------------------------------+
---- On Fedora 14 Linux X84_64: GCC 4.5.1) ---
-For make -f unix/Makefile generic AES_WG=1 LZMA=1 IZ_BZIP2=bzip2 IZ_ZLIB=zlib
-
-New:
-[al@leeloo base]$ cat flags 
-CC="cc" CF="-I. -DUNIX -O3  -DCRYPT_AES_WG -DUSE_LZMA -D_7ZIP_ST -DUSE_BZIP2 -DUSE_ZLIB -DLARGE_FILE_SUPPORT -DUIDGID_NOT_16BIT -DENABLE_ENTRY_TIMING -DHAVE_SYS_TIME_H -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUNICODE_SUPPORT -DUTF8_MAYBE_NATIVE -fno-builtin -DNO_STRCHR -DNO_STRRCHR -DNO_LCHMOD -DHAVE_DIRENT_H -DNO_PARAM_H -DHAVE_TERMIOS_H  -D_MBCS -DUNAME_S='\"Linux\"' -DUNAME_V='\"#1 SMP Tue Aug 16 21:01:58 UTC 2011\"' -DUNAME_R='\"2.6.35.14-95.fc14.x86_64\"' -DUNAME_O='\"GNU/Linux\"' -DUNAME_M='\"x86_64\"' -DUNAME_P='\"x86_64\"'" CC_BZ="cc" CF_BZ="-I. -DUNIX -O3 -DBZ_NO_STDIO  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" CPP="/usr/bin/cpp" AS="cc -c" AF="" LD="cc" LF1=" -L. -L." LF2="-s -laes -llzma -lbz2 -lz" AR="ar -cq" RANLIB="ranlib" LN="ln -s" RM="rm -f" PROD="." DEP_AS="" DEP_AES_WG="./libaes.a" DEP_LZMA="./liblzma.a" DEP_BZ="" DEP_Z="" MK_BZ="Makefile" OSDEP_C="unix/unix.c" OSDEP_H="unix/unxcfg.h" OSDEP_O="./unix.o" OSDEP_S="" PGMEXT="" DLLEXT=".so" BINDIR="/usr/local/bin" BINPERMS="755" MANEXT=".1" MANDIR="manl" MANPERMS="644"
-
-[al@leeloo base]$ cat flags_bz
-CC="cc" CFLAGS="-I. -DUNIX -O3 -DBZ_NO_STDIO  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" AR="ar -cq" RANLIB="ranlib" RM="rm -f"
-
-Old:
-[al@leeloo orig]$ cat flags
-CC="cc" CF="-I. -DUNIX -O3 -DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUNICODE_SUPPORT -DUTF8_MAYBE_NATIVE -DNO_LCHMOD -DHAVE_DIRENT_H -DHAVE_TERMIOS_H -D_MBCS -DUNAME_M='\"x86_64\"' -DUNAME_O='\"GNU/Linux\"' -DUNAME_P='\"x86_64\"' -DUNAME_R='\"2.6.35.14-95.fc14.x86_64\"' -DUNAME_S='\"Linux\"' -DUNAME_V='\"#1 SMP Tue Aug 16 21:01:58 UTC 2011\"'" CRCA_O="" AS="cc -c" LFLAGS1="" LF2="-s" CC_BZ="cc" CFLAGS_BZ=" -O3" IZ_BZIP2="" LIBBZ2="" LIB_AES_WG="" LIB_LZMA=""
-
---- On AIX 6.1 (cc=cc:IBM XL C for AIX) ---
-For make -f unix/Makefile generic AES_WG=1 LZMA=1
-
-New:
-[q4xtwnb:/apps/eq00/infozip/unzip/6.10/unzip610c06/base]$cat flags 
-CC="cc" CF="-I. -DUNIX -O3 -q64 -qlonglong  -DCRYPT_AES_WG -DUSE_LZMA -D_7ZIP_ST -qlanglvl=ansi -DLARGE_FILE_SUPPORT -DUIDGID_NOT_16BIT -DENABLE_ENTRY_TIMING -DHAVE_SYS_TIME_H -DUNICODE_SUPPORT -DUTF8_MAYBE_NATIVE -DNO_LCHMOD -DHAVE_DIRENT_H -DNO_PARAM_H -DHAVE_TERMIOS_H -DHAVE_MBSTR_H -D_MBCS -DUNAME_S='\"AIX\"' -DUNAME_V='\"6\"' -DUNAME_R='\"1\"' -DUNAME_M='\"00F64BF34C00\"' -DUNAME_P='\"powerpc\"'" CC_BZ="cc" CF_BZ="-I. -DUNIX -O3 -q64 -qlonglong -DBZ_NO_STDIO  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" CPP="/usr/bin/cpp" AS="cc -c" AF="" LD="cc" LF1=" -L. -L." LF2="-s -q64 -laes -llzma" AR="ar -cq -X64" RANLIB="ranlib" LN="ln -s" RM="rm -f" PROD="." DEP_AS="" LIB_AES_WG="libaes.a" LIB_LZMA="liblzma.a" LIB_BZ="" LIB_Z="" MK_BZ="Makefile" OSDEP_C="unix/unix.c" OSDEP_H="unix/unxcfg.h" OSDEP_O="./unix.o" OSDEP_S="" PGMEXT="" DLLEXT=".so" BINDIR="/usr/local/bin" BINPERMS="755" MANEXT=".1" MANDIR="manl" MANPERMS="644"
-
-[q4xtwnb:/apps/eq00/infozip/unzip/6.10/unzip610c06/base]$cat flags_bz
-CC="cc" CFLAGS="-I. -DUNIX -O3 -q64 -qlonglong -DBZ_NO_STDIO  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" AR="ar -cq -X64" RANLIB="ranlib" RM="rm -f"
-
---- On AIX 6.1 (cc=gcc:GCC 4.2.0)
-For make -f unix/Makefile generic AES_WG=1 LZMA=1
-
-New:
-[q4xtwnb:/apps/eq00/infozip/unzip/6.10/unzip610c06/base]$cat flags
-CC="gcc" CF="-I. -DUNIX -O3  -DCRYPT_AES_WG -DUSE_LZMA -D_7ZIP_ST -DLARGE_FILE_SUPPORT -DUIDGID_NOT_16BIT -DENABLE_ENTRY_TIMING -DHAVE_SYS_TIME_H -DUNICODE_SUPPORT -DUTF8_MAYBE_NATIVE -fno-builtin -DNO_STRCHR -DNO_STRRCHR -DNO_LCHMOD -DHAVE_DIRENT_H -DNO_PARAM_H -DHAVE_TERMIOS_H -DHAVE_MBSTR_H -D_MBCS -DMBSCHR=mbschr -DMBSRCHR=mbsrchr -DUNAME_S='\"AIX\"' -DUNAME_V='\"6\"' -DUNAME_R='\"1\"' -DUNAME_M='\"00F64BF34C00\"' -DUNAME_P='\"powerpc\"'" CC_BZ="gcc" CF_BZ="-I. -DUNIX -O3 -DBZ_NO_STDIO  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" CPP="/usr/bin/cpp" AS="gcc -c" AF="" LD="gcc" LF1=" -L. -L." LF2="-s -laes -llzma" AR="ar -cq" RANLIB="ranlib" LN="ln -s" RM="rm -f" PROD="." DEP_AS="" LIB_AES_WG="libaes.a" LIB_LZMA="liblzma.a" LIB_BZ="" LIB_Z="" MK_BZ="Makefile" OSDEP_C="unix/unix.c" OSDEP_H="unix/unxcfg.h" OSDEP_O="./unix.o" OSDEP_S="" PGMEXT="" DLLEXT=".so" BINDIR="/usr/local/bin" BINPERMS="755" MANEXT=".1" MANDIR="manl" MANPERMS="644"
-
-[q4xtwnb:/apps/eq00/infozip/unzip/6.10/unzip610c06/base]$cat flags_bz
-CC="gcc" CFLAGS="-I. -DUNIX -O3 -DBZ_NO_STDIO  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" AR="ar -cq" RANLIB="ranlib" RM="rm -f"
-
-Old:
-[q4xtwnb:/apps/eq00/infozip/unzip/6.10/unzip610c06/orig]$cat flags
-CC="gcc" CF="-I. -DUNIX -O3 -DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT -DUTF8_MAYBE_NATIVE -DNO_LCHMOD -DHAVE_DIRENT_H -DHAVE_TERMIOS_H -DHAVE_MBSTR_H -D_MBCS -DMBSCHR=mbschr -DMBSRCHR=mbsrchr -DUNAME_M='\"00F64BF34C00\"' -DUNAME_P='\"powerpc\"' -DUNAME_R='\"1\"' -DUNAME_S='\"AIX\"' -DUNAME_V='\"6\"'" CRCA_O="" AS="gcc -c" LFLAGS1="" LF2="-s" CC_BZ="gcc" CFLAGS_BZ=" -O3" IZ_BZIP2="" LIBBZ2="" LIB_AES_WG="" LIB_LZMA=""
-
---- On z/OS 1.12 (cc=c89:IBM z/OS XL C)
-For make -f unix/Makefile generic AES_WG=1 LZMA=1
-
-New:
-(Q4XTWNB:/u/q4xtwnb/infozip/unzip/6.10/unzip610c06/base)$cat flags
-CC="c89" CF="-I. -DUNIX -O3 -Wc,longlong,'langlvl(extended)',checkout,'flag(i)',inline -Wc,'suppress(ccn3389,ccn3374,ccn3495,ccn3409,ccn3469,ccn3457)'  -DZOS_UNIX -DEBCDIC -DSYSV -D_ALL_SOURCE -D_OPEN_SYS_TIMED_EXT -D_XOPEN_SOURCE_EXTENDED=1 -DCRYPT_AES_WG -DUSE_LZMA -D_7ZIP_ST -DLARGE_FILE_SUPPORT -DUIDGID_NOT_16BIT -DENABLE_ENTRY_TIMING -DHAVE_SYS_TIME_H -DUNICODE_SUPPORT -DUTF8_MAYBE_NATIVE -DNO_LCHMOD -DHAVE_DIRENT_H -DNO_PARAM_H -DHAVE_TERMIOS_H -DHAVE_MBSTR_H -D_MBCS -DUNAME_S='\"z/OS\"' -DUNAME_V='\"01\"' -DUNAME_R='\"12.00\"' -DUNAME_M='\"2817\"'" CC_BZ="cc" CF_BZ="-I. -DUNIX -O3 -Wc,longlong,'langlvl(extended)',checkout,'flag(i)',inline -Wc,'suppress(ccn3389,ccn3374,ccn3495,ccn3409,ccn3469,ccn3457)' -DBZ_NO_STDIO  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" CPP="c89 -E" AS="cc -c" AF="" LD="c89" LF1="-Wl,EDIT=NO -L. -L." LF2=" -laes -llzma" AR="ar -cq" RANLIB="echo" LN="ln -s" RM="rm -f" PROD="." DEP_AS="" LIB_AES_WG="libaes.a" LIB_LZMA="liblzma.a" LIB_BZ="" LIB_Z="" MK_BZ="Makefile" OSDEP_C="unix/unix.c" OSDEP_H="unix/unxcfg.h" OSDEP_O="./unix.o" OSDEP_S="" PGMEXT="" DLLEXT=".so" BINDIR="/usr/local/bin" BINPERMS="755" MANEXT=".1" MANDIR="manl" MANPERMS="644"
-
-(Q4XTWNB:/u/q4xtwnb/infozip/unzip/6.10/unzip610c06/base)$cat flags_bz
-CC="cc" CFLAGS="-I. -DUNIX -O3 -Wc,longlong,'langlvl(extended)',checkout,'flag(i)',inline -Wc,'suppress(ccn3389,ccn3374,ccn3495,ccn3409,ccn3469,ccn3457)' -DBZ_NO_STDIO  -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" AR="ar -cq" RANLIB="echo" RM="rm -f"
diff --git a/unix/configure_old b/unix/configure_old
deleted file mode 100755 (executable)
index d1698be..0000000
+++ /dev/null
@@ -1,2570 +0,0 @@
-:
-#!/bin/sh -x
-# The above ":" is necessary on some buggy systems.
-
-#==============================================================================
-# unix/configure: Detect feature support and pass that information to Makefile.
-# - For UnZip, UnZipSFX, fUnZip and ZipInfo             Revised: 2013-11-29
-#
-# Copyright (c) 2004-2013 Info-ZIP.  All rights reserved.
-#
-# See the accompanying file LICENSE, version 2009-Jan-2 or later (the
-# contents of which are also included in zip.h) for terms of use.  If,
-# for some reason, all these files are missing, the Info-ZIP license may
-# also be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
-#==============================================================================
-
-###############################################################################
-# This file was renamed from "unix/configure" to "unix/configure_old".
-# Similarly, "unix/Makefile" was renamed to "unix/Makefile_old".
-# Please keep this in mind when reading the comments and instructions below.
-###############################################################################
-
-#==============================================================================
-# Purpose:
-#
-# This unix/configure script is invoked by unix/Makefile for generic targets
-# to probe the system, the compiler, and other parts of the environment to
-# determine values for system-dependent "make" macros.  It generates the
-# files "$PROD/flags" and "$PROD/flags_bz" that hold the flags used by
-# unix/Makefile to enable or disable features based on available support for
-# them.
-#
-# This script checks for the build and manual directories, and will try to
-# create them if necessary.
-#
-# This shell script is typically invoked by unix/Makefile (via sh) rather than
-# being executed directly by the user.
-#
-# To build UnZip automatically using this file, type:
-#   make -f unix/Makefile generic
-# If this fails, then type "make list" to get a list of specific targets.
-# However, the specific targets tend to be out of date and may not enable all
-# available features.  In many cases, the specific targets may not even work
-# anymore.
-#
-#
-# Parameters:
-#
-# Setting parameters allows enabling optional features (such as optional
-# compression methods), disabling features, and pointing the script to
-# available libraries.
-#
-# Parameters are usually provided by the Makefile and are specified by the
-# user on the initial "make" invocation.   Note that some parameters take
-# values, in the form "var=value", where var is one of the parameters listed
-# below.
-#
-# In most cases, setting a parameter to 1 enables a feature and to 0 (or
-# omitting the parameter) disables it.
-#
-#
-# Environment variables:
-#
-# Compilation parameters can also be set in the environment.
-# export "var=value" for var names like:
-#   LOCAL_UNZIP
-#
-#
-# UnZip Ports:
-#
-# This configure script support a number of non-unix UnZip ports, where UnZip
-# is built is under Unix (or a Unix work-alike), but the resulting UnZip
-# program may be for another system or execution environment.  This script
-# will be invoked from either unix/Makefile, or from a port-specific Makefile.
-# The port may be explicitly identified by the PORT parameter, or implicitly
-# detected by compiler configuration tests.
-#
-# Supported ports include:
-#   msdos : DOS port built using the DJGPP native or cross-compiler
-#   os2   : OS/2 port
-#   qdos  : Sinclair Q-DOS port built using a gcc cross-compiler
-#   zos   : z/OS MVS port built under z/OS UNIX
-#   zvm   : z/VM CMS port built under z/VM UNIX
-#
-#==============================================================================
-# Parameter and Environment variables supported:
-#
-#   Build utility configuration:
-#    PROD        - Build directory root (default: .)
-#    PORT        - Port name (default: unix)
-#
-#    CC          - C Compiler program name (for core components)
-#                                          (default: cc)
-#    CC_BZ       - C Compiler program name (for BZIP2 components)
-#                                          (default: cc)
-#    CPP         - C Preprocessor program name (default: $CC -E)
-#    AS          - Assembler program name (default: $CC -c)
-#    LD          - Linker program name (default: $CC)
-#    RANLIB      - Archive index program name (default: ranlib)
-#
-#    CFLAGS      - C Compiler flag initial values
-#    CFLAGS_OPT  - C Compiler optimization option override (non-null)
-#    LOCAL_UNZIP - C compiler flag user override values
-#
-#    AFLAGS      - Assembler flag initial values
-#
-#    LFLAGS1     - Linker flag initial values (before output file spec)
-#    LFLAGS2     - Linker flag initial values (after output file spec)
-#
-#    OSDEP_H     - OS-dependent C header file names
-#    OSDEP_OCF   - OS-dependent C object file names, funzip
-#    OSDEP_OCS   - OS-dependent C object file names, unzipsfx
-#    OSDEP_OCU   - OS-dependent C object file names, unzip
-#    OSDEP_OS    - OS-dependent Assembler object file names
-#
-#    PGMEXT      - Binary program file extension
-#    DLLEXT      - Binary program DLL (.so) file extension
-#
-#    LIST        - Enable compile/linker listing generation
-#
-#   UnZip optional feature configuration:
-#    AES_WG      - Enable AES encryption (WinZip/Gladman)
-#    ICONV       - Enable ISO/OEM character conversion using iconv.
-#    IZ_BZIP2    - Enable BZIP2 compression
-#    IZ_ZLIB     - Use ZLIB for deflate compression
-#    LIBUNZIP    - Build UnZip object library
-#    LZMA        - Enable LZMA compression
-#    PPMD        - Enable PPMd compression
-#
-#==============================================================================
-# Build utility generated configuration flags:
-#
-#  - Generated based on build utility program, platform and features selected
-#  - Generated flags are appended to initial user-specified value
-#  - LOCAL_UNZIP value is appended to final CF and CF_BZ values
-#
-#  CC          - C Compiler program name (for core components)
-#  CC_BZ       - C Compiler program name (for BZIP2 components)
-#  CF          - C Compiler flag values (for core components)
-#  CF_BZ       - C Compiler flag values (for BZIP2 components)
-#  CPP         - C Preprocessor program name
-#  AS          - Assembler program name
-#  AF          - Assembler flag initial values
-#  LD          - Linker program name
-#  LF1         - Linker flags (before output file spec)
-#  LF2         - Linker flags (after output file spec)
-#  AR          - Archive program name (and options)
-#  RANLIB      - Archive index program name
-#  LN          - File link program name (and options)
-#  PROD        - Root build directory
-#  PORT        - Port name build control
-#  IZ_BZIP2    - BZIP2 compression build directory
-#  IZ_ZLIB     - ZLIB compression build directory
-#  LIB_AES_WG  - AES (WinZip/Gladman) encryption build dependencies
-#  LIB_BZ      - BZIP2 compression build dependencies
-#  LIB_LZMA    - LZMA compression build dependencies
-#  LIB_PPMD    - PPMd compression build dependencies
-#  LIB_UNZIP   - UnZip object library
-#  LIB_Z       - ZLIB compression build dependencies
-#  MK_BZ       - BZIP2 compression build makefile
-#  OSDEP_H     - OS-dependent C header file names
-#  OSDEP_OCF   - OS-dependent C object file names, funzip
-#  OSDEP_OCS   - OS-dependent C object file names, unzipsfx
-#  OSDEP_OCU   - OS-dependent C object file names, unzip
-#  OSDEP_OS    - OS-dependent Assembler object file names
-#  PGMEXT      - Binary program file extension
-#  DLLEXT      - Binary program DLL (.so) file extension
-#  BINDIR      - Binary program installation directory
-#  BINPERMS    - Binary program installation file permissions
-#  MANEXT      - Manual page file extension
-#  MANDIR      - Manual page installation directory
-#  MANPERMS    - Manual page installation file permissions
-#
-#==============================================================================
-
-trap "rm -f conftest* core a.out; exit 1" 1 2 3 15
-
-#==============================================================================
-# Evaluate command-line "make"-macro-like var=value expressions.
-#==============================================================================
-echo ''
-echo 'Generating system-dependent flags...'
-
-# Evaluate only variables in this list.  Complain about others, but continue.
-valid_vars1='|AES_WG|AFLAGS|AS|CC|CC_BZ|CFLAGS|CFLAGS_OPT|CPP|DLLEXT|ICONV'
-valid_vars2='|IZ_BZIP2|IZ_ZLIB|LD|LFLAGS1|LFLAGS2|LIST|LOCAL_UNZIP|LZMA'
-valid_vars3='|OSDEP_H|OSDEP_OCF|OSDEP_OCS|OSDEP_OCU|OSDEP_OS'
-valid_vars4='|PGMEXT|PPMD|PROD|RANLIB|'
-valid_vars="${valid_vars1}${valid_vars2}${valid_vars3}${valid_vars4}"
-
-argc=$#
-while [ ${argc} -gt 0 ]; do
-  var=` echo "${1}" | sed -e 's/=.*//' `
-  val=` echo "${1}" | sed -e 's/^[^=]*=//' `
-  if echo "${valid_vars}" | grep "|${var}|" >/dev/null 2>&1 ; then
-    eval ${1}
-  else
-    echo "   Unrecognized variable name \"${var}\" in \"${1}\"."
-  fi
-  shift
-  argc=` expr ${argc} - 1 `
-done
-
-#==============================================================================
-# Build utility names, command-line option variables, default values.
-#==============================================================================
-CC=${CC:-cc}                               # C compiler name (core components)
-CC_BZ=${CC_BZ:-${CC}}                      # C compiler name (BZIP2 components)
-CC_LIST=''                                 # C compiler name, if LIST enabled
-CFLAGS=${CFLAGS:-}' -I.'                   # C compiler flags (core components)
-CFLAGS_BZ=${CFLAGS_BZ:-}' -I'              # C cmplr flags (BZIP2 components)
-CFLAGS_OPT=${CFLAGS_OPT:-}                 # C cmplr optimze (and list) options
-CFLAGS_USR=${LOCAL_UNZIP:-}                # C compiler user override options
-
-CPP=${CPP:-"${CC} -E"}                     # C preprocessor name
-
-AS=${AS:-"${CC}"}                          # Assembler name (core components)
-AFLAGS=${AFLAGS:-}                         # Assembler flags
-
-LD=${LD:-"${CC}"}                          # Linker name
-LD_LIST=''                                 # Linker name, if LIST enabled
-LFLAGS1=${LFLAGS1:-}                       # Linker options, part 1
-LFLAGS2=${LFLAGS2:--s}                     # Linker options, part 2
-
-CC_TST=$CC                                 # C cmplr/options for feature tests
-BIF_TST=''                                 # C builtin fnctn feature test flags
-CFLAGS_TST=''                              # C cmplr feature test optns (core)
-CFLAGS_TST_BZ=''                           # C cmplr feature test optns (BZIP2)
-
-CPP_TST=$CPP                               # C preprocessor for feature tests
-
-AR='ar cq'                                 # Object archive prgrm name/options
-AR_BZ='ar'                                 #                           (BZIP2)
-RANLIB=${RANLIB:-ranlib}                   # Object archive index utility
-
-LN='ln -s'                                 # Create symbolic link
-RM='rm -f'                                 # Remove file(s)
-
-# Miscellaneous command macros.
-MKDIR='mkdir'                              # Create directory
-
-# Build Directories
-PROD=${PROD:-.}                            # Root
-PROD_MAN="${PROD}/manout"                  # Manuals
-
-# Build Controls
-PORT=${PORT:-}                             # UnZip port name
-                                           # - Configure tests may set if null
-                                           # - Default is "unix" (set below).
-
-PORT_SPEC=''                               # Port specification method
-                                           # - Explicit ('E') via PORT=port
-                                           #   Implicit ('I') via config test
-
-AES_WG=${AES_WG:-}                         # AES (WinZip/Gladman) encryption
-ICONV=${ICONV:-}                           # ISO/OEM (iconv) conversion
-IZ_BZIP2=${IZ_BZIP2:-}                     # BZIP2 compression
-IZ_ZLIB=${IZ_ZLIB:-}                       # ZLIB compression
-LZMA=${LZMA:-}                             # LZMA compression
-PPMD=${PPMD:-}                             # PPMd compression
-
-# Generated Build Dependencies for "make".
-# These contain an object library name, if the feature is enabled.
-LIB_AES_WG=''                              # AES (WinZip/Gladman) encryption
-LIB_BZ=''                                  # BZIP2 compression
-LIB_LZMA=''                                # LZMA compression
-LIB_PPMD=''                                # PPMd compression
-LIB_UNZIP=''                               # UnZip object library
-LIB_Z=''                                   # ZLIB compression
-
-# Build makefiles.
-MK_BZ='Makefile'                           # BZIP2 compression
-
-# OS-dependent files.
-# Defaults to unix files, customized based on PORT and tests.
-OSDEP_H=${OSDEP_H:-'unix/unxcfg.h'}        # C header file names
-OSDEP_OCF=${OSDEP_OC:-}                    # C object file names, funzip
-OSDEP_OCS=${OSDEP_OC:-"${PROD}/unix.o"}    # C object file names, unzipsfx
-OSDEP_OCU=${OSDEP_OC:-"${PROD}/unix.o"}    # C object file names, unzip
-OSDEP_OS=${OSDEP_OS:-}                     # Assembler object file names
-
-# OS-dependent file extensions.
-# Defaults to unix files, customized based on PORT and tests.
-PGMEXT=${PGMEXT:-}                         # Program file extension
-DLLEXT=${DLLEXT:-'.so'}                    # DLL (.so) file extension
-MANEXT=${MANEXT:-'.l'}                     # man page file extension
-
-# OS-dependent installation directories.
-BINDIR=${BINDIR:-"$HOME/bin"}              # Where to install executables
-MANDIR=${MANDIR:-'manl'}                   # Where to install man pages
-
-# OS-dependent installation file permissions.
-BINPERMS=${BINPERMS:-'755'}                # Executable programs
-MANPERMS=${MANPERMS:-'644'}                # man pages
-
-# System identification (raw).
-UNAME_S=''                                 # System/kernel name
-UNAME_V=''                                 # System/kernel major version
-UNAME_R=''                                 # System/kernel minor version
-UNAME_O=''                                 # Operating system
-UNAME_M=''                                 # Machine hardware name
-UNAME_P=''                                 # Processor name
-UNAME_X=''                                 # Expanded system info (not saved)
-SIZER_V=''                                 # Tru64 system/kernel info
-
-
-#==============================================================================
-# Check for build root directory.  Create if required.
-#==============================================================================
-echo "Check build root directory: (${PROD})"
-if [ -d "${PROD}" ]; then
-  echo "-- Build root directory OK."
-elif [ -f "${PROD}" ]; then
-  echo "^^ Directory name exists as an ordinary file.  Unable to build."
-  exit 1
-else
-  echo "-- Creating build root directory."
-  ${MKDIR} ${PROD}
-  status=$?
-  if [ $status -ne 0 ]; then
-    echo ''
-    echo "^^ Directory creation failed (${status})."
-    exit $status
-  fi
-fi
-
-
-#==============================================================================
-# Check for build manuals directory.  Create if required.
-#==============================================================================
-echo "Check build directory for manuals: (${PROD_MAN})"
-if [ -d "${PROD_MAN}" ]; then
-  echo "-- Build manuals directory is OK."
-elif [ -f "${PROD_MAN}" ]; then
-  echo "^^ Directory name exists as an ordinary file.  Unable to build."
-  exit 1
-else
-  echo "-- Creating build manuals directory."
-  ${MKDIR} ${PROD_MAN}
-  status=$?
-  if [ $status -ne 0 ]; then
-    echo ''
-    echo "^^ Directory creation failed (${status})."
-    exit $status
-  fi
-fi
-
-
-#==============================================================================
-# Assign default PORT.  Note if explicit or implicit specification.
-#==============================================================================
-if [ -z "${PORT}" ]; then
-  PORT='unix'
-  PORT_SPEC='I'
-else
-  PORT_SPEC='E'
-fi
-
-
-#==============================================================================
-# Query the system information.
-#==============================================================================
-echo "Query for system identification..."
-UNAME_S=` uname -s 2>/dev/null `
-case "${UNAME_S}" in
-   'OS/390' )
-      # z/OS kernel still announces itself as OS/390 (for compatibility)
-      # - Must request for current product info via -I
-      UNAME_S=` uname -Is 2>/dev/null `
-      UNAME_V=` uname -Iv 2>/dev/null `
-      UNAME_R=` uname -Ir 2>/dev/null `
-      UNAME_M=` uname -Im 2>/dev/null `
-      ;;
-
-   *  )
-      # All others use standard uname query
-      UNAME_V=` uname -v 2>/dev/null `
-      UNAME_R=` uname -r 2>/dev/null `
-      UNAME_O=` uname -o 2>/dev/null `
-      UNAME_M=` uname -m 2>/dev/null `
-      UNAME_P=` uname -p 2>/dev/null `
-      UNAME_X=` uname -X 2>/dev/null `
-
-      # Use sizer to capture more system configuration details
-      # - Tru64 UNIX, and relatives
-      if [ -f /usr/sbin/sizer ]; then
-        SIZER_V=` /usr/sbin/sizer -v 2>/dev/null | \
-                sed -e 's/^[^ ]* [^ ]* [^ ]* \([^ ]*\) .*/\1/' `
-      fi
-      ;;
-esac
-
-echo "  OS name: ${UNAME_S}"
-
-
-#==============================================================================
-# Validate basic compiler and linker operation.
-#==============================================================================
-echo "Check C compiler+linker operation..."
-cat > conftest.c << _EOF_
-#include <stdio.h>
-int main()
-{
-   printf( "  Ok\n");
-   return 0;
-}
-_EOF_
-$CC $CFLAGS -o conftest conftest.c
-status=$?
-if [ $status -ne 0 ]; then
-  echo ''
-  echo "^^ C compiler+linker \"${CC}\" does not work as expected."
-  echo "^^ Failing command was: $CC $CFLAGS -o conftest conftest.c"
-  exit $status
-else
-  ./conftest
-  status=$?
-  if [ $status -ne 0 ]; then
-    echo "^^ Test executable exited with bad status: ${status}."
-    exit $status
-  fi
-fi
-
-
-#==============================================================================
-# Perform compile- and link-based configuration discovery tests.
-#==============================================================================
-
-#------------------------------------------------------------------------------
-# A) Determine C compiler type, set appropriate compile and linker options.
-#------------------------------------------------------------------------------
-
-# Each compiler is recognized using standard pre-defined preprocessor symbols.
-#
-# The options set in for each compiler includes the basic options required for
-# successful compilation of UnZip, as well as the options for standard code
-# optimization.
-
-echo 'Check C compiler type (optimization and listing options)...'
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # Sun C?
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __SUNPRO_C
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    CFLAGS_OPT='-xO3'
-    echo "  Sun C ($CFLAGS_OPT)"
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # Tru64 DEC/Compaq/HP C?
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __DECC
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    CFLAGS_OPT='-O3'
-    echo "  DEC C ($CFLAGS_OPT)"
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # HP-UX HP C?
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifdef __GNUC__
-   bad code
-#endif
-#ifndef __hpux
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    # HP-UX, not GCC.  Lame bundled or real ANSI compiler?
-    CFLAGS_OPT_TRY="+O3 +Onolimit"
-    $CC $CFLAGS $CFLAGS_OPT_TRY -c conftest.c 2>&1 | \
-       grep '(Bundled)' >/dev/null
-    status=$?
-    if [ $status -ne 0 ]; then
-      CFLAGS_OPT="${CFLAGS_OPT_TRY}"
-      echo "  HP-UX ANSI C ($CFLAGS_OPT)"
-    else
-      CFLAGS_OPT=' '    #Blank = Lame bundled compiler recognized.
-      echo '  HP-UX Bundled C (no opt)'
-    fi
-#   Note: Your HP-UX system may require addition of -DNO_MKSTEMP
-#         - In HP-UX versions below 11.31, writes to the temporary
-#           file may fail.  Refer to INSTALL for details.
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # MinGW 64-bit C?
-  # MinGW also defines __GNUC__, so must be tested before GCC.
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __MINGW64__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    CFLAGS_OPT='-O3'
-    PORT='mingw64'
-    echo "  MinGW 64 ($CFLAGS_OPT)"
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # MinGW 32-bit C?
-  # MinGW also defines __GNUC__, so must be tested before GCC.
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __MINGW32__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    CFLAGS_OPT='-O3'
-    PORT='mingw32'
-    echo "  MinGW 32 ($CFLAGS_OPT)"
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # LLVM-based C?
-  # LLVM also defines __GNUC__, so must be tested before GCC.
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __llvm__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    # LLVM-based C.  Determine specific compiler.
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # LLVM Clang?
-      cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __clang__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-      $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CFLAGS_OPT='-O3'
-        echo "  LLVM Clang ($CFLAGS_OPT)"
-      fi
-    fi
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # LLVM Apple GCC?
-      cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __APPLE_CC__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-      $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CFLAGS_OPT='-O3'
-        echo "  LLVM Apple GCC ($CFLAGS_OPT)"
-      fi
-    fi
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # Default to LLVM GCC.
-      CFLAGS_OPT='-O3'
-      echo "  LLVM GCC ($CFLAGS_OPT)"
-    fi
-
-    # Special Mac OS X shared library "ld" option?
-    if [ "${UNAME_S}" = 'Darwin' ]; then
-      OSDEP_H="${OSDEP_H} unix/macosx.h"
-
-      # "ld64: warning: option -s is obsolete and being ignored"
-      if [ "${LFLAGS2}" = '-s' ]; then
-        LFLAGS2=''
-      fi
-
-      lflags2_try='-Wl,-search_paths_first'
-      $CC $CFLAGS ${lflags2_try} conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        LFLAGS2="${LFLAGS2} ${lflags2_try}"
-      fi
-      rm -f conftest
-    fi
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # Portable C Compiler (PCC)?
-  # PCC also defines __GNUC__, so must be tested before GCC.
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __PCC__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    CFLAGS_OPT='-O'
-    echo "  Portable C Compiler (PCC) ($CFLAGS_OPT)"
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # EKOPath C?
-  # EKOPath also defines __GNUC__, so must be tested before GCC.
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __PATHCC__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    CFLAGS_OPT='-O3'
-    echo "  EKOPAth C ($CFLAGS_OPT)"
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # Intel C?
-  # Intel also defines __GNUC__, so must be tested before GCC.
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __INTEL_COMPILER
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    CFLAGS_OPT='-O3'
-    echo "  Intel C ($CFLAGS_OPT)"
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # GNU C?
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __GNUC__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    # GNU C.  Check for special-case platforms.
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # GNU C for MAC OS X (Darwin)?
-      cat > conftest.c << _EOF_
-int main()
-{
-#if !(defined(__APPLE__) || defined(__darwin__))
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-      $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CFLAGS_OPT='-O3'
-        OSDEP_H="${OSDEP_H} unix/macosx.h"
-
-        # "ld64: warning: option -s is obsolete and being ignored"
-        if [ "${LFLAGS2}" = '-s' ]; then
-          LFLAGS2=''
-        fi
-
-        # Special Mac OS X shared library "ld" option?
-        lflags2_try='-Wl,-search_paths_first'
-        $CC $CFLAGS ${lflags2_try} conftest.c >/dev/null 2>/dev/null
-        status=$?
-        if [ $status -eq 0 ]; then
-          LFLAGS2="${LFLAGS2} ${lflags2_try}"
-        fi
-        rm -f conftest
-
-        echo "  GNU C for Mac OS X Darwin ($CFLAGS_OPT)"
-      fi
-    fi
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # GNU C for AIX?
-      cat > conftest.c << _EOF_
-int main()
-{
-#ifndef _AIX
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-      $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CC_TST="${CC_TST} -D_ALL_SOURCE"
-        CC_TST="${CC_TST} -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
-        CFLAGS_OPT='-O3'
-        CFLAGS_TST="${CFLAGS_TST} -D_ALL_SOURCE"
-        CFLAGS_TST="${CFLAGS_TST} -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
-        echo "  GNU C for AIX ($CFLAGS_OPT)"
-      fi
-    fi
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # Other GNU C
-      CFLAGS_OPT='-O3'         
-      echo "  GNU C ($CFLAGS_OPT)"
-    fi
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # IBM C?
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __IBMC__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    # IBM C.  Determine platform.
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM XL C for Linux?
-      cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __TOS_LINUX__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-      C_PARMS="-q64 -qlonglong -qlibansi -qnoignerrno"
-      $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CC='c89'
-        LD='c89'
-        CC_TST="c89 ${C_PARMS} -D_ALL_SOURCE"
-        CC_TST="${CC_TST} -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
-        CFLAGS_OPT="-O3 ${C_PARMS}"
-        CFLAGS_TST="${CFLAGS_TST} -D_ALL_SOURCE"
-        CFLAGS_TST="${CFLAGS_TST} -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
-        LFLAGS2="${LFLAGS2} -q64"
-        AR='ar -cq -X64'
-        AR_BZ='ar -X64'
-        if [ -n "${LIST}" ]; then # Listings enabled?
-          CFLAGS_OPT="${CFLAGS_OPT} -qlist -qsource -qshowinc -qreport"
-        fi
-        echo "  IBM XL C for Linux ($CFLAGS_OPT)"
-      fi
-    fi
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM XL C for AIX?
-      cat > conftest.c << _EOF_
-int main()
-{
-#if !(defined(_AIX) && defined(__PPC__))
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-      C_PARMS="-q64 -qlonglong -qlibansi -qnoignerrno"
-      $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CC='c89'
-        LD='c89'
-        CC_TST="c89 ${C_PARMS} -D_ALL_SOURCE"
-        CC_TST="${CC_TST} -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
-        CFLAGS_OPT="-O3 ${C_PARMS}"
-        CFLAGS_TST="${CFLAGS_TST} -D_ALL_SOURCE"
-        CFLAGS_TST="${CFLAGS_TST} -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
-        LFLAGS2="${LFLAGS2} -q64"
-        AR='ar -cq -X64'
-        AR_BZ='ar -X64'
-        if [ -n "${LIST}" ]; then # Listings enabled?
-          CFLAGS_OPT="${CFLAGS_OPT} -qlist -qsource -qshowinc -qreport"
-        fi
-        echo "  IBM XL C for AIX ($CFLAGS_OPT)"
-      fi
-    fi
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM z/OS XL C?
-      cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __MVS__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-      C_PARMS="-Wc,longlong,libansi,noignerrno"
-      $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        # Use c89 to get ANSI
-        # - Avoid xlc (terminates with sigkill on compile error)
-        CC='c89'
-        LD='c89'
-        CC_TST="c89 ${C_PARMS}"
-        CFLAGS_OPT="-O3 ${C_PARMS} -Wc,'langlvl(extended)'"
-        CFLAGS_OPT="${CFLAGS_OPT} -Wc,checkout,'flag(i)',inline"
-        CFLAGS_OPT="${CFLAGS_OPT} -Wc,'suppress(ccn3389,ccn3374,ccn3413)'"
-        CFLAGS_OPT="${CFLAGS_OPT} -Wc,'suppress(ccn3495,ccn3409,ccn3469)'"
-        CFLAGS_OPT="${CFLAGS_OPT} -Wc,'suppress(ccn3457)'"
-        LFLAGS1='-Wl,EDIT=NO'
-        LFLAGS2=''
-        if [ -n "${LIST}" ]; then # Listings enabled?
-          CC_LIST="sh ./zos/zcc c89"    # Script does listing capture
-          CFLAGS_OPT="${CFLAGS_OPT} -Wc,list,source,showinc,inlrpt"
-          CFLAGS_OPT="${CFLAGS_OPT} -Wc,aggr,expmac"
-          LD_LIST="sh ./zos/zld c89"    # Script does listing capture
-          LFLAGS1="${LFLAGS1} -Wl,map,xref"
-        fi
-       #FIX_ME[AD]: Switch to 64-bit after 32-bit is fully debugged
-       #if echo "${LOCAL_UNZIP}" | grep -i ILP32 >/dev/null 2>&1 ; then
-       #  :
-       #else                        # Default to 64-bit build
-       #  CC_TST="${CC_TST} -Wc,lp64 -Wl,lp64"
-       #  CFLAGS_OPT="${CFLAGS_OPT} -Wc,lp64"
-       #  LFLAGS1="${LFLAGS1} -Wl,lp64"
-       #fi
-        CC_TST="${CC_TST} -D_ALL_SOURCE -D_OPEN_SYS_TIMED_EXT"
-        CC_TST="${CC_TST} -D_XOPEN_SOURCE_EXTENDED=1"
-        if [ "${PORT}" = 'unix' ]; then
-          CFLAGS_TST="${CFLAGS_TST} -DZOS_UNIX"
-        fi
-        # Oldest supported z/OS release
-        CFLAGS_TST="${CFLAGS_TST} -Wc,'target(zOSV1R10)'"
-        CFLAGS_TST="${CFLAGS_TST} -DEBCDIC -DSYSV"
-        CFLAGS_TST="${CFLAGS_TST} -D_ALL_SOURCE -D_OPEN_SYS_TIMED_EXT"
-        CFLAGS_TST="${CFLAGS_TST} -D_XOPEN_SOURCE_EXTENDED=1"
-        RANLIB="echo"               # z/OS UNIX has no ranlib utility
-        echo "  IBM z/OS XL C ($CFLAGS_OPT)"
-      fi
-    fi
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM XL C for z/VM?
-      cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __VM__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-      C_PARMS="-Wc,longlong,libansi,noignerrno"
-      $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CC='c89'
-        LD='c89'
-        CC_TST="c89 ${C_PARMS}"
-        CFLAGS_OPT="-O3 ${C_PARMS} -Wc,'langlvl(extended)'"
-        CFLAGS_OPT="${CFLAGS_OPT} -Wc,checkout,'flag(i)',inline"
-        CFLAGS_OPT="${CFLAGS_OPT} -Wc,'suppress(ccn3389,ccn3374,ccn3413)'"
-        CFLAGS_OPT="${CFLAGS_OPT} -Wc,'suppress(ccn3495,ccn3409,ccn3469)'"
-        CFLAGS_OPT="${CFLAGS_OPT} -Wc,'suppress(ccn3457)'"
-        LFLAGS1='-Wl,EDIT=NO'
-        LFLAGS2=''
-        if [ -n "${LIST}" ]; then # Listings enabled?
-          CC_LIST="sh ./zos/zcc c89"    # Script does listing capture
-          CFLAGS_OPT="${CFLAGS_OPT} -Wc,list,source,showinc,inlrpt"
-          CFLAGS_OPT="${CFLAGS_OPT} -Wc,aggr,expmac"
-          LD_LIST="sh ./zos/zld c89"    # Script does listing capture
-          LFLAGS1="${LFLAGS1} -Wl,map,xref"
-        fi
-        CC_TST="${CC_TST} -D_ALL_SOURCE -D_OPEN_SYS_TIMED_EXT"
-        CC_TST="${CC_TST} -D_XOPEN_SOURCE_EXTENDED=1"
-        if [ "${PORT}" = 'unix' ]; then
-          CFLAGS_TST="${CFLAGS_TST} -DZOS_UNIX"
-        fi
-        CFLAGS_TST="${CFLAGS_TST} -DEBCDIC -DSYSV"
-        CFLAGS_TST="${CFLAGS_TST} -D_ALL_SOURCE -D_OPEN_SYS_TIMED_EXT"
-        CFLAGS_TST="${CFLAGS_TST} -D_XOPEN_SOURCE_EXTENDED=1"
-        RANLIB="echo"               # z/VM UNIX has no ranlib utility
-        echo "  IBM XL C for z/VM ($CFLAGS_OPT)"
-      fi
-    fi
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM ILE C for iSeries?
-      cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __OS400__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-      $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CC='c89'
-        LD='c89'
-        CC_TST='c89'
-        CFLAGS_OPT='-O3 -Wc,inline'
-        if [ -n "${LIST}" ]; then # Listings enabled?
-          CFLAGS_OPT="${CFLAGS_OPT} -qlist -qsource -qshowinc -qreport"
-        fi
-        echo "  IBM ILE C for iSeries ($CFLAGS_OPT)"
-      fi
-    fi
-
-    if [ -z "${CFLAGS_OPT}" ]; then
-      # IBM XL C for other platform.
-      CFLAGS_OPT='-O3'
-      echo "  IBM XL C ($CFLAGS_OPT)"
-    fi
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # DJGPP C?
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __DJGPP__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    CFLAGS_OPT='-O3'
-    echo "  DJGPP C ($CFLAGS_OPT)"
-    # Set port values, if defaulted.
-    if [ -z "${PORT}" ]; then
-      PORT='msdos'
-    fi
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  # Cygnus C?
-  cat > conftest.c << _EOF_
-int main()
-{
-#ifndef __CYGWIN__
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-  $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -eq 0 ]; then
-    CFLAGS_OPT='-O3'
-    echo "  Cygwin C ($CFLAGS_OPT)"
-    # Set port values, if defaulted.
-    if [ -z "${PORT}" ]; then
-      PORT='msdos'
-    fi
-  fi
-fi
-
-if [ -z "${CFLAGS_OPT}" ]; then
-  CFLAGS_OPT='-O'
-  echo "  Other-unknown C ($CFLAGS_OPT)"
-fi
-
-if [ "${CC}" != "${CC_TST}" ]; then
-  echo "  Feature test compiler updated (${CC_TST})"
-fi
-
-#------------------------------------------------------------------------------
-# B) Finalize specific customizations for target port.
-#------------------------------------------------------------------------------
-if [ "${PORT}" = "unix" ]; then
-  echo "Standard Unix target."
-  CFLAGS="${CFLAGS} -DUNIX"
-  CFLAGS_BZ="${CFLAGS_BZ} -DUNIX"
-else
-  echo "Set build configuration for target \"${PORT}\" port."
-  case "${PORT}" in
-     unix )
-        # UNIX values set in defaults, customized based on tests.
-        ;;
-
-     mingw* )
-        CFLAGS="${CFLAGS} -DWIN32"
-        CFLAGS_BZ="${CFLAGS_BZ} -D_WIN32"
-        OSDEP_H='win32/nt.h win32/rsxntwin.h win32/w32cfg.h'
-        OSDEP_OCF="${PROD}/win32.o ${PROD}/win32i64.o"
-        OSDEP_OCS="${PROD}/nt.o ${PROD}/win32.o ${PROD}/win32i64.o"
-        OSDEP_OCU="${PROD}/nt.o ${PROD}/win32.o ${PROD}/win32i64.o"
-        OSDEP_OS=''
-        PGMEXT='.exe'
-        DLLEXT='.dll'
-        ;;
-
-     msdos )
-        CFLAGS="${CFLAGS} -DMSDOS"
-        CFLAGS_BZ="${CFLAGS_BZ} -DMSDOS"
-        OSDEP_H='msdos/doscfg.h'
-        OSDEP_OCF="${PROD}/msdos.o"
-        OSDEP_OCS="${PROD}/msdos.o"
-        OSDEP_OCU="${PROD}/msdos.o"
-        OSDEP_OS=''
-        PGMEXT='.EXE'
-        DLLEXT='.DLL'
-        ;;
-
-     os2 )
-        CFLAGS="${CFLAGS} -DOS2"
-        CFLAGS_BZ="${CFLAGS_BZ} -DOS2"
-        OSDEP_H='os2/os2acl.h  os2/os2cfg.h  os2/os2data.h'
-        OSDEP_OCF="${PROD}/os2.o"
-        OSDEP_OCS="${PROD}/os2.o"
-        OSDEP_OCU="${PROD}/os2.o"
-        OSDEP_OS=''
-        PGMEXT='.EXE'
-        DLLEXT='.DLL'
-        ;;
-
-     qdos )
-        CFLAGS="${CFLAGS} -DQDOS"
-        CFLAGS_BZ="${CFLAGS_BZ} -DQDOS"
-        OSDEP_H='qdos/izqdos.h'
-        OSDEP_OCF="${PROD}/qdos.o ${PROD}/qfileio.o"
-        OSDEP_OCS="${PROD}/qdos.o ${PROD}/qfileio.o"
-        OSDEP_OCU="${PROD}/qdos.o ${PROD}/qfileio.o"
-        OSDEP_OS=''
-        PGMEXT=''
-        DLLEXT=''
-        ;;
-
-     zos )
-        CFLAGS="${CFLAGS} -DMVS"
-        CFLAGS_BZ="${CFLAGS_BZ} -DMVS"
-        OSDEP_H='zos/vmmvs.h'
-        OSDEP_OCF="${PROD}/vmmvs.o"
-        OSDEP_OCS="${PROD}/vmmvs.o"
-        OSDEP_OCU="${PROD}/vmmvs.o"
-        OSDEP_OS=''
-        PGMEXT=''
-        DLLEXT=''
-        ;;
-
-     zvm )
-        CFLAGS="${CFLAGS} -DVM_CMS"
-        CFLAGS_BZ="${CFLAGS_BZ} -DVM_CMS"
-        OSDEP_H='zvm/cstat.h zos/vmmvs.h'
-        OSDEP_OCF="${PROD}/vmmvs.o"
-        OSDEP_OCS="${PROD}/vmmvs.o"
-        OSDEP_OCU="${PROD}/vmmvs.o"
-        OSDEP_OS=''
-        PGMEXT=''
-        DLLEXT=''
-        ;;
-
-     *  )
-        echo "^^ UnZip port not recognized.  Unable to build."
-        exit 1
-        ;;
-  esac
-fi
-
-#------------------------------------------------------------------------------
-# C) Determine C preprocessor type.
-#------------------------------------------------------------------------------
-echo 'Check C preprocessor type...'
-case "${UNAME_S}" in
-   'z/OS'|'z/VM')
-      # z/OS UNIX, z/VM UNIX requires wrapper script for CPP tests.
-      # "cc -E" returns 0 even when warning/error detected.
-      CPP="${CC} -E"
-
-      CPP_TST="sh ./zos/zcpp ${CPP}"   # Wrapper script checks stderr.
-      ;;
-
-   *  )
-      # Other UNIX systems.
-      # On SVR4, cc -E does not produce correct assembler files.  Use /lib/cpp.
-      # Solaris as(1) needs -P, maybe others as well ?
-      CPP="${CC} -E"
-      [ -f /usr/ccs/lib/cpp ] && CPP='/usr/ccs/lib/cpp -P'
-      [ -f /usr/lib/cpp ]     && CPP='/usr/lib/cpp'
-      [ -f /lib/cpp ]         && CPP='/lib/cpp'
-      [ -f /usr/bin/cpp ]     && CPP='/usr/bin/cpp'
-      [ -f /xenix ]           && CPP="${CC} -E"
-      [ -f /lynx.os ]         && CPP="${CC} -E"
-
-      # Verify operation with tentative CPP.
-      echo "#include <stdio.h>" >conftest.c
-      $CPP conftest.c >/dev/null 2>/dev/null || CPP="${CC} -E"
-
-      CPP_TST="${CPP}"
-      ;;
-esac
-
-#------------------------------------------------------------------------------
-# D) Determine if assembler CRC routines can be used.
-#------------------------------------------------------------------------------
-case "${UNAME_S}" in
-   'z/OS'|'z/VM')
-      # z/OS UNIX, z/VM UNIX can not run i386 code.
-      # Host assembler uses unique internal macro phase, not CPP.
-      ;;
-
-   *  )
-      # Other UNIX systems.
-      # FIX_ME: Need to customize for ports.
-      echo 'Check if we can (and want to) use assembly code for CRC...'
-      asm_crc=0
-      # CRC.  Fail intentionally, if NO_ASM or NO_ASM_CRC is defined.
-      cat > conftest.S << _EOF_
-#if defined( NO_ASM) || defined( NO_ASM_CRC)
-    bad code
-#else
-# include "crc_i386.S"
-#endif
-_EOF_
-      ${CPP_TST} ${CFLAGS} conftest.S > _crc_i386.s 2> /dev/null
-      status=$?
-      if [ $status -eq 0 -a -s _crc_i386.s ]; then
-        grep error _crc_i386.s > /dev/null
-        status=$?
-        if [ $status -ne 0 ]; then
-          $AS -c _crc_i386.s > /dev/null 2> /dev/null
-          status=$?
-          if [ $status -eq 0 -a -f _crc_i386.o ]; then
-            echo '-- Using assembly code for CRC.'
-            asm_crc=1
-            CFLAGS_TST="${CFLAGS_TST} -DASM_CRC"
-            OSDEP_OS="${OSDEP_OS} ${PROD}/crc_gcc.o"
-          fi
-        fi
-      fi
-      # If using assembler for anything, then check the C compiler for a
-      # "_" prefix on global names.
-      if [ $asm_crc -ne 0 ]; then
-        echo 'Check if C compiler adds "_" prefix to global names...'
-        echo "int foo() { return 0;}" > conftest.c
-        $CC -c conftest.c >/dev/null 2>/dev/null
-        nm conftest.o | grep foo >/dev/null 2>/dev/null
-        status=$?
-        if [ $status -eq 0 ]; then
-          # Found "foo".  Look for "_foo".
-          nm conftest.o | grep _foo >/dev/null 2>/dev/null
-          status=$?
-          [ $status -ne 0 ] && AFLAGS="${AFLAGS} -DNO_UNDERLINE"
-        fi
-      fi
-      rm -f conftest.c conftest.S _crc_i386.s _crc_i386.o
-      ;;
-esac
-
-lprod=0
-#------------------------------------------------------------------------------
-# E) Configure optional AES (WinZip/Gladman) encryption library.
-#------------------------------------------------------------------------------
-# AES (WinZip/Gladman) encryption.  (User must request: "AES_WG=1".)
-if [ -n "${AES_WG}" ]; then
-  echo "Check AES_WG (AES WinZip/Gladman) encryption support..."
-  if [ -d "aes_wg" ]; then
-    echo "  Check for AES_WG header file in aes_wg/ directory..."
-    if [ -f "aes_wg/aes.h" ]; then
-      cat > conftest.c << _EOF_
-int main()
-{
-#include "aes_wg/aes.h"
-#ifndef CRYPT_AES_WG
-   forget it
-#endif
-   return 0;
-}
-_EOF_
-      $CC_TST $CFLAGS -DCRYPT_AES_WG -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        LIB_AES_WG="${PROD}/libaes.a"
-        CFLAGS_TST="${CFLAGS_TST} -DCRYPT_AES_WG"
-        if [ $lprod -eq 0 ]; then
-          lprod=1
-          LFLAGS1="${LFLAGS1} -L${PROD}"
-        fi
-        LFLAGS2="${LFLAGS2} -laes"
-        echo "-- Including AES_WG encryption support."
-        echo "-- Building libaes.a in ${PROD}."
-      else
-        echo "^^ AES_WG test build failed. Check aes_wg/ directory."
-        echo "^^ Unable to include AES_WG encryption support."
-      fi
-    else
-      echo "^^ AES_WG source code not found in aes_wg/ directory."
-      echo "^^ Unable to include AES_WG encryption support."
-    fi
-  else
-    echo "^^ Directory aes_wg not found."
-    echo "^^ Unable to include AES_WG encryption support."
-  fi
-else
-  echo "No AES WG encryption."
-fi
-
-#------------------------------------------------------------------------------
-# F) Configure optional LZMA compression library.
-#------------------------------------------------------------------------------
-# LZMA compression.  (User must request: "LZMA=1".)
-if [ -n "${LZMA}" ]; then
-  echo "Check LZMA compression support..."
-  if [ -d "szip" ]; then
-    echo "  Check for LZMA header file in szip/ directory..."
-    if [ -f "szip/LzmaDec.h" ]; then
-      cat > conftest.c << _EOF_
-#include "szip/LzmaDec.h"
-int main()
-{
-   typedef int zoff_t;
-#ifndef LZMA_SUPPORT
-   forget it
-#endif
-   return 0;
-}
-_EOF_
-      $CC_TST $CFLAGS -DLZMA_SUPPORT -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        LIB_LZMA="${PROD}/liblzma.a"
-        CFLAGS_TST="${CFLAGS_TST} -DLZMA_SUPPORT"
-        if [ $lprod -eq 0 ]; then
-          lprod=1
-          LFLAGS1="${LFLAGS1} -L${PROD}"
-        fi
-        LFLAGS2="${LFLAGS2} -llzma"
-        echo "-- Including LZMA compression support."
-        echo "-- Building liblzma.a in ${PROD}."
-      else
-        echo "^^ LZMA test build failed. Check szip/ directory."
-        echo "^^ Unable to include LZMA compression support."
-      fi
-    else
-      echo "^^ LZMA source code not found in szip/ directory."
-      echo "^^ Unable to include LZMA compression support."
-    fi
-  else
-    echo "^^ Directory szip/ not found."
-    echo "^^ Unable to include LZMA compression support."
-  fi
-else
-  echo "No LZMA compression."
-fi
-
-#------------------------------------------------------------------------------
-# F'') Configure optional PPMd compression library.
-#------------------------------------------------------------------------------
-# PPMd compression.  (User must request: "PPMD=1".)
-if [ -n "${PPMD}" ]; then
-  echo "Check PPMd compression support..."
-  if [ -d "szip" ]; then
-    echo "  Check for PPMd header file in szip/ directory..."
-    if [ -f "szip/Ppmd.h" ]; then
-      cat > conftest.c << _EOF_
-#include "szip/Ppmd.h"
-int main()
-{
-   typedef int zoff_t;
-#ifndef PPMD_SUPPORT
-   forget it
-#endif
-   return 0;
-}
-_EOF_
-      $CC_TST $CFLAGS -DPPMD_SUPPORT -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        LIB_PPMD="${PROD}/libppmd.a"
-        CFLAGS_TST="${CFLAGS_TST} -DPPMD_SUPPORT"
-        if [ $lprod -eq 0 ]; then
-          lprod=1
-          LFLAGS1="${LFLAGS1} -L${PROD}"
-        fi
-        LFLAGS2="${LFLAGS2} -lppmd"
-        echo "-- Including PPMd compression support."
-        echo "-- Building libppmd.a in ${PROD}."
-      else
-        echo "^^ PPMd test build failed.  Check szip/ directory."
-        echo "^^ Unable to include PPMd compression support."
-      fi
-    else
-      echo "^^ PPMd source code not found in szip/ directory."
-      echo "^^ Unable to include PPMd compression support."
-    fi
-  else
-    echo "^^ Directory szip/ not found."
-    echo "^^ Unable to include PPMd compression support."
-  fi
-else
-  echo "No PPMd compression."
-fi
-
-#------------------------------------------------------------------------------
-# G) Configure optional BZIP2 compression library.
-#------------------------------------------------------------------------------
-# BZIP2 compression.  (User must request: "IZ_BZIP2=bzip2_dir".)
-if [ -n "${IZ_BZIP2}" ]; then
-  echo "Check BZIP2 compression support..."
-  if [ -d "${IZ_BZIP2}" ]; then
-    echo "  Check for BZIP2 header file in IZ_BZIP2 (${IZ_BZIP2})..."
-    if [ -f "${IZ_BZIP2}/bzlib.h" ]; then
-      if [ "${IZ_BZIP2}" = "bzip2" ]; then
-        echo "  BZIP2 files found within UnZip tree."
-        echo "  Check for BZIP2 compiled library in IZ_BZIP2 (${IZ_BZIP2})..."
-        if [ -f "${IZ_BZIP2}/libbz2.a" ]; then
-#
-#         A bzip2 library built with BZ_NO_STDIO should have an
-#         unresolved external, "bz_internal_error".  The default,
-#         full-function library will not mention it.
-#
-          nm ${IZ_BZIP2}/libbz2.a | grep bz_internal_error >/dev/null
-          status=$?
-          if [ $status -eq 0 ]; then
-            echo "    Found BZIP2 BZ_NO_STDIO library: ${IZ_BZIP2}/libbz2.a"
-            LIB_BZ="${IZ_BZIP2}/libbz2.a"
-            CFLAGS_TST="${CFLAGS_TST} -I${IZ_BZIP2} -DBZIP2_SUPPORT"
-            LFLAGS1="${LFLAGS1} -L${IZ_BZIP2}"
-            LFLAGS2="${LFLAGS2} -lbz2"
-            echo "-- Including BZIP2 compression support."
-            echo "-- Using libbz2.a in IZ_BZIP2 (${IZ_BZIP2})."
-          else
-            echo "    -----------------------------------------------------"
-            echo "    Found BZIP2 library, ${IZ_BZIP2}/libbz2.a, but the"
-            echo "      library was not compiled with BZ_NO_STDIO."
-            echo "    ERROR: This (default) variant of bzip2 library is NOT"
-            echo "      supported with UnZip because of its incompatible"
-            echo "      error handling."
-            echo "      Please see the UnZip installation instructions in"
-            echo "      the INSTALL text file."
-            echo "    -----------------------------------------------------"
-            echo "  ^^ Incompatible BZIP2 library within the UnZip tree."
-            echo "^^ Unable to include BZIP2 compression support."
-          fi
-        else
-          echo "  Check for BZIP2 Makefile in I_BZIP2 (${IZ_BZIP2})..."
-          if [ -f "${IZ_BZIP2}/Makefile" ]; then
-            LIB_BZ="${IZ_BZIP2}/libbz2.a"
-            CFLAGS_TST="${CFLAGS_TST} -I${IZ_BZIP2} -DBZIP2_SUPPORT"
-            LFLAGS1="${LFLAGS1} -L${IZ_BZIP2}"
-            LFLAGS2="${LFLAGS2} -lbz2"
-            echo "-- Including BZIP2 compression support."
-            echo "-- Building libbz2.a in ${IZ_BZIP2}."
-          else
-            echo "  ^^ Incomplete BZIP2 support within the UnZip tree."
-            echo "^^ Unable to include BZIP2 compression support."
-          fi
-        fi
-      else
-        echo "  BZIP2 support is outside the UnZip tree."
-        echo "  Check for BZIP2 compiled library in IZ_BZIP2 (${IZ_BZIP2})."
-        if [ -f "${IZ_BZIP2}/libbz2.a" ]; then
-#
-#         A bzip2 library built with BZ_NO_STDIO should have an
-#         unresolved external, "bz_internal_error".  The default,
-#         full-function library will not mention it.
-#
-          nm ${IZ_BZIP2}/libbz2.a | grep bz_internal_error >/dev/null
-          status=$?
-          if [ $status -eq 0 ]; then
-            echo "    Found BZIP2 BZ_NO_STDIO library: ${IZ_BZIP2}/libbz2.a"
-            LIB_BZ="${IZ_BZIP2}/libbz2.a"
-            CFLAGS_TST="${CFLAGS_TST} -I${IZ_BZIP2} -DBZIP2_SUPPORT"
-            LFLAGS1="${LFLAGS1} -L${IZ_BZIP2}"
-            LFLAGS2="${LFLAGS2} -lbz2"
-            echo "-- Including BZIP2 compression support."
-            echo "-- Using libbz2.a in IZ_BZIP2 (${IZ_BZIP2})."
-          else
-            echo "    -----------------------------------------------------"
-            echo "    Found BZIP2 library, ${IZ_BZIP2}/libbz2.a, but the"
-            echo "      library was not compiled with BZ_NO_STDIO."
-            echo "    ERROR: This (default) variant of bzip2 library is NOT"
-            echo "      supported with UnZip because of its incompatible"
-            echo "      error handling."
-            echo "      Please see the UnZip installation instructions in"
-            echo "      the INSTALL text file."
-            echo "    -----------------------------------------------------"
-            echo "  ^^ Incompatible BZIP2 library outside the UnZip tree."
-            echo "^^ Unable to include BZIP2 compression support."
-          fi
-        else
-          echo "  ^^ ${IZ_BZIP2}/libbz2.a not found (IZ_BZIP2 != \"bzip2\")."
-          echo "  ^^ Incomplete BZIP2 support outside the UnZip tree."
-          echo "^^ Unable to include BZIP2 compression support."
-        fi
-      fi
-    else
-      echo "  -- ${IZ_BZIP2}/bzlib.h not found."
-      echo "  Check if OS already has BZIP2 library available..."
-      cat > conftest.c << _EOF_
-#include "bzlib.h"
-int main()
-{
-  bz_stream strm;
-  BZ2_bzCompressEnd(&strm);
-  return 0;
-}
-_EOF_
-      $CC_TST $CFLAGS -o conftest conftest.c -lbz2 >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        echo "  -- OS supports BZIP2 - linking in bzip2."
-        CFLAGS_TST="${CFLAGS_TST} -DBZIP2_SUPPORT"
-        LFLAGS2="${LFLAGS2} -lbz2"
-        echo "-- Including OS BZIP2 compression support."
-      else
-        echo "  ^^ Neither bzlib.h nor libbz2.a was found."
-        echo "^^ Unable to include BZIP2 compression support."
-      fi
-    fi
-  else
-    echo "^^ Directory ${IZ_BZIP2} not found."
-    echo "^^ Unable to include BZIP2 compression support."
-  fi
-else
-  echo "No BZIP2 compression."
-fi
-
-#------------------------------------------------------------------------------
-# H) Configure optional ZLIB compression library.
-#------------------------------------------------------------------------------
-# ZLIB compression.  (User must request: "IZ_ZLIB=zlib_dir".)
-if [ -n "${IZ_ZLIB}" ]; then
-  echo "Check ZLIB deflate compression support..."
-  if [ -d "${IZ_ZLIB}" ]; then
-    echo "  Check for ZLIB header file in IZ_ZLIB (${IZ_ZLIB})."
-    if [ -f "${IZ_ZLIB}/zlib.h" ]; then
-      if [ "${IZ_ZLIB}" = "zlib" ]; then
-        echo "  ZLIB found within the UnZip tree."
-        echo "  Check for zlib compiled library in IZ_ZLIB (${IZ_ZLIB})"
-        if [ -f "${IZ_ZLIB}/libz.a" ]; then
-            LIB_Z="${IZ_ZLIB}/libz.a"
-            CFLAGS_TST="${CFLAGS_TST} -I${IZ_ZLIB} -DUSE_ZLIB"
-            LFLAGS1="${LFLAGS1} -L${IZ_ZLIB}"
-            LFLAGS2="${LFLAGS2} -lz"
-          echo "-- Including ZLIB deflate compression support."
-          echo "-- Using libz.a in IZ_ZLIB (${IZ_ZLIB})."
-        else
-          echo "  Check for ZLIB Makefile in IZ_ZLIB (${IZ_ZLIB})..."
-          if [ -f "${IZ_ZLIB}/Makefile" ]; then
-            LIB_Z="${IZ_ZLIB}/libz.a"
-            CFLAGS_TST="${CFLAGS_TST} -I${IZ_ZLIB} -DUSE_ZLIB"
-            LFLAGS1="${LFLAGS1} -L${IZ_ZLIB}"
-            LFLAGS2="${LFLAGS2} -lz"
-            echo "-- Including ZLIB deflate compression support."
-            echo "-- Building libz.a in ${IZ_ZLIB}."
-          else
-            echo "  ^^ Incomplete ZLIB support within the UnZip tree."
-            echo "^^ Unable to include ZLIB compression support."
-          fi
-        fi
-      else
-        echo "  ZLIB support is outside the UnZip tree."
-        echo "  Check for ZLIB compiled library in IZ_ZLIB (${IZ_ZLIB})..."
-        if [ -f "${IZ_ZLIB}/libz.a" ]; then
-          echo "    Found ZLIB library: ${IZ_ZLIB}/libz.a"
-          LIB_Z="${IZ_ZLIB}/libz.a"
-          CFLAGS_TST="${CFLAGS_TST} -I${IZ_ZLIB} -DUSE_ZLIB"
-          LFLAGS1="${LFLAGS1} -L${IZ_ZLIB}"
-          LFLAGS2="${LFLAGS2} -lz"
-          echo "-- Including ZLIB deflate compression support."
-          echo "-- Using libz.a in IZ_ZLIB (${IZ_ZLIB})."
-        else
-          echo "  ^^ ${IZ_ZLIB}/libz.a not found (IZ_ZLIB != \"zlib\")."
-          echo "  ^^ Incomplete ZLIB support outside the UnZip tree."
-          echo "^^ Unable to include ZLIB compression support."
-        fi
-      fi
-    else
-      echo "  -- ${IZ_ZLIB}/zlib.h not found"
-      echo "  Check if OS already has ZLIB library available..."
-      cat > conftest.c << _EOF_
-#include "zlib.h"
-int main()
-{
-  z_streamp strm;
-  inflateReset(&strm);
-  return 0;
-}
-_EOF_
-      $CC_TST $CFLAGS -o conftest conftest.c -lz >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        echo "  -- OS supports ZLIB - linking in zlib."
-        CFLAGS_TST="${CFLAGS_TST} -DUSE_ZLIB"
-        LFLAGS2="${LFLAGS2} -lz"
-        echo "-- Including OS ZLIB compression support."
-      else
-        echo "  ^^ Neither zlib.h nor libz.a was found."
-        echo "^^ Unable to include ZLIB compression support."
-      fi
-    fi
-  else
-    echo "^^ Directory ${IZ_ZLIB} not found."
-    echo "^^ Unable to include ZLIB compression support."
-  fi
-else
-  echo "ZLIB not used."
-fi
-
-#------------------------------------------------------------------------------
-# H') Configure UnZip object library.
-#------------------------------------------------------------------------------
-# UnZip object library.  (User must request: "LIBUNZIP=1".)
-if [ -n "${LIBUNZIP}" ]; then
-  LIB_UNZIP="${PROD}/libizunzip.a"
-  echo "-- Building UnZip object library (${LIB_UNZIP})"
-fi
-
-#------------------------------------------------------------------------------
-# I) Common compiler feature checks.
-#------------------------------------------------------------------------------
-
-# Feature macro common conventions:
-#
-# HAVE_HEADER_H
-# - Indicates that <header.h> is available.
-# - Preferred for new header tests
-#
-# HAVE_DIR_HEADER_H
-# - Indicates that <dir/header.h> is available.
-# - Preferred for new header tests
-#
-# NO_HEADER_H
-# - Indicates that <header.h> is not available.
-#
-# NO_DIR_HEADER_H
-# - Indicates that <dir/header.h> is not available.
-#
-# FUNCTION=function
-# - Indicates that function() is available.
-# - If not available, UnZip provides a replacement as follows:
-#   - unzpriv.h:
-#     - Replacement FUNCTION macro defined to declare replacement function.
-#     - NEED_FUNCTION defined to enable compile of replacment function.
-#   - fileio.c:
-#     - Defines body of the replacement function, but this is compiled only
-#       when NEED_FUNCTION is defined.
-# - All code references to function() must be coded as FUNCTION()
-#
-# NO_FUNCTION
-# - Indicates that function() is not available.
-# - No replacement is provided for these cases.
-
-
-# Disable ANSI function prototypes where not supported.
-echo 'Check for prototypes...'
-echo "int main(int argc, char *argv[]) { return 0; }" > conftest.c
-$CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNO_PROTO"
-
-# Check if compiler supports "const" keyword.
-# - Handles mips cc and non ANSI compilers.
-# - Does it need more?
-echo 'Check the handling of const...'
-cat > conftest.c << _EOF_
-typedef int charset[2];
-int main()
-{
-  const charset x;
-  const char *foo;
-  return 0;
-}
-_EOF_
-$CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNO_CONST"
-
-# Check for size_t type.
-echo 'Check for size_t...'
-cat > conftest.c << _EOF_
-#include <sys/types.h>
-int main()
-{
-  size_t s;
-  return 0;
-}
-_EOF_
-$CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNO_SIZE_T"
-
-# Check for off_t type.
-echo 'Check for off_t...'
-cat > conftest.c << _EOF_
-#include <sys/types.h>
-int main()
-{
-  off_t s;
-  return 0;
-}
-_EOF_
-$CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNO_OFF_T"
-
-# Check for signed char type.
-echo 'Check for signed char type...'
-cat > conftest.c << _EOF_
-int main()
-{
-  signed char s;
-  return 0;
-}
-_EOF_
-$CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNO_SIGNED_CHAR"
-
-# Check for Large File Support (required for ZIP64).
-# - Now we set the 64-bit file environment and check the size of off_t.
-echo 'Check for Large File Support...'
-cat > conftest.c << _EOF_
-#define _LARGEFILE_SOURCE       /* Some OSes need this for fseeko().     */
-#define _LARGEFILE64_SOURCE
-#define _FILE_OFFSET_BITS 64    /* Select default interface as 64 bit.   */
-#define _LARGE_FILES            /* Some OSes need this for 64-bit off_t. */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <stdio.h>
-int main()
-{
-  off_t offset;
-  struct stat s;
-  /* See if have 64-bit off_t. */
-  if (sizeof(offset) < 8) {
-    printf("  off_t is %d bytes\n", sizeof(off_t));
-    return 1;
-  }
-  /* See if have 64-bit stat. */
-  if (sizeof(s.st_size) < 8) {
-    printf("  s.st_size is %d bytes\n", sizeof(s.st_size));
-    return 2;
-  }
-  printf("  off_t is %d bytes\n", sizeof(off_t));
-  printf("  s.st_size is %d bytes\n", sizeof(s.st_size));
-  return 3;
-}
-_EOF_
-$CC_TST $CFLAGS -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-if [ $status -ne 0 ]; then
-  echo '-- No Large File Support.'
-else
-  ./conftest
-  status=$?
-  if [ $status -eq 1 ]; then
-    echo '-- No Large File Support - no 64-bit off_t.'
-  elif [ $status -eq 2 ]; then
-    echo '-- No Large File Support - no 64-bit stat.'
-  elif [ $status -eq 3 ]; then
-    echo '-- Yes, we have Large File Support.'
-    CFLAGS_TST="${CFLAGS_TST} -DLARGE_FILE_SUPPORT"
-    CFLAGS_TST_BZ="${CFLAGS_TST_BZ} -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
-  else
-    echo "-- No Large File Support - conftest returned $status."
-  fi
-fi
-
-# Check size of UIDs and GIDs.
-# (Now zip stores variable size UIDs/GIDs using a new extra field.  This
-# tests if this OS uses 16-bit UIDs/GIDs and so if the old 16-bit storage
-# should also be used for backward compatibility.)
-
-echo 'Check size of UIDs and GIDs...'
-cat > conftest.c << _EOF_
-#define _LARGEFILE_SOURCE       /* Some OSes need this for fseeko       */
-#define _LARGEFILE64_SOURCE
-#define _FILE_OFFSET_BITS 64    /* Select default interface as 64 bit   */
-#define _LARGE_FILES            /* Some OSes need this for 64-bit off_t */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <stdio.h>
-int main( )
-{
-  struct stat s;
-
-#if !defined(__MVS__) && !defined(__VM__)
-  /*
-   2011/09/02 [AD] Comment out: Problem reported to IBM
-                   - Over-optimized trivial program fails during printf()
-   */
-  printf("  s.st_uid is %u bytes\n", sizeof(s.st_uid));
-  printf("  s.st_gid is %u bytes\n", sizeof(s.st_gid));
-#endif
-
-  /* See if have 16-bit UID. */
-  if (sizeof(s.st_uid) != 2) {
-    return 1;
-  }
-  /* See if have 16-bit GID. */
-  if (sizeof(s.st_gid) != 2) {
-    return 2;
-  }
-  return 3;
-}
-_EOF_
-$CC_TST $CFLAGS -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-if [ $status -ne 0 ]; then
-  errmes="-- UID/GID test failed on compile"
-  errmes="${errmes} - disabling old 16-bit UID/GID support"
-  echo "${errmes}"
-  CFLAGS_TST="${CFLAGS_TST} -DIZ_HAVE_UXUIDGID"
-else
-  ./conftest
-  status=$?
-  if [ $status -eq 1 ]; then
-    echo '-- UID not 2 bytes - enabling "ux" UID/GID support.'
-    CFLAGS_TST="${CFLAGS_TST} -DIZ_HAVE_UXUIDGID"
-  elif [ $status -eq 2 ]; then
-    echo '-- GID not 2 bytes - enabling "ux" UID/GID support.'
-    CFLAGS_TST="${CFLAGS_TST} -DIZ_HAVE_UXUIDGID"
-  elif [ $status -eq 3 ]; then
-    echo '-- 16-bit UIDs and GIDs - keeping old 16-bit UID/GID support.'
-  else
-    errmes="-- Test failed - conftest returned $status."
-    errmes="${errmes} - enabling "ux" UID/GID support"
-    echo "${errmes}"
-    CFLAGS_TST="${CFLAGS_TST} -DIZ_HAVE_UXUIDGID"
-  fi
-fi
-
-# Check for time_t structure.
-echo 'Check for time_t...'
-cat > conftest.c << _EOF_
-#include <sys/types.h>
-#include <time.h>
-int main()
-{
-  time_t t;
-  return 0;
-}
-_EOF_
-$CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNO_TIME_T"
-
-# Check for utime.h header.
-echo 'Check for utime.h...'
-echo "#include <utime.h>" > conftest.c
-$CPP_TST conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -eq 0 ] && CFLAGS_TST="${CFLAGS_TST} -DHAVE_UTIME_H"
-
-# Check for sys/timeb.h header.
-echo 'Check for sys/timeb.h...'
-echo "#include <sys/timeb.h>" > conftest.c
-$CPP_TST conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -eq 0 ] && CFLAGS_TST="${CFLAGS_TST} -DHAVE_SYS_TIMEB_H"
-
-# Check for sys/time.h header and gettimeofday() function.
-echo 'Check for sys/time.h and gettimeofday() needed for entry timing...'
-echo '  Check for sys/time.h...'
-echo "#include <sys/time.h>" > conftest.c
-$CPP_TST conftest.c >/dev/null 2>/dev/null
-status=$?
-if [ $status -ne 0 ]; then
-  echo "-- No sys/time.h - usec timing using gettimeofday() not supported."
-else
-  CFLAGS_TST="${CFLAGS_TST} -DHAVE_SYS_TIME_H"
-  echo '  Check for gettimeofday()...'
-  cat > conftest.c << _EOF_
-#include "stdio.h"
-#include <sys/time.h>
-int main()
-{
-  struct timeval now;
-  unsigned long long usec_time;
-
-  gettimeofday(&now, NULL);
-  usec_time = now.tv_sec * 1000000 + now.tv_usec;
-  return 0;
-}
-_EOF_
-  $CC_TST -o conftest conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -ne 0 ]; then
-    echo "^^ Returned $status - usec timing using gettimeofday() not supported."
-  else
-    echo '-- Enabling usec timing using gettimeofday().'
-    CFLAGS_TST="${CFLAGS_TST} -DENABLE_ENTRY_TIMING"
-  fi
-fi
-
-# Check for optional header files.
-# - If found, define HAVE_HEADER_H macro.
-INCLS='ctype.h wctype.h langinfo.h locale.h'
-for inc in $INCLS
-do
-  echo "Check for ${inc}..."
-  echo "#include <$inc>" > conftest.c
-  $CPP_TST conftest.c >/dev/null 2>/dev/null
-  status=$?
-  [ $status -eq 0 ] && \
-    CFLAGS_TST="${CFLAGS_TST} -DHAVE_`echo $inc | tr '[a-z]./' '[A-Z]__'`"
-done
-
-# This all needs some work.  See note at the top of unzpriv.h.
-
-# Check for wchar.h header.
-echo 'Check for wchar.h...'
-echo "#include <wchar.h>" > conftest.c
-$CPP_TST conftest.c >/dev/null 2>/dev/null
-status=$?
-if [ $status -eq 0 ]; then
-  CFLAGS_TST="${CFLAGS_TST} -DHAVE_WCHAR_H"
-
-  # Realistic check for working wide char library functions.
-  # - Add FUNCTION_NAME='function_name' to flags if found.
-  FUNCS='towupper towlower iswprint'
-  for func in $FUNCS
-  do
-    echo "Check for wide char ${func}..."
-    cat > conftest.c << _EOF_
-#include <stdlib.h>
-#include <stdio.h>
-#ifdef HAVE_CTYPE_H
-# include <ctype.h>
-#endif
-#ifdef HAVE_WCHAR_H
-# include <wchar.h>
-#endif
-#ifdef HAVE_WCTYPE_H
-# include <wctype.h>
-#endif
-int main()
-{
-  int  out;
-  out = $func( 'a' );
-  printf( " out: >0x%X<.\n", out);
-  return (out == 0);
-}
-_EOF_
-    $CC_TST ${CFLAGS} ${CFLAGS_OPT} ${CFLAGS_TST} ${CFLAGS_USR} -o conftest \
-     conftest.c >/dev/null 2>/dev/null
-    status=$?
-    if [ $status -eq 0 ]; then
-      ./conftest >/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CFLAGS_TST="${CFLAGS_TST} -D`echo $func | tr '[a-z]' '[A-Z]'`=$func"
-      fi
-    fi
-  done
-
-  # Check for wide char for Unicode support.
-  iconv_ok=0
-  echo 'Check for wide char Unicode support...'
-  cat > conftest.c << _EOF_
-#include <stdlib.h>
-#include <stdio.h>
-#ifdef HAVE_CTYPE_H
-# include <ctype.h>
-#endif
-#ifdef HAVE_WCHAR_H
-# include <wchar.h>
-#endif
-#ifdef HAVE_WCTYPE_H
-# include <wctype.h>
-#endif
-int main()
-{
-  size_t wsize;
-  wchar_t *wide_string;
-  wchar_t wc = (wchar_t)'a';   /* any old character will do */
-  wchar_t wco;
-  int i;
-
-  if ((wide_string = (wchar_t *)malloc(4 * sizeof(wchar_t))) == NULL) {
-    return 0;
-  }
-
-  /* Get wide string. */
-  wsize = mbstowcs(wide_string, "foo", 3);
-  wide_string[wsize] = (wchar_t) NULL;
-
-  /* Make sure we have everything we need for wide support. */
-  wco = towupper(wc);
-  wco = towlower(wc);
-  i = iswprint(wc);
-
-#ifndef __STDC_ISO_10646__
-  return 1;
-#else
-  printf("  __STDC_ISO_10646__ = %d (yyyymm)\n", __STDC_ISO_10646__);
-  return 2;
-#endif
-}
-_EOF_
-  $CC_TST $CFLAGS -o conftest conftest.c >/dev/null 2>/dev/null
-  status=$?
-  if [ $status -ne 0 ]; then
-    echo '^^ No Unicode (wchar_t) support.'
-  else
-    ./conftest
-    status=$?
-    if [ $status -eq 0 ]; then
-      echo '-- No Unicode wchar_t support - wchar_t allocation error.'
-    elif [ $status -eq 1 ]; then
-      errmes="^^ No Unicode support"
-      echo "${errmes} - wchar_t encoding unspecified, may not be UCS."
-    elif [ $status -eq 2 ]; then
-      echo '-- Have wchar_t with known UCS encoding - enabling Unicode support.'
-      CFLAGS_TST="${CFLAGS_TST} -DUNICODE_SUPPORT -DUNICODE_WCHAR"
-      iconv_ok=1
-    else
-      echo "^^ No Unicode (wchar_t) support - conftest returned $status."
-    fi
-  fi
-fi
-
-# Check for setlocale() support.
-echo "Check for setlocale() support (needed for UNICODE Native check)..."
-cat > conftest.c << _EOF_
-#include <locale.h>
-int main()
-{
-  char *loc = setlocale(LC_CTYPE, "");
-  return 0;
-}
-_EOF_
-$CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-status=$?
-if [ $status -eq 0 ]; then
-  echo '  Have setlocale, can check for charset type.'
-  echo '-- Enabling UTF8-native support.'
-  CFLAGS_TST="${CFLAGS_TST} -DUNICODE_SUPPORT -DUTF8_MAYBE_NATIVE"
-else
-  echo '^^ No Unicode (UTF-8 native) support.'
-  CFLAGS_TST="${CFLAGS_TST} -DNO_SETLOCALE"
-fi
-
-# Configure optional ISO/OEM (iconv) conversion library.
-# (User must request: "ICONV=1", and UNICODE_SUPPORT must be enabled.)
-if [ -n "${ICONV}" ]; then
-  if [ $iconv_ok -eq 0 ]; then
-    echo "^^ No wide Unicode support, so no ISO/OEM (iconv) conversion support."
-  else
-    echo "Check ISO/OEM (iconv) conversion support..."
-    cat > conftest.c << _EOF_
-#include <iconv.h>
-int main()
-{
-#ifndef ICONV_MAPPING
-   forget it
-#endif
-   iconv_t rslt;
-   rslt = iconv_open( "ASCII", "ASCII");
-   return ((rslt == (iconv_t)(-1)) ? -1 : 0);
-}
-_EOF_
-    $CC_TST $CFLAGS -DICONV_MAPPING -c conftest.c >/dev/null 2>/dev/null
-    status=$?
-    if [ $status -eq 0 ]; then
-      # Try linking with no special library.
-      $CC_TST $LFLAGS1 -o conftest conftest.o >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -ne 0 ]; then
-        # That failed, so try linking with libiconv.
-        $CC_TST $LFLAGS1 -liconv -o conftest conftest.o >/dev/null 2>/dev/null
-        status=$?
-        if [ $status -eq 0 ]; then
-          LFLAGS2="${LFLAGS2} -liconv"
-        fi
-      fi
-    fi
-    if [ $status -eq 0 ]; then
-      CFLAGS_TST="${CFLAGS_TST} -DICONV_MAPPING"
-      echo "-- Including ISO/OEM (iconv) conversion support."
-    else
-      echo "^^ Unable to include ISO/OEM (iconv) conversion support."
-    fi
-  fi
-else
-  echo "No ISO/OEM (iconv) conversion support."
-fi
-
-
-# Check for gcc no-builtin flag.
-# - gnu C supports -fno-builtin since version 2
-# - from configure 2.4i (Onno) 2004-12-05
-echo 'Check for gcc no-builtin flag...'
-cat > conftest.c << _EOF_
-int main()
-{
-#if __GNUC__ >= 2
-   return 0;
-#else
-   forget it
-#endif
-}
-_EOF_
-$CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -eq 0 ] && BIF_TST="${BIF_TST} -fno-builtin"
-
-# Check for missing functions.
-# - add NO_'function_name' to flags if missing.
-FUNCS='chmod chown fchmod fchown lchown localtime_r mktemp mktime mkstemp'
-FUNCS="${FUNCS} nl_langinfo rename rmdir strchr strrchr"
-#echo "Check for missing functions..."
-for func in $FUNCS
-do
-  echo "Check for ${func}()..."
-  echo "int main(){ $func(); return 0; }" > conftest.c
-  $CC_TST $CFLAGS $BIF_TST -o conftest conftest.c >/dev/null 2>/dev/null
-  status=$?
-  [ $status -ne 0 ] && \
-    CFLAGS_TST="${CFLAGS_TST} -DNO_`echo $func | tr '[a-z]' '[A-Z]'`"
-done
-
-# Check (very seriously) for a working lchmod().
-# On GNU/Linux (Clang, GCC) look for a # compile-time warning like
-# "lchmod is not implemented and will always fail".
-echo 'Check for lchmod()...'
-temp_file="/tmp/unzip_test_$$"
-temp_link="link_$$"
-( echo '#include <unistd.h>' ; \
-  echo "int main() { lchmod(\"${temp_file}\", 0666); }" \
-) > conftest.c
-ln -s "${temp_link}" "${temp_file}" && \
-$CC_TST $CFLAGS $BIF_TST -o conftest conftest.c >/dev/null 2> conftest.err
-status=$?
-if [ $status -eq 0 ]; then
-  grep implemented < conftest.err > /dev/null 2> /dev/null
-  status=$?
-  [ $status -eq 0 ] && status=666
-fi
-if [ $status -eq 0 ]; then
-  ./conftest
-  status=$?
-fi
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNO_LCHMOD"
-rm -f "${temp_file}" conftest.err
-
-# Check for memset().
-echo 'Check for memset()...'
-echo "int main(){ char k; memset(&k,0,0); return 0; }" > conftest.c
-$CC_TST $CFLAGS -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DZMEM"
-
-# Check for memmove().
-echo 'Check for memmove()...'
-cat > conftest.c << _EOF_
-#include <string.h>
-int main() { int a; int b = 0; memmove( &a, &b, sizeof( a)); return a; }
-_EOF_
-$CC_TST $CFLAGS -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNEED_MEMMOVE"
-
-# Check for errno declaration.
-echo 'Check for errno declaration...'
-cat > conftest.c << _EOF_
-#include <errno.h>
-main()
-{
-  errno = 0;
-  return 0;
-}
-_EOF_
-$CC_TST $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNO_ERRNO"
-
-# Check for labs().
-echo 'Check for labs()...'
-cat > conftest.c << _EOF_
-#include <stdlib.h>
-int main() { labs( 0); return 0; }
-_EOF_
-$CC_TST $CFLAGS -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNEED_LABS"
-
-# Check for strerror().
-echo 'Check for strerror()...'
-cat > conftest.c << _EOF_
-#include <string.h>
-int main() { strerror( 0); return 0; }
-_EOF_
-$CC_TST $CFLAGS -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNEED_STRERROR"
-
-# Check for directory libraries.
-echo 'Check for directory libraries...'
-cat > conftest.c << _EOF_
-int main() { return closedir(opendir(".")); }
-_EOF_
-$CC_TST $CFLAGS -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-if [ $status -ne 0 ]; then
-  OPT=""
-  LIBS='ndir dir ucb bsd BSD PW x dirent'
-  for lib in $LIBS
-  do
-    $CC_TST $CFLAGS -o conftest conftest.c -l$lib >/dev/null 2>/dev/null
-    status=$?
-    [ $status -eq 0 ] && OPT=-l$lib && break
-  done
-  if [ ${OPT} ]; then
-    LFLAGS="${LFLAGS2} ${OPT}"
-  else
-    CFLAGS_TST="${CFLAGS_TST} -DNO_DIR"
-  fi
-fi
-
-# Check for readlink().
-# - Dynix/ptx 1.3 needed this.
-echo 'Check for readlink()...'
-echo "int main(){ return readlink(); }" > conftest.c
-$CC_TST $CFLAGS -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-if [ $status -ne 0 ]; then
-  $CC_TST $CFLAGS -o conftest conftest.c -lseq >/dev/null 2>/dev/null
-  status=$?
-  [ $status -eq 0 ] && LFLAGS2="${LFLAGS2} -lseq"
-fi
-
-# Check for directory header.
-echo 'Check for directory header file...'
-OPT=""
-INCLS='dirent.h sys/ndir.h ndir.h sys/dir.h'
-for inc in $INCLS
-do
-  echo "#include <$inc>" > conftest.c
-  $CPP_TST conftest.c >/dev/null 2>/dev/null
-  status=$?
-  [ $status -eq 0 ] && OPT="-DHAVE_`echo $inc | tr '[a-z]./' '[A-Z]__'`" \
-    && break
-done
-CFLAGS_TST="${CFLAGS_TST} ${OPT}"
-
-# Check for sys/param.h.
-echo 'Check for sys/param.h...'
-echo "#include <sys/param.h>" > conftest.c
-$CPP_TST conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNO_PARAM_H"
-
-# Check for nonexistent header files.
-# - If not found, define NO_HEADER symbol.
-# FIX_ME: Remove langinfo.h after all NO_LANGINFO uses removed.
-# FIX_ME: Move some of these (langinfo.h + ?) to HAVE_.
-echo 'Check for nonexistent header files...'
-INCLS='stdlib.h stddef.h stdint.h unistd.h fcntl.h string.h langinfo.h'
-for inc in $INCLS
-do
-  echo "#include <$inc>" > conftest.c
-  $CPP_TST conftest.c >/dev/null 2>/dev/null
-  status=$?
-  [ $status -ne 0 ] && \
-    CFLAGS_TST="${CFLAGS_TST} -DNO_`echo $inc | tr '[a-z]./' '[A-Z]__'`"
-done
-
-# Check for terminal I/O header file.
-echo 'Check for terminal I/O header file...'
-OPT=""
-INCLS='termios.h termio.h sgtty.h'
-for inc in $INCLS
-do
-  echo "#include <$inc>" > conftest.c
-  $CPP_TST conftest.c >/dev/null 2>/dev/null
-  status=$?
-  [ $status -eq 0 ] && OPT="-DHAVE_`echo $inc | tr '[a-z]./' '[A-Z]__'`" \
-    && break
-done
-CFLAGS_TST="${CFLAGS_TST} ${OPT}"
-
-# Check for MBCS header files.
-echo 'Check for MBCS header files...'
-OPT=""
-INCLS='mbstr.h mbstring.h mbctype.h'
-for inc in $INCLS
-do
-  echo "#include <$inc>" > conftest.c
-  $CPP_TST conftest.c >/dev/null 2>/dev/null
-  status=$?
-  [ $status -eq 0 ] && OPT="-DHAVE_`echo $inc | tr '[a-z]./' '[A-Z]__'`" \
-    && break
-done
-CFLAGS_TST="${CFLAGS_TST} ${OPT}"
-
-# Check for MBCS support.
-echo 'Check for MBCS (multi-byte character) support...'
-cat > conftest.c << _EOF_
-#include <stdlib.h>
-#include <stdio.h>
-#ifdef HAVE_CTYPE_H
-# include <ctype.h>
-#endif
-#ifdef HAVE_WCHAR_H
-# include <wchar.h>
-#endif
-#ifdef HAVE_WCTYPE_H
-# include <wctype.h>
-#endif
-#ifdef HAVE_MBSTRING_H
-# include <mbstring.h>
-#endif
-int main()
-{
-  char *tst;
-  tst = "Hallo";
-  return mblen(tst, MB_CUR_MAX);
-}
-_EOF_
-$CC_TST ${CFLAGS} -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-if [ $status -ne 0 ]; then
-  echo "^^ No MBCS support."
-  CFLAGS_TST="${CFLAGS_TST} -DNO_MBCS"
-else
-  echo "-- Have MBCS support."
-  CFLAGS_TST="${CFLAGS_TST} -D_MBCS"
-
-  # Realistic check for working MBCS library functions.
-  # - Add FUNCTION_NAME='function_name' to flags if found.
-  FUNCS='mbschr mbsrchr'
-  for func in $FUNCS
-  do
-    echo "Check for MBCS ${func}()..."
-    cat > conftest.c << _EOF_
-#include <stdlib.h>
-#ifdef HAVE_MBSTR_H
-# include <mbstr.h>
-#endif
-int main()
-{
-  char *tst;
-  tst = $func( "abc", 'b');
-  printf( "  $func(\"abc\", 'b') =  \"%s\"\n",  tst);
-  return (tst == NULL);
-}
-_EOF_
-    $CC_TST ${CFLAGS} ${CFLAGS_OPT} ${CFLAGS_TST} ${CFLAGS_USR} -o conftest \
-      conftest.c >/dev/null 2>/dev/null
-    status=$?
-    if [ $status -eq 0 ]; then
-      ./conftest >/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CFLAGS_TST="${CFLAGS_TST} -D`echo $func | tr '[a-z]' '[A-Z]'`=$func"
-      fi
-    fi
-  done
-fi
-
-# Needed for AIX (and others ?) when mmap is used.
-echo 'Check for valloc()...'
-cat > conftest.c << _EOF_
-main()
-{
-#ifdef MMAP
-    valloc();
-#endif
-}
-_EOF_
-$CC_TST ${CFLAGS} -c conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -ne 0 ] && CFLAGS_TST="${CFLAGS_TST} -DNO_VALLOC"
-
-
-#------------------------------------------------------------------------------
-# J) Perform OS-specific tests.
-#------------------------------------------------------------------------------
-
-# Check for OS-specific flags.
-echo 'Check for OS-specific flags...'
-if [ -n "${UNAME_S}" ]; then
-  case "${UNAME_S}" in
-
-    OSF1|ULTRIX)
-      echo 'Check for -Olimit option...'
-      echo "int main() { return 0;}" > conftest.c
-      $CC_TST ${CFLAGS} -Olimit 1000 -o conftest conftest.c \
-       >/dev/null 2>/dev/null
-      status=$?
-      [ $status -eq 0 ] && CFLAGS_TST="${CFLAGS_TST} -Olimit 1000"
-      ;;
-
-    Darwin)
-      # Have (and user wants) extended attribute support?  (OS X >= 10.4?)
-      cat > conftest.c << _EOF_
-#include <sys/xattr.h>
-int main()
-{
-#if defined( NO_APPLE_XATTR) || !defined( XATTR_NOFOLLOW)
-   bad code
-#endif
-   return 0;
-}
-_EOF_
-      $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-      status=$?
-      if [ $status -eq 0 ]; then
-        CC_TST="${CC_TST} -DAPPLE_XATTR"
-        CFLAGS_TST="${CFLAGS_TST} -DAPPLE_XATTR"
-      fi
-      ;;
-  esac
-elif [ -n "${UNAME_X}" ]; then
-# SCO shared library check.
-  echo "int main() { return 0;}" > conftest.c
-  $CC_TST $CFLAGS -o conftest conftest.c -lc_s -nointl >/dev/null 2>/dev/null
-  status=$?
-  [ $status -eq 0 ] && LFLAGS2="-lc_s -nointl"
-else
-  # No explicit identification.  Test for files/directories.
-  if [ -f /usr/bin/hostinfo ]; then
-    if /usr/bin/hostinfo | grep NeXT >/dev/null; then
-      CFLAGS_TST="${CFLAGS_TST} -posix"
-      LFLAGS1="${LFLAGS1} -posix -object"
-    fi
-# XXX ATT6300, Cray.
-  elif [ -f /xenix ]; then
-    if echo "${UNAME_P}" | grep 286 >/dev/null; then
-      CFLAGS_TST="${CFLAGS_TST} -LARGE -Mel2 -DMEDIUM_MEM -DWSIZE=16384"
-      CFLAGS_TST="${CFLAGS_TST} -DNO_VOID"
-      LFLAGS1="${LFLAGS1} -LARGE -Mel2"
-    fi
-  fi
-fi
-
-#------------------------------------------------------------------------------
-# K) Configure system-specific resources.
-#------------------------------------------------------------------------------
-
-# Check for /usr/local/bin.
-echo 'Check for /usr/local/bin...'
-[ -d /usr/local/bin ] && BINDIR='/usr/local/bin'
-
-# Check for /usr/local/man.
-echo 'Check for /usr/local/man...'
-[ -d /usr/man/manl ]       && MANDIR='/usr/man/manl'
-[ -d /usr/local/man/manl ] && MANDIR='/usr/local/man/manl'
-[ -d /usr/local/man/man1 ] && MANDIR='/usr/local/man/man1'; MANEXT='.1'
-
-# Check for symbolic links.
-echo 'Check for symbolic links...'
-ln -s /dev/null null >/dev/null 2>/dev/null || LN=ln
-
-
-#------------------------------------------------------------------------------
-# L) Generate system identification.
-#------------------------------------------------------------------------------
-
-if [ -n "${UNAME_S}" ]; then
-  CFLAGS_TST="${CFLAGS_TST} -DUNAME_S='\\\"${UNAME_S}\\\"'"
-fi
-
-if [ -n "${UNAME_V}" ]; then
-  CFLAGS_TST="${CFLAGS_TST} -DUNAME_V='\\\"${UNAME_V}\\\"'"
-fi
-
-if [ -n "${UNAME_R}" ]; then
-  CFLAGS_TST="${CFLAGS_TST} -DUNAME_R='\\\"${UNAME_R}\\\"'"
-fi
-
-if [ -n "${UNAME_O}" ]; then
-  CFLAGS_TST="${CFLAGS_TST} -DUNAME_O='\\\"${UNAME_O}\\\"'"
-fi
-
-if [ -n "${UNAME_M}" ]; then
-  CFLAGS_TST="${CFLAGS_TST} -DUNAME_M='\\\"${UNAME_M}\\\"'"
-fi
-
-if [ -n "${UNAME_P}" ]; then
-  CFLAGS_TST="${CFLAGS_TST} -DUNAME_P='\\\"${UNAME_P}\\\"'"
-fi
-
-if [ -n "${SIZER_V}" ]; then
-  CFLAGS_TST="${CFLAGS_TST} -DSIZER_V='\\\"${SIZER_V}\\\"'"
-fi
-
-
-#------------------------------------------------------------------------------
-# M) Additional compiler command options.
-#------------------------------------------------------------------------------
-
-# Check validity of -Wno-format-security (for modern GCC).
-CF_TEST='-Wno-format-security'
-echo "Check ${CF_TEST}..."
-cat > conftest.c << _EOF_
-int main() { return 0; }
-_EOF_
-${CC_TST} ${CFLAGS} ${CF_TEST} -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -eq 0 ] && CFLAGS_TST="${CFLAGS_TST} ${CF_TEST}"
-
-# Check validity of -Wno-format-nonliteral (for Clang).
-CF_TEST='-Wno-format-nonliteral'
-echo "Check ${CF_TEST}..."
-cat > conftest.c << _EOF_
-int main() { return 0; }
-_EOF_
-${CC_TST} ${CFLAGS} ${CF_TEST} -o conftest conftest.c >/dev/null 2>/dev/null
-status=$?
-[ $status -eq 0 ] && CFLAGS_TST="${CFLAGS_TST} ${CF_TEST}"
-
-
-# Remove work files from configuration tests.
-rm -f a.out conftest.c conftest.o conftest.err conftest.lst conftest null
-
-
-#------------------------------------------------------------------------------
-# Finalize the configuration values.
-#------------------------------------------------------------------------------
-
-# Add optimization (and listing) flags to initial C flags.
-if [ -n "${CFLAGS_OPT}" ]; then
-  CFLAGS="${CFLAGS} ${CFLAGS_OPT}"
-  CFLAGS_BZ="${CFLAGS_BZ} ${CFLAGS_OPT}"
-fi
-
-# Add standard bzip2 configuration flags.
-CFLAGS_BZ="${CFLAGS_BZ} -DBZ_NO_STDIO"
-
-# Add test configuration flags.
-if [ -n "${CFLAGS_TST}" ]; then
-  CFLAGS="${CFLAGS} ${CFLAGS_TST}"
-fi
-if [ -n "${CFLAGS_TST_BZ}" ]; then
-  CFLAGS_BZ="${CFLAGS_BZ} ${CFLAGS_TST_BZ}"
-fi
-
-# Add user override flags.
-if [ -n "${CFLAGS_USR}" ]; then
-  CFLAGS="${CFLAGS} ${CFLAGS_USR}"
-fi
-
-# Use listing-specific CC if required.
-if [ -n "${CC_LIST}" ]; then
-  CC="${CC_LIST}"
-  CC_BZ="${CC_LIST}"
-fi
-
-# Use listing-specific LD if required.
-if [ -n "${LD_LIST}" ]; then
-  LD="${LD_LIST}"
-fi
-
-#------------------------------------------------------------------------------
-# Emit the primary configuration values in the $PATH/flags file.
-#------------------------------------------------------------------------------
-echo "CC=\"${CC}\" CF=\"${CFLAGS}\"" \
-     "CC_BZ=\"${CC_BZ}\" CF_BZ=\"${CFLAGS_BZ}\"" \
-     "CPP=\"${CPP}\"" \
-     "AS=\"${AS}\" AF=\"${AFLAGS}\"" \
-     "LD=\"${LD}\" LF1=\"${LFLAGS1}\" LF2=\"${LFLAGS2}\"" \
-     "AR=\"${AR}\" RANLIB=\"${RANLIB}\"" \
-     "LN=\"${LN}\"" \
-     "RM=\"${RM}\"" \
-     "PROD=\"${PROD}\"" \
-     "PORT=\"${PORT}\"" \
-     "LIB_AES_WG=\"${LIB_AES_WG}\"" \
-     "LIB_BZ=\"${LIB_BZ}\"" \
-     "LIB_LZMA=\"${LIB_LZMA}\"" \
-     "LIB_PPMD=\"${LIB_PPMD}\"" \
-     "LIB_UNZIP=\"${LIB_UNZIP}\"" \
-     "LIB_Z=\"${LIB_Z}\"" \
-     "MK_BZ=\"${MK_BZ}\"" \
-     "OSDEP_H=\"${OSDEP_H}\"" \
-     "OSDEP_OCF=\"${OSDEP_OCF}\"" \
-     "OSDEP_OCS=\"${OSDEP_OCS}\"" \
-     "OSDEP_OCU=\"${OSDEP_OCU}\"" \
-     "OSDEP_OS=\"${OSDEP_OS}\"" \
-     "PGMEXT=\"${PGMEXT}\" DLLEXT=\"${DLLEXT}\"" \
-     "BINDIR=\"${BINDIR}\" BINPERMS=\"${BINPERMS}\"" \
-     "MANDIR=\"${MANDIR}\" MANPERMS=\"${MANPERMS}\"" \
-     "MANEXT=\"${MANEXT}\""\
-     >"$PROD"/flags
-
-#------------------------------------------------------------------------------
-# Emit the libbz2 configuration values in the $PATH/flags_bz file.
-#------------------------------------------------------------------------------
-echo "CC=\"${CC_BZ}\" CFLAGS=\"${CFLAGS_BZ}\"" \
-     "AR=\"${AR_BZ}\" RANLIB=\"${RANLIB}\"" \
-     "RM=\"${RM}\"" \
-     >"$PROD"/flags_bz
-echo ""
index 9e0c3ab..e62e7c4 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 #==============================================================================
-# unix/unsafe_prod.sh: Check PROD directory safety.     Revised: 2014-01-21
+# unix/unsafe_prod.sh: Check PROD directory safety.     Revised: 2014-09-29
 #
 # Copyright (c) 2014 Info-ZIP.  All rights reserved.
 #
@@ -20,12 +20,16 @@ fi
 # Return zero, if unsafe.
 unsafe_prod=0
 
+# "." is safe
 if [ "${prod}" = '.' ]; then
   unsafe_prod=1
 fi
 
+# Unsafe: "..", leading "/" or "../", trailing "/..", "/../" anywhere.
 if [ ${unsafe_prod} -eq 0 ]; then
-  echo "${prod}" | grep -e '^/' -e '\.\./' > /dev/null 2>&1
+  echo "${prod}" | \
+   grep -e '^\.\.$' -e '^/' -e '^\.\./' -e '/\.\.$' -e '/\.\./' \
+   > /dev/null 2>&1
   if [ $? -ne 0 ]; then
     unsafe_prod=1
   fi
diff --git a/unzip.c b/unzip.c
index ce6396c..0528ce5 100644 (file)
--- a/unzip.c
+++ b/unzip.c
@@ -1698,8 +1698,10 @@ static struct option_struct far options[] = {
 
   /* UnZip options */
 
-  /* short longopt                 value_type        negatable
+  /*    short   longopt            value_type        negatable
        ID    name */
+    {UZO, "0",  "no-char-set",     o_NO_VALUE,       o_NEGATABLE,
+       '0',  "don't map FAT/NTFS names"},
 # ifdef VMS
     {UZO, "2",  "force-ods2",      o_NO_VALUE,       o_NEGATABLE,
        '2',  "Force ODS2-compliant names."},
@@ -2141,6 +2143,12 @@ int uz_opts(__G__ pargc, pargv)
                 value = NULL;           /* In use.  Don't free it. */
                 break;
 # endif /* def RISCOS */
+            case ('0'):
+                if (negative) {
+                    uO.zero_flag = IZ_MAX( uO.zero_flag- negative, 0);
+                } else
+                    ++uO.zero_flag;
+                break;
             case ('a'):
                 if (negative) {
                     uO.aflag = IZ_MAX(uO.aflag-negative,0);
diff --git a/unzip.h b/unzip.h
index cddc239..5f3c8df 100644 (file)
--- a/unzip.h
+++ b/unzip.h
@@ -477,6 +477,7 @@ typedef struct _UzpCB {
 /* the collection of general UnZip option flags and option arguments */
 typedef struct _UzpOpts {
 # ifndef FUNZIP
+    int zero_flag;      /* -0: No mapping of FAT/NTFS names (in do_string). */
     int aflag;          /* -a: ASCII-EBCDIC and/or end-of-line translation. */
 #  ifdef VMS
     int bflag;          /* -b: Force fixed record format for binary files. */
@@ -484,80 +485,80 @@ typedef struct _UzpOpts {
 #  ifdef TANDEM
     int bflag;          /* -b: Create text files in 'C' format (180). */
 #  endif /* def TANDEM */
-# ifdef UNIXBACKUP
+#  ifdef UNIXBACKUP
     int B_flag;         /* -B: Back up existing files, renaming to *~#####. */
-# endif /* def UNIXBACKUP */
+#  endif /* def UNIXBACKUP */
     int cflag;          /* -c: Output to stdout. */
     int C_flag;         /* -C: Match filenames case-insensitively. */
     int D_flag;         /* -D: Don't restore directory (-DD: any) timestamps. */
     char *exdir;        /* -d: Extraction destination (root) directory. */
-#ifndef SFX
+#  ifndef SFX
     int auto_exdir;     /* -da: Automatic extraction destination (root) dir. */
-#endif /* ndef SFX */
-# ifdef MACOS
+#  endif /* ndef SFX */
+#  ifdef MACOS
     int E_flag;         /* -E: Show Mac extra field during restoring. */
-# endif /* def MACOS */
+#  endif /* def MACOS */
     int fflag;          /* -f: "Freshen" (extract only newer files). */
-# if (defined(RISCOS) || defined(ACORN_FTYPE_NFS))
+#  if (defined(RISCOS) || defined(ACORN_FTYPE_NFS))
     int acorn_nfs_ext;  /* -F: RISC OS types & NFS filetype extensions */
-# endif
+#  endif
     int hflag;          /* -h: Header line (ZipInfo). */
-# ifdef MACOS
+#  ifdef MACOS
     int i_flag;         /* -i: Ignore filenames stored in Mac extra field. */
-# endif /* def MACOS */
-#ifdef RISCOS
+#  endif /* def MACOS */
+#  ifdef RISCOS
     int scanimage;      /* -I: Scan image files. */
-#endif /* def RISCOS */
+#  endif /* def RISCOS */
     int jflag;          /* -j: Junk pathnames. */
 /*
  * VAX C V3.1-051 loves "\" in #define, but hates it in #if.
  * HP C V7.3-009 dislikes "defined" in macro in #if (%CC-I-EXPANDEDDEFINED).
  * It seems safest to avoid any continuation lines in either.
  */
-# if defined(__ATHEOS__) || defined(__BEOS__) || defined(__HAIKU__)
+#  if defined(__ATHEOS__) || defined(__BEOS__) || defined(__HAIKU__)
 #  define J_FLAG 1
-# else
-#  if defined(MACOS) || (defined( UNIX) && defined( __APPLE__))
-#   define J_FLAG 1
+#  else
+#   if defined(MACOS) || (defined( UNIX) && defined( __APPLE__))
+#    define J_FLAG 1
+#   endif
 #  endif
-# endif
-# ifdef J_FLAG
+#  ifdef J_FLAG
     int J_flag;         /* -J: Ignore AtheOS/BeOS/MacOS extra field. info. */
-# endif
-# if defined( UNIX) && defined( __APPLE__)
+#  endif
+#  if defined( UNIX) && defined( __APPLE__)
     int Je_flag;        /* -Je: Ignore (all) extended attributes. */
     int Jf_flag;        /* -Jf: Ignore Finder info. */
     int Jq_flag;        /* -Jq: Ignore quarantine ("com.apple.quarantine") */
     int Jr_flag;        /* -Jr: Ignore Resource fork. */
-# endif /* defined( UNIX) && defined( __APPLE__) */
+#  endif /* defined( UNIX) && defined( __APPLE__) */
     int java_cafe;      /* --jar: Java CAFE extra block assumed/detected. */
-# if (defined(__ATHEOS__) || defined(__BEOS__) || defined(UNIX))
+#  if (defined(__ATHEOS__) || defined(__BEOS__) || defined(UNIX))
     int K_flag;         /* -K: Keep setuid/setgid/tacky permissions. */
-# endif
-# if !defined( NO_KFLAG) && !defined( KFLAG)
-#  if defined( __ATHEOS__) || defined( __BEOS__) || defined( UNIX)
-#   define KFLAG
-#  else
-#   if defined( VMS)
+#  endif
+#  if !defined( NO_KFLAG) && !defined( KFLAG)
+#   if defined( __ATHEOS__) || defined( __BEOS__) || defined( UNIX)
 #    define KFLAG
+#   else
+#    if defined( VMS)
+#     define KFLAG
+#    endif
 #   endif
-#  endif
-# endif /* !defined( NO_KFLAG) && !defined( KFLAG) */
-# ifdef KFLAG
+#  endif /* !defined( NO_KFLAG) && !defined( KFLAG) */
+#  ifdef KFLAG
     int kflag;          /* -k: Owner+group restoration control. */
-# endif
-# ifdef VMS
+#  endif
+#  ifdef VMS
     int ka_flag;        /* -ka: VMS ACL restoration control. */
-# endif
+#  endif
     int lflag;          /* -12slmv: Listing format (ZipInfo) */
     int L_flag;         /* -L: Convert filenames (some OS's) to lowercase. */
     int member_counts;  /* -mc: Show separate dir/file/link member counts. */
     int overwrite_none; /* -n: Never overwrite files (no prompting). */
-# ifdef AMIGA
+#  ifdef AMIGA
     int N_flag;         /* -N: Restore comments as AmigaDOS filenotes. */
-# endif
+#  endif
     int overwrite_all;  /* -o: OK to overwrite files without prompting. */
-# endif /* !FUNZIP */
+# endif /* ndef FUNZIP */
     char *pwdarg;       /* -P: Command-line password. */
     int qflag;          /* -q: Quiet.  Produce much less output. */
 # ifdef TANDEM
index fc1a7b0..de2961e 100644 (file)
@@ -2,8 +2,7 @@ UnZip 6.10c
 
 Announcement for UnZip Beta 6.10c, >>25 Feb 2014.  This is a beta
 release.  Changes may be made before UnZip 6.10 is released.  See the
-file History.610 for development details of changes in this beta
-release.
+file History.610 for details of changes in this beta release.
 
 Complaints and suggestions regarding this beta release can help to
 improve the next full release.
index 22a5d5e..21e34e3 100644 (file)
--- a/unzvers.h
+++ b/unzvers.h
@@ -24,8 +24,8 @@
 # endif
 
 # ifdef BETA
-#  define UZ_BETALEVEL      "c10 BETA"
-#  define UZ_VERSION_DATE   "18 Aug 2014"       /* Internal beta version. */
+#  define UZ_BETALEVEL      "c11 BETA"
+#  define UZ_VERSION_DATE   "10 Oct 2014"       /* Internal beta version. */
 # else
 #  define UZ_BETALEVEL      ""
 #  define UZ_VERSION_DATE   "?? ??? 2014"       /* Official release version. */
index 7afa82f..2804a62 100644 (file)
@@ -3,6 +3,7 @@
 
 build_unzip.com     DCL script to build UnZip (and friends)
 bzlib.h             VMS wrapper header file for the bzip2 library definitions
+check_large.com     DCL script to check large-file support (on Alpha)
 cmdline.c           VMS-style command-line-interface code (if VMSCLI defined)
 collect_deps.com    DCL script used in source dependencies creation
 Contents            This file
index 6c112cd..59bb995 100644 (file)
@@ -1,5 +1,5 @@
 #
-# UnZip for VMS - MMS (or MMK) Source Dependency File.
+#    UnZip for VMS -- MMS (or MMK) Source Dependency File.
 #
 
 # This description file is included by other description files.  It is
index 22d42ef..cc692a2 100644 (file)
@@ -1,17 +1,19 @@
-            UnZip Installation Supplement for VMS (OpenVMS)
-            -----------------------------------------------
+      INSTALL_VMS.txt -- UnZip Installation Supplement for VMS (OpenVMS)
+      ==================================================================
 
-   UnZip version 6.10.  Revised: 2013-10-13.
+   UnZip version 6.10.  Revised: 2014-10-10.
 
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+------------------------------------------------------------------------
 
-      Source Kits
-      -----------
+      Unpack the Source Kit(s)
+      ------------------------
 
-   UnZip source kits are distributed as Zip archives and tar+gzip kits.
-A Zip archive is usually the more convenient form for a VMS user.  If an
-UnZip program is not already available on the target system, pre-built
-UnZip programs may be found in many freeware collections, and on the
+   UnZip is normally distributed as a Zip archive (which requires some
+kind of unzip program to unpack), or as a gzip-compressed "tar" archive
+(which requires programs like "gzip" and "tar" to unpack).  A Zip
+archive is usually the more convenient form for a VMS user.  If an UnZip
+program is not already available on the target system, pre-built UnZip
+programs for VMS may be found in many freeware collections, and on the
 Info-ZIP server:
 
       ftp://ftp.info-zip.org/pub/infozip/vms/
@@ -32,192 +34,328 @@ below.  For example:
 
       UNZIP -b unzip61.zip              ! Unpack the UnZip source kit.
 
-   Some optional UnZip features may require additional source kits.
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+      Optional Source Kits
+      --------------------
+
+   Advanced Encryption Standard (AES) Encryption
+   ---------------------------------------------
+
+   To enable support for AES encryption, a separate IZ_AES_WG source kit
+is needed.  On the Info-ZIP FTP server, the IZ_AES_WG source kit should
+be found in:
+
+      ftp://ftp.info-zip.org/pub/infozip/crypt/
+
+The latest kit should be:
+
+      ftp://ftp.info-zip.org/pub/infozip/crypt/iz_aes_wg.zip
 
-   o Bzip2 Compression
+but other, older kits may also be available there.  Version
+compatibility information should be included in the IZ_AES_WG
+documentation.  The latest version of that should be:
 
-     By default, UnZip can use the Deflate compression method.  To add
-     support for the optional "bzip2" compression method, obtain and
-     build the bzip2 software ("http://www.bzip.org/" or, for a more
-     VMS-friendly kit, "http://antinode.info/dec/sw/bzip2.html").  The
-     build instructions below explain how to use the appropriate bzip2
-     header files and object library to build UnZip with bzip2 support.
+      ftp://ftp.info-zip.org/pub/infozip/crypt/README_AES_WG.txt
 
-   o Encryption
+It might be wise to read that before downloading any particular
+IZ_AES_WG kit.
 
-     This UnZip release includes the Traditional encryption code
-     ("CRYPT") previously supplied in the separate package zcrypt29.zip,
-     but you still can decide whether to activate the CRYPT code or not.
-     CRYPT is enabled by default, but you may disable it by specifying
-     the C macro "NO_CRYPT" in the LOCAL_UNZIP symbol/macro (explained
-     below).  See README_CR.txt for more on CRYPT.
+   The IZ_AES_WG kit should be unpacked in the main UnZip directory,
+where it should populate the [.aes_wg] subdirectory.  For example, if
+the proper IZ_AES_WG kit is "iz_aes_wg13.zip", then use commands like
+the following:
 
-     This UnZip release offers optional support for Advanced Encryption
-     Standard (AES) encryption, which is a stronger encryption method
-     than Traditional Zip encryption.  A separate IZ_AES_WG source kit
-     is required to enable this AES encryption option.  See
-     README_AES_WG.txt for more on the optional AES encryption.  The
-     IZ_AES_WG source kit must be unpacked in the UnZip source
-     directory, where it creates a [.aes_wg] subdirectory.  File and
-     path names may vary, but commands like the following should extract
-     the IZ_AES_WG source kit in the right place:
+      SET DEFAULT [.unzip61]            ! (If not already there.)
+      UNZIP [-]iz_aes_wg13.zip
 
-        SET DEFAULT [.unzip61]          ! The main UnZip source dir.
-        UNZIP [-]iz_aes_wg.zip          ! Unpack the IZ_AES_WG kit.
+   See the "Build" section, below, for details on how to build UnZip
+with AES encryption support.
 
      The IZ_AES_WG code may be too modern for VAX C.
 
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
+   Bzip2 Compression
+   -----------------
+
+   All the source files needed to enable support for the bzip2
+compression method are included in the UnZip source kit.  The [.bzip2]
+subdirectory contains a bzip2 (version 1.0.6) source kit, with some
+modifications for better VMS compatibility.  For general information on
+bzip2 compression, or to download a different bzip2 source kit:
+
+      http://www.bzip.org/
+
+   For a more VMS-friendly kit:
+
+      http://antinode.info/dec/sw/bzip2.html
+
+   The UnZip builders for VMS wiil, by default, use the bzip2 source kit
+which is included in the UnZip source kit to create the required bzip2
+object library.  The builders can also use an existing bzip2 object
+library, which is supplied by the user.  For details on how to use an
+existing bzip2 object library, or how to disable bzip2 compression
+support, look for IZ_BZIP2 in the "Build" section below.
+
+------------------------------------------------------------------------
 
       Build
       -----
 
    On VMS, two build methods are provided: a DCL command procedure, and
 description files for MMS or MMK.  Both methods must be run from the
-main source directory, not the [.VMS] subdirectory.
+main source directory, not the [.vms] subdirectory.
 
    A simple build using the command procedure looks like this:
-      @ [.VMS]BUILD_UNZIP.COM
+
+      @ [.vms]build_unzip.com
 
    A simple build using MMS or MMK looks like this:
-     MMS /DESCRIP = [.VMS]DESCRIP.MMS   ! Or, with MMK, ...
-     MMK /DESCRIP = [.VMS]DESCRIP.MMS
+
+     MMS /DESCRIP = [.vms]descrip.mms   ! Using MMS.
+     MMK /DESCRIP = [.vms]descrip.mms   ! Using MMK.
 
    Various options for each build method are explained in comments in
-each main builder file, either [.VMS]BUILD_UNZIP.COM or
-[.VMS]DESCRIP.MMS.
+each main builder file, either [.vms]build_unzip.com or
+[.vms]descrip.mms.  Principal build options are described in the
+following section.
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+      Build Options
+      -------------
+
+   This section describes the principal build options.
+
+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
+   Compilers on VAX
+   ----------------
 
    On VAX, the builders attempt to cope with the various available C
-compilers, DEC/Compaq/HP C, VAX C, or GNU C.  If DEC/Compaq/HP C is not
+compilers: DEC/Compaq/HP C, VAX C, or GNU C.  If DEC/Compaq/HP C is not
 available or not desired, comments in each main builder file explain the
-command-line options used to select a different compiler.
+command-line options used to select a different compiler.  Some of the
+more modern optional features may use C language features which VAX C
+does not support.
 
-      Note that on non-VAX systems with VMS V7.2 or later (and with a
-      sufficiently new C compiler), UnZip 6.0 (and later) can support
-      files (both data files and Zip archives) larger than 2GB.  For the
-      greatest compatibility with previous UnZip versions, by default,
-      the builders create old-style, small-file programs.  The user must
-      specify the appropriate builder command-line option to create
-      large-file-capable programs.
+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 
-   Here are some more complex build examples:
+   Large-File Support
+   ------------------
 
-   o Build with the large-file option enabled (non-VAX only):
+   Support for archives and member files larger than 2GB is available on
+Alpha systems with VMS V7.2 or later (and with a sufficiently new C
+compiler), and on all IA64 systems.  Large-file support is not available
+on VAX.  By default, the builders will enable large-file support where
+it is available.  (Note that UnZip versions before 6.10c (BETA) required
+the user to request large-file support explicitly.  Now it must be
+disabled explicitly, if it's not desired.)
 
-        @ [.VMS]BUILD_UNZIP LARGE
-     or:
-        MMS /DESC = [.VMS] /MACRO = LARGE=1
+      On Alpha, the builders will initially assume that large-file
+      support is available, but will test large-file support before 
+      continuing.  If large-file support is not available, the build
+      will fail, and a message will advise the user to add "NOLARGE" to
+      the build command.
 
-   o Re-link the executables (small-file and large-file):
+   To disable large-file support using the DCL builder, use a command
+like the following:
 
-        @ [.VMS]BUILD_UNZIP NOCOMPILE
-        @ [.VMS]BUILD_UNZIP LARGE NOCOMPILE
-     or
-        MMK /DESC = [.VMS] CLEAN_EXE  ! Delete existing executables.
-        MMK /DESC = [.VMS]            ! Build new executables.
-        MMK /DESC = [.VMS] /MACRO = LARGE=1 CLEAN_EXE
-        MMK /DESC = [.VMS] /MACRO = LARGE=1
+      @ [.vms]build_unzip.com NOLARGE
+
+   Using the MMS or MMK builder (MMS shown):
+
+     MMS /DESCRIP = [.vms]descrip.mms /MACRO = (NOLARGE=1)
+
+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 
-   o Build a large-file product from scratch, for debug, getting
-     compiler listings and link maps:
+   Bzip2 Compression
+   -----------------
 
-        MMS /DESC = [.VMS] CLEAN
-        MMS /DESC = [.VMS] /MACRO = (DBG=1, LARGE=1. LIST=1)
+   The optional bzip2 compression method is enabled by default, and the
+required source code is included in the UnZip source kit.  By default,
+the builders will use the bzip2 source kit in the [.bzip2] subdirectory
+to build the required bzip2 object library.
 
-   o Bzip2 Compression
+   To disable bzip2 compression, add the appropriate option to the
+builder command line.  For example:
 
-      We assume that bzip2 has been built according to its own
-      instructions.  To build UnZip with bzip2 support, define the macro
-      IZ_BZIP2 on the BUILD_UNZIP.COM or MMS/MMK command line to specify
-      the directory where the bzip2 files may be found.  For example:
+         @ [.vms]build_unzip NOIZ_BZIP2
+      or:
+         MMS /DESC = [.vms] /MACRO = (NOIZ_BZIP2)
+
+   Users who regularly work with multiple UnZip versions (or optional
+configurations) can avoid repeatedly building the bzip2 object library
+by manually building a bzip2 object library (with BZ_NO_STDIO defined)
+in some common location.  Then, when building UnZip, specify that bzip2
+directory as the value of the MMS macro IZ_BZIP2.  For example:
 
-         @ [.VMS]BUILD_UNZIP LARGE -
+         @ [.vms]build_unzip -
+          IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_6A_VMS]
+      or:
+         MMS /DESC = [.vms] /MACRO = -
           IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_6A_VMS]
+
+   Defining a logical name for the bzip2 directory can simplify commands
+like these:
+
+         DEFINE IZ_BZIP2_106 -
+          SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_6A_VMS]
+
+         @ [.vms]build_unzip IZ_BZIP2=IZ_BZIP2_106
       or:
-         MMS /DESC = [.VMS] /MACRO = (LARGE=1, -
-          IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_6A_VMS])
+         MMS /DESC = [.vms] /MACRO = (IZ_BZIP2=IZ_BZIP2_106)
+
 
       Note that historically, UnZip has been built with the default
       compiler option, /NAMES = UPPERCASE, while bzip2 is normally built
-      with /NAMES = AS_IS, to avoid name collisions.  With modern
-      compilers, the "#pragma names" directives in [.VMS]BZLIB.H will
-      handle these differences without user intervention.  An old
-      compiler (for example, DEC C V4.0-000) will emit complaints
-      %CC-I-UNKNOWNPRAGMA, and will mishandle the bzip2 library function
-      names, which will cause the link to fail.  To solve this problem,
-      either build the bzip2 BZ_NO_STDIO object library with /NAMES =
-      UPPERCASE, or else build UnZip with /NAMES = AS_IS.  For example:
-
-         @ [.VMS]BUILD_UNZIP LARGE "CCOPTS=/NAMES=AS_IS" -
-          IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_6A_VMS]
+      with /NAMES = AS_IS, to avoid name collisions in the bzip2 code.
+      With modern compilers, the "#pragma names" directives in
+      [.vms]bzlib.h will handle these differences without user
+      intervention.  An old compiler (for example, DEC C V4.0-000) will
+      emit complaints %CC-I-UNKNOWNPRAGMA, and will mishandle the bzip2
+      library function names, which will cause the link to fail.  To
+      solve this problem, either build the bzip2 BZ_NO_STDIO object
+      library with /NAMES = UPPERCASE, or else build UnZip with
+      /NAMES = AS_IS.  For example:
+
+         @ [.vms]build_unzip "CCOPTS=/NAMES=AS_IS" IZ_BZIP2=IZ_BZIP2_106
       or:
-         MMS /DESC = [.VMS] /MACRO = (LARGE=1, "CCOPTS=/NAMES=AS_IS", -
-          IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_6A_VMS])
+         MMS /DESC = [.vms] /MACRO = ("CCOPTS=/NAMES=AS_IS", -
+          IZ_BZIP2=IZ_BZIP2_106)
 
       The %CC-I-UNKNOWNPRAGMA complaints are still emitted, but the link
       (and the program) should work.
 
-   o Other Optional Compression Methods (LZMA, PPMd)
+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 
-      LZMA and PPMd compression (new in UnZip version 6.10) are not
-      enabled by default, but the required source code is included in
-      the UnZip source kit.  To enable LZMA and/or PPMd compression, add
-      the appropriate option to the builder command line.  For example:
+   LZMA and PPMd Compression Methods
+   ---------------------------------
 
-         @ [.VMS]BUILD_UNZIP LARGE LZMA PPMD
+   The optional LZMA and PPMd compression methods (new in UnZip version
+6.10) are enabled by default, and the required source code is included
+in the UnZip source kit.
+
+   To disable LZMA and/or PPMd compression, add the appropriate option
+to the builder command line.  For example:
+
+         @ [.vms]build_unzip NOLZMA NOPPMD
       or:
-         MMS /DESC = [.VMS] /MACRO = (LARGE=1, LZMA=1, PPMD=1)
+         MMS /DESC = [.vms] /MACRO = (NOLZMA=1, NOPPMD=1)
 
-   o Encryption
+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 
-      By default, Traditional Zip encryption is enabled.  To disable it,
-      the C macro NO_CRYPT must be defined at build time.  This can be
-      done by adding NO_CRYPT to the LOCAL_UNZIP symbol/macro.  For
-      example:
+   Advanced Encryption Standard (AES) Encryption
+   ---------------------------------------------
 
-         LOCAL_UNZIP == "NO_CRYPT"
-         @ [.VMS]BUILD_UNZIP LARGE
+   By default, AES encryption is not enabled.  To enable it, first
+download and unpack the separate IZ_AES_WG source kit, as explained
+above.  With the IZ_AES_WG source kit unpacked into its [.aes_wg]
+subdirectory, add the appropriate AES_WG option to the builder command
+line.  For example:
+
+         @ [.vms]build_unzip AES_WG
       or:
-         MMS /DESC = [.VMS] /MACRO = (LARGE=1, "LOCAL_UNZIP=NO_CRYPT")
+         MMS /DESC = [.vms] /MACRO = (AES_WG=1)
 
-      By default, AES encryption is not enabled.  To enable it, first
-      download and unpack the separate IZ_AES_WG source kit, as
-      explained above.  With the IZ_AES_WG source kit unpacked into its
-      [.aes_wg] subdirectory, add the appropriate AES_WG option to the
-      builder command line.  For example:
+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 
-         @ [.VMS]BUILD_UNZIP LARGE AES_WG
+   Traditional Zip Encryption
+   --------------------------
+
+   By default, Traditional Zip encryption is enabled.  To disable it,
+the C macro NO_CRYPT must be defined at build time.  This can be done by
+adding NO_CRYPT to the LOCAL_UNZIP symbol/macro.  For example:
+
+         LOCAL_UNZIP == "NO_CRYPT"
+         @ [.vms]build_unzip
       or:
-         MMS /DESC = [.VMS] /MACRO = (LARGE=1, AES_WG=1)
+         MMS /DESC = [.vms] /MACRO = ("LOCAL_UNZIP=NO_CRYPT")
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
+      More Complex Build Examples
+      ---------------------------
+
+   Here are some more complex build examples:
+
+   o Build with the large-file option disabled (non-VAX, typically used
+     only on old Alpha systems):
+
+        @ [.vms]build_unzip NOLARGE
+     or:
+        MMS /DESC = [.vms] /MACRO = NOLARGE=1
+
+   o Re-link the executables:
+
+        @ [.vms]build_unzip NOCOMPILE
+     or
+        MMK /DESC = [.vms] CLEAN_EXE  ! Delete existing executables.
+        MMK /DESC = [.vms]            ! Build new executables.
+
+   o Build from scratch, for debug, getting compiler listings and link
+     maps:
+
+        MMS /DESC = [.vms] CLEAN
+        MMS /DESC = [.vms] /MACRO = (DBG=1, LIST=1)
+
+
+   Another build option, HELP_TEXT, can be used to create formatted,
+plain-text HELP output files.  These files, UNZIP.HTX and UNZIP_CLI.HTX,
+contain the results of a command like "HELP UNZIP..." using the help
+source files for the UNIX-like command line and the VMS-like command
+line, respectively.  For example:
+
+      @ [.vms]build_unzip HELP_TEXT
+   or:
+      MMS /DESC = [.vms] HELP_TEXT
+
+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
+   Destination Directories
+   -----------------------
 
    By default, system-architecture-specific files (like objects and
 executables) are placed in separate subdirectories, such as [.ALPHA],
 [.IA64], or [.VAX].  Large-file products get their own subdirectories,
 [.ALPHAL] or [.IA64L].  On VAX, VAX C products are placed in [.VAXV],
 GNU C products in [.VAXG].  If desired, the user may specify some other
-subdirectory, using the PROD symbol/macro.  For example, to build
-large-file programs in a [.ALPHA_LARGE] subdirectory:
+subdirectory, using the PROD option/macro.  For example, to build
+programs without large-file support or any optional compression methods
+in a [.ALPHA_BASIC] subdirectory:
 
-         @ [.VMS]BUILD_UNZIP LARGE PROD=ALPHA_LARGE
+         @ [.vms]build_unzip NOLARGE NOIZ_BZIP2 NOLZMA NOPPMD -
+          PROD=ALPHA_BASIC
       or:
-         MMS /DESC = [.VMS] /MACRO = (LARGE=1, PROD=ALPHA_LARGE)
+         MMS /DESC = [.vms] /MACRO = (NOLARGE=1, NOIZ_BZIP2=1, -
+          NOLZMA=1, NOPPMD=1, PROD=ALPHA_BASIC)
+
+   The PROD=dest_dir feature makes it easier to build multiple UnZip
+variants with different options using the same source tree.
 
-This option makes it easier to build multiple UnZip variants with
-different options using the same source tree.
+      Note that if PROD=dest_dir is specified for a build, then it must
+      also be specified for other builder operations, such as TEST or
+      CLEAN, which also need to know which destination directory to use.
+
+      Note that PROD=dest_dir has no effect on any automatically built
+      bzip2 object library, so it's generally safer to use a pre-built
+      bzip2 object library in an external directory when using PROD,
+      especially when using one source tree for different hardware
+      architectures.
 
    Each product builder announces what the destination directory will be
 when it is run.
 
-   Common files, such as the help libraries (UNZIP.HLP for the default
-UNIX-like command-line interface, UNZIP_CLI.HLP for the VMS-like
-command-line interface), are placed in the main directory.  With a
-mixed-architecture VMS cluster, the same main directory on a shared disk
-may be used by all system types.  (Using the NOHELP option with
+   Common files, such as the help library source files (UNZIP.HLP for
+the default UNIX-like command-line interface, UNZIP_CLI.HLP for the
+VMS-like command-line interface) are placed in the main directory.  With
+a mixed-architecture VMS cluster, the same main directory on a shared
+disk may be used by all system types.  (Using the NOHELP option with
 BUILD_UNZIP.COM can keep it from making the same help files repeatedly.)
 Building the help files is detailed below.
 
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+------------------------------------------------------------------------
 
       Test
       ----
@@ -225,43 +363,43 @@ Building the help files is detailed below.
    After a successful build, an "unzip -v" or "UNZIP_CLI /VERBOSE"
 report can be generated using the builders:
 
-      @ [.VMS]BUILD_UNZIP LARGE DASHV
-      @ [.VMS]BUILD_UNZIP LARGE SLASHV
+      @ [.vms]build_unzip DASHV
+      @ [.vms]build_unzip SLASHV
    or:
-      MMS /DESC = [.VMS] /MACRO = (LARGE=1) DASHV
-      MMS /DESC = [.VMS] /MACRO = (LARGE=1) SLASHV
+      MMS /DESC = [.vms] DASHV
+      MMS /DESC = [.vms] SLASHV
 
    A set of basic UnZip tests can be run using the builders:
 
-      @ [.VMS]BUILD_UNZIP LARGE TEST
+      @ [.vms]build_unzip TEST
    or:
-      MMS /DESC = [.VMS] /MACRO = (LARGE=1) TEST
-
-   Specify "LARGE" or not, the same as when building the programs.  (On
-VAX, also specify same the compiler option: VAXC, ...)  Other normal
-build options are allowed, but not required.  The builders use a DCL
-procedure, [.vms]test_unzip.com, to do this job.  This procedure may be
-run directly, but it needs to be told where to find the program
-executables, so it's normally easier to use one of the builders to run
-it, because they know where the executables are stored.  (Which is why
-those options which affect the destination directory are required for
-TEST.)
+      MMS /DESC = [.vms] TEST
+
+   If "PROD=dest_dir" was specified for the build, then it must be
+specified here, too.  (On VAX, also specify same the compiler option:
+VAXC, ...)  Other normal build options are allowed, but not required.
+The builders use a DCL procedure, [.vms]test_unzip.com, to do this job.
+This procedure may be run directly, but it needs to be told where to
+find the program executables, so it's normally easier to use one of the
+builders to run it, because they know where the executables are stored.
+(Which is why those options which affect the destination directory are
+required for TEST.)
 
    If PPMd compression was enabled, then a separate PPMd test can be run
 similarly:
 
-      @ [.VMS]BUILD_UNZIP LARGE TEST_PPMD
+      @ [.vms]build_unzip TEST_PPMD
    or:
-      MMS /DESC = [.VMS] /MACRO = (LARGE=1) TEST_PPMD
+      MMS /DESC = [.vms] TEST_PPMD
 
-   The test procedure leaves its results files in place (for inspection,
-as desired).  To clean up after running the tests, use the CLEAN_TEST
-target in the MMS/MMK builder, or do the job manually:
+   The test procedures leave their results files in place (for
+inspection, as desired).  To clean up after running the tests, use the
+CLEAN_TEST target in the MMS/MMK builder, or do the job manually:
 
-      MMS /DESC = [.VMS] CLEAN_TEST
+      MMS /DESC = [.vms] CLEAN_TEST
    or:
-      DELETE [.TEST_DIR_*...]*.*;*  ! Repeat as needed.
-      DELETE TEST_DIR_*.DIR;*
+      DELETE [.test_dir_*...]*.*;*  ! Repeat as needed.
+      DELETE test_dir_*.DIR;*
 
    Note: For its self-extracting archive (SFX) tests, the test procedure
 may try to use SET FILE /ATTRIBUTES to adjust the attributes of the
@@ -281,7 +419,7 @@ system, where the archive file attributes should be more convenient
 (/BINARY) UnZip option, which should give the test archives the desired
 attributes.
 
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+------------------------------------------------------------------------
 
       Install
       -------
@@ -302,22 +440,22 @@ On a non-VAX system, different symbols could be defined for the
 small-file and large-file programs.  For example:
 
    UNZIPS  :== $ dev:[dir.ALPHA]UNZIP.EXE  ! UNZIPS = small-file UnZip.
-   UNZIP*L :== $ dev:[dir.ALPHAL]UNZIP.EXE ! UNZIP[L] =large-file UnZip.
+   UNZIP*L :== $ dev:[dir.ALPHAL]UNZIP.EXE ! UNZIP[L]large-file UnZip.
 
 
    The builders create help library source files, UNZIP.HLP and
 UNZIP_CLI.HLP.  These may be incorporated into an existing help library,
 or a separate UnZip help library may be created using commands like
-these, using either UNZIP.HLP (as shown) or UNZIP_CLI.HLP:
+the following, using either UNZIP.HLP (as shown) or UNZIP_CLI.HLP:
 
-   $ LIBRARY /HELP dev:[dir]existing_library.HLB UNZIP.HLP
+      LIBRARY /HELP dev:[dir]existing_library.HLB UNZIP.HLP
 
-   $ LIBRARY /CREATE /HELP UNZIP.HLB UNZIP.HLP
+      LIBRARY /CREATE /HELP UNZIP.HLB UNZIP.HLP
 
 UnZip help may then be accessed from a separate UnZip help library using
 a command like:
 
-   $ HELP /LIBRARY = device:[directory]UNZIP.HLB
+      HELP /LIBRARY = device:[directory]UNZIP.HLB
 
    For greater ease, the user (or system manager) may define a
 HLP$LIBRARY logical name to allow the HELP utility to find the UnZip help
@@ -330,14 +468,14 @@ define a HLP$LIBRARY logical name for an UnZip help library.
 destination directory with the program executables.  A user may gain DCL
 access to the UnZip error messages using a command like:
 
-   $ SET MESSAGE device:[directory]UNZIP_MSG.EXE
+      SET MESSAGE device:[directory]UNZIP_MSG.EXE
 
 For system-wide access, the system manager may move or copy this file to
 SYS$MESSAGE, although this could cause some confusion if multiple
 versions of UnZip are used on the system, and their error message source
 files differ.
 
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+------------------------------------------------------------------------
 
       Self-Extracting Archives
       ------------------------
index c9c7cbc..858dc02 100755 (executable)
@@ -1,11 +1,11 @@
 $! BUILD_UNZIP.COM
 $!
-$!     Build procedure for VMS versions of UnZip/ZipInfo and UnZipSFX.
+$!     UnZip 6.10 for VMS -- DCL Build procedure.
 $!
-$!     Last revised:  2013-11-29  SMS.
+$!     Last revised:  2014-10-09  SMS.
 $!
 $!----------------------------------------------------------------------
-$! Copyright (c) 2004-2013 Info-ZIP.  All rights reserved.
+$! Copyright (c) 2004-2014 Info-ZIP.  All rights reserved.
 $!
 $! See the accompanying file LICENSE, version 2009-Jan-2 or later (the
 $! contents of which are also included in zip.h) for terms of use.  If,
@@ -18,37 +18,43 @@ $!     - Suppress C compilation (re-link): "NOCOMPILE"
 $!     - Suppress linking executables: "NOLINK"
 $!     - Suppress help file processing: "NOHELP"
 $!     - Suppress message file processing: "NOMSG"
-$!     - Define DCL symbols: "SYMBOLS"  (Was default before UnZip 6.1.)
+$!     - Define DCL symbols: "SYMBOLS"  (Was default before UnZip 6.10.)
 $!     - Select compiler environment: "VAXC", "DECC", "GNUC"
-$!     - Select AES_WG encryption support: "AES_WG"
+$!     - Disable AES_WG encryption support: "NOAES_WG"
 $!       By default, the SFX programs are built without AES_WG support.
 $!       Add "CRYPT_AES_WG_SFX=1" to the LOCAL_UNZIP C macros to enable
 $!       it.  (See LOCAL_UNZIP, below.)
-$!     - Select BZIP2 support: "USEBZ2"
-$!       This option is a shortcut for "IZ_BZIP2=SYS$DISK:[.bzip2]", and
-$!       runs the DCL build procedure there,
-$!     - Select BZIP2 support: "IZ_BZIP2=dev:[dir]", where "dev:[dir]"
-$!       (or a suitable logical name) tells where to find "bzlib.h".
-$!       The BZIP2 object library (LIBBZ2_NS.OLB) is expected to be in
-$!       a "[.dest]" directory under that one ("dev:[dir.ALPHAL]", for
-$!       example), or in that directory itself.
-$!       By default, the SFX programs are built without BZIP2 support.
-$!       Add "BZIP2_SFX=1" to the LOCAL_UNZIP C macros to enable it.
-$!       (See LOCAL_UNZIP, below.)
-$!     - Select LZMA compression support: "LZMA"
+$!     - Direct bzip2 support: "IZ_BZIP2=dev:[dir]"
+$!       Disable bzip2 support: "NOIZ_BZIP2"
+$!       By default, bzip2 support is enabled, and uses the bzip2 source
+$!       kit supplied in the [.bzip2] directory.  Specify NOIZ_BZIP2
+$!       to disable bzip2 support. Specify IZ_BZIP2 with a value
+$!       ("dev:[dir]", or a suitable logical name) to use the bzip2
+$!       header file and object library found there.  The bzip2 object
+$!       library (LIBBZ2_NS.OLB) is expected to be in a simple "[.dest]"
+$!       directory under that one ("dev:[dir.ALPHAL]", for example), or
+$!       in that directory itself.)  By default, the SFX programs are
+$!       built without bzip2 support.  Add "BZIP2_SFX=1" to the
+$!       LOCAL_UNZIP C macros to enable it.  (See LOCAL_UNZIP, below.)
+$!     - Use ZLIB compression library: "IZ_ZLIB=dev:[dir]", where
+$!       "dev:[dir]" (or a suitable logical name) tells where to find
+$!       "zlib.h".  The ZLIB object library (LIBZ.OLB) is expected to be
+$!       in a "[.dest]" directory under that one ("dev:[dir.ALPHAL]",
+$!       for example), or in that directory itself.
+$!     - Disable LZMA compression support: "NOLZMA"
 $!       By default, the SFX programs are built without LZMA support.
 $!       Add "LZMA_SFX=1" to the LOCAL_UNZIP C macros to enable it.
 $!       (See LOCAL_UNZIP, below.)
-$!     - Select PPMd compression support: "PPMD"
+$!     - Disable PPMd compression support: "NOPPMD"
 $!       By default, the SFX programs are built without PPMd support.
 $!       Add "PPMD_SFX=1" to the LOCAL_UNZIP C macros to enable it.
 $!       (See LOCAL_UNZIP, below.)
-$!     - Use ZLIB compression library: "IZ_ZLIB=dev:[dir]", where
-$!       "dev:[dir]" (or a suitable logical name) tells where to find
-$!       "zlib.h".  The ZLIB object library (LIBZ.OLB) is expected to be
-$!       in a "[.dest]" directory under that one ("dev:[dir.ALPHAL]",
-$!       for example), or in that directory itself.
-$!     - Select large-file support: "LARGE"
+$!     - Enable large-file (>2GB) support: "LARGE"
+$!       Disable large-file (>2GB) support: "NOLARGE"
+$!       Large-file support is always disabled on VAX.  It is enabled by
+$!       default on IA64, and on Alpha systems which are modern enough
+$!       to allow it.  Specify NOLARGE=1 explicitly to disable support
+$!       (and to skip the test on Alpha).
 $!     - Select compiler listings: "LIST"  Note that the whole argument
 $!       is added to the compiler command, so more elaborate options
 $!       like "LIST/SHOW=ALL" (quoted or space-free) may be specified.
@@ -66,7 +72,7 @@ $!       must be quoted or space-free.  Default is
 $!       LINKOPTS="/NOMAP /NOTRACEBACK", but if the user specifies a
 $!       LINKOPTS string, then only the user-specified qualifier(s) will
 $!       be included.
-$!     - Select installation of CLI interface version of UnZip:
+$!     - Select installation of VMS CLI interface version of UnZip:
 $!       "VMSCLI" or "CLI"
 $!     - Force installation of UNIX interface version of UnZip
 $!       (override LOCAL_UNZIP environment): "NOVMSCLI" or "NOCLI"
@@ -136,7 +142,7 @@ $ endif
 $!
 $! Check for the presence of "VMSCLI" in LOCAL_UNZIP.  If yes, we will
 $! define the foreign command for "unzip" to use the executable
-$! containing the CLI interface.
+$! containing the VMS CLI interface.
 $!
 $ pos_cli = f$locate( "VMSCLI", LOCAL_UNZIP)
 $ len_local_unzip = f$length( LOCAL_UNZIP)
@@ -144,7 +150,7 @@ $ if (pos_cli .ne. len_local_unzip)
 $ then
 $     CLI_IS_DEFAULT = 1
 $     ! Remove "VMSCLI" macro from LOCAL_UNZIP. The UnZip executable
-$     ! including the CLI interface is now created unconditionally.
+$     ! including the VMS CLI interface is now created unconditionally.
 $     LOCAL_UNZIP = f$extract( 0, pos_cli, LOCAL_UNZIP)+ -
        f$extract( pos_cli+7, len_local_unzip- (pos_cli+ 7), LOCAL_UNZIP)
 $ else
@@ -165,17 +171,16 @@ $ lib_unzipcli_name = "UNZIPCLI.OLB"
 $ lib_unzipsfx_name = "UNZIPSFX.OLB"
 $ lib_unzipsfxcli_name = "UNZSFXCLI.OLB"
 $!
-$ AES_WG = ""
+$ AES_WG = 0
+$ BUILD_BZIP2 = 0
 $ CCOPTS = ""
 $ DASHV = 0
 $ IZ_BZIP2 = ""
-$ BUILD_BZIP2 = 0
 $ IZ_ZLIB = ""
-$ LINKOPTS = "/nomap /notraceback"
-$ LISTING = " /nolist"
 $ LARGE_FILE = 0
 $ LIBUNZIP = 0
-$ LZMA = 0
+$ LINKOPTS = "/nomap /notraceback"
+$ LISTING = " /nolist"
 $ MAKE_EXE = 1
 $ MAKE_HELP = 1
 $ MAKE_HELP_TEXT = 0
@@ -184,7 +189,10 @@ $ MAKE_OBJ = 1
 $ MAKE_SYM = 0
 $ MAY_USE_DECC = 1
 $ MAY_USE_GNUC = 0
-$ PPMD = 0
+$ NOAES_WG = 0
+$ NOIZ_BZIP2 = 0
+$ NOLZMA = 0
+$ NOPPMD = 0
 $ PROD = ""
 $ SLASHV = 0
 $ TEST = 0
@@ -226,13 +234,17 @@ $         IZ_BZIP2 = f$extract( (eq+ 1), 1000, opts)
 $         goto argloop_end
 $     endif
 $!
-$     if (f$extract( 0, 6, curr_arg) .eqs. "USEBZ2")
+$     if ((f$extract( 0, 8, curr_arg) .eqs. "NOAES_WG") .or. -
+       (f$extract( 0, 9, curr_arg) .eqs. "NO_AES_WG"))
 $     then
-$         if (IZ_BZIP2 .eqs. "")
-$         then
-$             IZ_BZIP2 = "SYS$DISK:[.BZIP2]"
-$             BUILD_BZIP2 = 1
-$         endif
+$         NOAES_WG = 1
+$         goto argloop_end
+$     endif
+$!
+$     if ((f$extract( 0, 9, curr_arg) .eqs. "NOIZ_BZIP") .or. -
+       (f$extract( 0, 10, curr_arg) .eqs. "NO_IZ_BZIP"))
+$     then
+$         NOIZ_BZIP2 = 1
 $         goto argloop_end
 $     endif
 $!
@@ -256,6 +268,12 @@ $         LARGE_FILE = 1
 $         goto argloop_end
 $     endif
 $!
+$     if (f$extract( 0, 8, curr_arg) .eqs. "LIBUNZIP")
+$     then
+$         LIBUNZIP = 1
+$         goto argloop_end
+$     endif
+$!
 $     if (f$extract( 0, 7, curr_arg) .eqs. "LINKOPT")
 $     then
 $         opts = f$edit( curr_arg, "COLLAPSE")
@@ -270,21 +288,21 @@ $         LISTING = "/''curr_arg'"      ! But see below for mods.
 $         goto argloop_end
 $     endif
 $!
-$     if (f$extract( 0, 8, curr_arg) .eqs. "LIBUNZIP")
+$     if (curr_arg .eqs. "NOCOMPILE")
 $     then
-$         LIBUNZIP = 1
+$         MAKE_OBJ = 0
 $         goto argloop_end
 $     endif
 $!
-$     if (f$extract( 0, 4, curr_arg) .eqs. "LZMA")
+$     if (curr_arg .eqs. "NOHELP")
 $     then
-$         LZMA = 1
+$         MAKE_HELP = 0
 $         goto argloop_end
 $     endif
 $!
-$     if (curr_arg .eqs. "NOCOMPILE")
+$     if (f$extract( 0, 7, curr_arg) .eqs. "NOLARGE")
 $     then
-$         MAKE_OBJ = 0
+$         LARGE_FILE = -1
 $         goto argloop_end
 $     endif
 $!
@@ -294,9 +312,10 @@ $         MAKE_EXE = 0
 $         goto argloop_end
 $     endif
 $!
-$     if (curr_arg .eqs. "NOHELP")
+$     if ((f$extract( 0, 6, curr_arg) .eqs. "NOLZMA") .or. -
+       (f$extract( 0, 7, curr_arg) .eqs. "NO_LZMA"))
 $     then
-$         MAKE_HELP = 0
+$         NOLZMA = 1
 $         goto argloop_end
 $     endif
 $!
@@ -306,9 +325,10 @@ $         MAKE_MSG = 0
 $         goto argloop_end
 $     endif
 $!
-$     if (f$extract( 0, 4, curr_arg) .eqs. "PPMD")
+$     if ((f$extract( 0, 6, curr_arg) .eqs. "NOPPMD") .or. -
+       (f$extract( 0, 7, curr_arg) .eqs. "NO_PPMD"))
 $     then
-$         PPMD = 1
+$         NOPPMD = 1
 $         goto argloop_end
 $     endif
 $!
@@ -444,16 +464,16 @@ $     endif
 $!
 $     cc = "cc /standard = relax /prefix = all /ansi"
 $     defs = "''LOCAL_UNZIP'MODERN"
-$     if (LARGE_FILE .ne. 0)
+$     if (LARGE_FILE .ge. 0)
 $     then
 $         defs = "LARGE_FILE_SUPPORT, ''defs'"
 $     endif
 $ else
-$     if (LARGE_FILE .ne. 0)
+$     if (LARGE_FILE .gt. 0)
 $     then
 $        say "LARGE_FILE_SUPPORT is not available on VAX."
-$        LARGE_FILE = 0
 $     endif
+      LARGE_FILE = -1
 $     HAVE_DECC_VAX = (f$search( "SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "")
 $     HAVE_VAXC_VAX = (f$search( "SYS$SYSTEM:VAXC.EXE") .nes. "")
 $     MAY_HAVE_GNUC = (f$trnlnm( "GNU_CC") .nes. "")
@@ -488,21 +508,35 @@ $         opts = "''opts' SYS$DISK:[.''destm']VAXCSHR.OPT /OPTIONS,"
 $     endif
 $ endif
 $!
+$ if ((NOIZ_BZIP2 .le. 0) .and. (IZ_BZIP2 .eqs. ""))
+$ then
+$     IZ_BZIP2 = "SYS$DISK:[.BZIP2]"
+$     BUILD_BZIP2 = 1
+$ endif
+$!
 $ if (IZ_BZIP2 .nes. "")
 $ then
 $     defs = "BZIP2_SUPPORT, ''defs'"
 $ endif
 $!
-$! Set AES_WG-related data.
+$! Set AES_WG-related data.  Default is enabled, if source is available.
 $!
-$ if (AES_WG .ne. 0)
+$ if ((AES_WG .eq. 0) .and. (NOAES_WG .eq. 0))
+$ then
+$     if (f$search( "[.aes_wg]aes.h") .nes. "")
+$     then
+$         AES_WG = 1
+$     endif
+$ endif
+$!
+$ if (AES_WG .gt. 0)
 $ then
 $     defs = defs+ ", CRYPT_AES_WG"
 $ endif
 $!
 $! Set LZMA-related data.
 $!
-$ if (LZMA .ne. 0)
+$ if (NOLZMA .le. 0)
 $ then
 $     defs = defs+ ", LZMA_SUPPORT"
 $     if (arch .eqs. "VAX")
@@ -513,7 +547,7 @@ $ endif
 $!
 $! Set PPMD-related data.
 $!
-$ if (PPMD .ne. 0)
+$ if (NOPPMD .le. 0)
 $ then
 $     defs = defs+ ", PPMD_SUPPORT"
 $     if (arch .eqs. "VAX")
@@ -522,7 +556,7 @@ $         if (vaxc .ne. 0)
 $         then
 $             defs = defs+ ", NO_SIGNED_CHAR"
 $         endif
-$         if (LZMA .eq. 0)
+$         if (NOLZMA .le. 0)
 $         then
 $             defs = defs+ ", _SZ_NO_INT_64"
 $         endif
@@ -532,7 +566,7 @@ $!
 $! Change the destination directory, if the large-file option is enabled.
 $!
 $ destb = destm
-$ if (LARGE_FILE .ne. 0)
+$ if (LARGE_FILE .ge. 0)
 $ then
 $     destl = "L"
 $ endif
@@ -686,6 +720,20 @@ $         endif
 $     endif
 $ endif
 $!
+$! Verify (default) large-file support on Alpha.
+$!
+$ if ((arch .eqs. "ALPHA") .and. (LARGE_FILE .eq. 0))
+$ then
+$     @ [.vms]check_large.com 'dest' large_file_ok
+$     if (f$trnlnm( "large_file_ok") .eqs. "")
+$     then
+$         deassign large_file_ok
+$         say "Large-file support not available (OS/CRTL too old?)."
+$         goto error
+$     endif
+$     deassign large_file_ok
+$ endif
+$!
 $ if (MAKE_OBJ)
 $ then
 $!
@@ -765,8 +813,7 @@ $ say ""
 $!
 $ tmp = f$verify( 1)    ! Turn echo on to see what's happening.
 $!
-$!------------------------------- UnZip section ------------------------------
-$!
+$!-------------------------- UnZip section -----------------------------
 $!
 $ if (MAKE_HELP)
 $ then
@@ -855,7 +902,7 @@ $         cc 'DEF_LIBUNZIP' /object = [.'dest']ZIPINFO_L.OBJ ZIPINFO.C
 $         cc 'DEF_LIBUNZIP' /object = [.'dest']VMS_L.OBJ [.VMS]VMS.C
 $     endif
 $!
-$     if (AES_WG .ne. 0)
+$     if (AES_WG .gt. 0)
 $     then
 $         cc 'DEF_UNX' /object = [.'dest']AESCRYPT.OBJ [.AES_WG]AESCRYPT.C
 $         cc 'DEF_UNX' /object = [.'dest']AESKEY.OBJ [.AES_WG]AESKEY.C
@@ -867,13 +914,13 @@ $         cc 'DEF_UNX' /object = [.'dest']PWD2KEY.OBJ [.AES_WG]PWD2KEY.C
 $         cc 'DEF_UNX' /object = [.'dest']SHA1.OBJ [.AES_WG]SHA1.C
 $     endif
 $!
-$     if (LZMA .ne. 0)
+$     if (NOLZMA .le. 0)
 $     then
 $         cc 'DEF_UNX' /object = [.'dest']LZFIND.OBJ [.SZIP]LZFIND.C
 $         cc 'DEF_UNX' /object = [.'dest']LZMADEC.OBJ [.SZIP]LZMADEC.C
 $     endif
 $!
-$     if (PPMD .ne. 0)
+$     if (NOPPMD .le. 0)
 $     then
 $         cc 'DEF_UNX' /object = [.'dest']PPMD8.OBJ [.SZIP]PPMD8.C
 $         cc 'DEF_UNX' /object = [.'dest']PPMD8DEC.OBJ [.SZIP]PPMD8DEC.C
@@ -942,7 +989,7 @@ $     libr /object /replace 'lib_unzip' -
        [.'dest']ZIPINFO.OBJ, -
        [.'dest']VMS.OBJ
 $!
-$     if (AES_WG .ne. 0)
+$     if (AES_WG .gt. 0)
 $     then
 $         libr /object /replace 'lib_unzip' -
            [.'dest']AESCRYPT.OBJ, -
@@ -955,14 +1002,14 @@ $         libr /object /replace 'lib_unzip' -
            [.'dest']SHA1.OBJ
 $     endif
 $!
-$     if (LZMA .ne. 0)
+$     if (NOLZMA .le. 0)
 $     then
 $         libr /object /replace 'lib_unzip' -
            [.'dest']LZFIND.OBJ, -
            [.'dest']LZMADEC.OBJ
 $     endif
 $!
-$     if (PPMD .ne. 0)
+$     if (NOPPMD .le. 0)
 $     then
 $         libr /object /replace 'lib_unzip' -
            [.'dest']PPMD8.OBJ, -
@@ -1004,7 +1051,7 @@ $         libr /object /replace 'lib_libunzip' -
            [.'dest']MATCH.OBJ, -
            [.'dest']UNREDUCE.OBJ
 $!
-$         if (AES_WG .ne. 0)
+$         if (AES_WG .gt. 0)
 $         then
 $             libr /object /replace 'lib_libunzip' -
                [.'dest']AESCRYPT.OBJ, -
@@ -1017,14 +1064,14 @@ $             libr /object /replace 'lib_libunzip' -
                [.'dest']SHA1.OBJ
 $         endif
 $!
-$         if (LZMA .ne. 0)
+$         if (NOLZMA .le. 0)
 $         then
 $             libr /object /replace 'lib_libunzip' -
                [.'dest']LZFIND.OBJ, -
                [.'dest']LZMADEC.OBJ
 $         endif
 $!
-$         if (PPMD .ne. 0)
+$         if (NOPPMD .le. 0)
 $         then
 $             libr /object /replace 'lib_libunzip' -
                [.'dest']PPMD8.OBJ, -
@@ -1061,7 +1108,7 @@ $     link /executable = [.'dest']'unzx_unx'.EXE -
 $!
 $ endif
 $!
-$!----------------------- UnZip (CLI interface) section ----------------------
+$!------------------- UnZip (CLI interface) section --------------------
 $!
 $! Process the CLI help file, if desired.
 $!
@@ -1144,7 +1191,7 @@ $     link /executable = [.'dest']'unzx_cli'.EXE -
 $!
 $ endif
 $!
-$!-------------------------- UnZipSFX section --------------------------------
+$!------------------------- UnZipSFX section ---------------------------
 $!
 $ if (MAKE_OBJ)
 $ then
@@ -1187,7 +1234,7 @@ $     libr /object /replace 'lib_unzipsfx' -
        [.'dest']UBZ2ERR_.OBJ, -
        [.'dest']VMS_.OBJ
 $!
-$     if (AES_WG .ne. 0)
+$     if (AES_WG .gt. 0)
 $     then
 $         libr /object /replace 'lib_unzipsfx' -
            [.'dest']AESCRYPT.OBJ, -
@@ -1200,14 +1247,14 @@ $         libr /object /replace 'lib_unzipsfx' -
            [.'dest']SHA1.OBJ
 $     endif
 $!
-$     if (LZMA .ne. 0)
+$     if (NOLZMA .le. 0)
 $     then
 $         libr /object /replace 'lib_unzipsfx' -
            [.'dest']LZFIND.OBJ, -
            [.'dest']LZMADEC.OBJ
 $     endif
 $!
-$     if (PPMD .ne. 0)
+$     if (NOPPMD .le. 0)
 $     then
 $         libr /object /replace 'lib_unzipsfx' -
            [.'dest']PPMD8.OBJ, -
@@ -1242,14 +1289,14 @@ $     link /executable = [.'dest']'unzsfx_unx'.EXE -
 $!
 $ endif
 $!
-$!--------------------- UnZipSFX (CLI interface) section ---------------------
+$!----------------- UnZipSFX (CLI interface) section -------------------
 $!
 $ if (MAKE_OBJ)
 $ then
 $!
 $! Compile the SFX CLI sources.
 $!
-$     cc 'DEF_SXCLI' /object = [.'dest']UNZSXCLI.OBJ UNZIP.C
+$     cc 'DEF_SXCLI' /object = [.'dest']UNZSFXCLI.OBJ UNZIP.C
 $     cc 'DEF_SXCLI' /object = [.'dest']CMDLINE_.OBJ -
        [.VMS]CMDLINE.C
 $!
@@ -1275,7 +1322,7 @@ $!
 $! Link the SFX CLI executable.
 $!
 $     link /executable = [.'dest']'unzsfx_cli'.EXE -
-       SYS$DISK:[.'dest']UNZSXCLI.OBJ, -
+       SYS$DISK:[.'dest']UNZSFXCLI.OBJ, -
        'lib_unzipsfxcli' /library, -
        'lib_unzipsfx' /library, -
        'lib_bzip2_opts' -
@@ -1286,7 +1333,7 @@ $     link /executable = [.'dest']'unzsfx_cli'.EXE -
 $!
 $ endif
 $!
-$!----------------------------- Symbols section ------------------------------
+$!------------------------- Symbols section ----------------------------
 $!
 $ if (MAKE_SYM)
 $ then
diff --git a/vms/check_large.com b/vms/check_large.com
new file mode 100755 (executable)
index 0000000..16374de
--- /dev/null
@@ -0,0 +1,102 @@
+$! CHECK_LARGE.COM
+$!
+$!     Info-ZIP VMS procedure to verify large-file support.
+$!
+$!     Last revised:  2014-10-10
+$!
+$!----------------------------------------------------------------------
+$! Copyright (c) 2014 Info-ZIP.  All rights reserved.
+$!
+$! See the accompanying file LICENSE, version 2009-Jan-2 or later (the
+$! contents of which are also included in zip.h) for terms of use.  If,
+$! for some reason, all these files are missing, the Info-ZIP license
+$! may also be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
+$!----------------------------------------------------------------------
+$!
+$! Compile, link, and run a C test program to verify large-file support.
+$!
+$! Useful only on Alpha (IA64 always has support; VAX always lacks
+$! support), so assume CC is DEC/Compaq/HP C.
+$!
+$! Work in the [.'P1'] destination directory.
+$! Set the P2 logical name to a non-null value for success.
+$! P3 and P4 may be used for qualifiers on the DEFINE command.
+$!
+$! For testing, define logical name IZ_CHECK_LARGE_STATUS to use that
+$! (fake) test status result.
+$!
+$ dest = p1
+$!
+$ set noon
+$!
+$ file_temp_name = f$parse( -
+   f$environment( "PROCEDURE"), , , "NAME", "SYNTAX_ONLY")
+$ file_temp_name = "[.''p1']"+ file_temp_name+ "_"+ f$getjpi( 0, "PID")
+$ file_temp_name_exe = file_temp_name+ ".exe"
+$!
+$! Create the test program file.
+$!
+$ create 'file_temp_name'.c
+#define _LARGEFILE
+#include <stdio.h>
+#include <stdlib.h>
+int main( int argc, char **argv)
+{
+    if (sizeof( off_t) >= 8)
+        return EXIT_SUCCESS;
+    else
+        return EXIT_FAILURE;
+}
+$!
+$! Compile the test program (quietly), and delete the source file.
+$!
+$ define /user_mode sys$error nl:
+$ define /user_mode sys$output nl:
+$ cc /nolist /object = [.'p1'] 'file_temp_name'.c
+$ sts = $status
+$ delete 'file_temp_name'.c;*
+$ if (sts)
+$ then
+$!
+$!    Link the test program (quietly), and delete the object file.
+$!
+$     define /user_mode sys$error nl:
+$     define /user_mode sys$output nl:
+$     link /nomap /executable = [.'p1'] 'file_temp_name'.obj
+$     sts = $status
+$     delete 'file_temp_name'.obj;*
+$     if (sts)
+$     then
+$!
+$!        Run the test program (quietly).
+$!
+$         define /user_mode sys$error nl:
+$         define /user_mode sys$output nl:
+$         run 'file_temp_name_exe'
+$         sts = $status
+$     endif
+$ endif
+$!
+$! Delete the executable file, if it exists.
+$!
+$ if (f$search( file_temp_name_exe) .nes. "")
+$ then
+$     delete 'file_temp_name_exe';*
+$ endif
+$!
+$ fake_test_status = f$trnlnm( "IZ_CHECK_LARGE_STATUS")
+$ if (fake_test_status .nes. "")
+$ then
+$     sts = fake_test_status
+$ endif
+$!
+$ if (sts)
+$ then
+$     if (p2 .eqs. "")
+$     then
+$         write sys$output "true"
+$     else
+$         define 'p3' 'p2' "true" 'p4'
+$     endif
+$ endif
+$!
index 04d1212..9a643b4 100644 (file)
@@ -245,6 +245,7 @@ $DESCRIPTOR(cli_super_quiet,    "QUIET.SUPER");         /* -qq */
 $DESCRIPTOR(cli_test,           "TEST");                /* -t */
 $DESCRIPTOR(cli_pipe,           "PIPE");                /* -p */
 $DESCRIPTOR(cli_password,       "PASSWORD");            /* -P */
+$DESCRIPTOR(cli_names_char_set, "NAMES.CHAR_SET");      /* -0, -0- */
 $DESCRIPTOR(cli_names_down,     "NAMES.DOWNCASE");      /* -L, -LL */
 $DESCRIPTOR(cli_names_down_all, "NAMES.DOWNCASE.ALL");  /* -LL */
 $DESCRIPTOR(cli_names_nodown,   "NAMES.NODOWNCASE");    /* -L-L- */
@@ -1110,16 +1111,35 @@ vms_unzip_cmdline (int *argc_p, char ***argv_p)
 
         /*
          * Transform names.
+         * Do not map FAT/NTFS names.
          * Convert names to ODS2 restrictions.
          * Convert spaces in names to underscores.
          * Clear any existing "-2"/"-s" option with "-2-"/"-s-", then
          * add the desired "2"/"s" value.
          */
+#define OPT_0   "-0"            /* "-0"  Do not map FAT/NTFS names. */
+#define OPT_0N  "-0-"           /* "-0-" Map FAT/NTFS names. */
 #define OPT_2   "-2-2"          /* "-2"  Convert names to ODS2. */
 #define OPT_2N  "-2-"           /* ""    Normal extract (default). */
 #define OPT_S   "-s-s"          /* "-s"  Convert spaces. */
 #define OPT_SN  "-s-"           /* ""    Preserve spaces (default). */
 
+        status = cli$present( &cli_names_char_set);
+        if ((status & 1) || (status == CLI$_NEGATED))
+        {
+            if (status == CLI$_NEGATED)
+            {
+                /* /NAMES = NOCHAR_SET */
+                opt = OPT_0;
+            }
+            else
+            {
+                /* /NAMES = CHAR_SET */
+                opt = OPT_0N;
+            }
+            ADD_ARG( opt);
+        }
+
         status = cli$present( &cli_names_nodown);
         if (status & 1)
         {
index cb8827b..b5c2f4d 100755 (executable)
@@ -2,10 +2,10 @@ $! COLLECT_DEPS.COM
 $!
 $!    Info-ZIP VMS procedure to collect MMS/MMK dependencies.
 $!
-$!    Last revised:  2013-11-29
+$!    Last revised:  2014-10-08
 $!
 $!----------------------------------------------------------------------
-$! Copyright (c) 2004-2013 Info-ZIP.  All rights reserved.
+$! Copyright (c) 2004-2014 Info-ZIP.  All rights reserved.
 $!
 $! See the accompanying file LICENSE, version 2009-Jan-2 or later (the
 $! contents of which are also included in zip.h) for terms of use.  If,
@@ -52,7 +52,7 @@ $! Include proper-inclusion-check preface.
 $!
 $ incl_macro = "INCL_"+ f$parse( p2, , , "NAME", "SYNTAX_ONLY")
 $ write deps_out "#"
-$ write deps_out "# ''p1' - MMS (or MMK) Source Dependency File."
+$ write deps_out "#    ''p1' -- MMS (or MMK) Source Dependency File."
 $ write deps_out "#"
 $ write deps_out ""
 $ write deps_out -
index cd36dbd..48f1321 100644 (file)
@@ -1,11 +1,11 @@
 # DESCRIP.MMS
 #
-#    UnZip 6.1 for VMS - MMS (or MMK) Description File.
+#    UnZip 6.10 for VMS -- MMS (or MMK) Description File.
 #
-#    Last revised:  2013-11-29
+#    Last revised:  2014-10-08
 #
 #----------------------------------------------------------------------
-# Copyright (c) 2001-2013 Info-ZIP.  All rights reserved.
+# Copyright (c) 2001-2014 Info-ZIP.  All rights reserved.
 #
 # See the accompanying file LICENSE, version 2009-Jan-2 or later (the
 # contents of which are also included in zip.h) for terms of use.  If,
 #
 # Optional macros:
 #
-#    AES_WG=1       Enable AES_WG encryption support.  By default, the
-#                   SFX programs are built without AES_WG support.  Add
+#    AES_WG=1       Enable/disable AES_WG encryption support.  Specify
+#    NOAES_WG=1     either AES_WG=1 or NOAES_WG=1 to skip the [.aes_wg]
+#                   source directory test.  By default, the SFX programs
+#                   are built without AES_WG support.  Add
 #                   "CRYPT_AES_WG_SFX=1" to the LOCAL_UNZIP C macros to
-#                   enable it.  (See LOCAL_UNZIP, below.)
+#                   enable it.  (See LOCAL_UNZIP, below.) 
 #
 #    CCOPTS=xxx     Compile with CC options xxx.  For example:
 #                   CCOPTS=/ARCH=HOST
 #    TRC=1          Default is /NOTRACEBACK, but TRC=1 enables link with
 #                   /TRACEBACK without compiling for debug.
 #
-#    IZ_BZIP2=dev:[dir]  Build with optional BZIP2 support.  The value
-#                        of the MMS macro, ("dev:[dir]", or a suitable
-#                   logical name) tells where to find "bzlib.h".  The
-#                   BZIP2 object library (LIBBZ2_NS.OLB) is expected to
-#                   be in a "[.dest]" directory under that one
+#    IZ_BZIP2=dev:[dir]  Direct/disable with optional bzip2 support.
+#    NOIZ_BZIP2=1        By default, bzip2 support is enabled, and uses
+#                   the bzip2 source kit supplied in the [.bzip2]
+#                   directory.  Specify NOIZ_BZIP2=1 to disable bzip2
+#                   support.  Specify IZ_BZIP2 with a value
+#                   ("dev:[dir]", or a suitable logical name) to use the
+#                   bzip2 header file and object library found there.
+#                   The bzip2 object library (LIBBZ2_NS.OLB) is expected
+#                   to be in a simple "[.dest]" directory under that one
 #                   ("dev:[dir.ALPHAL]", for example), or in that
-#                   directory itself.  See also USEBZ2=1, below.)
-#                   By default, the SFX programs are built without BZIP2
-#                   support.  Add "BZIP2_SFX=1" to the LOCAL_UNZIP C
-#                   macros to enable it.  (See LOCAL_UNZIP, below.)
+#                   directory itself.)  By default, the SFX programs are
+#                   built without bzip2 support.  Add "BZIP2_SFX=1" to
+#                   the LOCAL_UNZIP C macros to enable it.  (See
+#                   LOCAL_UNZIP, below.)
 #
 #    IZ_ZLIB=dev:[dir]  Use ZLIB compression library instead of internal
 #                       compression routines.  The value of the MMS
 #                   ("dev:[dir.ALPHAL]", for example), or in that
 #                   directory itself.
 #
-#    LARGE=1        Enable large-file (>2GB) support.  Non-VAX only.
+#    LARGE=1        Enable/disable large-file (>2GB) support.  Always
+#    NOLARGE=1      disabled on VAX.  Enabled by default on Alpha and
+#                   IA64.  On Alpha, by default, large-file support is
+#                   tested, and the build will fail if that test fails.
+#                   Specify NOLARGE=1 explicitly to disable support (and
+#                   to skip the test on Alpha).
 #
 #    LIBUNZIP=1     Build LIBIZUNZIP.OLB as a callable UnZip library.
 #
 #                   example:
 #                   "LOCAL_UNZIP=NO_EXCEPT_SIGNALS=1, NO_SYMLINKS=1"
 #
-#    LZMA=1         Enable LZMA compression support.  By default, the
-#                   SFX programs are built without LZMA support.  Add
-#                   "LZMA_SFX=1" to the LOCAL_UNZIP C macros to enable
-#                   it.  (See LOCAL_UNZIP, above.)
+#    NOLZMA=1       Disable LZMA compression support, which is enabled
+#                   by default for the normal UnZip programs.  By
+#                   default, the SFX programs are built without LZMA
+#                   support.  Add "LZMA_SFX=1" to the LOCAL_UNZIP C
+#                   macros to enable it.  (See LOCAL_UNZIP, above.)
+#
+#    NOPPMD=1       Disable PPMd compression support, which is enabled
+#                   by default for the normal UnZip programs.  By
+#                   default, the SFX programs are built without PPMd
+#                   support.  Add "PPMD_SFX=1" to the LOCAL_UNZIP C
+#                   macros to enable it.  (See LOCAL_UNZIP, above.)
 #
 #    NOSHARE=1      Link /NOSYSSHR (not using shareable images).
 #    NOSHARE=OLDVAX Link /NOSYSSHR on VAX for:
 #                      DEC C with VMS before V7.3.
 #                      VAX C without DEC C RTL (DEC C not installed).
 #
-#    PPMD=1         Enable PPMd compression support.  By default, the
-#                   SFX programs are built without PPMd support.  Add
-#                   "PPMD_SFX=1" to the LOCAL_UNZIP C macros to enable
-#                   it.  (See LOCAL_UNZIP, above.)
-#
 #    PROD=subdir    Use [.subdir] as the destination for
 #                   architecture-specific product files (.EXE, .OBJ,
 #                   .OLB, and so on).  The default is a name
 #                   [.VMS]DESCRIP_SRC.MMS.  Note that using this option
 #                   carelessly can confound the CLEAN* targets.
 #
-#    USEBZ2=1       Build with optional BZIP2 support.  This macro
-#                   is a shortcut for IZ_BZIP2=SYS$DISK:[.BZIP2].
-#                   Additionally, it causes invocation of the
-#                   UnZip-supplied bzip2 builder, [.bzip2]descrbz2.mms,
-#                   which should lead to a bzip2-enabled build of UnZip
-#                   directly from the sources.
-#
 # VAX-specific optional macros:
 #
 #    VAXC=1         Use the VAX C compiler, assuming "CC" runs it.
@@ -545,9 +551,12 @@ $(OPT_ID_SFX) :
 # Local BZIP2 object library.
 
 $(LIB_BZ2_LOCAL) :
-       $(MMS) $(MMSQUALIFIERS) /DESCR=$(IZ_BZIP2)descrbz2.mms'macro' -
-          /MACRO = (SRCDIR=$(IZ_BZIP2), DSTDIR=$(BZ2DIR_BIN), -
-          DEST=$(IZ_BZIP2)$(DESTM)) $(MMSTARGETS)
+       def_dev_dir_orig = f$environment( "default")
+       set default $(IZ_BZIP2)
+       $(MMS) $(MMSQUALIFIERS) /DESCR=[.vms]descrip.mms -
+        $(IZ_BZIP2_MACROS) -
+        $(MMSTARGETS)
+       set default 'def_dev_dir_orig'
 
 # Normal UnZip executable.
 
index 63c6971..89135f3 100644 (file)
@@ -1,11 +1,11 @@
 # DESCRIP_MKDEPS.MMS
 #
-#    UnZip 6.1 for VMS - MMS Dependency Description File.
+#    UnZip 6.10 for VMS -- MMS Dependency Description File.
 #
-#    Last revised:  2013-11-29
+#    Last revised:  2014-10-09
 #
 #----------------------------------------------------------------------
-# Copyright (c) 2004-2013 Info-ZIP.  All rights reserved.
+# Copyright (c) 2004-2014 Info-ZIP.  All rights reserved.
 #
 # See the accompanying file LICENSE, version 2009-Jan-2 or later (the
 # contents of which are also included in zip.h) for terms of use.  If,
@@ -21,7 +21,7 @@
 #       " LZMA_SFX, PPMD_SFX, API_DOC, MEMDIAG"
 #    $ MMS /EXTEND /DESCRIP = [.VMS]DESCRIP_MKDEPS.MMS /SKIP -
 #       /MACRO = (AES_WG=1, IZ_BZIP2=iz_bzip2, IZ_ZLIB=iz_zlib, -
-#       LZMA=1, PPMD=1, LIBUNZIP=1, "LOCAL_UNZIP=''L_U'")
+#       LIBUNZIP=1, "LOCAL_UNZIP=''L_U'")
 #
 # If the IZ_AES_WG encryption source kit has not been installed, then
 # the macros AES_WG and CRYPT_AES_WG_SFX should not be defined.
index 924d97e..02af7b3 100644 (file)
@@ -1,11 +1,11 @@
 # DESCRIP_SRC.MMS
 #
-#    UnZip 6.1 for VMS - MMS (or MMK) Source Description File.
+#    UnZip 6.10 for VMS -- MMS (or MMK) Source Description File.
 #
-#    Last revised:  2013-11-29
+#    Last revised:  2014-10-10
 #
 #----------------------------------------------------------------------
-# Copyright (c) 2004-2013 Info-ZIP.  All rights reserved.
+# Copyright (c) 2004-2014 Info-ZIP.  All rights reserved.
 #
 # See the accompanying file LICENSE, version 2009-Jan-2 or later (the
 # contents of which are also included in zip.h) for terms of use.  If,
@@ -52,6 +52,8 @@ VAXC_OR_FORCE_VAXC = 1
 
 # Analyze architecture-related and option macros.
 
+# Compiler options on VAX.
+
 .IFDEF __ALPHA__                # __ALPHA__
 DECC = 1
 DESTM = ALPHA
@@ -79,12 +81,96 @@ UNK_DEST = 1
 .ENDIF                              # __IA64__
 .ENDIF                          # __ALPHA__
 
-.IFDEF LARGE                    # LARGE
-.IFDEF __VAX__                      # __VAX__
-.ELSE                               # __VAX__
+# AES_WG support.  Default to disabled, but the .FIRST rule will detect
+# the presence of the optional source kit, and advise accordingly.
+
+# Translate NO_AES_WG to NOAES_WG.
+.IFDEF NO_AES_WG                # NO_AES_WG
+.IFDEF NOAES_WG                     # NOAES_WG
+.ELSE                               # NOAES_WG
+NOAES_WG = 1
+.ENDIF                              # NOAES_WG
+.ENDIF                          # NO_AES_WG
+
+# Skip AES_WG check if AES_WG is explicitly disabled.
+.IFDEF NOAES_WG                 # NOAES_WG
+.IFDEF NOCHECK_AES_WG               # NOCHECK_AES_WG
+.ELSE                               # NOCHECK_AES_WG
+NOCHECK_AES_WG = 1
+.ENDIF                              # NOCHECK_AES_WG
+.ELSE                           # NOAES_WG
+.IFDEF AES_WG                       # AES_WG
+.ELSE                               # AES_WG
+.IFDEF NOCHECK_AES_WG                   # NOCHECK_AES_WG
+.ELSE                                   # NOCHECK_AES_WG
+CHECK_AES_WG = 1
+.ENDIF                                  # NOCHECK_AES_WG
+.ENDIF                              # AES_WG
+.ENDIF                          # NOAES_WG
+
+# Large-file support.  Always no on VAX.  Assume yes elsewhere.  On
+# Alpha, the .FIRST rule will detect incompatibility (before VMS V7.2).
+
+# Targets which can bypass the AES_WG test and, on Alpha, the (slow)
+# large-file test. 
+# (Not "" or ALL.  Could add help- and message-related.)
+
+TRGT_CLEAN = 1
+TRGT_CLEAN_ALL = 1
+TRGT_CLEAN_EXE = 1
+TRGT_CLEAN_OLB = 1
+TRGT_CLEAN_TEST = 1
+TRGT_DASHV = 1
+TRGT_HELP = 1
+TRGT_HELP_TEXT = 1
+TRGT_SLASHV = 1
+TRGT_TEST = 1
+TRGT_TEST_PPMD = 1
+
+TRGT = TRGT_$(MMSTARGETS)
+
+.IFDEF $(TRGT)                  # $(TRGT)
+.IFDEF NOCHECK_AES_WG               # NOCHECK_AES_WG
+.ELSE                               # NOCHECK_AES_WG
+NOCHECK_AES_WG = 1
+.ENDIF                              # NOCHECK_AES_WG
+.IFDEF __ALPHA__                    # __ALPHA__
+.IFDEF NOCHECK_LARGE                    # NOCHECK_LARGE
+.ELSE                                   # NOCHECK_LARGE
+NOCHECK_LARGE = 1
+.ENDIF                                  # NOCHECK_LARGE
+.ENDIF                              # __ALPHA__
+.ENDIF                          # $(TRGT)
+
+.IFDEF __VAX__                  # __VAX__
+.IFDEF NOLARGE                      # NOLARGE
+.ELSE                               # NOLARGE
+NOLARGE = 1
+.ENDIF                              # NOLARGE
+.ENDIF                          # __VAX__
+
+# Translate NO_LARGE to NOLARGE.
+.IFDEF NO_LARGE                 # NO_LARGE
+.IFDEF NOLARGE                      # NOLARGE
+.ELSE                               # NOLARGE
+NOLARGE = 1
+.ENDIF                              # NOLARGE
+.ENDIF                          # NO_LARGE
+
+.IFDEF NOLARGE                  # NOLARGE
+.ELSE                           # NOLARGE
+.IFDEF LARGE                        # LARGE
+.ELSE                               # LARGE
+LARGE = 1
+.IFDEF __ALPHA__                        # __ALPHA__
+.IFDEF NOCHECK_LARGE                        # NOCHECK_LARGE
+.ELSE                                       # NOCHECK_LARGE
+CHECK_LARGE = 1
+.ENDIF                                      # NOCHECK_LARGE
+.ENDIF                                  # __ALPHA__
+.ENDIF                              # LARGE
 DESTL = L
-.ENDIF                              # __VAX__
-.ENDIF                          # LARGE
+.ENDIF                          # NOLARGE
 
 DEST_STD = $(DESTM)$(DESTL)
 .IFDEF PROD                     # PROD
@@ -127,21 +213,101 @@ NON_VAX_CMPL = 1
 .ENDIF                              # VAXC_OR_FORCE_VAXC
 .ENDIF                          # __VAX__
 
-# Shortcut to include BZIP2 support from the optional bzip2 source subdir
-# in the UnZip source location.
+# BZIP2 options.  (Default: IZ_BZIP2=[.bzip2].  To disable, define
+# NO_IZ_BZIP2 or NOIZ_BZIP2.)
 
-BZ2DIR_BIN = SYS$DISK:[.BZIP2.$(DESTM)]
+BZ2DIR_BIN = [.BZIP2.$(DEST_STD)]
+BZ2DIR_BIN_DIR = [.BZIP2]$(DEST_STD).DIR
 BZ2_OLB = LIBBZ2_NS.OLB
 LIB_BZ2_LOCAL = $(BZ2DIR_BIN)$(BZ2_OLB)
 
-.IFDEF USEBZ2                   # USEBZ2
+# Translate NO_IZ_BZIP2 to NOIZ_BZIP2.
+.IFDEF NO_IZ_BZIP2              # NO_IZ_BZIP2
+.IFDEF NOIZ_BZIP2                   # NOIZ_BZIP2
+.ELSE                               # NOIZ_BZIP2
+NOIZ_BZIP2 = 1
+.ENDIF                              # NOIZ_BZIP2
+.ENDIF                          # NO_IZ_BZIP2
+
+.IFDEF NOIZ_BZIP2               # NOIZ_BZIP2
+.IFDEF IZ_BZIP2                     # IZ_BZIP2
+IZ_BZIP2_ERR = 1
+.ELSE                               # IZ_BZIP2
+.ENDIF                              # IZ_BZIP2
+.ELSE                           # NOIZ_BZIP2
 .IFDEF IZ_BZIP2                     # IZ_BZIP2
 .ELSE                               # IZ_BZIP2
 IZ_BZIP2 = SYS$DISK:[.BZIP2]
 LIB_BZ2_DEP = $(LIB_BZ2_LOCAL)
 BUILD_BZIP2 = 1
+.IFDEF LARGE                            # LARGE
+IZ_BZIP2_MACROS = /MACRO = (LARGE=1)
+.ENDIF                                  # LARGE
 .ENDIF                              # IZ_BZIP2
-.ENDIF                          # USEBZ2
+.ENDIF                          # NOIZ_BZIP2
+
+.IFDEF IZ_BZIP2                 # IZ_BZIP2
+CDEFS_BZ = , BZIP2_SUPPORT
+CFLAGS_INCL = /include = ([], [.VMS])
+LIB_BZIP2_OPTS = LIB_BZIP2:$(BZ2_OLB) /library,
+.ENDIF                          # IZ_BZIP2
+
+# LZMA options.  (Default: LZMA.  To disable, define NO_LZMA or NOLZMA.)
+
+# Translate NO_LZMA to NOLZMA.
+.IFDEF NO_LZMA                  # NO_LZMA
+.IFDEF NOLZMA                       # NOLZMA
+.ELSE                               # NOLZMA
+NOLZMA = 1
+.ENDIF                              # NOLZMA
+.ENDIF                          # NO_LZMA
+
+.IFDEF NOLZMA                   # NOLZMA
+.IFDEF LZMA                         # LZMA
+LZMA_ERR = 1
+.ELSE                               # LZMA
+.ENDIF                              # LZMA
+.ELSE                           # NOLZMA
+.IFDEF LZMA                         # LZMA
+.ELSE                               # LZMA
+LZMA = 1
+.ENDIF                              # LZMA
+.ENDIF                          # NOLZMA
+
+.IFDEF LZMA                     # LZMA
+LZMA_PPMD = 1
+.IFDEF __VAX__                      # __VAX__
+CDEFS_LZMA = , LZMA_SUPPORT, _SZ_NO_INT_64
+.ELSE                               # __VAX__
+CDEFS_LZMA = , LZMA_SUPPORT
+.ENDIF                              # __VAX__
+.IFDEF CFLAGS_INCL                  # CFLAGS_INCL
+.ELSE                               # CFLAGS_INCL
+CFLAGS_INCL = /include = ([], [.VMS])
+.ENDIF                              # CFLAGS_INCL
+.ENDIF                          # LZMA
+
+# PPMd options.  (Default: PPMD.  To disable, define NO_PPMD or NOPPMD.)
+
+# Translate NO_PPMD to NOPPMD.
+.IFDEF NO_PPMD                  # NO_PPMD
+.IFDEF NOPPMD                       # NOPPMD
+.ELSE                               # NOPPMD
+NOPPMD = 1
+.ENDIF                              # NOPPMD
+.ENDIF                          # NO_PPMD
+
+.IFDEF NOPPMD                   # NOPPMD
+.IFDEF PPMD                         # PPMD
+PPMD_ERR = 1
+.ELSE                               # PPMD
+.ENDIF                              # PPMD
+.ELSE                           # NOPPMD
+.IFDEF PPMD                         # PPMD
+.ELSE                               # PPMD
+PPMD = 1
+.ENDIF                              # PPMD
+.ENDIF                          # NOPPMD
 
 # Complain about any problems (and die) if warranted.  Otherwise, show
 # optional package directories being used, and the destination
@@ -186,49 +352,115 @@ BUILD_BZIP2 = 1
        @ write sys$output ""
        I_WILL_DIE_NOW.  /$$$$INVALID$$$$
 .ELSE                                       # LARGE_VAX
-.IFDEF IZ_BZIP2                                 # IZ_BZIP2
-.IFDEF BUILD_BZIP2                                  # BUILD_BZIP2
-       @ if (f$search( "$(IZ_BZIP2)bzlib.h") .eqs. "") then -
+.IFDEF IZ_BZIP2_ERR                             # IZ_BZIP2_ERR
+       @ write sys$output -
+ "   Macro ""IZ_BZIP2"" conflicts with ""NOIZ_BZIP2"" or ""NO_IZ_BZIP2""."
+       @ write sys$output ""
+       I_WILL_DIE_NOW.  /$$$$INVALID$$$$
+.ELSE                                           # IZ_BZIP2_ERR
+.IFDEF LZMA_ERR                                     # LZMA_ERR
+       @ write sys$output -
+ "   Macro ""LZMA"" conflicts with ""NOLZMA"" or ""NO_LZMA""."
+       @ write sys$output ""
+       I_WILL_DIE_NOW.  /$$$$INVALID$$$$
+.ELSE                                               # LZMA_ERR
+.IFDEF PPMD_ERR                                         # PPMD_ERR
+       @ write sys$output -
+ "   Macro ""PPMD"" conflicts with ""NOPPMD"" or ""NO_PPMD""."
+       @ write sys$output ""
+       I_WILL_DIE_NOW.  /$$$$INVALID$$$$
+.ELSE                                                   # PPMD_ERR
+.IFDEF IZ_BZIP2                                             # IZ_BZIP2
+.IFDEF BUILD_BZIP2                                              # BUILD_BZIP2
+       @ no_bzlib_h = (f$search( "$(IZ_BZIP2)bzlib.h") .eqs. "")
+       @ if (no_bzlib_h) then -
           write sys$output "   Can not find header file $(IZ_BZIP2)bzlib.h"
-       @ if (f$search( "$(IZ_BZIP2)bzlib.h") .eqs. "") then -
+       @ if (no_bzlib_h) then -
           write sys$output ""
-       @ if (f$search( "$(IZ_BZIP2)bzlib.h") .eqs. "") then -
+       @ if (no_bzlib_h) then -
           I_WILL_DIE_NOW.  /$$$$INVALID$$$$
        @ write sys$output "   BZIP2 dir: $(BZ2DIR_BIN)"
        @ define lib_bzip2 $(BZ2DIR_BIN)
-       @ if (f$search( "$(IZ_BZIP2)$(DESTM).dir") .eqs. "") then -
+       @ if (f$search( "$(BZ2DIR_BIN_DIR)") .eqs. "") then -
           create /directory $(BZ2DIR_BIN)
-.ELSE                                               # BUILD_BZIP2
+.ELSE                                                           # BUILD_BZIP2
        @ @[.VMS]FIND_BZIP2_LIB.COM $(IZ_BZIP2) $(SEEK_BZ) $(BZ2_OLB) lib_bzip2
-       @ if (f$trnlnm( "lib_bzip2") .eqs. "") then -
+       @ no_lib_bzip2 = (f$trnlnm( "lib_bzip2") .eqs. "")
+       @ if (no_lib_bzip2) then -
           write sys$output "   Can not find BZIP2 object library."
-       @ if (f$trnlnm( "lib_bzip2") .eqs. "") then -
+       @ if (no_lib_bzip2) then -
           write sys$output ""
-       @ if (f$trnlnm( "lib_bzip2") .eqs. "") then -
+       @ if (no_lib_bzip2) then -
           I_WILL_DIE_NOW.  /$$$$INVALID$$$$
        @ write sys$output "   BZIP2 dir: ''f$trnlnm( "lib_bzip2")'"
-.ENDIF                                              # BUILD_BZIP2
+.ENDIF                                                          # BUILD_BZIP2
        @ write sys$output ""
        @ define incl_bzip2 $(IZ_BZIP2)
-.ENDIF                                          # IZ_BZIP2
-.IFDEF IZ_ZLIB                                  # IZ_ZLIB
+.ENDIF                                                      # IZ_BZIP2
+.IFDEF IZ_ZLIB                                              # IZ_ZLIB
        @ @[.VMS]FIND_BZIP2_LIB.COM $(IZ_ZLIB) $(SEEK_BZ) LIBZ.OLB lib_zlib
-       @ if (f$trnlnm( "lib_zlib") .eqs. "") then -
+       @ no_lib_zlib = (f$trnlnm( "lib_zlib") .eqs. "")
+       @ if (no_lib_zlib) then -
           write sys$output "   Can not find ZLIB object library."
-       @ if (f$trnlnm( "lib_zlib") .eqs. "") then -
+       @ if (no_lib_zlib) then -
           write sys$output ""
-       @ if (f$trnlnm( "lib_zlib") .eqs. "") then -
+       @ if (no_lib_zlib) then -
           I_WILL_DIE_NOW.  /$$$$INVALID$$$$
        @ write sys$output "   ZLIB dir:  ''f$trnlnm( "lib_zlib")'"
        @ write sys$output ""
        @ define incl_zlib $(IZ_ZLIB)
        @ @[.VMS]FIND_BZIP2_LIB.COM $(IZ_ZLIB) -
           contrib.infback9 infback9.h incl_zlib_contrib_infback9
-.ENDIF                                          # IZ_ZLIB
+.ENDIF                                                      # IZ_ZLIB
        @ write sys$output "   Destination: [.$(DEST)]"
        @ write sys$output ""
        if (f$search( "$(DEST).DIR;1") .eqs. "") then -
         create /directory [.$(DEST)]
+.IFDEF CHECK_LARGE                                          # CHECK_LARGE
+       @ write sys$output ""
+       @ write sys$output "   Verifying large-file support..."
+       @ @[.VMS]CHECK_LARGE.COM $(DEST) large_ok
+       @ no_large = (f$trnlnm( "large_ok") .eqs. "")
+       @ if (no_large) then -
+          write sys$output -
+           "   Large-file support not available with this VMS/CRTL version."
+       @ if (no_large) then -
+          write sys$output "   Add ""/MACRO = NOLARGE=1""."
+       @ if (no_large) then -
+          I_WILL_DIE_NOW.  /$$$$INVALID$$$$
+       @ write sys$output "   Large-file support ok."
+       @ write sys$output ""
+.ENDIF                                                      # CHECK_LARGE
+.IFDEF NOCHECK_AES_WG                                       # NOCHECK_AES_WG
+.ELSE                                                       # NOCHECK_AES_WG
+.IFDEF AES_WG                                                   # AES_WG
+       @ no_aes_wg_kit = (f$search( "[.aes_wg]aes.h") .eqs. "")
+       @ if (no_aes_wg_kit) then -
+          write sys$output ""
+       @ if (no_aes_wg_kit) then -
+          write sys$output -
+           "   Optional AES_WG source kit ([.aes_wg]) not found."
+       @ if (no_aes_wg_kit) then -
+          write sys$output ""
+       @ if (no_aes_wg_kit) then -
+          I_WILL_DIE_NOW.  /$$$$INVALID$$$$
+.ELSE                                                           # AES_WG
+       @ aes_wg_kit = (f$search( "[.aes_wg]aes.h") .nes. "")
+       @ if (aes_wg_kit) then -
+          write sys$output ""
+       @ if (aes_wg_kit) then -
+          write sys$output -
+           "   Optional AES_WG source kit found, but support not enabled."
+       @ if (aes_wg_kit) then -
+          write sys$output -
+           "   To enable AES_WG support, add ""/MACRO = AES_WG=1""."
+       @ if (aes_wg_kit) then -
+          write sys$output ""
+.ENDIF                                                          # AES_WG
+.ENDIF                                                      # NOCHECK_AES_WG
+.ENDIF                                                  # PPMD_ERR
+.ENDIF                                              # LZMA_ERR
+.ENDIF                                          # IZ_BZIP2_ERR
 .ENDIF                                      # LARGE_VAX
 .ENDIF                                  # NON_VAX_CMPL
 .ENDIF                              # VAX_MULTI_CMPL
@@ -240,31 +472,6 @@ BUILD_BZIP2 = 1
 CDEFS_AES = , CRYPT_AES_WG
 .ENDIF                          # AES_WG
 
-# BZIP2 options.
-
-.IFDEF IZ_BZIP2                 # IZ_BZIP2
-CDEFS_BZ = , BZIP2_SUPPORT
-CFLAGS_INCL = /include = ([], [.VMS])
-LIB_BZIP2_OPTS = LIB_BZIP2:$(BZ2_OLB) /library,
-.ENDIF                          # IZ_BZIP2
-
-# LZMA options.
-
-.IFDEF LZMA                     # LZMA
-LZMA_PPMD = 1
-.IFDEF __VAX__                      # __VAX__
-CDEFS_LZMA = , LZMA_SUPPORT, _SZ_NO_INT_64
-.ELSE                               # __VAX__
-CDEFS_LZMA = , LZMA_SUPPORT
-.ENDIF                              # __VAX__
-.IFDEF CFLAGS_INCL                  # CFLAGS_INCL
-.ELSE                               # CFLAGS_INCL
-CFLAGS_INCL = /include = ([], [.VMS])
-.ENDIF                              # CFLAGS_INCL
-.ENDIF                          # LZMA
-
-# PPMd options.
-
 .IFDEF PPMD                     # PPMD
 .IFDEF LZMA                         # LZMA
 .IFDEF __VAX__                          # __VAX__
index fbd790c..69b330e 100644 (file)
@@ -137,6 +137,7 @@ Define      Type            MATCH_OPTS
        Keyword         WILD_MATCH_SLASH, Negatable
 
 Define Type            NAMES_KEYWORDS
+       Keyword         CHAR_SET, Negatable
        Keyword         DOWNCASE, VALUE(TYPE=DOWNCASE_OPTS), NonNegatable
        Keyword         NODOWNCASE, NonNegatable
        Keyword         ODS2, Negatable
index e6e4294..b99a14c 100644 (file)
@@ -6,7 +6,7 @@
 .!  Date:       12 Jul 94 (orig. UNZIP.RNH, 23 Oct 91)
 .!
 .!----------------------------------------------------------------------
-.! Copyright (c) 1991-2013 Info-ZIP.  All rights reserved.
+.! Copyright (c) 1991-2014 Info-ZIP.  All rights reserved.
 .!
 .! See the accompanying file LICENSE, version 2009-Jan-2 or later (the
 .! contents of which are also included in zip.h) for terms of use.  If,
@@ -602,7 +602,7 @@ regular filename character, the -W option would not work as expected on
 a wildcard file name specification.)
 .!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 <SUBTOPIC>
-/NAMES (-2, -L, -s)
+/NAMES (-0 -2, -L, -s)
 <NEXT>
 /NAMES
 <NEXT>
@@ -611,6 +611,10 @@ a wildcard file name specification.)
 Selects name transformations during extraction.  The keywords are:
 
 <LITERAL>
+[NO]CHAR_SET  CHAR_SET: Use CP850 character-set mapping on names
+              of archive members which originated on a FAT or
+              NTFS file system.  (Default condition.)
+              NOCHAR_SET: Do not map these archive member names.
 DOWNCASE      Convert filenames from all-uppercase operating
               systems to lowercase.  (-L)
 DOWNCASE=ALL  Convert all filenames to lowercase.  (-LL)
index dfedeeb..d1c25f7 100644 (file)
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -4362,13 +4362,13 @@ int dest_dev_name( char *path)
 
 int dest_struct_level( char *path)
 {
+    int acp_code = -1;
+
 #ifdef DVI$C_ACP_F11V5
 
     /* Should know about ODS5 file system.  Do actual check.
      * (This should be non-VAX with __CRTL_VER >= 70200000.)
      */
-
-    int acp_code = -1;
     int sts;
 
     struct dsc$descriptor_s dev_descr =
index 900a478..cf8ff28 100644 (file)
@@ -227,8 +227,8 @@ static int UnzipParseString(LPCSTR s, unsigned int *pargCee, char ***pargVee)
     str2 = strchr(str1, ' ');
 
     /*  Go through the string character by character, looking for instances
-        of two spaces together. Terminate when you find the trailing @
-    */
+     *  of two spaces together.  Terminate when you find the trailing @.
+     */
     while ((str2[0] != '\0') && (str2[0] != '@'))
     {
         while ((str2[0] == ' ') && (str2[1] == ' '))
@@ -249,11 +249,10 @@ static int UnzipParseString(LPCSTR s, unsigned int *pargCee, char ***pargVee)
 
 
     /* Okay, now we have gotten rid of any tabs and replaced them with
-       spaces, and have replaced multiple spaces with a single space. We
-       couldn't do this before because the folder names could have actually
-       contained these characters.
-    */
-
+     * spaces, and have replaced multiple spaces with a single space.  We
+     * couldn't do this before because the folder names could actually
+     * have contained these characters.
+     */
     str2 = str3 = str1;
 
     while ((str2[0] != '\0') && (str3[0] != '@'))
@@ -295,6 +294,26 @@ LPUSERFUNCTIONS lpUserFunc;
 
     SETLOCALE(LC_CTYPE, "");
 
+#ifdef UNICODE_SUPPORT
+    /* Initialize Unicode. */
+    G.unicode_escape_all = 0;
+    G.unicode_mismatch = 0;
+
+    G.unipath_version = 0;
+    G.unipath_checksum = 0;
+    G.unipath_filename = NULL;
+
+# ifdef WIN32_WIDE
+#  ifdef DYNAMIC_WIDE_NAME
+    G.unipath_widefilename = NULL;
+#  else /* def DYNAMIC_WIDE_NAME */
+    *G.unipath_widefilename = L'\0';
+#  endif /* def DYNAMIC_WIDE_NAME [else] */
+
+    G.has_win32_wide = has_win32_wide();
+# endif /* def WIN32_WIDE */
+#endif /* UNICODE_SUPPORT */
+
     if (!G.lpUserFunctions->print ||
         !G.lpUserFunctions->sound ||
         !G.lpUserFunctions->replace)
@@ -413,31 +432,34 @@ LPDCL lpDCL;
 #endif
                      );
 
-    if (lpDCL->lpszExtractDir != NULL && G.extract_flag)
-       {
-#ifndef CRTL_CP_IS_ISO
-       char *pExDirRoot = (char *)malloc(strlen(lpDCL->lpszExtractDir)+1);
-
-       if (pExDirRoot == NULL)
-           return FALSE;
-       ISO_TO_INTERN(lpDCL->lpszExtractDir, pExDirRoot);
-#else /* ndef CRTL_CP_IS_ISO */
-#  define pExDirRoot lpDCL->lpszExtractDir
-#endif /* ndef CRTL_CP_IS_ISO [else] */
-       if (strlen(pExDirRoot) >= FILNAMSIZ)
-           {
-           /* The supplied extract root path exceed the filename size limit. */
-#ifndef CRTL_CP_IS_ISO
-           free(pExDirRoot);
-#endif
-           return FALSE;
-           }
-       uO.exdir = pExDirRoot;
-       }
+    /* 2014-09-03 SMS.
+     * Always allocate pExDirRoot (uO.exdir), because
+     * process.c:process_zipfiles() and free_G_buffers() now expect
+     * this.
+     */
+    if ((lpDCL->lpszExtractDir != NULL) && G.extract_flag)
+      {
+      char *pExDirRoot = (char *)malloc(strlen(lpDCL->lpszExtractDir)+1);
+      if (pExDirRoot == NULL)
+         return FALSE;
+
+#ifdef CRTL_CP_IS_ISO
+      strcpy(pExDirRoot, lpDCL->lpszExtractDir);
+#else /* def CRTL_CP_IS_ISO */
+      ISO_TO_INTERN(lpDCL->lpszExtractDir, pExDirRoot);
+#endif /* def CRTL_CP_IS_ISO [else] */
+      if (strlen(pExDirRoot) >= FILNAMSIZ)
+         {
+         /* The supplied extract root path exceeds the filename size limit. */
+         free(pExDirRoot);
+         return FALSE;
+         }
+      uO.exdir = pExDirRoot;
+      }
     else
-       {
-       uO.exdir = (char *)NULL;
-       }
+      {
+      uO.exdir = (char *)NULL;
+      }
 
 /* G.wildzipfn needs to be initialized so that do_wild does not wind
  * up clearing out the zip file name when it returns in process.c
@@ -451,12 +473,14 @@ LPDCL lpDCL;
  * compatibility?)
  */
     if (strlen(lpDCL->lpszZipFN) >= FILNAMSIZ)
-       /* length of supplied archive name exceed the system's filename limit */
-       return FALSE;
+      {
+      /* Length of supplied archive name exceeds the system's filename limit. */
+      return FALSE;
+      }
 
     G.wildzipfn = GlobalAlloc(GPTR, FILNAMSIZ);
     if (G.wildzipfn == NULL)
-       return FALSE;
+      return FALSE;
 
     lstrcpy(G.wildzipfn, lpDCL->lpszZipFN);
     _ISO_INTERN(G.wildzipfn);
@@ -1012,8 +1036,9 @@ int WINAPI Wiz_Grep(LPSTR archive, LPSTR file, LPSTR pattern, int cmd,
     UzpBuffer retstr;
 
     /* Turn off any windows printing functions, as they may not have been
-     * identified yet. There is no requirement that we initialize the
-     * dll with printing stuff for this. */
+     * identified yet.  There is no requirement that we initialize the
+     * dll with printing stuff for this.
+     */
     Wiz_NoPrinting(TRUE);
 
     if (!Wiz_UnzipToMemory(archive, file, lpUserFunctions, &retstr)) {
@@ -1070,7 +1095,8 @@ int WINAPI Wiz_Grep(LPSTR archive, LPSTR file, LPSTR pattern, int cmd,
         for (j = 0; j < patternLen; j++) {
             /* We cannot do strncmp here, as we may be dealing with a
              * "binary" file, such as a word processing file, or perhaps
-             * even a true executable of some sort. */
+             * even a true executable of some sort.
+             */
             if (p[j] != sz[j]) {
                 compare = FALSE;
                 break;
index c13c105..0fe49c1 100644 (file)
--- a/zipinfo.c
+++ b/zipinfo.c
@@ -2261,8 +2261,8 @@ static int zi_long(__G__ pEndprev, error_in_archive)
                         int i;
 
                         for (i = 0;  i < 16;  ++i)
-                            sprintf(&md5[i<<1], "%02x", ef_ptr[15-i]);
-                        md5[32] = '\0';
+                            sprintf(&md5[i<<1], "%02x", ef_ptr[18-i]);
+                        md5[32] = '\0'; /* Redundant? */
                         Info(slide, 0, ((char *)slide, LoadFarString(MD5data),
                           md5));
                         break;