From: Ben Gras Date: Tue, 2 Aug 2005 08:57:26 +0000 (+0000) Subject: Setup tweaks; bzip import X-Git-Tag: v3.1.0~486 X-Git-Url: http://zhaoyanbai.com/repos/doxygen.log?a=commitdiff_plain;h=acf6df8b0490836a62695e713d2a10571fdce2c9;p=minix.git Setup tweaks; bzip import --- diff --git a/commands/Makefile b/commands/Makefile index 17dd09291..43b7d6c85 100755 --- a/commands/Makefile +++ b/commands/Makefile @@ -30,6 +30,7 @@ all install clean:: cd awk && $(MAKE) $@ cd bc && $(MAKE) $@ cd byacc && $(MAKE) $@ + cd bzip2-1.0.3 && $(MAKE) $@ cd cawf && $(MAKE) $@ cd cron && $(MAKE) $@ cd de && $(MAKE) $@ diff --git a/commands/bzip2-1.0.3/CHANGES b/commands/bzip2-1.0.3/CHANGES new file mode 100644 index 000000000..e31b03a01 --- /dev/null +++ b/commands/bzip2-1.0.3/CHANGES @@ -0,0 +1,275 @@ + + +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. + +* 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. diff --git a/commands/bzip2-1.0.3/LICENSE b/commands/bzip2-1.0.3/LICENSE new file mode 100644 index 000000000..e60845b4d --- /dev/null +++ b/commands/bzip2-1.0.3/LICENSE @@ -0,0 +1,40 @@ + +This program, "bzip2", the associated library "libbzip2", and all +documentation, are copyright (C) 1996-2005 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, Cambridge, UK. +jseward@acm.org +bzip2/libbzip2 version 1.0.3 of 15 February 2005 + diff --git a/commands/bzip2-1.0.3/Makefile b/commands/bzip2-1.0.3/Makefile new file mode 100644 index 000000000..479d1563c --- /dev/null +++ b/commands/bzip2-1.0.3/Makefile @@ -0,0 +1,215 @@ + +SHELL=/bin/sh + +# To assist in cross-compiling +CC=cc +AR=ar +ARFLAGS=cr +RANLIB=ranlib +LDFLAGS= + +BIGFILES=-D_FILE_OFFSET_BITS=64 +CFLAGS=-Wall -Winline -O -g $(BIGFILES) -Dlstat=stat + +# Where you want it installed when you do 'make install' +PREFIX=/usr/local +PREFIX_BIN=$(PREFIX)/bin +PREFIX_LIB=$(PREFIX)/lib +PREFIX_MAN=$(PREFIX)/man +PREFIX_INC=$(PREFIX)/include + + +OBJS= blocksort.o \ + huffman.o \ + crctable.o \ + randtable.o \ + compress.o \ + decompress.o \ + bzlib.o + +all: all_notest test_nodep + +all_notest: libbz2.a bzip2 bzip2recover + chmem =8000000 bzip2 + +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) $(ARFLAGS) 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 test_nodep + +test_nodep: + @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_INC) ) ; then mkdir -p $(PREFIX_INC) ; 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_INC) + chmod a+r $(PREFIX_INC)/bzlib.h + cp -f libbz2.a $(PREFIX_LIB) + chmod a+r $(PREFIX_LIB)/libbz2.a + cp -f bzgrep $(PREFIX_BIN)/bzgrep + ln -f $(PREFIX_BIN)/bzgrep $(PREFIX_BIN)/bzegrep + ln -f $(PREFIX_BIN)/bzgrep $(PREFIX_BIN)/bzfgrep + chmod a+x $(PREFIX_BIN)/bzgrep + cp -f bzmore $(PREFIX_BIN)/bzmore + ln -f $(PREFIX_BIN)/bzmore $(PREFIX_BIN)/bzless + chmod a+x $(PREFIX_BIN)/bzmore + cp -f bzdiff $(PREFIX_BIN)/bzdiff + ln -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.3 +dist: check manual + rm -f $(DISTNAME) + ln -sf . $(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)/Y2K_INFO \ + $(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/commands/bzip2-1.0.3/Makefile-libbz2_so b/commands/bzip2-1.0.3/Makefile-libbz2_so new file mode 100644 index 000000000..458c5a135 --- /dev/null +++ b/commands/bzip2-1.0.3/Makefile-libbz2_so @@ -0,0 +1,44 @@ + +# This Makefile builds a shared version of the library, +# libbz2.so.1.0.3, 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. + +SHELL=/bin/sh +CC=gcc +BIGFILES=-D_FILE_OFFSET_BITS=64 +CFLAGS=-fpic -fPIC -Wall -Winline -O -g + +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.3 $(OBJS) + $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.3 + rm -f libbz2.so.1.0 + ln -s libbz2.so.1.0.3 libbz2.so.1.0 + +clean: + rm -f $(OBJS) bzip2.o libbz2.so.1.0.3 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/commands/bzip2-1.0.3/README.COMPILATION.PROBLEMS b/commands/bzip2-1.0.3/README.COMPILATION.PROBLEMS new file mode 100644 index 000000000..f1bc396b7 --- /dev/null +++ b/commands/bzip2-1.0.3/README.COMPILATION.PROBLEMS @@ -0,0 +1,39 @@ + +bzip2-1.0.3 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 x86_64-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 alpha-tru64unix and +x86-cygwin32 (on Windows 2000). + +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. + +Earlier 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. diff --git a/commands/bzip2-1.0.3/README.MINIX b/commands/bzip2-1.0.3/README.MINIX new file mode 100644 index 000000000..a03e17d16 --- /dev/null +++ b/commands/bzip2-1.0.3/README.MINIX @@ -0,0 +1,172 @@ +############################################################################### +# Quick installation +############################################################################### + +To build and install bzip into /usr/local, execute the following commands +as user bin: + +make +make install + +To install into another directory use: +make install PREFIX= + +############################################################################### +# bzip 1.0.3 for Minix +############################################################################### +The text below is taken from the original README file. The original file is +available as README.ORIGINAL. + +This is the README for bzip2, a block-sorting file compressor, version +1.0.3. This version is fully compatible with the previous public +releases, versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1 and 1.0.2. + +bzip2-1.0.3 is distributed under a BSD-style license. For details, +see 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. A statement about Y2K issues +is now included in the file Y2K_INFO. + + +HOW TO BUILD -- MINIX + +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. + +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 (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, 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 has been carefully + constructed and extensively tested. + + +PATENTS: + + To the best of my knowledge, bzip2 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. + +End of legalities. + + +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. + + +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 and +1.0.2, and the changes in bzip2 are largely a result of this feedback. +I thank you for your comments. + +At least for the time being, bzip2's "home" is (or can be reached via) +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) + +############################################################################### +# Changes to the source of version 1.0.3 +############################################################################### +- Changed default installation to /usr/local +- Adjusted Makefile to separate testing from building, to allow chmem in + between +- Adjusted invocation of ar, as Minix ar does not support -q, even though the + documentation says it does diff --git a/commands/bzip2-1.0.3/README.ORIGINAL b/commands/bzip2-1.0.3/README.ORIGINAL new file mode 100644 index 000000000..1aff4487e --- /dev/null +++ b/commands/bzip2-1.0.3/README.ORIGINAL @@ -0,0 +1,185 @@ + +This is the README for bzip2, a block-sorting file compressor, version +1.0.3. This version is fully compatible with the previous public +releases, versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1 and 1.0.2. + +bzip2-1.0.3 is distributed under a BSD-style license. For details, +see 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. A statement about Y2K issues +is now included in the file Y2K_INFO. + + +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/bin, /usr/lib, /usr/man and /usr/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. Sorry. 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 page (http://sources.redhat.com/bzip2). 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 (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, 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 has been carefully + constructed and extensively tested. + + +PATENTS: + + To the best of my knowledge, bzip2 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. + +End of legalities. + + +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. + + +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 and +1.0.2, and the changes in bzip2 are largely a result of this feedback. +I thank you for your comments. + +At least for the time being, bzip2's "home" is (or can be reached via) +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) diff --git a/commands/bzip2-1.0.3/README.XML.STUFF b/commands/bzip2-1.0.3/README.XML.STUFF new file mode 100644 index 000000000..0ff209f44 --- /dev/null +++ b/commands/bzip2-1.0.3/README.XML.STUFF @@ -0,0 +1,31 @@ +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
 blocks nicely,
+ and add CDATA tags so writers do not have to use eg. < 
+
+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.
diff --git a/commands/bzip2-1.0.3/Y2K_INFO b/commands/bzip2-1.0.3/Y2K_INFO
new file mode 100644
index 000000000..55fd56a2e
--- /dev/null
+++ b/commands/bzip2-1.0.3/Y2K_INFO
@@ -0,0 +1,34 @@
+
+Y2K status of bzip2 and libbzip2, versions 0.1, 0.9.0 and 0.9.5
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Informally speaking:
+   bzip2 is a compression program built on top of libbzip2, 
+   a library which does the real work of compression and 
+   decompression.  As far as I am aware, libbzip2 does not have 
+   any date-related code at all.
+
+   bzip2 itself copies dates from source to destination files 
+   when compressing or decompressing, using the 'stat' and 'utime' 
+   UNIX system calls.  It doesn't examine, manipulate or store the 
+   dates in any way.  So as far as I can see, there shouldn't be any 
+   problem with bzip2 providing 'stat' and 'utime' work correctly 
+   on your system.
+
+   On non-unix platforms (those for which BZ_UNIX in bzip2.c is
+   not set to 1), bzip2 doesn't even do the date copying.
+
+   Overall, informally speaking, I don't think bzip2 or libbzip2 
+   have a Y2K problem.
+
+Formally speaking:
+   I am not prepared to offer you any assurance whatsoever 
+   regarding Y2K issues in my software.  You alone assume the 
+   entire risk of using the software.  The disclaimer of liability 
+   in the LICENSE file in the bzip2 source distribution continues 
+   to apply on this issue as with every other issue pertaining 
+   to the software.
+
+Julian Seward
+Cambridge, UK
+25 August 1999
diff --git a/commands/bzip2-1.0.3/blocksort.c b/commands/bzip2-1.0.3/blocksort.c
new file mode 100644
index 000000000..33ec9f5dc
--- /dev/null
+++ b/commands/bzip2-1.0.3/blocksort.c
@@ -0,0 +1,1141 @@
+
+/*-------------------------------------------------------------*/
+/*--- Block sorting machinery                               ---*/
+/*---                                           blocksort.c ---*/
+/*-------------------------------------------------------------*/
+
+/*--
+  This file is a part of bzip2 and/or libbzip2, a program and
+  library for lossless, block-sorting data compression.
+
+  Copyright (C) 1996-2005 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, Cambridge, UK.
+  jseward@bzip.org
+  bzip2/libbzip2 version 1.0 of 21 March 2000
+
+  This program is based on (at least) the work of:
+     Mike Burrows
+     David Wheeler
+     Peter Fenwick
+     Alistair Moffat
+     Radford Neal
+     Ian H. Witten
+     Robert Sedgewick
+     Jon L. Bentley
+
+  For more information on these sources, see the manual.
+
+  To get some idea how the block sorting algorithms in this file 
+  work, read my paper 
+     On the Performance of BWT Sorting Algorithms
+  in Proceedings of the IEEE Data Compression Conference 2000,
+  Snowbird, Utah, USA, 27-30 March 2000.  The main sort in this
+  file implements the algorithm called  cache  in the paper.
+--*/
+
+
+#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, 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, 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/commands/bzip2-1.0.3/bz-common.xsl b/commands/bzip2-1.0.3/bz-common.xsl
new file mode 100644
index 000000000..66fcd6fe0
--- /dev/null
+++ b/commands/bzip2-1.0.3/bz-common.xsl
@@ -0,0 +1,39 @@
+ 
+
+
+
+ 
+
+
+
+ 
+ 
+   
+    
+      
+     
+  
+
+
+
+
+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
+
+
+
diff --git a/commands/bzip2-1.0.3/bz-fo.xsl b/commands/bzip2-1.0.3/bz-fo.xsl
new file mode 100644
index 000000000..7f2a7674f
--- /dev/null
+++ b/commands/bzip2-1.0.3/bz-fo.xsl
@@ -0,0 +1,257 @@
+ 
+
+
+
+
+
+
+
+
+
+
+
+
+      
+     
+   
+
+
+
+
+ 
+
+
+
+
+
+
+  
+
+
+
+
+  blue
+
+
+
+
+  
+    
+  
+
+
+
+  
+    
+  
+
+
+
+
+  
+  
+  
+    
+      
+    
+  
+  
+    
+      
+        
+          
+          
+          
+        
+      
+    
+    
+          
+    
+  
+  
+    
+      
+        
+      
+    
+    
+      
+        
+      
+    
+  
+
+
+
+
+  
+  
+  
+    
+      
+        
+      
+    
+    
+          
+    
+  
+  
+    
+      
+        
+      
+    
+    
+      
+        
+      
+    
+  
+
+
+
+
+
+  
+    
+  
+    
+  
+  
+    
+      
+    
+  
+
+
+
+
+
+  
+  
+  
+  
+    
+      0pt
+    
+  
+  
+    
+      
+      
+      
+        
+          
+            baseline
+             
+               
+            
+          
+          
+            baseline
+            
+              
+                
+                
+                
+                
+              
+            
+          
+        
+      
+    
+  
+  
+  
+    
+      
+    
+    
+      
+    
+    
+      
+    
+  
+
+
+
+
+
+  
+  
+  
+  
+    
+      0pt
+    
+  
+  
+    
+      
+        
+        
+        
+      
+      
+      
+      
+        
+          
+            baseline
+            
+               
+            
+          
+          
+            baseline
+            
+              
+                
+                
+                
+                
+              
+            
+          
+        
+      
+    
+  
+  
+  
+    
+      
+    
+    
+      
+    
+    
+      
+    
+  
+
+
+
+
diff --git a/commands/bzip2-1.0.3/bz-html.xsl b/commands/bzip2-1.0.3/bz-html.xsl
new file mode 100644
index 000000000..1785fffbc
--- /dev/null
+++ b/commands/bzip2-1.0.3/bz-html.xsl
@@ -0,0 +1,20 @@
+ 
+ ]>
+
+
+
+
+
+
+
+
+
+
+  
+  
+
+
+
diff --git a/commands/bzip2-1.0.3/bzdiff b/commands/bzip2-1.0.3/bzdiff
new file mode 100644
index 000000000..3c2eb859f
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzdiff
@@ -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  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:$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=`tempfile -d /tmp -p bz` || {
+      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/commands/bzip2-1.0.3/bzdiff.1 b/commands/bzip2-1.0.3/bzdiff.1
new file mode 100644
index 000000000..adb7a8e72
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzdiff.1
@@ -0,0 +1,47 @@
+\"Shamelessly copied from zmore.1 by Philippe Troin 
+\"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/commands/bzip2-1.0.3/bzgrep b/commands/bzip2-1.0.3/bzgrep
new file mode 100644
index 000000000..dbfc00e8d
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzgrep
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+# Bzgrep wrapped for bzip2, 
+# adapted from zgrep by Philippe Troin  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 
+
+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
+    bzip2 -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${i}:|"
+    r=$?
+  fi
+  test "$r" -ne 0 && res="$r"
+done
+exit $res
diff --git a/commands/bzip2-1.0.3/bzgrep.1 b/commands/bzip2-1.0.3/bzgrep.1
new file mode 100644
index 000000000..930af8c7f
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzgrep.1
@@ -0,0 +1,56 @@
+\"Shamelessly copied from zmore.1 by Philippe Troin 
+\"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  for Debian GNU/Linux.
+.SH "SEE ALSO"
+grep(1), egrep(1), fgrep(1), bzdiff(1), bzmore(1), bzless(1), bzip2(1)
diff --git a/commands/bzip2-1.0.3/bzip.css b/commands/bzip2-1.0.3/bzip.css
new file mode 100644
index 000000000..43193d8db
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzip.css
@@ -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/commands/bzip2-1.0.3/bzip2.1 b/commands/bzip2-1.0.3/bzip2.1
new file mode 100644
index 000000000..d2c066156
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzip2.1
@@ -0,0 +1,454 @@
+.PU
+.TH bzip2 1
+.SH NAME
+bzip2, bunzip2 \- a block-sorting file compressor, v1.0.3
+.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.3 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 and 1.0.2, 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/commands/bzip2-1.0.3/bzip2.1.preformatted b/commands/bzip2-1.0.3/bzip2.1.preformatted
new file mode 100644
index 000000000..129ca835c
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzip2.1.preformatted
@@ -0,0 +1,399 @@
+bzip2(1)                                                 bzip2(1)
+
+
+
+NNAAMMEE
+       bzip2, bunzip2 − a block‐sorting file compressor, v1.0.3
+       bzcat − decompresses files to stdout
+       bzip2recover − recovers data from damaged bzip2 files
+
+
+SSYYNNOOPPSSIISS
+       bbzziipp22 [ −−ccddffkkqqssttvvzzVVLL112233445566778899 ] [ _f_i_l_e_n_a_m_e_s _._._.  ]
+       bbuunnzziipp22 [ −−ffkkvvssVVLL ] [ _f_i_l_e_n_a_m_e_s _._._.  ]
+       bbzzccaatt [ −−ss ] [ _f_i_l_e_n_a_m_e_s _._._.  ]
+       bbzziipp22rreeccoovveerr _f_i_l_e_n_a_m_e
+
+
+DDEESSCCRRIIPPTTIIOONN
+       _b_z_i_p_2  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 _G_N_U _g_z_i_p_, but they are not identical.
+
+       _b_z_i_p_2  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.
+
+       _b_z_i_p_2  and  _b_u_n_z_i_p_2 will by default not overwrite existing
+       files.  If you want this to happen, specify the −f flag.
+
+       If no file names  are  specified,  _b_z_i_p_2  compresses  from
+       standard  input  to  standard output.  In this case, _b_z_i_p_2
+       will decline to write compressed output to a terminal,  as
+       this  would  be  entirely  incomprehensible  and therefore
+       pointless.
+
+       _b_u_n_z_i_p_2 (or _b_z_i_p_2 _−_d_) decompresses  all  specified  files.
+       Files which were not created by _b_z_i_p_2 will be detected and
+       ignored, and a warning issued.  _b_z_i_p_2  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_z_2_,  _._b_z_,  _._t_b_z_2 or _._t_b_z_, _b_z_i_p_2 complains that it cannot
+       guess the name of the original file, and uses the original
+       name with _._o_u_t appended.
+
+       As  with compression, supplying no filenames causes decom­
+       pression from standard input to standard output.
+
+       _b_u_n_z_i_p_2 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  _b_z_i_p_2  version  0.9.0  or
+       later.   Earlier  versions of _b_z_i_p_2 will stop after decom­
+       pressing the first file in the stream.
+
+       _b_z_c_a_t (or _b_z_i_p_2 _‐_d_c_) decompresses all specified  files  to
+       the standard output.
+
+       _b_z_i_p_2  will  read arguments from the environment variables
+       _B_Z_I_P_2 and _B_Z_I_P_, 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,  _b_z_i_p_2  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 _b_z_i_p_2 (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
+       _b_z_i_p_2_r_e_c_o_v_e_r 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 _b_z_i_p_2 to panic.
+
+
+OOPPTTIIOONNSS
+       −−cc ‐‐‐‐ssttddoouutt
+              Compress or decompress to standard output.
+
+       −−dd ‐‐‐‐ddeeccoommpprreessss
+              Force  decompression.  _b_z_i_p_2_, _b_u_n_z_i_p_2 and _b_z_c_a_t 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 _b_z_i_p_2 to decompress.
+
+       −−zz ‐‐‐‐ccoommpprreessss
+              The   complement   to   −d:   forces   compression,
+              regardless of the invocation name.
+
+       −−tt ‐‐‐‐tteesstt
+              Check integrity of the specified file(s), but don’t
+              decompress  them.   This  really  performs  a trial
+              decompression and throws away the result.
+
+       −−ff ‐‐‐‐ffoorrccee
+              Force overwrite of output files.   Normally,  _b_z_i_p_2
+              will  not  overwrite  existing  output files.  Also
+              forces _b_z_i_p_2 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.
+
+       −−kk ‐‐‐‐kkeeeepp
+              Keep  (don’t delete) input files during compression
+              or decompression.
+
+       −−ss ‐‐‐‐ssmmaallll
+              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.
+
+       −−qq ‐‐‐‐qquuiieett
+              Suppress non‐essential warning messages.   Messages
+              pertaining  to I/O errors and other critical events
+              will not be suppressed.
+
+       −−vv ‐‐‐‐vveerrbboossee
+              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.
+
+       −−LL ‐‐‐‐lliicceennssee ‐‐VV ‐‐‐‐vveerrssiioonn
+              Display  the  software  version,  license terms and
+              conditions.
+
+       −−11 ((oorr −−−−ffaasstt)) ttoo −−99 ((oorr −−−−bbeesstt))
+              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.
+
+       −−‐‐rreeppeettiittiivvee‐‐ffaasstt ‐‐‐‐rreeppeettiittiivvee‐‐bbeesstt
+              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.
+
+
+MMEEMMOORRYY MMAANNAAGGEEMMEENNTT
+       _b_z_i_p_2 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 _b_u_n_z_i_p_2 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 _b_z_i_p_2  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,
+       _b_u_n_z_i_p_2 will require about 3700 kbytes to decompress.   To
+       support decompression of any file on a 4 megabyte machine,
+       _b_u_n_z_i_p_2 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
+
+
+RREECCOOVVEERRIINNGG DDAATTAA FFRROOMM DDAAMMAAGGEEDD FFIILLEESS
+       _b_z_i_p_2 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.
+
+       _b_z_i_p_2_r_e_c_o_v_e_r 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 _b_z_i_p_2 −t to test
+       the integrity of the resulting files, and decompress those
+       which are undamaged.
+
+       _b_z_i_p_2_r_e_c_o_v_e_r 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.
+
+       _b_z_i_p_2_r_e_c_o_v_e_r 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.
+
+
+PPEERRFFOORRMMAANNCCEE NNOOTTEESS
+       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.
+
+       _b_z_i_p_2  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 _b_z_i_p_2 will per­
+       form best on machines with very large caches.
+
+
+CCAAVVEEAATTSS
+       I/O  error  messages  are not as helpful as they could be.
+       _b_z_i_p_2 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.3 of _b_z_i_p_2_.  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 and
+       1.0.2, 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  decom­
+       pressing just the first file in the stream.
+
+       _b_z_i_p_2_r_e_c_o_v_e_r  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.
+
+
+
+
+AAUUTTHHOORR
+       Julian Seward, jsewardbzip.org.
+
+       http://www.bzip.org
+
+       The ideas embodied in _b_z_i_p_2 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 _b_z_i_p_, and many refinements), and
+       Alistair  Moffat,  Radford  Neal  and  Ian Witten (for the
+       arithmetic  coder  in  the  original  _b_z_i_p_)_.   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/commands/bzip2-1.0.3/bzip2.c b/commands/bzip2-1.0.3/bzip2.c
new file mode 100644
index 000000000..79f87a519
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzip2.c
@@ -0,0 +1,2107 @@
+
+/*-----------------------------------------------------------*/
+/*--- A block-sorting, lossless compressor        bzip2.c ---*/
+/*-----------------------------------------------------------*/
+
+/*--
+  This file is a part of bzip2 and/or libbzip2, a program and
+  library for lossless, block-sorting data compression.
+
+  Copyright (C) 1996-2005 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, Cambridge, UK.
+  jseward@bzip.org
+  bzip2/libbzip2 version 1.0 of 21 March 2000
+
+  This program is based on (at least) the work of:
+     Mike Burrows
+     David Wheeler
+     Peter Fenwick
+     Alistair Moffat
+     Radford Neal
+     Ian H. Witten
+     Robert Sedgewick
+     Jon L. Bentley
+
+  For more information on these sources, see the manual.
+--*/
+
+
+/*----------------------------------------------------*/
+/*--- IMPORTANT                                    ---*/
+/*----------------------------------------------------*/
+
+/*--
+   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 disasterous loss of data.
+
+   DISCLAIMER:
+      I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE
+      USE OF THIS PROGRAM, 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 AND/OR LIBRARY 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 
+      available to carry out a full patent search.  Therefore I cannot 
+      give any guarantee of the above statement.
+--*/
+
+
+
+/*----------------------------------------------------*/
+/*--- and now for something much more pleasant :-) ---*/
+/*----------------------------------------------------*/
+
+/*---------------------------------------------*/
+/*--
+  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 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#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 
+#   include 
+#   include 
+#   include 
+#   include 
+#   include 
+
+#   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 
+#     include 
+#     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 
+#     include 
+#     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 
+#   include 
+#   include 
+
+#   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                 ( 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 );
+
+
+
+/*---------------------------------------------------*/
+/*--- 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) {
+      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;
+   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 ( 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.
+*/
+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 applySavedMetaInfoToOutputFile ( Char *dstName )
+{
+#  if BZ_UNIX
+   IntNative      retVal;
+   struct utimbuf uTimBuf;
+
+   uTimBuf.actime = fileMetaInfo.st_atime;
+   uTimBuf.modtime = fileMetaInfo.st_mtime;
+
+   retVal = chmod ( dstName, fileMetaInfo.st_mode );
+   ERROR_IF_NOT_ZERO ( retVal );
+
+   retVal = utime ( dstName, &uTimBuf );
+   ERROR_IF_NOT_ZERO ( retVal );
+
+   retVal = chown ( dstName, 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
+
+Char* zSuffix[BZ_N_SUFFIX_PAIRS] 
+   = { ".bz2", ".bz", ".tbz2", ".tbz" };
+Char* unzSuffix[BZ_N_SUFFIX_PAIRS] 
+   = { "", "", ".tar", ".tar" };
+
+static 
+Bool hasSuffix ( Char* s, 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, 
+                 Char* oldSuffix, 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, "(stdin)" );
+         copyFileName ( outName, "(stdout)" ); 
+         break;
+      case SM_F2F: 
+         copyFileName ( inName, name );
+         copyFileName ( outName, name );
+         strcat ( outName, ".bz2" ); 
+         break;
+      case SM_F2O: 
+         copyFileName ( inName, name );
+         copyFileName ( outName, "(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 ) {
+      applySavedMetaInfoToOutputFile ( 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, "(stdin)" );
+         copyFileName ( outName, "(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, "(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 ) {
+         applySavedMetaInfoToOutputFile ( 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, "(none)" );
+   switch (srcMode) {
+      case SM_I2O: copyFileName ( inName, "(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-2005 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 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,  "(none)" );
+   copyFileName ( outName, "(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,  "BZIP2" );
+   addFlagsFromEnvVar ( &argList,  "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/commands/bzip2-1.0.3/bzip2.txt b/commands/bzip2-1.0.3/bzip2.txt
new file mode 100644
index 000000000..bf895b6cb
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzip2.txt
@@ -0,0 +1,391 @@
+
+NAME
+       bzip2, bunzip2 - a block-sorting file compressor, v1.0.3
+       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.3 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 and
+       1.0.2, 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  decom-
+       pressing 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/commands/bzip2-1.0.3/bzip2recover.c b/commands/bzip2-1.0.3/bzip2recover.c
new file mode 100644
index 000000000..5cd405dd4
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzip2recover.c
@@ -0,0 +1,546 @@
+
+/*-----------------------------------------------------------*/
+/*--- Block recoverer program for bzip2                   ---*/
+/*---                                      bzip2recover.c ---*/
+/*-----------------------------------------------------------*/
+
+/*--
+  This program is bzip2recover, a program to attempt data 
+  salvage from damaged files created by the accompanying
+  bzip2-1.0.3 program.
+
+  Copyright (C) 1996-2005 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, Cambridge, UK.
+  jseward@bzip.org
+  bzip2/libbzip2 version 1.0.3 of 15 February 2005
+--*/
+
+/*--
+  This program is a complete hack and should be rewritten
+  properly.  It isn't very complicated.
+--*/
+
+#include 
+#include 
+#include 
+#include 
+
+
+/* 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                                  ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------*/
+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 );
+}
+
+
+/*---------------------------------------------*/
+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 );
+}
+
+
+/*---------------------------------------------*/
+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 );
+}
+
+
+/*---------------------------------------------*/
+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;
+
+
+/*---------------------------------------------*/
+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;
+}
+
+
+/*---------------------------------------------*/
+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;
+}
+
+
+/*---------------------------------------------*/
+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.
+--*/
+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 );
+   }
+}
+
+
+/*---------------------------------------------*/
+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 );
+}
+
+
+/*---------------------------------------------*/
+void bsPutUChar ( BitStream* bs, UChar c )
+{
+   Int32 i;
+   for (i = 7; i >= 0; i--)
+      bsPutBit ( bs, (((UInt32) c) >> i) & 0x1 );
+}
+
+
+/*---------------------------------------------*/
+void bsPutUInt32 ( BitStream* bs, UInt32 c )
+{
+   Int32 i;
+
+   for (i = 31; i >= 0; i--)
+      bsPutBit ( bs, (c >> i) & 0x1 );
+}
+
+
+/*---------------------------------------------*/
+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.3: 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/commands/bzip2-1.0.3/bzlib.c b/commands/bzip2-1.0.3/bzlib.c
new file mode 100644
index 000000000..e9c1e879d
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzlib.c
@@ -0,0 +1,1616 @@
+
+/*-------------------------------------------------------------*/
+/*--- Library top-level functions.                          ---*/
+/*---                                               bzlib.c ---*/
+/*-------------------------------------------------------------*/
+
+/*--
+  This file is a part of bzip2 and/or libbzip2, a program and
+  library for lossless, block-sorting data compression.
+
+  Copyright (C) 1996-2005 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, Cambridge, UK.
+  jseward@bzip.org
+  bzip2/libbzip2 version 1.0 of 21 March 2000
+
+  This program is based on (at least) the work of:
+     Mike Burrows
+     David Wheeler
+     Peter Fenwick
+     Alistair Moffat
+     Radford Neal
+     Ian H. Witten
+     Robert Sedgewick
+     Jon L. Bentley
+
+  For more information on these sources, see the manual.
+--*/
+
+/*--
+   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, 15 February 2005.\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;
+      /* 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
+   (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.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.0c".
+--*/
+const char * BZ_API(BZ2_bzlibVersion)(void)
+{
+   return BZ_VERSION;
+}
+
+
+#ifndef BZ_NO_STDIO
+/*---------------------------------------------------*/
+
+#if defined(_WIN32) || defined(OS2) || defined(MSDOS)
+#   include 
+#   include 
+#   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 = ((bzFile *)b)->handle;
+   
+   if (b==NULL) {return;}
+   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 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/commands/bzip2-1.0.3/bzlib.h b/commands/bzip2-1.0.3/bzlib.h
new file mode 100644
index 000000000..323724394
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzlib.h
@@ -0,0 +1,323 @@
+
+/*-------------------------------------------------------------*/
+/*--- Public header file for the library.                   ---*/
+/*---                                               bzlib.h ---*/
+/*-------------------------------------------------------------*/
+
+/*--
+  This file is a part of bzip2 and/or libbzip2, a program and
+  library for lossless, block-sorting data compression.
+
+  Copyright (C) 1996-2005 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, Cambridge, UK.
+  jseward@bzip.org
+  bzip2/libbzip2 version 1.0 of 21 March 2000
+
+  This program is based on (at least) the work of:
+     Mike Burrows
+     David Wheeler
+     Peter Fenwick
+     Alistair Moffat
+     Radford Neal
+     Ian H. Witten
+     Robert Sedgewick
+     Jon L. Bentley
+
+  For more information on these sources, see the manual.
+--*/
+
+
+#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 
+#endif
+
+#ifdef _WIN32
+#   include 
+#   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
+   (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.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/commands/bzip2-1.0.3/bzlib_private.h b/commands/bzip2-1.0.3/bzlib_private.h
new file mode 100644
index 000000000..ca76fe62b
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzlib_private.h
@@ -0,0 +1,537 @@
+
+/*-------------------------------------------------------------*/
+/*--- Private header file for the library.                  ---*/
+/*---                                       bzlib_private.h ---*/
+/*-------------------------------------------------------------*/
+
+/*--
+  This file is a part of bzip2 and/or libbzip2, a program and
+  library for lossless, block-sorting data compression.
+
+  Copyright (C) 1996-2005 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, Cambridge, UK.
+  jseward@bzip.org
+  bzip2/libbzip2 version 1.0 of 21 March 2000
+
+  This program is based on (at least) the work of:
+     Mike Burrows
+     David Wheeler
+     Peter Fenwick
+     Alistair Moffat
+     Radford Neal
+     Ian H. Witten
+     Robert Sedgewick
+     Jon L. Bentley
+
+  For more information on these sources, see the manual.
+--*/
+
+
+#ifndef _BZLIB_PRIVATE_H
+#define _BZLIB_PRIVATE_H
+
+#include 
+
+#ifndef BZ_NO_STDIO
+#include 
+#include 
+#include 
+#endif
+
+#include "bzlib.h"
+
+
+
+/*-- General stuff. --*/
+
+#define BZ_VERSION  "1.0.3, 15-Feb-2005"
+
+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) /* */
+#define VPrintf0(zf) /* */
+#define VPrintf1(zf,za1) /* */
+#define VPrintf2(zf,za1,za2) /* */
+#define VPrintf3(zf,za1,za2,za3) /* */
+#define VPrintf4(zf,za1,za2,za3,za4) /* */
+#define VPrintf5(zf,za1,za2,za3,za4,za5) /* */
+#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)                     \
+    s->tPos = s->tt[s->tPos];                 \
+    cccc = (UChar)(s->tPos & 0xff);           \
+    s->tPos >>= 8;
+
+#define BZ_GET_FAST_C(cccc)                   \
+    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)                            \
+      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/commands/bzip2-1.0.3/bzmore b/commands/bzip2-1.0.3/bzmore
new file mode 100644
index 000000000..d31404340
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzmore
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# Bzmore wrapped for bzip2, 
+# adapted from zmore by Philippe Troin  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/commands/bzip2-1.0.3/bzmore.1 b/commands/bzip2-1.0.3/bzmore.1
new file mode 100644
index 000000000..b437d3b03
--- /dev/null
+++ b/commands/bzip2-1.0.3/bzmore.1
@@ -0,0 +1,152 @@
+.\"Shamelessly copied from zmore.1 by Philippe Troin 
+.\"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
+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/commands/bzip2-1.0.3/compress.c b/commands/bzip2-1.0.3/compress.c
new file mode 100644
index 000000000..7e0c29155
--- /dev/null
+++ b/commands/bzip2-1.0.3/compress.c
@@ -0,0 +1,716 @@
+
+/*-------------------------------------------------------------*/
+/*--- Compression machinery (not incl block sorting)        ---*/
+/*---                                            compress.c ---*/
+/*-------------------------------------------------------------*/
+
+/*--
+  This file is a part of bzip2 and/or libbzip2, a program and
+  library for lossless, block-sorting data compression.
+
+  Copyright (C) 1996-2005 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, Cambridge, UK.
+  jseward@bzip.org
+  bzip2/libbzip2 version 1.0 of 21 March 2000
+
+  This program is based on (at least) the work of:
+     Mike Burrows
+     David Wheeler
+     Peter Fenwick
+     Alistair Moffat
+     Radford Neal
+     Ian H. Witten
+     Robert Sedgewick
+     Jon L. Bentley
+
+  For more information on these sources, see the manual.
+--*/
+
+/*--
+   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/commands/bzip2-1.0.3/crctable.c b/commands/bzip2-1.0.3/crctable.c
new file mode 100644
index 000000000..b6dadfc62
--- /dev/null
+++ b/commands/bzip2-1.0.3/crctable.c
@@ -0,0 +1,144 @@
+
+/*-------------------------------------------------------------*/
+/*--- Table for doing CRCs                                  ---*/
+/*---                                            crctable.c ---*/
+/*-------------------------------------------------------------*/
+
+/*--
+  This file is a part of bzip2 and/or libbzip2, a program and
+  library for lossless, block-sorting data compression.
+
+  Copyright (C) 1996-2005 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, Cambridge, UK.
+  jseward@bzip.org
+  bzip2/libbzip2 version 1.0 of 21 March 2000
+
+  This program is based on (at least) the work of:
+     Mike Burrows
+     David Wheeler
+     Peter Fenwick
+     Alistair Moffat
+     Radford Neal
+     Ian H. Witten
+     Robert Sedgewick
+     Jon L. Bentley
+
+  For more information on these sources, see the manual.
+--*/
+
+
+#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/commands/bzip2-1.0.3/decompress.c b/commands/bzip2-1.0.3/decompress.c
new file mode 100644
index 000000000..81c3d2cc3
--- /dev/null
+++ b/commands/bzip2-1.0.3/decompress.c
@@ -0,0 +1,666 @@
+
+/*-------------------------------------------------------------*/
+/*--- Decompression machinery                               ---*/
+/*---                                          decompress.c ---*/
+/*-------------------------------------------------------------*/
+
+/*--
+  This file is a part of bzip2 and/or libbzip2, a program and
+  library for lossless, block-sorting data compression.
+
+  Copyright (C) 1996-2005 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, Cambridge, UK.
+  jseward@bzip.org
+  bzip2/libbzip2 version 1.0 of 21 March 2000
+
+  This program is based on (at least) the work of:
+     Mike Burrows
+     David Wheeler
+     Peter Fenwick
+     Alistair Moffat
+     Radford Neal
+     Ian H. Witten
+     Robert Sedgewick
+     Jon L. Bentley
+
+  For more information on these sources, see the manual.
+--*/
+
+
+#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 {
+               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) --*/
+      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];
+      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);
+         }
+      }
+
+      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/commands/bzip2-1.0.3/dlltest.c b/commands/bzip2-1.0.3/dlltest.c
new file mode 100644
index 000000000..2d7dcca4c
--- /dev/null
+++ b/commands/bzip2-1.0.3/dlltest.c
@@ -0,0 +1,176 @@
+/*
+   minibz2
+      libbz2.dll test program.
+      by Yoshioka Tsuneo(QWF00133@nifty.ne.jp/tsuneo-y@is.aist-nara.ac.jp)
+      This file is Public Domain.
+      welcome any email to me.
+
+   usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]
+*/
+
+#define BZ_IMPORT
+#include 
+#include 
+#include "bzlib.h"
+#ifdef _WIN32
+#include 
+#endif
+
+
+#ifdef _WIN32
+
+#define BZ2_LIBNAME "libbz2-1.0.2.DLL" 
+
+#include 
+static int BZ2DLLLoaded = 0;
+static HINSTANCE BZ2DLLhLib;
+int BZ2DLLLoadLibrary(void)
+{
+   HINSTANCE hLib;
+
+   if(BZ2DLLLoaded==1){return 0;}
+   hLib=LoadLibrary(BZ2_LIBNAME);
+   if(hLib == NULL){
+      fprintf(stderr,"Can't load %s\n",BZ2_LIBNAME);
+      return -1;
+   }
+   BZ2_bzlibVersion=GetProcAddress(hLib,"BZ2_bzlibVersion");
+   BZ2_bzopen=GetProcAddress(hLib,"BZ2_bzopen");
+   BZ2_bzdopen=GetProcAddress(hLib,"BZ2_bzdopen");
+   BZ2_bzread=GetProcAddress(hLib,"BZ2_bzread");
+   BZ2_bzwrite=GetProcAddress(hLib,"BZ2_bzwrite");
+   BZ2_bzflush=GetProcAddress(hLib,"BZ2_bzflush");
+   BZ2_bzclose=GetProcAddress(hLib,"BZ2_bzclose");
+   BZ2_bzerror=GetProcAddress(hLib,"BZ2_bzerror");
+
+   if (!BZ2_bzlibVersion || !BZ2_bzopen || !BZ2_bzdopen
+       || !BZ2_bzread || !BZ2_bzwrite || !BZ2_bzflush
+       || !BZ2_bzclose || !BZ2_bzerror) {
+      fprintf(stderr,"GetProcAddress failed.\n");
+      return -1;
+   }
+   BZ2DLLLoaded=1;
+   BZ2DLLhLib=hLib;
+   return 0;
+
+}
+int BZ2DLLFreeLibrary(void)
+{
+   if(BZ2DLLLoaded==0){return 0;}
+   FreeLibrary(BZ2DLLhLib);
+   BZ2DLLLoaded=0;
+}
+#endif /* WIN32 */
+
+void usage(void)
+{
+   puts("usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]");
+}
+
+int main(int argc,char *argv[])
+{
+   int decompress = 0;
+   int level = 9;
+   char *fn_r = NULL;
+   char *fn_w = NULL;
+
+#ifdef _WIN32
+   if(BZ2DLLLoadLibrary()<0){
+      fprintf(stderr,"Loading of %s failed.  Giving up.\n", BZ2_LIBNAME);
+      exit(1);
+   }
+   printf("Loading of %s succeeded.  Library version is %s.\n",
+          BZ2_LIBNAME, BZ2_bzlibVersion() );
+#endif
+   while(++argv,--argc){
+      if(**argv =='-' || **argv=='/'){
+         char *p;
+
+         for(p=*argv+1;*p;p++){
+            if(*p=='d'){
+               decompress = 1;
+            }else if('1'<=*p && *p<='9'){
+               level = *p - '0';
+            }else{
+               usage();
+               exit(1);
+            }
+         }
+      }else{
+         break;
+      }
+   }
+   if(argc>=1){
+      fn_r = *argv;
+      argc--;argv++;
+   }else{
+      fn_r = NULL;
+   }
+   if(argc>=1){
+      fn_w = *argv;
+      argc--;argv++;
+   }else{
+      fn_w = NULL;
+   }
+   {
+      int len;
+      char buff[0x1000];
+      char mode[10];
+
+      if(decompress){
+         BZFILE *BZ2fp_r = NULL;
+         FILE *fp_w = NULL;
+
+         if(fn_w){
+            if((fp_w = fopen(fn_w,"wb"))==NULL){
+               printf("can't open [%s]\n",fn_w);
+               perror("reason:");
+               exit(1);
+            }
+         }else{
+            fp_w = stdout;
+         }
+         if((fn_r == NULL && (BZ2fp_r = BZ2_bzdopen(fileno(stdin),"rb"))==NULL)
+            || (fn_r != NULL && (BZ2fp_r = BZ2_bzopen(fn_r,"rb"))==NULL)){
+            printf("can't bz2openstream\n");
+            exit(1);
+         }
+         while((len=BZ2_bzread(BZ2fp_r,buff,0x1000))>0){
+            fwrite(buff,1,len,fp_w);
+         }
+         BZ2_bzclose(BZ2fp_r);
+         if(fp_w != stdout) fclose(fp_w);
+      }else{
+         BZFILE *BZ2fp_w = NULL;
+         FILE *fp_r = NULL;
+
+         if(fn_r){
+            if((fp_r = fopen(fn_r,"rb"))==NULL){
+               printf("can't open [%s]\n",fn_r);
+               perror("reason:");
+               exit(1);
+            }
+         }else{
+            fp_r = stdin;
+         }
+         mode[0]='w';
+         mode[1] = '0' + level;
+         mode[2] = '\0';
+
+         if((fn_w == NULL && (BZ2fp_w = BZ2_bzdopen(fileno(stdout),mode))==NULL)
+            || (fn_w !=NULL && (BZ2fp_w = BZ2_bzopen(fn_w,mode))==NULL)){
+            printf("can't bz2openstream\n");
+            exit(1);
+         }
+         while((len=fread(buff,1,0x1000,fp_r))>0){
+            BZ2_bzwrite(BZ2fp_w,buff,len);
+         }
+         BZ2_bzclose(BZ2fp_w);
+         if(fp_r!=stdin)fclose(fp_r);
+      }
+   }
+#ifdef _WIN32
+   BZ2DLLFreeLibrary();
+#endif
+   return 0;
+}
diff --git a/commands/bzip2-1.0.3/dlltest.dsp b/commands/bzip2-1.0.3/dlltest.dsp
new file mode 100644
index 000000000..4b1615edc
--- /dev/null
+++ b/commands/bzip2-1.0.3/dlltest.dsp
@@ -0,0 +1,93 @@
+# Microsoft Developer Studio Project File - Name="dlltest" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** •ÒW‚µ‚È‚¢‚Å‚­‚¾‚³‚¢ **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=dlltest - Win32 Debug
+!MESSAGE ‚±‚ê‚Í—LŒø‚ÈÒ²¸Ì§²Ù‚Å‚Í‚ ‚è‚Ü‚¹‚ñB ‚±‚ÌÌßÛ¼Þª¸Ä‚ðËÞÙÄނ·‚邽‚ß‚É‚Í NMAKE ‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
+!MESSAGE [Ò²¸Ì§²Ù‚Ì´¸½Îß°Ä] ºÏÝÄނðŽg—p‚µ‚ÄŽÀs‚µ‚Ä‚­‚¾‚³‚¢
+!MESSAGE 
+!MESSAGE NMAKE /f "dlltest.mak".
+!MESSAGE 
+!MESSAGE NMAKE ‚ÌŽÀsŽž‚ɍ\¬‚ðŽw’è‚Å‚«‚Ü‚·
+!MESSAGE ºÏÝÄÞ ×²Ýã‚Åϸۂ̐ݒè‚ð’è‹`‚µ‚Ü‚·B—á:
+!MESSAGE 
+!MESSAGE NMAKE /f "dlltest.mak" CFG="dlltest - Win32 Debug"
+!MESSAGE 
+!MESSAGE ‘I‘ð‰Â”\‚ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE 
+!MESSAGE "dlltest - Win32 Release" ("Win32 (x86) Console Application" —p)
+!MESSAGE "dlltest - Win32 Debug" ("Win32 (x86) Console Application" —p)
+!MESSAGE 
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "dlltest - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# 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
+# 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"
+
+!ELSEIF  "$(CFG)" == "dlltest - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "dlltest_"
+# PROP BASE Intermediate_Dir "dlltest_"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "dlltest_"
+# PROP Intermediate_Dir "dlltest_"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# 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
+# 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
+
+!ENDIF 
+
+# Begin Target
+
+# Name "dlltest - Win32 Release"
+# Name "dlltest - Win32 Debug"
+# Begin Source File
+
+SOURCE=.\bzlib.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\dlltest.c
+# End Source File
+# End Target
+# End Project
diff --git a/commands/bzip2-1.0.3/entities.xml b/commands/bzip2-1.0.3/entities.xml
new file mode 100644
index 000000000..6d0975fdb
--- /dev/null
+++ b/commands/bzip2-1.0.3/entities.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/commands/bzip2-1.0.3/format.pl b/commands/bzip2-1.0.3/format.pl
new file mode 100755
index 000000000..8ab47acd3
--- /dev/null
+++ b/commands/bzip2-1.0.3/format.pl
@@ -0,0 +1,53 @@
+#!/usr/bin/perl -w
+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 (  ) {
+
+		print OUTFILE $prev;
+    $prev = $curr;
+    $curr = $_;
+    $str = '';
+
+    if ( $prev =~ /$|$/ ) {
+        chomp $prev;
+        $curr = join( '', $prev, "|<\/screen>/ ) {
+        chomp $prev;
+        $curr = join( '', $prev, "]]>", $curr );
+				$prev = '';
+        next;
+    }
+}
+print OUTFILE $curr;
+close INFILE;
+close OUTFILE;
+exit;
diff --git a/commands/bzip2-1.0.3/huffman.c b/commands/bzip2-1.0.3/huffman.c
new file mode 100644
index 000000000..5bf190be9
--- /dev/null
+++ b/commands/bzip2-1.0.3/huffman.c
@@ -0,0 +1,245 @@
+
+/*-------------------------------------------------------------*/
+/*--- Huffman coding low-level stuff                        ---*/
+/*---                                             huffman.c ---*/
+/*-------------------------------------------------------------*/
+
+/*--
+  This file is a part of bzip2 and/or libbzip2, a program and
+  library for lossless, block-sorting data compression.
+
+  Copyright (C) 1996-2005 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, Cambridge, UK.
+  jseward@bzip.org
+  bzip2/libbzip2 version 1.0 of 21 March 2000
+
+  This program is based on (at least) the work of:
+     Mike Burrows
+     David Wheeler
+     Peter Fenwick
+     Alistair Moffat
+     Radford Neal
+     Ian H. Witten
+     Robert Sedgewick
+     Jon L. Bentley
+
+  For more information on these sources, see the manual.
+--*/
+
+
+#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/commands/bzip2-1.0.3/libbz2.def b/commands/bzip2-1.0.3/libbz2.def
new file mode 100644
index 000000000..2dc0dd891
--- /dev/null
+++ b/commands/bzip2-1.0.3/libbz2.def
@@ -0,0 +1,27 @@
+LIBRARY			LIBBZ2
+DESCRIPTION		"libbzip2: library for data compression"
+EXPORTS
+	BZ2_bzCompressInit
+	BZ2_bzCompress
+	BZ2_bzCompressEnd
+	BZ2_bzDecompressInit
+	BZ2_bzDecompress
+	BZ2_bzDecompressEnd
+	BZ2_bzReadOpen
+	BZ2_bzReadClose
+	BZ2_bzReadGetUnused
+	BZ2_bzRead
+	BZ2_bzWriteOpen
+	BZ2_bzWrite
+	BZ2_bzWriteClose
+	BZ2_bzWriteClose64
+	BZ2_bzBuffToBuffCompress
+	BZ2_bzBuffToBuffDecompress
+	BZ2_bzlibVersion
+	BZ2_bzopen
+	BZ2_bzdopen
+	BZ2_bzread
+	BZ2_bzwrite
+	BZ2_bzflush
+	BZ2_bzclose
+	BZ2_bzerror
diff --git a/commands/bzip2-1.0.3/libbz2.dsp b/commands/bzip2-1.0.3/libbz2.dsp
new file mode 100644
index 000000000..a21a20f75
--- /dev/null
+++ b/commands/bzip2-1.0.3/libbz2.dsp
@@ -0,0 +1,130 @@
+# Microsoft Developer Studio Project File - Name="libbz2" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** •ÒW‚µ‚È‚¢‚Å‚­‚¾‚³‚¢ **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=libbz2 - Win32 Debug
+!MESSAGE ‚±‚ê‚Í—LŒø‚ÈÒ²¸Ì§²Ù‚Å‚Í‚ ‚è‚Ü‚¹‚ñB ‚±‚ÌÌßÛ¼Þª¸Ä‚ðËÞÙÄނ·‚邽‚ß‚É‚Í NMAKE ‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
+!MESSAGE [Ò²¸Ì§²Ù‚Ì´¸½Îß°Ä] ºÏÝÄނðŽg—p‚µ‚ÄŽÀs‚µ‚Ä‚­‚¾‚³‚¢
+!MESSAGE 
+!MESSAGE NMAKE /f "libbz2.mak".
+!MESSAGE 
+!MESSAGE NMAKE ‚ÌŽÀsŽž‚ɍ\¬‚ðŽw’è‚Å‚«‚Ü‚·
+!MESSAGE ºÏÝÄÞ ×²Ýã‚Åϸۂ̐ݒè‚ð’è‹`‚µ‚Ü‚·B—á:
+!MESSAGE 
+!MESSAGE NMAKE /f "libbz2.mak" CFG="libbz2 - Win32 Debug"
+!MESSAGE 
+!MESSAGE ‘I‘ð‰Â”\‚ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE 
+!MESSAGE "libbz2 - Win32 Release" ("Win32 (x86) Dynamic-Link Library" —p)
+!MESSAGE "libbz2 - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" —p)
+!MESSAGE 
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "libbz2 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# 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
+# 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"
+
+!ELSEIF  "$(CFG)" == "libbz2 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# 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
+# 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
+
+!ENDIF 
+
+# Begin Target
+
+# Name "libbz2 - Win32 Release"
+# Name "libbz2 - Win32 Debug"
+# Begin Source File
+
+SOURCE=.\blocksort.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\bzlib.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\bzlib.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\bzlib_private.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\compress.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\crctable.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\decompress.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\huffman.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\libbz2.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\randtable.c
+# End Source File
+# End Target
+# End Project
diff --git a/commands/bzip2-1.0.3/makefile.msc b/commands/bzip2-1.0.3/makefile.msc
new file mode 100644
index 000000000..799a18a5f
--- /dev/null
+++ b/commands/bzip2-1.0.3/makefile.msc
@@ -0,0 +1,63 @@
+# Makefile for Microsoft Visual C++ 6.0
+# usage: nmake -f makefile.msc
+# K.M. Syring (syring@gsf.de)
+# Fixed up by JRS for bzip2-0.9.5d release.
+
+CC=cl
+CFLAGS= -DWIN32 -MD -Ox -D_FILE_OFFSET_BITS=64 -nologo
+
+OBJS= blocksort.obj  \
+      huffman.obj    \
+      crctable.obj   \
+      randtable.obj  \
+      compress.obj   \
+      decompress.obj \
+      bzlib.obj
+
+all: lib bzip2 test
+
+bzip2: lib
+	$(CC) $(CFLAGS) -o bzip2 bzip2.c libbz2.lib setargv.obj
+	$(CC) $(CFLAGS) -o bzip2recover bzip2recover.c
+
+lib: $(OBJS)
+	lib /out:libbz2.lib $(OBJS)
+
+test: bzip2
+	type 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
+	@echo All six of the fc's should find no differences.
+	@echo If fc finds an error on sample3.bz2, this could be
+	@echo because WinZip's 'TAR file smart CR/LF conversion'
+	@echo is too clever for its own good.  Disable this option.
+	@echo The correct size for sample3.ref is 120,244.  If it
+	@echo is 150,251, WinZip has messed it up.
+	fc sample1.bz2 sample1.rb2 
+	fc sample2.bz2 sample2.rb2
+	fc sample3.bz2 sample3.rb2
+	fc sample1.tst sample1.ref
+	fc sample2.tst sample2.ref
+	fc sample3.tst sample3.ref
+
+
+
+clean: 
+	del *.obj
+	del libbz2.lib 
+	del bzip2.exe
+	del bzip2recover.exe
+	del sample1.rb2 
+	del sample2.rb2 
+	del sample3.rb2
+	del sample1.tst 
+	del sample2.tst
+	del sample3.tst
+
+.c.obj: 
+	$(CC) $(CFLAGS) -c $*.c -o $*.obj
+
diff --git a/commands/bzip2-1.0.3/manual.html b/commands/bzip2-1.0.3/manual.html
new file mode 100644
index 000000000..b28cc79a8
--- /dev/null
+++ b/commands/bzip2-1.0.3/manual.html
@@ -0,0 +1,2687 @@
+
+
+
+bzip2 and libbzip2, version 1.0.3
+
+
+
+
+
+
+

+bzip2 and libbzip2, version 1.0.3

+

A program and library for data compression

+
+

+Julian Seward +

+
http://www.bzip.org
+
+

Version 1.0.3 of 15 February 2005

+
+
+

This program, bzip2, the + associated library libbzip2, and + all documentation, are copyright © 1996-2005 Julian 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:

+
    +
  • Redistributions of source code must retain the + above copyright notice, this list of conditions and the + following disclaimer.

  • +
  • 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.

  • +
  • Altered source versions must be plainly marked + as such, and must not be misrepresented as being the original + software.

  • +
  • 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.

+

PATENTS: To the best of my knowledge, + bzip2 and + libbzip2 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. +

+
+
+
+
+
+ +
+
+

+1. Introduction

+
+
+

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.

+

bzip2 is built on top of +libbzip2, a flexible library for +handling compressed data in the +bzip2 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.

+
    +
  • How to use bzip2 describes how to use + bzip2; this is the only part + you need to read if you just want to know how to operate the + program.

  • +
  • Programming with libbzip2 describes the + programming interfaces in detail, and

  • +
  • Miscellanea records some + miscellaneous notes which I thought ought to be recorded + somewhere.

  • +
+
+
+
+

+2. How to use bzip2

+
+
+ +

This chapter contains a copy of the +bzip2 man page, and nothing +else.

+
+
+

+2.1. NAME

+
+
+
    +
  • bzip2, + bunzip2 - a block-sorting file + compressor, v1.0.3

  • +
  • bzcat - + decompresses files to stdout

  • +
  • bzip2recover - + recovers data from damaged bzip2 files

  • +
+
+
+
+

+2.2. SYNOPSIS

+
+
+
    +
  • bzip2 [ + -cdfkqstvzVL123456789 ] [ filenames ... ]

  • +
  • bunzip2 [ + -fkvsVL ] [ filenames ... ]

  • +
  • bzcat [ -s ] [ + filenames ... ]

  • +
  • bzip2recover + filename

  • +
+
+
+
+

+2.3. 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 statistical 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 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.

+

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 +decompression from standard input to standard output.

+

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 +bzip2 version 0.9.0 or later. +Earlier versions of bzip2 will +stop after decompressing 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 corruption 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, etc.), 2 +to indicate a corrupt compressed file, 3 for an internal +consistency error (eg, bug) which caused +bzip2 to panic.

+
+
+
+

+2.4. 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 invokation 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 verbosity + 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 significantly 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 handle + 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 versions, which was sometimes + useful. 0.9.5 and above have an improved algorithm which + renders these flags irrelevant.

+
+
+
+
+

+2.5. 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) +respectively. 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. 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
+
+
+
+

+2.6. RECOVERING DATA FROM DAMAGED FILES

+
+
+

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.

+

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 damaged file, and writes a +number of files rec0001file.bz2, +rec0002file.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 -- lists 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 minimise any potential data +loss through media or transmission errors, you might consider +compressing with a smaller block size.

+
+
+
+

+2.7. 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.

+

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 +bzip2 will perform best on +machines with very large caches.

+
+
+
+

+2.8. 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.3 of +bzip2. 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 and 1.0.2, 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 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 +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.

+
+
+
+

+2.9. AUTHOR

+
+
+

Julian Seward, +jseward@bzip.org

+

The ideas embodied in +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 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 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.

+
+
+
+
+

+3.  +Programming with libbzip2 +

+
+
+ +

This chapter describes the programming interface to +libbzip2.

+

For general background information, particularly about +memory use and performance aspects, you'd be well advised to read +How to use bzip2 as well.

+
+
+

+3.1. Top-level structure

+
+
+

libbzip2 is a flexible +library for compressing and decompressing data in the +bzip2 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.

+

The structure of +libbzip2's interfaces is similar +to that of Jean-loup Gailly's and Mark Adler's excellent +zlib library.

+

All externally visible symbols have names beginning +BZ2_. This is new in version +1.0. The intention is to minimise pollution of the namespaces of +library clients.

+

To use any part of the library, you need to +#include <bzlib.h> +into your sources.

+
+
+

+3.1.1. Low-level summary

+
+
+

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 +stdio.h, which may be helpful +for embedded applications.

+

The low-level part of the library has no global variables +and is therefore thread-safe.

+

Six routines make up the low level interface: +BZ2_bzCompressInit, +BZ2_bzCompress, and +BZ2_bzCompressEnd for +compression, and a corresponding trio +BZ2_bzDecompressInit, +BZ2_bzDecompress and +BZ2_bzDecompressEnd for +decompression. The *Init +functions allocate memory for compression/decompression and do +other initialisations, whilst the +*End functions close down +operations and release memory.

+

The real work is done by +BZ2_bzCompress and +BZ2_bzDecompress. 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.

+
+
+
+

+3.1.2. High-level summary

+
+
+

This interface provides some handy wrappers around the +low-level interface to facilitate reading and writing +bzip2 format files +(.bz2 files). The routines +provide hooks to facilitate reading files in which the +bzip2 data stream is embedded +within some larger-scale file structure, or where there are +multiple bzip2 data streams +concatenated end-to-end.

+

For reading files, +BZ2_bzReadOpen, +BZ2_bzRead, +BZ2_bzReadClose and +BZ2_bzReadGetUnused are +supplied. For writing files, +BZ2_bzWriteOpen, +BZ2_bzWrite and +BZ2_bzWriteFinish are +available.

+

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 errno to +determine the cause of the error. In that case, you'd need a C +library which correctly supports +errno in a multithreaded +environment.

+

To make the library a little simpler and more portable, +BZ2_bzReadOpen and +BZ2_bzWriteOpen require you to +pass them file handles (FILE*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.

+
+
+
+

+3.1.3. Utility functions summary

+
+
+

For very simple needs, +BZ2_bzBuffToBuffCompress and +BZ2_bzBuffToBuffDecompress 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.

+

Yoshioka Tsuneo +(QWF00133@niftyserve.or.jp / +tsuneo-y@is.aist-nara.ac.jp) has +contributed some functions to give better +zlib compatibility. These +functions are BZ2_bzopen, +BZ2_bzread, +BZ2_bzwrite, +BZ2_bzflush, +BZ2_bzclose, +BZ2_bzerror and +BZ2_bzlibVersion. 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.

+

Yoshioka also contributed modifications to allow the +library to be built as a Windows DLL.

+
+
+
+
+

+3.2. Error handling

+
+
+

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.

+

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.

+

The file bzlib.h contains +all definitions needed to use the library. In particular, you +should definitely not include +bzlib_private.h.

+

In bzlib.h, 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.

+
+
BZ_OK
+

The requested action was completed + successfully.

+
BZ_RUN_OK, BZ_FLUSH_OK, + BZ_FINISH_OK
+

In + BZ2_bzCompress, the requested + flush/finish/nothing-special action was completed + successfully.

+
BZ_STREAM_END
+

Compression of data was completed, or the + logical stream end was detected during + decompression.

+
+

The following return values indicate an error of some +kind.

+
+
BZ_CONFIG_ERROR
+

Indicates that the library has been improperly + compiled on your platform -- a major configuration error. + Specifically, it means that + sizeof(char), + sizeof(short) and + sizeof(int) 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 + sizeof(long) and + sizeof(void*) are 8. Under + LP64, sizeof(int) is still 4, + so libbzip2, which doesn't + use the long type, is + OK.

+
BZ_SEQUENCE_ERROR
+

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. + libbzip2 checks as much as it + can to ensure this is happening, and returns + BZ_SEQUENCE_ERROR 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.

+
BZ_PARAM_ERROR
+

Returned when a parameter to a function call is + out of range or otherwise manifestly incorrect. As with + BZ_SEQUENCE_ERROR, this + denotes a bug in the client code. The distinction between + BZ_PARAM_ERROR and + BZ_SEQUENCE_ERROR is a bit + hazy, but still worth making.

+
BZ_MEM_ERROR
+

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 + BZ2_bzDecompress and + BZ2_bzRead may return + BZ_MEM_ERROR even though some + of the compressed data has been read. The same is not true + for compression; once + BZ2_bzCompressInit or + BZ2_bzWriteOpen have + successfully completed, + BZ_MEM_ERROR cannot + occur.

+
BZ_DATA_ERROR
+

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.

+
BZ_DATA_ERROR_MAGIC
+

As a special case of + BZ_DATA_ERROR, it is + sometimes useful to know when the compressed stream does not + start with the correct magic bytes ('B' 'Z' + 'h').

+
BZ_IO_ERROR
+

Returned by + BZ2_bzRead and + BZ2_bzWrite when there is an + error reading or writing in the compressed file, and by + BZ2_bzReadOpen and + BZ2_bzWriteOpen for attempts + to use a file for which the error indicator (viz, + ferror(f)) is set. On + receipt of BZ_IO_ERROR, the + caller should consult errno + and/or perror to acquire + operating-system specific information about the + problem.

+
BZ_UNEXPECTED_EOF
+

Returned by + BZ2_bzRead when the + compressed file finishes before the logical end of stream is + detected.

+
BZ_OUTBUFF_FULL
+

Returned by + BZ2_bzBuffToBuffCompress and + BZ2_bzBuffToBuffDecompress to + indicate that the output data will not fit into the output + buffer provided.

+
+
+
+
+

+3.3. Low-level interface

+
+
+
+
+

+3.3.1. BZ2_bzCompressInit

+
+
+
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 );
+

Prepares for compression. The +bz_stream structure holds all +data pertaining to the compression activity. A +bz_stream structure should be +allocated and initialised prior to the call. The fields of +bz_stream comprise the entirety +of the user-visible data. state +is a pointer to the private data structures required for +compression.

+

Custom memory allocators are supported, via fields +bzalloc, +bzfree, and +opaque. The value +opaque is passed to as the first +argument to all calls to bzalloc +and bzfree, but is otherwise +ignored by the library. The call bzalloc ( +opaque, n, m ) is expected to return a pointer +p to n * +m bytes of memory, and bzfree ( +opaque, p ) should free that memory.

+

If you don't want to use a custom memory allocator, set +bzalloc, +bzfree and +opaque to +NULL, and the library will then +use the standard malloc / +free routines.

+

Before calling +BZ2_bzCompressInit, fields +bzalloc, +bzfree and +opaque should be filled +appropriately, as just described. Upon return, the internal +state will have been allocated and initialised, and +total_in_lo32, +total_in_hi32, +total_out_lo32 and +total_out_hi32 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 _hi32 +fields to store the upper 32 bits of the count. So, for example, +the total amount of data in is (total_in_hi32 +<< 32) + total_in_lo32.

+

Parameter blockSize100k +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.

+

Parameter verbosity 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 +-DBZ_NO_STDIO, no such output +will appear for any verbosity setting.

+

Parameter workFactor +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.

+

Lower values of workFactor +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.

+

Allowable values range from 0 to 250 inclusive. 0 is a +special case, equivalent to using the default value of 30.

+

Note that the compressed output generated is the same +regardless of whether or not the fallback algorithm is +used.

+

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.

+

Possible return values:

+
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
+

Allowable next actions:

+
BZ2_bzCompress
+  if BZ_OK is returned
+  no specific action needed in case of error
+
+
+
+

+3.3.2. BZ2_bzCompress

+
+
+
int BZ2_bzCompress ( bz_stream *strm, int action );
+

Provides more input and/or output buffer space for the +library. The caller maintains input and output buffers, and +calls BZ2_bzCompress to transfer +data between them.

+

Before each call to +BZ2_bzCompress, +next_in should point at the data +to be compressed, and avail_in +should indicate how many bytes the library may read. +BZ2_bzCompress updates +next_in, +avail_in and +total_in to reflect the number +of bytes it has read.

+

Similarly, next_out should +point to a buffer in which the compressed data is to be placed, +with avail_out indicating how +much output space is available. +BZ2_bzCompress updates +next_out, +avail_out and +total_out to reflect the number +of bytes output.

+

You may provide and remove as little or as much data as you +like on each call of +BZ2_bzCompress. 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.

+

A second purpose of +BZ2_bzCompress is to request a +change of mode of the compressed stream.

+

Conceptually, a compressed stream can be in one of four +states: IDLE, RUNNING, FLUSHING and FINISHING. Before +initialisation +(BZ2_bzCompressInit) and after +termination (BZ2_bzCompressEnd), +a stream is regarded as IDLE.

+

Upon initialisation +(BZ2_bzCompressInit), the stream +is placed in the RUNNING state. Subsequent calls to +BZ2_bzCompress should pass +BZ_RUN as the requested action; +other actions are illegal and will result in +BZ_SEQUENCE_ERROR.

+

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, +BZ2_bzCompress will no longer +attempt to read data from +next_in, but it will want to +write data to next_out. 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 +BZ2_bzCompress.

+

Instead, the calling program passes +BZ_FINISH as an action to +BZ2_bzCompress. This changes +the stream's state to FINISHING. Any remaining input (ie, +next_in[0 .. avail_in-1]) is +compressed and transferred to the output buffer. To do this, +BZ2_bzCompress must be called +repeatedly until all the output has been consumed. At that +point, BZ2_bzCompress returns +BZ_STREAM_END, and the stream's +state is set back to IDLE. +BZ2_bzCompressEnd should then be +called.

+

Just to make sure the calling program does not cheat, the +library makes a note of avail_in +at the time of the first call to +BZ2_bzCompress which has +BZ_FINISH 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 +avail_in over subsequent calls +to BZ2_bzCompress, the library +can detect any attempts to slip in more data to compress. Any +calls for which this is detected will return +BZ_SEQUENCE_ERROR. This +indicates a programming mistake which should be corrected.

+

Instead of asking to finish, the calling program may ask +BZ2_bzCompress 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 BZ2_bzCompress +with an action of BZ_FLUSH, +remove output data, and persist with the +BZ_FLUSH action until the value +BZ_RUN is returned. As with +finishing, BZ2_bzCompress +detects any attempt to provide more input data once the flush has +begun.

+

Once the flush is complete, the stream returns to the +normal RUNNING state.

+

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 +BZ2_bzCompress.

+
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_FINISHING
+
+FINISHING/other
+  Illegal.
+  Return value = BZ_SEQUENCE_ERROR
+

That still looks complicated? Well, fair enough. The +usual sequence of calls for compressing a load of data is:

+
    +
  1. Get started with + BZ2_bzCompressInit.

  2. +
  3. Shovel data in and shlurp out its compressed form + using zero or more calls of + BZ2_bzCompress with action = + BZ_RUN.

  4. +
  5. Finish up. Repeatedly call + BZ2_bzCompress with action = + BZ_FINISH, copying out the + compressed output, until + BZ_STREAM_END is + returned.

  6. +
  7. Close up and go home. Call + BZ2_bzCompressEnd.

  8. +
+

If the data you want to compress fits into your input +buffer all at once, you can skip the calls of +BZ2_bzCompress ( ..., BZ_RUN ) +and just do the BZ2_bzCompress ( ..., BZ_FINISH +) calls.

+

All required memory is allocated by +BZ2_bzCompressInit. The +compression library can accept any data at all (obviously). So +you shouldn't get any error return values from the +BZ2_bzCompress calls. If you +do, they will be +BZ_SEQUENCE_ERROR, and indicate +a bug in your programming.

+

Trivial other possible return values:

+
BZ_PARAM_ERROR
+  if strm is NULL, or strm->s is NULL
+
+
+
+

+3.3.3. BZ2_bzCompressEnd

+
+
+
int BZ2_bzCompressEnd ( bz_stream *strm );
+

Releases all memory associated with a compression +stream.

+

Possible return values:

+
BZ_PARAM_ERROR  if strm is NULL or strm->s is NULL
+BZ_OK           otherwise
+
+
+
+

+3.3.4. BZ2_bzDecompressInit

+
+
+
int BZ2_bzDecompressInit ( bz_stream *strm, int verbosity, int small );
+

Prepares for decompression. As with +BZ2_bzCompressInit, a +bz_stream record should be +allocated and initialised before the call. Fields +bzalloc, +bzfree and +opaque should be set if a custom +memory allocator is required, or made +NULL for the normal +malloc / +free routines. Upon return, the +internal state will have been initialised, and +total_in and +total_out will be zero.

+

For the meaning of parameter +verbosity, see +BZ2_bzCompressInit.

+

If small 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 How to use bzip2 +for more information on memory management.

+

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 +BZ2_bzDecompressInit succeeds, a +subsequent BZ2_bzDecompress +could fail with +BZ_MEM_ERROR.

+

Possible return values:

+
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
+

Allowable next actions:

+
BZ2_bzDecompress
+  if BZ_OK was returned
+  no specific action required in case of error
+
+
+
+

+3.3.5. BZ2_bzDecompress

+
+
+
int BZ2_bzDecompress ( bz_stream *strm );
+

Provides more input and/out output buffer space for the +library. The caller maintains input and output buffers, and uses +BZ2_bzDecompress to transfer +data between them.

+

Before each call to +BZ2_bzDecompress, +next_in should point at the +compressed data, and avail_in +should indicate how many bytes the library may read. +BZ2_bzDecompress updates +next_in, +avail_in and +total_in to reflect the number +of bytes it has read.

+

Similarly, next_out should +point to a buffer in which the uncompressed output is to be +placed, with avail_out +indicating how much output space is available. +BZ2_bzCompress updates +next_out, +avail_out and +total_out to reflect the number +of bytes output.

+

You may provide and remove as little or as much data as you +like on each call of +BZ2_bzDecompress. 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.

+

Use of BZ2_bzDecompress is +simpler than +BZ2_bzCompress.

+

You should provide input and remove output as described +above, and repeatedly call +BZ2_bzDecompress until +BZ_STREAM_END is returned. +Appearance of BZ_STREAM_END +denotes that BZ2_bzDecompress +has detected the logical end of the compressed stream. +BZ2_bzDecompress will not +produce BZ_STREAM_END until all +output data has been placed into the output buffer, so once +BZ_STREAM_END appears, you are +guaranteed to have available all the decompressed output, and +BZ2_bzDecompressEnd can safely +be called.

+

If case of an error return value, you should call +BZ2_bzDecompressEnd to clean up +and release memory.

+

Possible return values:

+
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
+

Allowable next actions:

+
BZ2_bzDecompress
+  if BZ_OK was returned
+BZ2_bzDecompressEnd
+  otherwise
+
+
+
+

+3.3.6. BZ2_bzDecompressEnd

+
+
+
int BZ2_bzDecompressEnd ( bz_stream *strm );
+

Releases all memory associated with a decompression +stream.

+

Possible return values:

+
BZ_PARAM_ERROR
+  if strm is NULL or strm->s is NULL
+BZ_OK
+  otherwise
+

Allowable next actions:

+
  None.
+
+
+
+
+

+3.4. High-level interface

+
+
+

This interface provides functions for reading and writing +bzip2 format files. First, some +general points.

+
    +
  • All of the functions take an + int* first argument, + bzerror. After each call, + bzerror should be consulted + first to determine the outcome of the call. If + bzerror is + BZ_OK, the call completed + successfully, and only then should the return value of the + function (if any) be consulted. If + bzerror is + BZ_IO_ERROR, there was an + error reading/writing the underlying compressed file, and you + should then consult errno / + perror to determine the cause + of the difficulty. bzerror + may also be set to various other values; precise details are + given on a per-function basis below.

  • +
  • If bzerror indicates + an error (ie, anything except + BZ_OK and + BZ_STREAM_END), you should + immediately call + BZ2_bzReadClose (or + BZ2_bzWriteClose, 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 + BZ2_bzReadClose + (BZ2_bzWriteClose) is + undefined. The implication is that (1) + bzerror should be checked + after each call, and (2) if + bzerror indicates an error, + BZ2_bzReadClose + (BZ2_bzWriteClose) should then + be called to clean up.

  • +
  • The FILE* arguments + passed to BZ2_bzReadOpen / + BZ2_bzWriteOpen 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.

  • +
  • Memory allocation requests are handled by + malloc / + free. At present there is no + facility for user-defined memory allocators in the file I/O + functions (could easily be added, though).

  • +
+
+
+

+3.4.1. BZ2_bzReadOpen

+
+
+
typedef void BZFILE;
+
+BZFILE *BZ2_bzReadOpen( int *bzerror, FILE *f, 
+                        int verbosity, int small,
+                        void *unused, int nUnused );
+

Prepare to read compressed data from file handle +f. +f should refer to a file which +has been opened for reading, and for which the error indicator +(ferror(f))is not set. If +small is 1, the library will try +to decompress using less memory, at the expense of speed.

+

For reasons explained below, +BZ2_bzRead will decompress the +nUnused bytes starting at +unused, before starting to read +from the file f. At most +BZ_MAX_UNUSED bytes may be +supplied like this. If this facility is not required, you should +pass NULL and +0 for +unused and +nUnused respectively.

+

For the meaning of parameters +small and +verbosity, see +BZ2_bzDecompressInit.

+

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 BZ2_bzReadOpen +returns BZ_OK but a subsequent +call of BZ2_bzRead will return +BZ_MEM_ERROR.

+

Possible assignments to +bzerror:

+
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.
+

Possible return values:

+
Pointer to an abstract BZFILE
+  if bzerror is BZ_OK
+NULL
+  otherwise
+

Allowable next actions:

+
BZ2_bzRead
+  if bzerror is BZ_OK
+BZ2_bzClose
+  otherwise
+
+
+
+

+3.4.2. BZ2_bzRead

+
+
+
int BZ2_bzRead ( int *bzerror, BZFILE *b, void *buf, int len );
+

Reads up to len +(uncompressed) bytes from the compressed file +b into the buffer +buf. If the read was +successful, bzerror is set to +BZ_OK and the number of bytes +read is returned. If the logical end-of-stream was detected, +bzerror will be set to +BZ_STREAM_END, and the number of +bytes read is returned. All other +bzerror values denote an +error.

+

BZ2_bzRead will supply +len 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 bzerror after every call +and watch out for +BZ_STREAM_END.

+

Internally, BZ2_bzRead +copies data from the compressed file in chunks of size +BZ_MAX_UNUSED bytes before +decompressing it. If the file contains more bytes than strictly +needed to reach the logical end-of-stream, +BZ2_bzRead will almost certainly +read some of the trailing data before signalling +BZ_SEQUENCE_END. To collect the +read but unused data once +BZ_SEQUENCE_END has appeared, +call BZ2_bzReadGetUnused +immediately before +BZ2_bzReadClose.

+

Possible assignments to +bzerror:

+
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.
+

Possible return values:

+
number of bytes read
+  if bzerror is BZ_OK or BZ_STREAM_END
+undefined
+  otherwise
+

Allowable next actions:

+
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
+
+
+
+

+3.4.3. BZ2_bzReadGetUnused

+
+
+
void BZ2_bzReadGetUnused( int* bzerror, BZFILE *b, 
+                          void** unused, int* nUnused );
+

Returns data which was read from the compressed file but +was not needed to get to the logical end-of-stream. +*unused is set to the address of +the data, and *nUnused to the +number of bytes. *nUnused will +be set to a value between 0 and +BZ_MAX_UNUSED inclusive.

+

This function may only be called once +BZ2_bzRead has signalled +BZ_STREAM_END but before +BZ2_bzReadClose.

+

Possible assignments to +bzerror:

+
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
+

Allowable next actions:

+
BZ2_bzReadClose
+
+
+
+

+3.4.4. BZ2_bzReadClose

+
+
+
void BZ2_bzReadClose ( int *bzerror, BZFILE *b );
+

Releases all memory pertaining to the compressed file +b. +BZ2_bzReadClose does not call +fclose on the underlying file +handle, so you should do that yourself if appropriate. +BZ2_bzReadClose should be called +to clean up after all error situations.

+

Possible assignments to +bzerror:

+
BZ_SEQUENCE_ERROR
+  if b was opened with BZ2_bzOpenWrite
+BZ_OK
+  otherwise
+

Allowable next actions:

+
none
+
+
+
+

+3.4.5. BZ2_bzWriteOpen

+
+
+
BZFILE *BZ2_bzWriteOpen( int *bzerror, FILE *f, 
+                         int blockSize100k, int verbosity,
+                         int workFactor );
+

Prepare to write compressed data to file handle +f. +f should refer to a file which +has been opened for writing, and for which the error indicator +(ferror(f))is not set.

+

For the meaning of parameters +blockSize100k, +verbosity and +workFactor, see +BZ2_bzCompressInit.

+

All required memory is allocated at this stage, so if the +call completes successfully, +BZ_MEM_ERROR cannot be signalled +by a subsequent call to +BZ2_bzWrite.

+

Possible assignments to +bzerror:

+
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
+

Possible return values:

+
Pointer to an abstract BZFILE
+  if bzerror is BZ_OK
+NULL
+  otherwise
+

Allowable next actions:

+
BZ2_bzWrite
+  if bzerror is BZ_OK
+  (you could go directly to BZ2_bzWriteClose, but this would be pretty pointless)
+BZ2_bzWriteClose
+  otherwise
+
+
+
+

+3.4.6. BZ2_bzWrite

+
+
+
void BZ2_bzWrite ( int *bzerror, BZFILE *b, void *buf, int len );
+

Absorbs len bytes from the +buffer buf, eventually to be +compressed and written to the file.

+

Possible assignments to +bzerror:

+
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
+
+
+
+

+3.4.7. BZ2_bzWriteClose

+
+
+
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 );
+

Compresses and flushes to the compressed file all data so +far supplied by BZ2_bzWrite. +The logical end-of-stream markers are also written, so subsequent +calls to BZ2_bzWrite are +illegal. All memory associated with the compressed file +b is released. +fflush is called on the +compressed file, but it is not +fclose'd.

+

If BZ2_bzWriteClose 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 +fflush the compressed file. You +can force this behaviour to happen even in the case of no error, +by passing a nonzero value to +abandon.

+

If nbytes_in is non-null, +*nbytes_in will be set to be the +total volume of uncompressed data handled. Similarly, +nbytes_out will be set to the +total volume of compressed data written. For compatibility with +older versions of the library, +BZ2_bzWriteClose only yields the +lower 32 bits of these counts. Use +BZ2_bzWriteClose64 if you want +the full 64 bit counts. These two functions are otherwise +absolutely identical.

+

Possible assignments to +bzerror:

+
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
+
+
+
+

+3.4.8. Handling embedded compressed data streams

+
+
+

The high-level library facilitates use of +bzip2 data streams which form +some part of a surrounding, larger data stream.

+
    +
  • For writing, the library takes an open file handle, + writes compressed data to it, + fflushes it but does not + fclose it. The calling + application can write its own data before and after the + compressed data stream, using that same file handle.

  • +
  • Reading is more complex, and the facilities are not as + general as they could be since generality is hard to reconcile + with efficiency. BZ2_bzRead + reads from the compressed file in blocks of size + BZ_MAX_UNUSED bytes, and in + doing so probably will overshoot the logical end of compressed + stream. To recover this data once decompression has ended, + call BZ2_bzReadGetUnused after + the last call of BZ2_bzRead + (the one returning + BZ_STREAM_END) but before + calling + BZ2_bzReadClose.

  • +
+

This mechanism makes it easy to decompress multiple +bzip2 streams placed end-to-end. +As the end of one stream, when +BZ2_bzRead returns +BZ_STREAM_END, call +BZ2_bzReadGetUnused 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 +BZ2_bzReadOpen again, feeding in +the unused data via the unused / +nUnused parameters. Keep doing +this until BZ_STREAM_END return +coincides with the physical end of file +(feof(f)). In this situation +BZ2_bzReadGetUnused will of +course return no data.

+

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.

+
+
+
+

+3.4.9. Standard file-reading/writing code

+
+
+

Here's how you'd write data to a compressed file:

+
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 */
+}
+

And to read from a compressed file:

+
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 );
+}
+
+
+
+
+

+3.5. Utility functions

+
+
+
+
+

+3.5.1. BZ2_bzBuffToBuffCompress

+
+
+
int BZ2_bzBuffToBuffCompress( char*         dest,
+                              unsigned int* destLen,
+                              char*         source,
+                              unsigned int  sourceLen,
+                              int           blockSize100k,
+                              int           verbosity,
+                              int           workFactor );
+

Attempts to compress the data in source[0 +.. sourceLen-1] into the destination buffer, +dest[0 .. *destLen-1]. If the +destination buffer is big enough, +*destLen is set to the size of +the compressed data, and BZ_OK +is returned. If the compressed data won't fit, +*destLen is unchanged, and +BZ_OUTBUFF_FULL is +returned.

+

Compression in this manner is a one-shot event, done with a +single call to this function. The resulting compressed data is a +complete bzip2 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.

+

For the meaning of parameters +blockSize100k, +verbosity and +workFactor, see +BZ2_bzCompressInit.

+

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.

+

BZ2_bzBuffToBuffDecompress +will not write data at or beyond +dest[*destLen], even in case of +buffer overflow.

+

Possible return values:

+
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
+
+
+
+

+3.5.2. BZ2_bzBuffToBuffDecompress

+
+
+
int BZ2_bzBuffToBuffDecompress( char*         dest,
+                                unsigned int* destLen,
+                                char*         source,
+                                unsigned int  sourceLen,
+                                int           small,
+                                int           verbosity );
+

Attempts to decompress the data in source[0 +.. sourceLen-1] into the destination buffer, +dest[0 .. *destLen-1]. If the +destination buffer is big enough, +*destLen is set to the size of +the uncompressed data, and BZ_OK +is returned. If the compressed data won't fit, +*destLen is unchanged, and +BZ_OUTBUFF_FULL is +returned.

+

source is assumed to hold +a complete bzip2 format data +stream. +BZ2_bzBuffToBuffDecompress tries +to decompress the entirety of the stream into the output +buffer.

+

For the meaning of parameters +small and +verbosity, see +BZ2_bzDecompressInit.

+

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.

+

BZ2_bzBuffToBuffDecompress +will not write data at or beyond +dest[*destLen], even in case of +buffer overflow.

+

Possible return values:

+
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
+
+
+
+
+

+3.6. zlib compatibility functions

+
+
+

Yoshioka Tsuneo has contributed some functions to give +better zlib compatibility. +These functions are BZ2_bzopen, +BZ2_bzread, +BZ2_bzwrite, +BZ2_bzflush, +BZ2_bzclose, +BZ2_bzerror and +BZ2_bzlibVersion. 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.

+
typedef void BZFILE;
+
+const char * BZ2_bzlibVersion ( void );
+

Returns a string indicating the library version.

+
BZFILE * BZ2_bzopen  ( const char *path, const char *mode );
+BZFILE * BZ2_bzdopen ( int        fd,    const char *mode );
+

Opens a .bz2 file for +reading or writing, using either its name or a pre-existing file +descriptor. Analogous to fopen +and fdopen.

+
int BZ2_bzread  ( BZFILE* b, void* buf, int len );
+int BZ2_bzwrite ( BZFILE* b, void* buf, int len );
+

Reads/writes data from/to a previously opened +BZFILE. Analogous to +fread and +fwrite.

+
int  BZ2_bzflush ( BZFILE* b );
+void BZ2_bzclose ( BZFILE* b );
+

Flushes/closes a BZFILE. +BZ2_bzflush doesn't actually do +anything. Analogous to fflush +and fclose.

+
const char * BZ2_bzerror ( BZFILE *b, int *errnum )
+

Returns a string describing the more recent error status of +b, and also sets +*errnum to its numerical +value.

+
+
+
+

+3.7. Using the library in a stdio-free environment

+
+
+
+
+

+3.7.1. Getting rid of stdio

+
+
+

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 +BZ_NO_STDIO defined. Doing this +gives you a library containing only the following eight +functions:

+

BZ2_bzCompressInit, +BZ2_bzCompress, +BZ2_bzCompressEnd +BZ2_bzDecompressInit, +BZ2_bzDecompress, +BZ2_bzDecompressEnd +BZ2_bzBuffToBuffCompress, +BZ2_bzBuffToBuffDecompress

+

When compiled like this, all functions will ignore +verbosity settings.

+
+
+
+

+3.7.2. Critical error handling

+
+
+

libbzip2 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 +BZ_NO_STDIO set.

+

For a normal compile, an assertion failure yields the +message:

+
+

bzip2/libbzip2: internal error number N.

+

This is a bug in bzip2/libbzip2, 1.0.3 of 15 February 2005. +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, 15 February 2005. +

+
+

where N is some error code +number. If N == 1007, 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).

+

exit(3) is then +called.

+

For a stdio-free library, +assertion failures result in a call to a function declared +as:

+
extern void bz_internal_error ( int errcode );
+

The relevant code is passed as a parameter. You should +supply such a function.

+

In either case, once an assertion failure has occurred, any +bz_stream records involved can +be regarded as invalid. You should not attempt to resume normal +operation with them.

+

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.

+
+
+
+
+

+3.8. Making a Windows DLL

+
+
+

Everything related to Windows has been contributed by +Yoshioka Tsuneo +(QWF00133@niftyserve.or.jp / +tsuneo-y@is.aist-nara.ac.jp), so +you should send your queries to him (but perhaps Cc: me, +jseward@bzip.org).

+

My vague understanding of what to do is: using Visual C++ +5.0, open the project file +libbz2.dsp, and build. That's +all.

+

If you can't open the project file for some reason, make a +new one, naming these files: +blocksort.c, +bzlib.c, +compress.c, +crctable.c, +decompress.c, +huffman.c, +randtable.c and +libbz2.def. You will also need +to name the header files bzlib.h +and bzlib_private.h.

+

If you don't use VC++, you may need to define the +proprocessor symbol +_WIN32.

+

Finally, dlltest.c is a +sample program using the DLL. It has a project file, +dlltest.dsp.

+

If you just want a makefile for Visual C, have a look at +makefile.msc.

+

Be aware that if you compile +bzip2 itself on Win32, you must +set BZ_UNIX to 0 and +BZ_LCCWIN32 to 1, in the file +bzip2.c, before compiling. +Otherwise the resulting binary won't work correctly.

+

I haven't tried any of this stuff myself, but it all looks +plausible.

+
+
+
+
+

+4. Miscellanea

+
+
+ +

These are just some random thoughts of mine. Your mileage +may vary.

+
+
+

+4.1. Limitations of the compressed file format

+
+
+

bzip2-1.0.X, +0.9.5 and +0.9.0 use exactly the same file +format as the original version, +bzip2-0.1. This decision was +made in the interests of stability. Creating yet another +incompatible compressed file format would create further +confusion and disruption for users.

+

Nevertheless, this is not a painless decision. Development +work since the release of +bzip2-0.1 in August 1997 has +shown complexities in the file format which slow down +decompression and, in retrospect, are unnecessary. These +are:

+
    +
  • 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.

  • +
  • +

    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.

    +

    I could have changed to Sadakane's algorithm, but I find + it to be slower than bzip2'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 + bzip2-0.1's performance on + repetitive data, so perhaps it isn't a problem for real + inputs.

    +

    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.

    +
  • +
  • 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 + decompress.c 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.

  • +
  • An Adler-32 checksum, rather than a CRC32 checksum, + would be faster to compute.

  • +
+

It would be fair to say that the +bzip2 format was frozen before I +properly and fully understood the performance consequences of +doing so.

+

Improvements which I was able to incorporate into 0.9.0, +despite using the same file format, are:

+
    +
  • Single array implementation of the inverse BWT. This + significantly speeds up decompression, presumably because it + reduces the number of cache misses.

  • +
  • Faster inverse MTF transform for large MTF values. + The new implementation is based on the notion of sliding blocks + of values.

  • +
  • bzip2-0.9.0 now reads + and writes files with fread + and fwrite; version 0.1 used + putc and + getc. Duh! Well, you live + and learn.

  • +
+

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.

+
+
+
+

+4.2. Portability issues

+
+
+

After some consideration, I have decided not to use GNU +autoconf to configure 0.9.5 or +1.0.

+

autoconf, admirable and +wonderful though it is, mainly assists with portability problems +between Unix-like platforms. But +bzip2 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. autoconf doesn't help +in those cases, and brings in a whole load of new +complexity.

+

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.

+

There are a couple of +__inline__ directives in the +code. GNU C (gcc) 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 +#define +__inline__ to be +/* */. One easy way to do this +is to compile with the flag +-D__inline__=, which should be +understood by most Unix compilers.

+

If you still have difficulties, try compiling with the +macro BZ_STRICT_ANSI 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 +bzip2's checks against +compressing directories, symbolic links, devices, and other +not-really-a-file entities. This could cause filesystem +corruption!

+

One other thing: if you create a +bzip2 binary for public distribution, +please consider linking it statically (gcc +-static). This avoids all sorts of library-version +issues that others may encounter later on.

+

If you build bzip2 on +Win32, you must set BZ_UNIX to 0 +and BZ_LCCWIN32 to 1, in the +file bzip2.c, before compiling. +Otherwise the resulting binary won't work correctly.

+
+
+
+

+4.3. Reporting bugs

+
+
+

I tried pretty hard to make sure +bzip2 is bug free, both by +design and by testing. Hopefully you'll never need to read this +section for real.

+

Nevertheless, if bzip2 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.

+
    +
  • +

    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 + bzip2, and I've run across two + such examples myself.

    +

    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 + -O2 + -fomit-frame-pointer + -fno-strength-reduce. You + should specifically not use + -funroll-loops.

    +

    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.

    +
  • +
  • +

    If bzip2 + crashes randomly, and the crashes are not repeatable, you may + have a flaky memory subsystem. + bzip2 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.

    +

    Try using a different machine of the same type, and see + if you can repeat the problem.

    +
  • +
  • This isn't really a bug, but ... If + bzip2 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.

  • +
+

If you've incorporated +libbzip2 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.

+

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:

+
bzip2 crashed with segmentation fault on my machine
+

and absolutely nothing else. Needless to say, a such a +report is totally, utterly, completely and +comprehensively 100% useless; a waste of your time, my time, and +net bandwidth. With no details at all, there's no way +I can possibly begin to figure out what the problem is.

+

The rules of the game are: facts, facts, facts. Don't omit +them because "oh, they won't be relevant". At the bare +minimum:

+
Machine type.  Operating system version.  
+Exact version of bzip2 (do bzip2 -V).  
+Exact version of the compiler used.  
+Flags passed to the compiler.
+

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.

+
+
+
+

+4.4. Did you get the right package?

+
+
+

bzip2 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.

+

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.

+

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, zlib-1.2.1 and +gzip-1.2.4. Look for them at +http://www.zlib.org and +http://www.gzip.org +respectively.

+

For something faster and lighter still, you might try Markus F +X J Oberhumer's LZO real-time +compression/decompression library, at +http://www.oberhumer.com/opensource.

+
+
+
+

+4.5. Further Reading

+
+
+

bzip2 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.

+

Four documents describe essentially all the ideas behind +bzip2:

+

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
+

+

The following paper gives valuable additional insights into +the algorithm, but is not immediately the basis of any code used +in bzip2.

+

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

+

Kunihiko Sadakane's sorting algorithm, mentioned above, is +available from:

+

http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz
+

+

The Manber-Myers suffix array construction algorithm is +described in a paper available from:

+

http://www.cs.arizona.edu/people/gene/PAPERS/suffix.ps
+

+

Finally, the following papers document some +investigations I made into the performance of sorting +and decompression algorithms:

+

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.
+

+
+
+
+ diff --git a/commands/bzip2-1.0.3/manual.pdf b/commands/bzip2-1.0.3/manual.pdf new file mode 100644 index 000000000..394b80925 Binary files /dev/null and b/commands/bzip2-1.0.3/manual.pdf differ diff --git a/commands/bzip2-1.0.3/manual.ps b/commands/bzip2-1.0.3/manual.ps new file mode 100644 index 000000000..03831d194 --- /dev/null +++ b/commands/bzip2-1.0.3/manual.ps @@ -0,0 +1,68244 @@ +%!PS-Adobe-3.0 +%%Creator: xpdf/pdftops 3.00 +%%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 +/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 + /Policies 1 dict dup begin /PageSize 3 def end def + { /Duplex true def } if + currentdict end setpagedevice + } { + pop pop + } ifelse +} def +/pdfStartPage { + pdfDictSize dict begin + /pdfFill [0] def + /pdfStroke [0] 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 +% separation convention operators +/findcmykcustomcolor where { + pop +}{ + /findcmykcustomcolor { 5 array astore } def +} ifelse +/setcustomcolor where { + pop +}{ + /setcustomcolor { + exch + [ exch /Separation exch dup 4 get exch /DeviceCMYK exch + 0 4 getinterval cvx + [ exch /dup load exch { mul exch dup } /forall load + /pop load dup ] cvx + ] setcolorspace setcolor + } def +} ifelse +/customcolorimage where { + pop +}{ + /customcolorimage { + gsave + [ exch /Separation exch dup 4 get exch /DeviceCMYK exch + 0 4 getinterval + [ exch /dup load exch { mul exch dup } /forall load + /pop load dup ] cvx + ] setcolorspace + 10 dict begin + /ImageType 1 def + /DataSource exch def + /ImageMatrix exch def + /BitsPerComponent exch def + /Height exch def + /Width exch def + /Decode [1 0] def + currentdict end + image + grestore + } def +} ifelse +% PDF color state +/sCol { + pdfLastStroke not { + pdfStroke aload length + dup 1 eq { + pop setgray + }{ + dup 3 eq { + pop setrgbcolor + }{ + 4 eq { + setcmykcolor + }{ + findcmykcustomcolor exch setcustomcolor + } ifelse + } ifelse + } ifelse + /pdfLastStroke true def /pdfLastFill false def + } if +} def +/fCol { + pdfLastFill not { + pdfFill aload length + dup 1 eq { + pop setgray + }{ + dup 3 eq { + pop setrgbcolor + }{ + 4 eq { + setcmykcolor + }{ + findcmykcustomcolor exch setcustomcolor + } ifelse + } ifelse + } ifelse + /pdfLastFill true def /pdfLastStroke 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 +/pdfMakeFont16L3 { + 1 index /CIDFont resourcestatus { + pop pop 1 index /CIDFont findresource /CIDFontType known + } { + false + } ifelse + { + 0 eq { /Identity-H } { /Identity-V } ifelse + exch 1 array astore composefont pop + } { + pdfMakeFont16 + } ifelse +} def +% graphics state operators +/q { gsave pdfDictSize dict begin } def +/Q { end grestore } def +/cm { concat } def +/d { setdash } def +/i { setflat } def +/j { setlinejoin } def +/J { setlinecap } def +/M { setmiterlimit } def +/w { setlinewidth } def +% color operators +/g { dup 1 array astore /pdfFill exch def setgray + /pdfLastFill true def /pdfLastStroke false def } def +/G { dup 1 array astore /pdfStroke exch def setgray + /pdfLastStroke true def /pdfLastFill false def } def +/rg { 3 copy 3 array astore /pdfFill exch def setrgbcolor + /pdfLastFill true def /pdfLastStroke false def } def +/RG { 3 copy 3 array astore /pdfStroke exch def setrgbcolor + /pdfLastStroke true def /pdfLastFill false def } def +/k { 4 copy 4 array astore /pdfFill exch def setcmykcolor + /pdfLastFill true def /pdfLastStroke false def } def +/K { 4 copy 4 array astore /pdfStroke exch def setcmykcolor + /pdfLastStroke true def /pdfLastFill false def } def +/ck { 6 copy 6 array astore /pdfFill exch def + findcmykcustomcolor exch setcustomcolor + /pdfLastFill true def /pdfLastStroke false def } def +/CK { 6 copy 6 array astore /pdfStroke exch def + findcmykcustomcolor exch setcustomcolor + /pdfLastStroke true def /pdfLastFill false def } 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 +% 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 +% Level 2 image operators +/pdfImBuf 100 string def +/pdfIm { + image + { currentfile pdfImBuf readline + not { pop exit } if + (%-EOD-) eq { exit } if } loop +} def +/pdfImSep { + findcmykcustomcolor exch + dup /Width get /pdfImBuf1 exch string def + dup /Decode get aload pop 1 index sub /pdfImDecodeRange exch def + /pdfImDecodeLow exch def + begin Width Height BitsPerComponent ImageMatrix DataSource end + /pdfImData exch def + { pdfImData pdfImBuf1 readstring pop + 0 1 2 index length 1 sub { + 1 index exch 2 copy get + pdfImDecodeRange mul 255 div pdfImDecodeLow add round cvi + 255 exch sub put + } for } + 6 5 roll customcolorimage + { 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 +end +%%EndResource +%%EndProlog +%%BeginSetup +xpdf begin +/F121_0 /Helvetica-Bold 1 1 +[ /.notdef/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash + /ogonek/ring/.notdef/breve/minus/.notdef/Zcaron/zcaron + /caron/dotlessi/dotlessj/ff/ffi/ffl/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/grave/quotesingle + /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 + /Euro/.notdef/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl + /circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/quotedblleft/quotedblright/bullet/endash/emdash + /tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef/Ydieresis + /.notdef/exclamdown/cent/sterling/currency/yen/brokenbar/section + /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron + /degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered + /cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown + /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla + /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis + /Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply + /Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls + /agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla + /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis + /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide + /oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] +pdfMakeFont +/F128_0 /Times-Roman 1 1 +[ /.notdef/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash + /ogonek/ring/.notdef/breve/minus/.notdef/Zcaron/zcaron + /caron/dotlessi/dotlessj/ff/ffi/ffl/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/grave/quotesingle + /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 + /Euro/.notdef/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl + /circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/quotedblleft/quotedblright/bullet/endash/emdash + /tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef/Ydieresis + /.notdef/exclamdown/cent/sterling/currency/yen/brokenbar/section + /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron + /degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered + /cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown + /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla + /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis + /Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply + /Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls + /agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla + /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis + /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide + /oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] +pdfMakeFont +/F130_0 /Courier 1 1 +[ /.notdef/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash + /ogonek/ring/.notdef/breve/minus/.notdef/Zcaron/zcaron + /caron/dotlessi/dotlessj/ff/ffi/ffl/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/grave/quotesingle + /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 + /Euro/.notdef/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl + /circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/quotedblleft/quotedblright/bullet/endash/emdash + /tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef/Ydieresis + /.notdef/exclamdown/cent/sterling/currency/yen/brokenbar/section + /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron + /degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered + /cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown + /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla + /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis + /Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply + /Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls + /agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla + /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis + /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide + /oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] +pdfMakeFont +%%BeginResource: font CJBHNS+CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CJBHNS+CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 45 /arrowhookright put +dup 58 /period put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +/UniqueID 5087385 def +currentdict end +currentfile eexec +d9d66f633b846a97b686a97e45a3d0aa0529731c99a784ccbe85b4993b2eebde +3b12d472b7cf54651ef21185116a69ab1096ed4bad2f646635e019b6417cc77b +532f85d811c70d1429a19a5307ef63eb5c5e02c89fc6c20f6d9d89e7d91fe470 +b72befda23f5df76be05af4ce93137a219ed8a04a9d7d6fdf37e6b7fcde0d90b +986423e5960a5d9fbb4c956556e8df90cbfaec476fa36fd9a5c8175c9af513fe +d919c2ddd26bdc0d99398b9f4d03d5993dfc0930297866e1cd0a319b6b1fd958 +9e394a533a081c36d456a09920001a3d2199583eb9b84b4dee08e3d12939e321 +990cd249827d9648574955f61baaa11263a91b6c3d47a5190165b0c25abf6d3e +6ec187e4b05182126bb0d0323d943170b795255260f9fd25f2248d04f45dfbfb +def7ff8b19bfef637b210018ae02572b389b3f76282beb29cc301905d388c721 +59616893e774413f48de0b408bc66dce3fe17cb9f84d205839d58014d6a88823 +d9320ae93af96d97a02c4d5a2bb2b8c7925c4578003959c46e3ce1a2f0eac4bf +8b9b325e46435bde60bc54d72bc8acb5c0a34413ac87045dc7b84646a324b808 +6fd8e34217213e131c3b1510415ce45420688ed9c1d27890ec68bd7c1235faf9 +1dab3a369dd2fc3be5cf9655c7b7eda7361d7e05e5831b6b8e2eec542a7b38ee +03be4bac6079d038acb3c7c916279764547c2d51976baba94ba9866d79f13909 +95aa39b0f03103a07cbdf441b8c5669f729020af284b7ff52a29c6255fcaacf1 +74109050fba2602e72593fbcbfc26e726ee4aef97b7632bc4f5f353b5c67fed2 +3ea752a4a57b8f7feff1d7341d895f0a3a0be1d8e3391970457a967eff84f6d8 +47750b1145b8cc5bd96ee7aa99ddc9e06939e383bda41175233d58ad263ebf19 +afc0e2f840512d321166547b306c592b8a01e1fa2564b9a26dac14256414e4c8 +42616728d918c74d13c349f4186ec7b9708b86467425a6fdb3a396562f7ee4d8 +40b43621744cf8a23a6e532649b66c2a0002dd04f8f39618e4f572819dd34837 +b5a08e643fdca1505af6a1fa3ddfd1fa758013caed8acddbbb334d664dff5b53 +95601766777978d01677b8d19e1b10a078432d2884bb42d1f224976325883657 +05acb022d1e9cb556e37af91917c78e98229e3a4dbf03ae741998542977ad6df +1760fc1f1a479464922afda2cba7961e9da696b71205e19c542c97f25419c43c +fa1a042ba0cf5622ffbd3e775d0d564135d99b9ffba011eebc4066b003ce2f88 +825936d7393d05d3804601cee9d123120fdf73624a9d4e361a28e998acec53f8 +7a62a0aee33be2e96542534a8af24497d1c377cd7f723767b44857d94c6cda7a +c3d6f0087fa36655dd2b81eaecb31fe4f4a2fb1ea9fbe8b83d35826ac93fbb4f +2bee014f41f8f276510cf5ce35c3954e8cafc521d0c3ab80ea8c7fc29427a1d4 +42d6f6c1800919e58de9ae12304d718ad80febbb412da54153469cd51a288628 +ad109baa77981525b3d9b0efe593537fcbb8520d38cccbd5db171a0385a432c1 +3030303030303030 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F143_0 /CJBHNS+CMMI10 1 1 +[ /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon + /Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1 + /zeta/eta/theta/iota/kappa/lambda/mu/nu + /xi/pi/rho/sigma/tau/upsilon/phi/chi + /psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1 + /arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft + /zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle + /eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star + /partialdiff/A/B/C/D/E/F/G + /H/I/J/K/L/M/N/O + /P/Q/R/S/T/U/V/W + /X/Y/Z/flat/natural/sharp/slurbelow/slurabove + /lscript/a/b/c/d/e/f/g + /h/i/j/k/l/m/n/o + /p/q/r/s/t/u/v/w + /x/y/z/dotlessi/dotlessj/weierstrass/vector/tie + /psi/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma + /Upsilon/Phi/Psi/.notdef/.notdef/Omega/alpha/beta + /gamma/delta/epsilon1/zeta/eta/theta/iota/kappa + /lambda/mu/nu/xi/pi/rho/sigma/tau + /upsilon/phi/chi/psi/tie/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +/F387_0 /Courier-Bold 1 1 +[ /.notdef/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash + /ogonek/ring/.notdef/breve/minus/.notdef/Zcaron/zcaron + /caron/dotlessi/dotlessj/ff/ffi/ffl/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/grave/quotesingle + /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 + /Euro/.notdef/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl + /circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/quotedblleft/quotedblright/bullet/endash/emdash + /tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef/Ydieresis + /.notdef/exclamdown/cent/sterling/currency/yen/brokenbar/section + /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron + /degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered + /cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown + /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla + /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis + /Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply + /Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls + /agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla + /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis + /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide + /oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] +pdfMakeFont +%%BeginResource: font RBGKEI+CMSY10 +%!PS-AdobeFont-1.1: CMSY10 1.0 +%%CreationDate: 1991 Aug 15 07:20:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /RBGKEI+CMSY10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 32 /arrowleft put +readonly def +/FontBBox{-29 -960 1116 775}readonly def +/UniqueID 5000820 def +currentdict end +currentfile eexec +d9d66f633b846a97b686a97e45a3d0aa052f09f9c8ade9d907c058b87e9b6964 +7d53359e51216774a4eaa1e2b58ec3176bd1184a633b951372b4198d4e8c5ef4 +a213acb58aa0a658908035bf2ed8531779838a960dfe2b27ea49c37156989c85 +e21b3abf72e39a89232cd9f4237fc80c9e64e8425aa3bef7ded60b122a52922a +221a37d9a807dd01161779dde7d31ff2b87f97c73d63eecdda4c49501773468a +27d1663e0b62f461f6e40a5d6676d1d12b51e641c1d4e8e2771864fc104f8cbf +5b78ec1d88228725f1c453a678f58a7e1b7bd7ca700717d288eb8da1f57c4f09 +0abf1d42c5ddd0c384c7e22f8f8047be1d4c1cc8e33368fb1ac82b4e96146730 +de3302b2e6b819cb6ae455b1af3187ffe8071aa57ef8a6616b9cb7941d44ec7a +71a7bb3df755178d7d2e4bb69859efa4bbc30bd6bb1531133fd4d9438ff99f09 +4ecc068a324d75b5f696b8688eeb2f17e5ed34ccd6d047a4e3806d000c199d7c +515db70a8d4f6146fe068dc1e5de8bc5703711da090312ba3fc00a08c453c609 +c627a8bd98d9e826f964721e92bbdc978e88eea0a9c14802ebcc41f810428fa8 +b9972032a01769a7c72d1a65276f414deedaf1d22be23f4705bf5ef31b6a3b69 +0c896320f09e9875b50220a5bdbbd57c041b5ea97f421685a7256b0d9755edbe +d05190dabf1c3dbf558258163c8231d89167a816bba55fb1f14ad04320ae381d +f783a9eacee8ae5c1838775fe2380bdd1f3afcccc96d2a2dfc999b52a6689c51 +af82b8d63205b339103134dac7e3c45e6693940276041bb07ebdb9b729e8ef0d +ee8bf450fa42551be65217fea902e28decc09580b504f0f52f1e8fc5ce7ac28d +c4e47f908fdaeba23827a97a0aa741aa7708f7bbfec6fa69cc4f7c3bd4303030 +3030303030 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F559_0 /RBGKEI+CMSY10 1 1 +[ /minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus + /circleplus/circleminus/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet + /equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal + /similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows + /arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast/arrowsoutheast/similarequal + /arrowdblleft/arrowdblright/arrowdblup/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional + /prime/infinity/element/owner/triangle/triangleinv/negationslash/mapsto + /universal/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular + /aleph/A/B/C/D/E/F/G + /H/I/J/K/L/M/N/O + /P/Q/R/S/T/U/V/W + /X/Y/Z/union/intersection/unionmulti/logicaland/logicalor + /turnstileleft/turnstileright/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright + /angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv/backslash/wreathproduct + /radical/coproduct/nabla/integral/unionsq/intersectionsq/subsetsqequal/supersetsqequal + /section/dagger/daggerdbl/paragraph/club/diamond/heart/spade + /arrowleft/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus + /minusplus/circleplus/circleminus/.notdef/.notdef/circlemultiply/circledivide/circledot + /circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal + /greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch + /greatermuch/precedes/follows/arrowleft/spade/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] +pdfMakeFont +/F631_0 /Times-Italic 1 1 +[ /.notdef/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash + /ogonek/ring/.notdef/breve/minus/.notdef/Zcaron/zcaron + /caron/dotlessi/dotlessj/ff/ffi/ffl/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/grave/quotesingle + /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 + /Euro/.notdef/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl + /circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/quotedblleft/quotedblright/bullet/endash/emdash + /tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef/Ydieresis + /.notdef/exclamdown/cent/sterling/currency/yen/brokenbar/section + /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron + /degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered + /cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown + /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla + /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis + /Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply + /Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls + /agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla + /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis + /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide + /oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] +pdfMakeFont +612 792 false pdfSetup +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 756] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 463.018 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -468 -36] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +117.435 701.916 Td +/F121_0 24.79 Tf +(bzip2) 63.3632 Tj +-278 TJm +(and) 44.0766 Tj +-278 TJm +(libbzip2,) 99.1848 Tj +-278 TJm +(ver) 37.2098 Tj +15 TJm +(sion) 50.9682 Tj +-278 TJm +(1.0.3) 55.133 Tj +[1 0 0 1 72 696.784] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -15.494] cm +0 g +0 G +[1 0 0 1 -72 -681.29] cm +[1 0 0 1 0 0] Tm +0 0 Td +90.493 661.631 Td +/F121_0 20.659 Tf +(A) 14.9158 Tj +-278 TJm +(pr) 20.659 Tj +20 TJm +(ogram) 63.1339 Tj +-278 TJm +(and) 36.7317 Tj +-278 TJm +(librar) 51.6682 Tj +-10 TJm +(y) 11.4864 Tj +-278 TJm +(f) 6.87945 Tj +20 TJm +(or) 20.659 Tj +-278 TJm +(data) 42.4749 Tj +-277 TJm +(compression) 128.582 Tj +[1 0 0 1 72 657.035] cm +0 g +0 G +[1 0 0 1 0 -144] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -513.035] cm +[1 0 0 1 0 0] Tm +0 0 Td +207.676 503.285 Td +/F121_0 11.955 Tf +(J) 6.64698 Tj +20 TJm +(ulian) 27.903 Tj +-278 TJm +(Se) 14.621 Tj +15 TJm +(war) 20.5985 Tj +20 TJm +(d,) 10.628 Tj +-278 TJm +(http://www) 61.102 Tj +40 TJm +(.bzip.or) 42.512 Tj +15 TJm +(g) 7.30451 Tj +[1 0 0 1 72 500.625] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -435.825] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 463.018 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 2 2 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 140.398 0] cm +0 g +0 G +[1 0 0 1 -140.398 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -13.948] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 709.534 Td +/F121_0 14.346 Tf +(bzip2) 36.6684 Tj +-489 TJm +(and) 25.5072 Tj +-488 TJm +(libbzip2,) 57.3983 Tj +-542 TJm +(ver) 21.5333 Tj +15 TJm +(sion) 29.4954 Tj +-489 TJm +(1.0.3:) 36.6827 Tj +-765 TJm +(A) 10.3578 Tj +-488 TJm +(pr) 14.346 Tj +20 TJm +(ogram) 43.8414 Tj +-489 TJm +(and) 25.5072 Tj +-489 TJm +(librar) 35.8793 Tj +-10 TJm +(y) 7.97638 Tj +-489 TJm +(f) 4.77722 Tj +20 TJm +(or) 14.346 Tj +-488 TJm +(data) 29.4954 Tj +72 692.319 Td +(compression) 89.2895 Tj +[1 0 0 1 72 689.349] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -689.349] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 680.364 Td +/F128_0 9.963 Tf +(by) 9.963 Tj +-250 TJm +(Julian) 23.8016 Tj +-250 TJm +(Se) 9.963 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(ard) 12.7228 Tj +[1 0 0 1 72 678.207] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -678.207] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 668.409 Td +/F128_0 9.963 Tf +(Cop) 16.6083 Tj +10 TJm +(yright) 23.8016 Tj +[1 0 0 1 114.799 668.409] cm +0 g +0 G +[1 0 0 1 -114.799 -668.409] cm +[1 0 0 1 0 0] Tm +0 0 Td +114.799 668.409 Td +/F128_0 9.963 Tf +(\251) 7.57188 Tj +[1 0 0 1 122.371 668.409] cm +0 g +0 G +[1 0 0 1 -122.371 -668.409] cm +[1 0 0 1 0 0] Tm +0 0 Td +124.861 668.409 Td +/F128_0 9.963 Tf +(1996-2005) 43.1697 Tj +-250 TJm +(Julian) 23.8016 Tj +-250 TJm +(Se) 9.963 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(ard) 12.7228 Tj +[1 0 0 1 72 666.252] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -7.97] cm +0 g +0 G +[1 0 0 1 -72 -658.282] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 650.874 Td +/F128_0 7.97 Tf +(This) 14.1707 Tj +-250 TJm +(program,) 28.9949 Tj +[1 0 0 1 119.151 650.874] cm +0 g +0 G +[1 0 0 1 -119.151 -650.874] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.151 650.874 Td +/F130_0 7.97 Tf +(bzip2) 23.91 Tj +[1 0 0 1 143.061 650.874] cm +0 g +0 G +[1 0 0 1 -143.061 -650.874] cm +[1 0 0 1 0 0] Tm +0 0 Td +143.061 650.874 Td +/F128_0 7.97 Tf +(,) 1.9925 Tj +-250 TJm +(the) 9.73934 Tj +-250 TJm +(associated) 32.7567 Tj +-250 TJm +(library) 21.248 Tj +[1 0 0 1 216.768 650.874] cm +0 g +0 G +[1 0 0 1 -216.768 -650.874] cm +[1 0 0 1 0 0] Tm +0 0 Td +216.768 650.874 Td +/F130_0 7.97 Tf +(libbzip2) 38.256 Tj +[1 0 0 1 255.024 650.874] cm +0 g +0 G +[1 0 0 1 -255.024 -650.874] cm +[1 0 0 1 0 0] Tm +0 0 Td +255.024 650.874 Td +/F128_0 7.97 Tf +(,) 1.9925 Tj +-250 TJm +(and) 11.5087 Tj +-250 TJm +(all) 7.97 Tj +-250 TJm +(documentation,) 49.3662 Tj +-250 TJm +(are) 9.73137 Tj +-250 TJm +(cop) 11.5087 Tj +10 TJm +(yright) 19.0403 Tj +-250 TJm +(\251) 6.0572 Tj +-250 TJm +(1996-2005) 34.534 Tj +-250 TJm +(Julian) 19.0403 Tj +-250 TJm +(Se) 7.97 Tj +25 TJm +(w) 5.75434 Tj +10 TJm +(ard.) 12.1702 Tj +-310 TJm +(All) 10.1857 Tj +-250 TJm +(rights) 18.1557 Tj +-250 TJm +(reserv) 19.4707 Tj +15 TJm +(ed.) 9.51618 Tj +[1 0 0 1 72 649.149] cm +0 g +0 G +[1 0 0 1 0 -7.97] cm +0 g +0 G +[1 0 0 1 -72 -641.179] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 633.34 Td +/F128_0 7.97 Tf +(Redistrib) 29.226 Tj +20 TJm +(ution) 16.3863 Tj +-250 TJm +(and) 11.5087 Tj +-250 TJm +(use) 10.624 Tj +-250 TJm +(in) 6.20066 Tj +-250 TJm +(source) 20.8017 Tj +-250 TJm +(and) 11.5087 Tj +-250 TJm +(binary) 20.3634 Tj +-250 TJm +(forms,) 20.5865 Tj +-250 TJm +(with) 14.1707 Tj +-250 TJm +(or) 6.63901 Tj +-250 TJm +(without) 24.3563 Tj +-250 TJm +(modi\002cation,) 42.2888 Tj +-250 TJm +(are) 9.73137 Tj +-250 TJm +(permitted) 30.549 Tj +-250 TJm +(pro) 10.624 Tj +15 TJm +(vided) 17.7093 Tj +-250 TJm +(that) 11.955 Tj +-250 TJm +(the) 9.73934 Tj +-250 TJm +(follo) 15.0553 Tj +25 TJm +(wing) 15.94 Tj +-250 TJm +(conditions) 33.211 Tj +-250 TJm +(are) 9.73137 Tj +-250 TJm +(met:) 14.1707 Tj +[1 0 0 1 72 631.615] cm +0 g +0 G +[1 0 0 1 0 -23.779] cm +0 g +0 G +[1 0 0 1 5.579 0] cm +0 g +0 G +[1 0 0 1 -77.579 -607.836] cm +[1 0 0 1 0 0] Tm +0 0 Td +77.579 607.836 Td +/F128_0 7.97 Tf +(\225) 2.7895 Tj +[1 0 0 1 80.369 607.836] cm +0 g +0 G +[1 0 0 1 1.992 0] cm +0 g +0 G +[1 0 0 1 1.594 0] cm +0 g +0 G +[1 0 0 1 -83.955 -607.836] cm +[1 0 0 1 0 0] Tm +0 0 Td +83.955 607.836 Td +/F128_0 7.97 Tf +(Redistrib) 29.226 Tj +20 TJm +(utions) 19.4867 Tj +-250 TJm +(of) 6.63901 Tj +-250 TJm +(source) 20.8017 Tj +-250 TJm +(code) 15.0474 Tj +-250 TJm +(must) 15.5017 Tj +-250 TJm +(retain) 18.1477 Tj +-250 TJm +(the) 9.73934 Tj +-250 TJm +(abo) 11.5087 Tj +15 TJm +(v) 3.985 Tj +15 TJm +(e) 3.53868 Tj +-250 TJm +(cop) 11.5087 Tj +10 TJm +(yright) 19.0403 Tj +-250 TJm +(notice,) 21.4712 Tj +-250 TJm +(this) 11.5167 Tj +-250 TJm +(list) 9.74731 Tj +-250 TJm +(of) 6.63901 Tj +-250 TJm +(conditions) 33.211 Tj +-250 TJm +(and) 11.5087 Tj +-250 TJm +(the) 9.73934 Tj +-250 TJm +(follo) 15.0553 Tj +25 TJm +(wing) 15.94 Tj +-250 TJm +(disclaimer) 33.203 Tj +55 TJm +(.) 1.9925 Tj +[1 0 0 1 470.908 607.836] cm +0 g +0 G +[1 0 0 1 -398.908 -17.534] cm +0 g +0 G +[1 0 0 1 5.579 0] cm +0 g +0 G +[1 0 0 1 -77.579 -590.302] cm +[1 0 0 1 0 0] Tm +0 0 Td +77.579 590.302 Td +/F128_0 7.97 Tf +(\225) 2.7895 Tj +[1 0 0 1 80.369 590.302] cm +0 g +0 G +[1 0 0 1 1.992 0] cm +0 g +0 G +[1 0 0 1 1.594 0] cm +0 g +0 G +[1 0 0 1 -83.955 -590.302] cm +[1 0 0 1 0 0] Tm +0 0 Td +83.955 590.302 Td +/F128_0 7.97 Tf +(The) 12.3933 Tj +-270 TJm +(origin) 19.0403 Tj +-270 TJm +(of) 6.63901 Tj +-270 TJm +(this) 11.5167 Tj +-270 TJm +(softw) 17.7093 Tj +10 TJm +(are) 9.73137 Tj +-270 TJm +(must) 15.5017 Tj +-270 TJm +(not) 10.1857 Tj +-270 TJm +(be) 7.52368 Tj +-270 TJm +(misrepresented;) 50.466 Tj +-280 TJm +(you) 11.955 Tj +-270 TJm +(must) 15.5017 Tj +-270 TJm +(not) 10.1857 Tj +-270 TJm +(claim) 17.7093 Tj +-270 TJm +(that) 11.955 Tj +-270 TJm +(you) 11.955 Tj +-270 TJm +(wrote) 18.1477 Tj +-270 TJm +(the) 9.73934 Tj +-270 TJm +(original) 24.7947 Tj +-270 TJm +(softw) 17.7093 Tj +10 TJm +(are.) 11.7239 Tj +-739 TJm +(If) 5.30802 Tj +-270 TJm +(you) 11.955 Tj +-270 TJm +(use) 10.624 Tj +-270 TJm +(this) 11.5167 Tj +-270 TJm +(softw) 17.7093 Tj +10 TJm +(are) 9.73137 Tj +-270 TJm +(in) 6.20066 Tj +-270 TJm +(a) 3.53868 Tj +83.955 580.738 Td +(product,) 26.3409 Tj +-250 TJm +(an) 7.52368 Tj +-250 TJm +(ackno) 19.0324 Tj +25 TJm +(wledgment) 35.4187 Tj +-250 TJm +(in) 6.20066 Tj +-250 TJm +(the) 9.73934 Tj +-250 TJm +(product) 24.3484 Tj +-250 TJm +(documentation) 47.3737 Tj +-250 TJm +(w) 5.75434 Tj +10 TJm +(ould) 14.1707 Tj +-250 TJm +(be) 7.52368 Tj +-250 TJm +(appreciated) 36.7337 Tj +-250 TJm +(b) 3.985 Tj +20 TJm +(ut) 6.20066 Tj +-250 TJm +(is) 5.31599 Tj +-250 TJm +(not) 10.1857 Tj +-250 TJm +(required.) 28.5485 Tj +[1 0 0 1 403.817 580.738] cm +0 g +0 G +[1 0 0 1 -331.817 -17.535] cm +0 g +0 G +[1 0 0 1 5.579 0] cm +0 g +0 G +[1 0 0 1 -77.579 -563.203] cm +[1 0 0 1 0 0] Tm +0 0 Td +77.579 563.203 Td +/F128_0 7.97 Tf +(\225) 2.7895 Tj +[1 0 0 1 80.369 563.203] cm +0 g +0 G +[1 0 0 1 1.992 0] cm +0 g +0 G +[1 0 0 1 1.594 0] cm +0 g +0 G +[1 0 0 1 -83.955 -563.203] cm +[1 0 0 1 0 0] Tm +0 0 Td +83.955 563.203 Td +/F128_0 7.97 Tf +(Altered) 23.902 Tj +-250 TJm +(source) 20.8017 Tj +-250 TJm +(v) 3.985 Tj +15 TJm +(ersions) 22.579 Tj +-250 TJm +(must) 15.5017 Tj +-250 TJm +(be) 7.52368 Tj +-250 TJm +(plainly) 22.1407 Tj +-250 TJm +(mark) 16.3783 Tj +10 TJm +(ed) 7.52368 Tj +-250 TJm +(as) 6.63901 Tj +-250 TJm +(such,) 16.6015 Tj +-250 TJm +(and) 11.5087 Tj +-250 TJm +(must) 15.5017 Tj +-250 TJm +(not) 10.1857 Tj +-250 TJm +(be) 7.52368 Tj +-250 TJm +(misrepresented) 48.2504 Tj +-250 TJm +(as) 6.63901 Tj +-250 TJm +(being) 17.7093 Tj +-250 TJm +(the) 9.73934 Tj +-250 TJm +(original) 24.7947 Tj +-250 TJm +(softw) 17.7093 Tj +10 TJm +(are.) 11.7239 Tj +[1 0 0 1 464.405 563.203] cm +0 g +0 G +[1 0 0 1 -392.405 -17.534] cm +0 g +0 G +[1 0 0 1 5.579 0] cm +0 g +0 G +[1 0 0 1 -77.579 -545.669] cm +[1 0 0 1 0 0] Tm +0 0 Td +77.579 545.669 Td +/F128_0 7.97 Tf +(\225) 2.7895 Tj +[1 0 0 1 80.369 545.669] cm +0 g +0 G +[1 0 0 1 1.992 0] cm +0 g +0 G +[1 0 0 1 1.594 0] cm +0 g +0 G +[1 0 0 1 -83.955 -545.669] cm +[1 0 0 1 0 0] Tm +0 0 Td +83.955 545.669 Td +/F128_0 7.97 Tf +(The) 12.3933 Tj +-250 TJm +(name) 17.263 Tj +-250 TJm +(of) 6.63901 Tj +-250 TJm +(the) 9.73934 Tj +-250 TJm +(author) 20.3634 Tj +-250 TJm +(may) 13.7243 Tj +-250 TJm +(not) 10.1857 Tj +-250 TJm +(be) 7.52368 Tj +-250 TJm +(used) 14.609 Tj +-250 TJm +(to) 6.20066 Tj +-250 TJm +(endorse) 24.7867 Tj +-250 TJm +(or) 6.63901 Tj +-250 TJm +(promote) 26.564 Tj +-250 TJm +(products) 27.4487 Tj +-250 TJm +(deri) 12.3933 Tj +25 TJm +(v) 3.985 Tj +15 TJm +(ed) 7.52368 Tj +-250 TJm +(from) 15.4937 Tj +-250 TJm +(this) 11.5167 Tj +-250 TJm +(softw) 17.7093 Tj +10 TJm +(are) 9.73137 Tj +-250 TJm +(without) 24.3563 Tj +-250 TJm +(speci\002c) 24.3483 Tj +-250 TJm +(prior) 15.4937 Tj +-250 TJm +(written) 22.579 Tj +-250 TJm +(permission.) 36.9728 Tj +[1 0 0 1 533.577 545.669] cm +0 g +0 G +[1 0 0 1 -461.577 -9.696] cm +0 g +0 G +[1 0 0 1 -72 -535.973] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 528.135 Td +/F128_0 7.97 Tf +(THIS) 17.7093 Tj +-259 TJm +(SOFTW) 27.0103 Tj +120 TJm +(ARE) 15.94 Tj +-259 TJm +(IS) 7.08533 Tj +-258 TJm +(PR) 9.74731 Tj +40 TJm +(O) 5.75434 Tj +50 TJm +(VIDED) 24.7867 Tj +-259 TJm +(BY) 11.0703 Tj +-259 TJm +(THE) 15.4937 Tj +-259 TJm +(A) 5.75434 Tj +55 TJm +(UTHOR) 27.4487 Tj +-258 TJm +("AS) 13.4374 Tj +-259 TJm +(IS") 10.3371 Tj +-259 TJm +(AND) 17.263 Tj +-259 TJm +(ANY) 17.263 Tj +-258 TJm +(EXPRESS) 34.1036 Tj +-259 TJm +(OR) 11.0703 Tj +-259 TJm +(IMPLIED) 32.3184 Tj +-259 TJm +(W) 7.52368 Tj +120 TJm +(ARRANTIES,) 46.7122 Tj +-259 TJm +(INCLUDING,) 46.2579 Tj +-258 TJm +(B) 5.31599 Tj +10 TJm +(UT) 10.624 Tj +-259 TJm +(NO) 11.5087 Tj +40 TJm +(T) 4.86967 Tj +72 518.571 Td +(LIMITED) 32.7567 Tj +-303 TJm +(T) 4.86967 Tj +18 TJm +(O,) 7.74684 Tj +-303 TJm +(THE) 15.4937 Tj +-304 TJm +(IMPLIED) 32.3184 Tj +-303 TJm +(W) 7.52368 Tj +120 TJm +(ARRANTIES) 44.7197 Tj +-303 TJm +(OF) 10.1857 Tj +-303 TJm +(MERCHANT) 44.7197 Tj +93 TJm +(ABILITY) 31.872 Tj +-304 TJm +(AND) 17.263 Tj +-303 TJm +(FITNESS) 31.4417 Tj +-303 TJm +(FOR) 15.5017 Tj +-303 TJm +(A) 5.75434 Tj +-303 TJm +(P) 4.43132 Tj +92 TJm +(AR) 11.0703 Tj +60 TJm +(TICULAR) 34.534 Tj +-304 TJm +(PURPOSE) 34.9883 Tj +-303 TJm +(ARE) 15.94 Tj +-303 TJm +(DISCLAI-) 34.0877 Tj +72 509.007 Td +(MED.) 19.7018 Tj +-653 TJm +(IN) 8.40835 Tj +-326 TJm +(NO) 11.5087 Tj +-327 TJm +(EVENT) 26.1177 Tj +-326 TJm +(SHALL) 25.6793 Tj +-326 TJm +(THE) 15.4937 Tj +-327 TJm +(A) 5.75434 Tj +55 TJm +(UTHOR) 27.4487 Tj +-326 TJm +(BE) 10.1857 Tj +-327 TJm +(LIABLE) 28.3333 Tj +-326 TJm +(FOR) 15.5017 Tj +-326 TJm +(ANY) 17.263 Tj +-327 TJm +(DIRECT) 28.7797 Tj +74 TJm +(,) 1.9925 Tj +-326 TJm +(INDIRECT) 37.188 Tj +74 TJm +(,) 1.9925 Tj +-327 TJm +(INCIDENT) 37.6264 Tj +93 TJm +(AL,) 12.6165 Tj +-326 TJm +(SPECIAL,) 34.3188 Tj +-327 TJm +(EXEMPLAR) 42.9503 Tj +65 TJm +(Y) 5.75434 Tj +129 TJm +(,) 1.9925 Tj +-326 TJm +(OR) 11.0703 Tj +72 499.442 Td +(CONSEQ) 31.88 Tj +10 TJm +(UENTIAL) 34.526 Tj +-218 TJm +(D) 5.75434 Tj +40 TJm +(AMA) 18.594 Tj +40 TJm +(GES) 15.0553 Tj +-218 TJm +(\(INCLUDING,) 48.9119 Tj +-218 TJm +(B) 5.31599 Tj +10 TJm +(UT) 10.624 Tj +-218 TJm +(NO) 11.5087 Tj +40 TJm +(T) 4.86967 Tj +-218 TJm +(LIMITED) 32.7567 Tj +-219 TJm +(T) 4.86967 Tj +18 TJm +(O,) 7.74684 Tj +-218 TJm +(PR) 9.74731 Tj +40 TJm +(OCUREMENT) 49.5893 Tj +-218 TJm +(OF) 10.1857 Tj +-218 TJm +(SUBSTITUTE) 47.82 Tj +-218 TJm +(GOODS) 27.4487 Tj +-218 TJm +(OR) 11.0703 Tj +-218 TJm +(SER) 14.617 Tj +80 TJm +(VICES;) 25.241 Tj +-218 TJm +(LOSS) 19.4867 Tj +72 489.878 Td +(OF) 10.1857 Tj +-207 TJm +(USE,) 17.0478 Tj +-207 TJm +(D) 5.75434 Tj +40 TJm +(A) 5.75434 Tj +111 TJm +(T) 4.86967 Tj +93 TJm +(A,) 7.74684 Tj +-208 TJm +(OR) 11.0703 Tj +-207 TJm +(PR) 9.74731 Tj +40 TJm +(OFITS;) 24.3563 Tj +-207 TJm +(OR) 11.0703 Tj +-207 TJm +(B) 5.31599 Tj +10 TJm +(USINESS) 32.3263 Tj +-207 TJm +(INTERR) 28.7797 Tj +40 TJm +(UPTION\)) 31.872 Tj +-208 TJm +(HO) 11.5087 Tj +35 TJm +(WEVER) 28.3333 Tj +-207 TJm +(CA) 11.0703 Tj +55 TJm +(USED) 20.8097 Tj +-207 TJm +(AND) 17.263 Tj +-207 TJm +(ON) 11.5087 Tj +-207 TJm +(ANY) 17.263 Tj +-207 TJm +(THEOR) 26.564 Tj +65 TJm +(Y) 5.75434 Tj +-208 TJm +(OF) 10.1857 Tj +-207 TJm +(LIABILITY) 39.3957 Tj +129 TJm +(,) 1.9925 Tj +-207 TJm +(WHETHER) 38.9574 Tj +72 480.314 Td +(IN) 8.40835 Tj +-205 TJm +(CONTRA) 32.7647 Tj +40 TJm +(CT) 10.1857 Tj +74 TJm +(,) 1.9925 Tj +-205 TJm +(STRICT) 27.4567 Tj +-204 TJm +(LIABILITY) 39.3957 Tj +129 TJm +(,) 1.9925 Tj +-205 TJm +(OR) 11.0703 Tj +-205 TJm +(T) 4.86967 Tj +18 TJm +(OR) 11.0703 Tj +60 TJm +(T) 4.86967 Tj +-205 TJm +(\(INCLUDING) 46.9194 Tj +-204 TJm +(NEGLIGENCE) 50.466 Tj +-205 TJm +(OR) 11.0703 Tj +-205 TJm +(O) 5.75434 Tj +40 TJm +(THER) 20.8097 Tj +55 TJm +(WISE\)) 22.1327 Tj +-205 TJm +(ARISING) 32.3184 Tj +-205 TJm +(IN) 8.40835 Tj +-204 TJm +(ANY) 17.263 Tj +-205 TJm +(W) 7.52368 Tj +120 TJm +(A) 5.75434 Tj +105 TJm +(Y) 5.75434 Tj +-205 TJm +(OUT) 16.3783 Tj +-205 TJm +(OF) 10.1857 Tj +-204 TJm +(THE) 15.4937 Tj +-205 TJm +(USE) 15.0553 Tj +72 470.75 Td +(OF) 10.1857 Tj +-250 TJm +(THIS) 17.7093 Tj +-250 TJm +(SOFTW) 27.0103 Tj +120 TJm +(ARE,) 17.9325 Tj +-250 TJm +(EVEN) 21.248 Tj +-250 TJm +(IF) 7.08533 Tj +-250 TJm +(AD) 11.5087 Tj +40 TJm +(VISED) 23.4637 Tj +-250 TJm +(OF) 10.1857 Tj +-250 TJm +(THE) 15.4937 Tj +-250 TJm +(POSSIBILITY) 47.82 Tj +-250 TJm +(OF) 10.1857 Tj +-250 TJm +(SUCH) 21.256 Tj +-250 TJm +(D) 5.75434 Tj +40 TJm +(AMA) 18.594 Tj +40 TJm +(GE.) 12.6165 Tj +[1 0 0 1 72 469.598] cm +0 g +0 G +[1 0 0 1 0 -7.97] cm +0 g +0 G +[1 0 0 1 -72 -461.628] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 453.216 Td +/F128_0 7.97 Tf +(P) 4.43132 Tj +92 TJm +(A) 5.75434 Tj +111 TJm +(TENTS:) 27.0103 Tj +-296 TJm +(T) 4.86967 Tj +80 TJm +(o) 3.985 Tj +-295 TJm +(the) 9.73934 Tj +-296 TJm +(best) 12.8397 Tj +-295 TJm +(of) 6.63901 Tj +-296 TJm +(my) 10.1857 Tj +-295 TJm +(kno) 11.955 Tj +25 TJm +(wledge,) 25.0099 Tj +[1 0 0 1 208.544 453.216] cm +0 g +0 G +[1 0 0 1 -208.544 -453.216] cm +[1 0 0 1 0 0] Tm +0 0 Td +208.544 453.216 Td +/F130_0 7.97 Tf +(bzip2) 23.91 Tj +[1 0 0 1 232.454 453.216] cm +0 g +0 G +[1 0 0 1 -232.454 -453.216] cm +[1 0 0 1 0 0] Tm +0 0 Td +234.81 453.216 Td +/F128_0 7.97 Tf +(and) 11.5087 Tj +[1 0 0 1 248.674 453.216] cm +0 g +0 G +[1 0 0 1 -248.674 -453.216] cm +[1 0 0 1 0 0] Tm +0 0 Td +248.674 453.216 Td +/F130_0 7.97 Tf +(libbzip2) 38.256 Tj +[1 0 0 1 286.931 453.216] cm +0 g +0 G +[1 0 0 1 -286.931 -453.216] cm +[1 0 0 1 0 0] Tm +0 0 Td +289.286 453.216 Td +/F128_0 7.97 Tf +(do) 7.97 Tj +-296 TJm +(not) 10.1857 Tj +-295 TJm +(use) 10.624 Tj +-296 TJm +(an) 7.52368 Tj +15 TJm +(y) 3.985 Tj +-295 TJm +(patented) 27.0024 Tj +-296 TJm +(algorithms.) 36.0882 Tj +-893 TJm +(Ho) 9.73934 Tj +25 TJm +(we) 9.29302 Tj +25 TJm +(v) 3.985 Tj +15 TJm +(er) 6.19269 Tj +40 TJm +(,) 1.9925 Tj +-307 TJm +(I) 2.65401 Tj +-295 TJm +(do) 7.97 Tj +-296 TJm +(not) 10.1857 Tj +-296 TJm +(ha) 7.52368 Tj +20 TJm +(v) 3.985 Tj +15 TJm +(e) 3.53868 Tj +-295 TJm +(the) 9.73934 Tj +-296 TJm +(resources) 30.0947 Tj +-295 TJm +(to) 6.20066 Tj +72 443.652 Td +(carry) 16.3704 Tj +-250 TJm +(out) 10.1857 Tj +-250 TJm +(a) 3.53868 Tj +-250 TJm +(patent) 19.4787 Tj +-250 TJm +(search.) 22.3479 Tj +-620 TJm +(Therefore) 31.4177 Tj +-250 TJm +(I) 2.65401 Tj +-250 TJm +(cannot) 21.248 Tj +-250 TJm +(gi) 6.20066 Tj +25 TJm +(v) 3.985 Tj +15 TJm +(e) 3.53868 Tj +-250 TJm +(an) 7.52368 Tj +15 TJm +(y) 3.985 Tj +-250 TJm +(guarantee) 30.9794 Tj +-250 TJm +(of) 6.63901 Tj +-250 TJm +(the) 9.73934 Tj +-250 TJm +(abo) 11.5087 Tj +15 TJm +(v) 3.985 Tj +15 TJm +(e) 3.53868 Tj +-250 TJm +(statement.) 32.5415 Tj +[1 0 0 1 72 441.926] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -391.074] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 46.799 0] cm +0 g +0 G +[1 0 0 1 -46.799 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 3 3 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 140.398 0] cm +0 g +0 G +[1 0 0 1 -140.398 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -13.948] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 707.441 Td +/F121_0 17.215 Tf +(T) 10.5184 Tj +80 TJm +(ab) 20.0899 Tj +10 TJm +(le) 14.3573 Tj +-278 TJm +(of) 16.251 Tj +-278 TJm +(Contents) 74.5926 Tj +[1 0 0 1 72 698.619] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.741] cm +0 g +0 G +[1 0 0 1 -72 -686.878] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 686.878 Td +/F128_0 9.963 Tf +(1.) 7.47225 Tj +-310 TJm +(Introduction) 49.2571 Tj +[1 0 0 1 131.815 686.878] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -136.797 -686.878] cm +[1 0 0 1 0 0] Tm +0 0 Td +145.733 686.878 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 686.878] cm +0 g +0 G +[1 0 0 1 -511.108 -686.878] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 686.878 Td +/F128_0 9.963 Tf +(1) 4.9815 Tj +[1 0 0 1 516.09 686.878] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.099] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.856] cm +0 g +0 G +[1 0 0 1 -72 -674.923] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 674.923 Td +/F128_0 9.963 Tf +(2.) 7.47225 Tj +-310 TJm +(Ho) 12.1748 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(bzip2) 22.1378 Tj +[1 0 0 1 152.318 674.923] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -157.3 -674.923] cm +[1 0 0 1 0 0] Tm +0 0 Td +167.054 674.923 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 674.923] cm +0 g +0 G +[1 0 0 1 -511.108 -674.923] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 674.923 Td +/F128_0 9.963 Tf +(2) 4.9815 Tj +[1 0 0 1 516.09 674.923] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.798] cm +0 g +0 G +[1 0 0 1 -95.91 -662.968] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 662.968 Td +/F128_0 9.963 Tf +(2.1.) 14.9445 Tj +-310 TJm +(N) 7.19329 Tj +35 TJm +(AME) 22.1378 Tj +[1 0 0 1 142.924 662.968] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -147.905 -662.968] cm +[1 0 0 1 0 0] Tm +0 0 Td +157.929 662.968 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 662.968] cm +0 g +0 G +[1 0 0 1 -511.108 -662.968] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 662.968 Td +/F128_0 9.963 Tf +(2) 4.9815 Tj +[1 0 0 1 516.09 662.968] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.099] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -11.856] cm +0 g +0 G +[1 0 0 1 -95.91 -651.013] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 651.013 Td +/F128_0 9.963 Tf +(2.2.) 14.9445 Tj +-310 TJm +(SYNOPSIS) 47.0552 Tj +[1 0 0 1 160.996 651.013] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -165.977 -651.013] cm +[1 0 0 1 0 0] Tm +0 0 Td +175.821 651.013 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 651.013] cm +0 g +0 G +[1 0 0 1 -511.108 -651.013] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 651.013 Td +/F128_0 9.963 Tf +(2) 4.9815 Tj +[1 0 0 1 516.09 651.013] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -11.855] cm +0 g +0 G +[1 0 0 1 -95.91 -639.058] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 639.058 Td +/F128_0 9.963 Tf +(2.3.) 14.9445 Tj +-310 TJm +(DESCRIPTION) 64.7595 Tj +[1 0 0 1 178.699 639.058] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -183.681 -639.058] cm +[1 0 0 1 0 0] Tm +0 0 Td +193.528 639.058 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 639.058] cm +0 g +0 G +[1 0 0 1 -511.108 -639.058] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 639.058 Td +/F128_0 9.963 Tf +(3) 4.9815 Tj +[1 0 0 1 516.09 639.058] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -11.855] cm +0 g +0 G +[1 0 0 1 -95.91 -627.103] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 627.103 Td +/F128_0 9.963 Tf +(2.4.) 14.9445 Tj +-310 TJm +(OPTIONS) 42.0638 Tj +[1 0 0 1 156.005 627.103] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -160.986 -627.103] cm +[1 0 0 1 0 0] Tm +0 0 Td +171.111 627.103 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 627.103] cm +0 g +0 G +[1 0 0 1 -511.108 -627.103] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 627.103 Td +/F128_0 9.963 Tf +(4) 4.9815 Tj +[1 0 0 1 516.09 627.103] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -11.856] cm +0 g +0 G +[1 0 0 1 -95.91 -615.147] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 615.147 Td +/F128_0 9.963 Tf +(2.5.) 14.9445 Tj +-310 TJm +(MEMOR) 37.6402 Tj +65 TJm +(Y) 7.19329 Tj +-250 TJm +(MAN) 23.2437 Tj +35 TJm +(A) 7.19329 Tj +40 TJm +(GEMENT) 41.5059 Tj +[1 0 0 1 231.81 615.147] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -236.791 -615.147] cm +[1 0 0 1 0 0] Tm +0 0 Td +246.65 615.147 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 615.147] cm +0 g +0 G +[1 0 0 1 -511.108 -615.147] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 615.147 Td +/F128_0 9.963 Tf +(5) 4.9815 Tj +[1 0 0 1 516.09 615.147] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.099] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -11.856] cm +0 g +0 G +[1 0 0 1 -95.91 -603.192] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 603.192 Td +/F128_0 9.963 Tf +(2.6.) 14.9445 Tj +-310 TJm +(RECO) 26.5713 Tj +50 TJm +(VERING) 37.6303 Tj +-250 TJm +(D) 7.19329 Tj +40 TJm +(A) 7.19329 Tj +111 TJm +(T) 6.08739 Tj +93 TJm +(A) 7.19329 Tj +-250 TJm +(FR) 12.1847 Tj +40 TJm +(OM) 16.0504 Tj +-249 TJm +(D) 7.19329 Tj +40 TJm +(AMA) 23.2437 Tj +40 TJm +(GED) 20.474 Tj +-250 TJm +(FILES) 26.5713 Tj +[1 0 0 1 317.359 603.192] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -322.34 -603.192] cm +[1 0 0 1 0 0] Tm +0 0 Td +331.489 603.192 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 603.192] cm +0 g +0 G +[1 0 0 1 -511.108 -603.192] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 603.192 Td +/F128_0 9.963 Tf +(6) 4.9815 Tj +[1 0 0 1 516.09 603.192] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.099] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -11.856] cm +0 g +0 G +[1 0 0 1 -95.91 -591.237] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 591.237 Td +/F128_0 9.963 Tf +(2.7.) 14.9445 Tj +-310 TJm +(PERFORMANCE) 73.6266 Tj +-250 TJm +(NO) 14.3866 Tj +40 TJm +(TES) 17.7142 Tj +[1 0 0 1 221.758 591.237] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -226.739 -591.237] cm +[1 0 0 1 0 0] Tm +0 0 Td +237.196 591.237 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 591.237] cm +0 g +0 G +[1 0 0 1 -511.108 -591.237] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 591.237 Td +/F128_0 9.963 Tf +(6) 4.9815 Tj +[1 0 0 1 516.09 591.237] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.099] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -11.856] cm +0 g +0 G +[1 0 0 1 -95.91 -579.282] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 579.282 Td +/F128_0 9.963 Tf +(2.8.) 14.9445 Tj +-310 TJm +(CA) 13.8386 Tj +135 TJm +(VEA) 20.474 Tj +111 TJm +(TS) 11.6268 Tj +[1 0 0 1 157.429 579.282] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -162.411 -579.282] cm +[1 0 0 1 0 0] Tm +0 0 Td +171.824 579.282 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 579.282] cm +0 g +0 G +[1 0 0 1 -511.108 -579.282] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 579.282 Td +/F128_0 9.963 Tf +(7) 4.9815 Tj +[1 0 0 1 516.09 579.282] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -11.855] cm +0 g +0 G +[1 0 0 1 -95.91 -567.327] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 567.327 Td +/F128_0 9.963 Tf +(2.9.) 14.9445 Tj +-310 TJm +(A) 7.19329 Tj +55 TJm +(UTHOR) 34.3126 Tj +[1 0 0 1 154.899 567.327] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -159.88 -567.327] cm +[1 0 0 1 0 0] Tm +0 0 Td +168.345 567.327 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 567.327] cm +0 g +0 G +[1 0 0 1 -511.108 -567.327] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 567.327 Td +/F128_0 9.963 Tf +(7) 4.9815 Tj +[1 0 0 1 516.09 567.327] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.219] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.736] cm +0 g +0 G +[1 0 0 1 -72 -555.372] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 555.372 Td +/F128_0 9.963 Tf +(3.) 7.47225 Tj +-310 TJm +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip) 27.6772 Tj +1 TJm +(2) 4.9815 Tj +[1 0 0 1 195.197 555.372] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -200.178 -555.372] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.633 555.372 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 555.372] cm +0 g +0 G +[1 0 0 1 -511.108 -555.372] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 555.372 Td +/F128_0 9.963 Tf +(8) 4.9815 Tj +[1 0 0 1 516.09 555.372] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.799] cm +0 g +0 G +[1 0 0 1 -95.91 -543.416] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 543.416 Td +/F128_0 9.963 Tf +(3.1.) 14.9445 Tj +-310 TJm +(T) 6.08739 Tj +80 TJm +(op-le) 20.474 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(structure) 34.8605 Tj +[1 0 0 1 188.831 543.416] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -193.812 -543.416] cm +[1 0 0 1 0 0] Tm +0 0 Td +203.022 543.416 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 543.416] cm +0 g +0 G +[1 0 0 1 -511.108 -543.416] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 543.416 Td +/F128_0 9.963 Tf +(8) 4.9815 Tj +[1 0 0 1 516.09 543.416] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.156] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -531.461] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 531.461 Td +/F128_0 9.963 Tf +(3.1.1.) 22.4168 Tj +-310 TJm +(Lo) 11.0689 Tj +25 TJm +(w-le) 17.7043 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(summary) 37.0823 Tj +[1 0 0 1 225.195 531.461] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -230.176 -531.461] cm +[1 0 0 1 0 0] Tm +0 0 Td +238.915 531.461 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 531.461] cm +0 g +0 G +[1 0 0 1 -511.108 -531.461] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 531.461 Td +/F128_0 9.963 Tf +(9) 4.9815 Tj +[1 0 0 1 516.09 531.461] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -519.506] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 519.506 Td +/F128_0 9.963 Tf +(3.1.2.) 22.4168 Tj +-310 TJm +(High-le) 30.437 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(summary) 37.0823 Tj +[1 0 0 1 227.107 519.506] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -232.089 -519.506] cm +[1 0 0 1 0 0] Tm +0 0 Td +242.085 519.506 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 519.506] cm +0 g +0 G +[1 0 0 1 -511.108 -519.506] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 519.506 Td +/F128_0 9.963 Tf +(9) 4.9815 Tj +[1 0 0 1 516.09 519.506] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -507.551] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 507.551 Td +/F128_0 9.963 Tf +(3.1.3.) 22.4168 Tj +-310 TJm +(Utility) 26.0234 Tj +-250 TJm +(functions) 37.0823 Tj +-250 TJm +(sum) 16.6083 Tj +1 TJm +(mary) 20.474 Tj +[1 0 0 1 250.489 507.551] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -255.471 -507.551] cm +[1 0 0 1 0 0] Tm +0 0 Td +264.846 507.551 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 507.551] cm +0 g +0 G +[1 0 0 1 -511.108 -507.551] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 507.551 Td +/F128_0 9.963 Tf +(9) 4.9815 Tj +[1 0 0 1 516.09 507.551] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.798] cm +0 g +0 G +[1 0 0 1 -95.91 -495.596] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 495.596 Td +/F128_0 9.963 Tf +(3.2.) 14.9445 Tj +-310 TJm +(Error) 21.0219 Tj +-250 TJm +(handling) 34.8705 Tj +[1 0 0 1 172.323 495.596] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -177.305 -495.596] cm +[1 0 0 1 0 0] Tm +0 0 Td +185.636 495.596 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 495.596] cm +0 g +0 G +[1 0 0 1 -506.127 -495.596] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 495.596 Td +/F128_0 9.963 Tf +(10) 9.963 Tj +[1 0 0 1 516.09 495.596] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.798] cm +0 g +0 G +[1 0 0 1 -95.91 -483.641] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 483.641 Td +/F128_0 9.963 Tf +(3.3.) 14.9445 Tj +-310 TJm +(Lo) 11.0689 Tj +25 TJm +(w-le) 17.7043 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(interf) 21.5799 Tj +10 TJm +(ace) 13.2707 Tj +[1 0 0 1 191.481 483.641] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -196.462 -483.641] cm +[1 0 0 1 0 0] Tm +0 0 Td +206.284 483.641 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 483.641] cm +0 g +0 G +[1 0 0 1 -506.127 -483.641] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 483.641 Td +/F128_0 9.963 Tf +(11) 9.963 Tj +[1 0 0 1 516.09 483.641] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -11.856] cm +0 g +0 G +[1 0 0 1 -119.821 -471.685] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 471.685 Td +/F128_0 9.963 Tf +(3.3.1.) 22.4168 Tj +-310 TJm +(BZ2_bzCompressInit) 85.7914 Tj +[1 0 0 1 231.112 471.685] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -236.094 -471.685] cm +[1 0 0 1 0 0] Tm +0 0 Td +246.025 471.685 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 471.685] cm +0 g +0 G +[1 0 0 1 -506.127 -471.685] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 471.685 Td +/F128_0 9.963 Tf +(11) 9.963 Tj +[1 0 0 1 516.09 471.685] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.156] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -459.73] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 459.73 Td +/F128_0 9.963 Tf +(3.3.2.) 22.4168 Tj +-310 TJm +(BZ2_bzCompress) 71.9528 Tj +[1 0 0 1 217.275 459.73] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -222.256 -459.73] cm +[1 0 0 1 0 0] Tm +0 0 Td +232.464 459.73 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 459.73] cm +0 g +0 G +[1 0 0 1 -506.127 -459.73] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 459.73 Td +/F128_0 9.963 Tf +(13) 9.963 Tj +[1 0 0 1 516.09 459.73] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -447.775] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 447.775 Td +/F128_0 9.963 Tf +(3.3.3.) 22.4168 Tj +-310 TJm +(BZ2_bzCompressEnd) 88.0032 Tj +[1 0 0 1 233.324 447.775] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -238.306 -447.775] cm +[1 0 0 1 0 0] Tm +0 0 Td +247.131 447.775 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 447.775] cm +0 g +0 G +[1 0 0 1 -506.127 -447.775] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 447.775 Td +/F128_0 9.963 Tf +(16) 9.963 Tj +[1 0 0 1 516.09 447.775] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -435.82] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 435.82 Td +/F128_0 9.963 Tf +(3.3.4.) 22.4168 Tj +-310 TJm +(BZ2_bzDecompressIni) 92.4168 Tj +1 TJm +(t) 2.76971 Tj +[1 0 0 1 240.507 435.82] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -245.488 -435.82] cm +[1 0 0 1 0 0] Tm +0 0 Td +255.15 435.82 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 435.82] cm +0 g +0 G +[1 0 0 1 -506.127 -435.82] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 435.82 Td +/F128_0 9.963 Tf +(16) 9.963 Tj +[1 0 0 1 516.09 435.82] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -423.865] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 423.865 Td +/F128_0 9.963 Tf +(3.3.5.) 22.4168 Tj +-310 TJm +(BZ2_bzDecompress) 81.3479 Tj +[1 0 0 1 226.669 423.865] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -231.651 -423.865] cm +[1 0 0 1 0 0] Tm +0 0 Td +241.589 423.865 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 423.865] cm +0 g +0 G +[1 0 0 1 -506.127 -423.865] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 423.865 Td +/F128_0 9.963 Tf +(17) 9.963 Tj +[1 0 0 1 516.09 423.865] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -411.91] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 411.91 Td +/F128_0 9.963 Tf +(3.3.6.) 22.4168 Tj +-310 TJm +(BZ2_bzDecompressEn) 92.4168 Tj +1 TJm +(d) 4.9815 Tj +[1 0 0 1 242.719 411.91] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -247.7 -411.91] cm +[1 0 0 1 0 0] Tm +0 0 Td +256.256 411.91 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 411.91] cm +0 g +0 G +[1 0 0 1 -506.127 -411.91] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 411.91 Td +/F128_0 9.963 Tf +(18) 9.963 Tj +[1 0 0 1 516.09 411.91] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.799] cm +0 g +0 G +[1 0 0 1 -95.91 -399.954] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 399.954 Td +/F128_0 9.963 Tf +(3.4.) 14.9445 Tj +-310 TJm +(High-le) 30.437 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(interf) 21.5799 Tj +10 TJm +(ace) 13.2707 Tj +[1 0 0 1 193.394 399.954] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -198.375 -399.954] cm +[1 0 0 1 0 0] Tm +0 0 Td +207.24 399.954 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 399.954] cm +0 g +0 G +[1 0 0 1 -506.127 -399.954] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 399.954 Td +/F128_0 9.963 Tf +(18) 9.963 Tj +[1 0 0 1 516.09 399.954] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.156] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -387.999] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 387.999 Td +/F128_0 9.963 Tf +(3.4.1.) 22.4168 Tj +-310 TJm +(BZ2_bzReadOpen) 74.1546 Tj +[1 0 0 1 219.477 387.999] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -224.458 -387.999] cm +[1 0 0 1 0 0] Tm +0 0 Td +233.565 387.999 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 387.999] cm +0 g +0 G +[1 0 0 1 -506.127 -387.999] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 387.999 Td +/F128_0 9.963 Tf +(19) 9.963 Tj +[1 0 0 1 516.09 387.999] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -376.044] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 376.044 Td +/F128_0 9.963 Tf +(3.4.2.) 22.4168 Tj +-310 TJm +(BZ2_bzRead) 52.5748 Tj +[1 0 0 1 197.898 376.044] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -202.879 -376.044] cm +[1 0 0 1 0 0] Tm +0 0 Td +211.706 376.044 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 376.044] cm +0 g +0 G +[1 0 0 1 -506.127 -376.044] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 376.044 Td +/F128_0 9.963 Tf +(20) 9.963 Tj +[1 0 0 1 516.09 376.044] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -1.18] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -10.775] cm +0 g +0 G +[1 0 0 1 -119.821 -364.089] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 364.089 Td +/F128_0 9.963 Tf +(3.4.3.) 22.4168 Tj +-310 TJm +(BZ2_bzReadGetUnuse) 92.4168 Tj +1 TJm +(d) 4.9815 Tj +[1 0 0 1 242.719 364.089] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -247.7 -364.089] cm +[1 0 0 1 0 0] Tm +0 0 Td +256.256 364.089 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 364.089] cm +0 g +0 G +[1 0 0 1 -506.127 -364.089] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 364.089 Td +/F128_0 9.963 Tf +(21) 9.963 Tj +[1 0 0 1 516.09 364.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -1.181] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -10.774] cm +0 g +0 G +[1 0 0 1 -119.821 -352.134] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 352.134 Td +/F128_0 9.963 Tf +(3.4.4.) 22.4168 Tj +-310 TJm +(BZ2_bzReadClose) 75.2705 Tj +[1 0 0 1 220.592 352.134] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -225.573 -352.134] cm +[1 0 0 1 0 0] Tm +0 0 Td +234.123 352.134 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 352.134] cm +0 g +0 G +[1 0 0 1 -506.127 -352.134] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 352.134 Td +/F128_0 9.963 Tf +(22) 9.963 Tj +[1 0 0 1 516.09 352.134] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -1.181] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -10.774] cm +0 g +0 G +[1 0 0 1 -119.821 -340.179] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 340.179 Td +/F128_0 9.963 Tf +(3.4.5.) 22.4168 Tj +-310 TJm +(BZ2_bzWriteOpen) 76.3664 Tj +[1 0 0 1 221.688 340.179] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -226.669 -340.179] cm +[1 0 0 1 0 0] Tm +0 0 Td +236.885 340.179 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 340.179] cm +0 g +0 G +[1 0 0 1 -506.127 -340.179] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 340.179 Td +/F128_0 9.963 Tf +(22) 9.963 Tj +[1 0 0 1 516.09 340.179] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -328.223] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 328.223 Td +/F128_0 9.963 Tf +(3.4.6.) 22.4168 Tj +-310 TJm +(BZ2_bzWrite) 54.7865 Tj +[1 0 0 1 200.109 328.223] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -205.09 -328.223] cm +[1 0 0 1 0 0] Tm +0 0 Td +215.026 328.223 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 328.223] cm +0 g +0 G +[1 0 0 1 -506.127 -328.223] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 328.223 Td +/F128_0 9.963 Tf +(23) 9.963 Tj +[1 0 0 1 516.09 328.223] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -1.18] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -10.775] cm +0 g +0 G +[1 0 0 1 -119.821 -316.268] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 316.268 Td +/F128_0 9.963 Tf +(3.4.7.) 22.4168 Tj +-310 TJm +(BZ2_bzWriteClose) 77.4823 Tj +[1 0 0 1 222.804 316.268] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -227.785 -316.268] cm +[1 0 0 1 0 0] Tm +0 0 Td +237.443 316.268 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 316.268] cm +0 g +0 G +[1 0 0 1 -506.127 -316.268] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 316.268 Td +/F128_0 9.963 Tf +(23) 9.963 Tj +[1 0 0 1 516.09 316.268] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -1.18] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -10.775] cm +0 g +0 G +[1 0 0 1 -119.821 -304.313] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 304.313 Td +/F128_0 9.963 Tf +(3.4.8.) 22.4168 Tj +-310 TJm +(Handling) 37.0823 Tj +-250 TJm +(embedded) 40.9479 Tj +-250 TJm +(com) 17.1563 Tj +1 TJm +(pressed) 29.879 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(streams) 30.437 Tj +[1 0 0 1 327.38 304.313] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -332.362 -304.313] cm +[1 0 0 1 0 0] Tm +0 0 Td +342.865 304.313 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 304.313] cm +0 g +0 G +[1 0 0 1 -506.127 -304.313] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 304.313 Td +/F128_0 9.963 Tf +(24) 9.963 Tj +[1 0 0 1 516.09 304.313] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -292.358] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 292.358 Td +/F128_0 9.963 Tf +(3.4.9.) 22.4168 Tj +-310 TJm +(Standard) 35.4185 Tj +-250 TJm +(\002le-reading/) 48.6991 Tj +1 TJm +(writing) 28.7831 Tj +-250 TJm +(code) 18.8101 Tj +[1 0 0 1 282.011 292.358] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -286.992 -292.358] cm +[1 0 0 1 0 0] Tm +0 0 Td +295.827 292.358 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 292.358] cm +0 g +0 G +[1 0 0 1 -506.127 -292.358] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 292.358 Td +/F128_0 9.963 Tf +(25) 9.963 Tj +[1 0 0 1 516.09 292.358] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.798] cm +0 g +0 G +[1 0 0 1 -95.91 -280.403] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 280.403 Td +/F128_0 9.963 Tf +(3.5.) 14.9445 Tj +-310 TJm +(Utility) 26.0234 Tj +-250 TJm +(functions) 37.0823 Tj +[1 0 0 1 179.536 280.403] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -184.517 -280.403] cm +[1 0 0 1 0 0] Tm +0 0 Td +193.67 280.403 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 280.403] cm +0 g +0 G +[1 0 0 1 -506.127 -280.403] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 280.403 Td +/F128_0 9.963 Tf +(26) 9.963 Tj +[1 0 0 1 516.09 280.403] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -268.448] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 268.448 Td +/F128_0 9.963 Tf +(3.5.1.) 22.4168 Tj +-310 TJm +(BZ2_bzBuf) 47.0453 Tj +25 TJm +(fT) 9.40507 Tj +80 TJm +(oBuf) 19.926 Tj +25 TJm +(fCom) 22.6957 Tj +1 TJm +(press) 20.474 Tj +[1 0 0 1 263.571 268.448] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -268.552 -268.448] cm +[1 0 0 1 0 0] Tm +0 0 Td +277.751 268.448 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 268.448] cm +0 g +0 G +[1 0 0 1 -506.127 -268.448] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 268.448 Td +/F128_0 9.963 Tf +(26) 9.963 Tj +[1 0 0 1 516.09 268.448] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -256.492] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 256.492 Td +/F128_0 9.963 Tf +(3.5.2.) 22.4168 Tj +-310 TJm +(BZ2_bzBuf) 47.0453 Tj +25 TJm +(fT) 9.40507 Tj +80 TJm +(oBuf) 19.926 Tj +25 TJm +(fDeco) 24.3396 Tj +1 TJm +(mpress) 28.2252 Tj +[1 0 0 1 272.965 256.492] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -277.947 -256.492] cm +[1 0 0 1 0 0] Tm +0 0 Td +286.876 256.492 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 256.492] cm +0 g +0 G +[1 0 0 1 -506.127 -256.492] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 256.492 Td +/F128_0 9.963 Tf +(27) 9.963 Tj +[1 0 0 1 516.09 256.492] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.156] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.799] cm +0 g +0 G +[1 0 0 1 -95.91 -244.537] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 244.537 Td +/F128_0 9.963 Tf +(3.6.) 14.9445 Tj +-310 TJm +(zlib) 14.9445 Tj +-250 TJm +(compatibility) 53.1426 Tj +-250 TJm +(functio) 28.2252 Tj +1 TJm +(ns) 8.85711 Tj +[1 0 0 1 224.088 244.537] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -229.069 -244.537] cm +[1 0 0 1 0 0] Tm +0 0 Td +238.085 244.537 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 244.537] cm +0 g +0 G +[1 0 0 1 -506.127 -244.537] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 244.537 Td +/F128_0 9.963 Tf +(28) 9.963 Tj +[1 0 0 1 516.09 244.537] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.798] cm +0 g +0 G +[1 0 0 1 -95.91 -232.582] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 232.582 Td +/F128_0 9.963 Tf +(3.7.) 14.9445 Tj +-310 TJm +(Using) 23.8016 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(library) 26.5614 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(stdio) 19.378 Tj +1 TJm +(-free) 18.8002 Tj +-250 TJm +(en) 9.40507 Tj +40 TJm +(vironment) 40.9579 Tj +[1 0 0 1 291.734 232.582] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -296.715 -232.582] cm +[1 0 0 1 0 0] Tm +0 0 Td +305.116 232.582 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 232.582] cm +0 g +0 G +[1 0 0 1 -506.127 -232.582] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 232.582 Td +/F128_0 9.963 Tf +(28) 9.963 Tj +[1 0 0 1 516.09 232.582] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -220.627] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 220.627 Td +/F128_0 9.963 Tf +(3.7.1.) 22.4168 Tj +-310 TJm +(Getting) 29.889 Tj +-250 TJm +(rid) 11.0689 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(stdio) 19.378 Tj +[1 0 0 1 221.429 220.627] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -226.41 -220.627] cm +[1 0 0 1 0 0] Tm +0 0 Td +236.755 220.627 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 220.627] cm +0 g +0 G +[1 0 0 1 -506.127 -220.627] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 220.627 Td +/F128_0 9.963 Tf +(29) 9.963 Tj +[1 0 0 1 516.09 220.627] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -208.672] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 208.672 Td +/F128_0 9.963 Tf +(3.7.2.) 22.4168 Tj +-310 TJm +(Critical) 29.889 Tj +-250 TJm +(error) 19.3581 Tj +-250 TJm +(handlin) 29.889 Tj +1 TJm +(g) 4.9815 Tj +[1 0 0 1 234.42 208.672] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -239.401 -208.672] cm +[1 0 0 1 0 0] Tm +0 0 Td +249.892 208.672 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 208.672] cm +0 g +0 G +[1 0 0 1 -506.127 -208.672] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 208.672 Td +/F128_0 9.963 Tf +(29) 9.963 Tj +[1 0 0 1 516.09 208.672] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.798] cm +0 g +0 G +[1 0 0 1 -95.91 -196.717] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 196.717 Td +/F128_0 9.963 Tf +(3.8.) 14.9445 Tj +-310 TJm +(Making) 30.9949 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(W) 9.40507 Tj +40 TJm +(indo) 17.7142 Tj +25 TJm +(ws) 11.0689 Tj +-250 TJm +(DLL) 19.3681 Tj +[1 0 0 1 213.738 196.717] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -218.719 -196.717] cm +[1 0 0 1 0 0] Tm +0 0 Td +228.482 196.717 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 196.717] cm +0 g +0 G +[1 0 0 1 -506.127 -196.717] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 196.717 Td +/F128_0 9.963 Tf +(29) 9.963 Tj +[1 0 0 1 516.09 196.717] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.799] cm +0 g +0 G +[1 0 0 1 -72 -184.761] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 184.761 Td +/F128_0 9.963 Tf +(4.) 7.47225 Tj +-310 TJm +(Miscellanea) 48.1412 Tj +[1 0 0 1 130.699 184.761] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -135.68 -184.761] cm +[1 0 0 1 0 0] Tm +0 0 Td +144.898 184.761 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 184.761] cm +0 g +0 G +[1 0 0 1 -506.127 -184.761] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 184.761 Td +/F128_0 9.963 Tf +(31) 9.963 Tj +[1 0 0 1 516.09 184.761] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.099] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -11.856] cm +0 g +0 G +[1 0 0 1 -95.91 -172.806] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 172.806 Td +/F128_0 9.963 Tf +(4.1.) 14.9445 Tj +-310 TJm +(Limitations) 45.9494 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(compre) 29.879 Tj +1 TJm +(ssed) 17.1563 Tj +-250 TJm +(\002le) 12.7327 Tj +-250 TJm +(format) 26.5614 Tj +[1 0 0 1 279.141 172.806] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -284.122 -172.806] cm +[1 0 0 1 0 0] Tm +0 0 Td +294.392 172.806 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 172.806] cm +0 g +0 G +[1 0 0 1 -506.127 -172.806] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 172.806 Td +/F128_0 9.963 Tf +(31) 9.963 Tj +[1 0 0 1 516.09 172.806] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.798] cm +0 g +0 G +[1 0 0 1 -95.91 -160.851] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 160.851 Td +/F128_0 9.963 Tf +(4.2.) 14.9445 Tj +-310 TJm +(Portability) 42.0737 Tj +-250 TJm +(issues) 23.8016 Tj +[1 0 0 1 182.305 160.851] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -187.286 -160.851] cm +[1 0 0 1 0 0] Tm +0 0 Td +197.268 160.851 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 160.851] cm +0 g +0 G +[1 0 0 1 -506.127 -160.851] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 160.851 Td +/F128_0 9.963 Tf +(32) 9.963 Tj +[1 0 0 1 516.09 160.851] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.798] cm +0 g +0 G +[1 0 0 1 -95.91 -148.896] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 148.896 Td +/F128_0 9.963 Tf +(4.3.) 14.9445 Tj +-310 TJm +(Reporting) 39.852 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ugs) 13.8386 Tj +[1 0 0 1 174.904 148.896] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -179.885 -148.896] cm +[1 0 0 1 0 0] Tm +0 0 Td +189.14 148.896 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 148.896] cm +0 g +0 G +[1 0 0 1 -506.127 -148.896] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 148.896 Td +/F128_0 9.963 Tf +(32) 9.963 Tj +[1 0 0 1 516.09 148.896] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.798] cm +0 g +0 G +[1 0 0 1 -95.91 -136.941] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 136.941 Td +/F128_0 9.963 Tf +(4.4.) 14.9445 Tj +-310 TJm +(Did) 14.9445 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(get) 12.1748 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(right) 18.8201 Tj +-250 TJm +(packag) 28.2152 Tj +1 TJm +(e?) 8.84714 Tj +[1 0 0 1 236.512 136.941] cm +0 g +0 G +[1 0 0 1 3.088 0] cm +0 g +0 G +[1 0 0 1 3.089 0] cm +0 g +0 G +[1 0 0 1 -242.689 -136.941] cm +[1 0 0 1 0 0] Tm +0 0 Td +254.348 136.941 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 136.941] cm +0 g +0 G +[1 0 0 1 -506.127 -136.941] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 136.941 Td +/F128_0 9.963 Tf +(33) 9.963 Tj +[1 0 0 1 516.09 136.941] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 23.91 -9.798] cm +0 g +0 G +[1 0 0 1 -95.91 -124.986] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.91 124.986 Td +/F128_0 9.963 Tf +(4.5.) 14.9445 Tj +-310 TJm +(Further) 29.3311 Tj +-250 TJm +(Reading) 33.2067 Tj +[1 0 0 1 178.968 124.986] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -183.95 -124.986] cm +[1 0 0 1 0 0] Tm +0 0 Td +193.386 124.986 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 124.986] cm +0 g +0 G +[1 0 0 1 -506.127 -124.986] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 124.986 Td +/F128_0 9.963 Tf +(34) 9.963 Tj +[1 0 0 1 516.09 124.986] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 0 -62.014] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.754] cm +0 g +0 G +0 g +0 G +[1 0 0 1 41.399 -6.754] cm +0 g +0 G +[1 0 0 1 -494.668 -50.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +536.068 50.852 Td +/F128_0 9.963 Tf +(iii) 8.30914 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 4 4 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 140.398 0] cm +0 g +0 G +[1 0 0 1 -140.398 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -13.948] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 701.916 Td +/F121_0 24.79 Tf +(1.) 20.6749 Tj +-278 TJm +(Intr) 39.9367 Tj +20 TJm +(oduction) 104.663 Tj +[1 0 0 1 72 701.606] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -691.643] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 679.998 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 679.998] cm +0 g +0 G +[1 0 0 1 -101.888 -679.998] cm +[1 0 0 1 0 0] Tm +0 0 Td +104.507 679.998 Td +/F128_0 9.963 Tf +(compresses) 45.9294 Tj +-263 TJm +(\002les) 16.6083 Tj +-262 TJm +(using) 21.5898 Tj +-263 TJm +(the) 12.1748 Tj +-263 TJm +(Burro) 23.2437 Tj +25 TJm +(ws-Wheeler) 48.1313 Tj +-263 TJm +(block-sor) 37.6303 Tj +1 TJm +(ting) 15.5024 Tj +-263 TJm +(te) 7.19329 Tj +15 TJm +(xt) 7.75121 Tj +-263 TJm +(compression) 50.363 Tj +-263 TJm +(algorithm,) 41.2369 Tj +-266 TJm +(and) 14.3866 Tj +-263 TJm +(H) 7.19329 Tj +1 TJm +(uf) 8.29918 Tj +25 TJm +(fman) 20.474 Tj +-263 TJm +(coding.) 29.61 Tj +72 668.043 Td +(Compression) 52.5847 Tj +-203 TJm +(is) 6.64532 Tj +-203 TJm +(generally) 37.0723 Tj +-204 TJm +(c) 4.42357 Tj +1 TJm +(onsiderably) 46.4874 Tj +-204 TJm +(better) 22.6858 Tj +-203 TJm +(than) 17.1563 Tj +-203 TJm +(that) 14.9445 Tj +-203 TJm +(achie) 21.0219 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ed) 9.40507 Tj +-203 TJm +(by) 9.963 Tj +-204 TJm +(more) 20.474 Tj +-203 TJm +(con) 14.3866 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(entional) 32.1008 Tj +-203 TJm +(LZ77/LZ78-based) 73.0487 Tj +-203 TJm +(compressors,) 52.2958 Tj +72 656.087 Td +(and) 14.3866 Tj +-250 TJm +(approaches) 44.8136 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(performan) 41.4959 Tj +1 TJm +(ce) 8.84714 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(PPM) 19.936 Tj +-250 TJm +(f) 3.31768 Tj +10 TJm +(amily) 22.6957 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(statistical) 37.6402 Tj +-250 TJm +(compressors.) 52.2958 Tj +[1 0 0 1 72 653.931] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -643.968] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 634.17 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 634.17] cm +0 g +0 G +[1 0 0 1 -101.888 -634.17] cm +[1 0 0 1 0 0] Tm +0 0 Td +105.074 634.17 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-320 TJm +(b) 4.9815 Tj +20 TJm +(uilt) 13.2906 Tj +-319 TJm +(on) 9.963 Tj +-320 TJm +(top) 12.7327 Tj +-320 TJm +(of) 8.29918 Tj +[1 0 0 1 176.712 634.17] cm +0 g +0 G +[1 0 0 1 -176.712 -634.17] cm +[1 0 0 1 0 0] Tm +0 0 Td +176.712 634.17 Td +/F130_0 9.963 Tf +(libbzip2) 47.8224 Tj +[1 0 0 1 224.533 634.17] cm +0 g +0 G +[1 0 0 1 -224.533 -634.17] cm +[1 0 0 1 0 0] Tm +0 0 Td +224.533 634.17 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-337 TJm +(a) 4.42357 Tj +-320 TJm +(\003e) 9.963 Tj +15 TJm +(xible) 19.926 Tj +-319 TJm +(library) 26.5614 Tj +-320 TJm +(for) 11.6169 Tj +-320 TJm +(handling) 34.8705 Tj +-319 TJm +(compressed) 47.0353 Tj +-320 TJm +(data) 16.5984 Tj +-320 TJm +(in) 7.75121 Tj +-319 TJm +(the) 12.1748 Tj +[1 0 0 1 449.816 634.17] cm +0 g +0 G +[1 0 0 1 -449.816 -634.17] cm +[1 0 0 1 0 0] Tm +0 0 Td +449.816 634.17 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 479.704 634.17] cm +0 g +0 G +[1 0 0 1 -479.704 -634.17] cm +[1 0 0 1 0 0] Tm +0 0 Td +482.889 634.17 Td +/F128_0 9.963 Tf +(format.) 29.0521 Tj +-1038 TJm +(This) 17.7142 Tj +72 622.214 Td +(manual) 29.3311 Tj +-316 TJm +(describes) 37.0723 Tj +-316 TJm +(both) 17.7142 Tj +-316 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-316 TJm +(to) 7.75121 Tj +-316 TJm +(use) 13.2807 Tj +-317 TJm +(the) 12.1748 Tj +-316 TJm +(program) 33.7546 Tj +-316 TJm +(and) 14.3866 Tj +-316 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-316 TJm +(to) 7.75121 Tj +-316 TJm +(w) 7.19329 Tj +10 TJm +(ork) 13.2807 Tj +-316 TJm +(with) 17.7142 Tj +-316 TJm +(the) 12.1748 Tj +-316 TJm +(library) 26.5614 Tj +-317 TJm +(int) 10.5209 Tj +1 TJm +(erf) 11.0589 Tj +10 TJm +(ace.) 15.7615 Tj +-1018 TJm +(M) 8.85711 Tj +1 TJm +(ost) 11.6268 Tj +-317 TJm +(of) 8.29918 Tj +-316 TJm +(the) 12.1748 Tj +-316 TJm +(manual) 29.3311 Tj +-316 TJm +(is) 6.64532 Tj +72 610.259 Td +(de) 9.40507 Tj +25 TJm +(v) 4.9815 Tj +20 TJm +(oted) 17.1563 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(this) 14.3965 Tj +-250 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +-250 TJm +(not) 12.7327 Tj +-250 TJm +(the) 12.1748 Tj +-249 TJm +(program,) 36.2454 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(good) 19.926 Tj +-250 TJm +(ne) 9.40507 Tj +25 TJm +(ws) 11.0689 Tj +-250 TJm +(if) 6.08739 Tj +-250 TJm +(your) 18.2622 Tj +-250 TJm +(interest) 29.3311 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(only) 17.7142 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(th) 7.75121 Tj +1 TJm +(e) 4.42357 Tj +-250 TJm +(program.) 36.2454 Tj +[1 0 0 1 72 608.102] cm +0 g +0 G +[1 0 0 1 0 -29.723] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -578.379] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 578.379 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 578.379] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 0 1 rg +0 0 1 RG +[1 0 0 1 -86.944 -578.379] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 578.379 Td +/F128_0 9.963 Tf +(Ho) 12.1748 Tj +25 TJm +(w) 7.19329 Tj +-259 TJm +(to) 7.75121 Tj +-260 TJm +(use) 13.2807 Tj +-259 TJm +(bzip2) 22.1378 Tj +[1 0 0 1 156.985 578.379] cm +0 g +0 G +0 0 1 rg +0 0 1 RG +0 0 1 rg +0 0 1 RG +[1 0 0 1 -156.985 -578.379] cm +[1 0 0 1 0 0] Tm +0 0 Td +159.57 578.379 Td +/F128_0 9.963 Tf +([2]) 11.6169 Tj +[1 0 0 1 171.186 578.379] cm +0 0 1 rg +0 0 1 RG +0 g +0 G +[1 0 0 1 -171.186 -578.379] cm +[1 0 0 1 0 0] Tm +0 0 Td +173.771 578.379 Td +/F128_0 9.963 Tf +(describes) 37.0723 Tj +-259 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-260 TJm +(to) 7.75121 Tj +-259 TJm +(use) 13.2807 Tj +[1 0 0 1 259.119 578.379] cm +0 g +0 G +[1 0 0 1 -259.119 -578.379] cm +[1 0 0 1 0 0] Tm +0 0 Td +259.119 578.379 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 289.007 578.379] cm +0 g +0 G +[1 0 0 1 -289.007 -578.379] cm +[1 0 0 1 0 0] Tm +0 0 Td +289.007 578.379 Td +/F128_0 9.963 Tf +(;) 2.76971 Tj +-264 TJm +(this) 14.3965 Tj +-260 TJm +(i) 2.76971 Tj +1 TJm +(s) 3.87561 Tj +-260 TJm +(the) 12.1748 Tj +-259 TJm +(only) 17.7142 Tj +-260 TJm +(part) 15.4925 Tj +-259 TJm +(you) 14.9445 Tj +-259 TJm +(need) 18.8101 Tj +-260 TJm +(to) 7.75121 Tj +-259 TJm +(read) 17.1463 Tj +-260 TJm +(if) 6.08739 Tj +-259 TJm +(you) 14.9445 Tj +-259 TJm +(just) 14.3965 Tj +-260 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-259 TJm +(to) 7.75121 Tj +-260 TJm +(kno) 14.9445 Tj +25 TJm +(w) 7.19329 Tj +86.944 566.424 Td +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(operate) 29.3211 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(program.) 36.2454 Tj +[1 0 0 1 199.302 566.424] cm +0 g +0 G +[1 0 0 1 -127.302 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -544.506] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 544.506 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 544.506] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 0 1 rg +0 0 1 RG +[1 0 0 1 -86.944 -544.506] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 544.506 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 197.09 544.506] cm +0 g +0 G +0 0 1 rg +0 0 1 RG +0 0 1 rg +0 0 1 RG +[1 0 0 1 -197.09 -544.506] cm +[1 0 0 1 0 0] Tm +0 0 Td +199.58 544.506 Td +/F128_0 9.963 Tf +([8]) 11.6169 Tj +[1 0 0 1 211.197 544.506] cm +0 0 1 rg +0 0 1 RG +0 g +0 G +[1 0 0 1 -211.197 -544.506] cm +[1 0 0 1 0 0] Tm +0 0 Td +213.687 544.506 Td +/F128_0 9.963 Tf +(describes) 37.0723 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(programming) 54.2386 Tj +-250 TJm +(int) 10.5209 Tj +1 TJm +(erf) 11.0589 Tj +10 TJm +(aces) 17.1463 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(detail,) 24.6285 Tj +-250 TJm +(and) 14.3866 Tj +[1 0 0 1 417.501 544.506] cm +0 g +0 G +[1 0 0 1 -345.501 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -522.588] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 522.588 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 522.588] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 0 1 rg +0 0 1 RG +[1 0 0 1 -86.944 -522.588] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 522.588 Td +/F128_0 9.963 Tf +(Miscellanea) 48.1412 Tj +[1 0 0 1 135.083 522.588] cm +0 g +0 G +0 0 1 rg +0 0 1 RG +0 0 1 rg +0 0 1 RG +[1 0 0 1 -135.083 -522.588] cm +[1 0 0 1 0 0] Tm +0 0 Td +137.573 522.588 Td +/F128_0 9.963 Tf +([31]) 16.5984 Tj +[1 0 0 1 154.171 522.588] cm +0 0 1 rg +0 0 1 RG +0 g +0 G +[1 0 0 1 -154.171 -522.588] cm +[1 0 0 1 0 0] Tm +0 0 Td +156.662 522.588 Td +/F128_0 9.963 Tf +(records) 29.3211 Tj +-250 TJm +(some) 21.0319 Tj +-250 TJm +(miscellane) 42.6118 Tj +1 TJm +(ous) 13.8386 Tj +-250 TJm +(notes) 21.0319 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(I) 3.31768 Tj +-250 TJm +(thought) 30.4469 Tj +-250 TJm +(ought) 22.6957 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(recorded) 34.8506 Tj +-250 TJm +(some) 21.0319 Tj +25 TJm +(where.) 26.8304 Tj +[1 0 0 1 492.31 522.588] cm +0 g +0 G +[1 0 0 1 -420.31 -471.736] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.754] cm +0 g +0 G +0 g +0 G +[1 0 0 1 43.063 -6.754] cm +0 g +0 G +[1 0 0 1 -496.332 -50.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +539.395 50.852 Td +/F128_0 9.963 Tf +(1) 4.9815 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 5 5 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 140.398 0] cm +0 g +0 G +[1 0 0 1 -140.398 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -13.948] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 701.916 Td +/F121_0 24.79 Tf +(2.) 20.6749 Tj +-278 TJm +(Ho) 33.0451 Tj +15 TJm +(w) 19.2866 Tj +-278 TJm +(to) 23.4018 Tj +-278 TJm +(use) 42.7132 Tj +-278 TJm +(bzip2) 63.3632 Tj +[1 0 0 1 72 696.784] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -14.944] cm +0 g +0 G +[1 0 0 1 -72 -671.877] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 656.35 Td +/F121_0 17.215 Tf +(T) 10.5184 Tj +80 TJm +(ab) 20.0899 Tj +10 TJm +(le) 14.3573 Tj +-278 TJm +(of) 16.251 Tj +-278 TJm +(Contents) 74.5926 Tj +[1 0 0 1 72 647.528] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.74] cm +0 g +0 G +[1 0 0 1 -72 -635.788] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 635.788 Td +/F128_0 9.963 Tf +(2.1.) 14.9445 Tj +-310 TJm +(N) 7.19329 Tj +35 TJm +(AME) 22.1378 Tj +[1 0 0 1 119.013 635.788] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -123.995 -635.788] cm +[1 0 0 1 0 0] Tm +0 0 Td +132.691 635.788 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 635.788] cm +0 g +0 G +[1 0 0 1 -511.108 -635.788] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 635.788 Td +/F128_0 9.963 Tf +(2) 4.9815 Tj +[1 0 0 1 516.09 635.788] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.856] cm +0 g +0 G +[1 0 0 1 -72 -623.832] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 623.832 Td +/F128_0 9.963 Tf +(2.2.) 14.9445 Tj +-310 TJm +(SYNOPSIS) 47.0552 Tj +[1 0 0 1 137.086 623.832] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -142.067 -623.832] cm +[1 0 0 1 0 0] Tm +0 0 Td +150.582 623.832 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 623.832] cm +0 g +0 G +[1 0 0 1 -511.108 -623.832] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 623.832 Td +/F128_0 9.963 Tf +(2) 4.9815 Tj +[1 0 0 1 516.09 623.832] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.099] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.856] cm +0 g +0 G +[1 0 0 1 -72 -611.877] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 611.877 Td +/F128_0 9.963 Tf +(2.3.) 14.9445 Tj +-310 TJm +(DESCRIPTION) 64.7595 Tj +[1 0 0 1 154.789 611.877] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -159.77 -611.877] cm +[1 0 0 1 0 0] Tm +0 0 Td +168.29 611.877 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 611.877] cm +0 g +0 G +[1 0 0 1 -511.108 -611.877] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 611.877 Td +/F128_0 9.963 Tf +(3) 4.9815 Tj +[1 0 0 1 516.09 611.877] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.099] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.856] cm +0 g +0 G +[1 0 0 1 -72 -599.922] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 599.922 Td +/F128_0 9.963 Tf +(2.4.) 14.9445 Tj +-310 TJm +(OPTIONS) 42.0638 Tj +[1 0 0 1 132.094 599.922] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -137.076 -599.922] cm +[1 0 0 1 0 0] Tm +0 0 Td +145.873 599.922 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 599.922] cm +0 g +0 G +[1 0 0 1 -511.108 -599.922] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 599.922 Td +/F128_0 9.963 Tf +(4) 4.9815 Tj +[1 0 0 1 516.09 599.922] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.855] cm +0 g +0 G +[1 0 0 1 -72 -587.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 587.967 Td +/F128_0 9.963 Tf +(2.5.) 14.9445 Tj +-310 TJm +(MEMOR) 37.6402 Tj +65 TJm +(Y) 7.19329 Tj +-250 TJm +(MAN) 23.2437 Tj +35 TJm +(A) 7.19329 Tj +40 TJm +(GEMENT) 41.5059 Tj +[1 0 0 1 207.9 587.967] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -212.881 -587.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +221.412 587.967 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 587.967] cm +0 g +0 G +[1 0 0 1 -511.108 -587.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 587.967 Td +/F128_0 9.963 Tf +(5) 4.9815 Tj +[1 0 0 1 516.09 587.967] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.855] cm +0 g +0 G +[1 0 0 1 -72 -576.012] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 576.012 Td +/F128_0 9.963 Tf +(2.6.) 14.9445 Tj +-310 TJm +(RECO) 26.5713 Tj +50 TJm +(VERING) 37.6303 Tj +-250 TJm +(D) 7.19329 Tj +40 TJm +(A) 7.19329 Tj +111 TJm +(T) 6.08739 Tj +93 TJm +(A) 7.19329 Tj +-250 TJm +(FR) 12.1847 Tj +40 TJm +(OM) 16.0504 Tj +-249 TJm +(D) 7.19329 Tj +40 TJm +(AMA) 23.2437 Tj +40 TJm +(GED) 20.474 Tj +-250 TJm +(FILES) 26.5713 Tj +[1 0 0 1 293.449 576.012] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -298.43 -576.012] cm +[1 0 0 1 0 0] Tm +0 0 Td +308.464 576.012 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 576.012] cm +0 g +0 G +[1 0 0 1 -511.108 -576.012] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 576.012 Td +/F128_0 9.963 Tf +(6) 4.9815 Tj +[1 0 0 1 516.09 576.012] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.855] cm +0 g +0 G +[1 0 0 1 -72 -564.057] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 564.057 Td +/F128_0 9.963 Tf +(2.7.) 14.9445 Tj +-310 TJm +(PERFORMANCE) 73.6266 Tj +-250 TJm +(NO) 14.3866 Tj +40 TJm +(TES) 17.7142 Tj +[1 0 0 1 197.847 564.057] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -202.829 -564.057] cm +[1 0 0 1 0 0] Tm +0 0 Td +211.958 564.057 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 564.057] cm +0 g +0 G +[1 0 0 1 -511.108 -564.057] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 564.057 Td +/F128_0 9.963 Tf +(6) 4.9815 Tj +[1 0 0 1 516.09 564.057] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.856] cm +0 g +0 G +[1 0 0 1 -72 -552.101] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 552.101 Td +/F128_0 9.963 Tf +(2.8.) 14.9445 Tj +-310 TJm +(CA) 13.8386 Tj +135 TJm +(VEA) 20.474 Tj +111 TJm +(TS) 11.6268 Tj +[1 0 0 1 133.519 552.101] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -138.5 -552.101] cm +[1 0 0 1 0 0] Tm +0 0 Td +148.799 552.101 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 552.101] cm +0 g +0 G +[1 0 0 1 -511.108 -552.101] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 552.101 Td +/F128_0 9.963 Tf +(7) 4.9815 Tj +[1 0 0 1 516.09 552.101] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.099] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.856] cm +0 g +0 G +[1 0 0 1 -72 -540.146] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 540.146 Td +/F128_0 9.963 Tf +(2.9.) 14.9445 Tj +-310 TJm +(A) 7.19329 Tj +55 TJm +(UTHOR) 34.3126 Tj +[1 0 0 1 130.989 540.146] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -135.97 -540.146] cm +[1 0 0 1 0 0] Tm +0 0 Td +145.32 540.146 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 540.146] cm +0 g +0 G +[1 0 0 1 -511.108 -540.146] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 540.146 Td +/F128_0 9.963 Tf +(7) 4.9815 Tj +[1 0 0 1 516.09 540.146] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.219] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -520.002] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 508.266 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-250 TJm +(chapter) 29.3211 Tj +-250 TJm +(contains) 33.2067 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(cop) 14.3866 Tj +10 TJm +(y) 4.9815 Tj +-249 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +[1 0 0 1 213.837 508.266] cm +0 g +0 G +[1 0 0 1 -213.837 -508.266] cm +[1 0 0 1 0 0] Tm +0 0 Td +213.837 508.266 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 243.725 508.266] cm +0 g +0 G +[1 0 0 1 -243.725 -508.266] cm +[1 0 0 1 0 0] Tm +0 0 Td +246.215 508.266 Td +/F128_0 9.963 Tf +(man) 17.1563 Tj +-250 TJm +(page,) 21.3009 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(nothing) 30.4469 Tj +-250 TJm +(else.) 17.9832 Tj +[1 0 0 1 72 506.109] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -496.146] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 473.513 Td +/F121_0 20.659 Tf +(2.1.) 34.4592 Tj +-278 TJm +(NAME) 60.8201 Tj +[1 0 0 1 72 473.513] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -31.881] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -441.632] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 441.632 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 441.632] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -441.632] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 441.632 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 116.832 441.632] cm +0 g +0 G +[1 0 0 1 -116.832 -441.632] cm +[1 0 0 1 0 0] Tm +0 0 Td +116.832 441.632 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 121.813 441.632] cm +0 g +0 G +[1 0 0 1 -121.813 -441.632] cm +[1 0 0 1 0 0] Tm +0 0 Td +121.813 441.632 Td +/F130_0 9.963 Tf +(bunzip2) 41.8446 Tj +[1 0 0 1 163.656 441.632] cm +0 g +0 G +[1 0 0 1 -163.656 -441.632] cm +[1 0 0 1 0 0] Tm +0 0 Td +166.147 441.632 Td +/F128_0 9.963 Tf +(-) 3.31768 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(block-sorting) 53.1327 Tj +-250 TJm +(\002le) 12.7327 Tj +-250 TJm +(compre) 29.879 Tj +1 TJm +(ssor) 16.0504 Tj +40 TJm +(,) 2.49075 Tj +-250 TJm +(v1.0.3) 24.9075 Tj +[1 0 0 1 325.129 441.632] cm +0 g +0 G +[1 0 0 1 -253.129 -21.917] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -419.715] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 419.715 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 419.715] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -419.715] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 419.715 Td +/F130_0 9.963 Tf +(bzcat) 29.889 Tj +[1 0 0 1 116.832 419.715] cm +0 g +0 G +[1 0 0 1 -116.832 -419.715] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.323 419.715 Td +/F128_0 9.963 Tf +(-) 3.31768 Tj +-250 TJm +(decompresses) 55.3345 Tj +-250 TJm +(\002les) 16.6083 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(st) 6.64532 Tj +1 TJm +(dout) 17.7142 Tj +[1 0 0 1 236.651 419.715] cm +0 g +0 G +[1 0 0 1 -164.651 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -397.797] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 397.797 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 397.797] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -397.797] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 397.797 Td +/F130_0 9.963 Tf +(bzip2recover) 71.7336 Tj +[1 0 0 1 158.675 397.797] cm +0 g +0 G +[1 0 0 1 -158.675 -397.797] cm +[1 0 0 1 0 0] Tm +0 0 Td +161.166 397.797 Td +/F128_0 9.963 Tf +(-) 3.31768 Tj +-250 TJm +(reco) 17.1463 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(ers) 11.6169 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(from) 19.3681 Tj +-250 TJm +(damage) 30.9849 Tj +1 TJm +(d) 4.9815 Tj +-250 TJm +(bzip2) 22.1378 Tj +-250 TJm +(\002les) 16.6083 Tj +[1 0 0 1 323.545 397.797] cm +0 g +0 G +[1 0 0 1 -251.545 -12.12] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -375.715] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 353.081 Td +/F121_0 20.659 Tf +(2.2.) 34.4592 Tj +-278 TJm +(SYNOPSIS) 105.629 Tj +[1 0 0 1 72 352.823] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -31.622] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -321.201] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 321.201 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 321.201] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -321.201] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 321.201 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 116.832 321.201] cm +0 g +0 G +[1 0 0 1 -116.832 -321.201] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.323 321.201 Td +/F128_0 9.963 Tf +([) 3.31768 Tj +-250 TJm +(-cdfkqstvzVL123456789) 100.168 Tj +-250 TJm +(]) 3.31768 Tj +-250 TJm +([) 3.31768 Tj +-249 TJm +(\002lenames) 38.1882 Tj +-250 TJm +(...) 7.47225 Tj +-620 TJm +(]) 3.31768 Tj +[1 0 0 1 297.045 321.201] cm +0 g +0 G +[1 0 0 1 -225.045 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -299.283] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 299.283 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 299.283] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -299.283] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 299.283 Td +/F130_0 9.963 Tf +(bunzip2) 41.8446 Tj +[1 0 0 1 128.787 299.283] cm +0 g +0 G +[1 0 0 1 -128.787 -299.283] cm +[1 0 0 1 0 0] Tm +0 0 Td +131.278 299.283 Td +/F128_0 9.963 Tf +([) 3.31768 Tj +-250 TJm +(-fkvsVL) 33.7546 Tj +-250 TJm +(]) 3.31768 Tj +-250 TJm +([) 3.31768 Tj +-250 TJm +(\002lenames) 38.1882 Tj +-250 TJm +(...) 7.47225 Tj +-620 TJm +(]) 3.31768 Tj +[1 0 0 1 242.589 299.283] cm +0 g +0 G +[1 0 0 1 -170.589 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -277.365] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 277.365 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 277.365] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -277.365] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 277.365 Td +/F130_0 9.963 Tf +(bzcat) 29.889 Tj +[1 0 0 1 116.832 277.365] cm +0 g +0 G +[1 0 0 1 -116.832 -277.365] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.323 277.365 Td +/F128_0 9.963 Tf +([) 3.31768 Tj +-250 TJm +(-s) 7.19329 Tj +-250 TJm +(]) 3.31768 Tj +-250 TJm +([) 3.31768 Tj +-250 TJm +(\002lenames) 38.1882 Tj +-250 TJm +(...) 7.47225 Tj +-620 TJm +(]) 3.31768 Tj +[1 0 0 1 204.074 277.365] cm +0 g +0 G +[1 0 0 1 -132.074 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -255.447] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 255.447 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 255.447] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -255.447] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 255.447 Td +/F130_0 9.963 Tf +(bzip2recover) 71.7336 Tj +[1 0 0 1 158.675 255.447] cm +0 g +0 G +[1 0 0 1 -158.675 -255.447] cm +[1 0 0 1 0 0] Tm +0 0 Td +161.166 255.447 Td +/F128_0 9.963 Tf +(\002lename) 34.3126 Tj +[1 0 0 1 195.477 255.447] cm +0 g +0 G +[1 0 0 1 -123.477 -204.595] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.754] cm +0 g +0 G +0 g +0 G +[1 0 0 1 43.063 -6.754] cm +0 g +0 G +[1 0 0 1 -496.332 -50.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +539.395 50.852 Td +/F128_0 9.963 Tf +(2) 4.9815 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 6 6 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 105.519 -6.755] cm +0 g +0 G +[1 0 0 1 -371.59 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +477.109 749.245 Td +/F128_0 9.963 Tf +(Ho) 12.1748 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(bzip2) 22.1378 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 704.93 Td +/F121_0 20.659 Tf +(2.3.) 34.4592 Tj +-278 TJm +(DESCRIPTION) 141.184 Tj +[1 0 0 1 72 704.672] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -694.709] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 683.012 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 683.012] cm +0 g +0 G +[1 0 0 1 -101.888 -683.012] cm +[1 0 0 1 0 0] Tm +0 0 Td +104.56 683.012 Td +/F128_0 9.963 Tf +(compresses) 45.9294 Tj +-268 TJm +(\002les) 16.6083 Tj +-268 TJm +(using) 21.5898 Tj +-268 TJm +(the) 12.1748 Tj +-268 TJm +(Burro) 23.2437 Tj +25 TJm +(ws-Wheeler) 48.1313 Tj +-268 TJm +(block) 22.1378 Tj +-268 TJm +(sorting) 27.6772 Tj +-268 TJm +(te) 7.19329 Tj +15 TJm +(xt) 7.75121 Tj +-268 TJm +(compression) 50.363 Tj +-268 TJm +(algorithm,) 41.2369 Tj +-273 TJm +(and) 14.3866 Tj +-268 TJm +(Huf) 15.4925 Tj +25 TJm +(fman) 20.474 Tj +-268 TJm +(coding.) 29.61 Tj +72 671.057 Td +(Compression) 52.5847 Tj +-203 TJm +(is) 6.64532 Tj +-203 TJm +(generally) 37.0723 Tj +-204 TJm +(c) 4.42357 Tj +1 TJm +(onsiderably) 46.4874 Tj +-204 TJm +(better) 22.6858 Tj +-203 TJm +(than) 17.1563 Tj +-203 TJm +(that) 14.9445 Tj +-203 TJm +(achie) 21.0219 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ed) 9.40507 Tj +-203 TJm +(by) 9.963 Tj +-204 TJm +(more) 20.474 Tj +-203 TJm +(con) 14.3866 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(entional) 32.1008 Tj +-203 TJm +(LZ77/LZ78-based) 73.0487 Tj +-203 TJm +(compressors,) 52.2958 Tj +72 659.101 Td +(and) 14.3866 Tj +-250 TJm +(approaches) 44.8136 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(performan) 41.4959 Tj +1 TJm +(ce) 8.84714 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(PPM) 19.936 Tj +-250 TJm +(f) 3.31768 Tj +10 TJm +(amily) 22.6957 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(statistical) 37.6402 Tj +-250 TJm +(compressors.) 52.2958 Tj +[1 0 0 1 72 656.945] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -646.982] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 637.184 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-250 TJm +(command-line) 57.5563 Tj +-250 TJm +(options) 29.341 Tj +-250 TJm +(ar) 7.74125 Tj +1 TJm +(e) 4.42357 Tj +-250 TJm +(deliberately) 47.0353 Tj +-250 TJm +(v) 4.9815 Tj +15 TJm +(ery) 12.7228 Tj +-250 TJm +(similar) 27.6772 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(those) 21.0319 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(GNU) 21.5799 Tj +[1 0 0 1 364.869 637.184] cm +0 g +0 G +[1 0 0 1 -364.869 -637.184] cm +[1 0 0 1 0 0] Tm +0 0 Td +364.869 637.184 Td +/F130_0 9.963 Tf +(gzip) 23.9112 Tj +[1 0 0 1 388.779 637.184] cm +0 g +0 G +[1 0 0 1 -388.779 -637.184] cm +[1 0 0 1 0 0] Tm +0 0 Td +388.779 637.184 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-250 TJm +(are) 12.1648 Tj +-250 TJm +(not) 12.7327 Tj +-250 TJm +(identical.) 36.8033 Tj +[1 0 0 1 72 635.027] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -625.064] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 615.266 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 615.266] cm +0 g +0 G +[1 0 0 1 -101.888 -615.266] cm +[1 0 0 1 0 0] Tm +0 0 Td +105.175 615.266 Td +/F128_0 9.963 Tf +(e) 4.42357 Tj +15 TJm +(xpects) 25.4555 Tj +-330 TJm +(a) 4.42357 Tj +-330 TJm +(list) 12.1847 Tj +-329 TJm +(of) 8.29918 Tj +-330 TJm +(\002le) 12.7327 Tj +-330 TJm +(names) 25.4555 Tj +-330 TJm +(to) 7.75121 Tj +-330 TJm +(accompan) 40.39 Tj +15 TJm +(y) 4.9815 Tj +-329 TJm +(the) 12.1748 Tj +-330 TJm +(command-line) 57.5563 Tj +-330 TJm +(\003ags.) 21.3109 Tj +-1099 TJm +(Each) 19.916 Tj +-330 TJm +(\002le) 12.7327 Tj +-330 TJm +(is) 6.64532 Tj +-330 TJm +(replaced) 33.7447 Tj +-330 TJm +(by) 9.963 Tj +-329 TJm +(a) 4.42357 Tj +-330 TJm +(compressed) 47.0353 Tj +72 603.311 Td +(v) 4.9815 Tj +15 TJm +(ersion) 24.3496 Tj +-348 TJm +(of) 8.29918 Tj +-349 TJm +(itself,) 22.4168 Tj +-373 TJm +(with) 17.7142 Tj +-349 TJm +(the) 12.1748 Tj +-348 TJm +(name) 21.5799 Tj +[1 0 0 1 204.444 603.311] cm +0 g +0 G +[1 0 0 1 -204.444 -603.311] cm +[1 0 0 1 0 0] Tm +0 0 Td +204.444 603.311 Td +/F130_0 9.963 Tf +(original_name.bz2) 101.623 Tj +[1 0 0 1 306.063 603.311] cm +0 g +0 G +[1 0 0 1 -306.063 -603.311] cm +[1 0 0 1 0 0] Tm +0 0 Td +306.063 603.311 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1211 TJm +(Each) 19.916 Tj +-349 TJm +(compressed) 47.0353 Tj +-348 TJm +(\002le) 12.7327 Tj +-349 TJm +(has) 13.2807 Tj +-348 TJm +(the) 12.1748 Tj +-349 TJm +(same) 20.474 Tj +-348 TJm +(modi\002cation) 50.3729 Tj +-349 TJm +(date,) 19.0891 Tj +72 591.356 Td +(permissions,) 50.094 Tj +-344 TJm +(and,) 16.8773 Tj +-344 TJm +(when) 21.5799 Tj +-325 TJm +(possible,) 35.1495 Tj +-344 TJm +(o) 4.9815 Tj +25 TJm +(w) 7.19329 Tj +1 TJm +(nership) 29.3311 Tj +-326 TJm +(as) 8.29918 Tj +-325 TJm +(the) 12.1748 Tj +-325 TJm +(corresponding) 56.9983 Tj +-325 TJm +(original,) 33.4856 Tj +-344 TJm +(so) 8.85711 Tj +-325 TJm +(that) 14.9445 Tj +-325 TJm +(these) 20.474 Tj +-325 TJm +(properties) 39.842 Tj +-325 TJm +(can) 13.8286 Tj +-325 TJm +(be) 9.40507 Tj +-325 TJm +(correctly) 35.4085 Tj +72 579.4 Td +(restored) 32.0908 Tj +-308 TJm +(at) 7.19329 Tj +-307 TJm +(decompression) 59.768 Tj +-308 TJm +(time.) 20.205 Tj +-483 TJm +(File) 15.5024 Tj +-308 TJm +(name) 21.5799 Tj +-308 TJm +(handling) 34.8705 Tj +-308 TJm +(is) 6.64532 Tj +-307 TJm +(nai) 12.1748 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-308 TJm +(in) 7.75121 Tj +-308 TJm +(the) 12.1748 Tj +-308 TJm +(sense) 21.5799 Tj +-308 TJm +(that) 14.9445 Tj +-307 TJm +(there) 19.916 Tj +-308 TJm +(is) 6.64532 Tj +-308 TJm +(no) 9.963 Tj +-308 TJm +(mechanism) 45.3815 Tj +-307 TJm +(for) 11.6169 Tj +-308 TJm +(preserving) 42.0538 Tj +72 567.445 Td +(original) 30.9949 Tj +-334 TJm +(\002le) 12.7327 Tj +-333 TJm +(names,) 27.9462 Tj +-355 TJm +(permissi) 33.7646 Tj +1 TJm +(ons,) 16.3294 Tj +-355 TJm +(o) 4.9815 Tj +25 TJm +(wnerships) 40.4 Tj +-334 TJm +(or) 8.29918 Tj +-333 TJm +(dates) 20.474 Tj +-334 TJm +(in) 7.75121 Tj +-333 TJm +(\002lesystems) 44.2855 Tj +-334 TJm +(which) 24.3496 Tj +-333 TJm +(lack) 16.5984 Tj +-334 TJm +(these) 20.474 Tj +-334 TJm +(concepts,) 37.3513 Tj +-354 TJm +(or) 8.29918 Tj +-334 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-333 TJm +(serious) 28.2252 Tj +-334 TJm +(\002le) 12.7327 Tj +72 555.49 Td +(name) 21.5799 Tj +-250 TJm +(length) 24.9075 Tj +-250 TJm +(restrictions,) 46.7663 Tj +-250 TJm +(su) 8.85711 Tj +1 TJm +(ch) 9.40507 Tj +-250 TJm +(as) 8.29918 Tj +-250 TJm +(MS-DOS.) 40.131 Tj +[1 0 0 1 72 553.333] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -543.371] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 533.572 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 533.572] cm +0 g +0 G +[1 0 0 1 -101.888 -533.572] cm +[1 0 0 1 0 0] Tm +0 0 Td +104.379 533.572 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 121.255 533.572] cm +0 g +0 G +[1 0 0 1 -121.255 -533.572] cm +[1 0 0 1 0 0] Tm +0 0 Td +121.255 533.572 Td +/F130_0 9.963 Tf +(bunzip2) 41.8446 Tj +[1 0 0 1 163.098 533.572] cm +0 g +0 G +[1 0 0 1 -163.098 -533.572] cm +[1 0 0 1 0 0] Tm +0 0 Td +165.589 533.572 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-250 TJm +(by) 9.963 Tj +-250 TJm +(def) 12.7228 Tj +10 TJm +(ault) 14.9445 Tj +-250 TJm +(not) 12.7327 Tj +-250 TJm +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(erwrite) 28.2152 Tj +-250 TJm +(e) 4.42357 Tj +16 TJm +(xisting) 27.1292 Tj +-250 TJm +(\002les.) 19.0991 Tj +-620 TJm +(If) 6.63536 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-250 TJm +(this) 14.3965 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(happen,) 31.2639 Tj +-250 TJm +(specify) 28.7731 Tj +-250 TJm +(the) 12.1748 Tj +[1 0 0 1 495.977 533.572] cm +0 g +0 G +[1 0 0 1 -495.977 -533.572] cm +[1 0 0 1 0 0] Tm +0 0 Td +495.977 533.572 Td +/F130_0 9.963 Tf +(-f) 11.9556 Tj +[1 0 0 1 507.932 533.572] cm +0 g +0 G +[1 0 0 1 -507.932 -533.572] cm +[1 0 0 1 0 0] Tm +0 0 Td +510.423 533.572 Td +/F128_0 9.963 Tf +(\003ag.) 17.4353 Tj +[1 0 0 1 72 531.415] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -521.453] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 511.654 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-284 TJm +(no) 9.963 Tj +-285 TJm +(\002) 5.53943 Tj +1 TJm +(le) 7.19329 Tj +-285 TJm +(names) 25.4555 Tj +-284 TJm +(are) 12.1648 Tj +-284 TJm +(speci\002ed,) 37.9092 Tj +[1 0 0 1 193.935 511.654] cm +0 g +0 G +[1 0 0 1 -193.935 -511.654] cm +[1 0 0 1 0 0] Tm +0 0 Td +193.935 511.654 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 223.823 511.654] cm +0 g +0 G +[1 0 0 1 -223.823 -511.654] cm +[1 0 0 1 0 0] Tm +0 0 Td +226.655 511.654 Td +/F128_0 9.963 Tf +(compresses) 45.9294 Tj +-284 TJm +(from) 19.3681 Tj +-284 TJm +(standard) 33.7546 Tj +-284 TJm +(input) 20.4839 Tj +-285 TJm +(to) 7.75121 Tj +-284 TJm +(standard) 33.7546 Tj +-284 TJm +(output.) 27.9562 Tj +-826 TJm +(In) 8.29918 Tj +-284 TJm +(this) 14.3965 Tj +-284 TJm +(case,) 19.6371 Tj +[1 0 0 1 491.778 511.654] cm +0 g +0 G +[1 0 0 1 -491.778 -511.654] cm +[1 0 0 1 0 0] Tm +0 0 Td +491.778 511.654 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 521.666 511.654] cm +0 g +0 G +[1 0 0 1 -521.666 -511.654] cm +[1 0 0 1 0 0] Tm +0 0 Td +524.498 511.654 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +72 499.699 Td +(decline) 28.7731 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(write) 20.474 Tj +-250 TJm +(compressed) 47.0353 Tj +-249 TJm +(output) 25.4654 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(terminal,) 35.6974 Tj +-250 TJm +(as) 8.29918 Tj +-250 TJm +(this) 14.3965 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ould) 17.7142 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(entirely) 30.437 Tj +-250 TJm +(incompre) 37.6303 Tj +1 TJm +(hensible) 33.2067 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(therefore) 35.9565 Tj +-250 TJm +(pointless.) 37.9192 Tj +[1 0 0 1 72 497.542] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -487.58] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 477.781 Td +/F130_0 9.963 Tf +(bunzip2) 41.8446 Tj +[1 0 0 1 113.843 477.781] cm +0 g +0 G +[1 0 0 1 -113.843 -477.781] cm +[1 0 0 1 0 0] Tm +0 0 Td +116.176 477.781 Td +/F128_0 9.963 Tf +(\(or) 11.6169 Tj +[1 0 0 1 130.125 477.781] cm +0 g +0 G +[1 0 0 1 -130.125 -477.781] cm +[1 0 0 1 0 0] Tm +0 0 Td +130.125 477.781 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +-600 TJm +(-d) 11.9556 Tj +[1 0 0 1 177.946 477.781] cm +0 g +0 G +[1 0 0 1 -177.946 -477.781] cm +[1 0 0 1 0 0] Tm +0 0 Td +177.946 477.781 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-234 TJm +(decompresses) 55.3345 Tj +-234 TJm +(all) 9.963 Tj +-234 TJm +(speci\002ed) 35.4185 Tj +-234 TJm +(\002les.) 19.0991 Tj +-609 TJm +(Files) 19.378 Tj +-234 TJm +(which) 24.3496 Tj +-235 TJm +(we) 11.6169 Tj +1 TJm +(re) 7.74125 Tj +-235 TJm +(not) 12.7327 Tj +-234 TJm +(created) 28.7632 Tj +-234 TJm +(by) 9.963 Tj +[1 0 0 1 445.012 477.781] cm +0 g +0 G +[1 0 0 1 -445.012 -477.781] cm +[1 0 0 1 0 0] Tm +0 0 Td +445.012 477.781 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 474.9 477.781] cm +0 g +0 G +[1 0 0 1 -474.9 -477.781] cm +[1 0 0 1 0 0] Tm +0 0 Td +477.233 477.781 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-234 TJm +(be) 9.40507 Tj +-234 TJm +(detected) 33.1967 Tj +72 465.826 Td +(and) 14.3866 Tj +-279 TJm +(ignored,) 32.9277 Tj +-287 TJm +(and) 14.3866 Tj +-280 TJm +(a) 4.42357 Tj +-279 TJm +(w) 7.19329 Tj +10 TJm +(arning) 25.4555 Tj +-279 TJm +(issued.) 27.3983 Tj +[1 0 0 1 216.033 465.826] cm +0 g +0 G +[1 0 0 1 -216.033 -465.826] cm +[1 0 0 1 0 0] Tm +0 0 Td +216.033 465.826 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 245.921 465.826] cm +0 g +0 G +[1 0 0 1 -245.921 -465.826] cm +[1 0 0 1 0 0] Tm +0 0 Td +248.705 465.826 Td +/F128_0 9.963 Tf +(attempts) 33.7646 Tj +-279 TJm +(to) 7.75121 Tj +-280 TJm +(guess) 22.1378 Tj +-279 TJm +(the) 12.1748 Tj +-280 TJm +(\002lenam) 29.889 Tj +1 TJm +(e) 4.42357 Tj +-280 TJm +(for) 11.6169 Tj +-279 TJm +(the) 12.1748 Tj +-280 TJm +(decompressed) 56.4404 Tj +-279 TJm +(\002le) 12.7327 Tj +-280 TJm +(fr) 6.63536 Tj +1 TJm +(om) 12.7327 Tj +-280 TJm +(that) 14.9445 Tj +-279 TJm +(of) 8.29918 Tj +-280 TJm +(the) 12.1748 Tj +72 453.871 Td +(compressed) 47.0353 Tj +-250 TJm +(\002le) 12.7327 Tj +-250 TJm +(as) 8.29918 Tj +-250 TJm +(follo) 18.8201 Tj +25 TJm +(ws:) 13.8386 Tj +[1 0 0 1 72 451.714] cm +0 g +0 G +[1 0 0 1 0 -29.723] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -421.991] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 421.991 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 421.991] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -421.991] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 421.991 Td +/F130_0 9.963 Tf +(filename.bz2) 71.7336 Tj +[1 0 0 1 164.653 421.991] cm +0 g +0 G +[1 0 0 1 -164.653 -421.991] cm +[1 0 0 1 0 0] Tm +0 0 Td +167.143 421.991 Td +/F128_0 9.963 Tf +(becomes) 34.8605 Tj +[1 0 0 1 204.493 421.991] cm +0 g +0 G +[1 0 0 1 -204.493 -421.991] cm +[1 0 0 1 0 0] Tm +0 0 Td +204.493 421.991 Td +/F130_0 9.963 Tf +(filename) 47.8224 Tj +[1 0 0 1 252.313 421.991] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -180.313 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -400.073] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 400.073 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 400.073] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -400.073] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 400.073 Td +/F130_0 9.963 Tf +(filename.bz) 65.7558 Tj +[1 0 0 1 158.675 400.073] cm +0 g +0 G +[1 0 0 1 -158.675 -400.073] cm +[1 0 0 1 0 0] Tm +0 0 Td +161.166 400.073 Td +/F128_0 9.963 Tf +(becomes) 34.8605 Tj +[1 0 0 1 198.515 400.073] cm +0 g +0 G +[1 0 0 1 -198.515 -400.073] cm +[1 0 0 1 0 0] Tm +0 0 Td +198.515 400.073 Td +/F130_0 9.963 Tf +(filename) 47.8224 Tj +[1 0 0 1 246.336 400.073] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -174.336 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -378.155] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 378.155 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 378.155] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -378.155] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 378.155 Td +/F130_0 9.963 Tf +(filename.tbz2) 77.7114 Tj +[1 0 0 1 164.653 378.155] cm +0 g +0 G +[1 0 0 1 -164.653 -378.155] cm +[1 0 0 1 0 0] Tm +0 0 Td +167.143 378.155 Td +/F128_0 9.963 Tf +(becomes) 34.8605 Tj +[1 0 0 1 204.493 378.155] cm +0 g +0 G +[1 0 0 1 -204.493 -378.155] cm +[1 0 0 1 0 0] Tm +0 0 Td +204.493 378.155 Td +/F130_0 9.963 Tf +(filename.tar) 71.7336 Tj +[1 0 0 1 276.224 378.155] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -204.224 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -356.237] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 356.237 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 356.237] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -356.237] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 356.237 Td +/F130_0 9.963 Tf +(filename.tbz) 71.7336 Tj +[1 0 0 1 164.653 356.237] cm +0 g +0 G +[1 0 0 1 -164.653 -356.237] cm +[1 0 0 1 0 0] Tm +0 0 Td +167.143 356.237 Td +/F128_0 9.963 Tf +(becomes) 34.8605 Tj +[1 0 0 1 204.493 356.237] cm +0 g +0 G +[1 0 0 1 -204.493 -356.237] cm +[1 0 0 1 0 0] Tm +0 0 Td +204.493 356.237 Td +/F130_0 9.963 Tf +(filename.tar) 71.7336 Tj +[1 0 0 1 276.224 356.237] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -204.224 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -334.319] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 334.319 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 334.319] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 1.992 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -334.319] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 334.319 Td +/F130_0 9.963 Tf +(anyothername) 71.7336 Tj +[1 0 0 1 164.653 334.319] cm +0 g +0 G +[1 0 0 1 -164.653 -334.319] cm +[1 0 0 1 0 0] Tm +0 0 Td +167.143 334.319 Td +/F128_0 9.963 Tf +(becomes) 34.8605 Tj +[1 0 0 1 204.493 334.319] cm +0 g +0 G +[1 0 0 1 -204.493 -334.319] cm +[1 0 0 1 0 0] Tm +0 0 Td +204.493 334.319 Td +/F130_0 9.963 Tf +(anyothername.out) 95.6448 Tj +[1 0 0 1 300.134 334.319] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -228.134 -11.526] cm +0 g +0 G +[1 0 0 1 -72 -322.793] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 312.402 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-342 TJm +(the) 12.1748 Tj +-342 TJm +(\002le) 12.7327 Tj +-342 TJm +(does) 18.2622 Tj +-342 TJm +(not) 12.7327 Tj +-342 TJm +(end) 14.3866 Tj +-342 TJm +(in) 7.75121 Tj +-342 TJm +(one) 14.3866 Tj +-343 TJm +(of) 8.29918 Tj +-342 TJm +(the) 12.1748 Tj +-342 TJm +(recognised) 43.1597 Tj +-342 TJm +(endings,) 33.4856 Tj +[1 0 0 1 309.305 312.402] cm +0 g +0 G +[1 0 0 1 -309.305 -312.402] cm +[1 0 0 1 0 0] Tm +0 0 Td +309.305 312.402 Td +/F130_0 9.963 Tf +(.bz2) 23.9112 Tj +[1 0 0 1 333.215 312.402] cm +0 g +0 G +[1 0 0 1 -333.215 -312.402] cm +[1 0 0 1 0 0] Tm +0 0 Td +333.215 312.402 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 339.344 312.402] cm +0 g +0 G +[1 0 0 1 -339.344 -312.402] cm +[1 0 0 1 0 0] Tm +0 0 Td +339.344 312.402 Td +/F130_0 9.963 Tf +(.bz) 17.9334 Tj +[1 0 0 1 357.276 312.402] cm +0 g +0 G +[1 0 0 1 -357.276 -312.402] cm +[1 0 0 1 0 0] Tm +0 0 Td +357.276 312.402 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 363.405 312.402] cm +0 g +0 G +[1 0 0 1 -363.405 -312.402] cm +[1 0 0 1 0 0] Tm +0 0 Td +363.405 312.402 Td +/F130_0 9.963 Tf +(.tbz2) 29.889 Tj +[1 0 0 1 393.293 312.402] cm +0 g +0 G +[1 0 0 1 -393.293 -312.402] cm +[1 0 0 1 0 0] Tm +0 0 Td +396.702 312.402 Td +/F128_0 9.963 Tf +(or) 8.29918 Tj +[1 0 0 1 408.409 312.402] cm +0 g +0 G +[1 0 0 1 -408.409 -312.402] cm +[1 0 0 1 0 0] Tm +0 0 Td +408.409 312.402 Td +/F130_0 9.963 Tf +(.tbz) 23.9112 Tj +[1 0 0 1 432.319 312.402] cm +0 g +0 G +[1 0 0 1 -432.319 -312.402] cm +[1 0 0 1 0 0] Tm +0 0 Td +432.319 312.402 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 438.448 312.402] cm +0 g +0 G +[1 0 0 1 -438.448 -312.402] cm +[1 0 0 1 0 0] Tm +0 0 Td +438.448 312.402 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 468.336 312.402] cm +0 g +0 G +[1 0 0 1 -468.336 -312.402] cm +[1 0 0 1 0 0] Tm +0 0 Td +471.744 312.402 Td +/F128_0 9.963 Tf +(complains) 40.9579 Tj +-342 TJm +(that) 14.9445 Tj +-342 TJm +(it) 5.53943 Tj +72 300.446 Td +(cannot) 26.5614 Tj +-250 TJm +(guess) 22.1378 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(name) 21.5799 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-249 TJm +(original) 30.9949 Tj +-250 TJm +(\002le,) 15.2235 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(uses) 17.1563 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(original) 30.9949 Tj +-250 TJm +(name) 21.5799 Tj +-250 TJm +(with) 17.7142 Tj +[1 0 0 1 370.009 300.446] cm +0 g +0 G +[1 0 0 1 -370.009 -300.446] cm +[1 0 0 1 0 0] Tm +0 0 Td +370.009 300.446 Td +/F130_0 9.963 Tf +(.out) 23.9112 Tj +[1 0 0 1 393.92 300.446] cm +0 g +0 G +[1 0 0 1 -393.92 -300.446] cm +[1 0 0 1 0 0] Tm +0 0 Td +396.41 300.446 Td +/F128_0 9.963 Tf +(appended.) 40.669 Tj +[1 0 0 1 72 298.29] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -288.327] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 278.529 Td +/F128_0 9.963 Tf +(As) 11.0689 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(compression,) 52.8537 Tj +-250 TJm +(supply) 26.5713 Tj +1 TJm +(ing) 12.7327 Tj +-250 TJm +(no) 9.963 Tj +-250 TJm +(\002lenames) 38.1882 Tj +-250 TJm +(causes) 26.0034 Tj +-250 TJm +(decompression) 59.768 Tj +-250 TJm +(from) 19.3681 Tj +-250 TJm +(standard) 33.7546 Tj +-250 TJm +(inp) 12.7327 Tj +1 TJm +(ut) 7.75121 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(standard) 33.7546 Tj +-250 TJm +(output.) 27.9562 Tj +[1 0 0 1 72 276.372] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -266.409] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 256.611 Td +/F130_0 9.963 Tf +(bunzip2) 41.8446 Tj +[1 0 0 1 113.843 256.611] cm +0 g +0 G +[1 0 0 1 -113.843 -256.611] cm +[1 0 0 1 0 0] Tm +0 0 Td +116.409 256.611 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-257 TJm +(correctly) 35.4085 Tj +-258 TJm +(decompress) 47.0353 Tj +-257 TJm +(a) 4.42357 Tj +-258 TJm +(\002l) 8.30914 Tj +1 TJm +(e) 4.42357 Tj +-258 TJm +(which) 24.3496 Tj +-257 TJm +(is) 6.64532 Tj +-258 TJm +(the) 12.1748 Tj +-257 TJm +(concatenation) 55.3345 Tj +-258 TJm +(of) 8.29918 Tj +-257 TJm +(tw) 9.963 Tj +10 TJm +(o) 4.9815 Tj +-257 TJm +(or) 8.29918 Tj +-258 TJm +(more) 20.474 Tj +-257 TJm +(compressed) 47.0353 Tj +-258 TJm +(\002les.) 19.0991 Tj +-665 TJm +(The) 15.4925 Tj +-257 TJm +(result) 22.1378 Tj +-258 TJm +(is) 6.64532 Tj +72 244.656 Td +(the) 12.1748 Tj +-239 TJm +(concatena) 39.8321 Tj +1 TJm +(tion) 15.5024 Tj +-239 TJm +(of) 8.29918 Tj +-239 TJm +(the) 12.1748 Tj +-238 TJm +(corresponding) 56.9983 Tj +-239 TJm +(uncompressed) 56.9983 Tj +-238 TJm +(\002les.) 19.0991 Tj +-613 TJm +(Inte) 15.4925 Tj +15 TJm +(grity) 18.8201 Tj +-238 TJm +(testing) 26.5713 Tj +-239 TJm +(\() 3.31768 Tj +[1 0 0 1 382.247 244.656] cm +0 g +0 G +[1 0 0 1 -382.247 -244.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +382.247 244.656 Td +/F130_0 9.963 Tf +(-t) 11.9556 Tj +[1 0 0 1 394.202 244.656] cm +0 g +0 G +[1 0 0 1 -394.202 -244.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +394.202 244.656 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-239 TJm +(of) 8.29918 Tj +-238 TJm +(concatenated) 52.0069 Tj +-239 TJm +(compressed) 47.0353 Tj +-238 TJm +(\002les) 16.6083 Tj +-239 TJm +(is) 6.64532 Tj +72 232.7 Td +(also) 16.0504 Tj +-250 TJm +(supported.) 41.7848 Tj +[1 0 0 1 72 230.544] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -220.581] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 210.783 Td +/F128_0 9.963 Tf +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-399 TJm +(can) 13.8286 Tj +-399 TJm +(also) 16.0504 Tj +-399 TJm +(compress) 37.6303 Tj +-399 TJm +(or) 8.29918 Tj +-399 TJm +(decompress) 47.0353 Tj +-399 TJm +(\002les) 16.6083 Tj +-399 TJm +(to) 7.75121 Tj +-399 TJm +(the) 12.1748 Tj +-399 TJm +(standard) 33.7546 Tj +-399 TJm +(output) 25.4654 Tj +-399 TJm +(by) 9.963 Tj +-399 TJm +(gi) 7.75121 Tj +25 TJm +(ving) 17.7142 Tj +-399 TJm +(the) 12.1748 Tj +[1 0 0 1 409.67 210.783] cm +0 g +0 G +[1 0 0 1 -409.67 -210.783] cm +[1 0 0 1 0 0] Tm +0 0 Td +409.67 210.783 Td +/F130_0 9.963 Tf +(-c) 11.9556 Tj +[1 0 0 1 421.625 210.783] cm +0 g +0 G +[1 0 0 1 -421.625 -210.783] cm +[1 0 0 1 0 0] Tm +0 0 Td +425.602 210.783 Td +/F128_0 9.963 Tf +(\003ag.) 17.4353 Tj +-757 TJm +(Multiple) 34.3225 Tj +-399 TJm +(\002les) 16.6083 Tj +-399 TJm +(may) 17.1563 Tj +-399 TJm +(be) 9.40507 Tj +72 198.828 Td +(compressed) 47.0353 Tj +-367 TJm +(and) 14.3866 Tj +-367 TJm +(dec) 13.8286 Tj +1 TJm +(ompressed) 42.6118 Tj +-367 TJm +(lik) 10.5209 Tj +10 TJm +(e) 4.42357 Tj +-367 TJm +(this.) 16.8873 Tj +-1321 TJm +(The) 15.4925 Tj +-367 TJm +(resulting) 34.8705 Tj +-367 TJm +(outputs) 29.341 Tj +-367 TJm +(are) 12.1648 Tj +-367 TJm +(fed) 12.7228 Tj +-366 TJm +(sequentially) 48.1512 Tj +-367 TJm +(to) 7.75121 Tj +-367 TJm +(stdout.) 26.8503 Tj +-1321 TJm +(Compression) 52.5847 Tj +-367 TJm +(of) 8.29918 Tj +72 186.872 Td +(multiple) 33.2166 Tj +-289 TJm +(\002les) 16.6083 Tj +-289 TJm +(in) 7.75121 Tj +-288 TJm +(this) 14.3965 Tj +-289 TJm +(manner) 29.879 Tj +-289 TJm +(generates) 37.6203 Tj +-289 TJm +(a) 4.42357 Tj +-289 TJm +(stre) 14.3866 Tj +1 TJm +(am) 12.1748 Tj +-289 TJm +(containing) 42.0638 Tj +-289 TJm +(multiple) 33.2166 Tj +-289 TJm +(compressed) 47.0353 Tj +-288 TJm +(\002le) 12.7327 Tj +-289 TJm +(representations.) 62.8068 Tj +-853 TJm +(Such) 19.926 Tj +-289 TJm +(a) 4.42357 Tj +-289 TJm +(stream) 26.5614 Tj +72 174.917 Td +(can) 13.8286 Tj +-391 TJm +(be) 9.40507 Tj +-391 TJm +(dec) 13.8286 Tj +1 TJm +(ompressed) 42.6118 Tj +-391 TJm +(correctly) 35.4085 Tj +-391 TJm +(only) 17.7142 Tj +-391 TJm +(by) 9.963 Tj +[1 0 0 1 238.116 174.917] cm +0 g +0 G +[1 0 0 1 -238.116 -174.917] cm +[1 0 0 1 0 0] Tm +0 0 Td +238.116 174.917 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 268.004 174.917] cm +0 g +0 G +[1 0 0 1 -268.004 -174.917] cm +[1 0 0 1 0 0] Tm +0 0 Td +271.897 174.917 Td +/F128_0 9.963 Tf +(v) 4.9815 Tj +15 TJm +(ersion) 24.3496 Tj +-391 TJm +(0.9.0) 19.926 Tj +-391 TJm +(o) 4.9815 Tj +1 TJm +(r) 3.31768 Tj +-391 TJm +(later) 17.7043 Tj +55 TJm +(.) 2.49075 Tj +-733 TJm +(Earlier) 27.1093 Tj +-390 TJm +(v) 4.9815 Tj +15 TJm +(ersions) 28.2252 Tj +-391 TJm +(of) 8.29918 Tj +[1 0 0 1 448.071 174.917] cm +0 g +0 G +[1 0 0 1 -448.071 -174.917] cm +[1 0 0 1 0 0] Tm +0 0 Td +448.071 174.917 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 477.959 174.917] cm +0 g +0 G +[1 0 0 1 -477.959 -174.917] cm +[1 0 0 1 0 0] Tm +0 0 Td +481.852 174.917 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-391 TJm +(stop) 16.6083 Tj +-391 TJm +(a) 4.42357 Tj +1 TJm +(fter) 13.8286 Tj +72 162.962 Td +(decompressing) 59.768 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(\002rst) 15.5024 Tj +-250 TJm +(\002le) 12.7327 Tj +-249 TJm +(in) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(stream.) 29.0521 Tj +[1 0 0 1 72 160.805] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -150.843] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 141.044 Td +/F130_0 9.963 Tf +(bzcat) 29.889 Tj +[1 0 0 1 101.888 141.044] cm +0 g +0 G +[1 0 0 1 -101.888 -141.044] cm +[1 0 0 1 0 0] Tm +0 0 Td +104.379 141.044 Td +/F128_0 9.963 Tf +(\(or) 11.6169 Tj +[1 0 0 1 118.486 141.044] cm +0 g +0 G +[1 0 0 1 -118.486 -141.044] cm +[1 0 0 1 0 0] Tm +0 0 Td +118.486 141.044 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +-600 TJm +(-dc) 17.9334 Tj +[1 0 0 1 172.284 141.044] cm +0 g +0 G +[1 0 0 1 -172.284 -141.044] cm +[1 0 0 1 0 0] Tm +0 0 Td +172.284 141.044 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-250 TJm +(decompresses) 55.3345 Tj +-250 TJm +(all) 9.963 Tj +-250 TJm +(speci\002e) 30.437 Tj +1 TJm +(d) 4.9815 Tj +-250 TJm +(\002les) 16.6083 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(standard) 33.7546 Tj +-250 TJm +(output.) 27.9562 Tj +[1 0 0 1 72 138.887] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -128.925] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 119.126 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 119.126] cm +0 g +0 G +[1 0 0 1 -101.888 -119.126] cm +[1 0 0 1 0 0] Tm +0 0 Td +104.866 119.126 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-299 TJm +(read) 17.1463 Tj +-299 TJm +(ar) 7.74125 Tj +18 TJm +(gument) 29.889 Tj +1 TJm +(s) 3.87561 Tj +-299 TJm +(from) 19.3681 Tj +-299 TJm +(the) 12.1748 Tj +-299 TJm +(en) 9.40507 Tj +40 TJm +(vironment) 40.9579 Tj +-299 TJm +(v) 4.9815 Tj +25 TJm +(ariables) 30.9849 Tj +[1 0 0 1 316.903 119.126] cm +0 g +0 G +[1 0 0 1 -316.903 -119.126] cm +[1 0 0 1 0 0] Tm +0 0 Td +316.903 119.126 Td +/F130_0 9.963 Tf +(BZIP2) 29.889 Tj +[1 0 0 1 346.791 119.126] cm +0 g +0 G +[1 0 0 1 -346.791 -119.126] cm +[1 0 0 1 0 0] Tm +0 0 Td +349.769 119.126 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 367.133 119.126] cm +0 g +0 G +[1 0 0 1 -367.133 -119.126] cm +[1 0 0 1 0 0] Tm +0 0 Td +367.133 119.126 Td +/F130_0 9.963 Tf +(BZIP) 23.9112 Tj +[1 0 0 1 391.043 119.126] cm +0 g +0 G +[1 0 0 1 -391.043 -119.126] cm +[1 0 0 1 0 0] Tm +0 0 Td +391.043 119.126 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-299 TJm +(in) 7.75121 Tj +-299 TJm +(that) 14.9445 Tj +-299 TJm +(order) 21.0219 Tj +40 TJm +(,) 2.49075 Tj +-311 TJm +(and) 14.3866 Tj +-299 TJm +(wil) 12.7327 Tj +1 TJm +(l) 2.76971 Tj +-299 TJm +(process) 29.879 Tj +-299 TJm +(them) 19.926 Tj +72 107.171 Td +(before) 25.4455 Tj +-250 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-250 TJm +(ar) 7.74125 Tj +18 TJm +(guments) 33.7646 Tj +-250 TJm +(read) 17.1463 Tj +-250 TJm +(from) 19.3681 Tj +-249 TJm +(the) 12.1748 Tj +-250 TJm +(command) 39.2941 Tj +-250 TJm +(line.) 17.4353 Tj +-310 TJm +(This) 17.7142 Tj +-250 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(es) 8.29918 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(con) 14.3866 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(enient) 24.3496 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ay) 9.40507 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(supply) 26.5713 Tj +-250 TJm +(d) 4.9815 Tj +1 TJm +(ef) 7.74125 Tj +10 TJm +(ault) 14.9445 Tj +-250 TJm +(ar) 7.74125 Tj +18 TJm +(guments.) 36.2554 Tj +[1 0 0 1 72 105.014] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -95.052] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 85.253 Td +/F128_0 9.963 Tf +(Compression) 52.5847 Tj +-294 TJm +(is) 6.64532 Tj +-294 TJm +(al) 7.19329 Tj +10 TJm +(w) 7.19329 Tj +10 TJm +(ays) 13.2807 Tj +-293 TJm +(performed,) 43.9866 Tj +-305 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-294 TJm +(if) 6.08739 Tj +-294 TJm +(the) 12.1748 Tj +-294 TJm +(compressed) 47.0353 Tj +-294 TJm +(\002le) 12.7327 Tj +-294 TJm +(i) 2.76971 Tj +1 TJm +(s) 3.87561 Tj +-294 TJm +(slightly) 29.899 Tj +-294 TJm +(lar) 10.511 Tj +18 TJm +(ger) 12.7228 Tj +-294 TJm +(than) 17.1563 Tj +-294 TJm +(the) 12.1748 Tj +-294 TJm +(original.) 33.4856 Tj +-883 TJm +(Files) 19.378 Tj +-294 TJm +(of) 8.29918 Tj +-294 TJm +(less) 14.9445 Tj +-294 TJm +(than) 17.1563 Tj +72 73.298 Td +(about) 22.1378 Tj +-246 TJm +(one) 14.3866 Tj +-245 TJm +(hundred) 32.6488 Tj +-246 TJm +(bytes) 21.0319 Tj +-246 TJm +(tend) 17.1563 Tj +-245 TJm +(to) 7.75121 Tj +-246 TJm +(get) 12.1748 Tj +-246 TJm +(lar) 10.511 Tj +18 TJm +(ger) 12.7228 Tj +40 TJm +(,) 2.49075 Tj +-246 TJm +(since) 20.474 Tj +-246 TJm +(the) 12.1748 Tj +-246 TJm +(compression) 50.363 Tj +-245 TJm +(mechanism) 45.3815 Tj +-246 TJm +(has) 13.2807 Tj +-246 TJm +(a) 4.42357 Tj +-246 TJm +(c) 4.42357 Tj +1 TJm +(onstant) 28.7831 Tj +-246 TJm +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(erhead) 26.5514 Tj +-246 TJm +(in) 7.75121 Tj +-246 TJm +(th) 7.75121 Tj +1 TJm +(e) 4.42357 Tj +-246 TJm +(re) 7.74125 Tj +15 TJm +(gion) 17.7142 Tj +-246 TJm +(of) 8.29918 Tj +[1 0 0 1 72 50.852] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 43.063 -6.755] cm +0 g +0 G +[1 0 0 1 -496.332 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +539.395 50.951 Td +/F128_0 9.963 Tf +(3) 4.9815 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 7 7 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 105.519 -6.755] cm +0 g +0 G +[1 0 0 1 -371.59 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +477.109 749.245 Td +/F128_0 9.963 Tf +(Ho) 12.1748 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(bzip2) 22.1378 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -540 -741.554] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(50) 9.963 Tj +-264 TJm +(bytes.) 23.5226 Tj +-351 TJm +(Random) 33.7646 Tj +-263 TJm +(data) 16.5984 Tj +-264 TJm +(\(including) 40.9579 Tj +-263 TJm +(the) 12.1748 Tj +-264 TJm +(output) 25.4654 Tj +-264 TJm +(of) 8.29918 Tj +-263 TJm +(most) 19.378 Tj +-264 TJm +(\002le) 12.7327 Tj +-263 TJm +(compressors\)) 53.1227 Tj +-264 TJm +(is) 6.64532 Tj +-264 TJm +(coded) 23.7916 Tj +-263 TJm +(at) 7.19329 Tj +-264 TJm +(about) 22.1378 Tj +-263 TJm +(8.05) 17.4353 Tj +-264 TJm +(bits) 14.3965 Tj +-264 TJm +(per) 12.7228 Tj +-263 TJm +(byte,) 19.647 Tj +-267 TJm +(gi) 7.75121 Tj +25 TJm +(ving) 17.7142 Tj +-264 TJm +(an) 9.40507 Tj +72 698.082 Td +(e) 4.42357 Tj +15 TJm +(xpansion) 35.9764 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(around) 27.6673 Tj +-250 TJm +(0.5%.) 23.2437 Tj +[1 0 0 1 72 695.925] cm +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +[1 0 0 1 -72 -686.081] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 676.283 Td +/F128_0 9.963 Tf +(As) 11.0689 Tj +-268 TJm +(a) 4.42357 Tj +-268 TJm +(self-check) 40.938 Tj +-268 TJm +(for) 11.6169 Tj +-269 TJm +(yo) 9.963 Tj +1 TJm +(ur) 8.29918 Tj +-269 TJm +(protection) 40.4 Tj +1 TJm +(,) 2.49075 Tj +[1 0 0 1 217.273 676.283] cm +0 g +0 G +[1 0 0 1 -217.273 -676.283] cm +[1 0 0 1 0 0] Tm +0 0 Td +217.273 676.283 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 247.161 676.283] cm +0 g +0 G +[1 0 0 1 -247.161 -676.283] cm +[1 0 0 1 0 0] Tm +0 0 Td +249.833 676.283 Td +/F128_0 9.963 Tf +(uses) 17.1563 Tj +-268 TJm +(32-bit) 23.8016 Tj +-268 TJm +(CRCs) 23.8116 Tj +-268 TJm +(to) 7.75121 Tj +-268 TJm +(mak) 17.1563 Tj +10 TJm +(e) 4.42357 Tj +-269 TJm +(sure) 16.5984 Tj +-268 TJm +(that) 14.9445 Tj +-268 TJm +(the) 12.1748 Tj +-268 TJm +(decompressed) 56.4404 Tj +-268 TJm +(v) 4.9815 Tj +15 TJm +(ersion) 24.3496 Tj +-268 TJm +(of) 8.29918 Tj +-268 TJm +(a) 4.42357 Tj +-268 TJm +(\002le) 12.7327 Tj +-269 TJm +(is) 6.64532 Tj +72 664.328 Td +(identical) 34.3126 Tj +-199 TJm +(to) 7.75121 Tj +-200 TJm +(the) 12.1748 Tj +-199 TJm +(original.) 33.4856 Tj +-587 TJm +(This) 17.7142 Tj +-199 TJm +(guards) 26.5614 Tj +-200 TJm +(ag) 9.40507 Tj +5 TJm +(ainst) 18.8201 Tj +-199 TJm +(corruption) 41.5059 Tj +-200 TJm +(of) 8.29918 Tj +-199 TJm +(the) 12.1748 Tj +-200 TJm +(compre) 29.879 Tj +1 TJm +(ssed) 17.1563 Tj +-200 TJm +(data,) 19.0891 Tj +-210 TJm +(and) 14.3866 Tj +-199 TJm +(ag) 9.40507 Tj +5 TJm +(ainst) 18.8201 Tj +-200 TJm +(unde) 19.3681 Tj +1 TJm +(tected) 23.7916 Tj +-200 TJm +(b) 4.9815 Tj +20 TJm +(ugs) 13.8386 Tj +-199 TJm +(in) 7.75121 Tj +[1 0 0 1 510.112 664.328] cm +0 g +0 G +[1 0 0 1 -510.112 -664.328] cm +[1 0 0 1 0 0] Tm +0 0 Td +510.112 664.328 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 540 664.328] cm +0 g +0 G +[1 0 0 1 -540 -664.328] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 652.373 Td +/F128_0 9.963 Tf +(\(hopefully) 41.5059 Tj +-275 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +1 TJm +(ry) 8.29918 Tj +-275 TJm +(unlik) 20.4839 Tj +10 TJm +(ely\).) 17.9832 Tj +-384 TJm +(The) 15.4925 Tj +-275 TJm +(chances) 31.5329 Tj +-274 TJm +(of) 8.29918 Tj +-275 TJm +(data) 16.5984 Tj +-275 TJm +(corr) 16.0404 Tj +1 TJm +(uption) 25.4654 Tj +-275 TJm +(going) 22.6957 Tj +-275 TJm +(undetected) 43.1597 Tj +-274 TJm +(is) 6.64532 Tj +-275 TJm +(microscopic,) 51.1899 Tj +-280 TJm +(about) 22.1378 Tj +-275 TJm +(one) 14.3866 Tj +-275 TJm +(chance) 27.6573 Tj +-274 TJm +(in) 7.75121 Tj +-275 TJm +(four) 16.5984 Tj +72 640.417 Td +(billion) 26.0234 Tj +-279 TJm +(for) 11.6169 Tj +-279 TJm +(each) 18.2522 Tj +-279 TJm +(\002le) 12.7327 Tj +-279 TJm +(processed.) 41.7749 Tj +-795 TJm +(Be) 11.0689 Tj +-279 TJm +(a) 4.42357 Tj +15 TJm +(w) 7.19329 Tj +10 TJm +(are,) 14.6556 Tj +-287 TJm +(thou) 17.7142 Tj +1 TJm +(gh,) 12.4538 Tj +-287 TJm +(that) 14.9445 Tj +-279 TJm +(the) 12.1748 Tj +-279 TJm +(check) 23.2337 Tj +-279 TJm +(occurs) 26.0034 Tj +-279 TJm +(upon) 19.926 Tj +-279 TJm +(decompression,) 62.2588 Tj +-286 TJm +(so) 8.85711 Tj +-280 TJm +(it) 5.53943 Tj +-279 TJm +(can) 13.8286 Tj +-279 TJm +(only) 17.7142 Tj +-279 TJm +(tell) 12.7327 Tj +-279 TJm +(you) 14.9445 Tj +72 628.462 Td +(that) 14.9445 Tj +-237 TJm +(something) 41.5158 Tj +-236 TJm +(is) 6.64532 Tj +-237 TJm +(wrong.) 27.9462 Tj +-611 TJm +(It) 6.08739 Tj +-237 TJm +(can') 17.1463 Tj +18 TJm +(t) 2.76971 Tj +-236 TJm +(help) 17.1563 Tj +-237 TJm +(you) 14.9445 Tj +-237 TJm +(reco) 17.1463 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-236 TJm +(the) 12.1748 Tj +-237 TJm +(original) 30.9949 Tj +-237 TJm +(uncompressed) 56.9983 Tj +-236 TJm +(data.) 19.0891 Tj +-611 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-237 TJm +(can) 13.8286 Tj +-237 TJm +(use) 13.2807 Tj +[1 0 0 1 458.159 628.462] cm +0 g +0 G +[1 0 0 1 -458.159 -628.462] cm +[1 0 0 1 0 0] Tm +0 0 Td +458.159 628.462 Td +/F130_0 9.963 Tf +(bzip2recover) 71.7336 Tj +[1 0 0 1 529.89 628.462] cm +0 g +0 G +[1 0 0 1 -529.89 -628.462] cm +[1 0 0 1 0 0] Tm +0 0 Td +532.249 628.462 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +72 616.507 Td +(try) 11.0689 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(reco) 17.1463 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(from) 19.3681 Tj +-250 TJm +(damag) 26.5614 Tj +1 TJm +(ed) 9.40507 Tj +-250 TJm +(\002les.) 19.0991 Tj +[1 0 0 1 72 614.35] cm +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +[1 0 0 1 -72 -604.506] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 594.708 Td +/F128_0 9.963 Tf +(Return) 27.1193 Tj +-298 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +-406 TJm +(0) 4.9815 Tj +-298 TJm +(f) 3.31768 Tj +1 TJm +(or) 8.29918 Tj +-298 TJm +(a) 4.42357 Tj +-298 TJm +(normal) 28.2252 Tj +-298 TJm +(e) 4.42357 Tj +15 TJm +(xit,) 13.0117 Tj +-310 TJm +(1) 4.9815 Tj +-298 TJm +(for) 11.6169 Tj +-298 TJm +(en) 9.40507 Tj +40 TJm +(vironmental) 48.1512 Tj +-298 TJm +(p) 4.9815 Tj +1 TJm +(roblems) 32.1008 Tj +-298 TJm +(\(\002le) 16.0504 Tj +-298 TJm +(not) 12.7327 Tj +-298 TJm +(found,) 25.7344 Tj +-310 TJm +(in) 7.75121 Tj +40 TJm +(v) 4.9815 Tj +25 TJm +(alid) 14.9445 Tj +-298 TJm +(\003ags,) 21.3109 Tj +-310 TJm +(I/O) 13.2807 Tj +-297 TJm +(errors,) 25.7245 Tj +-310 TJm +(etc.\),) 19.916 Tj +-310 TJm +(2) 4.9815 Tj +-298 TJm +(to) 7.75121 Tj +72 582.753 Td +(indicate) 31.5429 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(corrupt) 28.7731 Tj +-250 TJm +(compresse) 42.0538 Tj +1 TJm +(d) 4.9815 Tj +-250 TJm +(\002le,) 15.2235 Tj +-250 TJm +(3) 4.9815 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(an) 9.40507 Tj +-250 TJm +(internal) 30.437 Tj +-250 TJm +(consistenc) 41.5059 Tj +15 TJm +(y) 4.9815 Tj +-250 TJm +(error) 19.3581 Tj +-250 TJm +(\(e) 7.74125 Tj +15 TJm +(g,) 7.47225 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ug\)) 13.2807 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(ca) 8.84714 Tj +1 TJm +(used) 18.2622 Tj +[1 0 0 1 443.065 582.753] cm +0 g +0 G +[1 0 0 1 -443.065 -582.753] cm +[1 0 0 1 0 0] Tm +0 0 Td +443.065 582.753 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 472.953 582.753] cm +0 g +0 G +[1 0 0 1 -472.953 -582.753] cm +[1 0 0 1 0 0] Tm +0 0 Td +475.444 582.753 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(panic.) 24.0706 Tj +[1 0 0 1 72 580.596] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -570.752] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 548.118 Td +/F121_0 20.659 Tf +(2.4.) 34.4592 Tj +-278 TJm +(OPTIONS) 92.9862 Tj +[1 0 0 1 72 547.86] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -528.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 516.475 Td +/F130_0 9.963 Tf +(-c) 11.9556 Tj +-600 TJm +(--stdout) 47.8224 Tj +[1 0 0 1 137.753 516.475] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -68.244 -0.209] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -516.266] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 504.52 Td +/F128_0 9.963 Tf +(Compress) 39.852 Tj +-250 TJm +(or) 8.29918 Tj +-250 TJm +(decompress) 47.0353 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(s) 3.87561 Tj +1 TJm +(tandard) 29.879 Tj +-250 TJm +(output.) 27.9562 Tj +[1 0 0 1 72 502.363] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.866] cm +0 g +0 G +[1 0 0 1 0 -9.845] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -488.652] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 478.854 Td +/F130_0 9.963 Tf +(-d) 11.9556 Tj +-600 TJm +(--decompress) 71.7336 Tj +[1 0 0 1 161.664 478.854] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -92.154 -1.564] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -477.29] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 466.899 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(orce) 17.1463 Tj +-296 TJm +(decompression.) 62.2588 Tj +[1 0 0 1 200.214 466.899] cm +0 g +0 G +[1 0 0 1 -200.214 -466.899] cm +[1 0 0 1 0 0] Tm +0 0 Td +200.214 466.899 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 230.102 466.899] cm +0 g +0 G +[1 0 0 1 -230.102 -466.899] cm +[1 0 0 1 0 0] Tm +0 0 Td +230.102 466.899 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 235.659 466.899] cm +0 g +0 G +[1 0 0 1 -235.659 -466.899] cm +[1 0 0 1 0 0] Tm +0 0 Td +235.659 466.899 Td +/F130_0 9.963 Tf +(bunzip2) 41.8446 Tj +[1 0 0 1 277.502 466.899] cm +0 g +0 G +[1 0 0 1 -277.502 -466.899] cm +[1 0 0 1 0 0] Tm +0 0 Td +280.454 466.899 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 297.791 466.899] cm +0 g +0 G +[1 0 0 1 -297.791 -466.899] cm +[1 0 0 1 0 0] Tm +0 0 Td +297.791 466.899 Td +/F130_0 9.963 Tf +(bzcat) 29.889 Tj +[1 0 0 1 327.679 466.899] cm +0 g +0 G +[1 0 0 1 -327.679 -466.899] cm +[1 0 0 1 0 0] Tm +0 0 Td +330.631 466.899 Td +/F128_0 9.963 Tf +(are) 12.1648 Tj +-296 TJm +(really) 22.6858 Tj +-296 TJm +(the) 12.1748 Tj +-296 TJm +(same) 20.474 Tj +-297 TJm +(program) 33.7546 Tj +1 TJm +(,) 2.49075 Tj +-308 TJm +(and) 14.3866 Tj +-297 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-297 TJm +(decision) 33.2067 Tj +-296 TJm +(about) 22.1378 Tj +108 454.944 Td +(what) 19.3681 Tj +-303 TJm +(actions) 28.2252 Tj +-303 TJm +(to) 7.75121 Tj +-303 TJm +(tak) 12.1748 Tj +10 TJm +(e) 4.42357 Tj +-303 TJm +(is) 6.64532 Tj +-303 TJm +(done) 19.3681 Tj +-303 TJm +(on) 9.963 Tj +-303 TJm +(the) 12.1748 Tj +-303 TJm +(basis) 19.926 Tj +-303 TJm +(of) 8.29918 Tj +-303 TJm +(which) 24.3496 Tj +-303 TJm +(name) 21.5799 Tj +-303 TJm +(is) 6.64532 Tj +-303 TJm +(used.) 20.7529 Tj +-939 TJm +(T) 6.08739 Tj +1 TJm +(his) 11.6268 Tj +-304 TJm +(\003) 5.53943 Tj +1 TJm +(ag) 9.40507 Tj +-304 TJm +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +1 TJm +(rrides) 22.6858 Tj +-303 TJm +(that) 14.9445 Tj +-303 TJm +(mechanism,) 47.8722 Tj +-317 TJm +(and) 14.3866 Tj +108 442.989 Td +(forces) 24.3396 Tj +-250 TJm +(bzip2) 22.1378 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(decompress.) 49.5261 Tj +[1 0 0 1 72 440.832] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.867] cm +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -427.121] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 417.323 Td +/F130_0 9.963 Tf +(-z) 11.9556 Tj +-600 TJm +(--compress) 59.778 Tj +[1 0 0 1 149.709 417.323] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -80.199 -1.564] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -415.759] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 405.368 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-250 TJm +(complement) 49.2571 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 187.969 405.368] cm +0 g +0 G +[1 0 0 1 -187.969 -405.368] cm +[1 0 0 1 0 0] Tm +0 0 Td +187.969 405.368 Td +/F130_0 9.963 Tf +(-d) 11.9556 Tj +[1 0 0 1 199.924 405.368] cm +0 g +0 G +[1 0 0 1 -199.924 -405.368] cm +[1 0 0 1 0 0] Tm +0 0 Td +199.924 405.368 Td +/F128_0 9.963 Tf +(:) 2.76971 Tj +-310 TJm +(forces) 24.3396 Tj +-250 TJm +(compression,) 52.8537 Tj +-250 TJm +(re) 7.74125 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(ardles) 23.7916 Tj +1 TJm +(s) 3.87561 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(in) 7.75121 Tj +40 TJm +(v) 4.9815 Tj +20 TJm +(okation) 29.889 Tj +-250 TJm +(name.) 24.0706 Tj +[1 0 0 1 72 403.211] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.867] cm +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -389.5] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 379.702 Td +/F130_0 9.963 Tf +(-t) 11.9556 Tj +-600 TJm +(--test) 35.8668 Tj +[1 0 0 1 125.798 379.702] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -56.289 -0.209] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -379.493] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 367.747 Td +/F128_0 9.963 Tf +(Check) 25.4555 Tj +-270 TJm +(inte) 14.9445 Tj +15 TJm +(grity) 18.8201 Tj +-271 TJm +(of) 8.29918 Tj +-270 TJm +(the) 12.1748 Tj +-270 TJm +(speci\002ed) 35.4185 Tj +-271 TJm +(\002) 5.53943 Tj +1 TJm +(le\(s\),) 20.195 Tj +-276 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-270 TJm +(don') 18.2622 Tj +18 TJm +(t) 2.76971 Tj +-271 TJm +(decom) 26.5614 Tj +1 TJm +(press) 20.474 Tj +-271 TJm +(them.) 22.4168 Tj +-742 TJm +(This) 17.7142 Tj +-270 TJm +(really) 22.6858 Tj +-271 TJm +(performs) 35.9664 Tj +-270 TJm +(a) 4.42357 Tj +-270 TJm +(trial) 16.0504 Tj +-271 TJm +(decompres-) 46.4774 Tj +108 355.792 Td +(sion) 16.6083 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(thro) 16.0504 Tj +25 TJm +(ws) 11.0689 Tj +-250 TJm +(a) 4.42357 Tj +15 TJm +(w) 7.19329 Tj +10 TJm +(ay) 9.40507 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(resul) 19.3681 Tj +1 TJm +(t.) 5.26046 Tj +[1 0 0 1 72 353.635] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.867] cm +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -339.924] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 330.126 Td +/F130_0 9.963 Tf +(-f) 11.9556 Tj +-600 TJm +(--force) 41.8446 Tj +[1 0 0 1 131.776 330.126] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -62.266 -0.209] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -329.917] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 318.171 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(orce) 17.1463 Tj +-338 TJm +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(erwrite) 28.2152 Tj +-338 TJm +(of) 8.29918 Tj +-339 TJm +(output) 25.4654 Tj +-338 TJm +(\002les.) 19.0991 Tj +-1149 TJm +(Normally) 38.1882 Tj +65 TJm +(,) 2.49075 Tj +[1 0 0 1 289.831 318.171] cm +0 g +0 G +[1 0 0 1 -289.831 -318.171] cm +[1 0 0 1 0 0] Tm +0 0 Td +289.831 318.171 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 319.719 318.171] cm +0 g +0 G +[1 0 0 1 -319.719 -318.171] cm +[1 0 0 1 0 0] Tm +0 0 Td +323.089 318.171 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-338 TJm +(not) 12.7327 Tj +-338 TJm +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(erwrite) 28.2152 Tj +-339 TJm +(e) 4.42357 Tj +15 TJm +(xisti) 17.1662 Tj +1 TJm +(ng) 9.963 Tj +-339 TJm +(output) 25.4654 Tj +-338 TJm +(\002les.) 19.0991 Tj +-1150 TJm +(Also) 18.8201 Tj +-338 TJm +(forces) 24.3396 Tj +[1 0 0 1 108 306.216] cm +0 g +0 G +[1 0 0 1 -108 -306.216] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 306.216 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 137.888 306.216] cm +0 g +0 G +[1 0 0 1 -137.888 -306.216] cm +[1 0 0 1 0 0] Tm +0 0 Td +140.379 306.216 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(break) 22.1278 Tj +-250 TJm +(hard) 17.7043 Tj +-250 TJm +(links) 19.378 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(\002les) 16.6083 Tj +1 TJm +(,) 2.49075 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(it) 5.53943 Tj +-250 TJm +(otherwise) 38.7361 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ouldn') 26.0134 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(do.) 12.4538 Tj +[1 0 0 1 72 304.652] cm +0 g +0 G +[1 0 0 1 0 -9.845] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -294.807] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 284.416 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 137.888 284.416] cm +0 g +0 G +[1 0 0 1 -137.888 -284.416] cm +[1 0 0 1 0 0] Tm +0 0 Td +141.211 284.416 Td +/F128_0 9.963 Tf +(normally) 35.9764 Tj +-333 TJm +(declines) 32.6488 Tj +-334 TJm +(to) 7.75121 Tj +-333 TJm +(decompress) 47.0353 Tj +-334 TJm +(\002les) 16.6083 Tj +-333 TJm +(which) 24.3496 Tj +-333 TJm +(don') 18.2622 Tj +18 TJm +(t) 2.76971 Tj +-334 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-333 TJm +(the) 12.1748 Tj +-334 TJm +(correct) 27.6573 Tj +-333 TJm +(magic) 24.3496 Tj +-334 TJm +(header) 26.5514 Tj +-333 TJm +(bytes.) 23.5226 Tj +-561 TJm +(If) 6.63536 Tj +-333 TJm +(forced) 25.4455 Tj +108 272.461 Td +(\() 3.31768 Tj +[1 0 0 1 111.317 272.461] cm +0 g +0 G +[1 0 0 1 -111.317 -272.461] cm +[1 0 0 1 0 0] Tm +0 0 Td +111.317 272.461 Td +/F130_0 9.963 Tf +(-f) 11.9556 Tj +[1 0 0 1 123.273 272.461] cm +0 g +0 G +[1 0 0 1 -123.273 -272.461] cm +[1 0 0 1 0 0] Tm +0 0 Td +123.273 272.461 Td +/F128_0 9.963 Tf +(\),) 5.80843 Tj +-250 TJm +(ho) 9.963 Tj +25 TJm +(we) 11.6169 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +40 TJm +(,) 2.49075 Tj +-250 TJm +(it) 5.53943 Tj +-250 TJm +(will) 15.5024 Tj +-250 TJm +(pass) 17.1563 Tj +-250 TJm +(such) 18.2622 Tj +-249 TJm +(\002les) 16.6083 Tj +-250 TJm +(through) 30.9949 Tj +-250 TJm +(unmodi\002ed.) 47.8822 Tj +-310 TJm +(This) 17.7142 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(GNU) 21.5799 Tj +[1 0 0 1 412.585 272.461] cm +0 g +0 G +[1 0 0 1 -412.585 -272.461] cm +[1 0 0 1 0 0] Tm +0 0 Td +412.585 272.461 Td +/F130_0 9.963 Tf +(gzip) 23.9112 Tj +[1 0 0 1 436.496 272.461] cm +0 g +0 G +[1 0 0 1 -436.496 -272.461] cm +[1 0 0 1 0 0] Tm +0 0 Td +438.986 272.461 Td +/F128_0 9.963 Tf +(beha) 18.8101 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(es.) 10.7899 Tj +[1 0 0 1 72 270.304] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.866] cm +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -256.594] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 246.795 Td +/F130_0 9.963 Tf +(-k) 11.9556 Tj +-600 TJm +(--keep) 35.8668 Tj +[1 0 0 1 125.798 246.795] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -56.289 -1.564] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -245.231] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 234.84 Td +/F128_0 9.963 Tf +(K) 7.19329 Tj +25 TJm +(eep) 13.8286 Tj +-250 TJm +(\(don') 21.5799 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(delete\)) 27.1093 Tj +-250 TJm +(input) 20.4839 Tj +-250 TJm +(\002le) 12.7327 Tj +1 TJm +(s) 3.87561 Tj +-250 TJm +(during) 26.0134 Tj +-250 TJm +(compression) 50.363 Tj +-250 TJm +(or) 8.29918 Tj +-250 TJm +(decompression.) 62.2588 Tj +[1 0 0 1 72 232.683] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.866] cm +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -218.973] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 209.175 Td +/F130_0 9.963 Tf +(-s) 11.9556 Tj +-600 TJm +(--small) 41.8446 Tj +[1 0 0 1 131.776 209.175] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -62.266 -0.21] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -208.965] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 197.219 Td +/F128_0 9.963 Tf +(Reduce) 29.879 Tj +-347 TJm +(memory) 33.2067 Tj +-346 TJm +(usage,) 25.1765 Tj +-371 TJm +(for) 11.6169 Tj +-347 TJm +(compression,) 52.8537 Tj +-371 TJm +(decompression) 59.768 Tj +-346 TJm +(and) 14.3866 Tj +-347 TJm +(testing.) 29.0621 Tj +-1201 TJm +(Files) 19.378 Tj +-347 TJm +(are) 12.1648 Tj +-346 TJm +(decompressed) 56.4404 Tj +-347 TJm +(and) 14.3866 Tj +-347 TJm +(tested) 23.2437 Tj +108 185.264 Td +(using) 21.5898 Tj +-388 TJm +(a) 4.42357 Tj +-388 TJm +(modi\002ed) 35.4284 Tj +-388 TJm +(algorithm) 38.7461 Tj +-388 TJm +(which) 24.3496 Tj +-388 TJm +(only) 17.7142 Tj +-388 TJm +(requires) 32.0908 Tj +-388 TJm +(2.5) 12.4538 Tj +-388 TJm +(bytes) 21.0319 Tj +-388 TJm +(per) 12.7228 Tj +-388 TJm +(block) 22.1378 Tj +-388 TJm +(byte.) 19.647 Tj +-1449 TJm +(This) 17.7142 Tj +-388 TJm +(means) 25.4555 Tj +-388 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-388 TJm +(\002le) 12.7327 Tj +-388 TJm +(can) 13.8286 Tj +-389 TJm +(be) 9.40507 Tj +108 173.309 Td +(decompressed) 56.4404 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(2300k) 24.9075 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(mem) 19.926 Tj +1 TJm +(ory) 13.2807 Tj +65 TJm +(,) 2.49075 Tj +-250 TJm +(albeit) 22.1378 Tj +-250 TJm +(at) 7.19329 Tj +-250 TJm +(about) 22.1378 Tj +-250 TJm +(half) 15.4925 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(normal) 28.2252 Tj +-250 TJm +(speed.) 25.1765 Tj +[1 0 0 1 72 171.152] cm +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +[1 0 0 1 -72 -161.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 151.51 Td +/F128_0 9.963 Tf +(During) 28.2252 Tj +-251 TJm +(compression,) 52.8537 Tj +[1 0 0 1 194.09 151.51] cm +0 g +0 G +[1 0 0 1 -194.09 -151.51] cm +[1 0 0 1 0 0] Tm +0 0 Td +194.09 151.51 Td +/F130_0 9.963 Tf +(-s) 11.9556 Tj +[1 0 0 1 206.046 151.51] cm +0 g +0 G +[1 0 0 1 -206.046 -151.51] cm +[1 0 0 1 0 0] Tm +0 0 Td +208.551 151.51 Td +/F128_0 9.963 Tf +(selects) 26.5614 Tj +-251 TJm +(a) 4.42357 Tj +-252 TJm +(block) 22.1378 Tj +-251 TJm +(size) 15.4925 Tj +-252 TJm +(of) 8.29918 Tj +-251 TJm +(200k,) 22.4168 Tj +-252 TJm +(which) 24.3496 Tj +-251 TJm +(limits) 22.7057 Tj +-252 TJm +(memory) 33.2067 Tj +-251 TJm +(use) 13.2807 Tj +-252 TJm +(to) 7.75121 Tj +-251 TJm +(around) 27.6673 Tj +-251 TJm +(the) 12.1748 Tj +-252 TJm +(same) 20.474 Tj +-251 TJm +(\002gure,) 25.7344 Tj +-252 TJm +(at) 7.19329 Tj +108 139.555 Td +(the) 12.1748 Tj +-287 TJm +(e) 4.42357 Tj +15 TJm +(xpense) 27.6673 Tj +-287 TJm +(of) 8.29918 Tj +-287 TJm +(your) 18.2622 Tj +-287 TJm +(compression) 50.363 Tj +-287 TJm +(ratio.) 20.7529 Tj +-843 TJm +(In) 8.29918 Tj +-287 TJm +(short,) 22.4168 Tj +-297 TJm +(if) 6.08739 Tj +-287 TJm +(your) 18.2622 Tj +-287 TJm +(machine) 33.7546 Tj +-287 TJm +(is) 6.64532 Tj +-287 TJm +(lo) 7.75121 Tj +25 TJm +(w) 7.19329 Tj +-287 TJm +(on) 9.963 Tj +-287 TJm +(memory) 33.2067 Tj +-287 TJm +(\(8) 8.29918 Tj +-288 TJm +(m) 7.75121 Tj +1 TJm +(e) 4.42357 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(abytes) 25.4555 Tj +-288 TJm +(or) 8.29918 Tj +-287 TJm +(less\),) 20.7529 Tj +108 127.599 Td +(use) 13.2807 Tj +[1 0 0 1 123.771 127.599] cm +0 g +0 G +[1 0 0 1 -123.771 -127.599] cm +[1 0 0 1 0 0] Tm +0 0 Td +123.771 127.599 Td +/F130_0 9.963 Tf +(-s) 11.9556 Tj +[1 0 0 1 135.726 127.599] cm +0 g +0 G +[1 0 0 1 -135.726 -127.599] cm +[1 0 0 1 0 0] Tm +0 0 Td +138.217 127.599 Td +/F128_0 9.963 Tf +(for) 11.6169 Tj +-250 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(erything.) 35.6974 Tj +-620 TJm +(See) 14.3866 Tj +[1 0 0 1 220.079 127.599] cm +0 0 1 rg +0 0 1 RG +[1 0 0 1 -220.079 -127.599] cm +[1 0 0 1 0 0] Tm +0 0 Td +220.079 127.599 Td +/F128_0 9.963 Tf +(MEMOR) 37.6402 Tj +65 TJm +(Y) 7.19329 Tj +-250 TJm +(MAN) 23.2437 Tj +35 TJm +(A) 7.19329 Tj +40 TJm +(GEMENT) 41.5059 Tj +[1 0 0 1 337.946 127.599] cm +0 g +0 G +0 0 1 rg +0 0 1 RG +0 0 1 rg +0 0 1 RG +[1 0 0 1 -337.946 -127.599] cm +[1 0 0 1 0 0] Tm +0 0 Td +340.437 127.599 Td +/F128_0 9.963 Tf +([5]) 11.6169 Tj +[1 0 0 1 352.053 127.599] cm +0 0 1 rg +0 0 1 RG +0 g +0 G +[1 0 0 1 -352.053 -127.599] cm +[1 0 0 1 0 0] Tm +0 0 Td +354.544 127.599 Td +/F128_0 9.963 Tf +(belo) 17.1563 Tj +25 TJm +(w) 7.19329 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 125.443] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.867] cm +0 g +0 G +[1 0 0 1 0 -9.844] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -111.732] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 101.934 Td +/F130_0 9.963 Tf +(-q) 11.9556 Tj +-600 TJm +(--quiet) 41.8446 Tj +[1 0 0 1 131.776 101.934] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -62.266 -1.564] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -100.37] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 89.979 Td +/F128_0 9.963 Tf +(Suppress) 35.9764 Tj +-221 TJm +(non-) 18.2622 Tj +1 TJm +(essential) 34.3126 Tj +-221 TJm +(w) 7.19329 Tj +10 TJm +(arning) 25.4555 Tj +-221 TJm +(mess) 19.926 Tj +1 TJm +(ages.) 20.195 Tj +-301 TJm +(Messa) 25.4555 Tj +1 TJm +(ges) 13.2807 Tj +-221 TJm +(pertaining) 40.4 Tj +-221 TJm +(to) 7.75121 Tj +-220 TJm +(I/O) 13.2807 Tj +-221 TJm +(errors) 23.2337 Tj +-221 TJm +(and) 14.3866 Tj +-220 TJm +(other) 20.474 Tj +-221 TJm +(critical) 27.6673 Tj +-220 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ents) 16.0504 Tj +-221 TJm +(will) 15.5024 Tj +-221 TJm +(not) 12.7327 Tj +108 78.023 Td +(be) 9.40507 Tj +-250 TJm +(suppressed.) 46.2084 Tj +[1 0 0 1 72 75.867] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.867] cm +0 g +0 G +[1 0 0 1 0 -21.148] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.754] cm +0 g +0 G +0 g +0 G +[1 0 0 1 43.063 -6.754] cm +0 g +0 G +[1 0 0 1 -496.332 -50.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +539.395 50.852 Td +/F128_0 9.963 Tf +(4) 4.9815 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 8 8 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 105.519 -6.755] cm +0 g +0 G +[1 0 0 1 -371.59 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +477.109 749.245 Td +/F128_0 9.963 Tf +(Ho) 12.1748 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(bzip2) 22.1378 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F130_0 9.963 Tf +(-v) 11.9556 Tj +-600 TJm +(--verbose) 53.8002 Tj +[1 0 0 1 143.731 710.037] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -74.222 -0.209] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -709.828] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 698.082 Td +/F128_0 9.963 Tf +(V) 7.19329 Tj +111 TJm +(erbose) 26.0034 Tj +-322 TJm +(mode) 22.1378 Tj +-323 TJm +(--) 6.63536 Tj +-323 TJm +(sho) 13.8386 Tj +25 TJm +(w) 7.19329 Tj +-322 TJm +(the) 12.1748 Tj +-323 TJm +(compres) 33.7546 Tj +1 TJm +(sion) 16.6083 Tj +-323 TJm +(ratio) 18.2622 Tj +-323 TJm +(for) 11.6169 Tj +-322 TJm +(each) 18.2522 Tj +-323 TJm +(\002le) 12.7327 Tj +-322 TJm +(processed.) 41.7749 Tj +-1056 TJm +(Further) 29.3311 Tj +[1 0 0 1 430.015 698.082] cm +0 g +0 G +[1 0 0 1 -430.015 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +430.015 698.082 Td +/F130_0 9.963 Tf +(-v) 11.9556 Tj +[1 0 0 1 441.97 698.082] cm +0 g +0 G +[1 0 0 1 -441.97 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +441.97 698.082 Td +/F128_0 9.963 Tf +(') 3.31768 Tj +55 TJm +(s) 3.87561 Tj +-323 TJm +(incre) 19.916 Tj +1 TJm +(ase) 12.7228 Tj +-323 TJm +(the) 12.1748 Tj +-323 TJm +(v) 4.9815 Tj +15 TJm +(erbos) 21.5799 Tj +1 TJm +(ity) 10.5209 Tj +108 686.127 Td +(le) 7.19329 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el,) 9.68404 Tj +-250 TJm +(spe) 13.2807 Tj +25 TJm +(wing) 19.926 Tj +-250 TJm +(out) 12.7327 Tj +-250 TJm +(lots) 14.3965 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(info) 16.0504 Tj +1 TJm +(rmation) 30.9949 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(primarily) 37.0823 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(interest) 29.3311 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(diagnostic) 40.9579 Tj +-250 TJm +(pu) 9.963 Tj +1 TJm +(rposes.) 27.9462 Tj +[1 0 0 1 72 683.97] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -670.023] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 660.224 Td +/F130_0 9.963 Tf +(-L) 11.9556 Tj +-600 TJm +(--license) 53.8002 Tj +-600 TJm +(-V) 11.9556 Tj +-600 TJm +(--version) 53.8002 Tj +[1 0 0 1 221.44 660.224] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -151.93 -0.209] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -660.015] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 648.269 Td +/F128_0 9.963 Tf +(Display) 30.9949 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(softw) 22.1378 Tj +10 TJm +(are) 12.1648 Tj +-250 TJm +(v) 4.9815 Tj +15 TJm +(ersion) 24.3496 Tj +1 TJm +(,) 2.49075 Tj +-250 TJm +(license) 27.6673 Tj +-250 TJm +(terms) 22.1378 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(conditions.) 44.0066 Tj +[1 0 0 1 72 646.112] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -632.165] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 622.366 Td +/F130_0 9.963 Tf +(-1) 11.9556 Tj +[1 0 0 1 83.955 622.366] cm +0 g +0 G +[1 0 0 1 -83.955 -622.366] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.446 622.366 Td +/F128_0 9.963 Tf +(\(or) 11.6169 Tj +[1 0 0 1 100.553 622.366] cm +0 g +0 G +[1 0 0 1 -100.553 -622.366] cm +[1 0 0 1 0 0] Tm +0 0 Td +100.553 622.366 Td +/F130_0 9.963 Tf +(--fast) 35.8668 Tj +[1 0 0 1 136.418 622.366] cm +0 g +0 G +[1 0 0 1 -136.418 -622.366] cm +[1 0 0 1 0 0] Tm +0 0 Td +136.418 622.366 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 152.468 622.366] cm +0 g +0 G +[1 0 0 1 -152.468 -622.366] cm +[1 0 0 1 0 0] Tm +0 0 Td +152.468 622.366 Td +/F130_0 9.963 Tf +(-9) 11.9556 Tj +[1 0 0 1 164.423 622.366] cm +0 g +0 G +[1 0 0 1 -164.423 -622.366] cm +[1 0 0 1 0 0] Tm +0 0 Td +166.914 622.366 Td +/F128_0 9.963 Tf +(\(or) 11.6169 Tj +[1 0 0 1 181.021 622.366] cm +0 g +0 G +[1 0 0 1 -181.021 -622.366] cm +[1 0 0 1 0 0] Tm +0 0 Td +181.021 622.366 Td +/F130_0 9.963 Tf +(-best) 29.889 Tj +[1 0 0 1 210.909 622.366] cm +0 g +0 G +[1 0 0 1 -210.909 -622.366] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.909 622.366 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +[1 0 0 1 214.226 622.366] cm +0 g +0 G +[1 0 0 1 -142.226 -1.783] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -620.583] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 610.411 Td +/F128_0 9.963 Tf +(Set) 12.7327 Tj +-288 TJm +(the) 12.1748 Tj +-288 TJm +(block) 22.1378 Tj +-289 TJm +(size) 15.4925 Tj +-288 TJm +(to) 7.75121 Tj +-288 TJm +(100) 14.9445 Tj +-288 TJm +(k,) 7.47225 Tj +-298 TJm +(200) 14.9445 Tj +-288 TJm +(k) 4.9815 Tj +-289 TJm +(...) 7.47225 Tj +-849 TJm +(900) 14.9445 Tj +-288 TJm +(k) 4.9815 Tj +-289 TJm +(when) 21.5799 Tj +-288 TJm +(compressing.) 52.8537 Tj +-849 TJm +(Has) 15.4925 Tj +-289 TJm +(no) 9.963 Tj +-288 TJm +(ef) 7.74125 Tj +25 TJm +(fect) 14.9345 Tj +-288 TJm +(when) 21.5799 Tj +-288 TJm +(decompressing.) 62.2588 Tj +-850 TJm +(See) 14.3866 Tj +[1 0 0 1 108 598.456] cm +0 0 1 rg +0 0 1 RG +[1 0 0 1 -108 -598.456] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 598.456 Td +/F128_0 9.963 Tf +(MEMOR) 37.6402 Tj +65 TJm +(Y) 7.19329 Tj +-297 TJm +(MAN) 23.2437 Tj +35 TJm +(A) 7.19329 Tj +40 TJm +(GEMENT) 41.5059 Tj +[1 0 0 1 226.338 598.456] cm +0 g +0 G +0 0 1 rg +0 0 1 RG +0 0 1 rg +0 0 1 RG +[1 0 0 1 -226.338 -598.456] cm +[1 0 0 1 0 0] Tm +0 0 Td +229.3 598.456 Td +/F128_0 9.963 Tf +([5]) 11.6169 Tj +[1 0 0 1 240.916 598.456] cm +0 0 1 rg +0 0 1 RG +0 g +0 G +[1 0 0 1 -240.916 -598.456] cm +[1 0 0 1 0 0] Tm +0 0 Td +243.878 598.456 Td +/F128_0 9.963 Tf +(belo) 17.1563 Tj +25 TJm +(w) 7.19329 Tj +65 TJm +(.) 2.49075 Tj +-904 TJm +(The) 15.4925 Tj +[1 0 0 1 297.278 598.456] cm +0 g +0 G +[1 0 0 1 -297.278 -598.456] cm +[1 0 0 1 0 0] Tm +0 0 Td +297.278 598.456 Td +/F130_0 9.963 Tf +(--fast) 35.8668 Tj +[1 0 0 1 333.144 598.456] cm +0 g +0 G +[1 0 0 1 -333.144 -598.456] cm +[1 0 0 1 0 0] Tm +0 0 Td +336.106 598.456 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 353.454 598.456] cm +0 g +0 G +[1 0 0 1 -353.454 -598.456] cm +[1 0 0 1 0 0] Tm +0 0 Td +353.454 598.456 Td +/F130_0 9.963 Tf +(--best) 35.8668 Tj +[1 0 0 1 389.319 598.456] cm +0 g +0 G +[1 0 0 1 -389.319 -598.456] cm +[1 0 0 1 0 0] Tm +0 0 Td +392.281 598.456 Td +/F128_0 9.963 Tf +(aliases) 26.5614 Tj +-297 TJm +(are) 12.1648 Tj +-297 TJm +(primarily) 37.0823 Tj +-297 TJm +(for) 11.6169 Tj +-298 TJm +(GNU) 21.5799 Tj +[1 0 0 1 516.09 598.456] cm +0 g +0 G +[1 0 0 1 -516.09 -598.456] cm +[1 0 0 1 0 0] Tm +0 0 Td +516.09 598.456 Td +/F130_0 9.963 Tf +(gzip) 23.9112 Tj +[1 0 0 1 540 598.456] cm +0 g +0 G +[1 0 0 1 -540 -598.456] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 586.501 Td +/F128_0 9.963 Tf +(compatibility) 53.1426 Tj +65 TJm +(.) 2.49075 Tj +-356 TJm +(In) 8.29918 Tj +-265 TJm +(particular) 38.1782 Tj +40 TJm +(,) 2.49075 Tj +[1 0 0 1 220.423 586.501] cm +0 g +0 G +[1 0 0 1 -220.423 -586.501] cm +[1 0 0 1 0 0] Tm +0 0 Td +220.423 586.501 Td +/F130_0 9.963 Tf +(--fast) 35.8668 Tj +[1 0 0 1 256.288 586.501] cm +0 g +0 G +[1 0 0 1 -256.288 -586.501] cm +[1 0 0 1 0 0] Tm +0 0 Td +258.932 586.501 Td +/F128_0 9.963 Tf +(doesn') 26.5614 Tj +18 TJm +(t) 2.76971 Tj +-265 TJm +(mak) 17.1563 Tj +10 TJm +(e) 4.42357 Tj +-265 TJm +(things) 24.3595 Tj +-266 TJm +(signi\002can) 38.7461 Tj +1 TJm +(tly) 10.5209 Tj +-266 TJm +(f) 3.31768 Tj +10 TJm +(aster) 18.8101 Tj +55 TJm +(.) 2.49075 Tj +-712 TJm +(And) 17.1563 Tj +[1 0 0 1 444.622 586.501] cm +0 g +0 G +[1 0 0 1 -444.622 -586.501] cm +[1 0 0 1 0 0] Tm +0 0 Td +444.622 586.501 Td +/F130_0 9.963 Tf +(--best) 35.8668 Tj +[1 0 0 1 480.487 586.501] cm +0 g +0 G +[1 0 0 1 -480.487 -586.501] cm +[1 0 0 1 0 0] Tm +0 0 Td +483.131 586.501 Td +/F128_0 9.963 Tf +(merely) 27.6673 Tj +-265 TJm +(selects) 26.5614 Tj +108 574.546 Td +(the) 12.1748 Tj +-250 TJm +(def) 12.7228 Tj +10 TJm +(ault) 14.9445 Tj +-250 TJm +(beha) 18.8101 Tj +20 TJm +(viour) 21.0319 Tj +55 TJm +(.) 2.49075 Tj +[1 0 0 1 72 574.446] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -560.498] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 548.643 Td +/F130_0 9.963 Tf +(--) 11.9556 Tj +[1 0 0 1 83.955 548.643] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -14.446 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -548.643] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 536.688 Td +/F128_0 9.963 Tf +(T) 6.08739 Tj +35 TJm +(reats) 18.8101 Tj +-261 TJm +(all) 9.963 Tj +-260 TJm +(subsequent) 44.2756 Tj +-261 TJm +(ar) 7.74125 Tj +18 TJm +(guments) 33.7646 Tj +-261 TJm +(as) 8.29918 Tj +-260 TJm +(\002le) 12.7327 Tj +-261 TJm +(names,) 27.9462 Tj +-263 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-261 TJm +(if) 6.08739 Tj +-261 TJm +(the) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-261 TJm +(sta) 11.0689 Tj +1 TJm +(rt) 6.08739 Tj +-261 TJm +(with) 17.7142 Tj +-261 TJm +(a) 4.42357 Tj +-261 TJm +(dash.) 20.7529 Tj +-684 TJm +(This) 17.7142 Tj +-261 TJm +(is) 6.64532 Tj +-261 TJm +(so) 8.85711 Tj +-261 TJm +(yo) 9.963 Tj +1 TJm +(u) 4.9815 Tj +-261 TJm +(can) 13.8286 Tj +-261 TJm +(handle) 26.5614 Tj +-261 TJm +(\002les) 16.6083 Tj +108 524.732 Td +(with) 17.7142 Tj +-250 TJm +(names) 25.4555 Tj +-250 TJm +(be) 9.40507 Tj +15 TJm +(ginning) 30.4469 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(a) 4.42357 Tj +-249 TJm +(dash,) 20.7529 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(e) 4.42357 Tj +15 TJm +(xample:) 32.1008 Tj +[1 0 0 1 302.27 524.732] cm +0 g +0 G +[1 0 0 1 -302.27 -524.732] cm +[1 0 0 1 0 0] Tm +0 0 Td +302.27 524.732 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +-600 TJm +(--) 11.9556 Tj +-600 TJm +(-myfilename) 65.7558 Tj +[1 0 0 1 421.821 524.732] cm +0 g +0 G +[1 0 0 1 -421.821 -524.732] cm +[1 0 0 1 0 0] Tm +0 0 Td +421.821 524.732 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 522.576] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -508.628] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 498.83 Td +/F130_0 9.963 Tf +(--repetitive-fast) 101.623 Tj +[1 0 0 1 173.619 498.83] cm +0 g +0 G +[1 0 0 1 -173.619 -498.83] cm +[1 0 0 1 0 0] Tm +0 0 Td +173.619 498.83 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 178.6 498.83] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -181.091 -498.83] cm +[1 0 0 1 0 0] Tm +0 0 Td +181.091 498.83 Td +/F130_0 9.963 Tf +(--repetitive-best) 101.623 Tj +[1 0 0 1 282.71 498.83] cm +0 g +0 G +[1 0 0 1 -282.71 -498.83] cm +[1 0 0 1 0 0] Tm +0 0 Td +282.71 498.83 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 287.691 498.83] cm +0 g +0 G +[1 0 0 1 -215.691 -1.564] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -497.266] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 486.874 Td +/F128_0 9.963 Tf +(These) 23.7916 Tj +-207 TJm +(\003ags) 18.8201 Tj +-206 TJm +(are) 12.1648 Tj +-207 TJm +(redundant) 39.842 Tj +-206 TJm +(in) 7.75121 Tj +-207 TJm +(v) 4.9815 Tj +15 TJm +(ersions) 28.2252 Tj +-206 TJm +(0.9.5) 19.926 Tj +-207 TJm +(and) 14.3866 Tj +-207 TJm +(abo) 14.3866 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e.) 6.91432 Tj +-591 TJm +(The) 15.4925 Tj +15 TJm +(y) 4.9815 Tj +-206 TJm +(pro) 13.2807 Tj +15 TJm +(vided) 22.1378 Tj +-207 TJm +(some) 21.0319 Tj +-206 TJm +(coarse) 25.4455 Tj +-207 TJm +(control) 28.2252 Tj +-206 TJm +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-207 TJm +(the) 12.1748 Tj +-207 TJm +(beha) 18.8101 Tj +20 TJm +(viour) 21.0319 Tj +108 474.919 Td +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-251 TJm +(sorti) 17.7142 Tj +1 TJm +(ng) 9.963 Tj +-251 TJm +(algorithm) 38.7461 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(earlier) 25.4455 Tj +-250 TJm +(v) 4.9815 Tj +15 TJm +(ersions,) 30.7159 Tj +-251 TJm +(which) 24.3496 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-250 TJm +(sometimes) 42.6217 Tj +-250 TJm +(useful.) 26.8403 Tj +-622 TJm +(0.9.5) 19.926 Tj +-251 TJm +(and) 14.3866 Tj +-250 TJm +(abo) 14.3866 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(an) 9.40507 Tj +-251 TJm +(impro) 23.8016 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(ed) 9.40507 Tj +108 462.964 Td +(algorithm) 38.7461 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(renders) 29.3211 Tj +-250 TJm +(thes) 16.0504 Tj +1 TJm +(e) 4.42357 Tj +-250 TJm +(\003ags) 18.8201 Tj +-250 TJm +(irrele) 21.0219 Tj +25 TJm +(v) 4.9815 Tj +25 TJm +(ant.) 14.6655 Tj +[1 0 0 1 72 460.807] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -436.897] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 414.264 Td +/F121_0 20.659 Tf +(2.5.) 34.4592 Tj +-278 TJm +(MEMOR) 79.1859 Tj +50 TJm +(Y) 13.7796 Tj +-278 TJm +(MANA) 61.9563 Tj +50 TJm +(GEMENT) 88.3792 Tj +[1 0 0 1 72 414.006] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -404.043] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 392.346 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 392.346] cm +0 g +0 G +[1 0 0 1 -101.888 -392.346] cm +[1 0 0 1 0 0] Tm +0 0 Td +104.454 392.346 Td +/F128_0 9.963 Tf +(compresses) 45.9294 Tj +-257 TJm +(lar) 10.511 Tj +18 TJm +(ge) 9.40507 Tj +-258 TJm +(\002les) 16.6083 Tj +-257 TJm +(in) 7.75121 Tj +-258 TJm +(blocks.) 28.5041 Tj +-665 TJm +(The) 15.4925 Tj +-258 TJm +(block) 22.1378 Tj +-257 TJm +(size) 15.4925 Tj +-258 TJm +(af) 7.74125 Tj +25 TJm +(fects) 18.8101 Tj +-257 TJm +(both) 17.7142 Tj +-258 TJm +(the) 12.1748 Tj +-257 TJm +(compression) 50.363 Tj +-258 TJm +(ratio) 18.2622 Tj +-257 TJm +(achie) 21.0219 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ed,) 11.8958 Tj +-260 TJm +(an) 9.40507 Tj +1 TJm +(d) 4.9815 Tj +-258 TJm +(the) 12.1748 Tj +-258 TJm +(amoun) 27.1193 Tj +1 TJm +(t) 2.76971 Tj +72 380.391 Td +(of) 8.29918 Tj +-215 TJm +(memory) 33.2067 Tj +-215 TJm +(needed) 28.2152 Tj +-214 TJm +(for) 11.6169 Tj +-215 TJm +(compression) 50.363 Tj +-215 TJm +(and) 14.3866 Tj +-215 TJm +(decompressi) 49.805 Tj +1 TJm +(on.) 12.4538 Tj +-597 TJm +(The) 15.4925 Tj +-215 TJm +(\003ags) 18.8201 Tj +[1 0 0 1 337.719 380.391] cm +0 g +0 G +[1 0 0 1 -337.719 -380.391] cm +[1 0 0 1 0 0] Tm +0 0 Td +337.719 380.391 Td +/F130_0 9.963 Tf +(-1) 11.9556 Tj +[1 0 0 1 349.674 380.391] cm +0 g +0 G +[1 0 0 1 -349.674 -380.391] cm +[1 0 0 1 0 0] Tm +0 0 Td +351.815 380.391 Td +/F128_0 9.963 Tf +(through) 30.9949 Tj +[1 0 0 1 384.95 380.391] cm +0 g +0 G +[1 0 0 1 -384.95 -380.391] cm +[1 0 0 1 0 0] Tm +0 0 Td +384.95 380.391 Td +/F130_0 9.963 Tf +(-9) 11.9556 Tj +[1 0 0 1 396.905 380.391] cm +0 g +0 G +[1 0 0 1 -396.905 -380.391] cm +[1 0 0 1 0 0] Tm +0 0 Td +399.046 380.391 Td +/F128_0 9.963 Tf +(specify) 28.7731 Tj +-215 TJm +(the) 12.1748 Tj +-215 TJm +(block) 22.1378 Tj +-214 TJm +(size) 15.4925 Tj +-215 TJm +(to) 7.75121 Tj +-215 TJm +(be) 9.40507 Tj +-215 TJm +(100,000) 32.3798 Tj +72 368.435 Td +(bytes) 21.0319 Tj +-278 TJm +(throug) 26.0134 Tj +1 TJm +(h) 4.9815 Tj +-278 TJm +(900,000) 32.3798 Tj +-278 TJm +(bytes) 21.0319 Tj +-277 TJm +(\(the) 15.4925 Tj +-278 TJm +(def) 12.7228 Tj +10 TJm +(ault\)) 18.2622 Tj +-278 TJm +(r) 3.31768 Tj +1 TJm +(especti) 27.6673 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ely) 12.1748 Tj +65 TJm +(.) 2.49075 Tj +-786 TJm +(At) 9.963 Tj +-278 TJm +(decompression) 59.768 Tj +-278 TJm +(tim) 13.2906 Tj +1 TJm +(e,) 6.91432 Tj +-285 TJm +(the) 12.1748 Tj +-278 TJm +(block) 22.1378 Tj +-277 TJm +(size) 15.4925 Tj +-278 TJm +(used) 18.2622 Tj +-278 TJm +(f) 3.31768 Tj +1 TJm +(or) 8.29918 Tj +-278 TJm +(compression) 50.363 Tj +72 356.48 Td +(is) 6.64532 Tj +-242 TJm +(read) 17.1463 Tj +-243 TJm +(from) 19.3681 Tj +-242 TJm +(the) 12.1748 Tj +-243 TJm +(header) 26.5514 Tj +-242 TJm +(of) 8.29918 Tj +-243 TJm +(the) 12.1748 Tj +-242 TJm +(compressed) 47.0353 Tj +-242 TJm +(\002le,) 15.2235 Tj +-244 TJm +(and) 14.3866 Tj +[1 0 0 1 275.174 356.48] cm +0 g +0 G +[1 0 0 1 -275.174 -356.48] cm +[1 0 0 1 0 0] Tm +0 0 Td +275.174 356.48 Td +/F130_0 9.963 Tf +(bunzip2) 41.8446 Tj +[1 0 0 1 317.017 356.48] cm +0 g +0 G +[1 0 0 1 -317.017 -356.48] cm +[1 0 0 1 0 0] Tm +0 0 Td +319.433 356.48 Td +/F128_0 9.963 Tf +(then) 17.1563 Tj +-242 TJm +(allocates) 34.8605 Tj +-243 TJm +(itself) 19.926 Tj +-242 TJm +(just) 14.3965 Tj +-243 TJm +(enough) 29.3311 Tj +-242 TJm +(memory) 33.2067 Tj +-242 TJm +(to) 7.75121 Tj +-243 TJm +(decompress) 47.0353 Tj +72 344.525 Td +(the) 12.1748 Tj +-303 TJm +(\002le.) 15.2235 Tj +-940 TJm +(Since) 22.1378 Tj +-303 TJm +(block) 22.1378 Tj +-303 TJm +(sizes) 19.3681 Tj +-304 TJm +(are) 12.1648 Tj +-303 TJm +(stored) 24.3496 Tj +-303 TJm +(in) 7.75121 Tj +-303 TJm +(compressed) 47.0353 Tj +-304 TJm +(\002) 5.53943 Tj +1 TJm +(les,) 13.5596 Tj +-317 TJm +(it) 5.53943 Tj +-303 TJm +(follo) 18.8201 Tj +25 TJm +(ws) 11.0689 Tj +-304 TJm +(t) 2.76971 Tj +1 TJm +(hat) 12.1748 Tj +-304 TJm +(the) 12.1748 Tj +-303 TJm +(\003ags) 18.8201 Tj +[1 0 0 1 406.35 344.525] cm +0 g +0 G +[1 0 0 1 -406.35 -344.525] cm +[1 0 0 1 0 0] Tm +0 0 Td +406.35 344.525 Td +/F130_0 9.963 Tf +(-1) 11.9556 Tj +[1 0 0 1 418.305 344.525] cm +0 g +0 G +[1 0 0 1 -418.305 -344.525] cm +[1 0 0 1 0 0] Tm +0 0 Td +421.327 344.525 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +[1 0 0 1 432.1 344.525] cm +0 g +0 G +[1 0 0 1 -432.1 -344.525] cm +[1 0 0 1 0 0] Tm +0 0 Td +432.1 344.525 Td +/F130_0 9.963 Tf +(-9) 11.9556 Tj +[1 0 0 1 444.055 344.525] cm +0 g +0 G +[1 0 0 1 -444.055 -344.525] cm +[1 0 0 1 0 0] Tm +0 0 Td +447.077 344.525 Td +/F128_0 9.963 Tf +(are) 12.1648 Tj +-303 TJm +(irrele) 21.0219 Tj +25 TJm +(v) 4.9815 Tj +25 TJm +(ant) 12.1748 Tj +-303 TJm +(to) 7.75121 Tj +-304 TJm +(and) 14.3866 Tj +-303 TJm +(so) 8.85711 Tj +72 332.57 Td +(ignored) 30.437 Tj +-250 TJm +(during) 26.0134 Tj +-250 TJm +(decompression) 59.768 Tj +1 TJm +(.) 2.49075 Tj +[1 0 0 1 72 330.413] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -320.451] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 310.652 Td +/F128_0 9.963 Tf +(Compression) 52.5847 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(decompress) 47.0353 Tj +1 TJm +(ion) 12.7327 Tj +-250 TJm +(requirements,) 54.5076 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(bytes,) 23.5226 Tj +-250 TJm +(can) 13.8286 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(estimated) 38.1882 Tj +-250 TJm +(as:) 11.0689 Tj +[1 0 0 1 72 308.495] cm +0 g +0 G +[1 0 0 1 0 -60.772] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 59.776 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 56.189] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -299.13] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 299.13 Td +/F130_0 9.963 Tf +(Compression:) 71.7336 Tj +-1278 TJm +(400k) 23.9112 Tj +-426 TJm +(+) 5.9778 Tj +-426 TJm +(\() 5.9778 Tj +-425 TJm +(8) 5.9778 Tj +-426 TJm +(x) 5.9778 Tj +-426 TJm +(block) 29.889 Tj +-426 TJm +(size) 23.9112 Tj +-426 TJm +(\)) 5.9778 Tj +90 275.22 Td +(Decompression:) 83.6892 Tj +-426 TJm +(100k) 23.9112 Tj +-426 TJm +(+) 5.9778 Tj +-426 TJm +(\() 5.9778 Tj +-425 TJm +(4) 5.9778 Tj +-426 TJm +(x) 5.9778 Tj +-426 TJm +(block) 29.889 Tj +-426 TJm +(size) 23.9112 Tj +-426 TJm +(\),) 11.9556 Tj +-426 TJm +(or) 11.9556 Tj +153.66 263.265 Td +(100k) 23.9112 Tj +-426 TJm +(+) 5.9778 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(2.5) 17.9334 Tj +-426 TJm +(x) 5.9778 Tj +-426 TJm +(block) 29.889 Tj +-426 TJm +(s) 5.9778 Tj +1 TJm +(ize) 17.9334 Tj +-426 TJm +(\)) 5.9778 Tj +[1 0 0 1 72 247.723] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -237.761] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 225.805 Td +/F128_0 9.963 Tf +(Lar) 13.8286 Tj +18 TJm +(ger) 12.7228 Tj +-292 TJm +(block) 22.1378 Tj +-291 TJm +(sizes) 19.3681 Tj +-292 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-292 TJm +(rapidly) 28.2252 Tj +-291 TJm +(diminishing) 47.6132 Tj +-292 TJm +(mar) 15.4925 Tj +18 TJm +(ginal) 19.926 Tj +-291 TJm +(returns.) 30.158 Tj +-871 TJm +(Most) 20.4839 Tj +-292 TJm +(of) 8.29918 Tj +-291 TJm +(the) 12.1748 Tj +-292 TJm +(compression) 50.363 Tj +-292 TJm +(com) 17.1563 Tj +1 TJm +(es) 8.29918 Tj +-292 TJm +(from) 19.3681 Tj +-292 TJm +(the) 12.1748 Tj +-292 TJm +(\002rst) 15.5024 Tj +-291 TJm +(tw) 9.963 Tj +10 TJm +(o) 4.9815 Tj +-292 TJm +(or) 8.29918 Tj +72 213.85 Td +(three) 19.916 Tj +-232 TJm +(hundred) 32.6488 Tj +-232 TJm +(k) 4.9815 Tj +-232 TJm +(o) 4.9815 Tj +1 TJm +(f) 3.31768 Tj +-232 TJm +(block) 22.1378 Tj +-232 TJm +(size,) 17.9832 Tj +-236 TJm +(a) 4.42357 Tj +-232 TJm +(f) 3.31768 Tj +10 TJm +(a) 4.42357 Tj +1 TJm +(ct) 7.19329 Tj +-232 TJm +(w) 7.19329 Tj +10 TJm +(orth) 16.0504 Tj +-232 TJm +(bearing) 29.879 Tj +-232 TJm +(in) 7.75121 Tj +-232 TJm +(mind) 20.4839 Tj +-232 TJm +(when) 21.5799 Tj +-231 TJm +(using) 21.5898 Tj +[1 0 0 1 354.025 213.85] cm +0 g +0 G +[1 0 0 1 -354.025 -213.85] cm +[1 0 0 1 0 0] Tm +0 0 Td +354.025 213.85 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 383.913 213.85] cm +0 g +0 G +[1 0 0 1 -383.913 -213.85] cm +[1 0 0 1 0 0] Tm +0 0 Td +386.223 213.85 Td +/F128_0 9.963 Tf +(on) 9.963 Tj +-232 TJm +(small) 21.5898 Tj +-232 TJm +(machines.) 40.121 Tj +-303 TJm +(It) 6.08739 Tj +-232 TJm +(is) 6.64532 Tj +-232 TJm +(also) 16.0504 Tj +-232 TJm +(important) 38.7461 Tj +72 201.895 Td +(to) 7.75121 Tj +-250 TJm +(appreciate) 40.938 Tj +-250 TJm +(that) 14.9445 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(decom) 26.5614 Tj +1 TJm +(pression) 33.2067 Tj +-250 TJm +(memory) 33.2067 Tj +-250 TJm +(requirement) 48.1412 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(set) 11.0689 Tj +-250 TJm +(at) 7.19329 Tj +-250 TJm +(compression) 50.363 Tj +-250 TJm +(ti) 5.53943 Tj +1 TJm +(me) 12.1748 Tj +-250 TJm +(by) 9.963 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(choice) 26.0034 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(block) 22.1378 Tj +-250 TJm +(size.) 17.9832 Tj +[1 0 0 1 72 199.738] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -189.776] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 179.977 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-388 TJm +(\002les) 16.6083 Tj +-389 TJm +(compressed) 47.0353 Tj +-388 TJm +(with) 17.7142 Tj +-388 TJm +(the) 12.1748 Tj +-389 TJm +(def) 12.7228 Tj +10 TJm +(ault) 14.9445 Tj +-388 TJm +(900k) 19.926 Tj +-388 TJm +(block) 22.1378 Tj +-389 TJm +(size,) 17.9832 Tj +[1 0 0 1 302.002 179.977] cm +0 g +0 G +[1 0 0 1 -302.002 -179.977] cm +[1 0 0 1 0 0] Tm +0 0 Td +302.002 179.977 Td +/F130_0 9.963 Tf +(bunzip2) 41.8446 Tj +[1 0 0 1 343.845 179.977] cm +0 g +0 G +[1 0 0 1 -343.845 -179.977] cm +[1 0 0 1 0 0] Tm +0 0 Td +347.716 179.977 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-388 TJm +(require) 28.2152 Tj +-389 TJm +(about) 22.1378 Tj +-388 TJm +(3700) 19.926 Tj +-388 TJm +(kbytes) 26.0134 Tj +-389 TJm +(to) 7.75121 Tj +-388 TJm +(decompress.) 49.5261 Tj +72 168.022 Td +(T) 6.08739 Tj +80 TJm +(o) 4.9815 Tj +-424 TJm +(support) 29.889 Tj +-424 TJm +(decompression) 59.768 Tj +-424 TJm +(of) 8.29918 Tj +-425 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-424 TJm +(\002le) 12.7327 Tj +-424 TJm +(on) 9.963 Tj +-424 TJm +(a) 4.42357 Tj +-425 TJm +(4) 4.9815 Tj +-424 TJm +(me) 12.1748 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(abyte) 21.5799 Tj +-424 TJm +(machine,) 36.2454 Tj +[1 0 0 1 348.272 168.022] cm +0 g +0 G +[1 0 0 1 -348.272 -168.022] cm +[1 0 0 1 0 0] Tm +0 0 Td +348.272 168.022 Td +/F130_0 9.963 Tf +(bunzip2) 41.8446 Tj +[1 0 0 1 390.115 168.022] cm +0 g +0 G +[1 0 0 1 -390.115 -168.022] cm +[1 0 0 1 0 0] Tm +0 0 Td +394.342 168.022 Td +/F128_0 9.963 Tf +(has) 13.2807 Tj +-424 TJm +(an) 9.40507 Tj +-424 TJm +(option) 25.4654 Tj +-425 TJm +(to) 7.75121 Tj +-424 TJm +(decompress) 47.0353 Tj +-424 TJm +(using) 21.5898 Tj +72 156.067 Td +(approximately) 57.5563 Tj +-281 TJm +(ha) 9.40507 Tj +1 TJm +(lf) 6.08739 Tj +-281 TJm +(this) 14.3965 Tj +-281 TJm +(amount) 29.889 Tj +-281 TJm +(of) 8.29918 Tj +-280 TJm +(memory) 33.2067 Tj +65 TJm +(,) 2.49075 Tj +-289 TJm +(about) 22.1378 Tj +-280 TJm +(2300) 19.926 Tj +-281 TJm +(kbytes.) 28.5041 Tj +-805 TJm +(Decom) 28.7731 Tj +1 TJm +(pression) 33.2067 Tj +-281 TJm +(speed) 22.6858 Tj +-281 TJm +(is) 6.64532 Tj +-281 TJm +(a) 4.42357 Tj +1 TJm +(lso) 11.6268 Tj +-281 TJm +(halv) 17.1563 Tj +15 TJm +(ed,) 11.8958 Tj +-289 TJm +(so) 8.85711 Tj +-280 TJm +(you) 14.9445 Tj +-281 TJm +(should) 26.5713 Tj +72 144.112 Td +(use) 13.2807 Tj +-250 TJm +(this) 14.3965 Tj +-250 TJm +(option) 25.4654 Tj +-250 TJm +(only) 17.7142 Tj +-250 TJm +(where) 24.3396 Tj +-250 TJm +(nec) 13.8286 Tj +1 TJm +(essary) 24.8975 Tj +65 TJm +(.) 2.49075 Tj +-620 TJm +(The) 15.4925 Tj +-250 TJm +(rele) 14.9345 Tj +25 TJm +(v) 4.9815 Tj +25 TJm +(ant) 12.1748 Tj +-250 TJm +(\003ag) 14.9445 Tj +-250 TJm +(is) 6.64532 Tj +[1 0 0 1 305.024 144.112] cm +0 g +0 G +[1 0 0 1 -305.024 -144.112] cm +[1 0 0 1 0 0] Tm +0 0 Td +305.024 144.112 Td +/F130_0 9.963 Tf +(-s) 11.9556 Tj +[1 0 0 1 316.979 144.112] cm +0 g +0 G +[1 0 0 1 -316.979 -144.112] cm +[1 0 0 1 0 0] Tm +0 0 Td +316.979 144.112 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 141.955] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -131.992] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 122.194 Td +/F128_0 9.963 Tf +(In) 8.29918 Tj +-204 TJm +(general,) 31.8119 Tj +-214 TJm +(try) 11.0689 Tj +-204 TJm +(and) 14.3866 Tj +-204 TJm +(use) 13.2807 Tj +-205 TJm +(the) 12.1748 Tj +-204 TJm +(lar) 10.511 Tj +18 TJm +(gest) 16.0504 Tj +-204 TJm +(block) 22.1378 Tj +-205 TJm +(size) 15.4925 Tj +-204 TJm +(memory) 33.2067 Tj +-204 TJm +(constraints) 43.1697 Tj +-204 TJm +(allo) 14.9445 Tj +25 TJm +(w) 7.19329 Tj +65 TJm +(,) 2.49075 Tj +-214 TJm +(since) 20.474 Tj +-204 TJm +(that) 14.9445 Tj +-204 TJm +(maximises) 42.6217 Tj +-205 TJm +(the) 12.1748 Tj +-204 TJm +(compression) 50.363 Tj +-204 TJm +(achie) 21.0219 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ed.) 11.8958 Tj +72 110.239 Td +(Compression) 52.5847 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(decompress) 47.0353 Tj +1 TJm +(ion) 12.7327 Tj +-250 TJm +(speed) 22.6858 Tj +-250 TJm +(are) 12.1648 Tj +-250 TJm +(virtually) 33.7646 Tj +-250 TJm +(unaf) 17.7043 Tj +25 TJm +(fected) 24.3396 Tj +-250 TJm +(by) 9.963 Tj +-250 TJm +(block) 22.1378 Tj +-250 TJm +(size.) 17.9832 Tj +[1 0 0 1 72 108.082] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -98.119] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 88.321 Td +/F128_0 9.963 Tf +(Another) 32.6488 Tj +-296 TJm +(signi\002cant) 41.5158 Tj +-295 TJm +(point) 20.4839 Tj +-296 TJm +(applies) 28.2252 Tj +-296 TJm +(to) 7.75121 Tj +-296 TJm +(\002les) 16.6083 Tj +-295 TJm +(which) 24.3496 Tj +-296 TJm +(\002t) 8.30914 Tj +-296 TJm +(in) 7.75121 Tj +-296 TJm +(a) 4.42357 Tj +-296 TJm +(s) 3.87561 Tj +1 TJm +(ingle) 19.926 Tj +-296 TJm +(block) 22.1378 Tj +-296 TJm +(--) 6.63536 Tj +-296 TJm +(that) 14.9445 Tj +-296 TJm +(mea) 16.5984 Tj +1 TJm +(ns) 8.85711 Tj +-296 TJm +(most) 19.378 Tj +-296 TJm +(\002les) 16.6083 Tj +-296 TJm +(you') 18.2622 Tj +50 TJm +(d) 4.9815 Tj +-296 TJm +(enc) 13.8286 Tj +1 TJm +(ounter) 25.4555 Tj +-296 TJm +(using) 21.5898 Tj +-296 TJm +(a) 4.42357 Tj +72 76.366 Td +(lar) 10.511 Tj +18 TJm +(ge) 9.40507 Tj +-290 TJm +(block) 22.1378 Tj +-290 TJm +(size) 15.4925 Tj +1 TJm +(.) 2.49075 Tj +-860 TJm +(The) 15.4925 Tj +-290 TJm +(amou) 22.1378 Tj +1 TJm +(nt) 7.75121 Tj +-290 TJm +(of) 8.29918 Tj +-290 TJm +(real) 14.9345 Tj +-290 TJm +(memory) 33.2067 Tj +-290 TJm +(touched) 31.5429 Tj +-289 TJm +(is) 6.64532 Tj +-290 TJm +(proportional) 49.2571 Tj +-290 TJm +(to) 7.75121 Tj +-290 TJm +(the) 12.1748 Tj +-290 TJm +(size) 15.4925 Tj +-289 TJm +(of) 8.29918 Tj +-290 TJm +(the) 12.1748 Tj +-290 TJm +(\002le,) 15.2235 Tj +-300 TJm +(since) 20.474 Tj +-290 TJm +(the) 12.1748 Tj +-289 TJm +(\002le) 12.7327 Tj +-290 TJm +(is) 6.64532 Tj +-290 TJm +(smaller) 29.3311 Tj +[1 0 0 1 72 50.852] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 43.063 -6.755] cm +0 g +0 G +[1 0 0 1 -496.332 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +539.395 50.951 Td +/F128_0 9.963 Tf +(5) 4.9815 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 9 9 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 105.519 -6.755] cm +0 g +0 G +[1 0 0 1 -371.59 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +477.109 749.245 Td +/F128_0 9.963 Tf +(Ho) 12.1748 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(bzip2) 22.1378 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -540 -741.554] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(than) 17.1563 Tj +-362 TJm +(a) 4.42357 Tj +-362 TJm +(block.) 24.6285 Tj +-1292 TJm +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-362 TJm +(e) 4.42357 Tj +15 TJm +(xample,) 31.8218 Tj +-390 TJm +(compressing) 50.363 Tj +-362 TJm +(a) 4.42357 Tj +-362 TJm +(\002le) 12.7327 Tj +-362 TJm +(20,000) 27.3983 Tj +-362 TJm +(bytes) 21.0319 Tj +-362 TJm +(long) 17.7142 Tj +-362 TJm +(with) 17.7142 Tj +-362 TJm +(the) 12.1748 Tj +-362 TJm +(\003ag) 14.9445 Tj +[1 0 0 1 406.528 710.037] cm +0 g +0 G +[1 0 0 1 -406.528 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +406.528 710.037 Td +/F130_0 9.963 Tf +(-9) 11.9556 Tj +[1 0 0 1 418.483 710.037] cm +0 g +0 G +[1 0 0 1 -418.483 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +422.091 710.037 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-362 TJm +(cause) 22.1278 Tj +-362 TJm +(the) 12.1748 Tj +-362 TJm +(compressor) 45.9294 Tj +-362 TJm +(to) 7.75121 Tj +72 698.082 Td +(allocate) 30.9849 Tj +-271 TJm +(around) 27.6673 Tj +-272 TJm +(7600k) 24.9075 Tj +-271 TJm +(of) 8.29918 Tj +-272 TJm +(m) 7.75121 Tj +1 TJm +(emory) 25.4555 Tj +65 TJm +(,) 2.49075 Tj +-277 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-272 TJm +(only) 17.7142 Tj +-271 TJm +(touch) 22.1378 Tj +-271 TJm +(400k) 19.926 Tj +-272 TJm +(+) 5.61913 Tj +-271 TJm +(20000) 24.9075 Tj +-272 TJm +(*) 4.9815 Tj +-271 TJm +(8) 4.9815 Tj +-272 TJm +(=) 5.61913 Tj +-271 TJm +(560) 14.9445 Tj +-271 TJm +(kbytes) 26.0134 Tj +-272 TJm +(of) 8.29918 Tj +-271 TJm +(it.) 8.03018 Tj +-749 TJm +(Similarly) 37.0922 Tj +65 TJm +(,) 2.49075 Tj +-277 TJm +(the) 12.1748 Tj +-271 TJm +(decompressor) 55.3345 Tj +72 686.127 Td +(will) 15.5024 Tj +-250 TJm +(allocate) 30.9849 Tj +-250 TJm +(3700k) 24.9075 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(only) 17.7142 Tj +-250 TJm +(t) 2.76971 Tj +1 TJm +(ouch) 19.3681 Tj +-250 TJm +(100k) 19.926 Tj +-250 TJm +(+) 5.61913 Tj +-250 TJm +(20000) 24.9075 Tj +-250 TJm +(*) 4.9815 Tj +-250 TJm +(4) 4.9815 Tj +-250 TJm +(=) 5.61913 Tj +-250 TJm +(180) 14.9445 Tj +-250 TJm +(kbytes.) 28.5041 Tj +[1 0 0 1 72 683.97] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -674.008] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 664.209 Td +/F128_0 9.963 Tf +(Here) 19.3581 Tj +-293 TJm +(is) 6.64532 Tj +-294 TJm +(a) 4.42357 Tj +-293 TJm +(table) 19.3681 Tj +-294 TJm +(which) 24.3496 Tj +-293 TJm +(summarises) 47.0453 Tj +-293 TJm +(the) 12.1748 Tj +-294 TJm +(maximu) 32.6587 Tj +1 TJm +(m) 7.75121 Tj +-294 TJm +(memory) 33.2067 Tj +-293 TJm +(usage) 22.6858 Tj +-294 TJm +(for) 11.6169 Tj +-293 TJm +(dif) 11.0689 Tj +25 TJm +(ferent) 23.2337 Tj +-293 TJm +(block) 22.1378 Tj +-294 TJm +(sizes.) 21.8588 Tj +-880 TJm +(Also) 18.8201 Tj +-294 TJm +(recorded) 34.8506 Tj +-293 TJm +(is) 6.64532 Tj +-294 TJm +(the) 12.1748 Tj +-293 TJm +(total) 17.7142 Tj +72 652.254 Td +(compressed) 47.0353 Tj +-289 TJm +(size) 15.4925 Tj +-289 TJm +(for) 11.6169 Tj +-289 TJm +(14) 9.963 Tj +-289 TJm +(\002les) 16.6083 Tj +-289 TJm +(of) 8.29918 Tj +-289 TJm +(the) 12.1748 Tj +-289 TJm +(Calg) 18.8201 Tj +5 TJm +(ary) 12.7228 Tj +-289 TJm +(T) 6.08739 Tj +70 TJm +(e) 4.42357 Tj +15 TJm +(xt) 7.75121 Tj +-289 TJm +(Compression) 52.5847 Tj +-289 TJm +(Corpus) 28.7831 Tj +-289 TJm +(totalling) 33.2166 Tj +-289 TJm +(3,141,622) 39.852 Tj +-289 TJm +(bytes.) 23.5226 Tj +-855 TJm +(This) 17.7142 Tj +-289 TJm +(column) 29.889 Tj +-289 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(es) 8.29918 Tj +72 640.299 Td +(some) 21.0319 Tj +-253 TJm +(feel) 14.9345 Tj +-253 TJm +(for) 11.6169 Tj +-253 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-253 TJm +(compression) 50.363 Tj +-253 TJm +(v) 4.9815 Tj +25 TJm +(aries) 18.8101 Tj +-253 TJm +(with) 17.7142 Tj +-253 TJm +(bl) 7.75121 Tj +1 TJm +(ock) 14.3866 Tj +-253 TJm +(size.) 17.9832 Tj +-639 TJm +(These) 23.7916 Tj +-253 TJm +(\002g) 10.5209 Tj +1 TJm +(ures) 16.5984 Tj +-253 TJm +(tend) 17.1563 Tj +-253 TJm +(to) 7.75121 Tj +-253 TJm +(understate) 40.9479 Tj +-253 TJm +(the) 12.1748 Tj +-253 TJm +(adv) 14.3866 Tj +25 TJm +(antage) 26.0034 Tj +-253 TJm +(of) 8.29918 Tj +-253 TJm +(lar) 10.511 Tj +18 TJm +(ger) 12.7228 Tj +-253 TJm +(block) 22.1378 Tj +72 628.344 Td +(sizes) 19.3681 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(lar) 10.511 Tj +18 TJm +(ger) 12.7228 Tj +-250 TJm +(\002les,) 19.0991 Tj +-250 TJm +(since) 20.474 Tj +-250 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-250 TJm +(Corpus) 28.7831 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(dominated) 42.0638 Tj +-250 TJm +(by) 9.963 Tj +-250 TJm +(smaller) 29.3311 Tj +-250 TJm +(\002les.) 19.0991 Tj +[1 0 0 1 72 626.187] cm +0 g +0 G +[1 0 0 1 0 -156.414] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 155.417 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 151.831] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -616.822] cm +[1 0 0 1 0 0] Tm +0 0 Td +123.952 616.822 Td +/F130_0 9.963 Tf +(Compress) 47.8224 Tj +-1278 TJm +(Decompress) 59.778 Tj +-1277 TJm +(Decompress) 59.778 Tj +-1278 TJm +(Corpus) 35.8668 Tj +90 604.867 Td +(Flag) 23.9112 Tj +-2130 TJm +(usage) 29.889 Tj +-2556 TJm +(us) 11.9556 Tj +1 TJm +(age) 17.9334 Tj +-2982 TJm +(-s) 11.9556 Tj +-426 TJm +(usage) 29.889 Tj +-2130 TJm +(Size) 23.9112 Tj +94.244 580.957 Td +(-1) 11.9556 Tj +-2556 TJm +(1200k) 29.889 Tj +-2982 TJm +(50) 11.9556 Tj +1 TJm +(0k) 11.9556 Tj +-3834 TJm +(350k) 23.9112 Tj +-2556 TJm +(914704) 35.8668 Tj +94.244 569.001 Td +(-2) 11.9556 Tj +-2556 TJm +(2000k) 29.889 Tj +-2982 TJm +(90) 11.9556 Tj +1 TJm +(0k) 11.9556 Tj +-3834 TJm +(600k) 23.9112 Tj +-2556 TJm +(877703) 35.8668 Tj +94.244 557.046 Td +(-3) 11.9556 Tj +-2556 TJm +(2800k) 29.889 Tj +-2556 TJm +(130) 17.9334 Tj +1 TJm +(0k) 11.9556 Tj +-3834 TJm +(850k) 23.9112 Tj +-2556 TJm +(860338) 35.8668 Tj +94.244 545.091 Td +(-4) 11.9556 Tj +-2556 TJm +(3600k) 29.889 Tj +-2556 TJm +(170) 17.9334 Tj +1 TJm +(0k) 11.9556 Tj +-3408 TJm +(1100k) 29.889 Tj +-2556 TJm +(846899) 35.8668 Tj +94.244 533.136 Td +(-5) 11.9556 Tj +-2556 TJm +(4400k) 29.889 Tj +-2556 TJm +(210) 17.9334 Tj +1 TJm +(0k) 11.9556 Tj +-3408 TJm +(1350k) 29.889 Tj +-2556 TJm +(845160) 35.8668 Tj +94.244 521.181 Td +(-6) 11.9556 Tj +-2556 TJm +(5200k) 29.889 Tj +-2556 TJm +(250) 17.9334 Tj +1 TJm +(0k) 11.9556 Tj +-3408 TJm +(1600k) 29.889 Tj +-2556 TJm +(838626) 35.8668 Tj +94.244 509.225 Td +(-7) 11.9556 Tj +-2556 TJm +(6100k) 29.889 Tj +-2556 TJm +(290) 17.9334 Tj +1 TJm +(0k) 11.9556 Tj +-3408 TJm +(1850k) 29.889 Tj +-2556 TJm +(834096) 35.8668 Tj +94.244 497.27 Td +(-8) 11.9556 Tj +-2556 TJm +(6800k) 29.889 Tj +-2556 TJm +(330) 17.9334 Tj +1 TJm +(0k) 11.9556 Tj +-3408 TJm +(2100k) 29.889 Tj +-2556 TJm +(828642) 35.8668 Tj +94.244 485.315 Td +(-9) 11.9556 Tj +-2556 TJm +(7600k) 29.889 Tj +-2556 TJm +(370) 17.9334 Tj +1 TJm +(0k) 11.9556 Tj +-3408 TJm +(2350k) 29.889 Tj +-2556 TJm +(828642) 35.8668 Tj +[1 0 0 1 72 469.773] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -459.811] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 435.021 Td +/F121_0 20.659 Tf +(2.6.) 34.4592 Tj +-939 TJm +(RECO) 59.6839 Tj +50 TJm +(VERING) 79.2066 Tj +-939 TJm +(D) 14.9158 Tj +40 TJm +(A) 14.9158 Tj +90 TJm +(T) 12.6226 Tj +90 TJm +(A) 14.9158 Tj +-939 TJm +(FR) 27.5384 Tj +20 TJm +(OM) 33.2816 Tj +-939 TJm +(D) 14.9158 Tj +40 TJm +(AMA) 47.0405 Tj +50 TJm +(GED) 44.7681 Tj +72 410.23 Td +(FILES) 58.5476 Tj +[1 0 0 1 72 409.972] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -400.01] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 388.313 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 388.313] cm +0 g +0 G +[1 0 0 1 -101.888 -388.313] cm +[1 0 0 1 0 0] Tm +0 0 Td +105.138 388.313 Td +/F128_0 9.963 Tf +(compresses) 45.9294 Tj +-326 TJm +(\002les) 16.6083 Tj +-326 TJm +(in) 7.75121 Tj +-326 TJm +(blocks,) 28.5041 Tj +-345 TJm +(usually) 28.7831 Tj +-326 TJm +(900kbytes) 40.9579 Tj +-326 TJm +(long.) 20.205 Tj +-1077 TJm +(Each) 19.916 Tj +-326 TJm +(block) 22.1378 Tj +-326 TJm +(is) 6.64532 Tj +-327 TJm +(handle) 26.5614 Tj +1 TJm +(d) 4.9815 Tj +-327 TJm +(independe) 40.9479 Tj +1 TJm +(ntly) 15.5024 Tj +65 TJm +(.) 2.49075 Tj +-1077 TJm +(If) 6.63536 Tj +-327 TJm +(a) 4.42357 Tj +-326 TJm +(media) 24.3496 Tj +-326 TJm +(or) 8.29918 Tj +72 376.357 Td +(transmission) 50.3729 Tj +-318 TJm +(error) 19.3581 Tj +-319 TJm +(causes) 26.0034 Tj +-318 TJm +(a) 4.42357 Tj +-319 TJm +(multi-block) 46.4973 Tj +[1 0 0 1 234.519 376.357] cm +0 g +0 G +[1 0 0 1 -234.519 -376.357] cm +[1 0 0 1 0 0] Tm +0 0 Td +234.519 376.357 Td +/F130_0 9.963 Tf +(.bz2) 23.9112 Tj +[1 0 0 1 258.429 376.357] cm +0 g +0 G +[1 0 0 1 -258.429 -376.357] cm +[1 0 0 1 0 0] Tm +0 0 Td +261.603 376.357 Td +/F128_0 9.963 Tf +(\002le) 12.7327 Tj +-319 TJm +(to) 7.75121 Tj +-318 TJm +(become) 30.9849 Tj +-319 TJm +(da) 9.40507 Tj +1 TJm +(maged,) 29.0521 Tj +-336 TJm +(it) 5.53943 Tj +-319 TJm +(may) 17.1563 Tj +-318 TJm +(be) 9.40507 Tj +-319 TJm +(possible) 32.6587 Tj +-318 TJm +(to) 7.75121 Tj +-319 TJm +(reco) 17.1463 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-318 TJm +(data) 16.5984 Tj +-319 TJm +(from) 19.3681 Tj +-318 TJm +(the) 12.1748 Tj +72 364.402 Td +(undamaged) 45.9294 Tj +-250 TJm +(blocks) 26.0134 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(\002le.) 15.2235 Tj +[1 0 0 1 72 362.245] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -352.283] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 342.484 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-358 TJm +(com) 17.1563 Tj +1 TJm +(pressed) 29.879 Tj +-358 TJm +(representation) 56.4404 Tj +-357 TJm +(of) 8.29918 Tj +-358 TJm +(each) 18.2522 Tj +-357 TJm +(block) 22.1378 Tj +-358 TJm +(is) 6.64532 Tj +-357 TJm +(delimited) 37.6402 Tj +-358 TJm +(by) 9.963 Tj +-357 TJm +(a) 4.42357 Tj +-358 TJm +(48-bit) 23.8016 Tj +-357 TJm +(pattern,) 30.158 Tj +-385 TJm +(which) 24.3496 Tj +-357 TJm +(mak) 17.1563 Tj +10 TJm +(es) 8.29918 Tj +-358 TJm +(it) 5.53943 Tj +-357 TJm +(possible) 32.6587 Tj +-358 TJm +(to) 7.75121 Tj +-357 TJm +(\002nd) 15.5024 Tj +-358 TJm +(the) 12.1748 Tj +72 330.529 Td +(block) 22.1378 Tj +-286 TJm +(boundaries) 43.7176 Tj +-285 TJm +(with) 17.7142 Tj +-286 TJm +(reasonable) 42.6018 Tj +-285 TJm +(certainty) 34.8605 Tj +65 TJm +(.) 2.49075 Tj +-835 TJm +(Each) 19.916 Tj +-286 TJm +(block) 22.1378 Tj +-285 TJm +(also) 16.0504 Tj +-286 TJm +(carries) 26.5514 Tj +-286 TJm +(its) 9.41504 Tj +-285 TJm +(o) 4.9815 Tj +25 TJm +(wn) 12.1748 Tj +-286 TJm +(32-bit) 23.8016 Tj +-286 TJm +(CRC,) 22.4267 Tj +-285 TJm +(so) 8.85711 Tj +-286 TJm +(damaged) 35.9664 Tj +-286 TJm +(blocks) 26.0134 Tj +-285 TJm +(can) 13.8286 Tj +-286 TJm +(be) 9.40507 Tj +72 318.574 Td +(distinguished) 53.1426 Tj +-250 TJm +(from) 19.3681 Tj +-250 TJm +(undamage) 40.9479 Tj +1 TJm +(d) 4.9815 Tj +-250 TJm +(ones.) 20.7529 Tj +[1 0 0 1 72 316.417] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -306.455] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 296.656 Td +/F130_0 9.963 Tf +(bzip2recover) 71.7336 Tj +[1 0 0 1 143.731 296.656] cm +0 g +0 G +[1 0 0 1 -143.731 -296.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +146.448 296.656 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-273 TJm +(a) 4.42357 Tj +-272 TJm +(simple) 26.5713 Tj +-273 TJm +(program) 33.7546 Tj +-272 TJm +(whose) 25.4555 Tj +-273 TJm +(purpose) 31.5429 Tj +-273 TJm +(i) 2.76971 Tj +1 TJm +(s) 3.87561 Tj +-273 TJm +(to) 7.75121 Tj +-273 TJm +(search) 25.4455 Tj +-272 TJm +(for) 11.6169 Tj +-273 TJm +(blocks) 26.0134 Tj +-273 TJm +(in) 7.75121 Tj +[1 0 0 1 392.655 296.656] cm +0 g +0 G +[1 0 0 1 -392.655 -296.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +392.655 296.656 Td +/F130_0 9.963 Tf +(.bz2) 23.9112 Tj +[1 0 0 1 416.566 296.656] cm +0 g +0 G +[1 0 0 1 -416.566 -296.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +419.282 296.656 Td +/F128_0 9.963 Tf +(\002les,) 19.0991 Tj +-278 TJm +(and) 14.3866 Tj +-273 TJm +(write) 20.474 Tj +-273 TJm +(e) 4.42357 Tj +1 TJm +(ach) 13.8286 Tj +-273 TJm +(block) 22.1378 Tj +-273 TJm +(out) 12.7327 Tj +72 284.701 Td +(into) 15.5024 Tj +-254 TJm +(its) 9.41504 Tj +-255 TJm +(o) 4.9815 Tj +25 TJm +(wn) 12.1748 Tj +[1 0 0 1 121.429 284.701] cm +0 g +0 G +[1 0 0 1 -121.429 -284.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +121.429 284.701 Td +/F130_0 9.963 Tf +(.bz2) 23.9112 Tj +[1 0 0 1 145.34 284.701] cm +0 g +0 G +[1 0 0 1 -145.34 -284.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +147.875 284.701 Td +/F128_0 9.963 Tf +(\002le.) 15.2235 Tj +-647 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-254 TJm +(can) 13.8286 Tj +-255 TJm +(then) 17.1563 Tj +-254 TJm +(use) 13.2807 Tj +[1 0 0 1 240.01 284.701] cm +0 g +0 G +[1 0 0 1 -240.01 -284.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +240.01 284.701 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +-600 TJm +(-t) 11.9556 Tj +[1 0 0 1 287.831 284.701] cm +0 g +0 G +[1 0 0 1 -287.831 -284.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +290.367 284.701 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-254 TJm +(test) 13.8386 Tj +-255 TJm +(the) 12.1748 Tj +-254 TJm +(inte) 14.9445 Tj +15 TJm +(grity) 18.8201 Tj +-255 TJm +(of) 8.29918 Tj +-254 TJm +(the) 12.1748 Tj +-255 TJm +(res) 11.6169 Tj +1 TJm +(ulting) 23.2536 Tj +-255 TJm +(\002les,) 19.0991 Tj +-255 TJm +(and) 14.3866 Tj +-255 TJm +(decompress) 47.0353 Tj +-254 TJm +(those) 21.0319 Tj +72 272.746 Td +(which) 24.3496 Tj +-250 TJm +(are) 12.1648 Tj +-250 TJm +(undamaged.) 48.4202 Tj +[1 0 0 1 72 270.589] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -260.626] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 250.828 Td +/F130_0 9.963 Tf +(bzip2recover) 71.7336 Tj +[1 0 0 1 143.731 250.828] cm +0 g +0 G +[1 0 0 1 -143.731 -250.828] cm +[1 0 0 1 0 0] Tm +0 0 Td +150.099 250.828 Td +/F128_0 9.963 Tf +(tak) 12.1748 Tj +10 TJm +(es) 8.29918 Tj +-639 TJm +(a) 4.42357 Tj +-639 TJm +(single) 23.8016 Tj +-639 TJm +(ar) 7.74125 Tj +18 TJm +(gument,) 32.3798 Tj +-736 TJm +(the) 12.1748 Tj +-639 TJm +(name) 21.5799 Tj +-639 TJm +(of) 8.29918 Tj +-639 TJm +(the) 12.1748 Tj +-640 TJm +(da) 9.40507 Tj +1 TJm +(maged) 26.5614 Tj +-640 TJm +(\002) 5.53943 Tj +1 TJm +(le,) 9.68404 Tj +-737 TJm +(and) 14.3866 Tj +-639 TJm +(writes) 24.3496 Tj +-639 TJm +(a) 4.42357 Tj +-639 TJm +(number) 30.437 Tj +-639 TJm +(of) 8.29918 Tj +-639 TJm +(\002les) 16.6083 Tj +[1 0 0 1 72 238.873] cm +0 g +0 G +[1 0 0 1 -72 -238.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 238.873 Td +/F130_0 9.963 Tf +(rec0001file.bz2) 89.667 Tj +[1 0 0 1 161.664 238.873] cm +0 g +0 G +[1 0 0 1 -161.664 -238.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +161.664 238.873 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 169.072 238.873] cm +0 g +0 G +[1 0 0 1 -169.072 -238.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +169.072 238.873 Td +/F130_0 9.963 Tf +(rec0002file.bz2) 89.667 Tj +[1 0 0 1 258.736 238.873] cm +0 g +0 G +[1 0 0 1 -258.736 -238.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +258.736 238.873 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-494 TJm +(etc,) 14.1076 Tj +-493 TJm +(containing) 42.0638 Tj +-445 TJm +(the) 12.1748 Tj +-445 TJm +(e) 4.42357 Tj +15 TJm +(xtracted) 32.0908 Tj +-444 TJm +(blocks.) 28.5041 Tj +-1790 TJm +(The) 15.4925 Tj +-444 TJm +(output) 25.4654 Tj +-445 TJm +(\002lenames) 38.1882 Tj +-445 TJm +(are) 12.1648 Tj +72 226.918 Td +(designed) 35.4185 Tj +-337 TJm +(so) 8.85711 Tj +-337 TJm +(that) 14.9445 Tj +-336 TJm +(the) 12.1748 Tj +-337 TJm +(use) 13.2807 Tj +-337 TJm +(of) 8.29918 Tj +-337 TJm +(wildcards) 38.7361 Tj +-337 TJm +(in) 7.75121 Tj +-337 TJm +(subsequent) 44.2756 Tj +-336 TJm +(processing) 42.6118 Tj +-337 TJm +(--) 6.63536 Tj +-337 TJm +(for) 11.6169 Tj +-337 TJm +(e) 4.42357 Tj +15 TJm +(xample,) 31.8218 Tj +[1 0 0 1 396.538 226.918] cm +0 g +0 G +[1 0 0 1 -396.538 -226.918] cm +[1 0 0 1 0 0] Tm +0 0 Td +396.538 226.918 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +-600 TJm +(-dc) 17.9334 Tj +-600 TJm +(rec*file.bz2) 71.7336 Tj +-600 TJm +(>) 5.9778 Tj +72 214.963 Td +(recovered_data) 83.6892 Tj +[1 0 0 1 155.686 214.963] cm +0 g +0 G +[1 0 0 1 -155.686 -214.963] cm +[1 0 0 1 0 0] Tm +0 0 Td +158.177 214.963 Td +/F128_0 9.963 Tf +(--) 6.63536 Tj +-250 TJm +(lists) 16.0604 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(\002les) 16.6083 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(corr) 16.0404 Tj +1 TJm +(ect) 11.6169 Tj +-250 TJm +(order) 21.0219 Tj +55 TJm +(.) 2.49075 Tj +[1 0 0 1 72 213.797] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -203.834] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 193.045 Td +/F130_0 9.963 Tf +(bzip2recover) 71.7336 Tj +[1 0 0 1 143.731 193.045] cm +0 g +0 G +[1 0 0 1 -143.731 -193.045] cm +[1 0 0 1 0 0] Tm +0 0 Td +145.93 193.045 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-221 TJm +(be) 9.40507 Tj +-220 TJm +(of) 8.29918 Tj +-221 TJm +(most) 19.378 Tj +-220 TJm +(use) 13.2807 Tj +-221 TJm +(dealing) 29.3311 Tj +-221 TJm +(with) 17.7142 Tj +-220 TJm +(lar) 10.511 Tj +18 TJm +(ge) 9.40507 Tj +[1 0 0 1 307.229 193.045] cm +0 g +0 G +[1 0 0 1 -307.229 -193.045] cm +[1 0 0 1 0 0] Tm +0 0 Td +307.229 193.045 Td +/F130_0 9.963 Tf +(.bz2) 23.9112 Tj +[1 0 0 1 331.14 193.045] cm +0 g +0 G +[1 0 0 1 -331.14 -193.045] cm +[1 0 0 1 0 0] Tm +0 0 Td +333.338 193.045 Td +/F128_0 9.963 Tf +(\002les,) 19.0991 Tj +-226 TJm +(as) 8.29918 Tj +-221 TJm +(these) 20.474 Tj +-221 TJm +(will) 15.5024 Tj +-220 TJm +(contain) 29.3311 Tj +-221 TJm +(man) 17.1563 Tj +15 TJm +(y) 4.9815 Tj +-221 TJm +(b) 4.9815 Tj +1 TJm +(locks.) 23.5226 Tj +-601 TJm +(It) 6.08739 Tj +-220 TJm +(is) 6.64532 Tj +-221 TJm +(clearly) 27.1093 Tj +72 181.09 Td +(futile) 21.0319 Tj +-289 TJm +(to) 7.75121 Tj +-289 TJm +(use) 13.2807 Tj +-289 TJm +(it) 5.53943 Tj +-289 TJm +(on) 9.963 Tj +-289 TJm +(damaged) 35.9664 Tj +-289 TJm +(single-block) 49.2571 Tj +-289 TJm +(\002les,) 19.0991 Tj +-299 TJm +(since) 20.474 Tj +-289 TJm +(a) 4.42357 Tj +-289 TJm +(damaged) 35.9664 Tj +-289 TJm +(block) 22.1378 Tj +-289 TJm +(cannot) 26.5614 Tj +-289 TJm +(be) 9.40507 Tj +-289 TJm +(reco) 17.1463 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(ered) 17.1463 Tj +1 TJm +(.) 2.49075 Tj +-855 TJm +(If) 6.63536 Tj +-289 TJm +(you) 14.9445 Tj +-289 TJm +(wish) 18.8201 Tj +-289 TJm +(to) 7.75121 Tj +-289 TJm +(minimise) 37.0922 Tj +72 169.134 Td +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-320 TJm +(potential) 34.8705 Tj +-319 TJm +(data) 16.5984 Tj +-320 TJm +(loss) 15.5024 Tj +-320 TJm +(through) 30.9949 Tj +-319 TJm +(media) 24.3496 Tj +-320 TJm +(or) 8.29918 Tj +-320 TJm +(transmission) 50.3729 Tj +-319 TJm +(errors,) 25.7245 Tj +-337 TJm +(you) 14.9445 Tj +-320 TJm +(might) 23.2536 Tj +-320 TJm +(consider) 33.7546 Tj +-319 TJm +(compressing) 50.363 Tj +-320 TJm +(with) 17.7142 Tj +-320 TJm +(a) 4.42357 Tj +-319 TJm +(smaller) 29.3311 Tj +-320 TJm +(block) 22.1378 Tj +72 157.179 Td +(size.) 17.9832 Tj +[1 0 0 1 72 157.08] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -147.117] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 122.426 Td +/F121_0 20.659 Tf +(2.7.) 34.4592 Tj +-278 TJm +(PERFORMANCE) 161.822 Tj +-278 TJm +(NO) 30.9885 Tj +40 TJm +(TES) 40.1818 Tj +[1 0 0 1 72 122.168] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -112.206] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 100.509 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-304 TJm +(sorting) 27.6772 Tj +-305 TJm +(phase) 22.6858 Tj +-304 TJm +(of) 8.29918 Tj +-305 TJm +(compression) 50.363 Tj +-304 TJm +(g) 4.9815 Tj +5 TJm +(athers) 23.7916 Tj +-305 TJm +(together) 32.6488 Tj +-304 TJm +(similar) 27.6772 Tj +-304 TJm +(strings) 26.5713 Tj +-305 TJm +(in) 7.75121 Tj +-304 TJm +(the) 12.1748 Tj +-305 TJm +(\002le.) 15.2235 Tj +-947 TJm +(Because) 33.1967 Tj +-305 TJm +(of) 8.29918 Tj +-304 TJm +(this,) 16.8873 Tj +-318 TJm +(\002les) 16.6083 Tj +-305 TJm +(contai) 24.3496 Tj +1 TJm +(ning) 17.7142 Tj +-305 TJm +(v) 4.9815 Tj +15 TJm +(ery) 12.7228 Tj +72 88.553 Td +(long) 17.7142 Tj +-286 TJm +(run) 13.2807 Tj +1 TJm +(s) 3.87561 Tj +-286 TJm +(of) 8.29918 Tj +-286 TJm +(repeated) 33.7447 Tj +-285 TJm +(symbols,) 35.7074 Tj +-295 TJm +(l) 2.76971 Tj +1 TJm +(ik) 7.75121 Tj +10 TJm +(e) 4.42357 Tj +-286 TJm +("aabaabaabaab) 59.3795 Tj +-285 TJm +(...") 11.5372 Tj +-572 TJm +(\(repea) 24.8876 Tj +1 TJm +(ted) 12.1748 Tj +-286 TJm +(se) 8.29918 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(eral) 14.9345 Tj +-286 TJm +(hun) 14.9445 Tj +1 TJm +(dred) 17.7043 Tj +-286 TJm +(times\)) 24.9075 Tj +-286 TJm +(m) 7.75121 Tj +1 TJm +(ay) 9.40507 Tj +-286 TJm +(compress) 37.6303 Tj +-286 TJm +(m) 7.75121 Tj +1 TJm +(ore) 12.7228 Tj +-286 TJm +(slo) 11.6268 Tj +25 TJm +(wly) 14.9445 Tj +72 76.598 Td +(than) 17.1563 Tj +-321 TJm +(normal.) 30.7159 Tj +-525 TJm +(V) 7.19329 Tj +111 TJm +(ersions) 28.2252 Tj +-321 TJm +(0.9.5) 19.926 Tj +-322 TJm +(and) 14.3866 Tj +-322 TJm +(a) 4.42357 Tj +1 TJm +(bo) 9.963 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-322 TJm +(f) 3.31768 Tj +10 TJm +(are) 12.1648 Tj +-321 TJm +(much) 22.1378 Tj +-322 TJm +(better) 22.6858 Tj +-321 TJm +(than) 17.1563 Tj +-322 TJm +(pre) 12.7228 Tj +25 TJm +(vious) 21.5898 Tj +-321 TJm +(v) 4.9815 Tj +15 TJm +(ersions) 28.2252 Tj +-322 TJm +(in) 7.75121 Tj +-321 TJm +(this) 14.3965 Tj +-322 TJm +(respect.) 30.706 Tj +-1049 TJm +(The) 15.4925 Tj +-322 TJm +(ratio) 18.2622 Tj +-321 TJm +(between) 33.1967 Tj +[1 0 0 1 72 50.852] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 43.063 -6.755] cm +0 g +0 G +[1 0 0 1 -496.332 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +539.395 50.951 Td +/F128_0 9.963 Tf +(6) 4.9815 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 10 10 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 105.519 -6.755] cm +0 g +0 G +[1 0 0 1 -371.59 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +477.109 749.245 Td +/F128_0 9.963 Tf +(Ho) 12.1748 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(bzip2) 22.1378 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -540 -741.554] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(w) 7.19329 Tj +10 TJm +(orst-case) 35.4085 Tj +-289 TJm +(and) 14.3866 Tj +-290 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(erage-c) 29.3111 Tj +1 TJm +(ase) 12.7228 Tj +-290 TJm +(compression) 50.363 Tj +-289 TJm +(time) 17.7142 Tj +-289 TJm +(is) 6.64532 Tj +-290 TJm +(in) 7.75121 Tj +-289 TJm +(the) 12.1748 Tj +-290 TJm +(re) 7.74125 Tj +15 TJm +(gion) 17.7142 Tj +-289 TJm +(of) 8.29918 Tj +-289 TJm +(10:1.) 20.205 Tj +-857 TJm +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-289 TJm +(pre) 12.7228 Tj +25 TJm +(vious) 21.5898 Tj +-290 TJm +(v) 4.9815 Tj +15 TJm +(ersions,) 30.7159 Tj +-299 TJm +(this) 14.3965 Tj +-289 TJm +(\002gure) 23.2437 Tj +-290 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-289 TJm +(more) 20.474 Tj +72 698.082 Td +(lik) 10.5209 Tj +10 TJm +(e) 4.42357 Tj +-250 TJm +(100:1.) 25.1865 Tj +-620 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-250 TJm +(can) 13.8286 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(the) 12.1748 Tj +[1 0 0 1 186.002 698.082] cm +0 g +0 G +[1 0 0 1 -186.002 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +186.002 698.082 Td +/F130_0 9.963 Tf +(-vvvv) 29.889 Tj +[1 0 0 1 215.89 698.082] cm +0 g +0 G +[1 0 0 1 -215.89 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +218.38 698.082 Td +/F128_0 9.963 Tf +(option) 25.4654 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(monitor) 31.5528 Tj +-250 TJm +(progress) 33.7546 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(g) 4.9815 Tj +1 TJm +(reat) 14.9345 Tj +-250 TJm +(detail,) 24.6285 Tj +-250 TJm +(if) 6.08739 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ant.) 14.6655 Tj +[1 0 0 1 72 695.925] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -685.963] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 676.164 Td +/F128_0 9.963 Tf +(Decompression) 61.9798 Tj +-250 TJm +(speed) 22.6858 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(unaf) 17.7043 Tj +26 TJm +(fected) 24.3396 Tj +-250 TJm +(by) 9.963 Tj +-250 TJm +(these) 20.474 Tj +-250 TJm +(phenomena.) 48.4202 Tj +[1 0 0 1 72 674.008] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -664.045] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 654.247 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 654.247] cm +0 g +0 G +[1 0 0 1 -101.888 -654.247] cm +[1 0 0 1 0 0] Tm +0 0 Td +104.863 654.247 Td +/F128_0 9.963 Tf +(usually) 28.7831 Tj +-298 TJm +(allocates) 34.8605 Tj +-299 TJm +(se) 8.29918 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(eral) 14.9345 Tj +-298 TJm +(me) 12.1748 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(abytes) 25.4555 Tj +-299 TJm +(of) 8.29918 Tj +-298 TJm +(memory) 33.2067 Tj +-299 TJm +(to) 7.75121 Tj +-298 TJm +(operate) 29.3211 Tj +-299 TJm +(in,) 10.242 Tj +-311 TJm +(and) 14.3866 Tj +-298 TJm +(then) 17.1563 Tj +-299 TJm +(char) 17.1463 Tj +18 TJm +(ges) 13.2807 Tj +-298 TJm +(all) 9.963 Tj +-299 TJm +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-298 TJm +(it) 5.53943 Tj +-299 TJm +(in) 7.75121 Tj +-298 TJm +(a) 4.42357 Tj +-299 TJm +(f) 3.31768 Tj +10 TJm +(airly) 18.2622 Tj +-299 TJm +(r) 3.31768 Tj +1 TJm +(andom) 27.1193 Tj +72 642.291 Td +(f) 3.31768 Tj +10 TJm +(ashion.) 28.5041 Tj +-743 TJm +(This) 17.7142 Tj +-270 TJm +(means) 25.4555 Tj +-271 TJm +(t) 2.76971 Tj +1 TJm +(hat) 12.1748 Tj +-271 TJm +(performance,) 52.8338 Tj +-275 TJm +(both) 17.7142 Tj +-271 TJm +(for) 11.6169 Tj +-270 TJm +(compressing) 50.363 Tj +-270 TJm +(and) 14.3866 Tj +-271 TJm +(decompressing,) 62.2588 Tj +-275 TJm +(is) 6.64532 Tj +-271 TJm +(la) 7.19329 Tj +1 TJm +(r) 3.31768 Tj +18 TJm +(gely) 17.1563 Tj +-271 TJm +(determined) 44.8235 Tj +-270 TJm +(by) 9.963 Tj +-271 TJm +(the) 12.1748 Tj +-270 TJm +(speed) 22.6858 Tj +72 630.336 Td +(at) 7.19329 Tj +-294 TJm +(which) 24.3496 Tj +-294 TJm +(your) 18.2622 Tj +-294 TJm +(machine) 33.7546 Tj +-294 TJm +(can) 13.8286 Tj +-294 TJm +(service) 28.2152 Tj +-294 TJm +(cache) 22.6758 Tj +-294 TJm +(misses.) 29.0621 Tj +-442 TJm +(Because) 33.1967 Tj +-294 TJm +(of) 8.29918 Tj +-295 TJm +(t) 2.76971 Tj +1 TJm +(his,) 14.1176 Tj +-306 TJm +(smal) 18.8201 Tj +1 TJm +(l) 2.76971 Tj +-295 TJm +(chang) 23.7916 Tj +1 TJm +(es) 8.29918 Tj +-295 TJm +(to) 7.75121 Tj +-294 TJm +(the) 12.1748 Tj +-294 TJm +(code) 18.8101 Tj +-294 TJm +(to) 7.75121 Tj +-294 TJm +(reduce) 26.5514 Tj +-294 TJm +(the) 12.1748 Tj +-294 TJm +(miss) 18.2721 Tj +-294 TJm +(rate) 14.9345 Tj +72 618.381 Td +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-253 TJm +(been) 18.8101 Tj +-253 TJm +(observ) 26.5614 Tj +15 TJm +(ed) 9.40507 Tj +-253 TJm +(to) 7.75121 Tj +-253 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-253 TJm +(disproportionately) 73.0587 Tj +-253 TJm +(la) 7.19329 Tj +1 TJm +(r) 3.31768 Tj +18 TJm +(ge) 9.40507 Tj +-253 TJm +(performance) 50.343 Tj +-253 TJm +(impro) 23.8016 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(ements.) 30.7159 Tj +-638 TJm +(I) 3.31768 Tj +-253 TJm +(imagine) 32.1008 Tj +[1 0 0 1 438.909 618.381] cm +0 g +0 G +[1 0 0 1 -438.909 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +438.909 618.381 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 468.797 618.381] cm +0 g +0 G +[1 0 0 1 -468.797 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +471.318 618.381 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-253 TJm +(perform) 32.0908 Tj +-253 TJm +(best) 16.0504 Tj +72 606.426 Td +(on) 9.963 Tj +-250 TJm +(machines) 37.6303 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(v) 4.9815 Tj +15 TJm +(ery) 12.7228 Tj +-250 TJm +(lar) 10.511 Tj +18 TJm +(ge) 9.40507 Tj +-250 TJm +(c) 4.42357 Tj +1 TJm +(aches.) 24.6186 Tj +[1 0 0 1 72 604.269] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -594.306] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 571.673 Td +/F121_0 20.659 Tf +(2.8.) 34.4592 Tj +-278 TJm +(CA) 29.8316 Tj +80 TJm +(VEA) 42.4749 Tj +90 TJm +(TS) 26.4022 Tj +[1 0 0 1 72 571.415] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -561.452] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 549.755 Td +/F128_0 9.963 Tf +(I/O) 13.2807 Tj +-268 TJm +(error) 19.3581 Tj +-267 TJm +(messages) 37.6303 Tj +-268 TJm +(are) 12.1648 Tj +-267 TJm +(not) 12.7327 Tj +-268 TJm +(as) 8.29918 Tj +-268 TJm +(helpful) 28.2252 Tj +-267 TJm +(as) 8.29918 Tj +-268 TJm +(the) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-268 TJm +(could) 22.1378 Tj +-267 TJm +(be.) 11.8958 Tj +[1 0 0 1 293.313 549.755] cm +0 g +0 G +[1 0 0 1 -293.313 -549.755] cm +[1 0 0 1 0 0] Tm +0 0 Td +293.313 549.755 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 323.201 549.755] cm +0 g +0 G +[1 0 0 1 -323.201 -549.755] cm +[1 0 0 1 0 0] Tm +0 0 Td +325.868 549.755 Td +/F128_0 9.963 Tf +(tries) 17.1563 Tj +-268 TJm +(hard) 17.7043 Tj +-267 TJm +(to) 7.75121 Tj +-268 TJm +(detect) 23.7916 Tj +-268 TJm +(I/O) 13.2807 Tj +-267 TJm +(errors) 23.2337 Tj +-268 TJm +(and) 14.3866 Tj +-267 TJm +(e) 4.42357 Tj +15 TJm +(xit) 10.5209 Tj +-268 TJm +(cleanly) 28.7731 Tj +65 TJm +(,) 2.49075 Tj +-272 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-268 TJm +(the) 12.1748 Tj +72 537.8 Td +(details) 26.0134 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(what) 19.3681 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(problem) 33.2067 Tj +-249 TJm +(is) 6.64532 Tj +-250 TJm +(sometimes) 42.6217 Tj +-250 TJm +(seem) 20.474 Tj +-250 TJm +(rather) 23.2337 Tj +-250 TJm +(misleading.) 46.2184 Tj +[1 0 0 1 72 535.643] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -525.681] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 515.882 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-280 TJm +(manu) 22.1378 Tj +1 TJm +(al) 7.19329 Tj +-280 TJm +(page) 18.8101 Tj +-280 TJm +(pertains) 31.5429 Tj +-279 TJm +(to) 7.75121 Tj +-280 TJm +(v) 4.9815 Tj +15 TJm +(ersion) 24.3496 Tj +-279 TJm +(1.0.3) 19.926 Tj +-280 TJm +(of) 8.29918 Tj +[1 0 0 1 256.84 515.882] cm +0 g +0 G +[1 0 0 1 -256.84 -515.882] cm +[1 0 0 1 0 0] Tm +0 0 Td +256.84 515.882 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 286.727 515.882] cm +0 g +0 G +[1 0 0 1 -286.727 -515.882] cm +[1 0 0 1 0 0] Tm +0 0 Td +286.727 515.882 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-798 TJm +(Compressed) 49.2571 Tj +-280 TJm +(da) 9.40507 Tj +1 TJm +(ta) 7.19329 Tj +-280 TJm +(created) 28.7632 Tj +-280 TJm +(by) 9.963 Tj +-279 TJm +(this) 14.3965 Tj +-280 TJm +(v) 4.9815 Tj +15 TJm +(ersion) 24.3496 Tj +-279 TJm +(is) 6.64532 Tj +-280 TJm +(entirely) 30.437 Tj +-280 TJm +(forw) 18.8101 Tj +11 TJm +(ards) 16.5984 Tj +72 503.927 Td +(and) 14.3866 Tj +-294 TJm +(backw) 26.0034 Tj +10 TJm +(ards) 16.5984 Tj +-294 TJm +(compatible) 44.2756 Tj +-295 TJm +(wit) 12.7327 Tj +1 TJm +(h) 4.9815 Tj +-295 TJm +(the) 12.1748 Tj +-294 TJm +(pre) 12.7228 Tj +25 TJm +(vious) 21.5898 Tj +-294 TJm +(public) 24.9075 Tj +-294 TJm +(releases,) 34.0236 Tj +-306 TJm +(v) 4.9815 Tj +15 TJm +(ersions) 28.2252 Tj +-294 TJm +(0.1pl2,) 27.6772 Tj +-305 TJm +(0.9.0) 19.926 Tj +-294 TJm +(and) 14.3866 Tj +-295 TJm +(0.9.5,) 22.4168 Tj +-305 TJm +(1.0.0,) 22.4168 Tj +-305 TJm +(1.0.1) 19.926 Tj +-295 TJm +(and) 14.3866 Tj +-294 TJm +(1.0.2,) 22.4168 Tj +72 491.972 Td +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-282 TJm +(with) 17.7142 Tj +-283 TJm +(the) 12.1748 Tj +-282 TJm +(follo) 18.8201 Tj +25 TJm +(wing) 19.926 Tj +-282 TJm +(e) 4.42357 Tj +15 TJm +(xception:) 37.0823 Tj +-375 TJm +(0.9.0) 19.926 Tj +-282 TJm +(and) 14.3866 Tj +-282 TJm +(abo) 14.3866 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-283 TJm +(can) 13.8286 Tj +-282 TJm +(correctly) 35.4085 Tj +-282 TJm +(decompress) 47.0353 Tj +-282 TJm +(multiple) 33.2166 Tj +-283 TJm +(concatena) 39.8321 Tj +1 TJm +(ted) 12.1748 Tj +-283 TJm +(compressed) 47.0353 Tj +-282 TJm +(\002les.) 19.0991 Tj +72 480.017 Td +(0.1pl2) 25.1865 Tj +-250 TJm +(cannot) 26.5614 Tj +-250 TJm +(do) 9.963 Tj +-250 TJm +(this;) 17.1662 Tj +-250 TJm +(it) 5.53943 Tj +-250 TJm +(will) 15.5024 Tj +-249 TJm +(stop) 16.6083 Tj +-250 TJm +(after) 18.2522 Tj +-250 TJm +(decompressing) 59.768 Tj +-250 TJm +(just) 14.3965 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(\002rst) 15.5024 Tj +-250 TJm +(\002le) 12.7327 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(strea) 18.8101 Tj +1 TJm +(m.) 10.242 Tj +[1 0 0 1 72 477.86] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -467.897] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 458.099 Td +/F130_0 9.963 Tf +(bzip2recover) 71.7336 Tj +[1 0 0 1 143.731 458.099] cm +0 g +0 G +[1 0 0 1 -143.731 -458.099] cm +[1 0 0 1 0 0] Tm +0 0 Td +146.174 458.099 Td +/F128_0 9.963 Tf +(v) 4.9815 Tj +15 TJm +(ersions) 28.2252 Tj +-245 TJm +(prior) 19.3681 Tj +-245 TJm +(to) 7.75121 Tj +-245 TJm +(1.0.2) 19.926 Tj +-245 TJm +(used) 18.2622 Tj +-245 TJm +(32-bit) 23.8016 Tj +-245 TJm +(inte) 14.9445 Tj +15 TJm +(gers) 16.5984 Tj +-245 TJm +(to) 7.75121 Tj +-246 TJm +(repre) 20.464 Tj +1 TJm +(sent) 16.0504 Tj +-246 TJm +(bit) 10.5209 Tj +-245 TJm +(positions) 35.9864 Tj +-245 TJm +(in) 7.75121 Tj +-245 TJm +(compressed) 47.0353 Tj +-245 TJm +(\002les,) 19.0991 Tj +-246 TJm +(so) 8.85711 Tj +-245 TJm +(it) 5.53943 Tj +-245 TJm +(could) 22.1378 Tj +72 446.144 Td +(not) 12.7327 Tj +-383 TJm +(handle) 26.5614 Tj +-384 TJm +(compressed) 47.0353 Tj +-383 TJm +(\002les) 16.6083 Tj +-384 TJm +(more) 20.474 Tj +-383 TJm +(than) 17.1563 Tj +-384 TJm +(51) 9.963 Tj +1 TJm +(2) 4.9815 Tj +-384 TJm +(me) 12.1748 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(abytes) 25.4555 Tj +-383 TJm +(long.) 20.205 Tj +-1421 TJm +(V) 7.19329 Tj +111 TJm +(ersions) 28.2252 Tj +-384 TJm +(1.0.2) 19.926 Tj +-383 TJm +(and) 14.3866 Tj +-384 TJm +(abo) 14.3866 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-383 TJm +(use) 13.2807 Tj +-384 TJm +(64-bit) 23.8016 Tj +-383 TJm +(ints) 14.3965 Tj +-384 TJm +(on) 9.963 Tj +-383 TJm +(some) 21.0319 Tj +72 434.189 Td +(platforms) 38.1882 Tj +-245 TJm +(which) 24.3496 Tj +-246 TJm +(su) 8.85711 Tj +1 TJm +(pport) 21.0319 Tj +-246 TJm +(them) 19.926 Tj +-245 TJm +(\(GNU) 24.8975 Tj +-245 TJm +(supported) 39.2941 Tj +-246 TJm +(tar) 10.511 Tj +18 TJm +(gets,) 18.5411 Tj +-246 TJm +(and) 14.3866 Tj +-245 TJm +(W) 9.40507 Tj +40 TJm +(indo) 17.7142 Tj +25 TJm +(ws\).) 16.8773 Tj +-309 TJm +(T) 6.08739 Tj +80 TJm +(o) 4.9815 Tj +-245 TJm +(establish) 34.8705 Tj +-245 TJm +(whether) 32.0908 Tj +-245 TJm +(or) 8.29918 Tj +-246 TJm +(not) 12.7327 Tj +[1 0 0 1 468.269 434.189] cm +0 g +0 G +[1 0 0 1 -468.269 -434.189] cm +[1 0 0 1 0 0] Tm +0 0 Td +468.269 434.189 Td +/F130_0 9.963 Tf +(bzip2recover) 71.7336 Tj +[1 0 0 1 540 434.189] cm +0 g +0 G +[1 0 0 1 -540 -434.189] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 422.233 Td +/F128_0 9.963 Tf +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-255 TJm +(b) 4.9815 Tj +20 TJm +(uilt) 13.2906 Tj +-255 TJm +(with) 17.7142 Tj +-255 TJm +(such) 18.2622 Tj +-255 TJm +(a) 4.42357 Tj +-255 TJm +(limitation,) 41.2468 Tj +-256 TJm +(run) 13.2807 Tj +-255 TJm +(it) 5.53943 Tj +-255 TJm +(without) 30.4469 Tj +-255 TJm +(ar) 7.74125 Tj +18 TJm +(guments.) 36.2554 Tj +-325 TJm +(In) 8.29918 Tj +-255 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-255 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +1 TJm +(t) 2.76971 Tj +-255 TJm +(you) 14.9445 Tj +-255 TJm +(can) 13.8286 Tj +-255 TJm +(b) 4.9815 Tj +20 TJm +(uild) 15.5024 Tj +-255 TJm +(yourself) 32.6488 Tj +-255 TJm +(an) 9.40507 Tj +-255 TJm +(unlimited) 38.1981 Tj +-255 TJm +(v) 4.9815 Tj +15 TJm +(ersion) 24.3496 Tj +-255 TJm +(if) 6.08739 Tj +72 410.278 Td +(you) 14.9445 Tj +-250 TJm +(can) 13.8286 Tj +-250 TJm +(recompile) 39.842 Tj +-250 TJm +(it) 5.53943 Tj +-250 TJm +(with) 17.7142 Tj +[1 0 0 1 176.318 410.278] cm +0 g +0 G +[1 0 0 1 -176.318 -410.278] cm +[1 0 0 1 0 0] Tm +0 0 Td +176.318 410.278 Td +/F130_0 9.963 Tf +(MaybeUInt64) 65.7558 Tj +[1 0 0 1 242.071 410.278] cm +0 g +0 G +[1 0 0 1 -242.071 -410.278] cm +[1 0 0 1 0 0] Tm +0 0 Td +244.562 410.278 Td +/F128_0 9.963 Tf +(set) 11.0689 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(an) 9.40507 Tj +-250 TJm +(unsigned) 35.9764 Tj +-250 TJm +(64-bit) 23.8016 Tj +-249 TJm +(inte) 14.9445 Tj +15 TJm +(ger) 12.7228 Tj +55 TJm +(.) 2.49075 Tj +[1 0 0 1 72 408.121] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -398.159] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 375.525 Td +/F121_0 20.659 Tf +(2.9.) 34.4592 Tj +-278 TJm +(A) 14.9158 Tj +50 TJm +(UTHOR) 73.4427 Tj +[1 0 0 1 72 375.267] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -365.305] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 353.608 Td +/F128_0 9.963 Tf +(Julian) 23.8016 Tj +-250 TJm +(Se) 9.963 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(ard,) 15.2135 Tj +[1 0 0 1 132.801 353.608] cm +0 g +0 G +[1 0 0 1 -132.801 -353.608] cm +[1 0 0 1 0 0] Tm +0 0 Td +132.801 353.608 Td +/F130_0 9.963 Tf +(jseward@bzip.org) 95.6448 Tj +[1 0 0 1 228.443 353.608] cm +0 g +0 G +[1 0 0 1 -156.443 -1.564] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -342.081] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 331.69 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-299 TJm +(ideas) 20.474 Tj +-300 TJm +(embodied) 39.2941 Tj +-299 TJm +(in) 7.75121 Tj +[1 0 0 1 166.942 331.69] cm +0 g +0 G +[1 0 0 1 -166.942 -331.69] cm +[1 0 0 1 0 0] Tm +0 0 Td +166.942 331.69 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 196.83 331.69] cm +0 g +0 G +[1 0 0 1 -196.83 -331.69] cm +[1 0 0 1 0 0] Tm +0 0 Td +199.813 331.69 Td +/F128_0 9.963 Tf +(are) 12.1648 Tj +-299 TJm +(due) 14.3866 Tj +-300 TJm +(to) 7.75121 Tj +-299 TJm +(\(at) 10.511 Tj +-300 TJm +(least\)) 21.5799 Tj +-299 TJm +(the) 12.1748 Tj +-299 TJm +(follo) 18.8201 Tj +25 TJm +(wing) 19.926 Tj +-300 TJm +(people:) 29.3311 Tj +-408 TJm +(Michael) 32.6488 Tj +-300 TJm +(Burro) 23.2437 Tj +25 TJm +(ws) 11.0689 Tj +-299 TJm +(and) 14.3866 Tj +-300 TJm +(D) 7.19329 Tj +1 TJm +(a) 4.42357 Tj +20 TJm +(vid) 12.7327 Tj +-300 TJm +(Wheeler) 33.7447 Tj +-299 TJm +(\(for) 14.9345 Tj +72 319.735 Td +(the) 12.1748 Tj +-312 TJm +(block) 22.1378 Tj +-313 TJm +(s) 3.87561 Tj +1 TJm +(orting) 23.8016 Tj +-313 TJm +(transformati) 48.6991 Tj +1 TJm +(on\),) 15.7714 Tj +-328 TJm +(Da) 11.6169 Tj +20 TJm +(vid) 12.7327 Tj +-313 TJm +(Whee) 23.2337 Tj +1 TJm +(ler) 10.511 Tj +-313 TJm +(\(ag) 12.7228 Tj +5 TJm +(ain,) 14.6655 Tj +-328 TJm +(for) 11.6169 Tj +-312 TJm +(the) 12.1748 Tj +-312 TJm +(Huf) 15.4925 Tj +25 TJm +(fman) 20.474 Tj +-312 TJm +(coder\),) 27.9363 Tj +-328 TJm +(Peter) 20.474 Tj +-312 TJm +(Fenwick) 34.3126 Tj +-313 TJm +(\(for) 14.9345 Tj +-312 TJm +(the) 12.1748 Tj +-312 TJm +(structured) 39.842 Tj +72 307.779 Td +(coding) 27.1193 Tj +-325 TJm +(model) 24.9075 Tj +-326 TJm +(in) 7.75121 Tj +-325 TJm +(the) 12.1748 Tj +-326 TJm +(origin) 23.8016 Tj +1 TJm +(al) 7.19329 Tj +[1 0 0 1 191.156 307.779] cm +0 g +0 G +[1 0 0 1 -191.156 -307.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +191.156 307.779 Td +/F130_0 9.963 Tf +(bzip) 23.9112 Tj +[1 0 0 1 215.067 307.779] cm +0 g +0 G +[1 0 0 1 -215.067 -307.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +215.067 307.779 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-344 TJm +(and) 14.3866 Tj +-326 TJm +(man) 17.1563 Tj +15 TJm +(y) 4.9815 Tj +-325 TJm +(re\002nements\),) 52.2958 Tj +-344 TJm +(and) 14.3866 Tj +-326 TJm +(Alistair) 29.889 Tj +-325 TJm +(Mof) 17.1563 Tj +25 TJm +(f) 3.31768 Tj +10 TJm +(at,) 9.68404 Tj +-344 TJm +(Radford) 32.6488 Tj +-326 TJm +(Ne) 11.6169 Tj +1 TJm +(al) 7.19329 Tj +-326 TJm +(and) 14.3866 Tj +-325 TJm +(Ian) 12.7228 Tj +-326 TJm +(W) 9.40507 Tj +40 TJm +(itten) 17.7142 Tj +-325 TJm +(\(for) 14.9345 Tj +72 295.824 Td +(the) 12.1748 Tj +-277 TJm +(arithmetic) 40.4 Tj +-277 TJm +(coder) 22.1278 Tj +-276 TJm +(in) 7.75121 Tj +-277 TJm +(the) 12.1748 Tj +-277 TJm +(original) 30.9949 Tj +[1 0 0 1 214.171 295.824] cm +0 g +0 G +[1 0 0 1 -214.171 -295.824] cm +[1 0 0 1 0 0] Tm +0 0 Td +214.171 295.824 Td +/F130_0 9.963 Tf +(bzip) 23.9112 Tj +[1 0 0 1 238.082 295.824] cm +0 g +0 G +[1 0 0 1 -238.082 -295.824] cm +[1 0 0 1 0 0] Tm +0 0 Td +238.082 295.824 Td +/F128_0 9.963 Tf +(\).) 5.80843 Tj +-782 TJm +(I) 3.31768 Tj +-276 TJm +(am) 12.1748 Tj +-277 TJm +(much) 22.1378 Tj +-277 TJm +(indebted) 34.3126 Tj +-277 TJm +(for) 11.6169 Tj +-277 TJm +(their) 18.2622 Tj +-277 TJm +(help,) 19.647 Tj +-283 TJm +(support) 29.889 Tj +-277 TJm +(and) 14.3866 Tj +-277 TJm +(advice.) 28.4942 Tj +-781 TJm +(See) 14.3866 Tj +-277 TJm +(the) 12.1748 Tj +-277 TJm +(manual) 29.3311 Tj +72 283.869 Td +(in) 7.75121 Tj +-330 TJm +(the) 12.1748 Tj +-330 TJm +(source) 26.0034 Tj +-329 TJm +(distrib) 25.4654 Tj +20 TJm +(ution) 20.4839 Tj +-330 TJm +(for) 11.6169 Tj +-330 TJm +(pointers) 32.1008 Tj +-330 TJm +(to) 7.75121 Tj +-330 TJm +(sour) 17.1563 Tj +1 TJm +(ces) 12.7228 Tj +-330 TJm +(of) 8.29918 Tj +-330 TJm +(documentation.) 61.7108 Tj +-1099 TJm +(Christian) 36.5343 Tj +-330 TJm +(v) 4.9815 Tj +20 TJm +(on) 9.963 Tj +-330 TJm +(Roques) 29.889 Tj +-330 TJm +(encou) 23.7916 Tj +1 TJm +(raged) 22.1278 Tj +-330 TJm +(me) 12.1748 Tj +-330 TJm +(to) 7.75121 Tj +-330 TJm +(look) 17.7142 Tj +72 271.914 Td +(for) 11.6169 Tj +-271 TJm +(f) 3.31768 Tj +10 TJm +(aster) 18.8101 Tj +-271 TJm +(sorting) 27.6772 Tj +-271 TJm +(algorithms,) 45.1125 Tj +-276 TJm +(so) 8.85711 Tj +-271 TJm +(as) 8.29918 Tj +-271 TJm +(to) 7.75121 Tj +-271 TJm +(speed) 22.6858 Tj +-271 TJm +(up) 9.963 Tj +-271 TJm +(compression.) 52.8537 Tj +-746 TJm +(Bela) 18.2622 Tj +-271 TJm +(Lubkin) 28.7831 Tj +-271 TJm +(encouraged) 45.9195 Tj +-271 TJm +(me) 12.1748 Tj +-271 TJm +(to) 7.75121 Tj +-271 TJm +(impro) 23.8016 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-271 TJm +(the) 12.1748 Tj +-271 TJm +(w) 7.19329 Tj +10 TJm +(orst-case) 35.4085 Tj +72 259.959 Td +(compression) 50.363 Tj +-340 TJm +(performan) 41.4959 Tj +1 TJm +(ce.) 11.3379 Tj +-580 TJm +(Donna) 26.5614 Tj +-340 TJm +(Robinson) 38.1981 Tj +-340 TJm +(XMLise) 33.2067 Tj +1 TJm +(d) 4.9815 Tj +-340 TJm +(the) 12.1748 Tj +-340 TJm +(documentation.) 61.7108 Tj +-580 TJm +(Man) 18.2622 Tj +15 TJm +(y) 4.9815 Tj +-339 TJm +(people) 26.5614 Tj +-340 TJm +(sent) 16.0504 Tj +-340 TJm +(patches,) 32.3698 Tj +-362 TJm +(helped) 26.5614 Tj +-340 TJm +(with) 17.7142 Tj +72 248.004 Td +(portability) 41.5158 Tj +-250 TJm +(problems,) 39.573 Tj +-250 TJm +(lent) 14.9445 Tj +-250 TJm +(m) 7.75121 Tj +1 TJm +(achines,) 32.3698 Tj +-250 TJm +(g) 4.9815 Tj +5 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(advice) 26.0034 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(were) 19.3581 Tj +-250 TJm +(generally) 37.0723 Tj +-250 TJm +(helpful.) 30.7159 Tj +[1 0 0 1 72 245.847] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -194.995] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.585] cm +0 g +0 G +0 g +0 G +[1 0 0 1 43.063 -6.486] cm +0 g +0 G +[1 0 0 1 -496.332 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +539.395 50.951 Td +/F128_0 9.963 Tf +(7) 4.9815 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 11 11 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 4.384 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 141.644 0] cm +0 g +0 G +[1 0 0 1 -141.644 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -13.948] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -15.037 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 701.916 Td +/F121_0 24.79 Tf +(3.) 20.6749 Tj +-556 TJm +(Pr) 26.1782 Tj +20 TJm +(ogramming) 134.982 Tj +-278 TJm +(with) 49.58 Tj +[1 0 0 1 330.484 701.916] cm +0 g +0 G +[1 0 0 1 -330.484 -701.916] cm +[1 0 0 1 0 0] Tm +0 0 Td +330.484 701.916 Td +/F387_0 24.79 Tf +(libbzip2) 118.992 Tj +[1 0 0 1 449.477 701.916] cm +0 g +0 G +[1 0 0 1 -377.477 -5.516] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -14.944] cm +0 g +0 G +[1 0 0 1 -72 -671.493] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 656.35 Td +/F121_0 17.215 Tf +(T) 10.5184 Tj +80 TJm +(ab) 20.0899 Tj +10 TJm +(le) 14.3573 Tj +-278 TJm +(of) 16.251 Tj +-278 TJm +(Contents) 74.5926 Tj +[1 0 0 1 72 647.528] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.74] cm +0 g +0 G +[1 0 0 1 -72 -635.788] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 635.788 Td +/F128_0 9.963 Tf +(3.1.) 14.9445 Tj +-310 TJm +(T) 6.08739 Tj +80 TJm +(op-le) 20.474 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(structure) 34.8605 Tj +[1 0 0 1 164.921 635.788] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -169.902 -635.788] cm +[1 0 0 1 0 0] Tm +0 0 Td +179.997 635.788 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 635.788] cm +0 g +0 G +[1 0 0 1 -511.108 -635.788] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 635.788 Td +/F128_0 9.963 Tf +(8) 4.9815 Tj +[1 0 0 1 516.09 635.788] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -623.832] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 623.832 Td +/F128_0 9.963 Tf +(3.1.1.) 22.4168 Tj +-310 TJm +(Lo) 11.0689 Tj +25 TJm +(w-le) 17.7043 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(summary) 37.0823 Tj +[1 0 0 1 225.195 623.832] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -230.176 -623.832] cm +[1 0 0 1 0 0] Tm +0 0 Td +238.915 623.832 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 623.832] cm +0 g +0 G +[1 0 0 1 -511.108 -623.832] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 623.832 Td +/F128_0 9.963 Tf +(9) 4.9815 Tj +[1 0 0 1 516.09 623.832] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.156] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -611.877] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 611.877 Td +/F128_0 9.963 Tf +(3.1.2.) 22.4168 Tj +-310 TJm +(High-le) 30.437 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(summary) 37.0823 Tj +[1 0 0 1 227.107 611.877] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -232.089 -611.877] cm +[1 0 0 1 0 0] Tm +0 0 Td +242.085 611.877 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 611.877] cm +0 g +0 G +[1 0 0 1 -511.108 -611.877] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 611.877 Td +/F128_0 9.963 Tf +(9) 4.9815 Tj +[1 0 0 1 516.09 611.877] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -599.922] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 599.922 Td +/F128_0 9.963 Tf +(3.1.3.) 22.4168 Tj +-310 TJm +(Utility) 26.0234 Tj +-250 TJm +(functions) 37.0823 Tj +-250 TJm +(sum) 16.6083 Tj +1 TJm +(mary) 20.474 Tj +[1 0 0 1 250.489 599.922] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -255.471 -599.922] cm +[1 0 0 1 0 0] Tm +0 0 Td +264.846 599.922 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 511.108 599.922] cm +0 g +0 G +[1 0 0 1 -511.108 -599.922] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.108 599.922 Td +/F128_0 9.963 Tf +(9) 4.9815 Tj +[1 0 0 1 516.09 599.922] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.798] cm +0 g +0 G +[1 0 0 1 -72 -587.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 587.967 Td +/F128_0 9.963 Tf +(3.2.) 14.9445 Tj +-310 TJm +(Error) 21.0219 Tj +-250 TJm +(handling) 34.8705 Tj +[1 0 0 1 148.413 587.967] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -153.394 -587.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +162.611 587.967 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 587.967] cm +0 g +0 G +[1 0 0 1 -506.127 -587.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 587.967 Td +/F128_0 9.963 Tf +(10) 9.963 Tj +[1 0 0 1 516.09 587.967] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.798] cm +0 g +0 G +[1 0 0 1 -72 -576.012] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 576.012 Td +/F128_0 9.963 Tf +(3.3.) 14.9445 Tj +-310 TJm +(Lo) 11.0689 Tj +25 TJm +(w-le) 17.7043 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(interf) 21.5799 Tj +10 TJm +(ace) 13.2707 Tj +[1 0 0 1 167.571 576.012] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -172.552 -576.012] cm +[1 0 0 1 0 0] Tm +0 0 Td +181.045 576.012 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 576.012] cm +0 g +0 G +[1 0 0 1 -506.127 -576.012] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 576.012 Td +/F128_0 9.963 Tf +(11) 9.963 Tj +[1 0 0 1 516.09 576.012] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -0.1] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -11.855] cm +0 g +0 G +[1 0 0 1 -119.821 -564.057] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 564.057 Td +/F128_0 9.963 Tf +(3.3.1.) 22.4168 Tj +-310 TJm +(BZ2_bzCompressInit) 85.7914 Tj +[1 0 0 1 231.112 564.057] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -236.094 -564.057] cm +[1 0 0 1 0 0] Tm +0 0 Td +246.025 564.057 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 564.057] cm +0 g +0 G +[1 0 0 1 -506.127 -564.057] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 564.057 Td +/F128_0 9.963 Tf +(11) 9.963 Tj +[1 0 0 1 516.09 564.057] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -552.101] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 552.101 Td +/F128_0 9.963 Tf +(3.3.2.) 22.4168 Tj +-310 TJm +(BZ2_bzCompress) 71.9528 Tj +[1 0 0 1 217.275 552.101] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -222.256 -552.101] cm +[1 0 0 1 0 0] Tm +0 0 Td +232.464 552.101 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 552.101] cm +0 g +0 G +[1 0 0 1 -506.127 -552.101] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 552.101 Td +/F128_0 9.963 Tf +(13) 9.963 Tj +[1 0 0 1 516.09 552.101] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.156] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -540.146] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 540.146 Td +/F128_0 9.963 Tf +(3.3.3.) 22.4168 Tj +-310 TJm +(BZ2_bzCompressEnd) 88.0032 Tj +[1 0 0 1 233.324 540.146] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -238.306 -540.146] cm +[1 0 0 1 0 0] Tm +0 0 Td +247.131 540.146 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 540.146] cm +0 g +0 G +[1 0 0 1 -506.127 -540.146] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 540.146 Td +/F128_0 9.963 Tf +(16) 9.963 Tj +[1 0 0 1 516.09 540.146] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -528.191] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 528.191 Td +/F128_0 9.963 Tf +(3.3.4.) 22.4168 Tj +-310 TJm +(BZ2_bzDecompressIni) 92.4168 Tj +1 TJm +(t) 2.76971 Tj +[1 0 0 1 240.507 528.191] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -245.488 -528.191] cm +[1 0 0 1 0 0] Tm +0 0 Td +255.15 528.191 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 528.191] cm +0 g +0 G +[1 0 0 1 -506.127 -528.191] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 528.191 Td +/F128_0 9.963 Tf +(16) 9.963 Tj +[1 0 0 1 516.09 528.191] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -516.236] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 516.236 Td +/F128_0 9.963 Tf +(3.3.5.) 22.4168 Tj +-310 TJm +(BZ2_bzDecompress) 81.3479 Tj +[1 0 0 1 226.669 516.236] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -231.651 -516.236] cm +[1 0 0 1 0 0] Tm +0 0 Td +241.589 516.236 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 516.236] cm +0 g +0 G +[1 0 0 1 -506.127 -516.236] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 516.236 Td +/F128_0 9.963 Tf +(17) 9.963 Tj +[1 0 0 1 516.09 516.236] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -504.281] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 504.281 Td +/F128_0 9.963 Tf +(3.3.6.) 22.4168 Tj +-310 TJm +(BZ2_bzDecompressEn) 92.4168 Tj +1 TJm +(d) 4.9815 Tj +[1 0 0 1 242.719 504.281] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -247.7 -504.281] cm +[1 0 0 1 0 0] Tm +0 0 Td +256.256 504.281 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 504.281] cm +0 g +0 G +[1 0 0 1 -506.127 -504.281] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 504.281 Td +/F128_0 9.963 Tf +(18) 9.963 Tj +[1 0 0 1 516.09 504.281] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.798] cm +0 g +0 G +[1 0 0 1 -72 -492.326] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 492.326 Td +/F128_0 9.963 Tf +(3.4.) 14.9445 Tj +-310 TJm +(High-le) 30.437 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(interf) 21.5799 Tj +10 TJm +(ace) 13.2707 Tj +[1 0 0 1 169.483 492.326] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -174.465 -492.326] cm +[1 0 0 1 0 0] Tm +0 0 Td +184.216 492.326 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 492.326] cm +0 g +0 G +[1 0 0 1 -506.127 -492.326] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 492.326 Td +/F128_0 9.963 Tf +(18) 9.963 Tj +[1 0 0 1 516.09 492.326] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -480.37] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 480.37 Td +/F128_0 9.963 Tf +(3.4.1.) 22.4168 Tj +-310 TJm +(BZ2_bzReadOpen) 74.1546 Tj +[1 0 0 1 219.476 480.37] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -224.458 -480.37] cm +[1 0 0 1 0 0] Tm +0 0 Td +233.565 480.37 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 480.37] cm +0 g +0 G +[1 0 0 1 -506.127 -480.37] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 480.37 Td +/F128_0 9.963 Tf +(19) 9.963 Tj +[1 0 0 1 516.09 480.37] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.156] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.799] cm +0 g +0 G +[1 0 0 1 -119.821 -468.415] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 468.415 Td +/F128_0 9.963 Tf +(3.4.2.) 22.4168 Tj +-310 TJm +(BZ2_bzRead) 52.5748 Tj +[1 0 0 1 197.898 468.415] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -202.879 -468.415] cm +[1 0 0 1 0 0] Tm +0 0 Td +211.706 468.415 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 468.415] cm +0 g +0 G +[1 0 0 1 -506.127 -468.415] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 468.415 Td +/F128_0 9.963 Tf +(20) 9.963 Tj +[1 0 0 1 516.09 468.415] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -1.18] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -10.775] cm +0 g +0 G +[1 0 0 1 -119.821 -456.46] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 456.46 Td +/F128_0 9.963 Tf +(3.4.3.) 22.4168 Tj +-310 TJm +(BZ2_bzReadGetUnuse) 92.4168 Tj +1 TJm +(d) 4.9815 Tj +[1 0 0 1 242.719 456.46] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -247.7 -456.46] cm +[1 0 0 1 0 0] Tm +0 0 Td +256.256 456.46 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 456.46] cm +0 g +0 G +[1 0 0 1 -506.127 -456.46] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 456.46 Td +/F128_0 9.963 Tf +(21) 9.963 Tj +[1 0 0 1 516.09 456.46] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -1.181] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -10.774] cm +0 g +0 G +[1 0 0 1 -119.821 -444.505] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 444.505 Td +/F128_0 9.963 Tf +(3.4.4.) 22.4168 Tj +-310 TJm +(BZ2_bzReadClose) 75.2705 Tj +[1 0 0 1 220.592 444.505] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -225.573 -444.505] cm +[1 0 0 1 0 0] Tm +0 0 Td +234.123 444.505 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 444.505] cm +0 g +0 G +[1 0 0 1 -506.127 -444.505] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 444.505 Td +/F128_0 9.963 Tf +(22) 9.963 Tj +[1 0 0 1 516.09 444.505] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -1.181] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -10.774] cm +0 g +0 G +[1 0 0 1 -119.821 -432.55] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 432.55 Td +/F128_0 9.963 Tf +(3.4.5.) 22.4168 Tj +-310 TJm +(BZ2_bzWriteOpen) 76.3664 Tj +[1 0 0 1 221.688 432.55] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -226.669 -432.55] cm +[1 0 0 1 0 0] Tm +0 0 Td +236.885 432.55 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 432.55] cm +0 g +0 G +[1 0 0 1 -506.127 -432.55] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 432.55 Td +/F128_0 9.963 Tf +(22) 9.963 Tj +[1 0 0 1 516.09 432.55] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -420.595] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 420.595 Td +/F128_0 9.963 Tf +(3.4.6.) 22.4168 Tj +-310 TJm +(BZ2_bzWrite) 54.7865 Tj +[1 0 0 1 200.109 420.595] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -205.09 -420.595] cm +[1 0 0 1 0 0] Tm +0 0 Td +215.026 420.595 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 420.595] cm +0 g +0 G +[1 0 0 1 -506.127 -420.595] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 420.595 Td +/F128_0 9.963 Tf +(23) 9.963 Tj +[1 0 0 1 516.09 420.595] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -1.181] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -10.775] cm +0 g +0 G +[1 0 0 1 -119.821 -408.639] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 408.639 Td +/F128_0 9.963 Tf +(3.4.7.) 22.4168 Tj +-310 TJm +(BZ2_bzWriteClose) 77.4823 Tj +[1 0 0 1 222.804 408.639] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -227.785 -408.639] cm +[1 0 0 1 0 0] Tm +0 0 Td +237.443 408.639 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 408.639] cm +0 g +0 G +[1 0 0 1 -506.127 -408.639] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 408.639 Td +/F128_0 9.963 Tf +(23) 9.963 Tj +[1 0 0 1 516.09 408.639] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -1.18] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -10.775] cm +0 g +0 G +[1 0 0 1 -119.821 -396.684] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 396.684 Td +/F128_0 9.963 Tf +(3.4.8.) 22.4168 Tj +-310 TJm +(Handling) 37.0823 Tj +-250 TJm +(embedded) 40.9479 Tj +-250 TJm +(com) 17.1563 Tj +1 TJm +(pressed) 29.879 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(streams) 30.437 Tj +[1 0 0 1 327.38 396.684] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -332.362 -396.684] cm +[1 0 0 1 0 0] Tm +0 0 Td +342.865 396.684 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 396.684] cm +0 g +0 G +[1 0 0 1 -506.127 -396.684] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 396.684 Td +/F128_0 9.963 Tf +(24) 9.963 Tj +[1 0 0 1 516.09 396.684] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -384.729] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 384.729 Td +/F128_0 9.963 Tf +(3.4.9.) 22.4168 Tj +-310 TJm +(Standard) 35.4185 Tj +-250 TJm +(\002le-reading/) 48.6991 Tj +1 TJm +(writing) 28.7831 Tj +-250 TJm +(code) 18.8101 Tj +[1 0 0 1 282.011 384.729] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -286.992 -384.729] cm +[1 0 0 1 0 0] Tm +0 0 Td +295.827 384.729 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 384.729] cm +0 g +0 G +[1 0 0 1 -506.127 -384.729] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 384.729 Td +/F128_0 9.963 Tf +(25) 9.963 Tj +[1 0 0 1 516.09 384.729] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.798] cm +0 g +0 G +[1 0 0 1 -72 -372.774] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 372.774 Td +/F128_0 9.963 Tf +(3.5.) 14.9445 Tj +-310 TJm +(Utility) 26.0234 Tj +-250 TJm +(functions) 37.0823 Tj +[1 0 0 1 155.625 372.774] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -160.607 -372.774] cm +[1 0 0 1 0 0] Tm +0 0 Td +170.645 372.774 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 372.774] cm +0 g +0 G +[1 0 0 1 -506.127 -372.774] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 372.774 Td +/F128_0 9.963 Tf +(26) 9.963 Tj +[1 0 0 1 516.09 372.774] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -360.819] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 360.819 Td +/F128_0 9.963 Tf +(3.5.1.) 22.4168 Tj +-310 TJm +(BZ2_bzBuf) 47.0453 Tj +25 TJm +(fT) 9.40507 Tj +80 TJm +(oBuf) 19.926 Tj +25 TJm +(fCom) 22.6957 Tj +1 TJm +(press) 20.474 Tj +[1 0 0 1 263.571 360.819] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -268.552 -360.819] cm +[1 0 0 1 0 0] Tm +0 0 Td +277.751 360.819 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 360.819] cm +0 g +0 G +[1 0 0 1 -506.127 -360.819] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 360.819 Td +/F128_0 9.963 Tf +(26) 9.963 Tj +[1 0 0 1 516.09 360.819] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -348.864] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 348.864 Td +/F128_0 9.963 Tf +(3.5.2.) 22.4168 Tj +-310 TJm +(BZ2_bzBuf) 47.0453 Tj +25 TJm +(fT) 9.40507 Tj +80 TJm +(oBuf) 19.926 Tj +25 TJm +(fDeco) 24.3396 Tj +1 TJm +(mpress) 28.2252 Tj +[1 0 0 1 272.965 348.864] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -277.947 -348.864] cm +[1 0 0 1 0 0] Tm +0 0 Td +286.876 348.864 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 348.864] cm +0 g +0 G +[1 0 0 1 -506.127 -348.864] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 348.864 Td +/F128_0 9.963 Tf +(27) 9.963 Tj +[1 0 0 1 516.09 348.864] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.799] cm +0 g +0 G +[1 0 0 1 -72 -336.908] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 336.908 Td +/F128_0 9.963 Tf +(3.6.) 14.9445 Tj +-310 TJm +(zlib) 14.9445 Tj +-250 TJm +(compatibility) 53.1426 Tj +-250 TJm +(funct) 20.474 Tj +1 TJm +(ions) 16.6083 Tj +[1 0 0 1 200.178 336.908] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -205.159 -336.908] cm +[1 0 0 1 0 0] Tm +0 0 Td +215.06 336.908 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 336.908] cm +0 g +0 G +[1 0 0 1 -506.127 -336.908] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 336.908 Td +/F128_0 9.963 Tf +(28) 9.963 Tj +[1 0 0 1 516.09 336.908] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.156] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.799] cm +0 g +0 G +[1 0 0 1 -72 -324.953] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 324.953 Td +/F128_0 9.963 Tf +(3.7.) 14.9445 Tj +-310 TJm +(Using) 23.8016 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(library) 26.5614 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(std) 11.6268 Tj +1 TJm +(io-free) 26.5514 Tj +-250 TJm +(en) 9.40507 Tj +40 TJm +(vironment) 40.9579 Tj +[1 0 0 1 267.824 324.953] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -272.805 -324.953] cm +[1 0 0 1 0 0] Tm +0 0 Td +282.092 324.953 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 324.953] cm +0 g +0 G +[1 0 0 1 -506.127 -324.953] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 324.953 Td +/F128_0 9.963 Tf +(28) 9.963 Tj +[1 0 0 1 516.09 324.953] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -312.998] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 312.998 Td +/F128_0 9.963 Tf +(3.7.1.) 22.4168 Tj +-310 TJm +(Getting) 29.889 Tj +-250 TJm +(rid) 11.0689 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(stdio) 19.378 Tj +[1 0 0 1 221.429 312.998] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -226.41 -312.998] cm +[1 0 0 1 0 0] Tm +0 0 Td +236.755 312.998 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 312.998] cm +0 g +0 G +[1 0 0 1 -506.127 -312.998] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 312.998 Td +/F128_0 9.963 Tf +(29) 9.963 Tj +[1 0 0 1 516.09 312.998] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 47.821 -9.798] cm +0 g +0 G +[1 0 0 1 -119.821 -301.043] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 301.043 Td +/F128_0 9.963 Tf +(3.7.2.) 22.4168 Tj +-310 TJm +(Critical) 29.889 Tj +-250 TJm +(error) 19.3581 Tj +-250 TJm +(handlin) 29.889 Tj +1 TJm +(g) 4.9815 Tj +[1 0 0 1 234.42 301.043] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -239.401 -301.043] cm +[1 0 0 1 0 0] Tm +0 0 Td +249.892 301.043 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 301.043] cm +0 g +0 G +[1 0 0 1 -506.127 -301.043] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 301.043 Td +/F128_0 9.963 Tf +(29) 9.963 Tj +[1 0 0 1 516.09 301.043] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.798] cm +0 g +0 G +[1 0 0 1 -72 -289.088] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 289.088 Td +/F128_0 9.963 Tf +(3.8.) 14.9445 Tj +-310 TJm +(Making) 30.9949 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(W) 9.40507 Tj +40 TJm +(indo) 17.7142 Tj +25 TJm +(ws) 11.0689 Tj +-250 TJm +(DLL) 19.3681 Tj +[1 0 0 1 189.827 289.088] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -194.809 -289.088] cm +[1 0 0 1 0 0] Tm +0 0 Td +203.243 289.088 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 289.088] cm +0 g +0 G +[1 0 0 1 -506.127 -289.088] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 289.088 Td +/F128_0 9.963 Tf +(29) 9.963 Tj +[1 0 0 1 516.09 289.088] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -267.006] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 257.207 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-250 TJm +(chapter) 29.3211 Tj +-250 TJm +(describes) 37.0723 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(pr) 8.29918 Tj +1 TJm +(ogramming) 45.9394 Tj +-250 TJm +(interf) 21.5799 Tj +10 TJm +(ace) 13.2707 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 282.448 257.207] cm +0 g +0 G +[1 0 0 1 -282.448 -257.207] cm +[1 0 0 1 0 0] Tm +0 0 Td +282.448 257.207 Td +/F130_0 9.963 Tf +(libbzip2) 47.8224 Tj +[1 0 0 1 330.269 257.207] cm +0 g +0 G +[1 0 0 1 -330.269 -257.207] cm +[1 0 0 1 0 0] Tm +0 0 Td +330.269 257.207 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 255.05] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -245.088] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 235.289 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-273 TJm +(general) 29.3211 Tj +-272 TJm +(background) 47.0353 Tj +-273 TJm +(informati) 37.0823 Tj +1 TJm +(on,) 12.4538 Tj +-279 TJm +(particularly) 45.9294 Tj +-272 TJm +(about) 22.1378 Tj +-273 TJm +(memory) 33.2067 Tj +-272 TJm +(use) 13.2807 Tj +-273 TJm +(and) 14.3866 Tj +-273 TJm +(perfor) 24.3396 Tj +1 TJm +(mance) 26.0034 Tj +-273 TJm +(aspects,) 31.2639 Tj +-278 TJm +(you') 18.2622 Tj +50 TJm +(d) 4.9815 Tj +-273 TJm +(be) 9.40507 Tj +-272 TJm +(well) 17.1563 Tj +-273 TJm +(advised) 30.437 Tj +72 223.334 Td +(to) 7.75121 Tj +-250 TJm +(read) 17.1463 Tj +[1 0 0 1 101.878 223.334] cm +0 0 1 rg +0 0 1 RG +[1 0 0 1 -101.878 -223.334] cm +[1 0 0 1 0 0] Tm +0 0 Td +101.878 223.334 Td +/F128_0 9.963 Tf +(Ho) 12.1748 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(bzip2) 22.1378 Tj +[1 0 0 1 171.636 223.334] cm +0 g +0 G +0 0 1 rg +0 0 1 RG +0 0 1 rg +0 0 1 RG +[1 0 0 1 -171.636 -223.334] cm +[1 0 0 1 0 0] Tm +0 0 Td +174.126 223.334 Td +/F128_0 9.963 Tf +([2]) 11.6169 Tj +[1 0 0 1 185.743 223.334] cm +0 0 1 rg +0 0 1 RG +0 g +0 G +[1 0 0 1 -185.743 -223.334] cm +[1 0 0 1 0 0] Tm +0 0 Td +188.233 223.334 Td +/F128_0 9.963 Tf +(as) 8.29918 Tj +-250 TJm +(well.) 19.647 Tj +[1 0 0 1 72 221.177] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -211.215] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 188.581 Td +/F121_0 20.659 Tf +(3.1.) 34.4592 Tj +-278 TJm +(T) 12.6226 Tj +80 TJm +(op-le) 49.3544 Tj +15 TJm +(vel) 28.716 Tj +-278 TJm +(structure) 89.5361 Tj +[1 0 0 1 72 184.305] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -174.343] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 166.664 Td +/F130_0 9.963 Tf +(libbzip2) 47.8224 Tj +[1 0 0 1 119.821 166.664] cm +0 g +0 G +[1 0 0 1 -119.821 -166.664] cm +[1 0 0 1 0 0] Tm +0 0 Td +123.608 166.664 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-380 TJm +(a) 4.42357 Tj +-380 TJm +(\003e) 9.963 Tj +15 TJm +(xible) 19.926 Tj +-380 TJm +(library) 26.5614 Tj +-380 TJm +(for) 11.6169 Tj +-381 TJm +(com) 17.1563 Tj +1 TJm +(pressing) 33.2067 Tj +-381 TJm +(an) 9.40507 Tj +1 TJm +(d) 4.9815 Tj +-381 TJm +(decompre) 39.2841 Tj +1 TJm +(ssing) 20.4839 Tj +-381 TJm +(data) 16.5984 Tj +-380 TJm +(in) 7.75121 Tj +-380 TJm +(the) 12.1748 Tj +[1 0 0 1 405.291 166.664] cm +0 g +0 G +[1 0 0 1 -405.291 -166.664] cm +[1 0 0 1 0 0] Tm +0 0 Td +405.291 166.664 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 435.179 166.664] cm +0 g +0 G +[1 0 0 1 -435.179 -166.664] cm +[1 0 0 1 0 0] Tm +0 0 Td +438.966 166.664 Td +/F128_0 9.963 Tf +(data) 16.5984 Tj +-380 TJm +(format.) 29.0521 Tj +-1401 TJm +(Although) 37.6402 Tj +72 154.708 Td +(packaged) 37.6203 Tj +-285 TJm +(as) 8.29918 Tj +-284 TJm +(a) 4.42357 Tj +-285 TJm +(single) 23.8016 Tj +-284 TJm +(entity) 22.6957 Tj +65 TJm +(,) 2.49075 Tj +-294 TJm +(it) 5.53943 Tj +-284 TJm +(helps) 21.0319 Tj +-285 TJm +(to) 7.75121 Tj +-285 TJm +(re) 7.74125 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(ard) 12.7228 Tj +-284 TJm +(the) 12.1748 Tj +-285 TJm +(library) 26.5614 Tj +-285 TJm +(a) 4.42357 Tj +1 TJm +(s) 3.87561 Tj +-285 TJm +(three) 19.916 Tj +-285 TJm +(separate) 32.6388 Tj +-284 TJm +(parts:) 22.1378 Tj +-380 TJm +(the) 12.1748 Tj +-284 TJm +(lo) 7.75121 Tj +25 TJm +(w) 7.19329 Tj +-285 TJm +(le) 7.19329 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-285 TJm +(i) 2.76971 Tj +1 TJm +(nterf) 18.8101 Tj +10 TJm +(ace,) 15.7615 Tj +-294 TJm +(and) 14.3866 Tj +-284 TJm +(the) 12.1748 Tj +-285 TJm +(high) 17.7142 Tj +72 142.753 Td +(le) 7.19329 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(interf) 21.5799 Tj +10 TJm +(ace,) 15.7615 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(some) 21.0319 Tj +-250 TJm +(uti) 10.5209 Tj +1 TJm +(lity) 13.2906 Tj +-250 TJm +(functions.) 39.573 Tj +[1 0 0 1 72 140.596] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -130.634] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 120.835 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-349 TJm +(structure) 34.8605 Tj +-349 TJm +(of) 8.29918 Tj +[1 0 0 1 141.082 120.835] cm +0 g +0 G +[1 0 0 1 -141.082 -120.835] cm +[1 0 0 1 0 0] Tm +0 0 Td +141.082 120.835 Td +/F130_0 9.963 Tf +(libbzip2) 47.8224 Tj +[1 0 0 1 188.903 120.835] cm +0 g +0 G +[1 0 0 1 -188.903 -120.835] cm +[1 0 0 1 0 0] Tm +0 0 Td +188.903 120.835 Td +/F128_0 9.963 Tf +(') 3.31768 Tj +55 TJm +(s) 3.87561 Tj +-349 TJm +(interf) 21.5799 Tj +10 TJm +(aces) 17.1463 Tj +-349 TJm +(is) 6.64532 Tj +-349 TJm +(similar) 27.6772 Tj +-349 TJm +(to) 7.75121 Tj +-349 TJm +(that) 14.9445 Tj +-349 TJm +(of) 8.29918 Tj +-349 TJm +(Jean-loup) 38.7361 Tj +-349 TJm +(Gailly') 28.2252 Tj +55 TJm +(s) 3.87561 Tj +-349 TJm +(an) 9.40507 Tj +1 TJm +(d) 4.9815 Tj +-350 TJm +(M) 8.85711 Tj +1 TJm +(ark) 12.7228 Tj +-349 TJm +(Adler') 26.0034 Tj +55 TJm +(s) 3.87561 Tj +-349 TJm +(e) 4.42357 Tj +15 TJm +(xcellent) 31.5429 Tj +[1 0 0 1 516.09 120.835] cm +0 g +0 G +[1 0 0 1 -516.09 -120.835] cm +[1 0 0 1 0 0] Tm +0 0 Td +516.09 120.835 Td +/F130_0 9.963 Tf +(zlib) 23.9112 Tj +[1 0 0 1 540 120.835] cm +0 g +0 G +[1 0 0 1 -540 -120.835] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 108.88 Td +/F128_0 9.963 Tf +(library) 26.5614 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 106.723] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -96.761] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 86.962 Td +/F128_0 9.963 Tf +(All) 12.7327 Tj +-242 TJm +(e) 4.42357 Tj +15 TJm +(xternally) 35.4185 Tj +-241 TJm +(visible) 26.5713 Tj +-242 TJm +(symbols) 33.2166 Tj +-242 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-241 TJm +(names) 25.4555 Tj +-242 TJm +(be) 9.40507 Tj +15 TJm +(ginning) 30.4469 Tj +[1 0 0 1 284.687 86.962] cm +0 g +0 G +[1 0 0 1 -284.687 -86.962] cm +[1 0 0 1 0 0] Tm +0 0 Td +284.687 86.962 Td +/F130_0 9.963 Tf +(BZ2_) 23.9112 Tj +[1 0 0 1 308.597 86.962] cm +0 g +0 G +[1 0 0 1 -308.597 -86.962] cm +[1 0 0 1 0 0] Tm +0 0 Td +308.597 86.962 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-615 TJm +(T) 6.08739 Tj +1 TJm +(his) 11.6268 Tj +-242 TJm +(is) 6.64532 Tj +-242 TJm +(ne) 9.40507 Tj +25 TJm +(w) 7.19329 Tj +-242 TJm +(in) 7.75121 Tj +-241 TJm +(v) 4.9815 Tj +15 TJm +(ersion) 24.3496 Tj +-242 TJm +(1.0.) 14.9445 Tj +-615 TJm +(The) 15.4925 Tj +-241 TJm +(intention) 35.4284 Tj +-242 TJm +(is) 6.64532 Tj +-242 TJm +(to) 7.75121 Tj +-241 TJm +(minimise) 37.0922 Tj +72 75.007 Td +(pollution) 35.9864 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(namespaces) 47.5833 Tj +-249 TJm +(of) 8.29918 Tj +-250 TJm +(library) 26.5614 Tj +-250 TJm +(clients.) 28.5041 Tj +[1 0 0 1 72 72.85] cm +0 g +0 G +[1 0 0 1 0 -21.998] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 4.384 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 43.064 -6.755] cm +0 g +0 G +[1 0 0 1 -498.225 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +541.288 50.951 Td +/F128_0 9.963 Tf +(8) 4.9815 Tj +[1 0 0 1 455.161 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.599 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -15.037 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 12 12 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 4.384 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -352.044 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +436.124 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip) 27.6772 Tj +1 TJm +(2) 4.9815 Tj +[1 0 0 1 267.964 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -15.037 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(T) 6.08739 Tj +80 TJm +(o) 4.9815 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-250 TJm +(part) 15.4925 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +-250 TJm +(yo) 9.963 Tj +1 TJm +(u) 4.9815 Tj +-250 TJm +(need) 18.8101 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 240.567 710.037] cm +0 g +0 G +[1 0 0 1 -240.567 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +240.567 710.037 Td +/F130_0 9.963 Tf +(#include) 47.8224 Tj +-600 TJm +() 53.8002 Tj +[1 0 0 1 348.163 710.037] cm +0 g +0 G +[1 0 0 1 -348.163 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +350.654 710.037 Td +/F128_0 9.963 Tf +(into) 15.5024 Tj +-250 TJm +(your) 18.2622 Tj +-250 TJm +(sources.) 32.3698 Tj +[1 0 0 1 72 707.881] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -697.918] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 679.416 Td +/F121_0 17.215 Tf +(3.1.1.) 43.0719 Tj +-278 TJm +(Lo) 21.0367 Tj +15 TJm +(w-le) 33.4832 Tj +15 TJm +(vel) 23.9289 Tj +-278 TJm +(summar) 66.9664 Tj +-10 TJm +(y) 9.57154 Tj +[1 0 0 1 72 675.853] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -665.89] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 657.498 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-212 TJm +(interf) 21.5799 Tj +10 TJm +(ace) 13.2707 Tj +-212 TJm +(pro) 13.2807 Tj +15 TJm +(vides) 21.0319 Tj +-211 TJm +(services) 32.0908 Tj +-212 TJm +(for) 11.6169 Tj +-212 TJm +(compressing) 50.363 Tj +-212 TJm +(and) 14.3866 Tj +-212 TJm +(decompressi) 49.805 Tj +1 TJm +(ng) 9.963 Tj +-212 TJm +(data) 16.5984 Tj +-212 TJm +(in) 7.75121 Tj +-212 TJm +(memory) 33.2067 Tj +65 TJm +(.) 2.49075 Tj +-595 TJm +(There') 26.5514 Tj +55 TJm +(s) 3.87561 Tj +-211 TJm +(no) 9.963 Tj +-212 TJm +(pro) 13.2807 Tj +15 TJm +(vision) 24.3595 Tj +-212 TJm +(for) 11.6169 Tj +-212 TJm +(dealing) 29.3311 Tj +72 645.543 Td +(with) 17.7142 Tj +-213 TJm +(\002les,) 19.0991 Tj +-220 TJm +(streams) 30.437 Tj +-213 TJm +(or) 8.29918 Tj +-213 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-213 TJm +(other) 20.474 Tj +-213 TJm +(I/O) 13.2807 Tj +-213 TJm +(mechanisms,) 51.7478 Tj +-220 TJm +(just) 14.3965 Tj +-213 TJm +(straight) 29.889 Tj +-213 TJm +(memory-to-memory) 80.7999 Tj +-213 TJm +(w) 7.19329 Tj +10 TJm +(ork.) 15.7714 Tj +-595 TJm +(In) 8.29918 Tj +-213 TJm +(f) 3.31768 Tj +10 TJm +(act,) 14.1076 Tj +-220 TJm +(this) 14.3965 Tj +-213 TJm +(part) 15.4925 Tj +-213 TJm +(of) 8.29918 Tj +-213 TJm +(the) 12.1748 Tj +-213 TJm +(library) 26.5614 Tj +72 633.588 Td +(can) 13.8286 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(compiled) 37.0823 Tj +-250 TJm +(without) 30.4469 Tj +-250 TJm +(incl) 14.9445 Tj +1 TJm +(usion) 21.5898 Tj +-250 TJm +(of) 8.29918 Tj +[1 0 0 1 222.534 633.588] cm +0 g +0 G +[1 0 0 1 -222.534 -633.588] cm +[1 0 0 1 0 0] Tm +0 0 Td +222.534 633.588 Td +/F130_0 9.963 Tf +(stdio.h) 41.8446 Tj +[1 0 0 1 264.377 633.588] cm +0 g +0 G +[1 0 0 1 -264.377 -633.588] cm +[1 0 0 1 0 0] Tm +0 0 Td +264.377 633.588 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(may) 17.1563 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(helpful) 28.2252 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(emb) 17.1563 Tj +1 TJm +(edded) 23.7916 Tj +-250 TJm +(applications.) 50.6419 Tj +[1 0 0 1 72 631.431] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -621.469] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 611.67 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-250 TJm +(lo) 7.75121 Tj +25 TJm +(w-le) 17.7043 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(part) 15.4925 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(libra) 18.2622 Tj +1 TJm +(ry) 8.29918 Tj +-250 TJm +(has) 13.2807 Tj +-250 TJm +(no) 9.963 Tj +-250 TJm +(global) 24.9075 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(ariables) 30.9849 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(therefore) 35.9565 Tj +-250 TJm +(thread-safe.) 46.7464 Tj +[1 0 0 1 72 609.513] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -599.551] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 589.752 Td +/F128_0 9.963 Tf +(Six) 13.2906 Tj +-875 TJm +(routines) 32.1008 Tj +-876 TJm +(mak) 17.1563 Tj +10 TJm +(e) 4.42357 Tj +-875 TJm +(up) 9.963 Tj +-875 TJm +(the) 12.1748 Tj +-876 TJm +(lo) 7.75121 Tj +25 TJm +(w) 7.19329 Tj +-875 TJm +(le) 7.19329 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-875 TJm +(interf) 21.5799 Tj +10 TJm +(ace:) 16.0404 Tj +[1 0 0 1 308.791 589.752] cm +0 g +0 G +[1 0 0 1 -308.791 -589.752] cm +[1 0 0 1 0 0] Tm +0 0 Td +308.791 589.752 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 416.387 589.752] cm +0 g +0 G +[1 0 0 1 -416.387 -589.752] cm +[1 0 0 1 0 0] Tm +0 0 Td +416.387 589.752 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 429.158 589.752] cm +0 g +0 G +[1 0 0 1 -429.158 -589.752] cm +[1 0 0 1 0 0] Tm +0 0 Td +429.158 589.752 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 512.844 589.752] cm +0 g +0 G +[1 0 0 1 -512.844 -589.752] cm +[1 0 0 1 0 0] Tm +0 0 Td +512.844 589.752 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-1032 TJm +(and) 14.3866 Tj +[1 0 0 1 72 577.797] cm +0 g +0 G +[1 0 0 1 -72 -577.797] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 577.797 Td +/F130_0 9.963 Tf +(BZ2_bzCompressEnd) 101.623 Tj +[1 0 0 1 173.619 577.797] cm +0 g +0 G +[1 0 0 1 -173.619 -577.797] cm +[1 0 0 1 0 0] Tm +0 0 Td +186.15 577.797 Td +/F128_0 9.963 Tf +(for) 11.6169 Tj +-1258 TJm +(compression,) 52.8537 Tj +-1509 TJm +(and) 14.3866 Tj +-1258 TJm +(a) 4.42357 Tj +-1258 TJm +(correspond) 44.2656 Tj +1 TJm +(ing) 12.7327 Tj +-1258 TJm +(trio) 13.8386 Tj +[1 0 0 1 417.958 577.797] cm +0 g +0 G +[1 0 0 1 -417.958 -577.797] cm +[1 0 0 1 0 0] Tm +0 0 Td +417.958 577.797 Td +/F130_0 9.963 Tf +(BZ2_bzDecompressInit) 119.556 Tj +[1 0 0 1 537.509 577.797] cm +0 g +0 G +[1 0 0 1 -537.509 -577.797] cm +[1 0 0 1 0 0] Tm +0 0 Td +537.509 577.797 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 72 565.842] cm +0 g +0 G +[1 0 0 1 -72 -565.842] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 565.842 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 167.641 565.842] cm +0 g +0 G +[1 0 0 1 -167.641 -565.842] cm +[1 0 0 1 0 0] Tm +0 0 Td +172.707 565.842 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 192.158 565.842] cm +0 g +0 G +[1 0 0 1 -192.158 -565.842] cm +[1 0 0 1 0 0] Tm +0 0 Td +192.158 565.842 Td +/F130_0 9.963 Tf +(BZ2_bzDecompressEnd) 113.578 Tj +[1 0 0 1 305.732 565.842] cm +0 g +0 G +[1 0 0 1 -305.732 -565.842] cm +[1 0 0 1 0 0] Tm +0 0 Td +310.798 565.842 Td +/F128_0 9.963 Tf +(for) 11.6169 Tj +-508 TJm +(decompression.) 62.2588 Tj +-2171 TJm +(The) 15.4925 Tj +[1 0 0 1 431.918 565.842] cm +0 g +0 G +[1 0 0 1 -431.918 -565.842] cm +[1 0 0 1 0 0] Tm +0 0 Td +431.918 565.842 Td +/F130_0 9.963 Tf +(*Init) 29.889 Tj +[1 0 0 1 461.805 565.842] cm +0 g +0 G +[1 0 0 1 -461.805 -565.842] cm +[1 0 0 1 0 0] Tm +0 0 Td +466.871 565.842 Td +/F128_0 9.963 Tf +(functions) 37.0823 Tj +-508 TJm +(allocate) 30.9849 Tj +72 553.887 Td +(memory) 33.2067 Tj +-574 TJm +(f) 3.31768 Tj +1 TJm +(or) 8.29918 Tj +-574 TJm +(compression/decompression) 112.901 Tj +-573 TJm +(and) 14.3866 Tj +-574 TJm +(do) 9.963 Tj +-573 TJm +(other) 20.474 Tj +-574 TJm +(initialisations,) 56.1913 Tj +-654 TJm +(whilst) 24.3595 Tj +-574 TJm +(the) 12.1748 Tj +[1 0 0 1 419.503 553.887] cm +0 g +0 G +[1 0 0 1 -419.503 -553.887] cm +[1 0 0 1 0 0] Tm +0 0 Td +419.503 553.887 Td +/F130_0 9.963 Tf +(*End) 23.9112 Tj +[1 0 0 1 443.413 553.887] cm +0 g +0 G +[1 0 0 1 -443.413 -553.887] cm +[1 0 0 1 0 0] Tm +0 0 Td +449.128 553.887 Td +/F128_0 9.963 Tf +(functions) 37.0823 Tj +-573 TJm +(close) 20.474 Tj +-574 TJm +(do) 9.963 Tj +25 TJm +(wn) 12.1748 Tj +72 541.932 Td +(operations) 41.5059 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(release) 27.6573 Tj +-250 TJm +(mem) 19.926 Tj +1 TJm +(ory) 13.2807 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 539.775] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -529.812] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 520.014 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-303 TJm +(real) 14.9345 Tj +-303 TJm +(w) 7.19329 Tj +10 TJm +(ork) 13.2807 Tj +-303 TJm +(is) 6.64532 Tj +-303 TJm +(done) 19.3681 Tj +-303 TJm +(by) 9.963 Tj +[1 0 0 1 176.892 520.014] cm +0 g +0 G +[1 0 0 1 -176.892 -520.014] cm +[1 0 0 1 0 0] Tm +0 0 Td +176.892 520.014 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 260.578 520.014] cm +0 g +0 G +[1 0 0 1 -260.578 -520.014] cm +[1 0 0 1 0 0] Tm +0 0 Td +263.598 520.014 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 281.003 520.014] cm +0 g +0 G +[1 0 0 1 -281.003 -520.014] cm +[1 0 0 1 0 0] Tm +0 0 Td +281.003 520.014 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 376.645 520.014] cm +0 g +0 G +[1 0 0 1 -376.645 -520.014] cm +[1 0 0 1 0 0] Tm +0 0 Td +376.645 520.014 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-938 TJm +(These) 23.7916 Tj +-303 TJm +(compress) 37.6303 Tj +-303 TJm +(and) 14.3866 Tj +-303 TJm +(decompress) 47.0353 Tj +-303 TJm +(data) 16.5984 Tj +72 508.059 Td +(from) 19.3681 Tj +-205 TJm +(a) 4.42357 Tj +-205 TJm +(user) 16.5984 Tj +20 TJm +(-supplied) 37.0823 Tj +-205 TJm +(input) 20.4839 Tj +-205 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-205 TJm +(to) 7.75121 Tj +-205 TJm +(a) 4.42357 Tj +-206 TJm +(use) 13.2807 Tj +1 TJm +(r) 3.31768 Tj +20 TJm +(-supplied) 37.0823 Tj +-205 TJm +(output) 25.4654 Tj +-206 TJm +(b) 4.9815 Tj +20 TJm +(u) 4.9815 Tj +1 TJm +(f) 3.31768 Tj +25 TJm +(fer) 11.0589 Tj +55 TJm +(.) 2.49075 Tj +-591 TJm +(T) 6.08739 Tj +1 TJm +(hese) 17.7043 Tj +-206 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +1 TJm +(s) 3.87561 Tj +-206 TJm +(can) 13.8286 Tj +-205 TJm +(be) 9.40507 Tj +-205 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-205 TJm +(size;) 18.2622 Tj +-220 TJm +(arbitrary) 34.3026 Tj +-205 TJm +(quantities) 38.7461 Tj +-205 TJm +(of) 8.29918 Tj +72 496.104 Td +(data) 16.5984 Tj +-258 TJm +(are) 12.1648 Tj +-258 TJm +(handl) 22.1378 Tj +1 TJm +(ed) 9.40507 Tj +-258 TJm +(by) 9.963 Tj +-258 TJm +(making) 29.889 Tj +-258 TJm +(repeated) 33.7447 Tj +-258 TJm +(cal) 11.6169 Tj +1 TJm +(ls) 6.64532 Tj +-258 TJm +(to) 7.75121 Tj +-258 TJm +(these) 20.474 Tj +-258 TJm +(functions.) 39.573 Tj +-667 TJm +(This) 17.7142 Tj +-258 TJm +(is) 6.64532 Tj +-257 TJm +(a) 4.42357 Tj +-258 TJm +(\003e) 9.963 Tj +15 TJm +(xible) 19.926 Tj +-258 TJm +(mechanism) 45.3815 Tj +-258 TJm +(allo) 14.9445 Tj +25 TJm +(wing) 19.926 Tj +-257 TJm +(a) 4.42357 Tj +-258 TJm +(consumer) 38.7361 Tj +20 TJm +(-pull) 18.8201 Tj +72 484.148 Td +(style) 18.8201 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(acti) 14.3866 Tj +25 TJm +(vity) 15.5024 Tj +65 TJm +(,) 2.49075 Tj +-250 TJm +(or) 8.29918 Tj +-250 TJm +(producer) 35.4085 Tj +20 TJm +(-p) 8.29918 Tj +1 TJm +(ush,) 16.3294 Tj +-250 TJm +(or) 8.29918 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(mixture) 30.9949 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(both.) 20.205 Tj +[1 0 0 1 72 481.992] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -472.029] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 453.527 Td +/F121_0 17.215 Tf +(3.1.2.) 43.0719 Tj +-278 TJm +(High-le) 58.3416 Tj +15 TJm +(vel) 23.9289 Tj +-278 TJm +(summar) 66.9664 Tj +-10 TJm +(y) 9.57154 Tj +[1 0 0 1 72 449.697] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -439.734] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 431.609 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-284 TJm +(interf) 21.5799 Tj +10 TJm +(ace) 13.2707 Tj +-284 TJm +(pro) 13.2807 Tj +15 TJm +(vides) 21.0319 Tj +-284 TJm +(some) 21.0319 Tj +-284 TJm +(handy) 24.3496 Tj +-284 TJm +(wrappers) 36.5144 Tj +-284 TJm +(around) 27.6673 Tj +-284 TJm +(the) 12.1748 Tj +-285 TJm +(lo) 7.75121 Tj +25 TJm +(w-l) 13.2807 Tj +1 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-285 TJm +(interf) 21.5799 Tj +10 TJm +(a) 4.42357 Tj +1 TJm +(ce) 8.84714 Tj +-285 TJm +(to) 7.75121 Tj +-284 TJm +(f) 3.31768 Tj +10 TJm +(acilitate) 31.5429 Tj +-284 TJm +(reading) 29.879 Tj +-284 TJm +(and) 14.3866 Tj +-284 TJm +(writing) 28.7831 Tj +[1 0 0 1 510.112 431.609] cm +0 g +0 G +[1 0 0 1 -510.112 -431.609] cm +[1 0 0 1 0 0] Tm +0 0 Td +510.112 431.609 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 540 431.609] cm +0 g +0 G +[1 0 0 1 -540 -431.609] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 419.654 Td +/F128_0 9.963 Tf +(format) 26.5614 Tj +-346 TJm +(\002les) 16.6083 Tj +-347 TJm +(\() 3.31768 Tj +[1 0 0 1 125.391 419.654] cm +0 g +0 G +[1 0 0 1 -125.391 -419.654] cm +[1 0 0 1 0 0] Tm +0 0 Td +125.391 419.654 Td +/F130_0 9.963 Tf +(.bz2) 23.9112 Tj +[1 0 0 1 149.301 419.654] cm +0 g +0 G +[1 0 0 1 -149.301 -419.654] cm +[1 0 0 1 0 0] Tm +0 0 Td +152.754 419.654 Td +/F128_0 9.963 Tf +(\002les\).) 22.4168 Tj +-1199 TJm +(The) 15.4925 Tj +-347 TJm +(routines) 32.1008 Tj +-346 TJm +(pro) 13.2807 Tj +15 TJm +(vide) 17.1563 Tj +-347 TJm +(hooks) 23.8016 Tj +-346 TJm +(to) 7.75121 Tj +-347 TJm +(f) 3.31768 Tj +10 TJm +(acilitate) 31.5429 Tj +-346 TJm +(reading) 29.879 Tj +-347 TJm +(\002les) 16.6083 Tj +-346 TJm +(in) 7.75121 Tj +-347 TJm +(which) 24.3496 Tj +-346 TJm +(the) 12.1748 Tj +[1 0 0 1 460.049 419.654] cm +0 g +0 G +[1 0 0 1 -460.049 -419.654] cm +[1 0 0 1 0 0] Tm +0 0 Td +460.049 419.654 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 489.937 419.654] cm +0 g +0 G +[1 0 0 1 -489.937 -419.654] cm +[1 0 0 1 0 0] Tm +0 0 Td +493.39 419.654 Td +/F128_0 9.963 Tf +(data) 16.5984 Tj +-346 TJm +(stream) 26.5614 Tj +72 407.699 Td +(is) 6.64532 Tj +-339 TJm +(embedded) 40.9479 Tj +-339 TJm +(within) 25.4654 Tj +-339 TJm +(some) 21.0319 Tj +-339 TJm +(lar) 10.511 Tj +18 TJm +(ger) 12.7228 Tj +20 TJm +(-scale) 23.2337 Tj +-339 TJm +(\002le) 12.7327 Tj +-339 TJm +(st) 6.64532 Tj +1 TJm +(ructure,) 30.706 Tj +-362 TJm +(or) 8.29918 Tj +-339 TJm +(where) 24.3396 Tj +-339 TJm +(there) 19.916 Tj +-339 TJm +(are) 12.1648 Tj +-339 TJm +(m) 7.75121 Tj +1 TJm +(ultiple) 25.4654 Tj +[1 0 0 1 400.941 407.699] cm +0 g +0 G +[1 0 0 1 -400.941 -407.699] cm +[1 0 0 1 0 0] Tm +0 0 Td +400.941 407.699 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 430.829 407.699] cm +0 g +0 G +[1 0 0 1 -430.829 -407.699] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.207 407.699 Td +/F128_0 9.963 Tf +(data) 16.5984 Tj +-339 TJm +(streams) 30.437 Tj +-339 TJm +(concatenated) 52.0069 Tj +72 395.744 Td +(end-to-end.) 45.6505 Tj +[1 0 0 1 72 395.644] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -385.682] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 373.826 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-332 TJm +(reading) 29.879 Tj +-333 TJm +(\002) 5.53943 Tj +1 TJm +(les,) 13.5596 Tj +[1 0 0 1 144.803 373.826] cm +0 g +0 G +[1 0 0 1 -144.803 -373.826] cm +[1 0 0 1 0 0] Tm +0 0 Td +144.803 373.826 Td +/F130_0 9.963 Tf +(BZ2_bzReadOpen) 83.6892 Tj +[1 0 0 1 228.489 373.826] cm +0 g +0 G +[1 0 0 1 -228.489 -373.826] cm +[1 0 0 1 0 0] Tm +0 0 Td +228.489 373.826 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 234.496 373.826] cm +0 g +0 G +[1 0 0 1 -234.496 -373.826] cm +[1 0 0 1 0 0] Tm +0 0 Td +234.496 373.826 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 294.272 373.826] cm +0 g +0 G +[1 0 0 1 -294.272 -373.826] cm +[1 0 0 1 0 0] Tm +0 0 Td +294.272 373.826 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 300.279 373.826] cm +0 g +0 G +[1 0 0 1 -300.279 -373.826] cm +[1 0 0 1 0 0] Tm +0 0 Td +300.279 373.826 Td +/F130_0 9.963 Tf +(BZ2_bzReadClose) 89.667 Tj +[1 0 0 1 389.942 373.826] cm +0 g +0 G +[1 0 0 1 -389.942 -373.826] cm +[1 0 0 1 0 0] Tm +0 0 Td +393.253 373.826 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 410.951 373.826] cm +0 g +0 G +[1 0 0 1 -410.951 -373.826] cm +[1 0 0 1 0 0] Tm +0 0 Td +410.951 373.826 Td +/F130_0 9.963 Tf +(BZ2_bzReadGetUnused) 113.578 Tj +[1 0 0 1 524.525 373.826] cm +0 g +0 G +[1 0 0 1 -524.525 -373.826] cm +[1 0 0 1 0 0] Tm +0 0 Td +527.836 373.826 Td +/F128_0 9.963 Tf +(are) 12.1648 Tj +72 361.871 Td +(supplied.) 36.2554 Tj +-620 TJm +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-250 TJm +(writing) 28.7831 Tj +-250 TJm +(\002les,) 19.0991 Tj +[1 0 0 1 183.471 361.871] cm +0 g +0 G +[1 0 0 1 -183.471 -361.871] cm +[1 0 0 1 0 0] Tm +0 0 Td +183.471 361.871 Td +/F130_0 9.963 Tf +(BZ2_bzWriteOpen) 89.667 Tj +[1 0 0 1 273.135 361.871] cm +0 g +0 G +[1 0 0 1 -273.135 -361.871] cm +[1 0 0 1 0 0] Tm +0 0 Td +273.135 361.871 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 278.116 361.871] cm +0 g +0 G +[1 0 0 1 -278.116 -361.871] cm +[1 0 0 1 0 0] Tm +0 0 Td +278.116 361.871 Td +/F130_0 9.963 Tf +(BZ2_bzWrite) 65.7558 Tj +[1 0 0 1 343.869 361.871] cm +0 g +0 G +[1 0 0 1 -343.869 -361.871] cm +[1 0 0 1 0 0] Tm +0 0 Td +346.36 361.871 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 363.237 361.871] cm +0 g +0 G +[1 0 0 1 -363.237 -361.871] cm +[1 0 0 1 0 0] Tm +0 0 Td +363.237 361.871 Td +/F130_0 9.963 Tf +(BZ2_bzWriteFinish) 101.623 Tj +[1 0 0 1 464.856 361.871] cm +0 g +0 G +[1 0 0 1 -464.856 -361.871] cm +[1 0 0 1 0 0] Tm +0 0 Td +467.346 361.871 Td +/F128_0 9.963 Tf +(are) 12.1648 Tj +-250 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +25 TJm +(ailable.) 29.0521 Tj +[1 0 0 1 72 359.714] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -349.752] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 339.953 Td +/F128_0 9.963 Tf +(As) 11.0689 Tj +-374 TJm +(with) 17.7142 Tj +-374 TJm +(the) 12.1748 Tj +-374 TJm +(lo) 7.75121 Tj +25 TJm +(w-le) 17.7043 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-374 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +-406 TJm +(n) 4.9815 Tj +1 TJm +(o) 4.9815 Tj +-375 TJm +(global) 24.9075 Tj +-374 TJm +(v) 4.9815 Tj +25 TJm +(ariables) 30.9849 Tj +-374 TJm +(are) 12.1648 Tj +-374 TJm +(used) 18.2622 Tj +-374 TJm +(so) 8.85711 Tj +-374 TJm +(the) 12.1748 Tj +-374 TJm +(library) 26.5614 Tj +-374 TJm +(is) 6.64532 Tj +-374 TJm +(per) 12.7228 Tj +-375 TJm +(se) 8.29918 Tj +-374 TJm +(thread-safe.) 46.7464 Tj +-1365 TJm +(Ho) 12.1748 Tj +25 TJm +(we) 11.6169 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +40 TJm +(,) 2.49075 Tj +-405 TJm +(if) 6.08739 Tj +-374 TJm +(I/O) 13.2807 Tj +72 327.998 Td +(errors) 23.2337 Tj +-267 TJm +(occur) 22.1278 Tj +-267 TJm +(whilst) 24.3595 Tj +-267 TJm +(reading) 29.879 Tj +-267 TJm +(or) 8.29918 Tj +-267 TJm +(writing) 28.7831 Tj +-267 TJm +(the) 12.1748 Tj +-267 TJm +(underlying) 43.1697 Tj +-267 TJm +(compressed) 47.0353 Tj +-267 TJm +(\002les,) 19.0991 Tj +-271 TJm +(you) 14.9445 Tj +-267 TJm +(may) 17.1563 Tj +-267 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-267 TJm +(to) 7.75121 Tj +-267 TJm +(consult) 28.7831 Tj +[1 0 0 1 457.199 327.998] cm +0 g +0 G +[1 0 0 1 -457.199 -327.998] cm +[1 0 0 1 0 0] Tm +0 0 Td +457.199 327.998 Td +/F130_0 9.963 Tf +(errno) 29.889 Tj +[1 0 0 1 487.087 327.998] cm +0 g +0 G +[1 0 0 1 -487.087 -327.998] cm +[1 0 0 1 0 0] Tm +0 0 Td +489.748 327.998 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-267 TJm +(determine) 39.842 Tj +72 316.043 Td +(the) 12.1748 Tj +-366 TJm +(cau) 13.8286 Tj +1 TJm +(se) 8.29918 Tj +-366 TJm +(of) 8.29918 Tj +-366 TJm +(the) 12.1748 Tj +-365 TJm +(error) 19.3581 Tj +55 TJm +(.) 2.49075 Tj +-1314 TJm +(In) 8.29918 Tj +-365 TJm +(that) 14.9445 Tj +-366 TJm +(case,) 19.6371 Tj +-394 TJm +(you') 18.2622 Tj +50 TJm +(d) 4.9815 Tj +-366 TJm +(need) 18.8101 Tj +-365 TJm +(a) 4.42357 Tj +-366 TJm +(C) 6.64532 Tj +-366 TJm +(lib) 10.5209 Tj +1 TJm +(rary) 16.0404 Tj +-366 TJm +(which) 24.3496 Tj +-366 TJm +(corr) 16.0404 Tj +1 TJm +(ectly) 19.3681 Tj +-366 TJm +(supports) 33.7646 Tj +[1 0 0 1 431.668 316.043] cm +0 g +0 G +[1 0 0 1 -431.668 -316.043] cm +[1 0 0 1 0 0] Tm +0 0 Td +431.668 316.043 Td +/F130_0 9.963 Tf +(errno) 29.889 Tj +[1 0 0 1 461.556 316.043] cm +0 g +0 G +[1 0 0 1 -461.556 -316.043] cm +[1 0 0 1 0 0] Tm +0 0 Td +465.199 316.043 Td +/F128_0 9.963 Tf +(in) 7.75121 Tj +-366 TJm +(a) 4.42357 Tj +-365 TJm +(multithreaded) 55.3445 Tj +72 304.088 Td +(en) 9.40507 Tj +40 TJm +(vironment.) 43.4486 Tj +[1 0 0 1 72 303.988] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -294.025] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 282.17 Td +/F128_0 9.963 Tf +(T) 6.08739 Tj +80 TJm +(o) 4.9815 Tj +-243 TJm +(mak) 17.1563 Tj +10 TJm +(e) 4.42357 Tj +-242 TJm +(the) 12.1748 Tj +-243 TJm +(library) 26.5614 Tj +-243 TJm +(a) 4.42357 Tj +-242 TJm +(little) 18.2721 Tj +-243 TJm +(simpler) 29.889 Tj +-243 TJm +(and) 14.3866 Tj +-242 TJm +(more) 20.474 Tj +-243 TJm +(portable,) 35.1395 Tj +[1 0 0 1 289.263 282.17] cm +0 g +0 G +[1 0 0 1 -289.263 -282.17] cm +[1 0 0 1 0 0] Tm +0 0 Td +289.263 282.17 Td +/F130_0 9.963 Tf +(BZ2_bzReadOpen) 83.6892 Tj +[1 0 0 1 372.949 282.17] cm +0 g +0 G +[1 0 0 1 -372.949 -282.17] cm +[1 0 0 1 0 0] Tm +0 0 Td +375.368 282.17 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 392.172 282.17] cm +0 g +0 G +[1 0 0 1 -392.172 -282.17] cm +[1 0 0 1 0 0] Tm +0 0 Td +392.172 282.17 Td +/F130_0 9.963 Tf +(BZ2_bzWriteOpen) 89.667 Tj +[1 0 0 1 481.836 282.17] cm +0 g +0 G +[1 0 0 1 -481.836 -282.17] cm +[1 0 0 1 0 0] Tm +0 0 Td +484.254 282.17 Td +/F128_0 9.963 Tf +(require) 28.2152 Tj +-243 TJm +(you) 14.9445 Tj +-242 TJm +(to) 7.75121 Tj +72 270.215 Td +(pass) 17.1563 Tj +-247 TJm +(them) 19.926 Tj +-247 TJm +(\002le) 12.7327 Tj +-248 TJm +(handles) 30.437 Tj +-247 TJm +(\() 3.31768 Tj +[1 0 0 1 165.421 270.215] cm +0 g +0 G +[1 0 0 1 -165.421 -270.215] cm +[1 0 0 1 0 0] Tm +0 0 Td +165.421 270.215 Td +/F130_0 9.963 Tf +(FILE*) 29.889 Tj +[1 0 0 1 195.309 270.215] cm +0 g +0 G +[1 0 0 1 -195.309 -270.215] cm +[1 0 0 1 0 0] Tm +0 0 Td +195.309 270.215 Td +/F128_0 9.963 Tf +(s\)) 7.19329 Tj +-247 TJm +(which) 24.3496 Tj +-247 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-248 TJm +(pre) 12.7228 Tj +25 TJm +(viously) 29.341 Tj +-247 TJm +(been) 18.8101 Tj +-247 TJm +(opened) 28.7731 Tj +-247 TJm +(for) 11.6169 Tj +-247 TJm +(reading) 29.879 Tj +-248 TJm +(or) 8.29918 Tj +-247 TJm +(writing) 28.7831 Tj +-247 TJm +(respecti) 30.9849 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ely) 12.1748 Tj +65 TJm +(.) 2.49075 Tj +-618 TJm +(That) 18.2622 Tj +-247 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +20 TJm +(oids) 16.6083 Tj +72 258.26 Td +(portability) 41.5158 Tj +-272 TJm +(problems) 37.0823 Tj +-272 TJm +(associated) 40.9479 Tj +-273 TJm +(wi) 9.963 Tj +1 TJm +(th) 7.75121 Tj +-273 TJm +(\002le) 12.7327 Tj +-272 TJm +(operations) 41.5059 Tj +-272 TJm +(and) 14.3866 Tj +-273 TJm +(\002le) 12.7327 Tj +-272 TJm +(attrib) 21.0319 Tj +20 TJm +(utes,) 18.5411 Tj +-278 TJm +(whilst) 24.3595 Tj +-272 TJm +(not) 12.7327 Tj +-272 TJm +(being) 22.1378 Tj +-273 TJm +(mu) 12.7327 Tj +1 TJm +(ch) 9.40507 Tj +-273 TJm +(of) 8.29918 Tj +-272 TJm +(an) 9.40507 Tj +-272 TJm +(imposition) 42.6317 Tj +-273 TJm +(on) 9.963 Tj +-272 TJm +(the) 12.1748 Tj +72 246.304 Td +(programmer) 49.2471 Tj +55 TJm +(.) 2.49075 Tj +[1 0 0 1 72 244.148] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -234.185] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 215.683 Td +/F121_0 17.215 Tf +(3.1.3.) 43.0719 Tj +-278 TJm +(Utility) 47.8233 Tj +-278 TJm +(functions) 77.4675 Tj +-278 TJm +(summar) 66.9664 Tj +-10 TJm +(y) 9.57154 Tj +[1 0 0 1 72 212.12] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -202.157] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 193.765 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-273 TJm +(v) 4.9815 Tj +15 TJm +(ery) 12.7228 Tj +-273 TJm +(simple) 26.5713 Tj +-273 TJm +(needs,) 25.1765 Tj +[1 0 0 1 165.929 193.765] cm +0 g +0 G +[1 0 0 1 -165.929 -193.765] cm +[1 0 0 1 0 0] Tm +0 0 Td +165.929 193.765 Td +/F130_0 9.963 Tf +(BZ2_bzBuffToBuffCompress) 143.467 Tj +[1 0 0 1 309.391 193.765] cm +0 g +0 G +[1 0 0 1 -309.391 -193.765] cm +[1 0 0 1 0 0] Tm +0 0 Td +312.112 193.765 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 329.219 193.765] cm +0 g +0 G +[1 0 0 1 -329.219 -193.765] cm +[1 0 0 1 0 0] Tm +0 0 Td +329.219 193.765 Td +/F130_0 9.963 Tf +(BZ2_bzBuffToBuffDecompre) 143.467 Tj +1 TJm +(ss) 11.9556 Tj +[1 0 0 1 484.636 193.765] cm +0 g +0 G +[1 0 0 1 -484.636 -193.765] cm +[1 0 0 1 0 0] Tm +0 0 Td +487.357 193.765 Td +/F128_0 9.963 Tf +(are) 12.1648 Tj +-273 TJm +(pro) 13.2807 Tj +15 TJm +(vided.) 24.6285 Tj +72 181.81 Td +(These) 23.7916 Tj +-373 TJm +(compress) 37.6303 Tj +-374 TJm +(data) 16.5984 Tj +-373 TJm +(in) 7.75121 Tj +-374 TJm +(memory) 33.2067 Tj +-373 TJm +(from) 19.3681 Tj +-374 TJm +(one) 14.3866 Tj +-373 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-374 TJm +(to) 7.75121 Tj +-373 TJm +(another) 29.879 Tj +-374 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fe) 7.74125 Tj +1 TJm +(r) 3.31768 Tj +-374 TJm +(in) 7.75121 Tj +-374 TJm +(a) 4.42357 Tj +-373 TJm +(single) 23.8016 Tj +-373 TJm +(function) 33.2067 Tj +-374 TJm +(call.) 16.8773 Tj +-1361 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-374 TJm +(should) 26.5713 Tj +-373 TJm +(assess) 24.3496 Tj +72 169.855 Td +(whether) 32.0908 Tj +-344 TJm +(t) 2.76971 Tj +1 TJm +(hese) 17.7043 Tj +-344 TJm +(functions) 37.0823 Tj +-344 TJm +(ful\002) 16.6083 Tj +1 TJm +(ll) 5.53943 Tj +-344 TJm +(your) 18.2622 Tj +-344 TJm +(memory-to) 44.2756 Tj +1 TJm +(-memory) 36.5244 Tj +-344 TJm +(compression/decompressio) 107.919 Tj +1 TJm +(n) 4.9815 Tj +-344 TJm +(requirements) 52.0168 Tj +-344 TJm +(be) 9.40507 Tj +1 TJm +(fore) 16.0404 Tj +-344 TJm +(in) 7.75121 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(esting) 23.8016 Tj +72 157.9 Td +(ef) 7.74125 Tj +25 TJm +(fort) 14.3866 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(understanding) 56.4504 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(m) 7.75121 Tj +1 TJm +(ore) 12.7228 Tj +-250 TJm +(general) 29.3211 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(more) 20.474 Tj +-250 TJm +(comple) 29.3311 Tj +15 TJm +(x) 4.9815 Tj +-250 TJm +(lo) 7.75121 Tj +25 TJm +(w-le) 17.7043 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(interf) 21.5799 Tj +10 TJm +(ace.) 15.7615 Tj +[1 0 0 1 72 155.743] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -145.78] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 135.982 Td +/F128_0 9.963 Tf +(Y) 7.19329 Tj +110 TJm +(oshioka) 30.9949 Tj +-531 TJm +(Tsuneo) 29.3311 Tj +-531 TJm +(\() 3.31768 Tj +[1 0 0 1 152.317 135.982] cm +0 g +0 G +[1 0 0 1 -152.317 -135.982] cm +[1 0 0 1 0 0] Tm +0 0 Td +152.317 135.982 Td +/F130_0 9.963 Tf +(QWF00133@niftyserve.or.jp) 149.445 Tj +[1 0 0 1 301.757 135.982] cm +0 g +0 G +[1 0 0 1 -301.757 -135.982] cm +[1 0 0 1 0 0] Tm +0 0 Td +307.046 135.982 Td +/F128_0 9.963 Tf +(/) 2.76971 Tj +[1 0 0 1 315.105 135.982] cm +0 g +0 G +[1 0 0 1 -315.105 -135.982] cm +[1 0 0 1 0 0] Tm +0 0 Td +315.105 135.982 Td +/F130_0 9.963 Tf +(tsuneo-y@is.aist-nara.ac.j) 155.423 Tj +1 TJm +(p) 5.9778 Tj +[1 0 0 1 476.5 135.982] cm +0 g +0 G +[1 0 0 1 -476.5 -135.982] cm +[1 0 0 1 0 0] Tm +0 0 Td +476.5 135.982 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-531 TJm +(has) 13.2807 Tj +-531 TJm +(contrib) 28.2252 Tj +20 TJm +(u-) 8.29918 Tj +72 124.027 Td +(ted) 12.1748 Tj +-486 TJm +(s) 3.87561 Tj +1 TJm +(ome) 17.1563 Tj +-486 TJm +(functions) 37.0823 Tj +-485 TJm +(to) 7.75121 Tj +-486 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-485 TJm +(better) 22.6858 Tj +[1 0 0 1 218.504 124.027] cm +0 g +0 G +[1 0 0 1 -218.504 -124.027] cm +[1 0 0 1 0 0] Tm +0 0 Td +218.504 124.027 Td +/F130_0 9.963 Tf +(zlib) 23.9112 Tj +[1 0 0 1 242.415 124.027] cm +0 g +0 G +[1 0 0 1 -242.415 -124.027] cm +[1 0 0 1 0 0] Tm +0 0 Td +247.252 124.027 Td +/F128_0 9.963 Tf +(compatibility) 53.1426 Tj +65 TJm +(.) 2.49075 Tj +-2033 TJm +(These) 23.7916 Tj +-486 TJm +(functions) 37.0823 Tj +-485 TJm +(are) 12.1648 Tj +[1 0 0 1 410.043 124.027] cm +0 g +0 G +[1 0 0 1 -410.043 -124.027] cm +[1 0 0 1 0 0] Tm +0 0 Td +410.043 124.027 Td +/F130_0 9.963 Tf +(BZ2_bzopen) 59.778 Tj +[1 0 0 1 469.818 124.027] cm +0 g +0 G +[1 0 0 1 -469.818 -124.027] cm +[1 0 0 1 0 0] Tm +0 0 Td +469.818 124.027 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 477.734 124.027] cm +0 g +0 G +[1 0 0 1 -477.734 -124.027] cm +[1 0 0 1 0 0] Tm +0 0 Td +477.734 124.027 Td +/F130_0 9.963 Tf +(BZ2_bzread) 59.778 Tj +[1 0 0 1 537.509 124.027] cm +0 g +0 G +[1 0 0 1 -537.509 -124.027] cm +[1 0 0 1 0 0] Tm +0 0 Td +537.509 124.027 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 72 112.072] cm +0 g +0 G +[1 0 0 1 -72 -112.072] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 112.072 Td +/F130_0 9.963 Tf +(BZ2_bzwrite) 65.7558 Tj +[1 0 0 1 137.753 112.072] cm +0 g +0 G +[1 0 0 1 -137.753 -112.072] cm +[1 0 0 1 0 0] Tm +0 0 Td +137.753 112.072 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 143.886 112.072] cm +0 g +0 G +[1 0 0 1 -143.886 -112.072] cm +[1 0 0 1 0 0] Tm +0 0 Td +143.886 112.072 Td +/F130_0 9.963 Tf +(BZ2_bzflush) 65.7558 Tj +[1 0 0 1 209.64 112.072] cm +0 g +0 G +[1 0 0 1 -209.64 -112.072] cm +[1 0 0 1 0 0] Tm +0 0 Td +209.64 112.072 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 215.773 112.072] cm +0 g +0 G +[1 0 0 1 -215.773 -112.072] cm +[1 0 0 1 0 0] Tm +0 0 Td +215.773 112.072 Td +/F130_0 9.963 Tf +(BZ2_bzclose) 65.7558 Tj +[1 0 0 1 281.526 112.072] cm +0 g +0 G +[1 0 0 1 -281.526 -112.072] cm +[1 0 0 1 0 0] Tm +0 0 Td +281.526 112.072 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 287.659 112.072] cm +0 g +0 G +[1 0 0 1 -287.659 -112.072] cm +[1 0 0 1 0 0] Tm +0 0 Td +287.659 112.072 Td +/F130_0 9.963 Tf +(BZ2_bzerror) 65.7558 Tj +[1 0 0 1 353.413 112.072] cm +0 g +0 G +[1 0 0 1 -353.413 -112.072] cm +[1 0 0 1 0 0] Tm +0 0 Td +356.824 112.072 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 374.622 112.072] cm +0 g +0 G +[1 0 0 1 -374.622 -112.072] cm +[1 0 0 1 0 0] Tm +0 0 Td +374.622 112.072 Td +/F130_0 9.963 Tf +(BZ2_bzlibVersion) 95.6448 Tj +[1 0 0 1 470.264 112.072] cm +0 g +0 G +[1 0 0 1 -470.264 -112.072] cm +[1 0 0 1 0 0] Tm +0 0 Td +470.264 112.072 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1175 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-342 TJm +(may) 17.1563 Tj +-343 TJm +(\002nd) 15.5024 Tj +72 100.117 Td +(these) 20.474 Tj +-333 TJm +(functions) 37.0823 Tj +-334 TJm +(more) 20.474 Tj +-333 TJm +(con) 14.3866 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(enient) 24.3496 Tj +-333 TJm +(for) 11.6169 Tj +-334 TJm +(simple) 26.5713 Tj +-333 TJm +(\002le) 12.7327 Tj +-334 TJm +(r) 3.31768 Tj +1 TJm +(eading) 26.5614 Tj +-334 TJm +(and) 14.3866 Tj +-333 TJm +(writing,) 31.2739 Tj +-354 TJm +(than) 17.1563 Tj +-334 TJm +(those) 21.0319 Tj +-333 TJm +(in) 7.75121 Tj +-334 TJm +(the) 12.1748 Tj +-333 TJm +(high-le) 28.2252 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-333 TJm +(interf) 21.5799 Tj +10 TJm +(ace.) 15.7615 Tj +-1121 TJm +(These) 23.7916 Tj +72 88.161 Td +(functions) 37.0823 Tj +-229 TJm +(are) 12.1648 Tj +-228 TJm +(not) 12.7327 Tj +-229 TJm +(\(yet\)) 18.8101 Tj +-229 TJm +(of) 8.29918 Tj +25 TJm +(\002cially) 27.6772 Tj +-229 TJm +(pa) 9.40507 Tj +1 TJm +(rt) 6.08739 Tj +-229 TJm +(of) 8.29918 Tj +-229 TJm +(the) 12.1748 Tj +-229 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +-233 TJm +(and) 14.3866 Tj +-228 TJm +(are) 12.1648 Tj +-229 TJm +(minimally) 40.9679 Tj +-229 TJm +(documented) 48.6991 Tj +-228 TJm +(here.) 19.6371 Tj +-606 TJm +(If) 6.63536 Tj +-229 TJm +(the) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-229 TJm +(break,) 24.6186 Tj +-233 TJm +(you) 14.9445 Tj +-228 TJm +(get) 12.1748 Tj +-229 TJm +(to) 7.75121 Tj +-229 TJm +(k) 4.9815 Tj +10 TJm +(eep) 13.8286 Tj +72 76.206 Td +(all) 9.963 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(pieces.) 27.3883 Tj +-310 TJm +(I) 3.31768 Tj +-250 TJm +(hope) 19.3681 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(docum) 27.1193 Tj +1 TJm +(ent) 12.1748 Tj +-250 TJm +(them) 19.926 Tj +-250 TJm +(properly) 33.7546 Tj +-250 TJm +(when) 21.5799 Tj +-250 TJm +(time) 17.7142 Tj +-250 TJm +(permits.) 32.3798 Tj +[1 0 0 1 72 74.049] cm +0 g +0 G +[1 0 0 1 0 -23.197] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 4.384 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 0 6.974] cm +0 g +0 G +0 g +0 G +[1 0 0 1 43.064 -6.755] cm +0 g +0 G +[1 0 0 1 -498.225 -51.071] cm +[1 0 0 1 0 0] Tm +0 0 Td +541.288 51.071 Td +/F128_0 9.963 Tf +(9) 4.9815 Tj +[1 0 0 1 455.161 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.599 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -15.037 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 13 13 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(Y) 7.19329 Tj +110 TJm +(oshioka) 30.9949 Tj +-250 TJm +(also) 16.0504 Tj +-250 TJm +(contrib) 28.2252 Tj +20 TJm +(uted) 17.1563 Tj +-250 TJm +(mo) 12.7327 Tj +1 TJm +(di\002cations) 41.5158 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(allo) 14.9445 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(library) 26.5614 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(uilt) 13.2906 Tj +-250 TJm +(as) 8.29918 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(W) 9.40507 Tj +40 TJm +(indo) 17.7142 Tj +25 TJm +(ws) 11.0689 Tj +-250 TJm +(D) 7.19329 Tj +1 TJm +(LL.) 14.6655 Tj +[1 0 0 1 72 707.881] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.744] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -698.137] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 675.504 Td +/F121_0 20.659 Tf +(3.2.) 34.4592 Tj +-278 TJm +(Err) 29.8523 Tj +20 TJm +(or) 20.659 Tj +-278 TJm +(handling) 86.0861 Tj +[1 0 0 1 72 670.907] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.743] cm +0 g +0 G +[1 0 0 1 -72 -661.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 653.805 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-214 TJm +(library) 26.5614 Tj +-215 TJm +(is) 6.64532 Tj +-214 TJm +(designed) 35.4185 Tj +-215 TJm +(to) 7.75121 Tj +-214 TJm +(reco) 17.1463 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-214 TJm +(cleanly) 28.7731 Tj +-215 TJm +(in) 7.75121 Tj +-214 TJm +(all) 9.963 Tj +-215 TJm +(situati) 24.3595 Tj +1 TJm +(ons,) 16.3294 Tj +-222 TJm +(including) 37.6402 Tj +-214 TJm +(the) 12.1748 Tj +-215 TJm +(w) 7.19329 Tj +10 TJm +(orst-case) 35.4085 Tj +-214 TJm +(situation) 34.3225 Tj +-214 TJm +(of) 8.29918 Tj +-215 TJm +(decompressing) 59.768 Tj +-214 TJm +(random) 30.437 Tj +72 641.85 Td +(data.) 19.0891 Tj +-764 TJm +(I'm) 14.3866 Tj +-274 TJm +(not) 12.7327 Tj +-274 TJm +(100%) 23.2437 Tj +-274 TJm +(sure) 16.5984 Tj +-274 TJm +(that) 14.9445 Tj +-274 TJm +(it) 5.53943 Tj +-274 TJm +(can) 13.8286 Tj +-274 TJm +(al) 7.19329 Tj +10 TJm +(w) 7.19329 Tj +10 TJm +(ays) 13.2807 Tj +-274 TJm +(do) 9.963 Tj +-274 TJm +(this,) 16.8873 Tj +-280 TJm +(so) 8.85711 Tj +-274 TJm +(you) 14.9445 Tj +-274 TJm +(might) 23.2536 Tj +-274 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-274 TJm +(to) 7.75121 Tj +-274 TJm +(add) 14.3866 Tj +-274 TJm +(a) 4.42357 Tj +-274 TJm +(signal) 23.8016 Tj +-274 TJm +(handler) 29.879 Tj +-274 TJm +(to) 7.75121 Tj +-274 TJm +(catch) 21.0219 Tj +-274 TJm +(se) 8.29918 Tj +15 TJm +(gmentation) 44.8335 Tj +72 629.895 Td +(violations) 39.304 Tj +-273 TJm +(during) 26.0134 Tj +-273 TJm +(decompression) 59.768 Tj +-273 TJm +(if) 6.08739 Tj +-273 TJm +(you) 14.9445 Tj +-273 TJm +(are) 12.1648 Tj +-273 TJm +(feeling) 27.6673 Tj +-273 TJm +(especially) 39.842 Tj +-273 TJm +(paranoid.) 37.3513 Tj +-758 TJm +(I) 3.31768 Tj +-273 TJm +(w) 7.19329 Tj +10 TJm +(ould) 17.7142 Tj +-273 TJm +(be) 9.40507 Tj +-273 TJm +(interested) 38.7361 Tj +-273 TJm +(in) 7.75121 Tj +-273 TJm +(hearing) 29.879 Tj +-273 TJm +(more) 20.474 Tj +-273 TJm +(about) 22.1378 Tj +72 617.939 Td +(the) 12.1748 Tj +-250 TJm +(rob) 13.2807 Tj +20 TJm +(ustness) 28.7831 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(library) 26.5614 Tj +-250 TJm +(t) 2.76971 Tj +1 TJm +(o) 4.9815 Tj +-250 TJm +(corrupted) 38.1782 Tj +-250 TJm +(compressed) 47.0353 Tj +-250 TJm +(data.) 19.0891 Tj +[1 0 0 1 72 615.783] cm +0 g +0 G +[1 0 0 1 0 -9.744] cm +0 g +0 G +[1 0 0 1 -72 -606.039] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 596.241 Td +/F128_0 9.963 Tf +(V) 7.19329 Tj +111 TJm +(ersion) 24.3496 Tj +-251 TJm +(1.0.3) 19.926 Tj +-251 TJm +(more) 20.474 Tj +-251 TJm +(rob) 13.2807 Tj +20 TJm +(ust) 11.6268 Tj +-251 TJm +(in) 7.75121 Tj +-251 TJm +(this) 14.3965 Tj +-251 TJm +(respect) 28.2152 Tj +-251 TJm +(than) 17.1563 Tj +-251 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-251 TJm +(pre) 12.7228 Tj +25 TJm +(vious) 21.5898 Tj +-251 TJm +(v) 4.9815 Tj +15 TJm +(ersion.) 26.8403 Tj +-626 TJm +(In) 8.29918 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(estig) 18.8201 Tj +5 TJm +(ations) 23.8016 Tj +-251 TJm +(with) 17.7142 Tj +-251 TJm +(V) 7.19329 Tj +111 TJm +(algrind) 28.2252 Tj +-251 TJm +(\(a) 7.74125 Tj +-251 TJm +(tool) 15.5024 Tj +-251 TJm +(for) 11.6169 Tj +-251 TJm +(detecting) 36.5244 Tj +72 584.285 Td +(problems) 37.0823 Tj +-421 TJm +(with) 17.7142 Tj +-422 TJm +(memory) 33.2067 Tj +-421 TJm +(management\)) 54.2286 Tj +-422 TJm +(indicat) 27.1193 Tj +1 TJm +(e) 4.42357 Tj +-422 TJm +(that,) 17.4353 Tj +-464 TJm +(at) 7.19329 Tj +-422 TJm +(least) 18.2622 Tj +-421 TJm +(for) 11.6169 Tj +-422 TJm +(the) 12.1748 Tj +-421 TJm +(fe) 7.74125 Tj +25 TJm +(w) 7.19329 Tj +-422 TJm +(\002les) 16.6083 Tj +-421 TJm +(I) 3.31768 Tj +-422 TJm +(tested,) 25.7344 Tj +-464 TJm +(all) 9.963 Tj +-422 TJm +(single) 23.8016 Tj +1 TJm +(-bit) 13.8386 Tj +-422 TJm +(errors) 23.2337 Tj +-421 TJm +(in) 7.75121 Tj +-422 TJm +(the) 12.1748 Tj +72 572.33 Td +(decompressed) 56.4404 Tj +-342 TJm +(d) 4.9815 Tj +1 TJm +(ata) 11.6169 Tj +-342 TJm +(are) 12.1648 Tj +-342 TJm +(caught) 26.5614 Tj +-342 TJm +(pro) 13.2807 Tj +1 TJm +(perly) 20.474 Tj +65 TJm +(,) 2.49075 Tj +-365 TJm +(with) 17.7142 Tj +-342 TJm +(no) 9.963 Tj +-342 TJm +(s) 3.87561 Tj +1 TJm +(e) 4.42357 Tj +15 TJm +(gmentation) 44.8335 Tj +-342 TJm +(f) 3.31768 Tj +10 TJm +(aults,) 21.3109 Tj +-365 TJm +(no) 9.963 Tj +-341 TJm +(uses) 17.1563 Tj +-342 TJm +(of) 8.29918 Tj +-342 TJm +(uninitialise) 44.2855 Tj +1 TJm +(d) 4.9815 Tj +-342 TJm +(data,) 19.0891 Tj +-365 TJm +(no) 9.963 Tj +-342 TJm +(out) 12.7327 Tj +-341 TJm +(of) 8.29918 Tj +-342 TJm +(range) 22.1278 Tj +72 560.375 Td +(reads) 21.0219 Tj +-260 TJm +(or) 8.29918 Tj +-261 TJm +(writes,) 26.8403 Tj +-263 TJm +(and) 14.3866 Tj +-261 TJm +(no) 9.963 Tj +-260 TJm +(in\002nite) 28.2351 Tj +-261 TJm +(looping) 30.4469 Tj +-260 TJm +(in) 7.75121 Tj +-261 TJm +(the) 12.1748 Tj +-260 TJm +(decompressor) 55.3345 Tj +55 TJm +(.) 2.49075 Tj +-342 TJm +(So) 10.5209 Tj +-260 TJm +(it') 8.85711 Tj +55 TJm +(s) 3.87561 Tj +-261 TJm +(certainly) 34.8605 Tj +-260 TJm +(pretty) 23.2437 Tj +-261 TJm +(rob) 13.2807 Tj +21 TJm +(ust,) 14.1176 Tj +-264 TJm +(although) 34.8705 Tj +-260 TJm +(I) 3.31768 Tj +-261 TJm +(w) 7.19329 Tj +10 TJm +(ouldn') 26.0134 Tj +18 TJm +(t) 2.76971 Tj +-260 TJm +(claim) 22.1378 Tj +72 548.42 Td +(it) 5.53943 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(totally) 25.4654 Tj +-250 TJm +(bombproof.) 46.7663 Tj +[1 0 0 1 72 546.263] cm +0 g +0 G +[1 0 0 1 0 -9.743] cm +0 g +0 G +[1 0 0 1 -72 -536.52] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 526.721 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-282 TJm +(\002le) 12.7327 Tj +[1 0 0 1 105.84 526.721] cm +0 g +0 G +[1 0 0 1 -105.84 -526.721] cm +[1 0 0 1 0 0] Tm +0 0 Td +105.84 526.721 Td +/F130_0 9.963 Tf +(bzlib.h) 41.8446 Tj +[1 0 0 1 147.683 526.721] cm +0 g +0 G +[1 0 0 1 -147.683 -526.721] cm +[1 0 0 1 0 0] Tm +0 0 Td +150.491 526.721 Td +/F128_0 9.963 Tf +(contains) 33.2067 Tj +-282 TJm +(all) 9.963 Tj +-282 TJm +(d) 4.9815 Tj +1 TJm +(e\002nitions) 37.0922 Tj +-282 TJm +(needed) 28.2152 Tj +-282 TJm +(to) 7.75121 Tj +-282 TJm +(use) 13.2807 Tj +-282 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-282 TJm +(library) 26.5614 Tj +65 TJm +(.) 2.49075 Tj +-811 TJm +(In) 8.29918 Tj +-282 TJm +(particular) 38.1782 Tj +40 TJm +(,) 2.49075 Tj +-290 TJm +(you) 14.9445 Tj +-282 TJm +(shou) 18.8201 Tj +1 TJm +(ld) 7.75121 Tj +-282 TJm +(de\002nitely) 37.6402 Tj +-282 TJm +(not) 12.7327 Tj +-282 TJm +(include) 29.3311 Tj +[1 0 0 1 72 514.766] cm +0 g +0 G +[1 0 0 1 -72 -514.766] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 514.766 Td +/F130_0 9.963 Tf +(bzlib_private.h) 89.667 Tj +[1 0 0 1 161.664 514.766] cm +0 g +0 G +[1 0 0 1 -161.664 -514.766] cm +[1 0 0 1 0 0] Tm +0 0 Td +161.664 514.766 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 513.202] cm +0 g +0 G +[1 0 0 1 0 -9.744] cm +0 g +0 G +[1 0 0 1 -72 -503.458] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 493.067 Td +/F128_0 9.963 Tf +(In) 8.29918 Tj +[1 0 0 1 82.807 493.067] cm +0 g +0 G +[1 0 0 1 -82.807 -493.067] cm +[1 0 0 1 0 0] Tm +0 0 Td +82.807 493.067 Td +/F130_0 9.963 Tf +(bzlib.h) 41.8446 Tj +[1 0 0 1 124.651 493.067] cm +0 g +0 G +[1 0 0 1 -124.651 -493.067] cm +[1 0 0 1 0 0] Tm +0 0 Td +124.651 493.067 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-252 TJm +(the) 12.1748 Tj +-252 TJm +(v) 4.9815 Tj +25 TJm +(arious) 24.3496 Tj +-252 TJm +(return) 23.7916 Tj +-251 TJm +(v) 4.9815 Tj +25 TJm +(alues) 20.474 Tj +-252 TJm +(are) 12.1648 Tj +-252 TJm +(de\002ned.) 31.8218 Tj +-630 TJm +(The) 15.4925 Tj +-252 TJm +(follo) 18.8201 Tj +25 TJm +(wing) 19.926 Tj +-252 TJm +(list) 12.1847 Tj +-251 TJm +(is) 6.64532 Tj +-252 TJm +(not) 12.7327 Tj +-252 TJm +(intended) 34.3126 Tj +-252 TJm +(as) 8.29918 Tj +-251 TJm +(an) 9.40507 Tj +-252 TJm +(e) 4.42357 Tj +15 TJm +(xhausti) 28.7831 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-252 TJm +(description) 44.2756 Tj +-251 TJm +(of) 8.29918 Tj +72 481.112 Td +(the) 12.1748 Tj +-236 TJm +(circumstances) 56.4404 Tj +-236 TJm +(in) 7.75121 Tj +-236 TJm +(which) 24.3496 Tj +-236 TJm +(a) 4.42357 Tj +-236 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-237 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +-236 TJm +(may) 17.1563 Tj +-236 TJm +(be) 9.40507 Tj +-236 TJm +(returned) 33.1967 Tj +-236 TJm +(--) 6.63536 Tj +-236 TJm +(those) 21.0319 Tj +-236 TJm +(descriptions) 48.1512 Tj +-236 TJm +(are) 12.1648 Tj +-236 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-236 TJm +(later) 17.7043 Tj +55 TJm +(.) 2.49075 Tj +-306 TJm +(Rather) 26.5614 Tj +40 TJm +(,) 2.49075 Tj +-239 TJm +(it) 5.53943 Tj +-236 TJm +(is) 6.64532 Tj +-236 TJm +(intended) 34.3126 Tj +-236 TJm +(to) 7.75121 Tj +72 469.157 Td +(con) 14.3866 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +15 TJm +(y) 4.9815 Tj +-266 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-266 TJm +(rough) 23.2437 Tj +-266 TJm +(me) 12.1748 Tj +1 TJm +(aning) 22.1378 Tj +-266 TJm +(of) 8.29918 Tj +-266 TJm +(ea) 8.84714 Tj +1 TJm +(ch) 9.40507 Tj +-266 TJm +(return) 23.7916 Tj +-266 TJm +(v) 4.9815 Tj +26 TJm +(alue.) 19.0891 Tj +-714 TJm +(The) 15.4925 Tj +-265 TJm +(\002rst) 15.5024 Tj +-266 TJm +(\002) 5.53943 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-266 TJm +(a) 4.42357 Tj +1 TJm +(ctions) 23.8016 Tj +-266 TJm +(are) 12.1648 Tj +-265 TJm +(normal) 28.2252 Tj +-266 TJm +(and) 14.3866 Tj +-265 TJm +(not) 12.7327 Tj +-266 TJm +(intended) 34.3126 Tj +-265 TJm +(to) 7.75121 Tj +-266 TJm +(denote) 26.5614 Tj +-265 TJm +(an) 9.40507 Tj +-266 TJm +(error) 19.3581 Tj +72 457.202 Td +(situation.) 36.8133 Tj +[1 0 0 1 72 457.102] cm +0 g +0 G +[1 0 0 1 0 -9.743] cm +0 g +0 G +[1 0 0 1 0 -9.744] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -437.615] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 425.759 Td +/F130_0 9.963 Tf +(BZ_OK) 29.889 Tj +[1 0 0 1 101.888 425.759] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -32.379 -1.165] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -424.594] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 413.804 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-250 TJm +(requested) 38.1782 Tj +-250 TJm +(action) 24.3496 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-250 TJm +(com) 17.1563 Tj +1 TJm +(pleted) 24.3496 Tj +-250 TJm +(successfully) 48.6991 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 411.647] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.765] cm +0 g +0 G +[1 0 0 1 0 -9.744] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -398.138] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 388.34 Td +/F130_0 9.963 Tf +(BZ_RUN_OK,) 59.778 Tj +-600 TJm +(BZ_FLUSH_OK,) 71.7336 Tj +-600 TJm +(BZ) 11.9556 Tj +1 TJm +(_FINISH_OK) 59.778 Tj +[1 0 0 1 287.193 388.34] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -217.684 -1.166] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -387.174] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 376.384 Td +/F128_0 9.963 Tf +(In) 8.29918 Tj +[1 0 0 1 118.789 376.384] cm +0 g +0 G +[1 0 0 1 -118.789 -376.384] cm +[1 0 0 1 0 0] Tm +0 0 Td +118.789 376.384 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 202.476 376.384] cm +0 g +0 G +[1 0 0 1 -202.476 -376.384] cm +[1 0 0 1 0 0] Tm +0 0 Td +202.476 376.384 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(requested) 38.1782 Tj +-250 TJm +(\003ush/\002nish/) 47.0652 Tj +1 TJm +(nothing-special) 61.4319 Tj +-250 TJm +(action) 24.3496 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-250 TJm +(completed) 41.5059 Tj +-250 TJm +(successfully) 48.6991 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 374.228] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.766] cm +0 g +0 G +[1 0 0 1 0 -9.744] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -360.718] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 350.92 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 149.709 350.92] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -80.199 -1.166] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -349.754] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 338.965 Td +/F128_0 9.963 Tf +(Compression) 52.5847 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-250 TJm +(com) 17.1563 Tj +1 TJm +(pleted,) 26.8403 Tj +-250 TJm +(or) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(logical) 27.1193 Tj +-250 TJm +(stream) 26.5614 Tj +-250 TJm +(end) 14.3866 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-250 TJm +(detected) 33.1967 Tj +-250 TJm +(during) 26.0134 Tj +-250 TJm +(de) 9.40507 Tj +1 TJm +(compression.) 52.8537 Tj +[1 0 0 1 72 336.808] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.766] cm +0 g +0 G +[1 0 0 1 0 -9.744] cm +0 g +0 G +[1 0 0 1 0 -9.743] cm +0 g +0 G +[1 0 0 1 -72 -313.555] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 303.756 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-250 TJm +(follo) 18.8201 Tj +25 TJm +(wing) 19.926 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues) 20.474 Tj +-250 TJm +(i) 2.76971 Tj +1 TJm +(ndicate) 28.7731 Tj +-250 TJm +(an) 9.40507 Tj +-250 TJm +(error) 19.3581 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(some) 21.0319 Tj +-250 TJm +(kind.) 20.205 Tj +[1 0 0 1 72 301.6] cm +0 g +0 G +[1 0 0 1 0 -9.744] cm +0 g +0 G +[1 0 0 1 0 -9.744] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -282.112] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 272.314 Td +/F130_0 9.963 Tf +(BZ_CONFIG_ERROR) 89.667 Tj +[1 0 0 1 161.664 272.314] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -92.154 -1.165] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -271.149] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 260.359 Td +/F128_0 9.963 Tf +(Indicates) 35.9664 Tj +-386 TJm +(that) 14.9445 Tj +-385 TJm +(the) 12.1748 Tj +-386 TJm +(library) 26.5614 Tj +-386 TJm +(has) 13.2807 Tj +-385 TJm +(been) 18.8101 Tj +-386 TJm +(improperly) 44.2756 Tj +-385 TJm +(compiled) 37.0823 Tj +-386 TJm +(on) 9.963 Tj +-386 TJm +(your) 18.2622 Tj +-385 TJm +(platform) 34.3126 Tj +-386 TJm +(--) 6.63536 Tj +-386 TJm +(a) 4.42357 Tj +-385 TJm +(major) 23.2437 Tj +-386 TJm +(con\002guration) 53.1327 Tj +-386 TJm +(error) 19.3581 Tj +55 TJm +(.) 2.49075 Tj +108 248.404 Td +(Speci\002cally) 47.0453 Tj +65 TJm +(,) 2.49075 Tj +-481 TJm +(it) 5.53943 Tj +-435 TJm +(means) 25.4555 Tj +-434 TJm +(that) 14.9445 Tj +[1 0 0 1 220.614 248.404] cm +0 g +0 G +[1 0 0 1 -220.614 -248.404] cm +[1 0 0 1 0 0] Tm +0 0 Td +220.614 248.404 Td +/F130_0 9.963 Tf +(sizeof\(char\)) 71.7336 Tj +[1 0 0 1 292.345 248.404] cm +0 g +0 G +[1 0 0 1 -292.345 -248.404] cm +[1 0 0 1 0 0] Tm +0 0 Td +292.345 248.404 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 299.628 248.404] cm +0 g +0 G +[1 0 0 1 -299.628 -248.404] cm +[1 0 0 1 0 0] Tm +0 0 Td +299.628 248.404 Td +/F130_0 9.963 Tf +(sizeof\(short\)) 77.7114 Tj +[1 0 0 1 377.337 248.404] cm +0 g +0 G +[1 0 0 1 -377.337 -248.404] cm +[1 0 0 1 0 0] Tm +0 0 Td +381.669 248.404 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 400.388 248.404] cm +0 g +0 G +[1 0 0 1 -400.388 -248.404] cm +[1 0 0 1 0 0] Tm +0 0 Td +400.388 248.404 Td +/F130_0 9.963 Tf +(sizeof\(int\)) 65.7558 Tj +[1 0 0 1 466.141 248.404] cm +0 g +0 G +[1 0 0 1 -466.141 -248.404] cm +[1 0 0 1 0 0] Tm +0 0 Td +470.474 248.404 Td +/F128_0 9.963 Tf +(are) 12.1648 Tj +-435 TJm +(not) 12.7327 Tj +-435 TJm +(1,) 7.47225 Tj +-481 TJm +(2) 4.9815 Tj +-434 TJm +(and) 14.3866 Tj +108 236.449 Td +(4) 4.9815 Tj +-389 TJm +(respecti) 30.9849 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ely) 12.1748 Tj +65 TJm +(,) 2.49075 Tj +-424 TJm +(as) 8.29918 Tj +-389 TJm +(the) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-389 TJm +(should) 26.5713 Tj +-390 TJm +(be.) 11.8958 Tj +-1455 TJm +(Note) 19.3681 Tj +-389 TJm +(that) 14.9445 Tj +-389 TJm +(the) 12.1748 Tj +-390 TJm +(library) 26.5614 Tj +-389 TJm +(should) 26.5713 Tj +-389 TJm +(still) 14.9545 Tj +-389 TJm +(w) 7.19329 Tj +10 TJm +(ork) 13.2807 Tj +-389 TJm +(properly) 33.7546 Tj +-389 TJm +(on) 9.963 Tj +-390 TJm +(64-bi) 21.0319 Tj +1 TJm +(t) 2.76971 Tj +-390 TJm +(platforms) 38.1882 Tj +108 224.493 Td +(which) 24.3496 Tj +-292 TJm +(follo) 18.8201 Tj +25 TJm +(w) 7.19329 Tj +-292 TJm +(the) 12.1748 Tj +-292 TJm +(LP64) 21.5898 Tj +-292 TJm +(programming) 54.2386 Tj +-292 TJm +(model) 24.9075 Tj +-292 TJm +(--) 6.63536 Tj +-292 TJm +(that) 14.9445 Tj +-292 TJm +(is,) 9.13607 Tj +-303 TJm +(where) 24.3396 Tj +[1 0 0 1 355.279 224.493] cm +0 g +0 G +[1 0 0 1 -355.279 -224.493] cm +[1 0 0 1 0 0] Tm +0 0 Td +355.279 224.493 Td +/F130_0 9.963 Tf +(sizeof\(long\)) 71.7336 Tj +[1 0 0 1 427.01 224.493] cm +0 g +0 G +[1 0 0 1 -427.01 -224.493] cm +[1 0 0 1 0 0] Tm +0 0 Td +429.92 224.493 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 447.217 224.493] cm +0 g +0 G +[1 0 0 1 -447.217 -224.493] cm +[1 0 0 1 0 0] Tm +0 0 Td +447.217 224.493 Td +/F130_0 9.963 Tf +(sizeof\(void*\)) 77.7114 Tj +[1 0 0 1 524.925 224.493] cm +0 g +0 G +[1 0 0 1 -524.925 -224.493] cm +[1 0 0 1 0 0] Tm +0 0 Td +527.836 224.493 Td +/F128_0 9.963 Tf +(are) 12.1648 Tj +108 212.538 Td +(8.) 7.47225 Tj +-620 TJm +(Under) 24.8975 Tj +-250 TJm +(LP64,) 24.0806 Tj +[1 0 0 1 175.606 212.538] cm +0 g +0 G +[1 0 0 1 -175.606 -212.538] cm +[1 0 0 1 0 0] Tm +0 0 Td +175.606 212.538 Td +/F130_0 9.963 Tf +(sizeof\(int\)) 65.7558 Tj +[1 0 0 1 241.36 212.538] cm +0 g +0 G +[1 0 0 1 -241.36 -212.538] cm +[1 0 0 1 0 0] Tm +0 0 Td +243.85 212.538 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(still) 14.9545 Tj +-250 TJm +(4,) 7.47225 Tj +-250 TJm +(so) 8.85711 Tj +[1 0 0 1 291.74 212.538] cm +0 g +0 G +[1 0 0 1 -291.74 -212.538] cm +[1 0 0 1 0 0] Tm +0 0 Td +291.74 212.538 Td +/F130_0 9.963 Tf +(libbzip2) 47.8224 Tj +[1 0 0 1 339.561 212.538] cm +0 g +0 G +[1 0 0 1 -339.561 -212.538] cm +[1 0 0 1 0 0] Tm +0 0 Td +339.561 212.538 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(doesn') 26.5614 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(the) 12.1748 Tj +[1 0 0 1 433.458 212.538] cm +0 g +0 G +[1 0 0 1 -433.458 -212.538] cm +[1 0 0 1 0 0] Tm +0 0 Td +433.458 212.538 Td +/F130_0 9.963 Tf +(long) 23.9112 Tj +[1 0 0 1 457.368 212.538] cm +0 g +0 G +[1 0 0 1 -457.368 -212.538] cm +[1 0 0 1 0 0] Tm +0 0 Td +459.859 212.538 Td +/F128_0 9.963 Tf +(type,) 19.647 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(OK.) 16.8773 Tj +[1 0 0 1 72 210.381] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.765] cm +0 g +0 G +[1 0 0 1 0 -9.744] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -196.872] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 187.074 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_ERROR) 101.623 Tj +[1 0 0 1 173.619 187.074] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -104.11 -1.42] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -185.654] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 175.118 Td +/F128_0 9.963 Tf +(When) 23.7916 Tj +-290 TJm +(using) 21.5898 Tj +-291 TJm +(the) 12.1748 Tj +-290 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +-301 TJm +(it) 5.53943 Tj +-290 TJm +(is) 6.64532 Tj +-291 TJm +(important) 38.7461 Tj +-290 TJm +(to) 7.75121 Tj +-291 TJm +(ca) 8.84714 Tj +1 TJm +(ll) 5.53943 Tj +-291 TJm +(the) 12.1748 Tj +-290 TJm +(functions) 37.0823 Tj +-291 TJm +(in) 7.75121 Tj +-290 TJm +(the) 12.1748 Tj +-291 TJm +(correct) 27.6573 Tj +-290 TJm +(sequence) 36.5144 Tj +-290 TJm +(and) 14.3866 Tj +-291 TJm +(with) 17.7142 Tj +-290 TJm +(data) 16.5984 Tj +-291 TJm +(structures) 38.7361 Tj +108 163.163 Td +(\(b) 8.29918 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fers) 14.9345 Tj +-205 TJm +(etc\)) 14.9345 Tj +-206 TJm +(in) 7.75121 Tj +-206 TJm +(the) 12.1748 Tj +-205 TJm +(correct) 27.6573 Tj +-206 TJm +(states.) 24.6285 Tj +[1 0 0 1 239.409 163.163] cm +0 g +0 G +[1 0 0 1 -239.409 -163.163] cm +[1 0 0 1 0 0] Tm +0 0 Td +239.409 163.163 Td +/F130_0 9.963 Tf +(libbzip2) 47.8224 Tj +[1 0 0 1 287.23 163.163] cm +0 g +0 G +[1 0 0 1 -287.23 -163.163] cm +[1 0 0 1 0 0] Tm +0 0 Td +289.278 163.163 Td +/F128_0 9.963 Tf +(checks) 27.1093 Tj +-206 TJm +(as) 8.29918 Tj +-205 TJm +(much) 22.1378 Tj +-206 TJm +(as) 8.29918 Tj +-205 TJm +(it) 5.53943 Tj +-206 TJm +(can) 13.8286 Tj +-205 TJm +(to) 7.75121 Tj +-206 TJm +(ensure) 26.0034 Tj +-205 TJm +(this) 14.3965 Tj +-206 TJm +(is) 6.64532 Tj +-206 TJm +(happeni) 31.5429 Tj +1 TJm +(ng,) 12.4538 Tj +-215 TJm +(and) 14.3866 Tj +-206 TJm +(re) 7.74125 Tj +1 TJm +(turns) 19.926 Tj +[1 0 0 1 108 151.208] cm +0 g +0 G +[1 0 0 1 -108 -151.208] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 151.208 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_ERROR) 101.623 Tj +[1 0 0 1 209.619 151.208] cm +0 g +0 G +[1 0 0 1 -209.619 -151.208] cm +[1 0 0 1 0 0] Tm +0 0 Td +213.27 151.208 Td +/F128_0 9.963 Tf +(if) 6.08739 Tj +-367 TJm +(not) 12.7327 Tj +1 TJm +(.) 2.49075 Tj +-660 TJm +(Code) 21.0319 Tj +-367 TJm +(which) 24.3496 Tj +-366 TJm +(complies) 35.9764 Tj +-367 TJm +(precisel) 30.9849 Tj +1 TJm +(y) 4.9815 Tj +-367 TJm +(with) 17.7142 Tj +-367 TJm +(the) 12.1748 Tj +-366 TJm +(function) 33.2067 Tj +-367 TJm +(s) 3.87561 Tj +1 TJm +(emantics,) 37.9092 Tj +-396 TJm +(as) 8.29918 Tj +-367 TJm +(deta) 16.5984 Tj +1 TJm +(iled) 14.9445 Tj +108 139.253 Td +(belo) 17.1563 Tj +25 TJm +(w) 7.19329 Tj +65 TJm +(,) 2.49075 Tj +-250 TJm +(should) 26.5713 Tj +-250 TJm +(ne) 9.40507 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-250 TJm +(recei) 19.3581 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(this) 14.3965 Tj +-249 TJm +(v) 4.9815 Tj +25 TJm +(alue;) 19.3681 Tj +-250 TJm +(such) 18.2622 Tj +-250 TJm +(an) 9.40507 Tj +-250 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ent) 12.1748 Tj +-250 TJm +(denotes) 30.437 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(uggy) 19.926 Tj +-250 TJm +(code) 18.8101 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(should) 26.5713 Tj +-250 TJm +(i) 2.76971 Tj +1 TJm +(n) 4.9815 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(estig) 18.8201 Tj +5 TJm +(ate.) 14.1076 Tj +[1 0 0 1 72 137.096] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.766] cm +0 g +0 G +[1 0 0 1 0 -9.743] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -123.587] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 113.788 Td +/F130_0 9.963 Tf +(BZ_PARAM_ERROR) 83.6892 Tj +[1 0 0 1 155.686 113.788] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -86.177 -1.165] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -112.623] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 101.833 Td +/F128_0 9.963 Tf +(Returned) 36.5244 Tj +-434 TJm +(when) 21.5799 Tj +-434 TJm +(a) 4.42357 Tj +-433 TJm +(parameter) 39.8321 Tj +-434 TJm +(to) 7.75121 Tj +-434 TJm +(a) 4.42357 Tj +-434 TJm +(function) 33.2067 Tj +-434 TJm +(call) 14.3866 Tj +-434 TJm +(is) 6.64532 Tj +-433 TJm +(out) 12.7327 Tj +-434 TJm +(of) 8.29918 Tj +-434 TJm +(range) 22.1278 Tj +-434 TJm +(or) 8.29918 Tj +-434 TJm +(otherwise) 38.7361 Tj +-434 TJm +(man) 17.1563 Tj +1 TJm +(ifestly) 24.9075 Tj +-434 TJm +(incorrect.) 37.8993 Tj +-1724 TJm +(As) 11.0689 Tj +108 89.878 Td +(with) 17.7142 Tj +[1 0 0 1 131.644 89.878] cm +0 g +0 G +[1 0 0 1 -131.644 -89.878] cm +[1 0 0 1 0 0] Tm +0 0 Td +131.644 89.878 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_ERROR) 101.623 Tj +[1 0 0 1 233.263 89.878] cm +0 g +0 G +[1 0 0 1 -233.263 -89.878] cm +[1 0 0 1 0 0] Tm +0 0 Td +233.263 89.878 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-595 TJm +(this) 14.3965 Tj +-596 TJm +(d) 4.9815 Tj +1 TJm +(enotes) 25.4555 Tj +-596 TJm +(a) 4.42357 Tj +-595 TJm +(b) 4.9815 Tj +20 TJm +(ug) 9.963 Tj +-595 TJm +(in) 7.75121 Tj +-595 TJm +(the) 12.1748 Tj +-596 TJm +(client) 22.1378 Tj +-595 TJm +(code.) 21.3009 Tj +-2692 TJm +(T) 6.08739 Tj +1 TJm +(he) 9.40507 Tj +-596 TJm +(distinction) 42.0737 Tj +-595 TJm +(between) 33.1967 Tj +[1 0 0 1 108 77.923] cm +0 g +0 G +[1 0 0 1 -108 -77.923] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 77.923 Td +/F130_0 9.963 Tf +(BZ_PARAM_ERROR) 83.6892 Tj +[1 0 0 1 191.686 77.923] cm +0 g +0 G +[1 0 0 1 -191.686 -77.923] cm +[1 0 0 1 0 0] Tm +0 0 Td +194.177 77.923 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 211.053 77.923] cm +0 g +0 G +[1 0 0 1 -211.053 -77.923] cm +[1 0 0 1 0 0] Tm +0 0 Td +211.053 77.923 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_ERROR) 101.623 Tj +[1 0 0 1 312.672 77.923] cm +0 g +0 G +[1 0 0 1 -312.672 -77.923] cm +[1 0 0 1 0 0] Tm +0 0 Td +315.163 77.923 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(bit) 10.5209 Tj +-250 TJm +(hazy) 18.8101 Tj +65 TJm +(,) 2.49075 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(still) 14.9545 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(orth) 16.0504 Tj +-250 TJm +(m) 7.75121 Tj +1 TJm +(aking.) 24.6285 Tj +[1 0 0 1 72 75.766] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.766] cm +0 g +0 G +[1 0 0 1 0 -21.148] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(10) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 14 14 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F130_0 9.963 Tf +(BZ_MEM_ERROR) 71.7336 Tj +[1 0 0 1 143.731 710.037] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -74.222 -1.165] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -708.872] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 698.082 Td +/F128_0 9.963 Tf +(Returned) 36.5244 Tj +-227 TJm +(when) 21.5799 Tj +-228 TJm +(a) 4.42357 Tj +-228 TJm +(reque) 22.1278 Tj +1 TJm +(st) 6.64532 Tj +-228 TJm +(to) 7.75121 Tj +-228 TJm +(allocate) 30.9849 Tj +-227 TJm +(memory) 33.2067 Tj +-228 TJm +(f) 3.31768 Tj +10 TJm +(aile) 14.3866 Tj +1 TJm +(d.) 7.47225 Tj +-606 TJm +(N) 7.19329 Tj +1 TJm +(ote) 12.1748 Tj +-228 TJm +(that) 14.9445 Tj +-228 TJm +(the) 12.1748 Tj +-227 TJm +(quantity) 32.6587 Tj +-228 TJm +(of) 8.29918 Tj +-227 TJm +(memory) 33.2067 Tj +-228 TJm +(needed) 28.2152 Tj +-227 TJm +(to) 7.75121 Tj +-228 TJm +(decompress) 47.0353 Tj +108 686.127 Td +(a) 4.42357 Tj +-351 TJm +(stream) 26.5614 Tj +-352 TJm +(cannot) 26.5614 Tj +-351 TJm +(be) 9.40507 Tj +-351 TJm +(determined) 44.8235 Tj +-352 TJm +(until) 18.2721 Tj +-351 TJm +(the) 12.1748 Tj +-351 TJm +(stream') 29.879 Tj +55 TJm +(s) 3.87561 Tj +-352 TJm +(heade) 23.2337 Tj +1 TJm +(r) 3.31768 Tj +-352 TJm +(has) 13.2807 Tj +-351 TJm +(been) 18.8101 Tj +-352 TJm +(read.) 19.6371 Tj +-1228 TJm +(So) 10.5209 Tj +[1 0 0 1 426.471 686.127] cm +0 g +0 G +[1 0 0 1 -426.471 -686.127] cm +[1 0 0 1 0 0] Tm +0 0 Td +426.471 686.127 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 522.113 686.127] cm +0 g +0 G +[1 0 0 1 -522.113 -686.127] cm +[1 0 0 1 0 0] Tm +0 0 Td +525.614 686.127 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 108 674.172] cm +0 g +0 G +[1 0 0 1 -108 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 674.172 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 167.776 674.172] cm +0 g +0 G +[1 0 0 1 -167.776 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +172.13 674.172 Td +/F128_0 9.963 Tf +(may) 17.1563 Tj +-437 TJm +(return) 23.7916 Tj +[1 0 0 1 221.784 674.172] cm +0 g +0 G +[1 0 0 1 -221.784 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +221.784 674.172 Td +/F130_0 9.963 Tf +(BZ_MEM_ERROR) 71.7336 Tj +[1 0 0 1 293.515 674.172] cm +0 g +0 G +[1 0 0 1 -293.515 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +297.867 674.172 Td +/F128_0 9.963 Tf +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-437 TJm +(though) 27.6772 Tj +-437 TJm +(some) 21.0319 Tj +-437 TJm +(of) 8.29918 Tj +-437 TJm +(the) 12.1748 Tj +-437 TJm +(compressed) 47.0353 Tj +-437 TJm +(da) 9.40507 Tj +1 TJm +(ta) 7.19329 Tj +-437 TJm +(has) 13.2807 Tj +-437 TJm +(been) 18.8101 Tj +-437 TJm +(read.) 19.6371 Tj +108 662.217 Td +(The) 15.4925 Tj +-479 TJm +(sam) 16.0504 Tj +1 TJm +(e) 4.42357 Tj +-479 TJm +(is) 6.64532 Tj +-479 TJm +(not) 12.7327 Tj +-478 TJm +(true) 15.4925 Tj +-479 TJm +(for) 11.6169 Tj +-478 TJm +(compression;) 53.1327 Tj +-593 TJm +(once) 18.8101 Tj +[1 0 0 1 301.675 662.217] cm +0 g +0 G +[1 0 0 1 -301.675 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +301.675 662.217 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 409.272 662.217] cm +0 g +0 G +[1 0 0 1 -409.272 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +414.04 662.217 Td +/F128_0 9.963 Tf +(or) 8.29918 Tj +[1 0 0 1 427.107 662.217] cm +0 g +0 G +[1 0 0 1 -427.107 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +427.107 662.217 Td +/F130_0 9.963 Tf +(BZ2_bzWriteOpen) 89.667 Tj +[1 0 0 1 516.771 662.217] cm +0 g +0 G +[1 0 0 1 -516.771 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +521.539 662.217 Td +/F128_0 9.963 Tf +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +108 650.262 Td +(successfully) 48.6991 Tj +-250 TJm +(completed,) 43.9966 Tj +[1 0 0 1 205.672 650.262] cm +0 g +0 G +[1 0 0 1 -205.672 -650.262] cm +[1 0 0 1 0 0] Tm +0 0 Td +205.672 650.262 Td +/F130_0 9.963 Tf +(BZ_MEM_ERROR) 71.7336 Tj +[1 0 0 1 277.403 650.262] cm +0 g +0 G +[1 0 0 1 -277.403 -650.262] cm +[1 0 0 1 0 0] Tm +0 0 Td +279.894 650.262 Td +/F128_0 9.963 Tf +(cannot) 26.5614 Tj +-250 TJm +(occur) 22.1278 Tj +55 TJm +(.) 2.49075 Tj +[1 0 0 1 72 648.105] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -634.157] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 624.359 Td +/F130_0 9.963 Tf +(BZ_DATA_ERROR) 77.7114 Tj +[1 0 0 1 149.709 624.359] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -80.199 -1.166] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -623.193] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 612.404 Td +/F128_0 9.963 Tf +(Returned) 36.5244 Tj +-265 TJm +(when) 21.5799 Tj +-266 TJm +(a) 4.42357 Tj +-266 TJm +(da) 9.40507 Tj +1 TJm +(ta) 7.19329 Tj +-266 TJm +(inte) 14.9445 Tj +15 TJm +(grity) 18.8201 Tj +-265 TJm +(error) 19.3581 Tj +-266 TJm +(is) 6.64532 Tj +-266 TJm +(dete) 16.5984 Tj +1 TJm +(cted) 16.5984 Tj +-266 TJm +(during) 26.0134 Tj +-266 TJm +(d) 4.9815 Tj +1 TJm +(ecompression.) 57.2773 Tj +-714 TJm +(Most) 20.4839 Tj +-265 TJm +(importantly) 46.4973 Tj +65 TJm +(,) 2.49075 Tj +-270 TJm +(this) 14.3965 Tj +-265 TJm +(means) 25.4555 Tj +-266 TJm +(when) 21.5799 Tj +108 600.448 Td +(stored) 24.3496 Tj +-222 TJm +(and) 14.3866 Tj +-222 TJm +(computed) 39.2941 Tj +-222 TJm +(CRCs) 23.8116 Tj +-223 TJm +(for) 11.6169 Tj +-222 TJm +(the) 12.1748 Tj +-222 TJm +(data) 16.5984 Tj +-222 TJm +(do) 9.963 Tj +-222 TJm +(not) 12.7327 Tj +-223 TJm +(match.) 26.8403 Tj +-601 TJm +(This) 17.7142 Tj +-222 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +-222 TJm +(is) 6.64532 Tj +-223 TJm +(also) 16.0504 Tj +-222 TJm +(returned) 33.1967 Tj +-222 TJm +(upon) 19.926 Tj +-222 TJm +(detection) 36.5244 Tj +-222 TJm +(of) 8.29918 Tj +-222 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-223 TJm +(other) 20.474 Tj +108 588.493 Td +(anomaly) 34.3126 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(compressed) 47.0353 Tj +-250 TJm +(d) 4.9815 Tj +1 TJm +(ata.) 14.1076 Tj +[1 0 0 1 72 586.336] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -572.389] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 562.59 Td +/F130_0 9.963 Tf +(BZ_DATA_ERROR_MAGIC) 113.578 Tj +[1 0 0 1 185.574 562.59] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -116.065 -1.165] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -561.425] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 550.635 Td +/F128_0 9.963 Tf +(As) 11.0689 Tj +-306 TJm +(a) 4.42357 Tj +-306 TJm +(special) 27.6673 Tj +-306 TJm +(case) 17.1463 Tj +-306 TJm +(of) 8.29918 Tj +[1 0 0 1 191.852 550.635] cm +0 g +0 G +[1 0 0 1 -191.852 -550.635] cm +[1 0 0 1 0 0] Tm +0 0 Td +191.852 550.635 Td +/F130_0 9.963 Tf +(BZ_DATA_ERROR) 77.7114 Tj +[1 0 0 1 269.561 550.635] cm +0 g +0 G +[1 0 0 1 -269.561 -550.635] cm +[1 0 0 1 0 0] Tm +0 0 Td +269.561 550.635 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-306 TJm +(it) 5.53943 Tj +-306 TJm +(is) 6.64532 Tj +-306 TJm +(sometimes) 42.6217 Tj +-306 TJm +(useful) 24.3496 Tj +-306 TJm +(to) 7.75121 Tj +-306 TJm +(kno) 14.9445 Tj +25 TJm +(w) 7.19329 Tj +-306 TJm +(when) 21.5799 Tj +-306 TJm +(the) 12.1748 Tj +-307 TJm +(com) 17.1563 Tj +1 TJm +(pressed) 29.879 Tj +-306 TJm +(stream) 26.5614 Tj +-306 TJm +(does) 18.2622 Tj +108 538.68 Td +(not) 12.7327 Tj +-250 TJm +(start) 17.1563 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(correct) 27.6573 Tj +-250 TJm +(m) 7.75121 Tj +1 TJm +(agic) 16.5984 Tj +-250 TJm +(bytes) 21.0319 Tj +-250 TJm +(\() 3.31768 Tj +[1 0 0 1 261.562 538.68] cm +0 g +0 G +[1 0 0 1 -261.562 -538.68] cm +[1 0 0 1 0 0] Tm +0 0 Td +261.562 538.68 Td +/F130_0 9.963 Tf +('B') 17.9334 Tj +-600 TJm +('Z') 17.9334 Tj +-600 TJm +('h') 17.9334 Tj +[1 0 0 1 327.316 538.68] cm +0 g +0 G +[1 0 0 1 -327.316 -538.68] cm +[1 0 0 1 0 0] Tm +0 0 Td +327.316 538.68 Td +/F128_0 9.963 Tf +(\).) 5.80843 Tj +[1 0 0 1 72 536.523] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -522.576] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 512.777 Td +/F130_0 9.963 Tf +(BZ_IO_ERROR) 65.7558 Tj +[1 0 0 1 137.753 512.777] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -68.244 -1.165] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -511.612] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 500.822 Td +/F128_0 9.963 Tf +(Returned) 36.5244 Tj +-233 TJm +(by) 9.963 Tj +[1 0 0 1 159.123 500.822] cm +0 g +0 G +[1 0 0 1 -159.123 -500.822] cm +[1 0 0 1 0 0] Tm +0 0 Td +159.123 500.822 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 218.899 500.822] cm +0 g +0 G +[1 0 0 1 -218.899 -500.822] cm +[1 0 0 1 0 0] Tm +0 0 Td +221.218 500.822 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 237.922 500.822] cm +0 g +0 G +[1 0 0 1 -237.922 -500.822] cm +[1 0 0 1 0 0] Tm +0 0 Td +237.922 500.822 Td +/F130_0 9.963 Tf +(BZ2_bzWrite) 65.7558 Tj +[1 0 0 1 303.676 500.822] cm +0 g +0 G +[1 0 0 1 -303.676 -500.822] cm +[1 0 0 1 0 0] Tm +0 0 Td +305.995 500.822 Td +/F128_0 9.963 Tf +(when) 21.5799 Tj +-233 TJm +(there) 19.916 Tj +-232 TJm +(is) 6.64532 Tj +-233 TJm +(an) 9.40507 Tj +-233 TJm +(error) 19.3581 Tj +-232 TJm +(reading) 29.879 Tj +-233 TJm +(or) 8.29918 Tj +-233 TJm +(writing) 28.7831 Tj +-232 TJm +(in) 7.75121 Tj +-233 TJm +(the) 12.1748 Tj +-233 TJm +(compress) 37.6303 Tj +1 TJm +(ed) 9.40507 Tj +108 488.867 Td +(\002le,) 15.2235 Tj +-384 TJm +(and) 14.3866 Tj +-357 TJm +(by) 9.963 Tj +[1 0 0 1 158.511 488.867] cm +0 g +0 G +[1 0 0 1 -158.511 -488.867] cm +[1 0 0 1 0 0] Tm +0 0 Td +158.511 488.867 Td +/F130_0 9.963 Tf +(BZ2_bzReadOpen) 83.6892 Tj +[1 0 0 1 242.197 488.867] cm +0 g +0 G +[1 0 0 1 -242.197 -488.867] cm +[1 0 0 1 0 0] Tm +0 0 Td +245.755 488.867 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 263.698 488.867] cm +0 g +0 G +[1 0 0 1 -263.698 -488.867] cm +[1 0 0 1 0 0] Tm +0 0 Td +263.698 488.867 Td +/F130_0 9.963 Tf +(BZ2_bzWriteOpen) 89.667 Tj +[1 0 0 1 353.362 488.867] cm +0 g +0 G +[1 0 0 1 -353.362 -488.867] cm +[1 0 0 1 0 0] Tm +0 0 Td +356.92 488.867 Td +/F128_0 9.963 Tf +(for) 11.6169 Tj +-357 TJm +(attempts) 33.7646 Tj +-357 TJm +(to) 7.75121 Tj +-357 TJm +(use) 13.2807 Tj +-357 TJm +(a) 4.42357 Tj +-357 TJm +(\002le) 12.7327 Tj +-357 TJm +(for) 11.6169 Tj +-357 TJm +(which) 24.3496 Tj +-357 TJm +(the) 12.1748 Tj +-357 TJm +(error) 19.3581 Tj +108 476.912 Td +(indicator) 35.4185 Tj +-260 TJm +(\(viz,) 17.9832 Tj +[1 0 0 1 166.603 476.912] cm +0 g +0 G +[1 0 0 1 -166.603 -476.912] cm +[1 0 0 1 0 0] Tm +0 0 Td +166.603 476.912 Td +/F130_0 9.963 Tf +(ferror\(f\)) 53.8002 Tj +[1 0 0 1 220.401 476.912] cm +0 g +0 G +[1 0 0 1 -220.401 -476.912] cm +[1 0 0 1 0 0] Tm +0 0 Td +220.401 476.912 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-260 TJm +(is) 6.64532 Tj +-260 TJm +(set.) 13.5596 Tj +-679 TJm +(On) 12.1748 Tj +-260 TJm +(receipt) 27.1093 Tj +-260 TJm +(of) 8.29918 Tj +[1 0 0 1 311.223 476.912] cm +0 g +0 G +[1 0 0 1 -311.223 -476.912] cm +[1 0 0 1 0 0] Tm +0 0 Td +311.223 476.912 Td +/F130_0 9.963 Tf +(BZ_IO_ERROR) 65.7558 Tj +[1 0 0 1 376.976 476.912] cm +0 g +0 G +[1 0 0 1 -376.976 -476.912] cm +[1 0 0 1 0 0] Tm +0 0 Td +376.976 476.912 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-260 TJm +(the) 12.1748 Tj +-260 TJm +(caller) 22.1278 Tj +-260 TJm +(should) 26.5713 Tj +-259 TJm +(consult) 28.7831 Tj +[1 0 0 1 482.068 476.912] cm +0 g +0 G +[1 0 0 1 -482.068 -476.912] cm +[1 0 0 1 0 0] Tm +0 0 Td +482.068 476.912 Td +/F130_0 9.963 Tf +(errno) 29.889 Tj +[1 0 0 1 511.956 476.912] cm +0 g +0 G +[1 0 0 1 -511.956 -476.912] cm +[1 0 0 1 0 0] Tm +0 0 Td +514.546 476.912 Td +/F128_0 9.963 Tf +(and/or) 25.4555 Tj +[1 0 0 1 108 464.957] cm +0 g +0 G +[1 0 0 1 -108 -464.957] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 464.957 Td +/F130_0 9.963 Tf +(perror) 35.8668 Tj +[1 0 0 1 143.865 464.957] cm +0 g +0 G +[1 0 0 1 -143.865 -464.957] cm +[1 0 0 1 0 0] Tm +0 0 Td +146.356 464.957 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(acquire) 29.3211 Tj +-250 TJm +(operating-system) 68.6251 Tj +-249 TJm +(speci\002c) 30.437 Tj +-250 TJm +(information) 47.0453 Tj +-250 TJm +(about) 22.1378 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(problem.) 35.6974 Tj +[1 0 0 1 72 462.8] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -448.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 439.054 Td +/F130_0 9.963 Tf +(BZ_UNEXPECTED_EOF) 101.623 Tj +[1 0 0 1 173.619 439.054] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -104.11 -1.166] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -437.888] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 427.099 Td +/F128_0 9.963 Tf +(Returned) 36.5244 Tj +-250 TJm +(by) 9.963 Tj +[1 0 0 1 159.467 427.099] cm +0 g +0 G +[1 0 0 1 -159.467 -427.099] cm +[1 0 0 1 0 0] Tm +0 0 Td +159.467 427.099 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 219.242 427.099] cm +0 g +0 G +[1 0 0 1 -219.242 -427.099] cm +[1 0 0 1 0 0] Tm +0 0 Td +221.733 427.099 Td +/F128_0 9.963 Tf +(when) 21.5799 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(compressed) 47.0353 Tj +-250 TJm +(\002le) 12.7327 Tj +-250 TJm +(\002nis) 17.1662 Tj +1 TJm +(hes) 13.2807 Tj +-250 TJm +(before) 25.4455 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(logical) 27.1193 Tj +-250 TJm +(end) 14.3866 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(stream) 26.5614 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(detected.) 35.6875 Tj +[1 0 0 1 72 424.942] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -410.994] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 401.196 Td +/F130_0 9.963 Tf +(BZ_OUTBUFF_FULL) 89.667 Tj +[1 0 0 1 161.664 401.196] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -92.154 -1.166] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -400.03] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 389.241 Td +/F128_0 9.963 Tf +(Returned) 36.5244 Tj +-258 TJm +(by) 9.963 Tj +[1 0 0 1 159.632 389.241] cm +0 g +0 G +[1 0 0 1 -159.632 -389.241] cm +[1 0 0 1 0 0] Tm +0 0 Td +159.632 389.241 Td +/F130_0 9.963 Tf +(BZ2_bzBuffToBuffCompress) 143.467 Tj +[1 0 0 1 303.094 389.241] cm +0 g +0 G +[1 0 0 1 -303.094 -389.241] cm +[1 0 0 1 0 0] Tm +0 0 Td +305.667 389.241 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 322.627 389.241] cm +0 g +0 G +[1 0 0 1 -322.627 -389.241] cm +[1 0 0 1 0 0] Tm +0 0 Td +322.627 389.241 Td +/F130_0 9.963 Tf +(BZ2_bzBuffToBuffDecompres) 149.445 Tj +1 TJm +(s) 5.9778 Tj +[1 0 0 1 478.044 389.241] cm +0 g +0 G +[1 0 0 1 -478.044 -389.241] cm +[1 0 0 1 0 0] Tm +0 0 Td +480.617 389.241 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-258 TJm +(indicate) 31.5429 Tj +-258 TJm +(that) 14.9445 Tj +108 377.285 Td +(the) 12.1748 Tj +-250 TJm +(output) 25.4654 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(will) 15.5024 Tj +-250 TJm +(not) 12.7327 Tj +-250 TJm +(\002t) 8.30914 Tj +-250 TJm +(in) 7.75121 Tj +1 TJm +(to) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(output) 25.4654 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-250 TJm +(pro) 13.2807 Tj +15 TJm +(vided.) 24.6285 Tj +[1 0 0 1 72 375.129] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -3.985] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -351.218] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 328.585 Td +/F121_0 20.659 Tf +(3.3.) 34.4592 Tj +-278 TJm +(Lo) 25.2453 Tj +15 TJm +(w-le) 40.1818 Tj +15 TJm +(vel) 28.716 Tj +-278 TJm +(interface) 86.1067 Tj +[1 0 0 1 72 328.327] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -318.364] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 297.964 Td +/F121_0 17.215 Tf +(3.3.1.) 43.0719 Tj +[1 0 0 1 119.858 297.964] cm +0 g +0 G +[1 0 0 1 -119.858 -297.964] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 297.964 Td +/F387_0 17.215 Tf +(BZ2_bzCompressInit) 185.922 Tj +[1 0 0 1 305.785 297.964] cm +0 g +0 G +[1 0 0 1 -233.785 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -244.779] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.754] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.754] cm +0 g +0 G +[1 0 0 1 -493.841 -50.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.852 Td +/F128_0 9.963 Tf +(11) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 15 15 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -296.523] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 274.969 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 271.382] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(typedef) 41.8446 Tj +-426 TJm +(struct) 35.8668 Tj +-426 TJm +({) 5.9778 Tj +98.488 699.676 Td +(char) 23.9112 Tj +-426 TJm +(*next_in;) 53.8002 Tj +98.488 687.721 Td +(unsigned) 47.8224 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(avail_in;) 53.8002 Tj +98.488 675.766 Td +(unsigned) 47.8224 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(total_in_lo3) 71.7336 Tj +1 TJm +(2;) 11.9556 Tj +98.488 663.811 Td +(unsigned) 47.8224 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(total_in_hi3) 71.7336 Tj +1 TJm +(2;) 11.9556 Tj +98.488 639.9 Td +(char) 23.9112 Tj +-426 TJm +(*next_out;) 59.778 Tj +98.488 627.945 Td +(unsigned) 47.8224 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(avail_out;) 59.778 Tj +98.488 615.99 Td +(unsigned) 47.8224 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(total_out_lo) 71.7336 Tj +1 TJm +(32;) 17.9334 Tj +98.488 604.035 Td +(unsigned) 47.8224 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(total_out_hi) 71.7336 Tj +1 TJm +(32;) 17.9334 Tj +98.488 580.124 Td +(void) 23.9112 Tj +-426 TJm +(*state;) 41.8446 Tj +98.488 556.214 Td +(void) 23.9112 Tj +-426 TJm +(*\(*bzalloc\)\(void) 95.6448 Tj +-426 TJm +(*,i) 17.9334 Tj +1 TJm +(nt,int\);) 47.8224 Tj +98.488 544.259 Td +(void) 23.9112 Tj +-426 TJm +(\(*bzfree\)\(void) 83.6892 Tj +-426 TJm +(*,voi) 29.889 Tj +1 TJm +(d) 5.9778 Tj +-426 TJm +(*\);) 17.9334 Tj +98.488 532.304 Td +(void) 23.9112 Tj +-426 TJm +(*opaque;) 47.8224 Tj +90 520.349 Td +(}) 5.9778 Tj +-426 TJm +(bz_stream;) 59.778 Tj +90 496.438 Td +(int) 17.9334 Tj +-426 TJm +(BZ2_bzCompressInit) 107.6 Tj +-426 TJm +(\() 5.9778 Tj +-425 TJm +(bz_stream) 53.8002 Tj +-426 TJm +(*strm,) 35.8668 Tj +196.099 484.483 Td +(int) 17.9334 Tj +-426 TJm +(blockSize100k,) 83.6892 Tj +196.099 472.528 Td +(int) 17.9334 Tj +-426 TJm +(verbosity,) 59.778 Tj +196.099 460.573 Td +(int) 17.9334 Tj +-426 TJm +(workFactor) 59.778 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 445.031] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -435.068] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 423.113 Td +/F128_0 9.963 Tf +(Prepares) 34.3026 Tj +-356 TJm +(for) 11.6169 Tj +-356 TJm +(compressi) 40.4 Tj +1 TJm +(on.) 12.4538 Tj +-1256 TJm +(The) 15.4925 Tj +[1 0 0 1 209.409 423.113] cm +0 g +0 G +[1 0 0 1 -209.409 -423.113] cm +[1 0 0 1 0 0] Tm +0 0 Td +209.409 423.113 Td +/F130_0 9.963 Tf +(bz_stream) 53.8002 Tj +[1 0 0 1 263.208 423.113] cm +0 g +0 G +[1 0 0 1 -263.208 -423.113] cm +[1 0 0 1 0 0] Tm +0 0 Td +266.754 423.113 Td +/F128_0 9.963 Tf +(structure) 34.8605 Tj +-356 TJm +(holds) 21.5898 Tj +-356 TJm +(all) 9.963 Tj +-356 TJm +(d) 4.9815 Tj +1 TJm +(ata) 11.6169 Tj +-356 TJm +(pertaining) 40.4 Tj +-356 TJm +(to) 7.75121 Tj +-356 TJm +(the) 12.1748 Tj +-356 TJm +(compression) 50.363 Tj +-356 TJm +(acti) 14.3866 Tj +25 TJm +(vit) 10.5209 Tj +1 TJm +(y) 4.9815 Tj +65 TJm +(.) 2.49075 Tj +-1256 TJm +(A) 7.19329 Tj +[1 0 0 1 72 411.158] cm +0 g +0 G +[1 0 0 1 -72 -411.158] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 411.158 Td +/F130_0 9.963 Tf +(bz_stream) 53.8002 Tj +[1 0 0 1 125.798 411.158] cm +0 g +0 G +[1 0 0 1 -125.798 -411.158] cm +[1 0 0 1 0 0] Tm +0 0 Td +128.581 411.158 Td +/F128_0 9.963 Tf +(structure) 34.8605 Tj +-279 TJm +(should) 26.5713 Tj +-279 TJm +(be) 9.40507 Tj +-280 TJm +(allocate) 30.9849 Tj +1 TJm +(d) 4.9815 Tj +-280 TJm +(and) 14.3866 Tj +-279 TJm +(initialised) 39.304 Tj +-279 TJm +(prior) 19.3681 Tj +-279 TJm +(to) 7.75121 Tj +-280 TJm +(the) 12.1748 Tj +-279 TJm +(call.) 16.8773 Tj +-796 TJm +(The) 15.4925 Tj +-279 TJm +(\002elds) 21.5898 Tj +-279 TJm +(of) 8.29918 Tj +[1 0 0 1 431.939 411.158] cm +0 g +0 G +[1 0 0 1 -431.939 -411.158] cm +[1 0 0 1 0 0] Tm +0 0 Td +431.939 411.158 Td +/F130_0 9.963 Tf +(bz_stream) 53.8002 Tj +[1 0 0 1 485.738 411.158] cm +0 g +0 G +[1 0 0 1 -485.738 -411.158] cm +[1 0 0 1 0 0] Tm +0 0 Td +488.52 411.158 Td +/F128_0 9.963 Tf +(comprise) 36.5244 Tj +-279 TJm +(the) 12.1748 Tj +72 399.203 Td +(entirety) 30.437 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(user) 16.5984 Tj +20 TJm +(-visible) 29.889 Tj +-250 TJm +(d) 4.9815 Tj +1 TJm +(ata.) 14.1076 Tj +[1 0 0 1 204.422 399.203] cm +0 g +0 G +[1 0 0 1 -204.422 -399.203] cm +[1 0 0 1 0 0] Tm +0 0 Td +204.422 399.203 Td +/F130_0 9.963 Tf +(state) 29.889 Tj +[1 0 0 1 234.31 399.203] cm +0 g +0 G +[1 0 0 1 -234.31 -399.203] cm +[1 0 0 1 0 0] Tm +0 0 Td +236.8 399.203 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(pointer) 28.2252 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(pri) 11.0689 Tj +25 TJm +(v) 4.9815 Tj +25 TJm +(ate) 11.6169 Tj +-250 TJm +(data) 16.5984 Tj +-249 TJm +(structures) 38.7361 Tj +-250 TJm +(required) 33.1967 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(compression.) 52.8537 Tj +[1 0 0 1 72 397.046] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -387.084] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 377.285 Td +/F128_0 9.963 Tf +(Custom) 31.0049 Tj +-372 TJm +(memory) 33.2067 Tj +-372 TJm +(allocators) 38.7361 Tj +-372 TJm +(are) 12.1648 Tj +-372 TJm +(supported,) 41.7848 Tj +-402 TJm +(via) 12.1748 Tj +-372 TJm +(\002elds) 21.5898 Tj +[1 0 0 1 288.908 377.285] cm +0 g +0 G +[1 0 0 1 -288.908 -377.285] cm +[1 0 0 1 0 0] Tm +0 0 Td +288.908 377.285 Td +/F130_0 9.963 Tf +(bzalloc) 41.8446 Tj +[1 0 0 1 330.751 377.285] cm +0 g +0 G +[1 0 0 1 -330.751 -377.285] cm +[1 0 0 1 0 0] Tm +0 0 Td +330.751 377.285 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 337.253 377.285] cm +0 g +0 G +[1 0 0 1 -337.253 -377.285] cm +[1 0 0 1 0 0] Tm +0 0 Td +337.253 377.285 Td +/F130_0 9.963 Tf +(bzfree) 35.8668 Tj +[1 0 0 1 373.118 377.285] cm +0 g +0 G +[1 0 0 1 -373.118 -377.285] cm +[1 0 0 1 0 0] Tm +0 0 Td +373.118 377.285 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-403 TJm +(and) 14.3866 Tj +[1 0 0 1 397.714 377.285] cm +0 g +0 G +[1 0 0 1 -397.714 -377.285] cm +[1 0 0 1 0 0] Tm +0 0 Td +397.714 377.285 Td +/F130_0 9.963 Tf +(opaque) 35.8668 Tj +[1 0 0 1 433.579 377.285] cm +0 g +0 G +[1 0 0 1 -433.579 -377.285] cm +[1 0 0 1 0 0] Tm +0 0 Td +433.579 377.285 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1353 TJm +(The) 15.4925 Tj +-372 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +[1 0 0 1 493.782 377.285] cm +0 g +0 G +[1 0 0 1 -493.782 -377.285] cm +[1 0 0 1 0 0] Tm +0 0 Td +493.782 377.285 Td +/F130_0 9.963 Tf +(opaque) 35.8668 Tj +[1 0 0 1 529.648 377.285] cm +0 g +0 G +[1 0 0 1 -529.648 -377.285] cm +[1 0 0 1 0 0] Tm +0 0 Td +533.355 377.285 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +72 365.33 Td +(passed) 26.5614 Tj +-306 TJm +(to) 7.75121 Tj +-306 TJm +(as) 8.29918 Tj +-306 TJm +(the) 12.1748 Tj +-306 TJm +(\002) 5.53943 Tj +1 TJm +(rst) 9.963 Tj +-306 TJm +(ar) 7.74125 Tj +18 TJm +(gument) 29.889 Tj +-306 TJm +(to) 7.75121 Tj +-306 TJm +(all) 9.963 Tj +-306 TJm +(calls) 18.2622 Tj +-306 TJm +(to) 7.75121 Tj +[1 0 0 1 253.941 365.33] cm +0 g +0 G +[1 0 0 1 -253.941 -365.33] cm +[1 0 0 1 0 0] Tm +0 0 Td +253.941 365.33 Td +/F130_0 9.963 Tf +(bzalloc) 41.8446 Tj +[1 0 0 1 295.784 365.33] cm +0 g +0 G +[1 0 0 1 -295.784 -365.33] cm +[1 0 0 1 0 0] Tm +0 0 Td +298.832 365.33 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 316.266 365.33] cm +0 g +0 G +[1 0 0 1 -316.266 -365.33] cm +[1 0 0 1 0 0] Tm +0 0 Td +316.266 365.33 Td +/F130_0 9.963 Tf +(bzfree) 35.8668 Tj +[1 0 0 1 352.132 365.33] cm +0 g +0 G +[1 0 0 1 -352.132 -365.33] cm +[1 0 0 1 0 0] Tm +0 0 Td +352.132 365.33 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-320 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-306 TJm +(is) 6.64532 Tj +-306 TJm +(otherwise) 38.7361 Tj +-305 TJm +(ignored) 30.437 Tj +-306 TJm +(by) 9.963 Tj +-306 TJm +(the) 12.1748 Tj +-306 TJm +(library) 26.5614 Tj +65 TJm +(.) 2.49075 Tj +-956 TJm +(The) 15.4925 Tj +72 353.375 Td +(call) 14.3866 Tj +[1 0 0 1 89.431 353.375] cm +0 g +0 G +[1 0 0 1 -89.431 -353.375] cm +[1 0 0 1 0 0] Tm +0 0 Td +89.431 353.375 Td +/F130_0 9.963 Tf +(bzalloc) 41.8446 Tj +-600 TJm +(\() 5.9778 Tj +-600 TJm +(opaque,) 41.8446 Tj +-600 TJm +(n,) 11.9556 Tj +-600 TJm +(m) 5.9778 Tj +-600 TJm +(\)) 5.9778 Tj +[1 0 0 1 232.893 353.375] cm +0 g +0 G +[1 0 0 1 -232.893 -353.375] cm +[1 0 0 1 0 0] Tm +0 0 Td +235.938 353.375 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-306 TJm +(e) 4.42357 Tj +15 TJm +(xpect) 21.5799 Tj +1 TJm +(ed) 9.40507 Tj +-306 TJm +(to) 7.75121 Tj +-306 TJm +(return) 23.7916 Tj +-305 TJm +(a) 4.42357 Tj +-306 TJm +(pointer) 28.2252 Tj +[1 0 0 1 360.3 353.375] cm +0 g +0 G +[1 0 0 1 -360.3 -353.375] cm +[1 0 0 1 0 0] Tm +0 0 Td +360.3 353.375 Td +/F130_0 9.963 Tf +(p) 5.9778 Tj +[1 0 0 1 366.277 353.375] cm +0 g +0 G +[1 0 0 1 -366.277 -353.375] cm +[1 0 0 1 0 0] Tm +0 0 Td +369.322 353.375 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +[1 0 0 1 380.118 353.375] cm +0 g +0 G +[1 0 0 1 -380.118 -353.375] cm +[1 0 0 1 0 0] Tm +0 0 Td +380.118 353.375 Td +/F130_0 9.963 Tf +(n) 5.9778 Tj +-600 TJm +(*) 5.9778 Tj +-600 TJm +(m) 5.9778 Tj +[1 0 0 1 410.006 353.375] cm +0 g +0 G +[1 0 0 1 -410.006 -353.375] cm +[1 0 0 1 0 0] Tm +0 0 Td +413.051 353.375 Td +/F128_0 9.963 Tf +(bytes) 21.0319 Tj +-306 TJm +(of) 8.29918 Tj +-305 TJm +(memory) 33.2067 Tj +65 TJm +(,) 2.49075 Tj +-320 TJm +(and) 14.3866 Tj +[1 0 0 1 504.135 353.375] cm +0 g +0 G +[1 0 0 1 -504.135 -353.375] cm +[1 0 0 1 0 0] Tm +0 0 Td +504.135 353.375 Td +/F130_0 9.963 Tf +(bzfree) 35.8668 Tj +72 341.42 Td +(\() 5.9778 Tj +-600 TJm +(opaque,) 41.8446 Tj +-600 TJm +(p) 5.9778 Tj +-600 TJm +(\)) 5.9778 Tj +[1 0 0 1 149.709 341.42] cm +0 g +0 G +[1 0 0 1 -149.709 -341.42] cm +[1 0 0 1 0 0] Tm +0 0 Td +152.199 341.42 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-250 TJm +(free) 15.4825 Tj +-250 TJm +(that) 14.9445 Tj +-250 TJm +(memory) 33.2067 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 339.263] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -329.3] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 319.502 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-280 TJm +(you) 14.9445 Tj +-280 TJm +(don') 18.2622 Tj +18 TJm +(t) 2.76971 Tj +-279 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-280 TJm +(to) 7.75121 Tj +-280 TJm +(use) 13.2807 Tj +-280 TJm +(a) 4.42357 Tj +-279 TJm +(custom) 28.7831 Tj +-280 TJm +(memory) 33.2067 Tj +-280 TJm +(allocator) 34.8605 Tj +40 TJm +(,) 2.49075 Tj +-287 TJm +(set) 11.0689 Tj +[1 0 0 1 299.9 319.502] cm +0 g +0 G +[1 0 0 1 -299.9 -319.502] cm +[1 0 0 1 0 0] Tm +0 0 Td +299.9 319.502 Td +/F130_0 9.963 Tf +(bzalloc) 41.8446 Tj +[1 0 0 1 341.743 319.502] cm +0 g +0 G +[1 0 0 1 -341.743 -319.502] cm +[1 0 0 1 0 0] Tm +0 0 Td +341.743 319.502 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 347.096 319.502] cm +0 g +0 G +[1 0 0 1 -347.096 -319.502] cm +[1 0 0 1 0 0] Tm +0 0 Td +347.096 319.502 Td +/F130_0 9.963 Tf +(bzfree) 35.8668 Tj +[1 0 0 1 382.961 319.502] cm +0 g +0 G +[1 0 0 1 -382.961 -319.502] cm +[1 0 0 1 0 0] Tm +0 0 Td +385.749 319.502 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 402.923 319.502] cm +0 g +0 G +[1 0 0 1 -402.923 -319.502] cm +[1 0 0 1 0 0] Tm +0 0 Td +402.923 319.502 Td +/F130_0 9.963 Tf +(opaque) 35.8668 Tj +[1 0 0 1 438.788 319.502] cm +0 g +0 G +[1 0 0 1 -438.788 -319.502] cm +[1 0 0 1 0 0] Tm +0 0 Td +441.576 319.502 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +[1 0 0 1 452.115 319.502] cm +0 g +0 G +[1 0 0 1 -452.115 -319.502] cm +[1 0 0 1 0 0] Tm +0 0 Td +452.115 319.502 Td +/F130_0 9.963 Tf +(NULL) 23.9112 Tj +[1 0 0 1 476.025 319.502] cm +0 g +0 G +[1 0 0 1 -476.025 -319.502] cm +[1 0 0 1 0 0] Tm +0 0 Td +476.025 319.502 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-280 TJm +(and) 14.3866 Tj +-280 TJm +(the) 12.1748 Tj +-279 TJm +(library) 26.5614 Tj +72 307.547 Td +(will) 15.5024 Tj +-250 TJm +(then) 17.1563 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(standard) 33.7546 Tj +[1 0 0 1 176.318 307.547] cm +0 g +0 G +[1 0 0 1 -176.318 -307.547] cm +[1 0 0 1 0 0] Tm +0 0 Td +176.318 307.547 Td +/F130_0 9.963 Tf +(malloc) 35.8668 Tj +[1 0 0 1 212.183 307.547] cm +0 g +0 G +[1 0 0 1 -212.183 -307.547] cm +[1 0 0 1 0 0] Tm +0 0 Td +214.674 307.547 Td +/F128_0 9.963 Tf +(/) 2.76971 Tj +[1 0 0 1 219.934 307.547] cm +0 g +0 G +[1 0 0 1 -219.934 -307.547] cm +[1 0 0 1 0 0] Tm +0 0 Td +219.934 307.547 Td +/F130_0 9.963 Tf +(free) 23.9112 Tj +[1 0 0 1 243.844 307.547] cm +0 g +0 G +[1 0 0 1 -243.844 -307.547] cm +[1 0 0 1 0 0] Tm +0 0 Td +246.335 307.547 Td +/F128_0 9.963 Tf +(routines.) 34.5915 Tj +[1 0 0 1 72 307.338] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -297.375] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 285.629 Td +/F128_0 9.963 Tf +(Before) 27.1093 Tj +-362 TJm +(calling) 27.1193 Tj +[1 0 0 1 133.438 285.629] cm +0 g +0 G +[1 0 0 1 -133.438 -285.629] cm +[1 0 0 1 0 0] Tm +0 0 Td +133.438 285.629 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 241.035 285.629] cm +0 g +0 G +[1 0 0 1 -241.035 -285.629] cm +[1 0 0 1 0 0] Tm +0 0 Td +241.035 285.629 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-390 TJm +(\002elds) 21.5898 Tj +[1 0 0 1 272.606 285.629] cm +0 g +0 G +[1 0 0 1 -272.606 -285.629] cm +[1 0 0 1 0 0] Tm +0 0 Td +272.606 285.629 Td +/F130_0 9.963 Tf +(bzalloc) 41.8446 Tj +[1 0 0 1 314.449 285.629] cm +0 g +0 G +[1 0 0 1 -314.449 -285.629] cm +[1 0 0 1 0 0] Tm +0 0 Td +314.449 285.629 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 320.825 285.629] cm +0 g +0 G +[1 0 0 1 -320.825 -285.629] cm +[1 0 0 1 0 0] Tm +0 0 Td +320.825 285.629 Td +/F130_0 9.963 Tf +(bzfree) 35.8668 Tj +[1 0 0 1 356.69 285.629] cm +0 g +0 G +[1 0 0 1 -356.69 -285.629] cm +[1 0 0 1 0 0] Tm +0 0 Td +360.296 285.629 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 378.288 285.629] cm +0 g +0 G +[1 0 0 1 -378.288 -285.629] cm +[1 0 0 1 0 0] Tm +0 0 Td +378.288 285.629 Td +/F130_0 9.963 Tf +(opaque) 35.8668 Tj +[1 0 0 1 414.154 285.629] cm +0 g +0 G +[1 0 0 1 -414.154 -285.629] cm +[1 0 0 1 0 0] Tm +0 0 Td +417.76 285.629 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-362 TJm +(be) 9.40507 Tj +-362 TJm +(\002lled) 20.4839 Tj +-362 TJm +(appropriat) 40.9479 Tj +1 TJm +(ely) 12.1748 Tj +65 TJm +(,) 2.49075 Tj +72 273.674 Td +(as) 8.29918 Tj +-322 TJm +(just) 14.3965 Tj +-323 TJm +(described.) 40.669 Tj +-1055 TJm +(U) 7.19329 Tj +1 TJm +(pon) 14.9445 Tj +-323 TJm +(return,) 26.2824 Tj +-340 TJm +(the) 12.1748 Tj +-323 TJm +(internal) 30.437 Tj +-322 TJm +(state) 18.2622 Tj +-322 TJm +(will) 15.5024 Tj +-323 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-322 TJm +(been) 18.8101 Tj +-323 TJm +(allocated) 35.9664 Tj +-322 TJm +(and) 14.3866 Tj +-322 TJm +(initialised,) 41.7948 Tj +-341 TJm +(and) 14.3866 Tj +[1 0 0 1 459.801 273.674] cm +0 g +0 G +[1 0 0 1 -459.801 -273.674] cm +[1 0 0 1 0 0] Tm +0 0 Td +459.801 273.674 Td +/F130_0 9.963 Tf +(total_in_lo32) 77.7114 Tj +[1 0 0 1 537.509 273.674] cm +0 g +0 G +[1 0 0 1 -537.509 -273.674] cm +[1 0 0 1 0 0] Tm +0 0 Td +537.509 273.674 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 72 261.719] cm +0 g +0 G +[1 0 0 1 -72 -261.719] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 261.719 Td +/F130_0 9.963 Tf +(total_in_hi32) 77.7114 Tj +[1 0 0 1 149.709 261.719] cm +0 g +0 G +[1 0 0 1 -149.709 -261.719] cm +[1 0 0 1 0 0] Tm +0 0 Td +149.709 261.719 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 155.006 261.719] cm +0 g +0 G +[1 0 0 1 -155.006 -261.719] cm +[1 0 0 1 0 0] Tm +0 0 Td +155.006 261.719 Td +/F130_0 9.963 Tf +(total_out_lo32) 83.6892 Tj +[1 0 0 1 238.692 261.719] cm +0 g +0 G +[1 0 0 1 -238.692 -261.719] cm +[1 0 0 1 0 0] Tm +0 0 Td +241.435 261.719 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 258.564 261.719] cm +0 g +0 G +[1 0 0 1 -258.564 -261.719] cm +[1 0 0 1 0 0] Tm +0 0 Td +258.564 261.719 Td +/F130_0 9.963 Tf +(total_out_hi32) 83.6892 Tj +[1 0 0 1 342.25 261.719] cm +0 g +0 G +[1 0 0 1 -342.25 -261.719] cm +[1 0 0 1 0 0] Tm +0 0 Td +344.994 261.719 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-275 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-276 TJm +(b) 4.9815 Tj +1 TJm +(een) 13.8286 Tj +-276 TJm +(set) 11.0689 Tj +-275 TJm +(to) 7.75121 Tj +-275 TJm +(zero.) 19.6371 Tj +-772 TJm +(These) 23.7916 Tj +-276 TJm +(four) 16.5984 Tj +-275 TJm +(\002elds) 21.5898 Tj +-275 TJm +(are) 12.1648 Tj +72 249.763 Td +(used) 18.2622 Tj +-339 TJm +(by) 9.963 Tj +-340 TJm +(the) 12.1748 Tj +-339 TJm +(library) 26.5614 Tj +-340 TJm +(to) 7.75121 Tj +-339 TJm +(inform) 27.1193 Tj +-340 TJm +(the) 12.1748 Tj +-339 TJm +(caller) 22.1278 Tj +-340 TJm +(of) 8.29918 Tj +-339 TJm +(the) 12.1748 Tj +-340 TJm +(total) 17.7142 Tj +-339 TJm +(amount) 29.889 Tj +-340 TJm +(of) 8.29918 Tj +-339 TJm +(data) 16.5984 Tj +-339 TJm +(passed) 26.5614 Tj +-340 TJm +(into) 15.5024 Tj +-339 TJm +(and) 14.3866 Tj +-340 TJm +(out) 12.7327 Tj +-339 TJm +(of) 8.29918 Tj +-340 TJm +(the) 12.1748 Tj +-339 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +-362 TJm +(respecti) 30.9849 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ely) 12.1748 Tj +65 TJm +(.) 2.49075 Tj +72 237.808 Td +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-376 TJm +(should) 26.5713 Tj +-377 TJm +(not) 12.7327 Tj +-376 TJm +(try) 11.0689 Tj +-376 TJm +(to) 7.75121 Tj +-377 TJm +(c) 4.42357 Tj +1 TJm +(hange) 23.7916 Tj +-377 TJm +(them.) 22.4168 Tj +-1378 TJm +(As) 11.0689 Tj +-376 TJm +(of) 8.29918 Tj +-377 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +1 TJm +(rsion) 19.926 Tj +-377 TJm +(1.0,) 14.9445 Tj +-408 TJm +(64-bit) 23.8016 Tj +-376 TJm +(counts) 26.0134 Tj +-376 TJm +(are) 12.1648 Tj +-376 TJm +(maintained,) 46.7663 Tj +-408 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-377 TJm +(on) 9.963 Tj +-376 TJm +(32-bit) 23.8016 Tj +-376 TJm +(platforms,) 40.6789 Tj +72 225.853 Td +(using) 21.5898 Tj +-371 TJm +(the) 12.1748 Tj +[1 0 0 1 113.148 225.853] cm +0 g +0 G +[1 0 0 1 -113.148 -225.853] cm +[1 0 0 1 0 0] Tm +0 0 Td +113.148 225.853 Td +/F130_0 9.963 Tf +(_hi32) 29.889 Tj +[1 0 0 1 143.036 225.853] cm +0 g +0 G +[1 0 0 1 -143.036 -225.853] cm +[1 0 0 1 0 0] Tm +0 0 Td +146.729 225.853 Td +/F128_0 9.963 Tf +(\002elds) 21.5898 Tj +-371 TJm +(to) 7.75121 Tj +-370 TJm +(store) 19.3681 Tj +-371 TJm +(the) 12.1748 Tj +-370 TJm +(upper) 22.6858 Tj +-371 TJm +(32) 9.963 Tj +-370 TJm +(bits) 14.3965 Tj +-371 TJm +(of) 8.29918 Tj +-371 TJm +(the) 12.1748 Tj +-370 TJm +(count.) 24.6285 Tj +-1344 TJm +(So,) 13.0117 Tj +-401 TJm +(for) 11.6169 Tj +-370 TJm +(e) 4.42357 Tj +15 TJm +(xample,) 31.8218 Tj +-401 TJm +(the) 12.1748 Tj +-370 TJm +(total) 17.7142 Tj +-371 TJm +(amount) 29.889 Tj +-371 TJm +(of) 8.29918 Tj +-370 TJm +(data) 16.5984 Tj +-371 TJm +(in) 7.75121 Tj +-370 TJm +(is) 6.64532 Tj +[1 0 0 1 72 213.898] cm +0 g +0 G +[1 0 0 1 -72 -213.898] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 213.898 Td +/F130_0 9.963 Tf +(\(total_in_hi32) 83.6892 Tj +-600 TJm +(<<) 11.9556 Tj +-600 TJm +(32\)) 17.9334 Tj +-600 TJm +(+) 5.9778 Tj +-600 TJm +(to) 11.9556 Tj +1 TJm +(tal_in_lo32) 65.7558 Tj +[1 0 0 1 293.171 213.898] cm +0 g +0 G +[1 0 0 1 -293.171 -213.898] cm +[1 0 0 1 0 0] Tm +0 0 Td +293.171 213.898 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 212.732] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -202.77] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 191.98 Td +/F128_0 9.963 Tf +(P) 5.53943 Tj +15 TJm +(arameter) 34.8506 Tj +[1 0 0 1 115.367 191.98] cm +0 g +0 G +[1 0 0 1 -115.367 -191.98] cm +[1 0 0 1 0 0] Tm +0 0 Td +115.367 191.98 Td +/F130_0 9.963 Tf +(blockSize100k) 77.7114 Tj +[1 0 0 1 193.076 191.98] cm +0 g +0 G +[1 0 0 1 -193.076 -191.98] cm +[1 0 0 1 0 0] Tm +0 0 Td +196.205 191.98 Td +/F128_0 9.963 Tf +(speci\002es) 34.3126 Tj +-314 TJm +(the) 12.1748 Tj +-314 TJm +(block) 22.1378 Tj +-314 TJm +(size) 15.4925 Tj +-314 TJm +(to) 7.75121 Tj +-314 TJm +(be) 9.40507 Tj +-314 TJm +(used) 18.2622 Tj +-314 TJm +(for) 11.6169 Tj +-314 TJm +(comp) 22.1378 Tj +1 TJm +(ression.) 30.7159 Tj +-1005 TJm +(It) 6.08739 Tj +-314 TJm +(sh) 8.85711 Tj +1 TJm +(ould) 17.7142 Tj +-314 TJm +(be) 9.40507 Tj +-314 TJm +(a) 4.42357 Tj +-314 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +-314 TJm +(between) 33.1967 Tj +-314 TJm +(1) 4.9815 Tj +72 180.025 Td +(and) 14.3866 Tj +-289 TJm +(9) 4.9815 Tj +-289 TJm +(inclusi) 26.5713 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e,) 6.91432 Tj +-299 TJm +(and) 14.3866 Tj +-289 TJm +(the) 12.1748 Tj +-289 TJm +(actua) 21.0219 Tj +1 TJm +(l) 2.76971 Tj +-290 TJm +(b) 4.9815 Tj +1 TJm +(lock) 17.1563 Tj +-289 TJm +(size) 15.4925 Tj +-289 TJm +(used) 18.2622 Tj +-289 TJm +(is) 6.64532 Tj +-289 TJm +(100000) 29.889 Tj +-289 TJm +(x) 4.9815 Tj +-289 TJm +(this) 14.3965 Tj +-289 TJm +(\002gure.) 25.7344 Tj +-854 TJm +(9) 4.9815 Tj +-289 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(es) 8.29918 Tj +-289 TJm +(the) 12.1748 Tj +-289 TJm +(best) 16.0504 Tj +-289 TJm +(compression) 50.363 Tj +-289 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-289 TJm +(tak) 12.1748 Tj +10 TJm +(es) 8.29918 Tj +-289 TJm +(most) 19.378 Tj +72 168.07 Td +(memory) 33.2067 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 165.913] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -155.95] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 146.152 Td +/F128_0 9.963 Tf +(P) 5.53943 Tj +15 TJm +(arameter) 34.8506 Tj +[1 0 0 1 115.095 146.152] cm +0 g +0 G +[1 0 0 1 -115.095 -146.152] cm +[1 0 0 1 0 0] Tm +0 0 Td +115.095 146.152 Td +/F130_0 9.963 Tf +(verbosity) 53.8002 Tj +[1 0 0 1 168.894 146.152] cm +0 g +0 G +[1 0 0 1 -168.894 -146.152] cm +[1 0 0 1 0 0] Tm +0 0 Td +171.75 146.152 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-287 TJm +(be) 9.40507 Tj +-286 TJm +(set) 11.0689 Tj +-287 TJm +(to) 7.75121 Tj +-287 TJm +(a) 4.42357 Tj +-286 TJm +(number) 30.437 Tj +-287 TJm +(between) 33.1967 Tj +-287 TJm +(0) 4.9815 Tj +-286 TJm +(and) 14.3866 Tj +-287 TJm +(4) 4.9815 Tj +-287 TJm +(inclusi) 26.5713 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e.) 6.91432 Tj +-840 TJm +(0) 4.9815 Tj +-287 TJm +(is) 6.64532 Tj +-286 TJm +(silent,) 24.0806 Tj +-296 TJm +(and) 14.3866 Tj +-287 TJm +(greater) 27.6573 Tj +-286 TJm +(numbers) 34.3126 Tj +-287 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +72 134.197 Td +(increasingly) 48.6991 Tj +-342 TJm +(v) 4.9815 Tj +15 TJm +(erbose) 26.0034 Tj +-342 TJm +(monitoring/deb) 61.4418 Tj +20 TJm +(ugging) 27.6772 Tj +-342 TJm +(output.) 27.9562 Tj +-1173 TJm +(If) 6.63536 Tj +-342 TJm +(the) 12.1748 Tj +-342 TJm +(library) 26.5614 Tj +-342 TJm +(has) 13.2807 Tj +-342 TJm +(been) 18.8101 Tj +-342 TJm +(compiled) 37.0823 Tj +-342 TJm +(with) 17.7142 Tj +[1 0 0 1 446.429 134.197] cm +0 g +0 G +[1 0 0 1 -446.429 -134.197] cm +[1 0 0 1 0 0] Tm +0 0 Td +446.429 134.197 Td +/F130_0 9.963 Tf +(-DBZ_NO_STDIO) 77.7114 Tj +[1 0 0 1 524.138 134.197] cm +0 g +0 G +[1 0 0 1 -524.138 -134.197] cm +[1 0 0 1 0 0] Tm +0 0 Td +524.138 134.197 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-342 TJm +(no) 9.963 Tj +72 122.242 Td +(such) 18.2622 Tj +-250 TJm +(output) 25.4654 Tj +-250 TJm +(will) 15.5024 Tj +-250 TJm +(appear) 26.5514 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-249 TJm +(v) 4.9815 Tj +15 TJm +(erbosity) 32.1008 Tj +-250 TJm +(setting.) 29.0621 Tj +[1 0 0 1 72 120.085] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -110.122] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 100.324 Td +/F128_0 9.963 Tf +(P) 5.53943 Tj +15 TJm +(arameter) 34.8506 Tj +[1 0 0 1 116.619 100.324] cm +0 g +0 G +[1 0 0 1 -116.619 -100.324] cm +[1 0 0 1 0 0] Tm +0 0 Td +116.619 100.324 Td +/F130_0 9.963 Tf +(workFactor) 59.778 Tj +[1 0 0 1 176.395 100.324] cm +0 g +0 G +[1 0 0 1 -176.395 -100.324] cm +[1 0 0 1 0 0] Tm +0 0 Td +180.775 100.324 Td +/F128_0 9.963 Tf +(controls) 32.1008 Tj +-439 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-440 TJm +(the) 12.1748 Tj +-440 TJm +(compr) 25.4555 Tj +1 TJm +(ession) 24.9075 Tj +-440 TJm +(phase) 22.6858 Tj +-440 TJm +(be) 9.40507 Tj +1 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(es) 8.29918 Tj +-440 TJm +(when) 21.5799 Tj +-440 TJm +(presen) 26.0034 Tj +1 TJm +(ted) 12.1748 Tj +-440 TJm +(with) 17.7142 Tj +-440 TJm +(w) 7.19329 Tj +10 TJm +(orst) 14.9445 Tj +-439 TJm +(case,) 19.6371 Tj +-487 TJm +(highly) 25.4654 Tj +72 88.369 Td +(repetiti) 28.2252 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e,) 6.91432 Tj +-432 TJm +(input) 20.4839 Tj +-396 TJm +(data.) 19.0891 Tj +-1497 TJm +(If) 6.63536 Tj +-396 TJm +(compression) 50.363 Tj +-396 TJm +(runs) 17.1563 Tj +-396 TJm +(into) 15.5024 Tj +-396 TJm +(dif) 11.0689 Tj +25 TJm +(\002culties) 31.5528 Tj +-396 TJm +(caused) 27.1093 Tj +-396 TJm +(by) 9.963 Tj +-396 TJm +(repetiti) 28.2252 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-396 TJm +(data,) 19.0891 Tj +-432 TJm +(the) 12.1748 Tj +-396 TJm +(library) 26.5614 Tj +-396 TJm +(switches) 34.3126 Tj +-396 TJm +(from) 19.3681 Tj +[1 0 0 1 72 50.852] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.754] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.754] cm +0 g +0 G +[1 0 0 1 -493.841 -50.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.852 Td +/F128_0 9.963 Tf +(12) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 16 16 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -540 -741.554] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(the) 12.1748 Tj +-255 TJm +(stan) 16.0504 Tj +1 TJm +(dard) 17.7043 Tj +-255 TJm +(sorting) 27.6772 Tj +-255 TJm +(alg) 12.1748 Tj +1 TJm +(orithm) 26.5713 Tj +-255 TJm +(to) 7.75121 Tj +-255 TJm +(a) 4.42357 Tj +-254 TJm +(f) 3.31768 Tj +10 TJm +(allback) 28.7731 Tj +-255 TJm +(algorithm) 38.7461 Tj +1 TJm +(.) 2.49075 Tj +-648 TJm +(The) 15.4925 Tj +-255 TJm +(f) 3.31768 Tj +10 TJm +(allback) 28.7731 Tj +-254 TJm +(is) 6.64532 Tj +-255 TJm +(slo) 11.6268 Tj +25 TJm +(wer) 14.9345 Tj +-254 TJm +(than) 17.1563 Tj +-255 TJm +(the) 12.1748 Tj +-255 TJm +(st) 6.64532 Tj +1 TJm +(andard) 27.1093 Tj +-255 TJm +(algorithm) 38.7461 Tj +-254 TJm +(by) 9.963 Tj +-255 TJm +(perhaps) 30.9849 Tj +72 698.082 Td +(a) 4.42357 Tj +-250 TJm +(f) 3.31768 Tj +10 TJm +(actor) 19.916 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(three,) 22.4068 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(al) 7.19329 Tj +10 TJm +(w) 7.19329 Tj +10 TJm +(ays) 13.2807 Tj +-250 TJm +(b) 4.9815 Tj +1 TJm +(eha) 13.8286 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(es) 8.29918 Tj +-250 TJm +(reasonably) 43.1597 Tj +65 TJm +(,) 2.49075 Tj +-250 TJm +(no) 9.963 Tj +-250 TJm +(matter) 25.4555 Tj +-250 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(bad) 14.3866 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(input.) 22.9747 Tj +[1 0 0 1 72 695.925] cm +0 g +0 G +[1 0 0 1 0 -9.961] cm +0 g +0 G +[1 0 0 1 -72 -685.964] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 676.165 Td +/F128_0 9.963 Tf +(Lo) 11.0689 Tj +25 TJm +(wer) 14.9345 Tj +-240 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +1 TJm +(s) 3.87561 Tj +-240 TJm +(of) 8.29918 Tj +[1 0 0 1 138.421 676.165] cm +0 g +0 G +[1 0 0 1 -138.421 -676.165] cm +[1 0 0 1 0 0] Tm +0 0 Td +138.421 676.165 Td +/F130_0 9.963 Tf +(workFactor) 59.778 Tj +[1 0 0 1 198.197 676.165] cm +0 g +0 G +[1 0 0 1 -198.197 -676.165] cm +[1 0 0 1 0 0] Tm +0 0 Td +200.585 676.165 Td +/F128_0 9.963 Tf +(reduce) 26.5514 Tj +-240 TJm +(the) 12.1748 Tj +-239 TJm +(amount) 29.889 Tj +-240 TJm +(of) 8.29918 Tj +-239 TJm +(ef) 7.74125 Tj +25 TJm +(fort) 14.3866 Tj +-240 TJm +(the) 12.1748 Tj +-240 TJm +(standard) 33.7546 Tj +-239 TJm +(algorithm) 38.7461 Tj +-240 TJm +(will) 15.5024 Tj +-239 TJm +(e) 4.42357 Tj +15 TJm +(xpend) 24.3496 Tj +-240 TJm +(before) 25.4455 Tj +-240 TJm +(re) 7.74125 Tj +1 TJm +(sorting) 27.6772 Tj +-240 TJm +(to) 7.75121 Tj +-240 TJm +(the) 12.1748 Tj +72 664.21 Td +(f) 3.31768 Tj +10 TJm +(allback.) 31.2639 Tj +-618 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-248 TJm +(should) 26.5713 Tj +-247 TJm +(set) 11.0689 Tj +-248 TJm +(this) 14.3965 Tj +-247 TJm +(parameter) 39.8321 Tj +-247 TJm +(carefully;) 38.1782 Tj +-249 TJm +(too) 12.7327 Tj +-247 TJm +(lo) 7.75121 Tj +25 TJm +(w) 7.19329 Tj +65 TJm +(,) 2.49075 Tj +-248 TJm +(and) 14.3866 Tj +-247 TJm +(man) 17.1563 Tj +15 TJm +(y) 4.9815 Tj +-248 TJm +(inputs) 24.3595 Tj +-247 TJm +(will) 15.5024 Tj +-248 TJm +(be) 9.40507 Tj +-247 TJm +(handled) 31.5429 Tj +-248 TJm +(by) 9.963 Tj +-247 TJm +(the) 12.1748 Tj +-248 TJm +(f) 3.31768 Tj +10 TJm +(allback) 28.7731 Tj +-247 TJm +(algorithm) 38.7461 Tj +72 652.255 Td +(and) 14.3866 Tj +-308 TJm +(so) 8.85711 Tj +-308 TJm +(compress) 37.6303 Tj +-308 TJm +(rather) 23.2337 Tj +-308 TJm +(slo) 11.6268 Tj +25 TJm +(wly) 14.9445 Tj +65 TJm +(,) 2.49075 Tj +-323 TJm +(too) 12.7327 Tj +-308 TJm +(high,) 20.205 Tj +-323 TJm +(and) 14.3866 Tj +-308 TJm +(your) 18.2622 Tj +-308 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(erage-to-w) 43.1498 Tj +10 TJm +(orst) 14.9445 Tj +-308 TJm +(case) 17.1463 Tj +-308 TJm +(compression) 50.363 Tj +-308 TJm +(times) 21.5898 Tj +-308 TJm +(can) 13.8286 Tj +-308 TJm +(become) 30.9849 Tj +-308 TJm +(v) 4.9815 Tj +15 TJm +(ery) 12.7228 Tj +-308 TJm +(lar) 10.511 Tj +18 TJm +(ge.) 11.8958 Tj +72 640.3 Td +(The) 15.4925 Tj +-250 TJm +(def) 12.7228 Tj +10 TJm +(ault) 14.9445 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(30) 9.963 Tj +-250 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(es) 8.29918 Tj +-250 TJm +(re) 7.74125 Tj +1 TJm +(asonable) 34.8605 Tj +-250 TJm +(beha) 18.8101 Tj +20 TJm +(viour) 21.0319 Tj +-250 TJm +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(wide) 19.3681 Tj +-250 TJm +(range) 22.1278 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(circumstances.) 58.9311 Tj +[1 0 0 1 72 638.143] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -628.181] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 618.383 Td +/F128_0 9.963 Tf +(Allo) 17.7142 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues) 20.474 Tj +-250 TJm +(range) 22.1278 Tj +-250 TJm +(from) 19.3681 Tj +-249 TJm +(0) 4.9815 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(250) 14.9445 Tj +-250 TJm +(inclusi) 26.5713 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e.) 6.91432 Tj +-620 TJm +(0) 4.9815 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(special) 27.6673 Tj +-250 TJm +(case,) 19.6371 Tj +-250 TJm +(equi) 17.1563 Tj +25 TJm +(v) 4.9815 Tj +25 TJm +(alent) 19.3681 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(usi) 11.6268 Tj +1 TJm +(ng) 9.963 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(def) 12.7228 Tj +10 TJm +(ault) 14.9445 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(30.) 12.4538 Tj +[1 0 0 1 72 616.226] cm +0 g +0 G +[1 0 0 1 0 -9.961] cm +0 g +0 G +[1 0 0 1 -72 -606.265] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 596.466 Td +/F128_0 9.963 Tf +(Note) 19.3681 Tj +-250 TJm +(that) 14.9445 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(compressed) 47.0353 Tj +-250 TJm +(out) 12.7327 Tj +1 TJm +(put) 12.7327 Tj +-250 TJm +(generated) 38.7262 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(same) 20.474 Tj +-250 TJm +(re) 7.74125 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(ardless) 27.6673 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(whether) 32.0908 Tj +-250 TJm +(or) 8.29918 Tj +-250 TJm +(not) 12.7327 Tj +-250 TJm +(the) 12.1748 Tj +-249 TJm +(f) 3.31768 Tj +10 TJm +(allback) 28.7731 Tj +-250 TJm +(algorithm) 38.7461 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(used.) 20.7529 Tj +[1 0 0 1 72 594.309] cm +0 g +0 G +[1 0 0 1 0 -9.961] cm +0 g +0 G +[1 0 0 1 -72 -584.348] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 574.549 Td +/F128_0 9.963 Tf +(Be) 11.0689 Tj +-303 TJm +(a) 4.42357 Tj +15 TJm +(w) 7.19329 Tj +10 TJm +(are) 12.1648 Tj +-303 TJm +(also) 16.0504 Tj +-303 TJm +(that) 14.9445 Tj +-303 TJm +(this) 14.3965 Tj +-303 TJm +(parameter) 39.8321 Tj +-303 TJm +(may) 17.1563 Tj +-303 TJm +(disappear) 38.1782 Tj +-303 TJm +(entirely) 30.437 Tj +-303 TJm +(in) 7.75121 Tj +-303 TJm +(future) 23.7916 Tj +-303 TJm +(v) 4.9815 Tj +15 TJm +(ersions) 28.2252 Tj +-303 TJm +(of) 8.29918 Tj +-303 TJm +(the) 12.1748 Tj +-303 TJm +(library) 26.5614 Tj +65 TJm +(.) 2.49075 Tj +-939 TJm +(In) 8.29918 Tj +-303 TJm +(principle) 35.4185 Tj +-303 TJm +(it) 5.53943 Tj +-303 TJm +(should) 26.5713 Tj +-303 TJm +(be) 9.40507 Tj +72 562.594 Td +(possible) 32.6587 Tj +-270 TJm +(to) 7.75121 Tj +-270 TJm +(de) 9.40507 Tj +25 TJm +(vise) 16.0504 Tj +-270 TJm +(a) 4.42357 Tj +-270 TJm +(good) 19.926 Tj +-270 TJm +(w) 7.19329 Tj +10 TJm +(ay) 9.40507 Tj +-270 TJm +(to) 7.75121 Tj +-270 TJm +(automatically) 54.2386 Tj +-270 TJm +(choose) 27.6673 Tj +-270 TJm +(which) 24.3496 Tj +-270 TJm +(algorithm) 38.7461 Tj +-270 TJm +(to) 7.75121 Tj +-270 TJm +(use.) 15.7714 Tj +-740 TJm +(Such) 19.926 Tj +-270 TJm +(a) 4.42357 Tj +-270 TJm +(mechanism) 45.3815 Tj +-270 TJm +(w) 7.19329 Tj +10 TJm +(ould) 17.7142 Tj +-270 TJm +(render) 25.4455 Tj +-270 TJm +(the) 12.1748 Tj +72 550.639 Td +(parameter) 39.8321 Tj +-250 TJm +(obsolete.) 35.6974 Tj +[1 0 0 1 72 548.482] cm +0 g +0 G +[1 0 0 1 0 -9.961] cm +0 g +0 G +[1 0 0 1 -72 -538.521] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 528.722 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 528.623] cm +0 g +0 G +[1 0 0 1 0 -144.458] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 143.462 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 139.876] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -519.258] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 519.258 Td +/F130_0 9.963 Tf +(BZ_CONFIG_ERROR) 89.667 Tj +98.488 507.303 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(library) 41.8446 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-425 TJm +(mis-compiled) 71.7336 Tj +90 495.348 Td +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 483.392 Td +(if) 11.9556 Tj +-426 TJm +(strm) 23.9112 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +98.488 471.437 Td +(or) 11.9556 Tj +-426 TJm +(blockSize) 53.8002 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(1) 5.9778 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(bloc) 23.9112 Tj +1 TJm +(kSize) 29.889 Tj +-426 TJm +(>) 5.9778 Tj +-426 TJm +(9) 5.9778 Tj +98.488 459.482 Td +(or) 11.9556 Tj +-426 TJm +(verbosity) 53.8002 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(verb) 23.9112 Tj +1 TJm +(osity) 29.889 Tj +-426 TJm +(>) 5.9778 Tj +-426 TJm +(4) 5.9778 Tj +98.488 447.527 Td +(or) 11.9556 Tj +-426 TJm +(workFactor) 59.778 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(wor) 17.9334 Tj +1 TJm +(kFactor) 41.8446 Tj +-426 TJm +(>) 5.9778 Tj +-426 TJm +(250) 17.9334 Tj +90 435.572 Td +(BZ_MEM_ERROR) 71.7336 Tj +98.488 423.617 Td +(if) 11.9556 Tj +-426 TJm +(not) 17.9334 Tj +-426 TJm +(enough) 35.8668 Tj +-426 TJm +(memory) 35.8668 Tj +-426 TJm +(is) 11.9556 Tj +-425 TJm +(available) 53.8002 Tj +90 411.661 Td +(BZ_OK) 29.889 Tj +98.488 399.706 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 384.165] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.548] cm +0 g +0 G +[1 0 0 1 -72 -374.203] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 362.248 Td +/F128_0 9.963 Tf +(Allo) 17.7142 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-250 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-250 TJm +(actions:) 30.9949 Tj +[1 0 0 1 72 362.148] cm +0 g +0 G +[1 0 0 1 0 -48.817] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 47.821 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 44.234] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -352.783] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 352.783 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +98.488 340.828 Td +(if) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(returned) 47.8224 Tj +98.488 328.873 Td +(no) 11.9556 Tj +-426 TJm +(specific) 47.8224 Tj +-426 TJm +(action) 35.8668 Tj +-426 TJm +(needed) 35.8668 Tj +-425 TJm +(in) 11.9556 Tj +-426 TJm +(case) 23.9112 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(error) 29.889 Tj +[1 0 0 1 72 313.331] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.961] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -303.37] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 282.711 Td +/F121_0 17.215 Tf +(3.3.2.) 43.0719 Tj +[1 0 0 1 119.858 282.711] cm +0 g +0 G +[1 0 0 1 -119.858 -282.711] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 282.711 Td +/F387_0 17.215 Tf +(BZ2_bzCompress) 144.606 Tj +[1 0 0 1 264.468 282.711] cm +0 g +0 G +[1 0 0 1 -192.468 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -24.906] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 20.324] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -271.014] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 271.014 Td +/F130_0 9.963 Tf +(int) 17.9334 Tj +-426 TJm +(BZ2_bzCompress) 83.6892 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(bz_s) 23.9112 Tj +1 TJm +(tream) 29.889 Tj +-426 TJm +(*strm,) 35.8668 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(action) 35.8668 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 255.472] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.548] cm +0 g +0 G +[1 0 0 1 -72 -245.51] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 233.555 Td +/F128_0 9.963 Tf +(Pro) 13.8386 Tj +15 TJm +(vides) 21.0319 Tj +-222 TJm +(mor) 16.0504 Tj +1 TJm +(e) 4.42357 Tj +-222 TJm +(input) 20.4839 Tj +-222 TJm +(and/or) 25.4555 Tj +-221 TJm +(output) 25.4654 Tj +-222 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-222 TJm +(space) 22.1278 Tj +-221 TJm +(for) 11.6169 Tj +-222 TJm +(the) 12.1748 Tj +-222 TJm +(li) 5.53943 Tj +1 TJm +(brary) 21.0219 Tj +65 TJm +(.) 2.49075 Tj +-602 TJm +(T) 6.08739 Tj +1 TJm +(he) 9.40507 Tj +-222 TJm +(caller) 22.1278 Tj +-222 TJm +(maintains) 38.7461 Tj +-221 TJm +(input) 20.4839 Tj +-222 TJm +(and) 14.3866 Tj +-222 TJm +(ou) 9.963 Tj +1 TJm +(tput) 15.5024 Tj +-222 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fers,) 17.4253 Tj +-227 TJm +(and) 14.3866 Tj +-222 TJm +(calls) 18.2622 Tj +[1 0 0 1 72 221.6] cm +0 g +0 G +[1 0 0 1 -72 -221.6] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 221.6 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 155.686 221.6] cm +0 g +0 G +[1 0 0 1 -155.686 -221.6] cm +[1 0 0 1 0 0] Tm +0 0 Td +158.177 221.6 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(transfer) 30.427 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(between) 33.1967 Tj +-250 TJm +(the) 12.1748 Tj +1 TJm +(m.) 10.242 Tj +[1 0 0 1 72 220.036] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -210.074] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 199.683 Td +/F128_0 9.963 Tf +(Before) 27.1093 Tj +-212 TJm +(each) 18.2522 Tj +-213 TJm +(call) 14.3866 Tj +-212 TJm +(to) 7.75121 Tj +[1 0 0 1 147.961 199.683] cm +0 g +0 G +[1 0 0 1 -147.961 -199.683] cm +[1 0 0 1 0 0] Tm +0 0 Td +147.961 199.683 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 231.647 199.683] cm +0 g +0 G +[1 0 0 1 -231.647 -199.683] cm +[1 0 0 1 0 0] Tm +0 0 Td +231.647 199.683 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 236.329 199.683] cm +0 g +0 G +[1 0 0 1 -236.329 -199.683] cm +[1 0 0 1 0 0] Tm +0 0 Td +236.329 199.683 Td +/F130_0 9.963 Tf +(next_in) 41.8446 Tj +[1 0 0 1 278.172 199.683] cm +0 g +0 G +[1 0 0 1 -278.172 -199.683] cm +[1 0 0 1 0 0] Tm +0 0 Td +280.289 199.683 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-212 TJm +(point) 20.4839 Tj +-213 TJm +(at) 7.19329 Tj +-212 TJm +(the) 12.1748 Tj +-212 TJm +(data) 16.5984 Tj +-213 TJm +(to) 7.75121 Tj +-212 TJm +(be) 9.40507 Tj +-212 TJm +(compressed,) 49.5261 Tj +-220 TJm +(and) 14.3866 Tj +[1 0 0 1 463.493 199.683] cm +0 g +0 G +[1 0 0 1 -463.493 -199.683] cm +[1 0 0 1 0 0] Tm +0 0 Td +463.493 199.683 Td +/F130_0 9.963 Tf +(avail_in) 47.8224 Tj +[1 0 0 1 511.314 199.683] cm +0 g +0 G +[1 0 0 1 -511.314 -199.683] cm +[1 0 0 1 0 0] Tm +0 0 Td +513.43 199.683 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +72 187.728 Td +(indicate) 31.5429 Tj +-246 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-246 TJm +(man) 17.1563 Tj +15 TJm +(y) 4.9815 Tj +-246 TJm +(bytes) 21.0319 Tj +-247 TJm +(the) 12.1748 Tj +-246 TJm +(library) 26.5614 Tj +-246 TJm +(may) 17.1563 Tj +-246 TJm +(read.) 19.6371 Tj +[1 0 0 1 259.242 187.728] cm +0 g +0 G +[1 0 0 1 -259.242 -187.728] cm +[1 0 0 1 0 0] Tm +0 0 Td +259.242 187.728 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 342.929 187.728] cm +0 g +0 G +[1 0 0 1 -342.929 -187.728] cm +[1 0 0 1 0 0] Tm +0 0 Td +345.382 187.728 Td +/F128_0 9.963 Tf +(updates) 30.437 Tj +[1 0 0 1 378.271 187.728] cm +0 g +0 G +[1 0 0 1 -378.271 -187.728] cm +[1 0 0 1 0 0] Tm +0 0 Td +378.271 187.728 Td +/F130_0 9.963 Tf +(next_in) 41.8446 Tj +[1 0 0 1 420.114 187.728] cm +0 g +0 G +[1 0 0 1 -420.114 -187.728] cm +[1 0 0 1 0 0] Tm +0 0 Td +420.114 187.728 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 425.066 187.728] cm +0 g +0 G +[1 0 0 1 -425.066 -187.728] cm +[1 0 0 1 0 0] Tm +0 0 Td +425.066 187.728 Td +/F130_0 9.963 Tf +(avail_in) 47.8224 Tj +[1 0 0 1 472.886 187.728] cm +0 g +0 G +[1 0 0 1 -472.886 -187.728] cm +[1 0 0 1 0 0] Tm +0 0 Td +475.34 187.728 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 492.179 187.728] cm +0 g +0 G +[1 0 0 1 -492.179 -187.728] cm +[1 0 0 1 0 0] Tm +0 0 Td +492.179 187.728 Td +/F130_0 9.963 Tf +(total_in) 47.8224 Tj +[1 0 0 1 540 187.728] cm +0 g +0 G +[1 0 0 1 -540 -187.728] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 175.773 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(re\003ect) 24.8975 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(number) 30.437 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(bytes) 21.0319 Tj +-249 TJm +(it) 5.53943 Tj +-250 TJm +(has) 13.2807 Tj +-250 TJm +(read.) 19.6371 Tj +[1 0 0 1 72 173.616] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -163.654] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 153.856 Td +/F128_0 9.963 Tf +(Similarly) 37.0922 Tj +65 TJm +(,) 2.49075 Tj +[1 0 0 1 113.148 153.856] cm +0 g +0 G +[1 0 0 1 -113.148 -153.856] cm +[1 0 0 1 0 0] Tm +0 0 Td +113.148 153.856 Td +/F130_0 9.963 Tf +(next_out) 47.8224 Tj +[1 0 0 1 160.968 153.856] cm +0 g +0 G +[1 0 0 1 -160.968 -153.856] cm +[1 0 0 1 0 0] Tm +0 0 Td +163.114 153.856 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-215 TJm +(point) 20.4839 Tj +-215 TJm +(to) 7.75121 Tj +-216 TJm +(a) 4.42357 Tj +-215 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-215 TJm +(in) 7.75121 Tj +-216 TJm +(whi) 14.9445 Tj +1 TJm +(ch) 9.40507 Tj +-216 TJm +(the) 12.1748 Tj +-215 TJm +(compressed) 47.0353 Tj +-215 TJm +(data) 16.5984 Tj +-215 TJm +(is) 6.64532 Tj +-216 TJm +(to) 7.75121 Tj +-215 TJm +(be) 9.40507 Tj +-215 TJm +(placed,) 28.4942 Tj +-222 TJm +(with) 17.7142 Tj +[1 0 0 1 456.391 153.856] cm +0 g +0 G +[1 0 0 1 -456.391 -153.856] cm +[1 0 0 1 0 0] Tm +0 0 Td +456.391 153.856 Td +/F130_0 9.963 Tf +(avail_out) 53.8002 Tj +[1 0 0 1 510.189 153.856] cm +0 g +0 G +[1 0 0 1 -510.189 -153.856] cm +[1 0 0 1 0 0] Tm +0 0 Td +512.334 153.856 Td +/F128_0 9.963 Tf +(indica-) 27.6673 Tj +72 141.901 Td +(ting) 15.5024 Tj +-280 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-281 TJm +(muc) 17.1563 Tj +1 TJm +(h) 4.9815 Tj +-281 TJm +(output) 25.4654 Tj +-280 TJm +(space) 22.1278 Tj +-280 TJm +(is) 6.64532 Tj +-281 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +25 TJm +(ailabl) 22.1378 Tj +1 TJm +(e.) 6.91432 Tj +[1 0 0 1 239.543 141.901] cm +0 g +0 G +[1 0 0 1 -239.543 -141.901] cm +[1 0 0 1 0 0] Tm +0 0 Td +239.543 141.901 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 323.229 141.901] cm +0 g +0 G +[1 0 0 1 -323.229 -141.901] cm +[1 0 0 1 0 0] Tm +0 0 Td +326.022 141.901 Td +/F128_0 9.963 Tf +(updates) 30.437 Tj +[1 0 0 1 359.251 141.901] cm +0 g +0 G +[1 0 0 1 -359.251 -141.901] cm +[1 0 0 1 0 0] Tm +0 0 Td +359.251 141.901 Td +/F130_0 9.963 Tf +(next_out) 47.8224 Tj +[1 0 0 1 407.072 141.901] cm +0 g +0 G +[1 0 0 1 -407.072 -141.901] cm +[1 0 0 1 0 0] Tm +0 0 Td +407.072 141.901 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 412.431 141.901] cm +0 g +0 G +[1 0 0 1 -412.431 -141.901] cm +[1 0 0 1 0 0] Tm +0 0 Td +412.431 141.901 Td +/F130_0 9.963 Tf +(avail_out) 53.8002 Tj +[1 0 0 1 466.229 141.901] cm +0 g +0 G +[1 0 0 1 -466.229 -141.901] cm +[1 0 0 1 0 0] Tm +0 0 Td +469.023 141.901 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 486.202 141.901] cm +0 g +0 G +[1 0 0 1 -486.202 -141.901] cm +[1 0 0 1 0 0] Tm +0 0 Td +486.202 141.901 Td +/F130_0 9.963 Tf +(total_out) 53.8002 Tj +[1 0 0 1 540 141.901] cm +0 g +0 G +[1 0 0 1 -540 -141.901] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 129.946 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(re\003ect) 24.8975 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(number) 30.437 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(bytes) 21.0319 Tj +-249 TJm +(output.) 27.9562 Tj +[1 0 0 1 72 127.789] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -117.827] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 108.029 Td +/F128_0 9.963 Tf +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-272 TJm +(may) 17.1563 Tj +-272 TJm +(pro) 13.2807 Tj +15 TJm +(vide) 17.1563 Tj +-272 TJm +(and) 14.3866 Tj +-271 TJm +(remo) 20.474 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-272 TJm +(as) 8.29918 Tj +-272 TJm +(little) 18.2721 Tj +-272 TJm +(or) 8.29918 Tj +-272 TJm +(as) 8.29918 Tj +-272 TJm +(much) 22.1378 Tj +-272 TJm +(data) 16.5984 Tj +-272 TJm +(as) 8.29918 Tj +-271 TJm +(you) 14.9445 Tj +-272 TJm +(lik) 10.5209 Tj +10 TJm +(e) 4.42357 Tj +-272 TJm +(on) 9.963 Tj +-272 TJm +(each) 18.2522 Tj +-272 TJm +(call) 14.3866 Tj +-272 TJm +(of) 8.29918 Tj +[1 0 0 1 399.123 108.029] cm +0 g +0 G +[1 0 0 1 -399.123 -108.029] cm +[1 0 0 1 0 0] Tm +0 0 Td +399.123 108.029 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 482.809 108.029] cm +0 g +0 G +[1 0 0 1 -482.809 -108.029] cm +[1 0 0 1 0 0] Tm +0 0 Td +482.809 108.029 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-752 TJm +(In) 8.29918 Tj +-272 TJm +(the) 12.1748 Tj +-271 TJm +(limit,) 21.3208 Tj +72 96.074 Td +(it) 5.53943 Tj +-266 TJm +(is) 6.64532 Tj +-265 TJm +(acceptable) 42.0439 Tj +-266 TJm +(to) 7.75121 Tj +-266 TJm +(su) 8.85711 Tj +1 TJm +(pply) 17.7142 Tj +-266 TJm +(and) 14.3866 Tj +-266 TJm +(remo) 20.474 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-265 TJm +(data) 16.5984 Tj +-266 TJm +(one) 14.3866 Tj +-266 TJm +(byte) 17.1563 Tj +-265 TJm +(at) 7.19329 Tj +-266 TJm +(a) 4.42357 Tj +-266 TJm +(time,) 20.205 Tj +-269 TJm +(although) 34.8705 Tj +-266 TJm +(this) 14.3965 Tj +-265 TJm +(w) 7.19329 Tj +10 TJm +(ould) 17.7142 Tj +-266 TJm +(be) 9.40507 Tj +-266 TJm +(terribly) 29.3311 Tj +-265 TJm +(inef) 15.4925 Tj +25 TJm +(\002cient.) 27.3983 Tj +-714 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-266 TJm +(should) 26.5713 Tj +72 84.118 Td +(al) 7.19329 Tj +10 TJm +(w) 7.19329 Tj +10 TJm +(ays) 13.2807 Tj +-250 TJm +(ensure) 26.0034 Tj +-250 TJm +(that) 14.9445 Tj +-250 TJm +(at) 7.19329 Tj +-250 TJm +(least) 18.2622 Tj +-249 TJm +(one) 14.3866 Tj +-250 TJm +(byte) 17.1563 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(output) 25.4654 Tj +-250 TJm +(space) 22.1278 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +25 TJm +(ailable) 26.5614 Tj +-250 TJm +(at) 7.19329 Tj +-250 TJm +(each) 18.2522 Tj +-250 TJm +(call.) 16.8773 Tj +[1 0 0 1 72 81.962] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 0 -21.148] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(13) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 17 17 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -540 -741.554] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(A) 7.19329 Tj +-250 TJm +(second) 27.6673 Tj +-250 TJm +(purpose) 31.5429 Tj +-250 TJm +(of) 8.29918 Tj +[1 0 0 1 156.662 710.037] cm +0 g +0 G +[1 0 0 1 -156.662 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +156.662 710.037 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 240.348 710.037] cm +0 g +0 G +[1 0 0 1 -240.348 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +242.839 710.037 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(request) 28.7731 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(change) 28.2152 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(mod) 17.7142 Tj +1 TJm +(e) 4.42357 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(compressed) 47.0353 Tj +-250 TJm +(stream.) 29.0521 Tj +[1 0 0 1 72 707.881] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -697.918] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 688.12 Td +/F128_0 9.963 Tf +(Conceptually) 53.1327 Tj +65 TJm +(,) 2.49075 Tj +-217 TJm +(a) 4.42357 Tj +-209 TJm +(compressed) 47.0353 Tj +-209 TJm +(stream) 26.5614 Tj +-210 TJm +(can) 13.8286 Tj +-209 TJm +(be) 9.40507 Tj +-209 TJm +(in) 7.75121 Tj +-209 TJm +(one) 14.3866 Tj +-209 TJm +(of) 8.29918 Tj +-210 TJm +(four) 16.5984 Tj +-209 TJm +(states:) 24.9075 Tj +-289 TJm +(IDLE,) 25.1765 Tj +-209 TJm +(R) 6.64532 Tj +40 TJm +(UNNING,) 41.7749 Tj +-209 TJm +(FLUSHING) 49.2571 Tj +-209 TJm +(and) 14.3866 Tj +-210 TJm +(FINISHING) 49.805 Tj +1 TJm +(.) 2.49075 Tj +-419 TJm +(Be-) 14.3866 Tj +72 676.164 Td +(fore) 16.0404 Tj +-264 TJm +(initialis) 29.899 Tj +1 TJm +(ation) 19.926 Tj +-264 TJm +(\() 3.31768 Tj +[1 0 0 1 146.434 676.164] cm +0 g +0 G +[1 0 0 1 -146.434 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +146.434 676.164 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 254.031 676.164] cm +0 g +0 G +[1 0 0 1 -254.031 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +254.031 676.164 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-264 TJm +(and) 14.3866 Tj +-263 TJm +(after) 18.2522 Tj +-264 TJm +(termination) 45.9394 Tj +-264 TJm +(\() 3.31768 Tj +[1 0 0 1 349.75 676.164] cm +0 g +0 G +[1 0 0 1 -349.75 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +349.75 676.164 Td +/F130_0 9.963 Tf +(BZ2_bzCompressEnd) 101.623 Tj +[1 0 0 1 451.369 676.164] cm +0 g +0 G +[1 0 0 1 -451.369 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +451.369 676.164 Td +/F128_0 9.963 Tf +(\),) 5.80843 Tj +-267 TJm +(a) 4.42357 Tj +-264 TJm +(stream) 26.5614 Tj +-263 TJm +(is) 6.64532 Tj +-264 TJm +(re) 7.74125 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(arded) 22.1278 Tj +72 664.209 Td +(as) 8.29918 Tj +-250 TJm +(IDLE.) 25.1765 Tj +[1 0 0 1 72 664.11] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -654.147] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 642.291 Td +/F128_0 9.963 Tf +(Upon) 22.1378 Tj +-389 TJm +(initialisation) 49.825 Tj +-389 TJm +(\() 3.31768 Tj +[1 0 0 1 155.036 642.291] cm +0 g +0 G +[1 0 0 1 -155.036 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +155.036 642.291 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 262.632 642.291] cm +0 g +0 G +[1 0 0 1 -262.632 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +262.632 642.291 Td +/F128_0 9.963 Tf +(\),) 5.80843 Tj +-424 TJm +(the) 12.1748 Tj +-390 TJm +(stream) 26.5614 Tj +-389 TJm +(is) 6.64532 Tj +-389 TJm +(placed) 26.0034 Tj +-390 TJm +(in) 7.75121 Tj +-389 TJm +(the) 12.1748 Tj +-389 TJm +(R) 6.64532 Tj +40 TJm +(UNNING) 39.2841 Tj +-389 TJm +(state.) 20.7529 Tj +-1457 TJm +(Subsequent) 45.9394 Tj +-389 TJm +(calls) 18.2622 Tj +72 630.336 Td +(to) 7.75121 Tj +[1 0 0 1 83.818 630.336] cm +0 g +0 G +[1 0 0 1 -83.818 -630.336] cm +[1 0 0 1 0 0] Tm +0 0 Td +83.818 630.336 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 167.504 630.336] cm +0 g +0 G +[1 0 0 1 -167.504 -630.336] cm +[1 0 0 1 0 0] Tm +0 0 Td +171.571 630.336 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-408 TJm +(pass) 17.1563 Tj +[1 0 0 1 223.431 630.336] cm +0 g +0 G +[1 0 0 1 -223.431 -630.336] cm +[1 0 0 1 0 0] Tm +0 0 Td +223.431 630.336 Td +/F130_0 9.963 Tf +(BZ_RUN) 35.8668 Tj +[1 0 0 1 259.297 630.336] cm +0 g +0 G +[1 0 0 1 -259.297 -630.336] cm +[1 0 0 1 0 0] Tm +0 0 Td +263.362 630.336 Td +/F128_0 9.963 Tf +(as) 8.29918 Tj +-408 TJm +(the) 12.1748 Tj +-408 TJm +(requested) 38.1782 Tj +-408 TJm +(action;) 27.1193 Tj +-488 TJm +(other) 20.474 Tj +-408 TJm +(actions) 28.2252 Tj +-408 TJm +(are) 12.1648 Tj +-408 TJm +(ille) 12.7327 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(al) 7.19329 Tj +-408 TJm +(and) 14.3866 Tj +-408 TJm +(will) 15.5024 Tj +-409 TJm +(re) 7.74125 Tj +1 TJm +(sult) 14.3965 Tj +-409 TJm +(in) 7.75121 Tj +[1 0 0 1 72 618.381] cm +0 g +0 G +[1 0 0 1 -72 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 618.381 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_ERROR) 101.623 Tj +[1 0 0 1 173.619 618.381] cm +0 g +0 G +[1 0 0 1 -173.619 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +173.619 618.381 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 616.961] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -606.999] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 596.463 Td +/F128_0 9.963 Tf +(At) 9.963 Tj +-279 TJm +(some) 21.0319 Tj +-279 TJm +(point,) 22.9747 Tj +-286 TJm +(the) 12.1748 Tj +-279 TJm +(call) 14.3866 Tj +1 TJm +(ing) 12.7327 Tj +-279 TJm +(program) 33.7546 Tj +-279 TJm +(will) 15.5024 Tj +-279 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-279 TJm +(pro) 13.2807 Tj +15 TJm +(vided) 22.1378 Tj +-279 TJm +(all) 9.963 Tj +-278 TJm +(the) 12.1748 Tj +-279 TJm +(input) 20.4839 Tj +-279 TJm +(data) 16.5984 Tj +-279 TJm +(it) 5.53943 Tj +-279 TJm +(w) 7.19329 Tj +10 TJm +(ants) 16.0504 Tj +-279 TJm +(to.) 10.242 Tj +-793 TJm +(It) 6.08739 Tj +-279 TJm +(will) 15.5024 Tj +-279 TJm +(then) 17.1563 Tj +-279 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-278 TJm +(to) 7.75121 Tj +-279 TJm +(\002nish) 22.1477 Tj +-279 TJm +(up) 9.963 Tj +-279 TJm +(--) 6.63536 Tj +72 584.508 Td +(in) 7.75121 Tj +-287 TJm +(ef) 7.74125 Tj +25 TJm +(fect,) 17.4253 Tj +-297 TJm +(asking) 26.0134 Tj +-287 TJm +(the) 12.1748 Tj +-288 TJm +(library) 26.5614 Tj +-287 TJm +(to) 7.75121 Tj +-287 TJm +(process) 29.879 Tj +-288 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-287 TJm +(data) 16.5984 Tj +-287 TJm +(it) 5.53943 Tj +-288 TJm +(might) 23.2536 Tj +-287 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-287 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fered) 20.464 Tj +-288 TJm +(inte) 14.9445 Tj +1 TJm +(rnally) 23.2437 Tj +65 TJm +(.) 2.49075 Tj +-845 TJm +(In) 8.29918 Tj +-287 TJm +(this) 14.3965 Tj +-288 TJm +(sta) 11.0689 Tj +1 TJm +(te,) 9.68404 Tj +[1 0 0 1 456.314 584.508] cm +0 g +0 G +[1 0 0 1 -456.314 -584.508] cm +[1 0 0 1 0 0] Tm +0 0 Td +456.314 584.508 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 540 584.508] cm +0 g +0 G +[1 0 0 1 -540 -584.508] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 572.553 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-258 TJm +(no) 9.963 Tj +-257 TJm +(longer) 25.4555 Tj +-258 TJm +(attempt) 29.889 Tj +-257 TJm +(to) 7.75121 Tj +-258 TJm +(read) 17.1463 Tj +-258 TJm +(data) 16.5984 Tj +-257 TJm +(from) 19.3681 Tj +[1 0 0 1 234.207 572.553] cm +0 g +0 G +[1 0 0 1 -234.207 -572.553] cm +[1 0 0 1 0 0] Tm +0 0 Td +234.207 572.553 Td +/F130_0 9.963 Tf +(next_in) 41.8446 Tj +[1 0 0 1 276.051 572.553] cm +0 g +0 G +[1 0 0 1 -276.051 -572.553] cm +[1 0 0 1 0 0] Tm +0 0 Td +276.051 572.553 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-260 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-257 TJm +(it) 5.53943 Tj +-258 TJm +(will) 15.5024 Tj +-258 TJm +(w) 7.19329 Tj +10 TJm +(an) 9.40507 Tj +1 TJm +(t) 2.76971 Tj +-258 TJm +(to) 7.75121 Tj +-258 TJm +(write) 20.474 Tj +-257 TJm +(data) 16.5984 Tj +-258 TJm +(to) 7.75121 Tj +[1 0 0 1 407.082 572.553] cm +0 g +0 G +[1 0 0 1 -407.082 -572.553] cm +[1 0 0 1 0 0] Tm +0 0 Td +407.082 572.553 Td +/F130_0 9.963 Tf +(next_out) 47.8224 Tj +[1 0 0 1 454.902 572.553] cm +0 g +0 G +[1 0 0 1 -454.902 -572.553] cm +[1 0 0 1 0 0] Tm +0 0 Td +454.902 572.553 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-666 TJm +(Because) 33.1967 Tj +-258 TJm +(the) 12.1748 Tj +-258 TJm +(ou) 9.963 Tj +1 TJm +(tput) 15.5024 Tj +72 560.598 Td +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-228 TJm +(supplied) 33.7646 Tj +-228 TJm +(by) 9.963 Tj +-228 TJm +(the) 12.1748 Tj +-228 TJm +(user) 16.5984 Tj +-229 TJm +(can) 13.8286 Tj +-228 TJm +(be) 9.40507 Tj +-228 TJm +(arbitrarily) 39.842 Tj +-228 TJm +(small,) 24.0806 Tj +-232 TJm +(the) 12.1748 Tj +-228 TJm +(\002nishing-up) 48.1611 Tj +-228 TJm +(operation) 37.6303 Tj +-228 TJm +(cannot) 26.5614 Tj +-229 TJm +(n) 4.9815 Tj +1 TJm +(ecessarily) 39.2841 Tj +-228 TJm +(be) 9.40507 Tj +-229 TJm +(done) 19.3681 Tj +-228 TJm +(with) 17.7142 Tj +-228 TJm +(a) 4.42357 Tj +-228 TJm +(single) 23.8016 Tj +72 548.643 Td +(call) 14.3866 Tj +-250 TJm +(of) 8.29918 Tj +[1 0 0 1 99.666 548.643] cm +0 g +0 G +[1 0 0 1 -99.666 -548.643] cm +[1 0 0 1 0 0] Tm +0 0 Td +99.666 548.643 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 183.352 548.643] cm +0 g +0 G +[1 0 0 1 -183.352 -548.643] cm +[1 0 0 1 0 0] Tm +0 0 Td +183.352 548.643 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 547.079] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -537.116] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 526.725 Td +/F128_0 9.963 Tf +(Instead,) 31.2639 Tj +-346 TJm +(the) 12.1748 Tj +-327 TJm +(ca) 8.84714 Tj +1 TJm +(lling) 18.2721 Tj +-327 TJm +(program) 33.7546 Tj +-327 TJm +(passes) 25.4555 Tj +[1 0 0 1 218.231 526.725] cm +0 g +0 G +[1 0 0 1 -218.231 -526.725] cm +[1 0 0 1 0 0] Tm +0 0 Td +218.231 526.725 Td +/F130_0 9.963 Tf +(BZ_FINISH) 53.8002 Tj +[1 0 0 1 272.029 526.725] cm +0 g +0 G +[1 0 0 1 -272.029 -526.725] cm +[1 0 0 1 0 0] Tm +0 0 Td +275.284 526.725 Td +/F128_0 9.963 Tf +(as) 8.29918 Tj +-327 TJm +(an) 9.40507 Tj +-326 TJm +(action) 24.3496 Tj +-327 TJm +(to) 7.75121 Tj +[1 0 0 1 338.109 526.725] cm +0 g +0 G +[1 0 0 1 -338.109 -526.725] cm +[1 0 0 1 0 0] Tm +0 0 Td +338.109 526.725 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 421.795 526.725] cm +0 g +0 G +[1 0 0 1 -421.795 -526.725] cm +[1 0 0 1 0 0] Tm +0 0 Td +421.795 526.725 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1081 TJm +(This) 17.7142 Tj +-326 TJm +(changes) 32.0908 Tj +-327 TJm +(the) 12.1748 Tj +-327 TJm +(strea) 18.8101 Tj +1 TJm +(m') 11.0689 Tj +55 TJm +(s) 3.87561 Tj +72 514.77 Td +(state) 18.2622 Tj +-290 TJm +(to) 7.75121 Tj +-291 TJm +(FINISHING.) 52.2958 Tj +-581 TJm +(An) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-290 TJm +(remaining) 40.4 Tj +-291 TJm +(input) 20.4839 Tj +-290 TJm +(\(ie,) 13.0017 Tj +[1 0 0 1 264.452 514.77] cm +0 g +0 G +[1 0 0 1 -264.452 -514.77] cm +[1 0 0 1 0 0] Tm +0 0 Td +264.452 514.77 Td +/F130_0 9.963 Tf +(next_in[0) 53.8002 Tj +-600 TJm +(..) 11.9556 Tj +-1200 TJm +(avail_in-1]) 65.7558 Tj +[1 0 0 1 413.892 514.77] cm +0 g +0 G +[1 0 0 1 -413.892 -514.77] cm +[1 0 0 1 0 0] Tm +0 0 Td +413.892 514.77 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-291 TJm +(is) 6.64532 Tj +-290 TJm +(compressed) 47.0353 Tj +-290 TJm +(and) 14.3866 Tj +-291 TJm +(transferred) 43.1498 Tj +72 502.814 Td +(to) 7.75121 Tj +-421 TJm +(the) 12.1748 Tj +-421 TJm +(output) 25.4654 Tj +-421 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +55 TJm +(.) 2.49075 Tj +-1646 TJm +(T) 6.08739 Tj +80 TJm +(o) 4.9815 Tj +-421 TJm +(do) 9.963 Tj +-421 TJm +(this,) 16.8873 Tj +[1 0 0 1 222.339 502.814] cm +0 g +0 G +[1 0 0 1 -222.339 -502.814] cm +[1 0 0 1 0 0] Tm +0 0 Td +222.339 502.814 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 306.025 502.814] cm +0 g +0 G +[1 0 0 1 -306.025 -502.814] cm +[1 0 0 1 0 0] Tm +0 0 Td +310.22 502.814 Td +/F128_0 9.963 Tf +(must) 19.378 Tj +-421 TJm +(be) 9.40507 Tj +-421 TJm +(called) 23.7916 Tj +-421 TJm +(repeatedly) 41.4959 Tj +-421 TJm +(until) 18.2721 Tj +-421 TJm +(all) 9.963 Tj +-421 TJm +(the) 12.1748 Tj +-421 TJm +(outp) 17.7142 Tj +1 TJm +(ut) 7.75121 Tj +-421 TJm +(has) 13.2807 Tj +-421 TJm +(been) 18.8101 Tj +72 490.859 Td +(consumed.) 42.8907 Tj +-1396 TJm +(At) 9.963 Tj +-380 TJm +(that) 14.9445 Tj +-379 TJm +(point,) 22.9747 Tj +[1 0 0 1 188.346 490.859] cm +0 g +0 G +[1 0 0 1 -188.346 -490.859] cm +[1 0 0 1 0 0] Tm +0 0 Td +188.346 490.859 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 272.033 490.859] cm +0 g +0 G +[1 0 0 1 -272.033 -490.859] cm +[1 0 0 1 0 0] Tm +0 0 Td +275.813 490.859 Td +/F128_0 9.963 Tf +(returns) 27.6673 Tj +[1 0 0 1 307.259 490.859] cm +0 g +0 G +[1 0 0 1 -307.259 -490.859] cm +[1 0 0 1 0 0] Tm +0 0 Td +307.259 490.859 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 384.968 490.859] cm +0 g +0 G +[1 0 0 1 -384.968 -490.859] cm +[1 0 0 1 0 0] Tm +0 0 Td +384.968 490.859 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-379 TJm +(and) 14.3866 Tj +-380 TJm +(the) 12.1748 Tj +-379 TJm +(stream') 29.879 Tj +55 TJm +(s) 3.87561 Tj +-379 TJm +(state) 18.2622 Tj +-380 TJm +(is) 6.64532 Tj +-379 TJm +(set) 11.0689 Tj +-379 TJm +(back) 18.8101 Tj +-380 TJm +(to) 7.75121 Tj +72 478.904 Td +(IDLE.) 25.1765 Tj +[1 0 0 1 99.666 478.904] cm +0 g +0 G +[1 0 0 1 -99.666 -478.904] cm +[1 0 0 1 0 0] Tm +0 0 Td +99.666 478.904 Td +/F130_0 9.963 Tf +(BZ2_bzCompressEnd) 101.623 Tj +[1 0 0 1 201.285 478.904] cm +0 g +0 G +[1 0 0 1 -201.285 -478.904] cm +[1 0 0 1 0 0] Tm +0 0 Td +203.776 478.904 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-250 TJm +(then) 17.1563 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(called.) 26.2824 Tj +[1 0 0 1 72 477.34] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -467.377] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 456.986 Td +/F128_0 9.963 Tf +(Just) 15.5024 Tj +-380 TJm +(to) 7.75121 Tj +-379 TJm +(mak) 17.1563 Tj +10 TJm +(e) 4.42357 Tj +-380 TJm +(sure) 16.5984 Tj +-380 TJm +(the) 12.1748 Tj +-380 TJm +(c) 4.42357 Tj +1 TJm +(alling) 22.6957 Tj +-380 TJm +(program) 33.7546 Tj +-380 TJm +(does) 18.2622 Tj +-379 TJm +(not) 12.7327 Tj +-380 TJm +(cheat,) 23.5127 Tj +-412 TJm +(the) 12.1748 Tj +-380 TJm +(library) 26.5614 Tj +-380 TJm +(mak) 17.1563 Tj +10 TJm +(es) 8.29918 Tj +-379 TJm +(a) 4.42357 Tj +-380 TJm +(note) 17.1563 Tj +-380 TJm +(of) 8.29918 Tj +[1 0 0 1 415.708 456.986] cm +0 g +0 G +[1 0 0 1 -415.708 -456.986] cm +[1 0 0 1 0 0] Tm +0 0 Td +415.708 456.986 Td +/F130_0 9.963 Tf +(avail_in) 47.8224 Tj +[1 0 0 1 463.528 456.986] cm +0 g +0 G +[1 0 0 1 -463.528 -456.986] cm +[1 0 0 1 0 0] Tm +0 0 Td +467.312 456.986 Td +/F128_0 9.963 Tf +(at) 7.19329 Tj +-380 TJm +(the) 12.1748 Tj +-379 TJm +(time) 17.7142 Tj +-380 TJm +(of) 8.29918 Tj +-380 TJm +(the) 12.1748 Tj +72 445.031 Td +(\002rst) 15.5024 Tj +-286 TJm +(call) 14.3866 Tj +-285 TJm +(to) 7.75121 Tj +[1 0 0 1 118.179 445.031] cm +0 g +0 G +[1 0 0 1 -118.179 -445.031] cm +[1 0 0 1 0 0] Tm +0 0 Td +118.179 445.031 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 201.866 445.031] cm +0 g +0 G +[1 0 0 1 -201.866 -445.031] cm +[1 0 0 1 0 0] Tm +0 0 Td +204.713 445.031 Td +/F128_0 9.963 Tf +(which) 24.3496 Tj +-286 TJm +(has) 13.2807 Tj +[1 0 0 1 248.035 445.031] cm +0 g +0 G +[1 0 0 1 -248.035 -445.031] cm +[1 0 0 1 0 0] Tm +0 0 Td +248.035 445.031 Td +/F130_0 9.963 Tf +(BZ_FINISH) 53.8002 Tj +[1 0 0 1 301.834 445.031] cm +0 g +0 G +[1 0 0 1 -301.834 -445.031] cm +[1 0 0 1 0 0] Tm +0 0 Td +304.68 445.031 Td +/F128_0 9.963 Tf +(as) 8.29918 Tj +-286 TJm +(an) 9.40507 Tj +-285 TJm +(action) 24.3496 Tj +-286 TJm +(\(ie,) 13.0017 Tj +-295 TJm +(at) 7.19329 Tj +-285 TJm +(the) 12.1748 Tj +-286 TJm +(time) 17.7142 Tj +-286 TJm +(the) 12.1748 Tj +-286 TJm +(progr) 21.5799 Tj +1 TJm +(am) 12.1748 Tj +-286 TJm +(has) 13.2807 Tj +-286 TJm +(announced) 43.1597 Tj +-286 TJm +(i) 2.76971 Tj +1 TJm +(ts) 6.64532 Tj +72 433.076 Td +(intention) 35.4284 Tj +-292 TJm +(to) 7.75121 Tj +-291 TJm +(not) 12.7327 Tj +-292 TJm +(supply) 26.5713 Tj +-292 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-291 TJm +(more) 20.474 Tj +-292 TJm +(input\).) 26.2924 Tj +-871 TJm +(By) 11.6268 Tj +-291 TJm +(comparing) 42.6118 Tj +-292 TJm +(this) 14.3965 Tj +-292 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +-291 TJm +(with) 17.7142 Tj +-292 TJm +(that) 14.9445 Tj +-292 TJm +(of) 8.29918 Tj +[1 0 0 1 392.861 433.076] cm +0 g +0 G +[1 0 0 1 -392.861 -433.076] cm +[1 0 0 1 0 0] Tm +0 0 Td +392.861 433.076 Td +/F130_0 9.963 Tf +(avail_in) 47.8224 Tj +[1 0 0 1 440.682 433.076] cm +0 g +0 G +[1 0 0 1 -440.682 -433.076] cm +[1 0 0 1 0 0] Tm +0 0 Td +443.589 433.076 Td +/F128_0 9.963 Tf +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-292 TJm +(subsequent) 44.2756 Tj +-291 TJm +(calls) 18.2622 Tj +-292 TJm +(to) 7.75121 Tj +[1 0 0 1 72 421.121] cm +0 g +0 G +[1 0 0 1 -72 -421.121] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 421.121 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 155.686 421.121] cm +0 g +0 G +[1 0 0 1 -155.686 -421.121] cm +[1 0 0 1 0 0] Tm +0 0 Td +155.686 421.121 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-247 TJm +(the) 12.1748 Tj +-247 TJm +(libra) 18.2622 Tj +1 TJm +(ry) 8.29918 Tj +-247 TJm +(can) 13.8286 Tj +-246 TJm +(detect) 23.7916 Tj +-247 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-246 TJm +(attempts) 33.7646 Tj +-246 TJm +(to) 7.75121 Tj +-247 TJm +(slip) 14.3965 Tj +-246 TJm +(in) 7.75121 Tj +-247 TJm +(more) 20.474 Tj +-246 TJm +(data) 16.5984 Tj +-246 TJm +(to) 7.75121 Tj +-247 TJm +(compress.) 40.121 Tj +-617 TJm +(An) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-247 TJm +(calls) 18.2622 Tj +-246 TJm +(for) 11.6169 Tj +-246 TJm +(which) 24.3496 Tj +-247 TJm +(this) 14.3965 Tj +-246 TJm +(is) 6.64532 Tj +72 409.166 Td +(detected) 33.1967 Tj +-250 TJm +(will) 15.5024 Tj +-250 TJm +(return) 23.7916 Tj +[1 0 0 1 151.959 409.166] cm +0 g +0 G +[1 0 0 1 -151.959 -409.166] cm +[1 0 0 1 0 0] Tm +0 0 Td +151.959 409.166 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_ERROR) 101.623 Tj +[1 0 0 1 253.578 409.166] cm +0 g +0 G +[1 0 0 1 -253.578 -409.166] cm +[1 0 0 1 0 0] Tm +0 0 Td +253.578 409.166 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-500 TJm +(This) 17.7142 Tj +-250 TJm +(indicates) 35.4185 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(programm) 41.5059 Tj +1 TJm +(ing) 12.7327 Tj +-250 TJm +(mistak) 26.5713 Tj +10 TJm +(e) 4.42357 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(should) 26.5713 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(corrected.) 39.5531 Tj +[1 0 0 1 72 407.009] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -397.046] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 387.248 Td +/F128_0 9.963 Tf +(Instead) 28.7731 Tj +-223 TJm +(of) 8.29918 Tj +-224 TJm +(asking) 26.0134 Tj +-224 TJm +(to) 7.75121 Tj +-223 TJm +(\002nish,) 24.6385 Tj +-229 TJm +(the) 12.1748 Tj +-223 TJm +(calling) 27.1193 Tj +-224 TJm +(program) 33.7546 Tj +-223 TJm +(may) 17.1563 Tj +-224 TJm +(ask) 13.2807 Tj +[1 0 0 1 293.282 387.248] cm +0 g +0 G +[1 0 0 1 -293.282 -387.248] cm +[1 0 0 1 0 0] Tm +0 0 Td +293.282 387.248 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 376.968 387.248] cm +0 g +0 G +[1 0 0 1 -376.968 -387.248] cm +[1 0 0 1 0 0] Tm +0 0 Td +379.196 387.248 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-224 TJm +(ta) 7.19329 Tj +1 TJm +(k) 4.9815 Tj +10 TJm +(e) 4.42357 Tj +-224 TJm +(all) 9.963 Tj +-224 TJm +(the) 12.1748 Tj +-223 TJm +(remaining) 40.4 Tj +-224 TJm +(inp) 12.7327 Tj +1 TJm +(ut,) 10.242 Tj +-229 TJm +(compress) 37.6303 Tj +72 375.293 Td +(it) 5.53943 Tj +-278 TJm +(and) 14.3866 Tj +-278 TJm +(terminate) 37.6303 Tj +-277 TJm +(the) 12.1748 Tj +-278 TJm +(current) 28.2152 Tj +-278 TJm +(\(Burro) 26.5614 Tj +25 TJm +(ws-Wheeler\)) 51.4489 Tj +-278 TJm +(co) 9.40507 Tj +1 TJm +(mpression) 40.9579 Tj +-278 TJm +(block.) 24.6285 Tj +-787 TJm +(This) 17.7142 Tj +-278 TJm +(could) 22.1378 Tj +-278 TJm +(be) 9.40507 Tj +-278 TJm +(useful) 24.3496 Tj +-278 TJm +(for) 11.6169 Tj +-278 TJm +(e) 4.42357 Tj +1 TJm +(rror) 14.9345 Tj +-278 TJm +(control) 28.2252 Tj +-278 TJm +(purposes.) 37.9092 Tj +72 363.337 Td +(The) 15.4925 Tj +-328 TJm +(mechanism) 45.3815 Tj +-328 TJm +(is) 6.64532 Tj +-328 TJm +(analogous) 40.4 Tj +-328 TJm +(to) 7.75121 Tj +-328 TJm +(that) 14.9445 Tj +-328 TJm +(for) 11.6169 Tj +-328 TJm +(\002nishing) 34.8805 Tj +1 TJm +(:) 2.76971 Tj +-467 TJm +(cal) 11.6169 Tj +1 TJm +(l) 2.76971 Tj +[1 0 0 1 297.049 363.337] cm +0 g +0 G +[1 0 0 1 -297.049 -363.337] cm +[1 0 0 1 0 0] Tm +0 0 Td +297.049 363.337 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 380.735 363.337] cm +0 g +0 G +[1 0 0 1 -380.735 -363.337] cm +[1 0 0 1 0 0] Tm +0 0 Td +384.003 363.337 Td +/F128_0 9.963 Tf +(with) 17.7142 Tj +-328 TJm +(an) 9.40507 Tj +-328 TJm +(action) 24.3496 Tj +-328 TJm +(of) 8.29918 Tj +[1 0 0 1 456.841 363.337] cm +0 g +0 G +[1 0 0 1 -456.841 -363.337] cm +[1 0 0 1 0 0] Tm +0 0 Td +456.841 363.337 Td +/F130_0 9.963 Tf +(BZ_FLUSH) 47.8224 Tj +[1 0 0 1 504.662 363.337] cm +0 g +0 G +[1 0 0 1 -504.662 -363.337] cm +[1 0 0 1 0 0] Tm +0 0 Td +504.662 363.337 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-328 TJm +(remo) 20.474 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +72 351.382 Td +(output) 25.4654 Tj +-445 TJm +(data,) 19.0891 Tj +-494 TJm +(and) 14.3866 Tj +-445 TJm +(persist) 26.0134 Tj +-445 TJm +(with) 17.7142 Tj +-446 TJm +(the) 12.1748 Tj +[1 0 0 1 213.94 351.382] cm +0 g +0 G +[1 0 0 1 -213.94 -351.382] cm +[1 0 0 1 0 0] Tm +0 0 Td +213.94 351.382 Td +/F130_0 9.963 Tf +(BZ_FLUSH) 47.8224 Tj +[1 0 0 1 261.761 351.382] cm +0 g +0 G +[1 0 0 1 -261.761 -351.382] cm +[1 0 0 1 0 0] Tm +0 0 Td +266.195 351.382 Td +/F128_0 9.963 Tf +(action) 24.3496 Tj +-445 TJm +(until) 18.2721 Tj +-445 TJm +(the) 12.1748 Tj +-445 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +[1 0 0 1 360.062 351.382] cm +0 g +0 G +[1 0 0 1 -360.062 -351.382] cm +[1 0 0 1 0 0] Tm +0 0 Td +360.062 351.382 Td +/F130_0 9.963 Tf +(BZ_RUN) 35.8668 Tj +[1 0 0 1 395.928 351.382] cm +0 g +0 G +[1 0 0 1 -395.928 -351.382] cm +[1 0 0 1 0 0] Tm +0 0 Td +400.362 351.382 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-445 TJm +(returned.) 35.6875 Tj +-1792 TJm +(A) 7.19329 Tj +1 TJm +(s) 3.87561 Tj +-446 TJm +(with) 17.7142 Tj +-445 TJm +(\002nishing,) 37.3712 Tj +[1 0 0 1 72 339.427] cm +0 g +0 G +[1 0 0 1 -72 -339.427] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 339.427 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 155.686 339.427] cm +0 g +0 G +[1 0 0 1 -155.686 -339.427] cm +[1 0 0 1 0 0] Tm +0 0 Td +158.177 339.427 Td +/F128_0 9.963 Tf +(detects) 27.6673 Tj +-250 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-250 TJm +(attempt) 29.889 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(pro) 13.2807 Tj +15 TJm +(vi) 7.75121 Tj +1 TJm +(de) 9.40507 Tj +-250 TJm +(more) 20.474 Tj +-250 TJm +(input) 20.4839 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(once) 18.8101 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(\003ush) 19.378 Tj +-250 TJm +(has) 13.2807 Tj +-250 TJm +(be) 9.40507 Tj +15 TJm +(gun.) 17.4353 Tj +[1 0 0 1 72 337.27] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -327.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 317.509 Td +/F128_0 9.963 Tf +(Once) 21.0219 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(\003ush) 19.378 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(complete,) 39.0151 Tj +-250 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-250 TJm +(stream) 26.5614 Tj +-250 TJm +(returns) 27.6673 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(normal) 28.2252 Tj +-250 TJm +(R) 6.64532 Tj +40 TJm +(UNNING) 39.2841 Tj +-250 TJm +(state.) 20.7529 Tj +[1 0 0 1 72 315.353] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -305.39] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 295.592 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-344 TJm +(all) 9.963 Tj +-343 TJm +(sounds) 27.6772 Tj +-344 TJm +(pretty) 23.2437 Tj +-344 TJm +(comple) 29.3311 Tj +15 TJm +(x) 4.9815 Tj +1 TJm +(,) 2.49075 Tj +-368 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-343 TJm +(isn') 14.9445 Tj +18 TJm +(t) 2.76971 Tj +-344 TJm +(really) 22.6858 Tj +65 TJm +(.) 2.49075 Tj +-1182 TJm +(Here') 22.6758 Tj +55 TJm +(s) 3.87561 Tj +-344 TJm +(a) 4.42357 Tj +-344 TJm +(table) 19.3681 Tj +-343 TJm +(which) 24.3496 Tj +-344 TJm +(sho) 13.8386 Tj +25 TJm +(ws) 11.0689 Tj +-344 TJm +(which) 24.3496 Tj +-343 TJm +(actions) 28.2252 Tj +-344 TJm +(are) 12.1648 Tj +-344 TJm +(allo) 14.9445 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-343 TJm +(in) 7.75121 Tj +-344 TJm +(each) 18.2522 Tj +72 283.636 Td +(state,) 20.7529 Tj +-281 TJm +(wh) 12.1748 Tj +1 TJm +(at) 7.19329 Tj +-275 TJm +(action) 24.3496 Tj +-274 TJm +(will) 15.5024 Tj +-275 TJm +(be) 9.40507 Tj +-274 TJm +(tak) 12.1748 Tj +10 TJm +(en,) 11.8958 Tj +-281 TJm +(what) 19.3681 Tj +-274 TJm +(the) 12.1748 Tj +-275 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-274 TJm +(state) 18.2622 Tj +-275 TJm +(is) 6.64532 Tj +1 TJm +(,) 2.49075 Tj +-281 TJm +(and) 14.3866 Tj +-275 TJm +(what) 19.3681 Tj +-274 TJm +(the) 12.1748 Tj +-274 TJm +(non-error) 37.6203 Tj +-275 TJm +(return) 23.7916 Tj +-274 TJm +(v) 4.9815 Tj +25 TJm +(alues) 20.474 Tj +-275 TJm +(are.) 14.6556 Tj +-767 TJm +(Note) 19.3681 Tj +-274 TJm +(that) 14.9445 Tj +-275 TJm +(you) 14.9445 Tj +-274 TJm +(can') 17.1463 Tj +18 TJm +(t) 2.76971 Tj +72 271.681 Td +(e) 4.42357 Tj +15 TJm +(xplicitly) 33.2166 Tj +-347 TJm +(ask) 13.2807 Tj +-348 TJm +(what) 19.3681 Tj +-347 TJm +(state) 18.2622 Tj +-347 TJm +(the) 12.1748 Tj +-348 TJm +(stream) 26.5614 Tj +-347 TJm +(is) 6.64532 Tj +-347 TJm +(in,) 10.242 Tj +-372 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-348 TJm +(nor) 13.2807 Tj +-347 TJm +(do) 9.963 Tj +-347 TJm +(you) 14.9445 Tj +-348 TJm +(need) 18.8101 Tj +-347 TJm +(to) 7.75121 Tj +-348 TJm +(--) 6.63536 Tj +-347 TJm +(it) 5.53943 Tj +-347 TJm +(can) 13.8286 Tj +-348 TJm +(be) 9.40507 Tj +-347 TJm +(inferred) 31.5329 Tj +-348 TJm +(from) 19.3681 Tj +-347 TJm +(the) 12.1748 Tj +-347 TJm +(v) 4.9815 Tj +25 TJm +(alues) 20.474 Tj +-348 TJm +(returned) 33.1967 Tj +-347 TJm +(by) 9.963 Tj +[1 0 0 1 72 259.726] cm +0 g +0 G +[1 0 0 1 -72 -259.726] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 259.726 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 155.686 259.726] cm +0 g +0 G +[1 0 0 1 -155.686 -259.726] cm +[1 0 0 1 0 0] Tm +0 0 Td +155.686 259.726 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 258.162] cm +0 g +0 G +[1 0 0 1 0 -207.31] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.754] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.754] cm +0 g +0 G +[1 0 0 1 -493.841 -50.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.852 Td +/F128_0 9.963 Tf +(14) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 18 18 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -595.402] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 573.848 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 570.261] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(IDLE/any) 47.8224 Tj +98.488 699.676 Td +(Illegal.) 47.8224 Tj +-852 TJm +(IDLE) 23.9112 Tj +-426 TJm +(state) 29.889 Tj +-426 TJm +(onl) 17.9334 Tj +1 TJm +(y) 5.9778 Tj +-426 TJm +(exists) 35.8668 Tj +-426 TJm +(after) 29.889 Tj +-426 TJm +(BZ2_bzCompressEnd) 101.623 Tj +-426 TJm +(or) 11.9556 Tj +98.488 687.721 Td +(before) 35.8668 Tj +-426 TJm +(BZ2_bzCompressInit) 107.6 Tj +1 TJm +(.) 5.9778 Tj +98.488 675.766 Td +(Return) 35.8668 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_SEQUENC) 59.778 Tj +1 TJm +(E_ERROR) 41.8446 Tj +90 651.856 Td +(RUNNING/BZ_RUN) 83.6892 Tj +98.488 639.9 Td +(Compress) 47.8224 Tj +-426 TJm +(from) 23.9112 Tj +-426 TJm +(next_in) 41.8446 Tj +-426 TJm +(to) 11.9556 Tj +-425 TJm +(next_out) 47.8224 Tj +-426 TJm +(as) 11.9556 Tj +-426 TJm +(much) 23.9112 Tj +-426 TJm +(as) 11.9556 Tj +-426 TJm +(possible.) 53.8002 Tj +98.488 627.945 Td +(Next) 23.9112 Tj +-426 TJm +(state) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(RUNNING) 41.8446 Tj +98.488 615.99 Td +(Return) 35.8668 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_RUN_OK) 53.8002 Tj +90 592.08 Td +(RUNNING/BZ_FLUSH) 95.6448 Tj +98.488 580.124 Td +(Remember) 47.8224 Tj +-426 TJm +(current) 41.8446 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(of) 11.9556 Tj +-425 TJm +(next_in.) 47.8224 Tj +-426 TJm +(Compress) 47.8224 Tj +-426 TJm +(from) 23.9112 Tj +-426 TJm +(next_in) 41.8446 Tj +98.488 568.169 Td +(to) 11.9556 Tj +-426 TJm +(next_out) 47.8224 Tj +-426 TJm +(as) 11.9556 Tj +-426 TJm +(much) 23.9112 Tj +-426 TJm +(as) 11.9556 Tj +-426 TJm +(p) 5.9778 Tj +1 TJm +(ossible,) 47.8224 Tj +-426 TJm +(but) 17.9334 Tj +-426 TJm +(do) 11.9556 Tj +-426 TJm +(not) 17.9334 Tj +-426 TJm +(accept) 35.8668 Tj +-426 TJm +(any) 17.9334 Tj +-426 TJm +(more) 23.9112 Tj +-426 TJm +(input.) 35.8668 Tj +98.488 556.214 Td +(Next) 23.9112 Tj +-426 TJm +(state) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(FLUSHING) 47.8224 Tj +98.488 544.259 Td +(Return) 35.8668 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_FLUSH_O) 59.778 Tj +1 TJm +(K) 5.9778 Tj +90 520.349 Td +(RUNNING/BZ_FINISH) 101.623 Tj +98.488 508.393 Td +(Remember) 47.8224 Tj +-426 TJm +(current) 41.8446 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(of) 11.9556 Tj +-425 TJm +(next_in.) 47.8224 Tj +-426 TJm +(Compress) 47.8224 Tj +-426 TJm +(from) 23.9112 Tj +-426 TJm +(next_in) 41.8446 Tj +98.488 496.438 Td +(to) 11.9556 Tj +-426 TJm +(next_out) 47.8224 Tj +-426 TJm +(as) 11.9556 Tj +-426 TJm +(much) 23.9112 Tj +-426 TJm +(as) 11.9556 Tj +-426 TJm +(p) 5.9778 Tj +1 TJm +(ossible,) 47.8224 Tj +-426 TJm +(but) 17.9334 Tj +-426 TJm +(do) 11.9556 Tj +-426 TJm +(not) 17.9334 Tj +-426 TJm +(accept) 35.8668 Tj +-426 TJm +(any) 17.9334 Tj +-426 TJm +(more) 23.9112 Tj +-426 TJm +(input.) 35.8668 Tj +98.488 484.483 Td +(Next) 23.9112 Tj +-426 TJm +(state) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(FINISHING) 53.8002 Tj +98.488 472.528 Td +(Return) 35.8668 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_FINISH_) 59.778 Tj +1 TJm +(OK) 11.9556 Tj +90 448.618 Td +(FLUSHING/BZ_FLUSH) 101.623 Tj +98.488 436.662 Td +(Compress) 47.8224 Tj +-426 TJm +(from) 23.9112 Tj +-426 TJm +(next_in) 41.8446 Tj +-426 TJm +(to) 11.9556 Tj +-425 TJm +(next_out) 47.8224 Tj +-426 TJm +(as) 11.9556 Tj +-426 TJm +(much) 23.9112 Tj +-426 TJm +(as) 11.9556 Tj +-426 TJm +(possible,) 53.8002 Tj +98.488 424.707 Td +(but) 17.9334 Tj +-426 TJm +(do) 11.9556 Tj +-426 TJm +(not) 17.9334 Tj +-426 TJm +(accept) 35.8668 Tj +-426 TJm +(any) 17.9334 Tj +-426 TJm +(mo) 11.9556 Tj +1 TJm +(re) 11.9556 Tj +-426 TJm +(input.) 35.8668 Tj +98.488 412.752 Td +(If) 11.9556 Tj +-426 TJm +(all) 17.9334 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(existing) 47.8224 Tj +-426 TJm +(inpu) 23.9112 Tj +1 TJm +(t) 5.9778 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-426 TJm +(used) 23.9112 Tj +-426 TJm +(up) 11.9556 Tj +-426 TJm +(and) 17.9334 Tj +-426 TJm +(all) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +98.488 400.797 Td +(output) 35.8668 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-426 TJm +(removed) 41.8446 Tj +106.976 388.842 Td +(Next) 23.9112 Tj +-426 TJm +(state) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(RUNNING;) 47.8224 Tj +-426 TJm +(Re) 11.9556 Tj +1 TJm +(turn) 23.9112 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_RUN_OK) 53.8002 Tj +98.488 376.887 Td +(else) 23.9112 Tj +106.976 364.931 Td +(Next) 23.9112 Tj +-426 TJm +(state) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(FLUSHING;) 53.8002 Tj +-426 TJm +(R) 5.9778 Tj +1 TJm +(eturn) 29.889 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_FLUSH_OK) 65.7558 Tj +90 341.021 Td +(FLUSHING/other) 83.6892 Tj +98.488 329.066 Td +(Illegal.) 47.8224 Tj +98.488 317.111 Td +(Return) 35.8668 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_SEQUENC) 59.778 Tj +1 TJm +(E_ERROR) 41.8446 Tj +90 293.2 Td +(FINISHING/BZ_FINISH) 113.578 Tj +98.488 281.245 Td +(Compress) 47.8224 Tj +-426 TJm +(from) 23.9112 Tj +-426 TJm +(next_in) 41.8446 Tj +-426 TJm +(to) 11.9556 Tj +-425 TJm +(next_out) 47.8224 Tj +-426 TJm +(as) 11.9556 Tj +-426 TJm +(much) 23.9112 Tj +-426 TJm +(as) 11.9556 Tj +-426 TJm +(possible,) 53.8002 Tj +98.488 269.29 Td +(but) 17.9334 Tj +-426 TJm +(to) 11.9556 Tj +-426 TJm +(not) 17.9334 Tj +-426 TJm +(accept) 35.8668 Tj +-426 TJm +(any) 17.9334 Tj +-426 TJm +(mo) 11.9556 Tj +1 TJm +(re) 11.9556 Tj +-426 TJm +(input.) 35.8668 Tj +98.488 257.335 Td +(If) 11.9556 Tj +-426 TJm +(all) 17.9334 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(existing) 47.8224 Tj +-426 TJm +(inpu) 23.9112 Tj +1 TJm +(t) 5.9778 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-426 TJm +(used) 23.9112 Tj +-426 TJm +(up) 11.9556 Tj +-426 TJm +(and) 17.9334 Tj +-426 TJm +(all) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +98.488 245.38 Td +(output) 35.8668 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-426 TJm +(removed) 41.8446 Tj +106.976 233.424 Td +(Next) 23.9112 Tj +-426 TJm +(state) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(IDLE;) 29.889 Tj +-426 TJm +(Retur) 29.889 Tj +1 TJm +(n) 5.9778 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_STREAM_END) 77.7114 Tj +98.488 221.469 Td +(else) 23.9112 Tj +106.976 209.514 Td +(Next) 23.9112 Tj +-426 TJm +(state) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(FINISHING;) 59.778 Tj +-425 TJm +(Return) 35.8668 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_FINISHING) 71.7336 Tj +90 185.604 Td +(FINISHING/other) 89.667 Tj +98.488 173.649 Td +(Illegal.) 47.8224 Tj +98.488 161.693 Td +(Return) 35.8668 Tj +-426 TJm +(value) 29.889 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_SEQUENC) 59.778 Tj +1 TJm +(E_ERROR) 41.8446 Tj +[1 0 0 1 72 146.152] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -136.189] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 124.234 Td +/F128_0 9.963 Tf +(That) 18.2622 Tj +-250 TJm +(still) 14.9545 Tj +-250 TJm +(looks) 21.5898 Tj +-250 TJm +(complicate) 43.7176 Tj +1 TJm +(d?) 9.40507 Tj +-620 TJm +(W) 9.40507 Tj +80 TJm +(ell,) 12.4538 Tj +-250 TJm +(f) 3.31768 Tj +10 TJm +(air) 10.511 Tj +-250 TJm +(enough.) 31.8218 Tj +-620 TJm +(The) 15.4925 Tj +-250 TJm +(usual) 21.0319 Tj +-250 TJm +(sequence) 36.5144 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(calls) 18.2622 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(com) 17.1563 Tj +1 TJm +(pressing) 33.2067 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(load) 17.1563 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(is:) 9.41504 Tj +[1 0 0 1 72 122.077] cm +0 g +0 G +[1 0 0 1 0 -29.723] cm +0 g +0 G +[1 0 0 1 7.372 0] cm +0 g +0 G +[1 0 0 1 -79.372 -92.354] cm +[1 0 0 1 0 0] Tm +0 0 Td +79.372 92.354 Td +/F128_0 9.963 Tf +(1.) 7.47225 Tj +[1 0 0 1 86.844 92.354] cm +0 g +0 G +[1 0 0 1 3.089 0] cm +0 g +0 G +[1 0 0 1 1.992 0] cm +0 g +0 G +[1 0 0 1 -91.925 -92.354] cm +[1 0 0 1 0 0] Tm +0 0 Td +91.925 92.354 Td +/F128_0 9.963 Tf +(Get) 14.3866 Tj +-250 TJm +(started) 26.5614 Tj +-250 TJm +(with) 17.7142 Tj +[1 0 0 1 158.056 92.354] cm +0 g +0 G +[1 0 0 1 -158.056 -92.354] cm +[1 0 0 1 0 0] Tm +0 0 Td +158.056 92.354 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 265.653 92.354] cm +0 g +0 G +[1 0 0 1 -265.653 -92.354] cm +[1 0 0 1 0 0] Tm +0 0 Td +265.653 92.354 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 268.144 92.354] cm +0 g +0 G +[1 0 0 1 -196.144 -41.502] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(15) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 19 19 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -31.517] cm +0 g +0 G +[1 0 0 1 7.372 0] cm +0 g +0 G +[1 0 0 1 -79.372 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +79.372 710.037 Td +/F128_0 9.963 Tf +(2.) 7.47225 Tj +[1 0 0 1 86.844 710.037] cm +0 g +0 G +[1 0 0 1 3.089 0] cm +0 g +0 G +[1 0 0 1 1.992 0] cm +0 g +0 G +[1 0 0 1 -91.925 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +91.925 710.037 Td +/F128_0 9.963 Tf +(Sho) 15.5024 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-240 TJm +(data) 16.5984 Tj +-240 TJm +(in) 7.75121 Tj +-240 TJm +(and) 14.3866 Tj +-241 TJm +(shlur) 19.926 Tj +1 TJm +(p) 4.9815 Tj +-241 TJm +(out) 12.7327 Tj +-240 TJm +(its) 9.41504 Tj +-240 TJm +(compressed) 47.0353 Tj +-240 TJm +(form) 19.3681 Tj +-240 TJm +(using) 21.5898 Tj +-240 TJm +(zero) 17.1463 Tj +-240 TJm +(or) 8.29918 Tj +-241 TJm +(m) 7.75121 Tj +1 TJm +(ore) 12.7228 Tj +-241 TJm +(calls) 18.2622 Tj +-240 TJm +(of) 8.29918 Tj +[1 0 0 1 401.454 710.037] cm +0 g +0 G +[1 0 0 1 -401.454 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +401.454 710.037 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 485.14 710.037] cm +0 g +0 G +[1 0 0 1 -485.14 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +487.533 710.037 Td +/F128_0 9.963 Tf +(with) 17.7142 Tj +-240 TJm +(action) 24.3496 Tj +-240 TJm +(=) 5.61913 Tj +[1 0 0 1 91.925 698.082] cm +0 g +0 G +[1 0 0 1 -91.925 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +91.925 698.082 Td +/F130_0 9.963 Tf +(BZ_RUN) 35.8668 Tj +[1 0 0 1 127.791 698.082] cm +0 g +0 G +[1 0 0 1 -127.791 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +127.791 698.082 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 130.281 698.082] cm +0 g +0 G +[1 0 0 1 -58.281 -21.918] cm +0 g +0 G +[1 0 0 1 7.372 0] cm +0 g +0 G +[1 0 0 1 -79.372 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +79.372 676.164 Td +/F128_0 9.963 Tf +(3.) 7.47225 Tj +[1 0 0 1 86.844 676.164] cm +0 g +0 G +[1 0 0 1 3.089 0] cm +0 g +0 G +[1 0 0 1 1.992 0] cm +0 g +0 G +[1 0 0 1 -91.925 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +91.925 676.164 Td +/F128_0 9.963 Tf +(Finish) 24.9175 Tj +-242 TJm +(up) 9.963 Tj +1 TJm +(.) 2.49075 Tj +-308 TJm +(Repeatedl) 39.842 Tj +1 TJm +(y) 4.9815 Tj +-242 TJm +(call) 14.3866 Tj +[1 0 0 1 198.784 676.164] cm +0 g +0 G +[1 0 0 1 -198.784 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +198.784 676.164 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 282.471 676.164] cm +0 g +0 G +[1 0 0 1 -282.471 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +284.878 676.164 Td +/F128_0 9.963 Tf +(with) 17.7142 Tj +-242 TJm +(ac) 8.84714 Tj +1 TJm +(tion) 15.5024 Tj +-242 TJm +(=) 5.61913 Tj +[1 0 0 1 339.78 676.164] cm +0 g +0 G +[1 0 0 1 -339.78 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +339.78 676.164 Td +/F130_0 9.963 Tf +(BZ_FINISH) 53.8002 Tj +[1 0 0 1 393.579 676.164] cm +0 g +0 G +[1 0 0 1 -393.579 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +393.579 676.164 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-242 TJm +(cop) 14.3866 Tj +10 TJm +(yi) 7.75121 Tj +1 TJm +(ng) 9.963 Tj +-242 TJm +(out) 12.7327 Tj +-242 TJm +(the) 12.1748 Tj +-241 TJm +(compressed) 47.0353 Tj +-242 TJm +(output,) 27.9562 Tj +91.925 664.209 Td +(until) 18.2721 Tj +[1 0 0 1 112.687 664.209] cm +0 g +0 G +[1 0 0 1 -112.687 -664.209] cm +[1 0 0 1 0 0] Tm +0 0 Td +112.687 664.209 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 190.396 664.209] cm +0 g +0 G +[1 0 0 1 -190.396 -664.209] cm +[1 0 0 1 0 0] Tm +0 0 Td +192.886 664.209 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(returned.) 35.6875 Tj +[1 0 0 1 237.708 664.209] cm +0 g +0 G +[1 0 0 1 -165.708 -21.918] cm +0 g +0 G +[1 0 0 1 7.372 0] cm +0 g +0 G +[1 0 0 1 -79.372 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +79.372 642.291 Td +/F128_0 9.963 Tf +(4.) 7.47225 Tj +[1 0 0 1 86.844 642.291] cm +0 g +0 G +[1 0 0 1 3.089 0] cm +0 g +0 G +[1 0 0 1 1.992 0] cm +0 g +0 G +[1 0 0 1 -91.925 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +91.925 642.291 Td +/F128_0 9.963 Tf +(Close) 22.6957 Tj +-250 TJm +(up) 9.963 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(go) 9.963 Tj +-250 TJm +(home.) 24.6285 Tj +-620 TJm +(Call) 16.6083 Tj +[1 0 0 1 208.796 642.291] cm +0 g +0 G +[1 0 0 1 -208.796 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +208.796 642.291 Td +/F130_0 9.963 Tf +(BZ2_bzCompressEnd) 101.623 Tj +[1 0 0 1 310.415 642.291] cm +0 g +0 G +[1 0 0 1 -310.415 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +310.415 642.291 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 312.906 642.291] cm +0 g +0 G +[1 0 0 1 -240.906 -12.119] cm +0 g +0 G +[1 0 0 1 -72 -630.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 620.374 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-269 TJm +(the) 12.1748 Tj +-270 TJm +(data) 16.5984 Tj +-269 TJm +(you) 14.9445 Tj +-270 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-269 TJm +(to) 7.75121 Tj +-269 TJm +(compress) 37.6303 Tj +-270 TJm +(\002ts) 12.1847 Tj +-269 TJm +(into) 15.5024 Tj +-270 TJm +(you) 14.9445 Tj +1 TJm +(r) 3.31768 Tj +-270 TJm +(input) 20.4839 Tj +-269 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-270 TJm +(all) 9.963 Tj +-269 TJm +(at) 7.19329 Tj +-270 TJm +(on) 9.963 Tj +1 TJm +(ce,) 11.3379 Tj +-275 TJm +(you) 14.9445 Tj +-269 TJm +(can) 13.8286 Tj +-270 TJm +(skip) 16.6083 Tj +-269 TJm +(the) 12.1748 Tj +-269 TJm +(calls) 18.2622 Tj +-270 TJm +(of) 8.29918 Tj +[1 0 0 1 456.314 620.374] cm +0 g +0 G +[1 0 0 1 -456.314 -620.374] cm +[1 0 0 1 0 0] Tm +0 0 Td +456.314 620.374 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +72 608.418 Td +(\() 5.9778 Tj +-600 TJm +(...,) 23.9112 Tj +-600 TJm +(BZ_RUN) 35.8668 Tj +-600 TJm +(\)) 5.9778 Tj +[1 0 0 1 161.664 608.418] cm +0 g +0 G +[1 0 0 1 -161.664 -608.418] cm +[1 0 0 1 0 0] Tm +0 0 Td +164.154 608.418 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +-250 TJm +(just) 14.3965 Tj +-250 TJm +(do) 9.963 Tj +-250 TJm +(the) 12.1748 Tj +[1 0 0 1 225.036 608.418] cm +0 g +0 G +[1 0 0 1 -225.036 -608.418] cm +[1 0 0 1 0 0] Tm +0 0 Td +225.036 608.418 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +-600 TJm +(\() 5.9778 Tj +-600 TJm +(...,) 23.9112 Tj +-600 TJm +(B) 5.9778 Tj +1 TJm +(Z_FINISH) 47.8224 Tj +-600 TJm +(\)) 5.9778 Tj +[1 0 0 1 422.296 608.418] cm +0 g +0 G +[1 0 0 1 -422.296 -608.418] cm +[1 0 0 1 0 0] Tm +0 0 Td +424.786 608.418 Td +/F128_0 9.963 Tf +(calls.) 20.7529 Tj +[1 0 0 1 72 606.262] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -596.299] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 586.501 Td +/F128_0 9.963 Tf +(All) 12.7327 Tj +-277 TJm +(required) 33.1967 Tj +-278 TJm +(memory) 33.2067 Tj +-277 TJm +(is) 6.64532 Tj +-278 TJm +(allocated) 35.9664 Tj +-277 TJm +(by) 9.963 Tj +[1 0 0 1 220.295 586.501] cm +0 g +0 G +[1 0 0 1 -220.295 -586.501] cm +[1 0 0 1 0 0] Tm +0 0 Td +220.295 586.501 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 327.891 586.501] cm +0 g +0 G +[1 0 0 1 -327.891 -586.501] cm +[1 0 0 1 0 0] Tm +0 0 Td +327.891 586.501 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-785 TJm +(The) 15.4925 Tj +-278 TJm +(compression) 50.363 Tj +-277 TJm +(library) 26.5614 Tj +-277 TJm +(can) 13.8286 Tj +-278 TJm +(accept) 25.4455 Tj +-277 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-278 TJm +(data) 16.5984 Tj +-277 TJm +(at) 7.19329 Tj +-278 TJm +(all) 9.963 Tj +72 574.545 Td +(\(ob) 13.2807 Tj +15 TJm +(viously\).) 35.1495 Tj +-612 TJm +(So) 10.5209 Tj +-237 TJm +(you) 14.9445 Tj +-238 TJm +(shouldn') 34.8705 Tj +18 TJm +(t) 2.76971 Tj +-238 TJm +(ge) 9.40507 Tj +1 TJm +(t) 2.76971 Tj +-238 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-238 TJm +(error) 19.3581 Tj +-238 TJm +(r) 3.31768 Tj +1 TJm +(eturn) 20.474 Tj +-238 TJm +(v) 4.9815 Tj +25 TJm +(alues) 20.474 Tj +-238 TJm +(from) 19.3681 Tj +-237 TJm +(the) 12.1748 Tj +[1 0 0 1 339.287 574.545] cm +0 g +0 G +[1 0 0 1 -339.287 -574.545] cm +[1 0 0 1 0 0] Tm +0 0 Td +339.287 574.545 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 422.973 574.545] cm +0 g +0 G +[1 0 0 1 -422.973 -574.545] cm +[1 0 0 1 0 0] Tm +0 0 Td +425.342 574.545 Td +/F128_0 9.963 Tf +(calls.) 20.7529 Tj +-612 TJm +(If) 6.63536 Tj +-237 TJm +(you) 14.9445 Tj +-238 TJm +(do,) 12.4538 Tj +-240 TJm +(the) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-238 TJm +(will) 15.5024 Tj +-237 TJm +(be) 9.40507 Tj +[1 0 0 1 72 562.59] cm +0 g +0 G +[1 0 0 1 -72 -562.59] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 562.59 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_ERROR) 101.623 Tj +[1 0 0 1 173.619 562.59] cm +0 g +0 G +[1 0 0 1 -173.619 -562.59] cm +[1 0 0 1 0 0] Tm +0 0 Td +173.619 562.59 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(indicate) 31.5429 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ug) 9.963 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(your) 18.2622 Tj +-250 TJm +(prog) 18.2622 Tj +1 TJm +(ramming.) 38.4671 Tj +[1 0 0 1 72 560.433] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -550.471] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 540.672 Td +/F128_0 9.963 Tf +(T) 6.08739 Tj +35 TJm +(ri) 6.08739 Tj +25 TJm +(vial) 14.9445 Tj +-250 TJm +(other) 20.474 Tj +-250 TJm +(possible) 32.6587 Tj +-250 TJm +(return) 23.7916 Tj +-249 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 538.516] cm +0 g +0 G +[1 0 0 1 0 -36.862] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 35.866 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 32.279] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -529.151] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 529.151 Td +/F130_0 9.963 Tf +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 517.196 Td +(if) 11.9556 Tj +-426 TJm +(strm) 23.9112 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL,) 29.889 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(strm) 23.9112 Tj +1 TJm +(->s) 17.9334 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +[1 0 0 1 72 501.654] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.586] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -491.691] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 471.033 Td +/F121_0 17.215 Tf +(3.3.3.) 43.0719 Tj +[1 0 0 1 119.858 471.033] cm +0 g +0 G +[1 0 0 1 -119.858 -471.033] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 471.033 Td +/F387_0 17.215 Tf +(BZ2_bzCompressEnd) 175.593 Tj +[1 0 0 1 295.455 471.033] cm +0 g +0 G +[1 0 0 1 -223.455 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.324] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -459.335] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 459.335 Td +/F130_0 9.963 Tf +(int) 17.9334 Tj +-426 TJm +(BZ2_bzCompressEnd) 101.623 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(b) 5.9778 Tj +1 TJm +(z_stream) 47.8224 Tj +-426 TJm +(*strm) 29.889 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 443.793] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -433.831] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 421.876 Td +/F128_0 9.963 Tf +(Releases) 34.8605 Tj +-250 TJm +(all) 9.963 Tj +-250 TJm +(memory) 33.2067 Tj +-250 TJm +(assoc) 21.5799 Tj +1 TJm +(iated) 19.3681 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(compression) 50.363 Tj +-250 TJm +(stream.) 29.0521 Tj +[1 0 0 1 72 419.719] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -409.756] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 399.958 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 399.858] cm +0 g +0 G +[1 0 0 1 0 -36.861] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 35.866 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 32.279] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -390.493] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 390.493 Td +/F130_0 9.963 Tf +(BZ_PARAM_ERROR) 83.6892 Tj +-852 TJm +(if) 11.9556 Tj +-426 TJm +(strm) 23.9112 Tj +-425 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(strm->s) 41.8446 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +90 378.538 Td +(BZ_OK) 29.889 Tj +-4686 TJm +(otherw) 35.8668 Tj +1 TJm +(ise) 17.9334 Tj +[1 0 0 1 72 362.997] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.586] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -353.034] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 332.375 Td +/F121_0 17.215 Tf +(3.3.4.) 43.0719 Tj +[1 0 0 1 119.858 332.375] cm +0 g +0 G +[1 0 0 1 -119.858 -332.375] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 332.375 Td +/F387_0 17.215 Tf +(BZ2_bzDecompressInit) 206.58 Tj +[1 0 0 1 326.443 332.375] cm +0 g +0 G +[1 0 0 1 -254.443 -2.332] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.323] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -320.678] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 320.678 Td +/F130_0 9.963 Tf +(int) 17.9334 Tj +-426 TJm +(BZ2_bzDecompressInit) 119.556 Tj +-425 TJm +(\() 5.9778 Tj +-426 TJm +(bz_stream) 53.8002 Tj +-426 TJm +(*strm,) 35.8668 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(verbosity,) 59.778 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(small) 29.889 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 305.136] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -295.173] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 283.218 Td +/F128_0 9.963 Tf +(Prepares) 34.3026 Tj +-351 TJm +(for) 11.6169 Tj +-351 TJm +(decompression.) 62.2588 Tj +-1227 TJm +(As) 11.0689 Tj +-351 TJm +(with) 17.7142 Tj +[1 0 0 1 235.177 283.218] cm +0 g +0 G +[1 0 0 1 -235.177 -283.218] cm +[1 0 0 1 0 0] Tm +0 0 Td +235.177 283.218 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 342.773 283.218] cm +0 g +0 G +[1 0 0 1 -342.773 -283.218] cm +[1 0 0 1 0 0] Tm +0 0 Td +342.773 283.218 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-377 TJm +(a) 4.42357 Tj +[1 0 0 1 356.937 283.218] cm +0 g +0 G +[1 0 0 1 -356.937 -283.218] cm +[1 0 0 1 0 0] Tm +0 0 Td +356.937 283.218 Td +/F130_0 9.963 Tf +(bz_stream) 53.8002 Tj +[1 0 0 1 410.736 283.218] cm +0 g +0 G +[1 0 0 1 -410.736 -283.218] cm +[1 0 0 1 0 0] Tm +0 0 Td +414.234 283.218 Td +/F128_0 9.963 Tf +(record) 25.4455 Tj +-351 TJm +(should) 26.5713 Tj +-351 TJm +(be) 9.40507 Tj +-351 TJm +(allocated) 35.9664 Tj +-351 TJm +(and) 14.3866 Tj +72 271.263 Td +(initialised) 39.304 Tj +-305 TJm +(before) 25.4455 Tj +-306 TJm +(the) 12.1748 Tj +-305 TJm +(call.) 16.8773 Tj +-954 TJm +(Fields) 24.3595 Tj +[1 0 0 1 211.833 271.263] cm +0 g +0 G +[1 0 0 1 -211.833 -271.263] cm +[1 0 0 1 0 0] Tm +0 0 Td +211.833 271.263 Td +/F130_0 9.963 Tf +(bzalloc) 41.8446 Tj +[1 0 0 1 253.676 271.263] cm +0 g +0 G +[1 0 0 1 -253.676 -271.263] cm +[1 0 0 1 0 0] Tm +0 0 Td +253.676 271.263 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 259.35 271.263] cm +0 g +0 G +[1 0 0 1 -259.35 -271.263] cm +[1 0 0 1 0 0] Tm +0 0 Td +259.35 271.263 Td +/F130_0 9.963 Tf +(bzfree) 35.8668 Tj +[1 0 0 1 295.215 271.263] cm +0 g +0 G +[1 0 0 1 -295.215 -271.263] cm +[1 0 0 1 0 0] Tm +0 0 Td +298.26 271.263 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 315.69 271.263] cm +0 g +0 G +[1 0 0 1 -315.69 -271.263] cm +[1 0 0 1 0 0] Tm +0 0 Td +315.69 271.263 Td +/F130_0 9.963 Tf +(opaque) 35.8668 Tj +[1 0 0 1 351.556 271.263] cm +0 g +0 G +[1 0 0 1 -351.556 -271.263] cm +[1 0 0 1 0 0] Tm +0 0 Td +354.6 271.263 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-305 TJm +(be) 9.40507 Tj +-306 TJm +(set) 11.0689 Tj +-306 TJm +(if) 6.08739 Tj +-305 TJm +(a) 4.42357 Tj +-306 TJm +(custom) 28.7831 Tj +-305 TJm +(memory) 33.2067 Tj +-306 TJm +(al) 7.19329 Tj +1 TJm +(locator) 27.6673 Tj +-306 TJm +(is) 6.64532 Tj +72 259.308 Td +(required,) 35.6875 Tj +-350 TJm +(or) 8.29918 Tj +-330 TJm +(made) 21.5799 Tj +[1 0 0 1 147.635 259.308] cm +0 g +0 G +[1 0 0 1 -147.635 -259.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +147.635 259.308 Td +/F130_0 9.963 Tf +(NULL) 23.9112 Tj +[1 0 0 1 171.546 259.308] cm +0 g +0 G +[1 0 0 1 -171.546 -259.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +174.836 259.308 Td +/F128_0 9.963 Tf +(for) 11.6169 Tj +-330 TJm +(the) 12.1748 Tj +-330 TJm +(normal) 28.2252 Tj +[1 0 0 1 236.722 259.308] cm +0 g +0 G +[1 0 0 1 -236.722 -259.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +236.722 259.308 Td +/F130_0 9.963 Tf +(malloc) 35.8668 Tj +[1 0 0 1 272.587 259.308] cm +0 g +0 G +[1 0 0 1 -272.587 -259.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +275.878 259.308 Td +/F128_0 9.963 Tf +(/) 2.76971 Tj +[1 0 0 1 281.938 259.308] cm +0 g +0 G +[1 0 0 1 -281.938 -259.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +281.938 259.308 Td +/F130_0 9.963 Tf +(free) 23.9112 Tj +[1 0 0 1 305.848 259.308] cm +0 g +0 G +[1 0 0 1 -305.848 -259.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +309.139 259.308 Td +/F128_0 9.963 Tf +(routines.) 34.5915 Tj +-1102 TJm +(Upo) 17.1563 Tj +1 TJm +(n) 4.9815 Tj +-331 TJm +(return,) 26.2824 Tj +-350 TJm +(the) 12.1748 Tj +-330 TJm +(internal) 30.437 Tj +-330 TJm +(state) 18.2622 Tj +-331 TJm +(wi) 9.963 Tj +1 TJm +(ll) 5.53943 Tj +-331 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-330 TJm +(been) 18.8101 Tj +72 247.353 Td +(initialised,) 41.7948 Tj +-250 TJm +(and) 14.3866 Tj +[1 0 0 1 133.16 247.353] cm +0 g +0 G +[1 0 0 1 -133.16 -247.353] cm +[1 0 0 1 0 0] Tm +0 0 Td +133.16 247.353 Td +/F130_0 9.963 Tf +(total_in) 47.8224 Tj +[1 0 0 1 180.98 247.353] cm +0 g +0 G +[1 0 0 1 -180.98 -247.353] cm +[1 0 0 1 0 0] Tm +0 0 Td +183.471 247.353 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 200.348 247.353] cm +0 g +0 G +[1 0 0 1 -200.348 -247.353] cm +[1 0 0 1 0 0] Tm +0 0 Td +200.348 247.353 Td +/F130_0 9.963 Tf +(total_out) 53.8002 Tj +[1 0 0 1 254.146 247.353] cm +0 g +0 G +[1 0 0 1 -254.146 -247.353] cm +[1 0 0 1 0 0] Tm +0 0 Td +256.637 247.353 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(zero.) 19.6371 Tj +[1 0 0 1 72 245.913] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -235.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 225.435 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(meaning) 34.3126 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(parameter) 39.8321 Tj +[1 0 0 1 192.756 225.435] cm +0 g +0 G +[1 0 0 1 -192.756 -225.435] cm +[1 0 0 1 0 0] Tm +0 0 Td +192.756 225.435 Td +/F130_0 9.963 Tf +(verbosity) 53.8002 Tj +[1 0 0 1 246.554 225.435] cm +0 g +0 G +[1 0 0 1 -246.554 -225.435] cm +[1 0 0 1 0 0] Tm +0 0 Td +246.554 225.435 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(see) 12.7228 Tj +[1 0 0 1 266.748 225.435] cm +0 g +0 G +[1 0 0 1 -266.748 -225.435] cm +[1 0 0 1 0 0] Tm +0 0 Td +266.748 225.435 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 374.345 225.435] cm +0 g +0 G +[1 0 0 1 -374.345 -225.435] cm +[1 0 0 1 0 0] Tm +0 0 Td +374.345 225.435 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 223.278] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -213.316] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 203.517 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +[1 0 0 1 81.497 203.517] cm +0 g +0 G +[1 0 0 1 -81.497 -203.517] cm +[1 0 0 1 0 0] Tm +0 0 Td +81.497 203.517 Td +/F130_0 9.963 Tf +(small) 29.889 Tj +[1 0 0 1 111.385 203.517] cm +0 g +0 G +[1 0 0 1 -111.385 -203.517] cm +[1 0 0 1 0 0] Tm +0 0 Td +114.248 203.517 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-287 TJm +(nonzero,) 34.5816 Tj +-297 TJm +(the) 12.1748 Tj +-287 TJm +(library) 26.5614 Tj +-287 TJm +(will) 15.5024 Tj +-287 TJm +(use) 13.2807 Tj +-288 TJm +(an) 9.40507 Tj +-287 TJm +(alternati) 32.6488 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-287 TJm +(decompression) 59.768 Tj +-287 TJm +(algorithm) 38.7461 Tj +-287 TJm +(which) 24.3496 Tj +-287 TJm +(uses) 17.1563 Tj +-288 TJm +(less) 14.9445 Tj +-287 TJm +(memory) 33.2067 Tj +-287 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-287 TJm +(at) 7.19329 Tj +-287 TJm +(the) 12.1748 Tj +72 191.562 Td +(cost) 16.0504 Tj +-289 TJm +(of) 8.29918 Tj +-290 TJm +(deco) 18.8101 Tj +1 TJm +(mpressing) 40.9579 Tj +-290 TJm +(more) 20.474 Tj +-289 TJm +(slo) 11.6268 Tj +25 TJm +(wly) 14.9445 Tj +-289 TJm +(\(roughly) 34.3126 Tj +-289 TJm +(speaking,) 37.9092 Tj +-299 TJm +(half) 15.4925 Tj +-290 TJm +(the) 12.1748 Tj +-289 TJm +(speed,) 25.1765 Tj +-299 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-289 TJm +(the) 12.1748 Tj +-290 TJm +(m) 7.75121 Tj +1 TJm +(aximum) 32.6587 Tj +-290 TJm +(memory) 33.2067 Tj +-289 TJm +(requirement) 48.1412 Tj +-289 TJm +(drops) 22.1378 Tj +72 179.607 Td +(to) 7.75121 Tj +-250 TJm +(around) 27.6673 Tj +-250 TJm +(2300k\).) 30.7159 Tj +-620 TJm +(See) 14.3866 Tj +[1 0 0 1 166.166 179.607] cm +0 0 1 rg +0 0 1 RG +[1 0 0 1 -166.166 -179.607] cm +[1 0 0 1 0 0] Tm +0 0 Td +166.166 179.607 Td +/F128_0 9.963 Tf +(Ho) 12.1748 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(bzip2) 22.1378 Tj +[1 0 0 1 235.924 179.607] cm +0 g +0 G +0 0 1 rg +0 0 1 RG +0 0 1 rg +0 0 1 RG +[1 0 0 1 -235.924 -179.607] cm +[1 0 0 1 0 0] Tm +0 0 Td +238.415 179.607 Td +/F128_0 9.963 Tf +([2]) 11.6169 Tj +[1 0 0 1 250.031 179.607] cm +0 0 1 rg +0 0 1 RG +0 g +0 G +[1 0 0 1 -250.031 -179.607] cm +[1 0 0 1 0 0] Tm +0 0 Td +252.522 179.607 Td +/F128_0 9.963 Tf +(for) 11.6169 Tj +-250 TJm +(more) 20.474 Tj +-250 TJm +(information) 47.0453 Tj +-250 TJm +(on) 9.963 Tj +-250 TJm +(mem) 19.926 Tj +1 TJm +(ory) 13.2807 Tj +-250 TJm +(management.) 53.4017 Tj +[1 0 0 1 72 177.45] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -167.487] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 157.689 Td +/F128_0 9.963 Tf +(Note) 19.3681 Tj +-289 TJm +(that) 14.9445 Tj +-289 TJm +(the) 12.1748 Tj +-290 TJm +(amou) 22.1378 Tj +1 TJm +(nt) 7.75121 Tj +-290 TJm +(of) 8.29918 Tj +-289 TJm +(memory) 33.2067 Tj +-289 TJm +(needed) 28.2152 Tj +-289 TJm +(to) 7.75121 Tj +-289 TJm +(decompress) 47.0353 Tj +-290 TJm +(a) 4.42357 Tj +-289 TJm +(stream) 26.5614 Tj +-289 TJm +(cannot) 26.5614 Tj +-289 TJm +(be) 9.40507 Tj +-289 TJm +(determined) 44.8235 Tj +-289 TJm +(until) 18.2721 Tj +-290 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-290 TJm +(stream') 29.879 Tj +55 TJm +(s) 3.87561 Tj +-289 TJm +(header) 26.5514 Tj +-289 TJm +(has) 13.2807 Tj +72 145.734 Td +(been) 18.8101 Tj +-342 TJm +(read,) 19.6371 Tj +-365 TJm +(so) 8.85711 Tj +-343 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-342 TJm +(if) 6.08739 Tj +[1 0 0 1 161.081 145.734] cm +0 g +0 G +[1 0 0 1 -161.081 -145.734] cm +[1 0 0 1 0 0] Tm +0 0 Td +161.081 145.734 Td +/F130_0 9.963 Tf +(BZ2_bzDecompressInit) 119.556 Tj +[1 0 0 1 280.633 145.734] cm +0 g +0 G +[1 0 0 1 -280.633 -145.734] cm +[1 0 0 1 0 0] Tm +0 0 Td +284.043 145.734 Td +/F128_0 9.963 Tf +(succeeds,) 37.8993 Tj +-365 TJm +(a) 4.42357 Tj +-342 TJm +(subsequent) 44.2756 Tj +[1 0 0 1 381.098 145.734] cm +0 g +0 G +[1 0 0 1 -381.098 -145.734] cm +[1 0 0 1 0 0] Tm +0 0 Td +381.098 145.734 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 476.739 145.734] cm +0 g +0 G +[1 0 0 1 -476.739 -145.734] cm +[1 0 0 1 0 0] Tm +0 0 Td +480.149 145.734 Td +/F128_0 9.963 Tf +(could) 22.1378 Tj +-342 TJm +(f) 3.31768 Tj +10 TJm +(ail) 9.963 Tj +-342 TJm +(with) 17.7142 Tj +[1 0 0 1 72 133.779] cm +0 g +0 G +[1 0 0 1 -72 -133.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 133.779 Td +/F130_0 9.963 Tf +(BZ_MEM_ERROR) 71.7336 Tj +[1 0 0 1 143.731 133.779] cm +0 g +0 G +[1 0 0 1 -143.731 -133.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +143.731 133.779 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 132.613] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -122.651] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 111.861 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 111.761] cm +0 g +0 G +[1 0 0 1 0 -60.909] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(16) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 20 20 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -117.195] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 95.641 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 92.055] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(BZ_CONFIG_ERROR) 89.667 Tj +98.488 699.676 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(library) 41.8446 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-425 TJm +(mis-compiled) 71.7336 Tj +90 687.721 Td +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 675.766 Td +(if) 11.9556 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(small) 29.889 Tj +-426 TJm +(!=) 11.9556 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(&&) 11.9556 Tj +-426 TJm +(small) 29.889 Tj +-425 TJm +(!=) 11.9556 Tj +-426 TJm +(1) 5.9778 Tj +-426 TJm +(\)) 5.9778 Tj +98.488 663.811 Td +(or) 11.9556 Tj +-426 TJm +(\(verbosity) 59.778 Tj +-426 TJm +(<;) 11.9556 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(||) 11.9556 Tj +-426 TJm +(ve) 11.9556 Tj +1 TJm +(rbosity) 41.8446 Tj +-426 TJm +(>) 5.9778 Tj +-426 TJm +(4\)) 11.9556 Tj +90 651.856 Td +(BZ_MEM_ERROR) 71.7336 Tj +98.488 639.9 Td +(if) 11.9556 Tj +-426 TJm +(insufficient) 71.7336 Tj +-426 TJm +(memory) 35.8668 Tj +-426 TJm +(is) 11.9556 Tj +-425 TJm +(available) 53.8002 Tj +[1 0 0 1 72 624.359] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -614.396] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 602.441 Td +/F128_0 9.963 Tf +(Allo) 17.7142 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-250 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-250 TJm +(actions:) 30.9949 Tj +[1 0 0 1 72 602.341] cm +0 g +0 G +[1 0 0 1 0 -48.817] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 47.821 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 44.234] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -592.976] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 592.976 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +98.488 581.021 Td +(if) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(returned) 47.8224 Tj +98.488 569.066 Td +(no) 11.9556 Tj +-426 TJm +(specific) 47.8224 Tj +-426 TJm +(action) 35.8668 Tj +-426 TJm +(requir) 35.8668 Tj +1 TJm +(ed) 11.9556 Tj +-426 TJm +(in) 11.9556 Tj +-426 TJm +(case) 23.9112 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(error) 29.889 Tj +[1 0 0 1 72 553.524] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -543.562] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 522.903 Td +/F121_0 17.215 Tf +(3.3.5.) 43.0719 Tj +[1 0 0 1 119.858 522.903] cm +0 g +0 G +[1 0 0 1 -119.858 -522.903] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 522.903 Td +/F387_0 17.215 Tf +(BZ2_bzDecompress) 165.264 Tj +[1 0 0 1 285.126 522.903] cm +0 g +0 G +[1 0 0 1 -213.126 -2.332] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.323] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -511.206] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 511.206 Td +/F130_0 9.963 Tf +(int) 17.9334 Tj +-426 TJm +(BZ2_bzDecompress) 95.6448 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(bz) 11.9556 Tj +1 TJm +(_stream) 41.8446 Tj +-426 TJm +(*strm) 29.889 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 495.664] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 473.746 Td +/F128_0 9.963 Tf +(Pro) 13.8386 Tj +15 TJm +(vides) 21.0319 Tj +-301 TJm +(more) 20.474 Tj +-302 TJm +(inpu) 17.7142 Tj +1 TJm +(t) 2.76971 Tj +-302 TJm +(and/out) 29.889 Tj +-301 TJm +(output) 25.4654 Tj +-301 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-302 TJm +(space) 22.1278 Tj +-301 TJm +(for) 11.6169 Tj +-301 TJm +(the) 12.1748 Tj +-302 TJm +(library) 26.5614 Tj +65 TJm +(.) 2.49075 Tj +-928 TJm +(The) 15.4925 Tj +-301 TJm +(caller) 22.1278 Tj +-302 TJm +(maintains) 38.7461 Tj +-301 TJm +(input) 20.4839 Tj +-301 TJm +(and) 14.3866 Tj +-302 TJm +(out) 12.7327 Tj +1 TJm +(put) 12.7327 Tj +-302 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fers,) 17.4253 Tj +-314 TJm +(and) 14.3866 Tj +72 461.791 Td +(uses) 17.1563 Tj +[1 0 0 1 91.646 461.791] cm +0 g +0 G +[1 0 0 1 -91.646 -461.791] cm +[1 0 0 1 0 0] Tm +0 0 Td +91.646 461.791 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 187.287 461.791] cm +0 g +0 G +[1 0 0 1 -187.287 -461.791] cm +[1 0 0 1 0 0] Tm +0 0 Td +189.778 461.791 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(transfer) 30.427 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(between) 33.1967 Tj +-250 TJm +(them) 19.926 Tj +1 TJm +(.) 2.49075 Tj +[1 0 0 1 72 460.227] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -450.264] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 439.873 Td +/F128_0 9.963 Tf +(Before) 27.1093 Tj +-498 TJm +(each) 18.2522 Tj +-498 TJm +(call) 14.3866 Tj +-499 TJm +(to) 7.75121 Tj +[1 0 0 1 159.356 439.873] cm +0 g +0 G +[1 0 0 1 -159.356 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +159.356 439.873 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 254.997 439.873] cm +0 g +0 G +[1 0 0 1 -254.997 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +254.997 439.873 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 263.071 439.873] cm +0 g +0 G +[1 0 0 1 -263.071 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +263.071 439.873 Td +/F130_0 9.963 Tf +(next_in) 41.8446 Tj +[1 0 0 1 304.914 439.873] cm +0 g +0 G +[1 0 0 1 -304.914 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +309.879 439.873 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-498 TJm +(point) 20.4839 Tj +-498 TJm +(at) 7.19329 Tj +-499 TJm +(the) 12.1748 Tj +-498 TJm +(compressed) 47.0353 Tj +-498 TJm +(data,) 19.0891 Tj +-560 TJm +(and) 14.3866 Tj +[1 0 0 1 492.179 439.873] cm +0 g +0 G +[1 0 0 1 -492.179 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +492.179 439.873 Td +/F130_0 9.963 Tf +(avail_in) 47.8224 Tj +[1 0 0 1 540 439.873] cm +0 g +0 G +[1 0 0 1 -540 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 427.918 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-308 TJm +(indicate) 31.5429 Tj +-308 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-308 TJm +(man) 17.1563 Tj +15 TJm +(y) 4.9815 Tj +-308 TJm +(bytes) 21.0319 Tj +-308 TJm +(the) 12.1748 Tj +-309 TJm +(library) 26.5614 Tj +-308 TJm +(may) 17.1563 Tj +-308 TJm +(read.) 19.6371 Tj +[1 0 0 1 294.955 427.918] cm +0 g +0 G +[1 0 0 1 -294.955 -427.918] cm +[1 0 0 1 0 0] Tm +0 0 Td +294.955 427.918 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 390.597 427.918] cm +0 g +0 G +[1 0 0 1 -390.597 -427.918] cm +[1 0 0 1 0 0] Tm +0 0 Td +393.667 427.918 Td +/F128_0 9.963 Tf +(updates) 30.437 Tj +[1 0 0 1 427.173 427.918] cm +0 g +0 G +[1 0 0 1 -427.173 -427.918] cm +[1 0 0 1 0 0] Tm +0 0 Td +427.173 427.918 Td +/F130_0 9.963 Tf +(next_in) 41.8446 Tj +[1 0 0 1 469.016 427.918] cm +0 g +0 G +[1 0 0 1 -469.016 -427.918] cm +[1 0 0 1 0 0] Tm +0 0 Td +469.016 427.918 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 474.723 427.918] cm +0 g +0 G +[1 0 0 1 -474.723 -427.918] cm +[1 0 0 1 0 0] Tm +0 0 Td +474.723 427.918 Td +/F130_0 9.963 Tf +(avail_in) 47.8224 Tj +[1 0 0 1 522.543 427.918] cm +0 g +0 G +[1 0 0 1 -522.543 -427.918] cm +[1 0 0 1 0 0] Tm +0 0 Td +525.614 427.918 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 72 415.963] cm +0 g +0 G +[1 0 0 1 -72 -415.963] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 415.963 Td +/F130_0 9.963 Tf +(total_in) 47.8224 Tj +[1 0 0 1 119.821 415.963] cm +0 g +0 G +[1 0 0 1 -119.821 -415.963] cm +[1 0 0 1 0 0] Tm +0 0 Td +122.311 415.963 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(re\003ect) 24.8975 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(number) 30.437 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(bytes) 21.0319 Tj +-250 TJm +(i) 2.76971 Tj +1 TJm +(t) 2.76971 Tj +-250 TJm +(has) 13.2807 Tj +-250 TJm +(read.) 19.6371 Tj +[1 0 0 1 72 413.806] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -403.843] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 394.045 Td +/F128_0 9.963 Tf +(Similarly) 37.0922 Tj +65 TJm +(,) 2.49075 Tj +[1 0 0 1 113.799 394.045] cm +0 g +0 G +[1 0 0 1 -113.799 -394.045] cm +[1 0 0 1 0 0] Tm +0 0 Td +113.799 394.045 Td +/F130_0 9.963 Tf +(next_out) 47.8224 Tj +[1 0 0 1 161.62 394.045] cm +0 g +0 G +[1 0 0 1 -161.62 -394.045] cm +[1 0 0 1 0 0] Tm +0 0 Td +164.41 394.045 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-280 TJm +(point) 20.4839 Tj +-280 TJm +(to) 7.75121 Tj +-280 TJm +(a) 4.42357 Tj +-280 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-280 TJm +(in) 7.75121 Tj +-280 TJm +(which) 24.3496 Tj +-280 TJm +(the) 12.1748 Tj +-280 TJm +(uncompressed) 56.9983 Tj +-280 TJm +(output) 25.4654 Tj +-280 TJm +(is) 6.64532 Tj +-280 TJm +(to) 7.75121 Tj +-280 TJm +(be) 9.40507 Tj +-280 TJm +(placed,) 28.4942 Tj +-288 TJm +(with) 17.7142 Tj +[1 0 0 1 486.202 394.045] cm +0 g +0 G +[1 0 0 1 -486.202 -394.045] cm +[1 0 0 1 0 0] Tm +0 0 Td +486.202 394.045 Td +/F130_0 9.963 Tf +(avail_out) 53.8002 Tj +[1 0 0 1 540 394.045] cm +0 g +0 G +[1 0 0 1 -540 -394.045] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 382.09 Td +/F128_0 9.963 Tf +(indicating) 39.852 Tj +-524 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-525 TJm +(much) 22.1378 Tj +-524 TJm +(output) 25.4654 Tj +-525 TJm +(space) 22.1278 Tj +-524 TJm +(is) 6.64532 Tj +-525 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +25 TJm +(ailable.) 29.0521 Tj +[1 0 0 1 285.792 382.09] cm +0 g +0 G +[1 0 0 1 -285.792 -382.09] cm +[1 0 0 1 0 0] Tm +0 0 Td +285.792 382.09 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 369.478 382.09] cm +0 g +0 G +[1 0 0 1 -369.478 -382.09] cm +[1 0 0 1 0 0] Tm +0 0 Td +374.705 382.09 Td +/F128_0 9.963 Tf +(updates) 30.437 Tj +[1 0 0 1 410.367 382.09] cm +0 g +0 G +[1 0 0 1 -410.367 -382.09] cm +[1 0 0 1 0 0] Tm +0 0 Td +410.367 382.09 Td +/F130_0 9.963 Tf +(next_out) 47.8224 Tj +[1 0 0 1 458.188 382.09] cm +0 g +0 G +[1 0 0 1 -458.188 -382.09] cm +[1 0 0 1 0 0] Tm +0 0 Td +458.188 382.09 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 466.589 382.09] cm +0 g +0 G +[1 0 0 1 -466.589 -382.09] cm +[1 0 0 1 0 0] Tm +0 0 Td +466.589 382.09 Td +/F130_0 9.963 Tf +(avail_out) 53.8002 Tj +[1 0 0 1 520.387 382.09] cm +0 g +0 G +[1 0 0 1 -520.387 -382.09] cm +[1 0 0 1 0 0] Tm +0 0 Td +525.614 382.09 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 72 370.135] cm +0 g +0 G +[1 0 0 1 -72 -370.135] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 370.135 Td +/F130_0 9.963 Tf +(total_out) 53.8002 Tj +[1 0 0 1 125.798 370.135] cm +0 g +0 G +[1 0 0 1 -125.798 -370.135] cm +[1 0 0 1 0 0] Tm +0 0 Td +128.289 370.135 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(re\003ect) 24.8975 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(number) 30.437 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(bytes) 21.0319 Tj +-249 TJm +(output.) 27.9562 Tj +[1 0 0 1 72 367.978] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -358.015] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 348.217 Td +/F128_0 9.963 Tf +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-320 TJm +(may) 17.1563 Tj +-321 TJm +(pro) 13.2807 Tj +15 TJm +(vide) 17.1563 Tj +-320 TJm +(and) 14.3866 Tj +-320 TJm +(remo) 20.474 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-321 TJm +(as) 8.29918 Tj +-320 TJm +(little) 18.2721 Tj +-320 TJm +(or) 8.29918 Tj +-321 TJm +(as) 8.29918 Tj +-320 TJm +(much) 22.1378 Tj +-320 TJm +(data) 16.5984 Tj +-321 TJm +(as) 8.29918 Tj +-320 TJm +(you) 14.9445 Tj +-321 TJm +(lik) 10.5209 Tj +11 TJm +(e) 4.42357 Tj +-321 TJm +(on) 9.963 Tj +-320 TJm +(each) 18.2522 Tj +-321 TJm +(call) 14.3866 Tj +-320 TJm +(of) 8.29918 Tj +[1 0 0 1 407.816 348.217] cm +0 g +0 G +[1 0 0 1 -407.816 -348.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +407.816 348.217 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 503.457 348.217] cm +0 g +0 G +[1 0 0 1 -503.457 -348.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +503.457 348.217 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1043 TJm +(In) 8.29918 Tj +-320 TJm +(the) 12.1748 Tj +72 336.262 Td +(limit,) 21.3208 Tj +-295 TJm +(it) 5.53943 Tj +-286 TJm +(is) 6.64532 Tj +-287 TJm +(ac) 8.84714 Tj +1 TJm +(ceptable) 33.1967 Tj +-287 TJm +(to) 7.75121 Tj +-286 TJm +(supply) 26.5713 Tj +-286 TJm +(and) 14.3866 Tj +-286 TJm +(remo) 20.474 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-286 TJm +(data) 16.5984 Tj +-286 TJm +(one) 14.3866 Tj +-286 TJm +(byte) 17.1563 Tj +-287 TJm +(at) 7.19329 Tj +-286 TJm +(a) 4.42357 Tj +-286 TJm +(time,) 20.205 Tj +-295 TJm +(although) 34.8705 Tj +-286 TJm +(this) 14.3965 Tj +-286 TJm +(w) 7.19329 Tj +10 TJm +(ould) 17.7142 Tj +-287 TJm +(be) 9.40507 Tj +-286 TJm +(terribly) 29.3311 Tj +-286 TJm +(inef) 15.4925 Tj +25 TJm +(\002cient.) 27.3983 Tj +-837 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +72 324.307 Td +(should) 26.5713 Tj +-250 TJm +(al) 7.19329 Tj +10 TJm +(w) 7.19329 Tj +10 TJm +(ays) 13.2807 Tj +-250 TJm +(ensure) 26.0034 Tj +-250 TJm +(that) 14.9445 Tj +-250 TJm +(at) 7.19329 Tj +-249 TJm +(least) 18.2622 Tj +-250 TJm +(one) 14.3866 Tj +-250 TJm +(byte) 17.1563 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(output) 25.4654 Tj +-250 TJm +(space) 22.1278 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +25 TJm +(ailable) 26.5614 Tj +-250 TJm +(at) 7.19329 Tj +-250 TJm +(each) 18.2522 Tj +-250 TJm +(call.) 16.8773 Tj +[1 0 0 1 72 322.15] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -312.187] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 302.389 Td +/F128_0 9.963 Tf +(Use) 15.4925 Tj +-250 TJm +(of) 8.29918 Tj +[1 0 0 1 100.772 302.389] cm +0 g +0 G +[1 0 0 1 -100.772 -302.389] cm +[1 0 0 1 0 0] Tm +0 0 Td +100.772 302.389 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 196.413 302.389] cm +0 g +0 G +[1 0 0 1 -196.413 -302.389] cm +[1 0 0 1 0 0] Tm +0 0 Td +198.904 302.389 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(simpler) 29.889 Tj +-250 TJm +(than) 17.1563 Tj +[1 0 0 1 260.064 302.389] cm +0 g +0 G +[1 0 0 1 -260.064 -302.389] cm +[1 0 0 1 0 0] Tm +0 0 Td +260.064 302.389 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 343.75 302.389] cm +0 g +0 G +[1 0 0 1 -343.75 -302.389] cm +[1 0 0 1 0 0] Tm +0 0 Td +343.75 302.389 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 300.232] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -290.269] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 280.471 Td +/F128_0 9.963 Tf +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-346 TJm +(should) 26.5713 Tj +-346 TJm +(pro) 13.2807 Tj +15 TJm +(vide) 17.1563 Tj +-346 TJm +(input) 20.4839 Tj +-347 TJm +(and) 14.3866 Tj +-346 TJm +(remo) 20.474 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-346 TJm +(output) 25.4654 Tj +-346 TJm +(as) 8.29918 Tj +-346 TJm +(described) 38.1782 Tj +-346 TJm +(abo) 14.3866 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e,) 6.91432 Tj +-371 TJm +(and) 14.3866 Tj +-346 TJm +(repeatedly) 41.4959 Tj +-346 TJm +(call) 14.3866 Tj +[1 0 0 1 422.638 280.471] cm +0 g +0 G +[1 0 0 1 -422.638 -280.471] cm +[1 0 0 1 0 0] Tm +0 0 Td +422.638 280.471 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 518.279 280.471] cm +0 g +0 G +[1 0 0 1 -518.279 -280.471] cm +[1 0 0 1 0 0] Tm +0 0 Td +521.729 280.471 Td +/F128_0 9.963 Tf +(until) 18.2721 Tj +[1 0 0 1 72 268.516] cm +0 g +0 G +[1 0 0 1 -72 -268.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 268.516 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 149.709 268.516] cm +0 g +0 G +[1 0 0 1 -149.709 -268.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +152.314 268.516 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-262 TJm +(ret) 10.511 Tj +1 TJm +(urned.) 25.1765 Tj +-345 TJm +(Appearance) 47.5733 Tj +-261 TJm +(of) 8.29918 Tj +[1 0 0 1 261.767 268.516] cm +0 g +0 G +[1 0 0 1 -261.767 -268.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +261.767 268.516 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 339.475 268.516] cm +0 g +0 G +[1 0 0 1 -339.475 -268.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +342.081 268.516 Td +/F128_0 9.963 Tf +(denotes) 30.437 Tj +-261 TJm +(that) 14.9445 Tj +[1 0 0 1 392.672 268.516] cm +0 g +0 G +[1 0 0 1 -392.672 -268.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +392.672 268.516 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 488.313 268.516] cm +0 g +0 G +[1 0 0 1 -488.313 -268.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +490.919 268.516 Td +/F128_0 9.963 Tf +(has) 13.2807 Tj +-261 TJm +(detected) 33.1967 Tj +72 256.561 Td +(the) 12.1748 Tj +-212 TJm +(logical) 27.1193 Tj +-211 TJm +(end) 14.3866 Tj +-212 TJm +(of) 8.29918 Tj +-212 TJm +(the) 12.1748 Tj +-212 TJm +(compressed) 47.0353 Tj +-211 TJm +(stream.) 29.0521 Tj +[1 0 0 1 237.858 256.561] cm +0 g +0 G +[1 0 0 1 -237.858 -256.561] cm +[1 0 0 1 0 0] Tm +0 0 Td +237.858 256.561 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 333.499 256.561] cm +0 g +0 G +[1 0 0 1 -333.499 -256.561] cm +[1 0 0 1 0 0] Tm +0 0 Td +335.609 256.561 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-212 TJm +(not) 12.7327 Tj +-212 TJm +(pr) 8.29918 Tj +1 TJm +(oduce) 23.7916 Tj +[1 0 0 1 402.263 256.561] cm +0 g +0 G +[1 0 0 1 -402.263 -256.561] cm +[1 0 0 1 0 0] Tm +0 0 Td +402.263 256.561 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 479.972 256.561] cm +0 g +0 G +[1 0 0 1 -479.972 -256.561] cm +[1 0 0 1 0 0] Tm +0 0 Td +482.082 256.561 Td +/F128_0 9.963 Tf +(until) 18.2721 Tj +-212 TJm +(all) 9.963 Tj +-211 TJm +(output) 25.4654 Tj +72 244.605 Td +(data) 16.5984 Tj +-256 TJm +(has) 13.2807 Tj +-255 TJm +(been) 18.8101 Tj +-256 TJm +(placed) 26.0034 Tj +-256 TJm +(into) 15.5024 Tj +-256 TJm +(the) 12.1748 Tj +-255 TJm +(output) 25.4654 Tj +-256 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +40 TJm +(,) 2.49075 Tj +-257 TJm +(so) 8.85711 Tj +-256 TJm +(once) 18.8101 Tj +[1 0 0 1 278.979 244.605] cm +0 g +0 G +[1 0 0 1 -278.979 -244.605] cm +[1 0 0 1 0 0] Tm +0 0 Td +278.979 244.605 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 356.687 244.605] cm +0 g +0 G +[1 0 0 1 -356.687 -244.605] cm +[1 0 0 1 0 0] Tm +0 0 Td +359.236 244.605 Td +/F128_0 9.963 Tf +(appears,) 32.9178 Tj +-257 TJm +(you) 14.9445 Tj +-256 TJm +(are) 12.1648 Tj +-256 TJm +(guaran) 27.1093 Tj +1 TJm +(teed) 16.5984 Tj +-256 TJm +(to) 7.75121 Tj +-256 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-256 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +25 TJm +(ailable) 26.5614 Tj +72 232.65 Td +(all) 9.963 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(decompressed) 56.4404 Tj +-250 TJm +(output,) 27.9562 Tj +-249 TJm +(and) 14.3866 Tj +[1 0 0 1 205.369 232.65] cm +0 g +0 G +[1 0 0 1 -205.369 -232.65] cm +[1 0 0 1 0 0] Tm +0 0 Td +205.369 232.65 Td +/F130_0 9.963 Tf +(BZ2_bzDecompressEnd) 113.578 Tj +[1 0 0 1 318.943 232.65] cm +0 g +0 G +[1 0 0 1 -318.943 -232.65] cm +[1 0 0 1 0 0] Tm +0 0 Td +321.433 232.65 Td +/F128_0 9.963 Tf +(can) 13.8286 Tj +-250 TJm +(safely) 23.7916 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(called.) 26.2824 Tj +[1 0 0 1 72 230.493] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -220.531] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 210.732 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-250 TJm +(case) 17.1463 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(an) 9.40507 Tj +-250 TJm +(error) 19.3581 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +1 TJm +(,) 2.49075 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(should) 26.5713 Tj +-250 TJm +(call) 14.3866 Tj +[1 0 0 1 261.259 210.732] cm +0 g +0 G +[1 0 0 1 -261.259 -210.732] cm +[1 0 0 1 0 0] Tm +0 0 Td +261.259 210.732 Td +/F130_0 9.963 Tf +(BZ2_bzDecompressEnd) 113.578 Tj +[1 0 0 1 374.833 210.732] cm +0 g +0 G +[1 0 0 1 -374.833 -210.732] cm +[1 0 0 1 0 0] Tm +0 0 Td +377.323 210.732 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(clean) 21.0219 Tj +-250 TJm +(up) 9.963 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(release) 27.6573 Tj +-250 TJm +(memor) 28.2252 Tj +1 TJm +(y) 4.9815 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 208.576] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -198.613] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 188.815 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 188.715] cm +0 g +0 G +[1 0 0 1 0 -137.863] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(17) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 21 21 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -200.882] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 179.328 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 175.741] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 699.676 Td +(if) 11.9556 Tj +-426 TJm +(strm) 23.9112 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(strm-) 29.889 Tj +1 TJm +(>s) 11.9556 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +98.488 687.721 Td +(or) 11.9556 Tj +-426 TJm +(strm->avail_out) 89.667 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(1) 5.9778 Tj +90 675.766 Td +(BZ_DATA_ERROR) 77.7114 Tj +98.488 663.811 Td +(if) 11.9556 Tj +-426 TJm +(a) 5.9778 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(integrity) 53.8002 Tj +-426 TJm +(erro) 23.9112 Tj +1 TJm +(r) 5.9778 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(detected) 47.8224 Tj +-426 TJm +(in) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +-426 TJm +(stream) 35.8668 Tj +90 651.856 Td +(BZ_DATA_ERROR_MAGIC) 113.578 Tj +98.488 639.9 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +-426 TJm +(stream) 35.8668 Tj +-425 TJm +(doesn't) 41.8446 Tj +-426 TJm +(begin) 29.889 Tj +-426 TJm +(with) 23.9112 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(right) 29.889 Tj +-426 TJm +(magic) 29.889 Tj +-426 TJm +(bytes) 29.889 Tj +90 627.945 Td +(BZ_MEM_ERROR) 71.7336 Tj +98.488 615.99 Td +(if) 11.9556 Tj +-426 TJm +(there) 29.889 Tj +-426 TJm +(wasn't) 35.8668 Tj +-426 TJm +(enough) 35.8668 Tj +-426 TJm +(m) 5.9778 Tj +1 TJm +(emory) 29.889 Tj +-426 TJm +(available) 53.8002 Tj +90 604.035 Td +(BZ_STREAM_END) 77.7114 Tj +98.488 592.08 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(logical) 41.8446 Tj +-426 TJm +(end) 17.9334 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(th) 11.9556 Tj +1 TJm +(e) 5.9778 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(stream) 35.8668 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(detected) 47.8224 Tj +-426 TJm +(and) 17.9334 Tj +-426 TJm +(all) 17.9334 Tj +98.488 580.124 Td +(output) 35.8668 Tj +-426 TJm +(in) 11.9556 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-426 TJm +(consu) 29.889 Tj +1 TJm +(med,) 23.9112 Tj +-426 TJm +(eg) 11.9556 Tj +-426 TJm +(s-->avail_out) 77.7114 Tj +-426 TJm +(>) 5.9778 Tj +-426 TJm +(0) 5.9778 Tj +90 568.169 Td +(BZ_OK) 29.889 Tj +98.488 556.214 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 540.672] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -530.71] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 518.755 Td +/F128_0 9.963 Tf +(Allo) 17.7142 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-250 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-250 TJm +(actions:) 30.9949 Tj +[1 0 0 1 72 518.655] cm +0 g +0 G +[1 0 0 1 0 -60.772] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 59.776 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 56.189] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -509.29] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 509.29 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +98.488 497.335 Td +(if) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(returned) 47.8224 Tj +90 485.38 Td +(BZ2_bzDecompressEnd) 113.578 Tj +98.488 473.425 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 457.883] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -447.92] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 427.262 Td +/F121_0 17.215 Tf +(3.3.6.) 43.0719 Tj +[1 0 0 1 119.858 427.262] cm +0 g +0 G +[1 0 0 1 -119.858 -427.262] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 427.262 Td +/F387_0 17.215 Tf +(BZ2_bzDecompressEnd) 196.251 Tj +[1 0 0 1 316.114 427.262] cm +0 g +0 G +[1 0 0 1 -244.114 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -24.906] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 20.324] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -415.564] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 415.564 Td +/F130_0 9.963 Tf +(int) 17.9334 Tj +-426 TJm +(BZ2_bzDecompressEnd) 113.578 Tj +-426 TJm +(\() 5.9778 Tj +-425 TJm +(bz_stream) 53.8002 Tj +-426 TJm +(*strm) 29.889 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 400.023] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -390.06] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 378.105 Td +/F128_0 9.963 Tf +(Releases) 34.8605 Tj +-250 TJm +(all) 9.963 Tj +-250 TJm +(memory) 33.2067 Tj +-250 TJm +(assoc) 21.5799 Tj +1 TJm +(iated) 19.3681 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(decompression) 59.768 Tj +-250 TJm +(stream.) 29.0521 Tj +[1 0 0 1 72 375.948] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -365.985] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 356.187 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 356.087] cm +0 g +0 G +[1 0 0 1 0 -60.772] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 59.776 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 56.189] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -346.723] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 346.723 Td +/F130_0 9.963 Tf +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 334.767 Td +(if) 11.9556 Tj +-426 TJm +(strm) 23.9112 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(strm-) 29.889 Tj +1 TJm +(>s) 11.9556 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +90 322.812 Td +(BZ_OK) 29.889 Tj +98.488 310.857 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 295.315] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -285.353] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 273.398 Td +/F128_0 9.963 Tf +(Allo) 17.7142 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-250 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-250 TJm +(actions:) 30.9949 Tj +[1 0 0 1 72 273.298] cm +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.324] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -263.933] cm +[1 0 0 1 0 0] Tm +0 0 Td +98.488 263.933 Td +/F130_0 9.963 Tf +(None.) 29.889 Tj +[1 0 0 1 72 248.391] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -238.429] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 213.639 Td +/F121_0 20.659 Tf +(3.4.) 34.4592 Tj +-278 TJm +(High-le) 70.0134 Tj +15 TJm +(vel) 28.716 Tj +-278 TJm +(interface) 86.1067 Tj +[1 0 0 1 72 209.042] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -199.08] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 191.721 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-250 TJm +(interf) 21.5799 Tj +10 TJm +(ace) 13.2707 Tj +-250 TJm +(pro) 13.2807 Tj +15 TJm +(vides) 21.0319 Tj +-250 TJm +(funct) 20.474 Tj +1 TJm +(ions) 16.6083 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(reading) 29.879 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(writing) 28.7831 Tj +[1 0 0 1 300.292 191.721] cm +0 g +0 G +[1 0 0 1 -300.292 -191.721] cm +[1 0 0 1 0 0] Tm +0 0 Td +300.292 191.721 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 330.18 191.721] cm +0 g +0 G +[1 0 0 1 -330.18 -191.721] cm +[1 0 0 1 0 0] Tm +0 0 Td +332.67 191.721 Td +/F128_0 9.963 Tf +(format) 26.5614 Tj +-250 TJm +(\002les.) 19.0991 Tj +-620 TJm +(First,) 20.7629 Tj +-250 TJm +(some) 21.0319 Tj +-250 TJm +(gen) 14.3866 Tj +1 TJm +(eral) 14.9345 Tj +-250 TJm +(points.) 26.8503 Tj +[1 0 0 1 72 189.564] cm +0 g +0 G +[1 0 0 1 0 -29.724] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -159.84] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 159.84 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 159.84] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -159.84] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 159.84 Td +/F128_0 9.963 Tf +(All) 12.7327 Tj +-332 TJm +(of) 8.29918 Tj +-331 TJm +(the) 12.1748 Tj +-332 TJm +(functions) 37.0823 Tj +-331 TJm +(tak) 12.1748 Tj +10 TJm +(e) 4.42357 Tj +-332 TJm +(an) 9.40507 Tj +[1 0 0 1 202.958 159.84] cm +0 g +0 G +[1 0 0 1 -202.958 -159.84] cm +[1 0 0 1 0 0] Tm +0 0 Td +202.958 159.84 Td +/F130_0 9.963 Tf +(int*) 23.9112 Tj +[1 0 0 1 226.868 159.84] cm +0 g +0 G +[1 0 0 1 -226.868 -159.84] cm +[1 0 0 1 0 0] Tm +0 0 Td +230.172 159.84 Td +/F128_0 9.963 Tf +(\002rst) 15.5024 Tj +-332 TJm +(ar) 7.74125 Tj +18 TJm +(gume) 22.1378 Tj +1 TJm +(nt,) 10.242 Tj +[1 0 0 1 292.426 159.84] cm +0 g +0 G +[1 0 0 1 -292.426 -159.84] cm +[1 0 0 1 0 0] Tm +0 0 Td +292.426 159.84 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 334.269 159.84] cm +0 g +0 G +[1 0 0 1 -334.269 -159.84] cm +[1 0 0 1 0 0] Tm +0 0 Td +334.269 159.84 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1110 TJm +(After) 21.0219 Tj +-331 TJm +(each) 18.2522 Tj +-332 TJm +(call,) 16.8773 Tj +[1 0 0 1 414.083 159.84] cm +0 g +0 G +[1 0 0 1 -414.083 -159.84] cm +[1 0 0 1 0 0] Tm +0 0 Td +414.083 159.84 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 455.926 159.84] cm +0 g +0 G +[1 0 0 1 -455.926 -159.84] cm +[1 0 0 1 0 0] Tm +0 0 Td +459.23 159.84 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-332 TJm +(be) 9.40507 Tj +-331 TJm +(consulted) 38.1882 Tj +86.944 147.885 Td +(\002rst) 15.5024 Tj +-349 TJm +(to) 7.75121 Tj +-348 TJm +(determine) 39.842 Tj +-349 TJm +(the) 12.1748 Tj +-349 TJm +(outcome) 34.3126 Tj +-348 TJm +(of) 8.29918 Tj +-349 TJm +(the) 12.1748 Tj +-349 TJm +(call.) 16.8773 Tj +-1212 TJm +(If) 6.63536 Tj +[1 0 0 1 280.386 147.885] cm +0 g +0 G +[1 0 0 1 -280.386 -147.885] cm +[1 0 0 1 0 0] Tm +0 0 Td +280.386 147.885 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 322.229 147.885] cm +0 g +0 G +[1 0 0 1 -322.229 -147.885] cm +[1 0 0 1 0 0] Tm +0 0 Td +325.704 147.885 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +[1 0 0 1 335.823 147.885] cm +0 g +0 G +[1 0 0 1 -335.823 -147.885] cm +[1 0 0 1 0 0] Tm +0 0 Td +335.823 147.885 Td +/F130_0 9.963 Tf +(BZ_OK) 29.889 Tj +[1 0 0 1 365.711 147.885] cm +0 g +0 G +[1 0 0 1 -365.711 -147.885] cm +[1 0 0 1 0 0] Tm +0 0 Td +365.711 147.885 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-349 TJm +(the) 12.1748 Tj +-349 TJm +(c) 4.42357 Tj +1 TJm +(all) 9.963 Tj +-349 TJm +(completed) 41.5059 Tj +-349 TJm +(successfully) 48.6991 Tj +65 TJm +(,) 2.49075 Tj +-373 TJm +(and) 14.3866 Tj +-349 TJm +(only) 17.7142 Tj +86.944 135.93 Td +(then) 17.1563 Tj +-271 TJm +(s) 3.87561 Tj +1 TJm +(hould) 22.6957 Tj +-271 TJm +(the) 12.1748 Tj +-271 TJm +(re) 7.74125 Tj +1 TJm +(turn) 16.0504 Tj +-271 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +-271 TJm +(o) 4.9815 Tj +1 TJm +(f) 3.31768 Tj +-271 TJm +(the) 12.1748 Tj +-271 TJm +(functi) 23.2437 Tj +1 TJm +(on) 9.963 Tj +-271 TJm +(\(if) 9.40507 Tj +-271 TJm +(an) 9.40507 Tj +15 TJm +(y\)) 8.29918 Tj +-270 TJm +(be) 9.40507 Tj +-271 TJm +(consulted.) 40.6789 Tj +-743 TJm +(If) 6.63536 Tj +[1 0 0 1 365.077 135.93] cm +0 g +0 G +[1 0 0 1 -365.077 -135.93] cm +[1 0 0 1 0 0] Tm +0 0 Td +365.077 135.93 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 406.92 135.93] cm +0 g +0 G +[1 0 0 1 -406.92 -135.93] cm +[1 0 0 1 0 0] Tm +0 0 Td +409.616 135.93 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +[1 0 0 1 418.956 135.93] cm +0 g +0 G +[1 0 0 1 -418.956 -135.93] cm +[1 0 0 1 0 0] Tm +0 0 Td +418.956 135.93 Td +/F130_0 9.963 Tf +(BZ_IO_ERROR) 65.7558 Tj +[1 0 0 1 484.71 135.93] cm +0 g +0 G +[1 0 0 1 -484.71 -135.93] cm +[1 0 0 1 0 0] Tm +0 0 Td +484.71 135.93 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-271 TJm +(ther) 15.4925 Tj +1 TJm +(e) 4.42357 Tj +-271 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-271 TJm +(an) 9.40507 Tj +86.944 123.975 Td +(error) 19.3581 Tj +-246 TJm +(read) 17.1463 Tj +1 TJm +(ing/writing) 44.2855 Tj +-246 TJm +(the) 12.1748 Tj +-246 TJm +(und) 14.9445 Tj +1 TJm +(erlying) 28.2252 Tj +-246 TJm +(compressed) 47.0353 Tj +-245 TJm +(\002le,) 15.2235 Tj +-247 TJm +(and) 14.3866 Tj +-246 TJm +(you) 14.9445 Tj +-245 TJm +(should) 26.5713 Tj +-246 TJm +(then) 17.1563 Tj +-245 TJm +(consult) 28.7831 Tj +[1 0 0 1 414.096 123.975] cm +0 g +0 G +[1 0 0 1 -414.096 -123.975] cm +[1 0 0 1 0 0] Tm +0 0 Td +414.096 123.975 Td +/F130_0 9.963 Tf +(errno) 29.889 Tj +[1 0 0 1 443.984 123.975] cm +0 g +0 G +[1 0 0 1 -443.984 -123.975] cm +[1 0 0 1 0 0] Tm +0 0 Td +446.432 123.975 Td +/F128_0 9.963 Tf +(/) 2.76971 Tj +[1 0 0 1 451.649 123.975] cm +0 g +0 G +[1 0 0 1 -451.649 -123.975] cm +[1 0 0 1 0 0] Tm +0 0 Td +451.649 123.975 Td +/F130_0 9.963 Tf +(perror) 35.8668 Tj +[1 0 0 1 487.514 123.975] cm +0 g +0 G +[1 0 0 1 -487.514 -123.975] cm +[1 0 0 1 0 0] Tm +0 0 Td +489.962 123.975 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-246 TJm +(deter) 19.916 Tj +1 TJm +(mine) 19.926 Tj +86.944 112.02 Td +(the) 12.1748 Tj +-356 TJm +(cause) 22.1278 Tj +-355 TJm +(of) 8.29918 Tj +-356 TJm +(the) 12.1748 Tj +-356 TJm +(dif) 11.0689 Tj +25 TJm +(\002culty) 25.4654 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 206.528 112.02] cm +0 g +0 G +[1 0 0 1 -206.528 -112.02] cm +[1 0 0 1 0 0] Tm +0 0 Td +206.528 112.02 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 248.371 112.02] cm +0 g +0 G +[1 0 0 1 -248.371 -112.02] cm +[1 0 0 1 0 0] Tm +0 0 Td +251.916 112.02 Td +/F128_0 9.963 Tf +(may) 17.1563 Tj +-356 TJm +(also) 16.0504 Tj +-355 TJm +(be) 9.40507 Tj +-356 TJm +(set) 11.0689 Tj +-356 TJm +(to) 7.75121 Tj +-356 TJm +(v) 4.9815 Tj +25 TJm +(arious) 24.3496 Tj +-355 TJm +(other) 20.474 Tj +-356 TJm +(v) 4.9815 Tj +25 TJm +(alues;) 23.2437 Tj +-409 TJm +(precise) 28.2152 Tj +-356 TJm +(d) 4.9815 Tj +1 TJm +(etails) 21.0319 Tj +-356 TJm +(are) 12.1648 Tj +-356 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-356 TJm +(on) 9.963 Tj +-355 TJm +(a) 4.42357 Tj +86.944 100.064 Td +(per) 12.7228 Tj +20 TJm +(-function) 36.5244 Tj +-250 TJm +(basis) 19.926 Tj +-250 TJm +(belo) 17.1563 Tj +25 TJm +(w) 7.19329 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 186.838 100.064] cm +0 g +0 G +[1 0 0 1 -114.838 -49.212] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(18) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 22 22 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -31.517] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 710.037 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 710.037] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 710.037 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +[1 0 0 1 95.958 710.037] cm +0 g +0 G +[1 0 0 1 -95.958 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.958 710.037 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 137.801 710.037] cm +0 g +0 G +[1 0 0 1 -137.801 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +140.179 710.037 Td +/F128_0 9.963 Tf +(indicates) 35.4185 Tj +-239 TJm +(an) 9.40507 Tj +-238 TJm +(error) 19.3581 Tj +-239 TJm +(\(ie,) 13.0017 Tj +-241 TJm +(an) 9.40507 Tj +15 TJm +(ything) 25.4654 Tj +-239 TJm +(e) 4.42357 Tj +15 TJm +(x) 4.9815 Tj +1 TJm +(cept) 16.5984 Tj +[1 0 0 1 292.225 710.037] cm +0 g +0 G +[1 0 0 1 -292.225 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +292.225 710.037 Td +/F130_0 9.963 Tf +(BZ_OK) 29.889 Tj +[1 0 0 1 322.113 710.037] cm +0 g +0 G +[1 0 0 1 -322.113 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +324.492 710.037 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 341.257 710.037] cm +0 g +0 G +[1 0 0 1 -341.257 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +341.257 710.037 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 418.965 710.037] cm +0 g +0 G +[1 0 0 1 -418.965 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +418.965 710.037 Td +/F128_0 9.963 Tf +(\),) 5.80843 Tj +-239 TJm +(you) 14.9445 Tj +-238 TJm +(should) 26.5713 Tj +-239 TJm +(immediately) 49.815 Tj +-239 TJm +(cal) 11.6169 Tj +1 TJm +(l) 2.76971 Tj +[1 0 0 1 86.944 698.082] cm +0 g +0 G +[1 0 0 1 -86.944 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 698.082 Td +/F130_0 9.963 Tf +(BZ2_bzReadClose) 89.667 Tj +[1 0 0 1 176.608 698.082] cm +0 g +0 G +[1 0 0 1 -176.608 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +179.343 698.082 Td +/F128_0 9.963 Tf +(\(or) 11.6169 Tj +[1 0 0 1 193.695 698.082] cm +0 g +0 G +[1 0 0 1 -193.695 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +193.695 698.082 Td +/F130_0 9.963 Tf +(BZ2_bzWriteClose) 95.6448 Tj +[1 0 0 1 289.337 698.082] cm +0 g +0 G +[1 0 0 1 -289.337 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +289.337 698.082 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-281 TJm +(depending) 41.5059 Tj +-274 TJm +(on) 9.963 Tj +-275 TJm +(whethe) 28.7731 Tj +1 TJm +(r) 3.31768 Tj +-275 TJm +(you) 14.9445 Tj +-275 TJm +(are) 12.1648 Tj +-274 TJm +(attempting) 42.6217 Tj +-274 TJm +(to) 7.75121 Tj +-275 TJm +(read) 17.1463 Tj +-274 TJm +(or) 8.29918 Tj +-275 TJm +(to) 7.75121 Tj +-275 TJm +(writ) 16.0504 Tj +1 TJm +(e\)) 7.74125 Tj +86.944 686.127 Td +(to) 7.75121 Tj +-242 TJm +(free) 15.4825 Tj +-241 TJm +(up) 9.963 Tj +-242 TJm +(all) 9.963 Tj +-242 TJm +(resources) 37.6203 Tj +-241 TJm +(associated) 40.9479 Tj +-242 TJm +(with) 17.7142 Tj +-242 TJm +(the) 12.1748 Tj +-241 TJm +(stream.) 29.0521 Tj +-615 TJm +(Once) 21.0219 Tj +-241 TJm +(an) 9.40507 Tj +-242 TJm +(error) 19.3581 Tj +-242 TJm +(has) 13.2807 Tj +-241 TJm +(been) 18.8101 Tj +-242 TJm +(indicated,) 39.0151 Tj +-243 TJm +(beha) 18.8101 Tj +20 TJm +(viour) 21.0319 Tj +-242 TJm +(of) 8.29918 Tj +-242 TJm +(all) 9.963 Tj +-241 TJm +(calls) 18.2622 Tj +-242 TJm +(e) 4.42357 Tj +15 TJm +(xcept) 21.5799 Tj +[1 0 0 1 86.944 674.172] cm +0 g +0 G +[1 0 0 1 -86.944 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 674.172 Td +/F130_0 9.963 Tf +(BZ2_bzReadClose) 89.667 Tj +[1 0 0 1 176.608 674.172] cm +0 g +0 G +[1 0 0 1 -176.608 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +179.705 674.172 Td +/F128_0 9.963 Tf +(\() 3.31768 Tj +[1 0 0 1 183.022 674.172] cm +0 g +0 G +[1 0 0 1 -183.022 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +183.022 674.172 Td +/F130_0 9.963 Tf +(BZ2_bzWriteClose) 95.6448 Tj +[1 0 0 1 278.664 674.172] cm +0 g +0 G +[1 0 0 1 -278.664 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +278.664 674.172 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-311 TJm +(is) 6.64532 Tj +-311 TJm +(unde\002) 24.9075 Tj +1 TJm +(ned.) 16.8773 Tj +-986 TJm +(Th) 11.0689 Tj +1 TJm +(e) 4.42357 Tj +-311 TJm +(implication) 45.3914 Tj +-311 TJm +(is) 6.64532 Tj +-311 TJm +(that) 14.9445 Tj +-311 TJm +(\(1) 8.29918 Tj +1 TJm +(\)) 3.31768 Tj +[1 0 0 1 455.988 674.172] cm +0 g +0 G +[1 0 0 1 -455.988 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +455.988 674.172 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 497.831 674.172] cm +0 g +0 G +[1 0 0 1 -497.831 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +500.928 674.172 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-311 TJm +(be) 9.40507 Tj +86.944 662.217 Td +(check) 23.2337 Tj +10 TJm +(ed) 9.40507 Tj +-291 TJm +(after) 18.2522 Tj +-291 TJm +(each) 18.2522 Tj +-291 TJm +(call,) 16.8773 Tj +-301 TJm +(and) 14.3866 Tj +-291 TJm +(\(2\)) 11.6169 Tj +-291 TJm +(if) 6.08739 Tj +[1 0 0 1 225.347 662.217] cm +0 g +0 G +[1 0 0 1 -225.347 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +225.347 662.217 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 267.19 662.217] cm +0 g +0 G +[1 0 0 1 -267.19 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +270.09 662.217 Td +/F128_0 9.963 Tf +(indicates) 35.4185 Tj +-291 TJm +(an) 9.40507 Tj +-291 TJm +(error) 19.3581 Tj +40 TJm +(,) 2.49075 Tj +[1 0 0 1 345.161 662.217] cm +0 g +0 G +[1 0 0 1 -345.161 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +345.161 662.217 Td +/F130_0 9.963 Tf +(BZ2_bzReadClose) 89.667 Tj +[1 0 0 1 434.824 662.217] cm +0 g +0 G +[1 0 0 1 -434.824 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +437.724 662.217 Td +/F128_0 9.963 Tf +(\() 3.31768 Tj +[1 0 0 1 441.041 662.217] cm +0 g +0 G +[1 0 0 1 -441.041 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +441.041 662.217 Td +/F130_0 9.963 Tf +(BZ2_bzWriteClose) 95.6448 Tj +[1 0 0 1 536.682 662.217] cm +0 g +0 G +[1 0 0 1 -536.682 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +536.682 662.217 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +86.944 650.262 Td +(should) 26.5713 Tj +-250 TJm +(then) 17.1563 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(called) 23.7916 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(clea) 16.0404 Tj +1 TJm +(n) 4.9815 Tj +-250 TJm +(up.) 12.4538 Tj +[1 0 0 1 220.034 650.262] cm +0 g +0 G +[1 0 0 1 -148.034 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -628.344] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 628.344 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 628.344] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -628.344] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 628.344 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +[1 0 0 1 106.362 628.344] cm +0 g +0 G +[1 0 0 1 -106.362 -628.344] cm +[1 0 0 1 0 0] Tm +0 0 Td +106.362 628.344 Td +/F130_0 9.963 Tf +(FILE*) 29.889 Tj +[1 0 0 1 136.25 628.344] cm +0 g +0 G +[1 0 0 1 -136.25 -628.344] cm +[1 0 0 1 0 0] Tm +0 0 Td +140.177 628.344 Td +/F128_0 9.963 Tf +(ar) 7.74125 Tj +18 TJm +(guments) 33.7646 Tj +-394 TJm +(passed) 26.5614 Tj +-394 TJm +(to) 7.75121 Tj +[1 0 0 1 227.592 628.344] cm +0 g +0 G +[1 0 0 1 -227.592 -628.344] cm +[1 0 0 1 0 0] Tm +0 0 Td +227.592 628.344 Td +/F130_0 9.963 Tf +(BZ2_bzReadOpen) 83.6892 Tj +[1 0 0 1 311.278 628.344] cm +0 g +0 G +[1 0 0 1 -311.278 -628.344] cm +[1 0 0 1 0 0] Tm +0 0 Td +315.205 628.344 Td +/F128_0 9.963 Tf +(/) 2.76971 Tj +[1 0 0 1 321.901 628.344] cm +0 g +0 G +[1 0 0 1 -321.901 -628.344] cm +[1 0 0 1 0 0] Tm +0 0 Td +321.901 628.344 Td +/F130_0 9.963 Tf +(BZ2_bzWriteOpen) 89.667 Tj +[1 0 0 1 411.565 628.344] cm +0 g +0 G +[1 0 0 1 -411.565 -628.344] cm +[1 0 0 1 0 0] Tm +0 0 Td +415.491 628.344 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-394 TJm +(be) 9.40507 Tj +-394 TJm +(set) 11.0689 Tj +-394 TJm +(to) 7.75121 Tj +-394 TJm +(binary) 25.4555 Tj +-394 TJm +(mode.) 24.6285 Tj +86.944 616.389 Td +(Most) 20.4839 Tj +-229 TJm +(Unix) 19.926 Tj +-229 TJm +(s) 3.87561 Tj +1 TJm +(ystems) 27.6772 Tj +-229 TJm +(will) 15.5024 Tj +-229 TJm +(do) 9.963 Tj +-229 TJm +(this) 14.3965 Tj +-229 TJm +(by) 9.963 Tj +-228 TJm +(def) 12.7228 Tj +10 TJm +(ault,) 17.4353 Tj +-233 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-229 TJm +(other) 20.474 Tj +-229 TJm +(platforms,) 40.6789 Tj +-233 TJm +(including) 37.6402 Tj +-228 TJm +(W) 9.40507 Tj +40 TJm +(indo) 17.7142 Tj +25 TJm +(ws) 11.0689 Tj +-229 TJm +(and) 14.3866 Tj +-229 TJm +(Mac,) 20.195 Tj +-233 TJm +(will) 15.5024 Tj +-229 TJm +(not.) 15.2235 Tj +-605 TJm +(If) 6.63536 Tj +-229 TJm +(you) 14.9445 Tj +-229 TJm +(omit) 18.2721 Tj +86.944 604.433 Td +(this,) 16.8873 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(may) 17.1563 Tj +-250 TJm +(encounter) 39.2841 Tj +-250 TJm +(probl) 21.0319 Tj +1 TJm +(ems) 16.0504 Tj +-250 TJm +(when) 21.5799 Tj +-250 TJm +(mo) 12.7327 Tj +15 TJm +(ving) 17.7142 Tj +-250 TJm +(code) 18.8101 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(ne) 9.40507 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(platforms.) 40.6789 Tj +[1 0 0 1 372.66 604.433] cm +0 g +0 G +[1 0 0 1 -300.66 -21.917] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -582.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 582.516 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 582.516] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -582.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 582.516 Td +/F128_0 9.963 Tf +(Memory) 34.3126 Tj +-348 TJm +(allocation) 39.2941 Tj +-348 TJm +(requests) 32.6488 Tj +-348 TJm +(are) 12.1648 Tj +-348 TJm +(handled) 31.5429 Tj +-348 TJm +(by) 9.963 Tj +[1 0 0 1 267.67 582.516] cm +0 g +0 G +[1 0 0 1 -267.67 -582.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +267.67 582.516 Td +/F130_0 9.963 Tf +(malloc) 35.8668 Tj +[1 0 0 1 303.535 582.516] cm +0 g +0 G +[1 0 0 1 -303.535 -582.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +307.003 582.516 Td +/F128_0 9.963 Tf +(/) 2.76971 Tj +[1 0 0 1 313.241 582.516] cm +0 g +0 G +[1 0 0 1 -313.241 -582.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +313.241 582.516 Td +/F130_0 9.963 Tf +(free) 23.9112 Tj +[1 0 0 1 337.151 582.516] cm +0 g +0 G +[1 0 0 1 -337.151 -582.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +337.151 582.516 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1208 TJm +(At) 9.963 Tj +-349 TJm +(pr) 8.29918 Tj +1 TJm +(esent) 20.474 Tj +-348 TJm +(there) 19.916 Tj +-348 TJm +(is) 6.64532 Tj +-348 TJm +(no) 9.963 Tj +-349 TJm +(f) 3.31768 Tj +10 TJm +(a) 4.42357 Tj +1 TJm +(cility) 20.4839 Tj +-348 TJm +(for) 11.6169 Tj +-348 TJm +(user) 16.5984 Tj +20 TJm +(-de\002ned) 32.6488 Tj +86.944 570.56 Td +(memory) 33.2067 Tj +-250 TJm +(allocators) 38.7361 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(\002l) 8.30914 Tj +1 TJm +(e) 4.42357 Tj +-250 TJm +(I/O) 13.2807 Tj +-250 TJm +(functions) 37.0823 Tj +-250 TJm +(\(could) 25.4555 Tj +-250 TJm +(easily) 23.2437 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(added,) 26.2824 Tj +-250 TJm +(though\).) 33.4856 Tj +[1 0 0 1 387.165 570.56] cm +0 g +0 G +[1 0 0 1 -315.165 -12.119] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -548.478] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 529.977 Td +/F121_0 17.215 Tf +(3.4.1.) 43.0719 Tj +[1 0 0 1 119.858 529.977] cm +0 g +0 G +[1 0 0 1 -119.858 -529.977] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 529.977 Td +/F387_0 17.215 Tf +(BZ2_bzReadOpen) 144.606 Tj +[1 0 0 1 264.468 529.977] cm +0 g +0 G +[1 0 0 1 -192.468 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -72.727] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 71.731 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 68.145] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -518.279] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 518.279 Td +/F130_0 9.963 Tf +(typedef) 41.8446 Tj +-426 TJm +(void) 23.9112 Tj +-426 TJm +(BZFILE;) 41.8446 Tj +90 494.369 Td +(BZFILE) 35.8668 Tj +-426 TJm +(*BZ2_bzReadOpen\() 95.6448 Tj +-426 TJm +(i) 5.9778 Tj +1 TJm +(nt) 11.9556 Tj +-426 TJm +(*bzerror,) 53.8002 Tj +-426 TJm +(FILE) 23.9112 Tj +-426 TJm +(*f,) 17.9334 Tj +191.855 482.414 Td +(int) 17.9334 Tj +-426 TJm +(verbosity,) 59.778 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(small,) 35.8668 Tj +191.855 470.458 Td +(void) 23.9112 Tj +-426 TJm +(*unused,) 47.8224 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(nUnused) 41.8446 Tj +-425 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 454.917] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -444.954] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 432.999 Td +/F128_0 9.963 Tf +(Prepare) 30.427 Tj +-290 TJm +(t) 2.76971 Tj +1 TJm +(o) 4.9815 Tj +-290 TJm +(read) 17.1463 Tj +-290 TJm +(compresse) 42.0538 Tj +1 TJm +(d) 4.9815 Tj +-290 TJm +(data) 16.5984 Tj +-290 TJm +(from) 19.3681 Tj +-289 TJm +(\002le) 12.7327 Tj +-290 TJm +(handle) 26.5614 Tj +[1 0 0 1 272.697 432.999] cm +0 g +0 G +[1 0 0 1 -272.697 -432.999] cm +[1 0 0 1 0 0] Tm +0 0 Td +272.697 432.999 Td +/F130_0 9.963 Tf +(f) 5.9778 Tj +[1 0 0 1 278.675 432.999] cm +0 g +0 G +[1 0 0 1 -278.675 -432.999] cm +[1 0 0 1 0 0] Tm +0 0 Td +278.675 432.999 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 285.439 432.999] cm +0 g +0 G +[1 0 0 1 -285.439 -432.999] cm +[1 0 0 1 0 0] Tm +0 0 Td +285.439 432.999 Td +/F130_0 9.963 Tf +(f) 5.9778 Tj +[1 0 0 1 291.417 432.999] cm +0 g +0 G +[1 0 0 1 -291.417 -432.999] cm +[1 0 0 1 0 0] Tm +0 0 Td +294.302 432.999 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-290 TJm +(refer) 18.8002 Tj +-289 TJm +(to) 7.75121 Tj +-290 TJm +(a) 4.42357 Tj +-289 TJm +(\002le) 12.7327 Tj +-290 TJm +(which) 24.3496 Tj +-289 TJm +(has) 13.2807 Tj +-290 TJm +(been) 18.8101 Tj +-290 TJm +(opened) 28.7731 Tj +-289 TJm +(for) 11.6169 Tj +-290 TJm +(reading,) 32.3698 Tj +-299 TJm +(and) 14.3866 Tj +72 421.044 Td +(for) 11.6169 Tj +-306 TJm +(which) 24.3496 Tj +-305 TJm +(the) 12.1748 Tj +-306 TJm +(error) 19.3581 Tj +-305 TJm +(indicator) 35.4185 Tj +-306 TJm +(\() 3.31768 Tj +[1 0 0 1 193.457 421.044] cm +0 g +0 G +[1 0 0 1 -193.457 -421.044] cm +[1 0 0 1 0 0] Tm +0 0 Td +193.457 421.044 Td +/F130_0 9.963 Tf +(ferror\(f\)) 53.8002 Tj +[1 0 0 1 247.255 421.044] cm +0 g +0 G +[1 0 0 1 -247.255 -421.044] cm +[1 0 0 1 0 0] Tm +0 0 Td +247.255 421.044 Td +/F128_0 9.963 Tf +(\)is) 9.963 Tj +-306 TJm +(not) 12.7327 Tj +-305 TJm +(set.) 13.5596 Tj +-954 TJm +(If) 6.63536 Tj +[1 0 0 1 308.784 421.044] cm +0 g +0 G +[1 0 0 1 -308.784 -421.044] cm +[1 0 0 1 0 0] Tm +0 0 Td +308.784 421.044 Td +/F130_0 9.963 Tf +(small) 29.889 Tj +[1 0 0 1 338.672 421.044] cm +0 g +0 G +[1 0 0 1 -338.672 -421.044] cm +[1 0 0 1 0 0] Tm +0 0 Td +341.717 421.044 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-306 TJm +(1,) 7.47225 Tj +-319 TJm +(the) 12.1748 Tj +-306 TJm +(library) 26.5614 Tj +-305 TJm +(will) 15.5024 Tj +-306 TJm +(try) 11.0689 Tj +-305 TJm +(to) 7.75121 Tj +-306 TJm +(decompress) 47.0353 Tj +-306 TJm +(us) 8.85711 Tj +1 TJm +(ing) 12.7327 Tj +-306 TJm +(less) 14.9445 Tj +72 409.089 Td +(memory) 33.2067 Tj +65 TJm +(,) 2.49075 Tj +-250 TJm +(at) 7.19329 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(e) 4.42357 Tj +15 TJm +(xpense) 27.6673 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(spee) 17.7043 Tj +1 TJm +(d.) 7.47225 Tj +[1 0 0 1 72 406.932] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -396.969] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 387.171 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-227 TJm +(reasons) 29.879 Tj +-227 TJm +(e) 4.42357 Tj +15 TJm +(xplained) 34.3126 Tj +-227 TJm +(belo) 17.1563 Tj +25 TJm +(w) 7.19329 Tj +65 TJm +(,) 2.49075 Tj +[1 0 0 1 189.193 387.171] cm +0 g +0 G +[1 0 0 1 -189.193 -387.171] cm +[1 0 0 1 0 0] Tm +0 0 Td +189.193 387.171 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 248.969 387.171] cm +0 g +0 G +[1 0 0 1 -248.969 -387.171] cm +[1 0 0 1 0 0] Tm +0 0 Td +251.232 387.171 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-227 TJm +(decompress) 47.0353 Tj +-227 TJm +(the) 12.1748 Tj +[1 0 0 1 332.732 387.171] cm +0 g +0 G +[1 0 0 1 -332.732 -387.171] cm +[1 0 0 1 0 0] Tm +0 0 Td +332.732 387.171 Td +/F130_0 9.963 Tf +(nUnused) 41.8446 Tj +[1 0 0 1 374.575 387.171] cm +0 g +0 G +[1 0 0 1 -374.575 -387.171] cm +[1 0 0 1 0 0] Tm +0 0 Td +376.838 387.171 Td +/F128_0 9.963 Tf +(bytes) 21.0319 Tj +-227 TJm +(starting) 29.889 Tj +-227 TJm +(at) 7.19329 Tj +[1 0 0 1 441.74 387.171] cm +0 g +0 G +[1 0 0 1 -441.74 -387.171] cm +[1 0 0 1 0 0] Tm +0 0 Td +441.74 387.171 Td +/F130_0 9.963 Tf +(unused) 35.8668 Tj +[1 0 0 1 477.605 387.171] cm +0 g +0 G +[1 0 0 1 -477.605 -387.171] cm +[1 0 0 1 0 0] Tm +0 0 Td +477.605 387.171 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-232 TJm +(before) 25.4455 Tj +-227 TJm +(starting) 29.889 Tj +72 375.216 Td +(to) 7.75121 Tj +-279 TJm +(read) 17.1463 Tj +-280 TJm +(from) 19.3681 Tj +-279 TJm +(the) 12.1748 Tj +-280 TJm +(\002le) 12.7327 Tj +[1 0 0 1 155.094 375.216] cm +0 g +0 G +[1 0 0 1 -155.094 -375.216] cm +[1 0 0 1 0 0] Tm +0 0 Td +155.094 375.216 Td +/F130_0 9.963 Tf +(f) 5.9778 Tj +[1 0 0 1 161.072 375.216] cm +0 g +0 G +[1 0 0 1 -161.072 -375.216] cm +[1 0 0 1 0 0] Tm +0 0 Td +161.072 375.216 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-797 TJm +(At) 9.963 Tj +-280 TJm +(most) 19.378 Tj +[1 0 0 1 206.414 375.216] cm +0 g +0 G +[1 0 0 1 -206.414 -375.216] cm +[1 0 0 1 0 0] Tm +0 0 Td +206.414 375.216 Td +/F130_0 9.963 Tf +(BZ_MAX_UNUSED) 77.7114 Tj +[1 0 0 1 284.122 375.216] cm +0 g +0 G +[1 0 0 1 -284.122 -375.216] cm +[1 0 0 1 0 0] Tm +0 0 Td +286.907 375.216 Td +/F128_0 9.963 Tf +(bytes) 21.0319 Tj +-279 TJm +(may) 17.1563 Tj +-280 TJm +(be) 9.40507 Tj +-279 TJm +(supplied) 33.7646 Tj +-280 TJm +(lik) 10.5209 Tj +10 TJm +(e) 4.42357 Tj +-279 TJm +(this.) 16.8873 Tj +-797 TJm +(If) 6.63536 Tj +-280 TJm +(this) 14.3965 Tj +-279 TJm +(f) 3.31768 Tj +10 TJm +(acility) 24.9075 Tj +-280 TJm +(is) 6.64532 Tj +-279 TJm +(not) 12.7327 Tj +-280 TJm +(re) 7.74125 Tj +1 TJm +(quired,) 27.9462 Tj +72 363.26 Td +(you) 14.9445 Tj +-250 TJm +(should) 26.5713 Tj +-250 TJm +(pass) 17.1563 Tj +[1 0 0 1 138.141 363.26] cm +0 g +0 G +[1 0 0 1 -138.141 -363.26] cm +[1 0 0 1 0 0] Tm +0 0 Td +138.141 363.26 Td +/F130_0 9.963 Tf +(NULL) 23.9112 Tj +[1 0 0 1 162.052 363.26] cm +0 g +0 G +[1 0 0 1 -162.052 -363.26] cm +[1 0 0 1 0 0] Tm +0 0 Td +164.542 363.26 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 181.419 363.26] cm +0 g +0 G +[1 0 0 1 -181.419 -363.26] cm +[1 0 0 1 0 0] Tm +0 0 Td +181.419 363.26 Td +/F130_0 9.963 Tf +(0) 5.9778 Tj +[1 0 0 1 187.397 363.26] cm +0 g +0 G +[1 0 0 1 -187.397 -363.26] cm +[1 0 0 1 0 0] Tm +0 0 Td +189.887 363.26 Td +/F128_0 9.963 Tf +(for) 11.6169 Tj +[1 0 0 1 203.994 363.26] cm +0 g +0 G +[1 0 0 1 -203.994 -363.26] cm +[1 0 0 1 0 0] Tm +0 0 Td +203.994 363.26 Td +/F130_0 9.963 Tf +(unused) 35.8668 Tj +[1 0 0 1 239.86 363.26] cm +0 g +0 G +[1 0 0 1 -239.86 -363.26] cm +[1 0 0 1 0 0] Tm +0 0 Td +242.351 363.26 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +-250 TJm +(n) 4.9815 Tj +[1 0 0 1 264.209 363.26] cm +0 g +0 G +[1 0 0 1 -264.209 -363.26] cm +[1 0 0 1 0 0] Tm +0 0 Td +264.209 363.26 Td +/F130_0 9.963 Tf +(Unused) 35.8668 Tj +[1 0 0 1 300.074 363.26] cm +0 g +0 G +[1 0 0 1 -300.074 -363.26] cm +[1 0 0 1 0 0] Tm +0 0 Td +302.565 363.26 Td +/F128_0 9.963 Tf +(respecti) 30.9849 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ely) 12.1748 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 361.104] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -351.141] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 341.343 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(meaning) 34.3126 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(parameter) 39.8321 Tj +1 TJm +(s) 3.87561 Tj +[1 0 0 1 196.631 341.343] cm +0 g +0 G +[1 0 0 1 -196.631 -341.343] cm +[1 0 0 1 0 0] Tm +0 0 Td +196.631 341.343 Td +/F130_0 9.963 Tf +(small) 29.889 Tj +[1 0 0 1 226.519 341.343] cm +0 g +0 G +[1 0 0 1 -226.519 -341.343] cm +[1 0 0 1 0 0] Tm +0 0 Td +229.01 341.343 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 245.887 341.343] cm +0 g +0 G +[1 0 0 1 -245.887 -341.343] cm +[1 0 0 1 0 0] Tm +0 0 Td +245.887 341.343 Td +/F130_0 9.963 Tf +(verbosity) 53.8002 Tj +[1 0 0 1 299.685 341.343] cm +0 g +0 G +[1 0 0 1 -299.685 -341.343] cm +[1 0 0 1 0 0] Tm +0 0 Td +299.685 341.343 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(see) 12.7228 Tj +[1 0 0 1 319.879 341.343] cm +0 g +0 G +[1 0 0 1 -319.879 -341.343] cm +[1 0 0 1 0 0] Tm +0 0 Td +319.879 341.343 Td +/F130_0 9.963 Tf +(BZ2_bzDecompressInit) 119.556 Tj +[1 0 0 1 439.431 341.343] cm +0 g +0 G +[1 0 0 1 -439.431 -341.343] cm +[1 0 0 1 0 0] Tm +0 0 Td +439.431 341.343 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 339.186] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -329.223] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 319.425 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-402 TJm +(amount) 29.889 Tj +-402 TJm +(of) 8.29918 Tj +-402 TJm +(mem) 19.926 Tj +1 TJm +(ory) 13.2807 Tj +-402 TJm +(needed) 28.2152 Tj +-402 TJm +(to) 7.75121 Tj +-402 TJm +(decompress) 47.0353 Tj +-402 TJm +(a) 4.42357 Tj +-402 TJm +(\002le) 12.7327 Tj +-402 TJm +(c) 4.42357 Tj +1 TJm +(annot) 22.1378 Tj +-402 TJm +(be) 9.40507 Tj +-402 TJm +(determined) 44.8235 Tj +-402 TJm +(until) 18.2721 Tj +-402 TJm +(the) 12.1748 Tj +-402 TJm +(\002le') 16.0504 Tj +55 TJm +(s) 3.87561 Tj +-401 TJm +(header) 26.5514 Tj +-402 TJm +(has) 13.2807 Tj +-402 TJm +(been) 18.8101 Tj +-402 TJm +(read.) 19.6371 Tj +72 307.47 Td +(So) 10.5209 Tj +-492 TJm +(it) 5.53943 Tj +-491 TJm +(is) 6.64532 Tj +-492 TJm +(possible) 32.6587 Tj +-491 TJm +(that) 14.9445 Tj +[1 0 0 1 166.797 307.47] cm +0 g +0 G +[1 0 0 1 -166.797 -307.47] cm +[1 0 0 1 0 0] Tm +0 0 Td +166.797 307.47 Td +/F130_0 9.963 Tf +(BZ2_bzReadOpen) 83.6892 Tj +[1 0 0 1 250.483 307.47] cm +0 g +0 G +[1 0 0 1 -250.483 -307.47] cm +[1 0 0 1 0 0] Tm +0 0 Td +255.381 307.47 Td +/F128_0 9.963 Tf +(returns) 27.6673 Tj +[1 0 0 1 287.945 307.47] cm +0 g +0 G +[1 0 0 1 -287.945 -307.47] cm +[1 0 0 1 0 0] Tm +0 0 Td +287.945 307.47 Td +/F130_0 9.963 Tf +(BZ_OK) 29.889 Tj +[1 0 0 1 317.833 307.47] cm +0 g +0 G +[1 0 0 1 -317.833 -307.47] cm +[1 0 0 1 0 0] Tm +0 0 Td +322.729 307.47 Td +/F128_0 9.963 Tf +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-492 TJm +(a) 4.42357 Tj +-491 TJm +(subsequent) 44.2756 Tj +-492 TJm +(call) 14.3866 Tj +-491 TJm +(of) 8.29918 Tj +[1 0 0 1 431.135 307.47] cm +0 g +0 G +[1 0 0 1 -431.135 -307.47] cm +[1 0 0 1 0 0] Tm +0 0 Td +431.135 307.47 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 490.911 307.47] cm +0 g +0 G +[1 0 0 1 -490.911 -307.47] cm +[1 0 0 1 0 0] Tm +0 0 Td +495.81 307.47 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-492 TJm +(re) 7.74125 Tj +1 TJm +(turn) 16.0504 Tj +[1 0 0 1 72 295.514] cm +0 g +0 G +[1 0 0 1 -72 -295.514] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 295.514 Td +/F130_0 9.963 Tf +(BZ_MEM_ERROR) 71.7336 Tj +[1 0 0 1 143.731 295.514] cm +0 g +0 G +[1 0 0 1 -143.731 -295.514] cm +[1 0 0 1 0 0] Tm +0 0 Td +143.731 295.514 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 294.349] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -284.386] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 273.597 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(assignments) 48.7091 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 169.144 273.597] cm +0 g +0 G +[1 0 0 1 -169.144 -273.597] cm +[1 0 0 1 0 0] Tm +0 0 Td +169.144 273.597 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 210.987 273.597] cm +0 g +0 G +[1 0 0 1 -210.987 -273.597] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.987 273.597 Td +/F128_0 9.963 Tf +(:) 2.76971 Tj +[1 0 0 1 72 271.44] cm +0 g +0 G +[1 0 0 1 0 -168.369] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 167.372 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 163.786] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -262.075] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 262.075 Td +/F130_0 9.963 Tf +(BZ_CONFIG_ERROR) 89.667 Tj +98.488 250.12 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(library) 41.8446 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-425 TJm +(mis-compiled) 71.7336 Tj +90 238.165 Td +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 226.209 Td +(if) 11.9556 Tj +-426 TJm +(f) 5.9778 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +98.488 214.254 Td +(or) 11.9556 Tj +-426 TJm +(small) 29.889 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(neither) 41.8446 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(no) 11.9556 Tj +1 TJm +(r) 5.9778 Tj +-426 TJm +(1) 5.9778 Tj +98.488 202.299 Td +(or) 11.9556 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(unused) 35.8668 Tj +-426 TJm +(==) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +-426 TJm +(&&) 11.9556 Tj +-426 TJm +(n) 5.9778 Tj +1 TJm +(Unused) 35.8668 Tj +-426 TJm +(!=) 11.9556 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(\)) 5.9778 Tj +98.488 190.344 Td +(or) 11.9556 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(unused) 35.8668 Tj +-426 TJm +(!=) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +-426 TJm +(&&) 11.9556 Tj +-426 TJm +(!) 5.9778 Tj +1 TJm +(\(0) 11.9556 Tj +-426 TJm +(<=) 11.9556 Tj +-426 TJm +(nUnused) 41.8446 Tj +-426 TJm +(<=) 11.9556 Tj +-426 TJm +(BZ_MAX_UNUSED\)) 83.6892 Tj +-426 TJm +(\)) 5.9778 Tj +90 178.389 Td +(BZ_IO_ERROR) 65.7558 Tj +98.488 166.434 Td +(if) 11.9556 Tj +-426 TJm +(ferror\(f\)) 53.8002 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(nonzero) 41.8446 Tj +90 154.478 Td +(BZ_MEM_ERROR) 71.7336 Tj +98.488 142.523 Td +(if) 11.9556 Tj +-426 TJm +(insufficient) 71.7336 Tj +-426 TJm +(memory) 35.8668 Tj +-426 TJm +(is) 11.9556 Tj +-425 TJm +(available) 53.8002 Tj +90 130.568 Td +(BZ_OK) 29.889 Tj +98.488 118.613 Td +(otherwise.) 59.778 Tj +[1 0 0 1 72 103.071] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -93.109] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 81.153 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 81.054] cm +0 g +0 G +[1 0 0 1 0 -30.202] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.974] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -51.071] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 51.071 Td +/F128_0 9.963 Tf +(19) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 23 23 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -81.33] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 59.776 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 56.189] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(Pointer) 41.8446 Tj +-426 TJm +(to) 11.9556 Tj +-426 TJm +(an) 11.9556 Tj +-426 TJm +(abstract) 47.8224 Tj +-426 TJm +(B) 5.9778 Tj +1 TJm +(ZFILE) 29.889 Tj +98.488 699.676 Td +(if) 11.9556 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +90 687.721 Td +(NULL) 23.9112 Tj +98.488 675.766 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 660.224] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -650.261] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 638.306 Td +/F128_0 9.963 Tf +(Allo) 17.7142 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-250 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-250 TJm +(actions:) 30.9949 Tj +[1 0 0 1 72 638.207] cm +0 g +0 G +[1 0 0 1 0 -60.772] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 59.776 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 56.19] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -628.842] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 628.842 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +98.488 616.887 Td +(if) 11.9556 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +90 604.932 Td +(BZ2_bzClose) 65.7558 Tj +98.488 592.976 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 577.435] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.586] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -567.472] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 546.814 Td +/F121_0 17.215 Tf +(3.4.2.) 43.0719 Tj +[1 0 0 1 119.858 546.814] cm +0 g +0 G +[1 0 0 1 -119.858 -546.814] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 546.814 Td +/F387_0 17.215 Tf +(BZ2_bzRead) 103.29 Tj +[1 0 0 1 223.151 546.814] cm +0 g +0 G +[1 0 0 1 -151.151 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.324] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -535.116] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 535.116 Td +/F130_0 9.963 Tf +(int) 17.9334 Tj +-426 TJm +(BZ2_bzRead) 59.778 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(*bz) 17.9334 Tj +1 TJm +(error,) 35.8668 Tj +-426 TJm +(BZFILE) 35.8668 Tj +-426 TJm +(*b,) 17.9334 Tj +-426 TJm +(void) 23.9112 Tj +-426 TJm +(*buf,) 29.889 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(len) 17.9334 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 519.574] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -509.612] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 497.656 Td +/F128_0 9.963 Tf +(Reads) 24.3496 Tj +-284 TJm +(up) 9.963 Tj +-285 TJm +(to) 7.75121 Tj +[1 0 0 1 122.569 497.656] cm +0 g +0 G +[1 0 0 1 -122.569 -497.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +122.569 497.656 Td +/F130_0 9.963 Tf +(len) 17.9334 Tj +[1 0 0 1 140.501 497.656] cm +0 g +0 G +[1 0 0 1 -140.501 -497.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +143.337 497.656 Td +/F128_0 9.963 Tf +(\(uncompressed\)) 63.6337 Tj +-284 TJm +(bytes) 21.0319 Tj +-285 TJm +(from) 19.3681 Tj +-284 TJm +(the) 12.1748 Tj +-285 TJm +(compressed) 47.0353 Tj +-284 TJm +(\002le) 12.7327 Tj +[1 0 0 1 336.319 497.656] cm +0 g +0 G +[1 0 0 1 -336.319 -497.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +336.319 497.656 Td +/F130_0 9.963 Tf +(b) 5.9778 Tj +[1 0 0 1 342.296 497.656] cm +0 g +0 G +[1 0 0 1 -342.296 -497.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +345.132 497.656 Td +/F128_0 9.963 Tf +(into) 15.5024 Tj +-285 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-285 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +[1 0 0 1 405.205 497.656] cm +0 g +0 G +[1 0 0 1 -405.205 -497.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +405.205 497.656 Td +/F130_0 9.963 Tf +(buf) 17.9334 Tj +[1 0 0 1 423.137 497.656] cm +0 g +0 G +[1 0 0 1 -423.137 -497.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +423.137 497.656 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-828 TJm +(If) 6.63536 Tj +-284 TJm +(the) 12.1748 Tj +-285 TJm +(read) 17.1463 Tj +-284 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-285 TJm +(successful,) 43.4387 Tj +[1 0 0 1 72 485.701] cm +0 g +0 G +[1 0 0 1 -72 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 485.701 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 113.843 485.701] cm +0 g +0 G +[1 0 0 1 -113.843 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +117.36 485.701 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-353 TJm +(set) 11.0689 Tj +-353 TJm +(to) 7.75121 Tj +[1 0 0 1 153.374 485.701] cm +0 g +0 G +[1 0 0 1 -153.374 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +153.374 485.701 Td +/F130_0 9.963 Tf +(BZ_OK) 29.889 Tj +[1 0 0 1 183.262 485.701] cm +0 g +0 G +[1 0 0 1 -183.262 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +186.778 485.701 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +-353 TJm +(the) 12.1748 Tj +-353 TJm +(number) 30.437 Tj +-353 TJm +(of) 8.29918 Tj +-353 TJm +(bytes) 21.0319 Tj +-353 TJm +(read) 17.1463 Tj +-352 TJm +(is) 6.64532 Tj +-353 TJm +(returned.) 35.6875 Tj +-1238 TJm +(If) 6.63536 Tj +-353 TJm +(the) 12.1748 Tj +-353 TJm +(logical) 27.1193 Tj +-353 TJm +(end-of-stream) 55.8825 Tj +-353 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-353 TJm +(detecte) 28.2152 Tj +1 TJm +(d,) 7.47225 Tj +[1 0 0 1 72 473.746] cm +0 g +0 G +[1 0 0 1 -72 -473.746] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 473.746 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 113.843 473.746] cm +0 g +0 G +[1 0 0 1 -113.843 -473.746] cm +[1 0 0 1 0 0] Tm +0 0 Td +116.795 473.746 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-296 TJm +(be) 9.40507 Tj +-296 TJm +(set) 11.0689 Tj +-297 TJm +(to) 7.75121 Tj +[1 0 0 1 172.328 473.746] cm +0 g +0 G +[1 0 0 1 -172.328 -473.746] cm +[1 0 0 1 0 0] Tm +0 0 Td +172.328 473.746 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 250.037 473.746] cm +0 g +0 G +[1 0 0 1 -250.037 -473.746] cm +[1 0 0 1 0 0] Tm +0 0 Td +250.037 473.746 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-296 TJm +(and) 14.3866 Tj +-297 TJm +(th) 7.75121 Tj +1 TJm +(e) 4.42357 Tj +-297 TJm +(number) 30.437 Tj +-296 TJm +(of) 8.29918 Tj +-296 TJm +(bytes) 21.0319 Tj +-296 TJm +(read) 17.1463 Tj +-297 TJm +(is) 6.64532 Tj +-296 TJm +(returned.) 35.6875 Tj +-898 TJm +(All) 12.7327 Tj +-296 TJm +(other) 20.474 Tj +[1 0 0 1 470 473.746] cm +0 g +0 G +[1 0 0 1 -470 -473.746] cm +[1 0 0 1 0 0] Tm +0 0 Td +470 473.746 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 511.843 473.746] cm +0 g +0 G +[1 0 0 1 -511.843 -473.746] cm +[1 0 0 1 0 0] Tm +0 0 Td +514.795 473.746 Td +/F128_0 9.963 Tf +(v) 4.9815 Tj +25 TJm +(alues) 20.474 Tj +72 461.791 Td +(denote) 26.5614 Tj +-250 TJm +(an) 9.40507 Tj +-250 TJm +(error) 19.3581 Tj +55 TJm +(.) 2.49075 Tj +[1 0 0 1 72 461.691] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -451.729] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 439.873 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 131.776 439.873] cm +0 g +0 G +[1 0 0 1 -131.776 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +134.224 439.873 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-246 TJm +(supply) 26.5713 Tj +[1 0 0 1 181.193 439.873] cm +0 g +0 G +[1 0 0 1 -181.193 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +181.193 439.873 Td +/F130_0 9.963 Tf +(len) 17.9334 Tj +[1 0 0 1 199.126 439.873] cm +0 g +0 G +[1 0 0 1 -199.126 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +201.575 439.873 Td +/F128_0 9.963 Tf +(bytes,) 23.5226 Tj +-246 TJm +(unless) 24.9075 Tj +-246 TJm +(the) 12.1748 Tj +-246 TJm +(logical) 27.1193 Tj +-245 TJm +(stream) 26.5614 Tj +-246 TJm +(end) 14.3866 Tj +-246 TJm +(is) 6.64532 Tj +-246 TJm +(detec) 21.0219 Tj +1 TJm +(ted) 12.1748 Tj +-246 TJm +(or) 8.29918 Tj +-246 TJm +(an) 9.40507 Tj +-246 TJm +(error) 19.3581 Tj +-245 TJm +(occurs.) 28.4942 Tj +-617 TJm +(Because) 33.1967 Tj +-246 TJm +(of) 8.29918 Tj +-246 TJm +(this,) 16.8873 Tj +-246 TJm +(it) 5.53943 Tj +72 427.918 Td +(is) 6.64532 Tj +-231 TJm +(possible) 32.6587 Tj +-231 TJm +(to) 7.75121 Tj +-231 TJm +(detect) 23.7916 Tj +-231 TJm +(the) 12.1748 Tj +-231 TJm +(stream) 26.5614 Tj +-231 TJm +(end) 14.3866 Tj +-231 TJm +(by) 9.963 Tj +-231 TJm +(observing) 39.2941 Tj +-231 TJm +(when) 21.5799 Tj +-231 TJm +(the) 12.1748 Tj +-231 TJm +(number) 30.437 Tj +-231 TJm +(of) 8.29918 Tj +-231 TJm +(bytes) 21.0319 Tj +-231 TJm +(returned) 33.1967 Tj +-231 TJm +(is) 6.64532 Tj +-231 TJm +(less) 14.9445 Tj +-231 TJm +(than) 17.1563 Tj +-231 TJm +(the) 12.1748 Tj +-231 TJm +(number) 30.437 Tj +-231 TJm +(requested.) 40.669 Tj +72 415.963 Td +(Ne) 11.6169 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ertheless,) 37.3513 Tj +-309 TJm +(this) 14.3965 Tj +-297 TJm +(is) 6.64532 Tj +-297 TJm +(re) 7.74125 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(arded) 22.1278 Tj +-298 TJm +(as) 8.29918 Tj +-297 TJm +(inadvisable;) 48.1512 Tj +-321 TJm +(you) 14.9445 Tj +-297 TJm +(should) 26.5713 Tj +-297 TJm +(instead) 28.2252 Tj +-297 TJm +(check) 23.2337 Tj +[1 0 0 1 360.631 415.963] cm +0 g +0 G +[1 0 0 1 -360.631 -415.963] cm +[1 0 0 1 0 0] Tm +0 0 Td +360.631 415.963 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 402.475 415.963] cm +0 g +0 G +[1 0 0 1 -402.475 -415.963] cm +[1 0 0 1 0 0] Tm +0 0 Td +405.437 415.963 Td +/F128_0 9.963 Tf +(after) 18.2522 Tj +-297 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ery) 12.7228 Tj +-297 TJm +(call) 14.3866 Tj +-298 TJm +(and) 14.3866 Tj +-297 TJm +(w) 7.19329 Tj +10 TJm +(atch) 16.5984 Tj +-297 TJm +(out) 12.7327 Tj +-297 TJm +(for) 11.6169 Tj +[1 0 0 1 72 404.008] cm +0 g +0 G +[1 0 0 1 -72 -404.008] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 404.008 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 149.709 404.008] cm +0 g +0 G +[1 0 0 1 -149.709 -404.008] cm +[1 0 0 1 0 0] Tm +0 0 Td +149.709 404.008 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 402.842] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -392.879] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 382.09 Td +/F128_0 9.963 Tf +(Internally) 38.7361 Tj +65 TJm +(,) 2.49075 Tj +[1 0 0 1 117.541 382.09] cm +0 g +0 G +[1 0 0 1 -117.541 -382.09] cm +[1 0 0 1 0 0] Tm +0 0 Td +117.541 382.09 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 177.317 382.09] cm +0 g +0 G +[1 0 0 1 -177.317 -382.09] cm +[1 0 0 1 0 0] Tm +0 0 Td +181.786 382.09 Td +/F128_0 9.963 Tf +(copies) 25.4555 Tj +-448 TJm +(data) 16.5984 Tj +-449 TJm +(from) 19.3681 Tj +-448 TJm +(the) 12.1748 Tj +-449 TJm +(compressed) 47.0353 Tj +-448 TJm +(\002le) 12.7327 Tj +-449 TJm +(in) 7.75121 Tj +-448 TJm +(chunks) 28.2252 Tj +-449 TJm +(of) 8.29918 Tj +-448 TJm +(size) 15.4925 Tj +[1 0 0 1 419.602 382.09] cm +0 g +0 G +[1 0 0 1 -419.602 -382.09] cm +[1 0 0 1 0 0] Tm +0 0 Td +419.602 382.09 Td +/F130_0 9.963 Tf +(BZ_MAX_UNUSED) 77.7114 Tj +[1 0 0 1 497.311 382.09] cm +0 g +0 G +[1 0 0 1 -497.311 -382.09] cm +[1 0 0 1 0 0] Tm +0 0 Td +501.778 382.09 Td +/F128_0 9.963 Tf +(bytes) 21.0319 Tj +-448 TJm +(be-) 12.7228 Tj +72 370.135 Td +(fore) 16.0404 Tj +-414 TJm +(decompressing) 59.768 Tj +-414 TJm +(it.) 8.03018 Tj +-1605 TJm +(If) 6.63536 Tj +-414 TJm +(the) 12.1748 Tj +-414 TJm +(\002le) 12.7327 Tj +-414 TJm +(contains) 33.2067 Tj +-414 TJm +(more) 20.474 Tj +-415 TJm +(by) 9.963 Tj +1 TJm +(tes) 11.0689 Tj +-415 TJm +(than) 17.1563 Tj +-414 TJm +(strictly) 27.6772 Tj +-414 TJm +(needed) 28.2152 Tj +-414 TJm +(to) 7.75121 Tj +-414 TJm +(reach) 21.5699 Tj +-414 TJm +(the) 12.1748 Tj +-414 TJm +(logical) 27.1193 Tj +-414 TJm +(end-of-stream,) 58.3732 Tj +[1 0 0 1 72 358.18] cm +0 g +0 G +[1 0 0 1 -72 -358.18] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 358.18 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 131.776 358.18] cm +0 g +0 G +[1 0 0 1 -131.776 -358.18] cm +[1 0 0 1 0 0] Tm +0 0 Td +134.749 358.18 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-298 TJm +(almost) 26.5713 Tj +-299 TJm +(certainly) 34.8605 Tj +-298 TJm +(read) 17.1463 Tj +-298 TJm +(some) 21.0319 Tj +-299 TJm +(of) 8.29918 Tj +-298 TJm +(the) 12.1748 Tj +-299 TJm +(t) 2.76971 Tj +1 TJm +(railing) 26.0134 Tj +-299 TJm +(data) 16.5984 Tj +-298 TJm +(before) 25.4455 Tj +-299 TJm +(s) 3.87561 Tj +1 TJm +(ignalling) 35.4284 Tj +[1 0 0 1 413.162 358.18] cm +0 g +0 G +[1 0 0 1 -413.162 -358.18] cm +[1 0 0 1 0 0] Tm +0 0 Td +413.162 358.18 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_END) 89.667 Tj +[1 0 0 1 502.826 358.18] cm +0 g +0 G +[1 0 0 1 -502.826 -358.18] cm +[1 0 0 1 0 0] Tm +0 0 Td +502.826 358.18 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-597 TJm +(T) 6.08739 Tj +80 TJm +(o) 4.9815 Tj +-298 TJm +(col-) 15.4925 Tj +72 346.224 Td +(lect) 14.3866 Tj +-242 TJm +(the) 12.1748 Tj +-242 TJm +(read) 17.1463 Tj +-242 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-242 TJm +(unused) 28.2252 Tj +-243 TJm +(d) 4.9815 Tj +1 TJm +(ata) 11.6169 Tj +-243 TJm +(once) 18.8101 Tj +[1 0 0 1 208.759 346.224] cm +0 g +0 G +[1 0 0 1 -208.759 -346.224] cm +[1 0 0 1 0 0] Tm +0 0 Td +208.759 346.224 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_END) 89.667 Tj +[1 0 0 1 298.423 346.224] cm +0 g +0 G +[1 0 0 1 -298.423 -346.224] cm +[1 0 0 1 0 0] Tm +0 0 Td +300.835 346.224 Td +/F128_0 9.963 Tf +(has) 13.2807 Tj +-242 TJm +(appeared,) 38.4472 Tj +-244 TJm +(call) 14.3866 Tj +[1 0 0 1 374.201 346.224] cm +0 g +0 G +[1 0 0 1 -374.201 -346.224] cm +[1 0 0 1 0 0] Tm +0 0 Td +374.201 346.224 Td +/F130_0 9.963 Tf +(BZ2_bzReadGetUnused) 113.578 Tj +[1 0 0 1 487.775 346.224] cm +0 g +0 G +[1 0 0 1 -487.775 -346.224] cm +[1 0 0 1 0 0] Tm +0 0 Td +490.188 346.224 Td +/F128_0 9.963 Tf +(immediately) 49.815 Tj +72 334.269 Td +(before) 25.4455 Tj +[1 0 0 1 99.935 334.269] cm +0 g +0 G +[1 0 0 1 -99.935 -334.269] cm +[1 0 0 1 0 0] Tm +0 0 Td +99.935 334.269 Td +/F130_0 9.963 Tf +(BZ2_bzReadClose) 89.667 Tj +[1 0 0 1 189.599 334.269] cm +0 g +0 G +[1 0 0 1 -189.599 -334.269] cm +[1 0 0 1 0 0] Tm +0 0 Td +189.599 334.269 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 333.104] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -323.141] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 312.351 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(assignments) 48.7091 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 169.144 312.351] cm +0 g +0 G +[1 0 0 1 -169.144 -312.351] cm +[1 0 0 1 0 0] Tm +0 0 Td +169.144 312.351 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 210.987 312.351] cm +0 g +0 G +[1 0 0 1 -210.987 -312.351] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.987 312.351 Td +/F128_0 9.963 Tf +(:) 2.76971 Tj +[1 0 0 1 72 310.195] cm +0 g +0 G +[1 0 0 1 0 -259.343] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(20) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 24 24 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -284.568] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 263.014 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 259.427] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 699.676 Td +(if) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(buf) 17.9334 Tj +-426 TJm +(is) 11.9556 Tj +-425 TJm +(NULL) 23.9112 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(len) 17.9334 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(0) 5.9778 Tj +90 687.721 Td +(BZ_SEQUENCE_ERROR) 101.623 Tj +98.488 675.766 Td +(if) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(opened) 35.8668 Tj +-426 TJm +(with) 23.9112 Tj +-426 TJm +(BZ2) 17.9334 Tj +1 TJm +(_bzWriteOpen) 71.7336 Tj +90 663.811 Td +(BZ_IO_ERROR) 65.7558 Tj +98.488 651.856 Td +(if) 11.9556 Tj +-426 TJm +(there) 29.889 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(an) 11.9556 Tj +-426 TJm +(error) 29.889 Tj +-426 TJm +(rea) 17.9334 Tj +1 TJm +(ding) 23.9112 Tj +-426 TJm +(from) 23.9112 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +-426 TJm +(file) 23.9112 Tj +90 639.9 Td +(BZ_UNEXPECTED_EOF) 101.623 Tj +98.488 627.945 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +-426 TJm +(file) 23.9112 Tj +-426 TJm +(e) 5.9778 Tj +1 TJm +(nded) 23.9112 Tj +-426 TJm +(before) 35.8668 Tj +98.488 615.99 Td +(the) 17.9334 Tj +-426 TJm +(logical) 41.8446 Tj +-426 TJm +(end-of-stream) 77.7114 Tj +-425 TJm +(was) 17.9334 Tj +-426 TJm +(detected) 47.8224 Tj +90 604.035 Td +(BZ_DATA_ERROR) 77.7114 Tj +98.488 592.08 Td +(if) 11.9556 Tj +-426 TJm +(a) 5.9778 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(integrity) 53.8002 Tj +-426 TJm +(erro) 23.9112 Tj +1 TJm +(r) 5.9778 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(detected) 47.8224 Tj +-426 TJm +(in) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +-426 TJm +(stream) 35.8668 Tj +90 580.124 Td +(BZ_DATA_ERROR_MAGIC) 113.578 Tj +98.488 568.169 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(stream) 35.8668 Tj +-426 TJm +(does) 23.9112 Tj +-426 TJm +(not) 17.9334 Tj +-426 TJm +(b) 5.9778 Tj +1 TJm +(egin) 23.9112 Tj +-426 TJm +(with) 23.9112 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(requisite) 53.8002 Tj +-426 TJm +(header) 35.8668 Tj +-426 TJm +(bytes) 29.889 Tj +98.488 556.214 Td +(\(ie,) 23.9112 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(not) 17.9334 Tj +-426 TJm +(a) 5.9778 Tj +-426 TJm +(bzip2) 29.889 Tj +-426 TJm +(data) 23.9112 Tj +-425 TJm +(file\).) 35.8668 Tj +-852 TJm +(This) 23.9112 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(really) 35.8668 Tj +98.488 544.259 Td +(a) 5.9778 Tj +-426 TJm +(special) 41.8446 Tj +-426 TJm +(case) 23.9112 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(BZ_DAT) 35.8668 Tj +1 TJm +(A_ERROR.) 47.8224 Tj +90 532.304 Td +(BZ_MEM_ERROR) 71.7336 Tj +98.488 520.349 Td +(if) 11.9556 Tj +-426 TJm +(insufficient) 71.7336 Tj +-426 TJm +(memory) 35.8668 Tj +-426 TJm +(wa) 11.9556 Tj +1 TJm +(s) 5.9778 Tj +-426 TJm +(available) 53.8002 Tj +90 508.393 Td +(BZ_STREAM_END) 77.7114 Tj +98.488 496.438 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(logical) 41.8446 Tj +-426 TJm +(end) 17.9334 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(st) 11.9556 Tj +1 TJm +(ream) 23.9112 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(detected.) 53.8002 Tj +90 484.483 Td +(BZ_OK) 29.889 Tj +98.488 472.528 Td +(otherwise.) 59.778 Tj +[1 0 0 1 72 456.986] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -447.024] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 435.068 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 434.969] cm +0 g +0 G +[1 0 0 1 0 -60.772] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 59.776 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 56.19] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -425.604] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 425.604 Td +/F130_0 9.963 Tf +(number) 35.8668 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(bytes) 29.889 Tj +-426 TJm +(read) 23.9112 Tj +98.488 413.649 Td +(if) 11.9556 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(B) 5.9778 Tj +1 TJm +(Z_STREAM_END) 71.7336 Tj +90 401.694 Td +(undefined) 53.8002 Tj +98.488 389.739 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 374.197] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -364.234] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 352.279 Td +/F128_0 9.963 Tf +(Allo) 17.7142 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-250 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-250 TJm +(actions:) 30.9949 Tj +[1 0 0 1 72 352.179] cm +0 g +0 G +[1 0 0 1 0 -84.682] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 83.686 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 80.099] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -342.815] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 342.815 Td +/F130_0 9.963 Tf +(collect) 41.8446 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(from) 23.9112 Tj +-426 TJm +(buf,) 23.9112 Tj +-426 TJm +(t) 5.9778 Tj +1 TJm +(hen) 17.9334 Tj +-426 TJm +(BZ2_bzRead) 59.778 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(BZ2_bzReadClose) 89.667 Tj +98.488 330.859 Td +(if) 11.9556 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +90 318.904 Td +(collect) 41.8446 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(from) 23.9112 Tj +-426 TJm +(buf,) 23.9112 Tj +-426 TJm +(t) 5.9778 Tj +1 TJm +(hen) 17.9334 Tj +-426 TJm +(BZ2_bzReadClose) 89.667 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(BZ2_bzReadGetUnused) 113.578 Tj +98.488 306.949 Td +(if) 11.9556 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(BZ_SEQUENCE) 65.7558 Tj +1 TJm +(_END) 23.9112 Tj +90 294.994 Td +(BZ2_bzReadClose) 89.667 Tj +98.488 283.039 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 267.497] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -257.534] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 236.876 Td +/F121_0 17.215 Tf +(3.4.3.) 43.0719 Tj +[1 0 0 1 119.858 236.876] cm +0 g +0 G +[1 0 0 1 -119.858 -236.876] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 236.876 Td +/F387_0 17.215 Tf +(BZ2_bzReadGetUnused) 196.251 Tj +[1 0 0 1 316.114 236.876] cm +0 g +0 G +[1 0 0 1 -244.114 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -36.862] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 35.866 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 32.279] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -225.178] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 225.178 Td +/F130_0 9.963 Tf +(void) 23.9112 Tj +-426 TJm +(BZ2_bzReadGetUnused\() 119.556 Tj +-425 TJm +(int*) 23.9112 Tj +-426 TJm +(bzerror,) 47.8224 Tj +-426 TJm +(BZFILE) 35.8668 Tj +-426 TJm +(*b,) 17.9334 Tj +200.343 213.223 Td +(void**) 35.8668 Tj +-426 TJm +(unused,) 41.8446 Tj +-426 TJm +(int*) 23.9112 Tj +-426 TJm +(nUnuse) 35.8668 Tj +1 TJm +(d) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 197.681] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -187.719] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 175.764 Td +/F128_0 9.963 Tf +(Returns) 30.9949 Tj +-435 TJm +(data) 16.5984 Tj +-435 TJm +(which) 24.3496 Tj +-435 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-435 TJm +(rea) 12.1648 Tj +1 TJm +(d) 4.9815 Tj +-435 TJm +(from) 19.3681 Tj +-435 TJm +(the) 12.1748 Tj +-435 TJm +(compressed) 47.0353 Tj +-435 TJm +(\002le) 12.7327 Tj +-435 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-435 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-435 TJm +(not) 12.7327 Tj +-435 TJm +(needed) 28.2152 Tj +-435 TJm +(to) 7.75121 Tj +-435 TJm +(get) 12.1748 Tj +-434 TJm +(to) 7.75121 Tj +-435 TJm +(the) 12.1748 Tj +-435 TJm +(logical) 27.1193 Tj +-435 TJm +(end-of-stream.) 58.3732 Tj +[1 0 0 1 72 163.808] cm +0 g +0 G +[1 0 0 1 -72 -163.808] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 163.808 Td +/F130_0 9.963 Tf +(*unused) 41.8446 Tj +[1 0 0 1 113.843 163.808] cm +0 g +0 G +[1 0 0 1 -113.843 -163.808] cm +[1 0 0 1 0 0] Tm +0 0 Td +117.2 163.808 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-337 TJm +(set) 11.0689 Tj +-337 TJm +(to) 7.75121 Tj +-337 TJm +(the) 12.1748 Tj +-336 TJm +(address) 29.879 Tj +-337 TJm +(of) 8.29918 Tj +-337 TJm +(the) 12.1748 Tj +-337 TJm +(data,) 19.0891 Tj +-359 TJm +(a) 4.42357 Tj +1 TJm +(nd) 9.963 Tj +[1 0 0 1 269.089 163.808] cm +0 g +0 G +[1 0 0 1 -269.089 -163.808] cm +[1 0 0 1 0 0] Tm +0 0 Td +269.089 163.808 Td +/F130_0 9.963 Tf +(*nUnused) 47.8224 Tj +[1 0 0 1 316.91 163.808] cm +0 g +0 G +[1 0 0 1 -316.91 -163.808] cm +[1 0 0 1 0 0] Tm +0 0 Td +320.267 163.808 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-337 TJm +(the) 12.1748 Tj +-337 TJm +(number) 30.437 Tj +-337 TJm +(o) 4.9815 Tj +1 TJm +(f) 3.31768 Tj +-337 TJm +(bytes.) 23.5226 Tj +[1 0 0 1 427.247 163.808] cm +0 g +0 G +[1 0 0 1 -427.247 -163.808] cm +[1 0 0 1 0 0] Tm +0 0 Td +427.247 163.808 Td +/F130_0 9.963 Tf +(*nUnused) 47.8224 Tj +[1 0 0 1 475.068 163.808] cm +0 g +0 G +[1 0 0 1 -475.068 -163.808] cm +[1 0 0 1 0 0] Tm +0 0 Td +478.425 163.808 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-337 TJm +(be) 9.40507 Tj +-337 TJm +(set) 11.0689 Tj +-337 TJm +(to) 7.75121 Tj +-336 TJm +(a) 4.42357 Tj +72 151.853 Td +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +-250 TJm +(between) 33.1967 Tj +[1 0 0 1 131.506 151.853] cm +0 g +0 G +[1 0 0 1 -131.506 -151.853] cm +[1 0 0 1 0 0] Tm +0 0 Td +131.506 151.853 Td +/F130_0 9.963 Tf +(0) 5.9778 Tj +[1 0 0 1 137.484 151.853] cm +0 g +0 G +[1 0 0 1 -137.484 -151.853] cm +[1 0 0 1 0 0] Tm +0 0 Td +139.975 151.853 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 156.851 151.853] cm +0 g +0 G +[1 0 0 1 -156.851 -151.853] cm +[1 0 0 1 0 0] Tm +0 0 Td +156.851 151.853 Td +/F130_0 9.963 Tf +(BZ_MAX_UNUSED) 77.7114 Tj +[1 0 0 1 234.56 151.853] cm +0 g +0 G +[1 0 0 1 -234.56 -151.853] cm +[1 0 0 1 0 0] Tm +0 0 Td +237.05 151.853 Td +/F128_0 9.963 Tf +(inclusi) 26.5713 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e.) 6.91432 Tj +[1 0 0 1 72 150.688] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -140.725] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 129.936 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-882 TJm +(function) 33.2067 Tj +-883 TJm +(may) 17.1563 Tj +-882 TJm +(only) 17.7142 Tj +-882 TJm +(be) 9.40507 Tj +-883 TJm +(called) 23.7916 Tj +-882 TJm +(once) 18.8101 Tj +[1 0 0 1 271.332 129.936] cm +0 g +0 G +[1 0 0 1 -271.332 -129.936] cm +[1 0 0 1 0 0] Tm +0 0 Td +271.332 129.936 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 331.108 129.936] cm +0 g +0 G +[1 0 0 1 -331.108 -129.936] cm +[1 0 0 1 0 0] Tm +0 0 Td +339.9 129.936 Td +/F128_0 9.963 Tf +(has) 13.2807 Tj +-882 TJm +(signalled) 35.9764 Tj +[1 0 0 1 406.737 129.936] cm +0 g +0 G +[1 0 0 1 -406.737 -129.936] cm +[1 0 0 1 0 0] Tm +0 0 Td +406.737 129.936 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 484.446 129.936] cm +0 g +0 G +[1 0 0 1 -484.446 -129.936] cm +[1 0 0 1 0 0] Tm +0 0 Td +493.231 129.936 Td +/F128_0 9.963 Tf +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-882 TJm +(before) 25.4455 Tj +[1 0 0 1 72 117.98] cm +0 g +0 G +[1 0 0 1 -72 -117.98] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 117.98 Td +/F130_0 9.963 Tf +(BZ2_bzReadClose) 89.667 Tj +[1 0 0 1 161.664 117.98] cm +0 g +0 G +[1 0 0 1 -161.664 -117.98] cm +[1 0 0 1 0 0] Tm +0 0 Td +161.664 117.98 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 116.815] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -106.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 96.063 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(assignments) 48.7091 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 169.144 96.063] cm +0 g +0 G +[1 0 0 1 -169.144 -96.063] cm +[1 0 0 1 0 0] Tm +0 0 Td +169.144 96.063 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 210.987 96.063] cm +0 g +0 G +[1 0 0 1 -210.987 -96.063] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.987 96.063 Td +/F128_0 9.963 Tf +(:) 2.76971 Tj +[1 0 0 1 72 93.906] cm +0 g +0 G +[1 0 0 1 0 -43.054] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.754] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.754] cm +0 g +0 G +[1 0 0 1 -493.841 -50.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.852 Td +/F128_0 9.963 Tf +(21) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 25 25 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -129.151] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 107.597 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 104.01] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 699.676 Td +(if) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +98.488 687.721 Td +(or) 11.9556 Tj +-426 TJm +(unused) 35.8668 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(nUn) 17.9334 Tj +1 TJm +(used) 23.9112 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +90 675.766 Td +(BZ_SEQUENCE_ERROR) 101.623 Tj +98.488 663.811 Td +(if) 11.9556 Tj +-426 TJm +(BZ_STREAM_END) 77.7114 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(not) 17.9334 Tj +-425 TJm +(been) 23.9112 Tj +-426 TJm +(signalled) 53.8002 Tj +98.488 651.856 Td +(or) 11.9556 Tj +-426 TJm +(if) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(opened) 35.8668 Tj +-426 TJm +(with) 23.9112 Tj +-425 TJm +(BZ2_bzWriteOpen) 89.667 Tj +90 639.9 Td +(BZ_OK) 29.889 Tj +98.488 627.945 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 612.403] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -602.441] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 590.486 Td +/F128_0 9.963 Tf +(Allo) 17.7142 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-250 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-250 TJm +(actions:) 30.9949 Tj +[1 0 0 1 72 590.386] cm +0 g +0 G +[1 0 0 1 0 -24.906] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 20.324] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -581.021] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 581.021 Td +/F130_0 9.963 Tf +(BZ2_bzReadClose) 89.667 Tj +[1 0 0 1 72 565.48] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.586] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -555.517] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 534.858 Td +/F121_0 17.215 Tf +(3.4.4.) 43.0719 Tj +[1 0 0 1 119.858 534.858] cm +0 g +0 G +[1 0 0 1 -119.858 -534.858] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 534.858 Td +/F387_0 17.215 Tf +(BZ2_bzReadClose) 154.935 Tj +[1 0 0 1 274.797 534.858] cm +0 g +0 G +[1 0 0 1 -202.797 -2.332] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.323] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -523.161] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 523.161 Td +/F130_0 9.963 Tf +(void) 23.9112 Tj +-426 TJm +(BZ2_bzReadClose) 89.667 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(in) 11.9556 Tj +1 TJm +(t) 5.9778 Tj +-426 TJm +(*bzerror,) 53.8002 Tj +-426 TJm +(BZFILE) 35.8668 Tj +-426 TJm +(*b) 11.9556 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 507.619] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -497.656] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 485.701 Td +/F128_0 9.963 Tf +(Releases) 34.8605 Tj +-429 TJm +(all) 9.963 Tj +-430 TJm +(memory) 33.2067 Tj +-429 TJm +(pertaining) 40.4 Tj +-430 TJm +(to) 7.75121 Tj +-429 TJm +(the) 12.1748 Tj +-430 TJm +(compressed) 47.0353 Tj +-429 TJm +(\002le) 12.7327 Tj +[1 0 0 1 304.352 485.701] cm +0 g +0 G +[1 0 0 1 -304.352 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +304.352 485.701 Td +/F130_0 9.963 Tf +(b) 5.9778 Tj +[1 0 0 1 310.33 485.701] cm +0 g +0 G +[1 0 0 1 -310.33 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +310.33 485.701 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 321.276 485.701] cm +0 g +0 G +[1 0 0 1 -321.276 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +321.276 485.701 Td +/F130_0 9.963 Tf +(BZ2_bzReadClose) 89.667 Tj +[1 0 0 1 410.94 485.701] cm +0 g +0 G +[1 0 0 1 -410.94 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +415.22 485.701 Td +/F128_0 9.963 Tf +(does) 18.2622 Tj +-429 TJm +(not) 12.7327 Tj +-430 TJm +(call) 14.3866 Tj +[1 0 0 1 473.438 485.701] cm +0 g +0 G +[1 0 0 1 -473.438 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +473.438 485.701 Td +/F130_0 9.963 Tf +(fclose) 35.8668 Tj +[1 0 0 1 509.304 485.701] cm +0 g +0 G +[1 0 0 1 -509.304 -485.701] cm +[1 0 0 1 0 0] Tm +0 0 Td +513.583 485.701 Td +/F128_0 9.963 Tf +(on) 9.963 Tj +-430 TJm +(the) 12.1748 Tj +72 473.746 Td +(underlying) 43.1697 Tj +-264 TJm +(\002le) 12.7327 Tj +-264 TJm +(hand) 19.3681 Tj +1 TJm +(le,) 9.68404 Tj +-268 TJm +(so) 8.85711 Tj +-264 TJm +(you) 14.9445 Tj +-264 TJm +(sh) 8.85711 Tj +1 TJm +(ould) 17.7142 Tj +-264 TJm +(do) 9.963 Tj +-264 TJm +(that) 14.9445 Tj +-264 TJm +(yourself) 32.6488 Tj +-264 TJm +(if) 6.08739 Tj +-264 TJm +(appropri) 33.7546 Tj +1 TJm +(ate.) 14.1076 Tj +[1 0 0 1 348.653 473.746] cm +0 g +0 G +[1 0 0 1 -348.653 -473.746] cm +[1 0 0 1 0 0] Tm +0 0 Td +348.653 473.746 Td +/F130_0 9.963 Tf +(BZ2_bzReadClose) 89.667 Tj +[1 0 0 1 438.317 473.746] cm +0 g +0 G +[1 0 0 1 -438.317 -473.746] cm +[1 0 0 1 0 0] Tm +0 0 Td +440.946 473.746 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-264 TJm +(be) 9.40507 Tj +-264 TJm +(called) 23.7916 Tj +-263 TJm +(to) 7.75121 Tj +-264 TJm +(clean) 21.0219 Tj +72 461.791 Td +(up) 9.963 Tj +-250 TJm +(after) 18.2522 Tj +-250 TJm +(all) 9.963 Tj +-250 TJm +(error) 19.3581 Tj +-250 TJm +(situations.) 40.6889 Tj +[1 0 0 1 72 459.634] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -449.671] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 439.873 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(assignments) 48.7091 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 169.144 439.873] cm +0 g +0 G +[1 0 0 1 -169.144 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +169.144 439.873 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 210.987 439.873] cm +0 g +0 G +[1 0 0 1 -210.987 -439.873] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.987 439.873 Td +/F128_0 9.963 Tf +(:) 2.76971 Tj +[1 0 0 1 72 437.716] cm +0 g +0 G +[1 0 0 1 0 -60.772] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 59.776 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 56.189] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -428.351] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 428.351 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_ERROR) 101.623 Tj +98.488 416.396 Td +(if) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(opened) 35.8668 Tj +-426 TJm +(with) 23.9112 Tj +-426 TJm +(BZ2) 17.9334 Tj +1 TJm +(_bzOpenWrite) 71.7336 Tj +90 404.441 Td +(BZ_OK) 29.889 Tj +98.488 392.486 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 376.944] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -366.982] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 355.026 Td +/F128_0 9.963 Tf +(Allo) 17.7142 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-250 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-250 TJm +(actions:) 30.9949 Tj +[1 0 0 1 72 354.927] cm +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.324] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -345.562] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 345.562 Td +/F130_0 9.963 Tf +(none) 23.9112 Tj +[1 0 0 1 72 330.02] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -320.058] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 299.399 Td +/F121_0 17.215 Tf +(3.4.5.) 43.0719 Tj +[1 0 0 1 119.858 299.399] cm +0 g +0 G +[1 0 0 1 -119.858 -299.399] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 299.399 Td +/F387_0 17.215 Tf +(BZ2_bzWriteOpen) 154.935 Tj +[1 0 0 1 274.797 299.399] cm +0 g +0 G +[1 0 0 1 -202.797 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -48.817] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 47.821 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 44.234] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -287.702] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 287.702 Td +/F130_0 9.963 Tf +(BZFILE) 35.8668 Tj +-426 TJm +(*BZ2_bzWriteOpen\() 101.623 Tj +-425 TJm +(int) 17.9334 Tj +-426 TJm +(*bzerror,) 53.8002 Tj +-426 TJm +(FILE) 23.9112 Tj +-426 TJm +(*f,) 17.9334 Tj +196.099 275.746 Td +(int) 17.9334 Tj +-426 TJm +(blockSize100k,) 83.6892 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(ver) 17.9334 Tj +1 TJm +(bosity,) 41.8446 Tj +196.099 263.791 Td +(int) 17.9334 Tj +-426 TJm +(workFactor) 59.778 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 248.249] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -238.287] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 226.332 Td +/F128_0 9.963 Tf +(Prepare) 30.427 Tj +-268 TJm +(to) 7.75121 Tj +-269 TJm +(write) 20.474 Tj +-268 TJm +(compressed) 47.0353 Tj +-268 TJm +(data) 16.5984 Tj +-269 TJm +(to) 7.75121 Tj +-268 TJm +(\002le) 12.7327 Tj +-269 TJm +(hand) 19.3681 Tj +1 TJm +(le) 7.19329 Tj +[1 0 0 1 262.72 226.332] cm +0 g +0 G +[1 0 0 1 -262.72 -226.332] cm +[1 0 0 1 0 0] Tm +0 0 Td +262.72 226.332 Td +/F130_0 9.963 Tf +(f) 5.9778 Tj +[1 0 0 1 268.698 226.332] cm +0 g +0 G +[1 0 0 1 -268.698 -226.332] cm +[1 0 0 1 0 0] Tm +0 0 Td +268.698 226.332 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 274.829 226.332] cm +0 g +0 G +[1 0 0 1 -274.829 -226.332] cm +[1 0 0 1 0 0] Tm +0 0 Td +274.829 226.332 Td +/F130_0 9.963 Tf +(f) 5.9778 Tj +[1 0 0 1 280.807 226.332] cm +0 g +0 G +[1 0 0 1 -280.807 -226.332] cm +[1 0 0 1 0 0] Tm +0 0 Td +283.481 226.332 Td +/F128_0 9.963 Tf +(should) 26.5713 Tj +-268 TJm +(refer) 18.8002 Tj +-269 TJm +(to) 7.75121 Tj +-268 TJm +(a) 4.42357 Tj +-269 TJm +(\002le) 12.7327 Tj +-268 TJm +(which) 24.3496 Tj +-268 TJm +(has) 13.2807 Tj +-269 TJm +(been) 18.8101 Tj +-268 TJm +(opened) 28.7731 Tj +-269 TJm +(f) 3.31768 Tj +1 TJm +(or) 8.29918 Tj +-269 TJm +(writing,) 31.2739 Tj +-273 TJm +(and) 14.3866 Tj +-268 TJm +(for) 11.6169 Tj +72 214.377 Td +(which) 24.3496 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(error) 19.3581 Tj +-250 TJm +(indicator) 35.4185 Tj +-250 TJm +(\() 3.31768 Tj +[1 0 0 1 176.577 214.377] cm +0 g +0 G +[1 0 0 1 -176.577 -214.377] cm +[1 0 0 1 0 0] Tm +0 0 Td +176.577 214.377 Td +/F130_0 9.963 Tf +(ferror\(f\)) 53.8002 Tj +[1 0 0 1 230.375 214.377] cm +0 g +0 G +[1 0 0 1 -230.375 -214.377] cm +[1 0 0 1 0 0] Tm +0 0 Td +230.375 214.377 Td +/F128_0 9.963 Tf +(\)is) 9.963 Tj +-250 TJm +(not) 12.7327 Tj +-250 TJm +(set.) 13.5596 Tj +[1 0 0 1 72 212.593] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -202.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 192.459 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-223 TJm +(the) 12.1748 Tj +-224 TJm +(meaning) 34.3126 Tj +-223 TJm +(of) 8.29918 Tj +-223 TJm +(parameters) 43.7077 Tj +[1 0 0 1 195.306 192.459] cm +0 g +0 G +[1 0 0 1 -195.306 -192.459] cm +[1 0 0 1 0 0] Tm +0 0 Td +195.306 192.459 Td +/F130_0 9.963 Tf +(blockSize100k) 77.7114 Tj +[1 0 0 1 273.015 192.459] cm +0 g +0 G +[1 0 0 1 -273.015 -192.459] cm +[1 0 0 1 0 0] Tm +0 0 Td +273.015 192.459 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 277.784 192.459] cm +0 g +0 G +[1 0 0 1 -277.784 -192.459] cm +[1 0 0 1 0 0] Tm +0 0 Td +277.784 192.459 Td +/F130_0 9.963 Tf +(verbosity) 53.8002 Tj +[1 0 0 1 331.583 192.459] cm +0 g +0 G +[1 0 0 1 -331.583 -192.459] cm +[1 0 0 1 0 0] Tm +0 0 Td +333.808 192.459 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 350.42 192.459] cm +0 g +0 G +[1 0 0 1 -350.42 -192.459] cm +[1 0 0 1 0 0] Tm +0 0 Td +350.42 192.459 Td +/F130_0 9.963 Tf +(workFactor) 59.778 Tj +[1 0 0 1 410.196 192.459] cm +0 g +0 G +[1 0 0 1 -410.196 -192.459] cm +[1 0 0 1 0 0] Tm +0 0 Td +410.196 192.459 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-229 TJm +(see) 12.7228 Tj +[1 0 0 1 429.913 192.459] cm +0 g +0 G +[1 0 0 1 -429.913 -192.459] cm +[1 0 0 1 0 0] Tm +0 0 Td +429.913 192.459 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 537.509 192.459] cm +0 g +0 G +[1 0 0 1 -537.509 -192.459] cm +[1 0 0 1 0 0] Tm +0 0 Td +537.509 192.459 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 190.302] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -180.339] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 170.541 Td +/F128_0 9.963 Tf +(All) 12.7327 Tj +-382 TJm +(required) 33.1967 Tj +-382 TJm +(memory) 33.2067 Tj +-382 TJm +(is) 6.64532 Tj +-382 TJm +(allocated) 35.9664 Tj +-382 TJm +(at) 7.19329 Tj +-382 TJm +(this) 14.3965 Tj +-382 TJm +(stage,) 22.9647 Tj +-415 TJm +(so) 8.85711 Tj +-382 TJm +(if) 6.08739 Tj +-382 TJm +(the) 12.1748 Tj +-382 TJm +(call) 14.3866 Tj +-382 TJm +(completes) 40.4 Tj +-382 TJm +(successfully) 48.6991 Tj +65 TJm +(,) 2.49075 Tj +[1 0 0 1 424.692 170.541] cm +0 g +0 G +[1 0 0 1 -424.692 -170.541] cm +[1 0 0 1 0 0] Tm +0 0 Td +424.692 170.541 Td +/F130_0 9.963 Tf +(BZ_MEM_ERROR) 71.7336 Tj +[1 0 0 1 496.423 170.541] cm +0 g +0 G +[1 0 0 1 -496.423 -170.541] cm +[1 0 0 1 0 0] Tm +0 0 Td +500.228 170.541 Td +/F128_0 9.963 Tf +(cannot) 26.5614 Tj +-382 TJm +(be) 9.40507 Tj +72 158.586 Td +(signalled) 35.9764 Tj +-250 TJm +(by) 9.963 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(subsequent) 44.2756 Tj +-250 TJm +(cal) 11.6169 Tj +1 TJm +(l) 2.76971 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 203.715 158.586] cm +0 g +0 G +[1 0 0 1 -203.715 -158.586] cm +[1 0 0 1 0 0] Tm +0 0 Td +203.715 158.586 Td +/F130_0 9.963 Tf +(BZ2_bzWrite) 65.7558 Tj +[1 0 0 1 269.468 158.586] cm +0 g +0 G +[1 0 0 1 -269.468 -158.586] cm +[1 0 0 1 0 0] Tm +0 0 Td +269.468 158.586 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 156.429] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -146.466] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 136.668 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(assignments) 48.7091 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 169.144 136.668] cm +0 g +0 G +[1 0 0 1 -169.144 -136.668] cm +[1 0 0 1 0 0] Tm +0 0 Td +169.144 136.668 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 210.987 136.668] cm +0 g +0 G +[1 0 0 1 -210.987 -136.668] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.987 136.668 Td +/F128_0 9.963 Tf +(:) 2.76971 Tj +[1 0 0 1 72 134.511] cm +0 g +0 G +[1 0 0 1 0 -83.659] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.754] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.754] cm +0 g +0 G +[1 0 0 1 -493.841 -50.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.852 Td +/F128_0 9.963 Tf +(22) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 26 26 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -165.016] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 143.462 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 139.875] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(BZ_CONFIG_ERROR) 89.667 Tj +98.488 699.676 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(library) 41.8446 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-425 TJm +(mis-compiled) 71.7336 Tj +90 687.721 Td +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 675.766 Td +(if) 11.9556 Tj +-426 TJm +(f) 5.9778 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +98.488 663.811 Td +(or) 11.9556 Tj +-426 TJm +(blockSize100k) 77.7114 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(1) 5.9778 Tj +-426 TJm +(or) 11.9556 Tj +-425 TJm +(blockSize100k) 77.7114 Tj +-426 TJm +(>) 5.9778 Tj +-426 TJm +(9) 5.9778 Tj +90 651.856 Td +(BZ_IO_ERROR) 65.7558 Tj +98.488 639.9 Td +(if) 11.9556 Tj +-426 TJm +(ferror\(f\)) 53.8002 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(nonzero) 41.8446 Tj +90 627.945 Td +(BZ_MEM_ERROR) 71.7336 Tj +98.488 615.99 Td +(if) 11.9556 Tj +-426 TJm +(insufficient) 71.7336 Tj +-426 TJm +(memory) 35.8668 Tj +-426 TJm +(is) 11.9556 Tj +-425 TJm +(available) 53.8002 Tj +90 604.035 Td +(BZ_OK) 29.889 Tj +98.488 592.08 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 576.538] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -566.575] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 554.62 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 554.521] cm +0 g +0 G +[1 0 0 1 0 -60.772] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 59.776 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 56.189] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -545.156] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 545.156 Td +/F130_0 9.963 Tf +(Pointer) 41.8446 Tj +-426 TJm +(to) 11.9556 Tj +-426 TJm +(an) 11.9556 Tj +-426 TJm +(abstract) 47.8224 Tj +-426 TJm +(B) 5.9778 Tj +1 TJm +(ZFILE) 29.889 Tj +98.488 533.201 Td +(if) 11.9556 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +90 521.245 Td +(NULL) 23.9112 Tj +98.488 509.29 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 493.749] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -483.786] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 471.831 Td +/F128_0 9.963 Tf +(Allo) 17.7142 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able) 16.5984 Tj +-250 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-250 TJm +(actions:) 30.9949 Tj +[1 0 0 1 72 471.731] cm +0 g +0 G +[1 0 0 1 0 -84.682] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 83.686 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 80.1] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -462.366] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 462.366 Td +/F130_0 9.963 Tf +(BZ2_bzWrite) 65.7558 Tj +98.488 450.411 Td +(if) 11.9556 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +98.488 438.456 Td +(\(you) 23.9112 Tj +-426 TJm +(could) 29.889 Tj +-426 TJm +(go) 11.9556 Tj +-426 TJm +(directly) 47.8224 Tj +-426 TJm +(t) 5.9778 Tj +1 TJm +(o) 5.9778 Tj +-426 TJm +(BZ2_bzWriteClose,) 101.623 Tj +-426 TJm +(but) 17.9334 Tj +-426 TJm +(this) 23.9112 Tj +-426 TJm +(would) 29.889 Tj +-426 TJm +(be) 11.9556 Tj +-426 TJm +(pretty) 35.8668 Tj +485.506 434.212 Td +/F559_0 9.963 Tf +( ) 9.963 Tj +493.808 434.212 Td +/F143_0 9.963 Tf +(-) 2.76971 Tj +90 426.501 Td +/F130_0 9.963 Tf +(pointless\)) 59.778 Tj +90 414.546 Td +(BZ2_bzWriteClose) 95.6448 Tj +98.488 402.59 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 387.049] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.586] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -377.086] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 356.428 Td +/F121_0 17.215 Tf +(3.4.6.) 43.0719 Tj +[1 0 0 1 119.858 356.428] cm +0 g +0 G +[1 0 0 1 -119.858 -356.428] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 356.428 Td +/F387_0 17.215 Tf +(BZ2_bzWrite) 113.619 Tj +[1 0 0 1 233.48 356.428] cm +0 g +0 G +[1 0 0 1 -161.48 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.324] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -344.73] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 344.73 Td +/F130_0 9.963 Tf +(void) 23.9112 Tj +-426 TJm +(BZ2_bzWrite) 65.7558 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(*) 5.9778 Tj +1 TJm +(bzerror,) 47.8224 Tj +-426 TJm +(BZFILE) 35.8668 Tj +-426 TJm +(*b,) 17.9334 Tj +-426 TJm +(void) 23.9112 Tj +-426 TJm +(*buf,) 29.889 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(len) 17.9334 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 329.188] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -319.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 307.271 Td +/F128_0 9.963 Tf +(Absorbs) 33.2067 Tj +[1 0 0 1 107.696 307.271] cm +0 g +0 G +[1 0 0 1 -107.696 -307.271] cm +[1 0 0 1 0 0] Tm +0 0 Td +107.696 307.271 Td +/F130_0 9.963 Tf +(len) 17.9334 Tj +[1 0 0 1 125.629 307.271] cm +0 g +0 G +[1 0 0 1 -125.629 -307.271] cm +[1 0 0 1 0 0] Tm +0 0 Td +128.119 307.271 Td +/F128_0 9.963 Tf +(bytes) 21.0319 Tj +-250 TJm +(from) 19.3681 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +[1 0 0 1 214.544 307.271] cm +0 g +0 G +[1 0 0 1 -214.544 -307.271] cm +[1 0 0 1 0 0] Tm +0 0 Td +214.544 307.271 Td +/F130_0 9.963 Tf +(buf) 17.9334 Tj +[1 0 0 1 232.477 307.271] cm +0 g +0 G +[1 0 0 1 -232.477 -307.271] cm +[1 0 0 1 0 0] Tm +0 0 Td +232.477 307.271 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(entually) 32.1008 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(compressed) 47.0353 Tj +-249 TJm +(and) 14.3866 Tj +-250 TJm +(written) 28.2252 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(\002le.) 15.2235 Tj +[1 0 0 1 72 305.114] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -295.151] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 285.353 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(assignments) 48.7091 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 169.144 285.353] cm +0 g +0 G +[1 0 0 1 -169.144 -285.353] cm +[1 0 0 1 0 0] Tm +0 0 Td +169.144 285.353 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 210.987 285.353] cm +0 g +0 G +[1 0 0 1 -210.987 -285.353] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.987 285.353 Td +/F128_0 9.963 Tf +(:) 2.76971 Tj +[1 0 0 1 72 283.196] cm +0 g +0 G +[1 0 0 1 0 -108.593] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 107.597 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 104.01] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -273.831] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 273.831 Td +/F130_0 9.963 Tf +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 261.876 Td +(if) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(buf) 17.9334 Tj +-426 TJm +(is) 11.9556 Tj +-425 TJm +(NULL) 23.9112 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(len) 17.9334 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(0) 5.9778 Tj +90 249.921 Td +(BZ_SEQUENCE_ERROR) 101.623 Tj +98.488 237.966 Td +(if) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(opened) 35.8668 Tj +-426 TJm +(with) 23.9112 Tj +-426 TJm +(BZ2) 17.9334 Tj +1 TJm +(_bzReadOpen) 65.7558 Tj +90 226.01 Td +(BZ_IO_ERROR) 65.7558 Tj +98.488 214.055 Td +(if) 11.9556 Tj +-426 TJm +(there) 29.889 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(an) 11.9556 Tj +-426 TJm +(error) 29.889 Tj +-426 TJm +(wri) 17.9334 Tj +1 TJm +(ting) 23.9112 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +-426 TJm +(file.) 29.889 Tj +90 202.1 Td +(BZ_OK) 29.889 Tj +98.488 190.145 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 174.603] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -164.64] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 143.982 Td +/F121_0 17.215 Tf +(3.4.7.) 43.0719 Tj +[1 0 0 1 119.858 143.982] cm +0 g +0 G +[1 0 0 1 -119.858 -143.982] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 143.982 Td +/F387_0 17.215 Tf +(BZ2_bzWriteClose) 165.264 Tj +[1 0 0 1 285.126 143.982] cm +0 g +0 G +[1 0 0 1 -213.126 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -90.797] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(23) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 27 27 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -165.016] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 143.462 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 139.875] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(void) 23.9112 Tj +-426 TJm +(BZ2_bzWriteClose\() 101.623 Tj +-426 TJm +(in) 11.9556 Tj +1 TJm +(t) 5.9778 Tj +-426 TJm +(*bzerror,) 53.8002 Tj +-426 TJm +(BZFILE*) 41.8446 Tj +-426 TJm +(f,) 11.9556 Tj +187.611 699.676 Td +(int) 17.9334 Tj +-426 TJm +(abandon,) 47.8224 Tj +187.611 687.721 Td +(unsigned) 47.8224 Tj +-426 TJm +(int*) 23.9112 Tj +-426 TJm +(nbytes_in,) 59.778 Tj +187.611 675.766 Td +(unsigned) 47.8224 Tj +-426 TJm +(int*) 23.9112 Tj +-426 TJm +(nbytes_out) 59.778 Tj +-426 TJm +(\);) 11.9556 Tj +90 651.856 Td +(void) 23.9112 Tj +-426 TJm +(BZ2_bzWriteClose64\() 113.578 Tj +-425 TJm +(int) 17.9334 Tj +-426 TJm +(*bzerror,) 53.8002 Tj +-426 TJm +(BZFILE*) 41.8446 Tj +-426 TJm +(f,) 11.9556 Tj +196.099 639.9 Td +(int) 17.9334 Tj +-426 TJm +(abandon,) 47.8224 Tj +196.099 627.945 Td +(unsigned) 47.8224 Tj +-426 TJm +(int*) 23.9112 Tj +-426 TJm +(nbytes_in_lo3) 77.7114 Tj +1 TJm +(2,) 11.9556 Tj +196.099 615.99 Td +(unsigned) 47.8224 Tj +-426 TJm +(int*) 23.9112 Tj +-426 TJm +(nbytes_in_hi3) 77.7114 Tj +1 TJm +(2,) 11.9556 Tj +196.099 604.035 Td +(unsigned) 47.8224 Tj +-426 TJm +(int*) 23.9112 Tj +-426 TJm +(nbytes_out_lo) 77.7114 Tj +1 TJm +(32,) 17.9334 Tj +196.099 592.08 Td +(unsigned) 47.8224 Tj +-426 TJm +(int*) 23.9112 Tj +-426 TJm +(nbytes_out_hi) 77.7114 Tj +1 TJm +(32) 11.9556 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 576.538] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -566.575] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 554.62 Td +/F128_0 9.963 Tf +(Compresses) 48.1512 Tj +-402 TJm +(and) 14.3866 Tj +-403 TJm +(\003ushes) 27.6772 Tj +-403 TJm +(to) 7.75121 Tj +-402 TJm +(the) 12.1748 Tj +-403 TJm +(compressed) 47.0353 Tj +-402 TJm +(\002le) 12.7327 Tj +-403 TJm +(all) 9.963 Tj +-402 TJm +(data) 16.5984 Tj +-403 TJm +(so) 8.85711 Tj +-403 TJm +(f) 3.31768 Tj +11 TJm +(ar) 7.74125 Tj +-403 TJm +(supplied) 33.7646 Tj +-403 TJm +(by) 9.963 Tj +[1 0 0 1 384.152 554.62] cm +0 g +0 G +[1 0 0 1 -384.152 -554.62] cm +[1 0 0 1 0 0] Tm +0 0 Td +384.152 554.62 Td +/F130_0 9.963 Tf +(BZ2_bzWrite) 65.7558 Tj +[1 0 0 1 449.906 554.62] cm +0 g +0 G +[1 0 0 1 -449.906 -554.62] cm +[1 0 0 1 0 0] Tm +0 0 Td +449.906 554.62 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-768 TJm +(The) 15.4925 Tj +-402 TJm +(logical) 27.1193 Tj +-403 TJm +(end-of-) 29.3211 Tj +72 542.665 Td +(stream) 26.5614 Tj +-352 TJm +(mark) 20.474 Tj +10 TJm +(ers) 11.6169 Tj +-352 TJm +(are) 12.1648 Tj +-352 TJm +(also) 16.0504 Tj +-352 TJm +(written,) 30.7159 Tj +-378 TJm +(so) 8.85711 Tj +-352 TJm +(subsequent) 44.2756 Tj +-352 TJm +(calls) 18.2622 Tj +-352 TJm +(to) 7.75121 Tj +[1 0 0 1 300.456 542.665] cm +0 g +0 G +[1 0 0 1 -300.456 -542.665] cm +[1 0 0 1 0 0] Tm +0 0 Td +300.456 542.665 Td +/F130_0 9.963 Tf +(BZ2_bzWrite) 65.7558 Tj +[1 0 0 1 366.209 542.665] cm +0 g +0 G +[1 0 0 1 -366.209 -542.665] cm +[1 0 0 1 0 0] Tm +0 0 Td +369.718 542.665 Td +/F128_0 9.963 Tf +(are) 12.1648 Tj +-352 TJm +(ille) 12.7327 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(al.) 9.68404 Tj +-1233 TJm +(All) 12.7327 Tj +-352 TJm +(memory) 33.2067 Tj +-353 TJm +(ass) 12.1748 Tj +1 TJm +(ociated) 28.7731 Tj +-353 TJm +(wit) 12.7327 Tj +1 TJm +(h) 4.9815 Tj +72 530.71 Td +(the) 12.1748 Tj +-250 TJm +(compressed) 47.0353 Tj +-250 TJm +(\002le) 12.7327 Tj +[1 0 0 1 151.411 530.71] cm +0 g +0 G +[1 0 0 1 -151.411 -530.71] cm +[1 0 0 1 0 0] Tm +0 0 Td +151.411 530.71 Td +/F130_0 9.963 Tf +(b) 5.9778 Tj +[1 0 0 1 157.389 530.71] cm +0 g +0 G +[1 0 0 1 -157.389 -530.71] cm +[1 0 0 1 0 0] Tm +0 0 Td +159.88 530.71 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(released.) 35.1295 Tj +[1 0 0 1 207.231 530.71] cm +0 g +0 G +[1 0 0 1 -207.231 -530.71] cm +[1 0 0 1 0 0] Tm +0 0 Td +207.231 530.71 Td +/F130_0 9.963 Tf +(fflush) 35.8668 Tj +[1 0 0 1 243.097 530.71] cm +0 g +0 G +[1 0 0 1 -243.097 -530.71] cm +[1 0 0 1 0 0] Tm +0 0 Td +245.587 530.71 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(called) 23.7916 Tj +-250 TJm +(on) 9.963 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(compressed) 47.0353 Tj +-250 TJm +(\002l) 8.30914 Tj +1 TJm +(e,) 6.91432 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(it) 5.53943 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(not) 12.7327 Tj +[1 0 0 1 422.771 530.71] cm +0 g +0 G +[1 0 0 1 -422.771 -530.71] cm +[1 0 0 1 0 0] Tm +0 0 Td +422.771 530.71 Td +/F130_0 9.963 Tf +(fclose) 35.8668 Tj +[1 0 0 1 458.636 530.71] cm +0 g +0 G +[1 0 0 1 -458.636 -530.71] cm +[1 0 0 1 0 0] Tm +0 0 Td +458.636 530.71 Td +/F128_0 9.963 Tf +(') 3.31768 Tj +50 TJm +(d.) 7.47225 Tj +[1 0 0 1 72 528.553] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -518.59] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 508.792 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +[1 0 0 1 81.574 508.792] cm +0 g +0 G +[1 0 0 1 -81.574 -508.792] cm +[1 0 0 1 0 0] Tm +0 0 Td +81.574 508.792 Td +/F130_0 9.963 Tf +(BZ2_bzWriteClose) 95.6448 Tj +[1 0 0 1 177.216 508.792] cm +0 g +0 G +[1 0 0 1 -177.216 -508.792] cm +[1 0 0 1 0 0] Tm +0 0 Td +180.155 508.792 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-295 TJm +(called) 23.7916 Tj +-295 TJm +(to) 7.75121 Tj +-295 TJm +(clean) 21.0219 Tj +-295 TJm +(up) 9.963 Tj +-295 TJm +(after) 18.2522 Tj +-295 TJm +(an) 9.40507 Tj +-295 TJm +(error) 19.3581 Tj +40 TJm +(,) 2.49075 Tj +-306 TJm +(the) 12.1748 Tj +-295 TJm +(only) 17.7142 Tj +-295 TJm +(action) 24.3496 Tj +-295 TJm +(is) 6.64532 Tj +-295 TJm +(to) 7.75121 Tj +-295 TJm +(relea) 19.3581 Tj +1 TJm +(se) 8.29918 Tj +-295 TJm +(the) 12.1748 Tj +-295 TJm +(memory) 33.2067 Tj +65 TJm +(.) 2.49075 Tj +-890 TJm +(The) 15.4925 Tj +-295 TJm +(library) 26.5614 Tj +72 496.837 Td +(records) 29.3211 Tj +-289 TJm +(the) 12.1748 Tj +-289 TJm +(error) 19.3581 Tj +-289 TJm +(codes) 22.6858 Tj +-289 TJm +(issued) 24.9075 Tj +-289 TJm +(by) 9.963 Tj +-289 TJm +(p) 4.9815 Tj +1 TJm +(re) 7.74125 Tj +25 TJm +(vious) 21.5898 Tj +-289 TJm +(calls,) 20.7529 Tj +-299 TJm +(so) 8.85711 Tj +-289 TJm +(this) 14.3965 Tj +-289 TJm +(situation) 34.3225 Tj +-289 TJm +(will) 15.5024 Tj +-289 TJm +(be) 9.40507 Tj +-289 TJm +(detecte) 28.2152 Tj +1 TJm +(d) 4.9815 Tj +-289 TJm +(automatically) 54.2386 Tj +65 TJm +(.) 2.49075 Tj +-427 TJm +(There) 23.2337 Tj +-289 TJm +(is) 6.64532 Tj +-289 TJm +(no) 9.963 Tj +-289 TJm +(attempt) 29.889 Tj +72 484.882 Td +(to) 7.75121 Tj +-263 TJm +(comple) 29.3311 Tj +1 TJm +(te) 7.19329 Tj +-263 TJm +(the) 12.1748 Tj +-263 TJm +(compression) 50.363 Tj +-262 TJm +(operation,) 40.121 Tj +-266 TJm +(nor) 13.2807 Tj +-262 TJm +(to) 7.75121 Tj +[1 0 0 1 258.308 484.882] cm +0 g +0 G +[1 0 0 1 -258.308 -484.882] cm +[1 0 0 1 0 0] Tm +0 0 Td +258.308 484.882 Td +/F130_0 9.963 Tf +(fflush) 35.8668 Tj +[1 0 0 1 294.173 484.882] cm +0 g +0 G +[1 0 0 1 -294.173 -484.882] cm +[1 0 0 1 0 0] Tm +0 0 Td +296.79 484.882 Td +/F128_0 9.963 Tf +(the) 12.1748 Tj +-263 TJm +(compres) 33.7546 Tj +1 TJm +(sed) 13.2807 Tj +-263 TJm +(\002le.) 15.2235 Tj +-696 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-263 TJm +(can) 13.8286 Tj +-262 TJm +(force) 20.464 Tj +-263 TJm +(this) 14.3965 Tj +-262 TJm +(beha) 18.8101 Tj +20 TJm +(viour) 21.0319 Tj +-263 TJm +(to) 7.75121 Tj +-262 TJm +(happen) 28.7731 Tj +72 472.927 Td +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(case) 17.1463 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(no) 9.963 Tj +-250 TJm +(error) 19.3581 Tj +40 TJm +(,) 2.49075 Tj +-250 TJm +(by) 9.963 Tj +-250 TJm +(p) 4.9815 Tj +1 TJm +(assing) 24.9075 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(nonzero) 32.0908 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alue) 16.5984 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 305.015 472.927] cm +0 g +0 G +[1 0 0 1 -305.015 -472.927] cm +[1 0 0 1 0 0] Tm +0 0 Td +305.015 472.927 Td +/F130_0 9.963 Tf +(abandon) 41.8446 Tj +[1 0 0 1 346.858 472.927] cm +0 g +0 G +[1 0 0 1 -346.858 -472.927] cm +[1 0 0 1 0 0] Tm +0 0 Td +346.858 472.927 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 470.77] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -460.807] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 451.009 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +[1 0 0 1 80.597 451.009] cm +0 g +0 G +[1 0 0 1 -80.597 -451.009] cm +[1 0 0 1 0 0] Tm +0 0 Td +80.597 451.009 Td +/F130_0 9.963 Tf +(nbytes_in) 53.8002 Tj +[1 0 0 1 134.396 451.009] cm +0 g +0 G +[1 0 0 1 -134.396 -451.009] cm +[1 0 0 1 0 0] Tm +0 0 Td +136.358 451.009 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-197 TJm +(non-null,) 36.2554 Tj +[1 0 0 1 183.287 451.009] cm +0 g +0 G +[1 0 0 1 -183.287 -451.009] cm +[1 0 0 1 0 0] Tm +0 0 Td +183.287 451.009 Td +/F130_0 9.963 Tf +(*nbytes_in) 59.778 Tj +[1 0 0 1 243.063 451.009] cm +0 g +0 G +[1 0 0 1 -243.063 -451.009] cm +[1 0 0 1 0 0] Tm +0 0 Td +245.025 451.009 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-197 TJm +(be) 9.40507 Tj +-197 TJm +(set) 11.0689 Tj +-197 TJm +(to) 7.75121 Tj +-197 TJm +(be) 9.40507 Tj +-197 TJm +(the) 12.1748 Tj +-197 TJm +(tot) 10.5209 Tj +1 TJm +(al) 7.19329 Tj +-197 TJm +(v) 4.9815 Tj +20 TJm +(olume) 24.9075 Tj +-197 TJm +(of) 8.29918 Tj +-197 TJm +(uncompressed) 56.9983 Tj +-197 TJm +(data) 16.5984 Tj +-197 TJm +(handled.) 34.0336 Tj +-584 TJm +(Similarly) 37.0922 Tj +65 TJm +(,) 2.49075 Tj +[1 0 0 1 72 439.054] cm +0 g +0 G +[1 0 0 1 -72 -439.054] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 439.054 Td +/F130_0 9.963 Tf +(nbytes_out) 59.778 Tj +[1 0 0 1 131.776 439.054] cm +0 g +0 G +[1 0 0 1 -131.776 -439.054] cm +[1 0 0 1 0 0] Tm +0 0 Td +134.716 439.054 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-295 TJm +(be) 9.40507 Tj +-295 TJm +(set) 11.0689 Tj +-295 TJm +(to) 7.75121 Tj +-295 TJm +(the) 12.1748 Tj +-295 TJm +(total) 17.7142 Tj +-295 TJm +(v) 4.9815 Tj +20 TJm +(olume) 24.9075 Tj +-295 TJm +(of) 8.29918 Tj +-295 TJm +(compressed) 47.0353 Tj +-295 TJm +(data) 16.5984 Tj +-295 TJm +(written.) 30.7159 Tj +-890 TJm +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-295 TJm +(compatibility) 53.1426 Tj +-295 TJm +(with) 17.7142 Tj +-295 TJm +(older) 20.474 Tj +-295 TJm +(v) 4.9815 Tj +15 TJm +(ersions) 28.2252 Tj +-295 TJm +(of) 8.29918 Tj +72 427.098 Td +(the) 12.1748 Tj +-283 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +[1 0 0 1 118.294 427.098] cm +0 g +0 G +[1 0 0 1 -118.294 -427.098] cm +[1 0 0 1 0 0] Tm +0 0 Td +118.294 427.098 Td +/F130_0 9.963 Tf +(BZ2_bzWriteClose) 95.6448 Tj +[1 0 0 1 213.936 427.098] cm +0 g +0 G +[1 0 0 1 -213.936 -427.098] cm +[1 0 0 1 0 0] Tm +0 0 Td +216.753 427.098 Td +/F128_0 9.963 Tf +(only) 17.7142 Tj +-283 TJm +(yields) 23.8016 Tj +-282 TJm +(the) 12.1748 Tj +-283 TJm +(lo) 7.75121 Tj +25 TJm +(wer) 14.9345 Tj +-283 TJm +(32) 9.963 Tj +-283 TJm +(bits) 14.3965 Tj +-282 TJm +(of) 8.29918 Tj +-283 TJm +(these) 20.474 Tj +-283 TJm +(counts.) 28.5041 Tj +-817 TJm +(Use) 15.4925 Tj +[1 0 0 1 423.499 427.098] cm +0 g +0 G +[1 0 0 1 -423.499 -427.098] cm +[1 0 0 1 0 0] Tm +0 0 Td +423.499 427.098 Td +/F130_0 9.963 Tf +(BZ2_bzWriteClose64) 107.6 Tj +[1 0 0 1 531.095 427.098] cm +0 g +0 G +[1 0 0 1 -531.095 -427.098] cm +[1 0 0 1 0 0] Tm +0 0 Td +533.913 427.098 Td +/F128_0 9.963 Tf +(if) 6.08739 Tj +72 415.143 Td +(you) 14.9445 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(full) 13.8386 Tj +-250 TJm +(64) 9.963 Tj +-250 TJm +(bit) 10.5209 Tj +-250 TJm +(counts) 26.0134 Tj +1 TJm +(.) 2.49075 Tj +-620 TJm +(These) 23.7916 Tj +-250 TJm +(tw) 9.963 Tj +10 TJm +(o) 4.9815 Tj +-250 TJm +(functions) 37.0823 Tj +-250 TJm +(are) 12.1648 Tj +-250 TJm +(otherwise) 38.7361 Tj +-250 TJm +(absolutely) 40.9579 Tj +-250 TJm +(identic) 27.1193 Tj +1 TJm +(al.) 9.68404 Tj +[1 0 0 1 72 412.986] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -403.024] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 393.225 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(assignments) 48.7091 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 169.144 393.225] cm +0 g +0 G +[1 0 0 1 -169.144 -393.225] cm +[1 0 0 1 0 0] Tm +0 0 Td +169.144 393.225 Td +/F130_0 9.963 Tf +(bzerror) 41.8446 Tj +[1 0 0 1 210.987 393.225] cm +0 g +0 G +[1 0 0 1 -210.987 -393.225] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.987 393.225 Td +/F128_0 9.963 Tf +(:) 2.76971 Tj +[1 0 0 1 72 391.069] cm +0 g +0 G +[1 0 0 1 0 -84.683] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 83.686 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 80.099] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -381.704] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 381.704 Td +/F130_0 9.963 Tf +(BZ_SEQUENCE_ERROR) 101.623 Tj +98.488 369.749 Td +(if) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(opened) 35.8668 Tj +-426 TJm +(with) 23.9112 Tj +-426 TJm +(BZ2) 17.9334 Tj +1 TJm +(_bzReadOpen) 65.7558 Tj +90 357.793 Td +(BZ_IO_ERROR) 65.7558 Tj +98.488 345.838 Td +(if) 11.9556 Tj +-426 TJm +(there) 29.889 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(an) 11.9556 Tj +-426 TJm +(error) 29.889 Tj +-426 TJm +(wri) 17.9334 Tj +1 TJm +(ting) 23.9112 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +-426 TJm +(file) 23.9112 Tj +90 333.883 Td +(BZ_OK) 29.889 Tj +98.488 321.928 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 306.386] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -296.423] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 275.765 Td +/F121_0 17.215 Tf +(3.4.8.) 43.0719 Tj +-278 TJm +(Handling) 73.6458 Tj +-278 TJm +(embed) 55.4839 Tj +10 TJm +(ded) 30.6083 Tj +-278 TJm +(compressed) 101.414 Tj +-278 TJm +(data) 35.394 Tj +-278 TJm +(streams) 66.0195 Tj +[1 0 0 1 72 271.935] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -261.972] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 253.847 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-203 TJm +(high-le) 28.2252 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-203 TJm +(library) 26.5614 Tj +-203 TJm +(f) 3.31768 Tj +10 TJm +(acilitates) 35.4185 Tj +-203 TJm +(use) 13.2807 Tj +-203 TJm +(of) 8.29918 Tj +[1 0 0 1 226.404 253.847] cm +0 g +0 G +[1 0 0 1 -226.404 -253.847] cm +[1 0 0 1 0 0] Tm +0 0 Td +226.404 253.847 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 256.292 253.847] cm +0 g +0 G +[1 0 0 1 -256.292 -253.847] cm +[1 0 0 1 0 0] Tm +0 0 Td +258.316 253.847 Td +/F128_0 9.963 Tf +(data) 16.5984 Tj +-203 TJm +(streams) 30.437 Tj +-203 TJm +(which) 24.3496 Tj +-203 TJm +(form) 19.3681 Tj +-203 TJm +(some) 21.0319 Tj +-203 TJm +(part) 15.4925 Tj +-203 TJm +(of) 8.29918 Tj +-203 TJm +(a) 4.42357 Tj +-203 TJm +(surrounding,) 50.6419 Tj +-212 TJm +(lar) 10.511 Tj +18 TJm +(ger) 12.7228 Tj +-203 TJm +(data) 16.5984 Tj +-203 TJm +(stream.) 29.0521 Tj +[1 0 0 1 72 251.69] cm +0 g +0 G +[1 0 0 1 0 -29.723] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -221.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 221.967 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 221.967] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -221.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 221.967 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-240 TJm +(writing,) 31.2739 Tj +-243 TJm +(the) 12.1748 Tj +-240 TJm +(library) 26.5614 Tj +-240 TJm +(tak) 12.1748 Tj +10 TJm +(es) 8.29918 Tj +-241 TJm +(an) 9.40507 Tj +-240 TJm +(open) 19.3681 Tj +-241 TJm +(\002le) 12.7327 Tj +-240 TJm +(handle,) 29.0521 Tj +-242 TJm +(writes) 24.3496 Tj +-241 TJm +(compress) 37.6303 Tj +1 TJm +(ed) 9.40507 Tj +-241 TJm +(data) 16.5984 Tj +-240 TJm +(to) 7.75121 Tj +-241 TJm +(it,) 8.03018 Tj +[1 0 0 1 398.926 221.967] cm +0 g +0 G +[1 0 0 1 -398.926 -221.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +398.926 221.967 Td +/F130_0 9.963 Tf +(fflush) 35.8668 Tj +[1 0 0 1 434.791 221.967] cm +0 g +0 G +[1 0 0 1 -434.791 -221.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.791 221.967 Td +/F128_0 9.963 Tf +(es) 8.29918 Tj +-240 TJm +(it) 5.53943 Tj +-241 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-240 TJm +(does) 18.2622 Tj +-241 TJm +(not) 12.7327 Tj +[1 0 0 1 504.135 221.967] cm +0 g +0 G +[1 0 0 1 -504.135 -221.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +504.135 221.967 Td +/F130_0 9.963 Tf +(fclose) 35.8668 Tj +[1 0 0 1 540 221.967] cm +0 g +0 G +[1 0 0 1 -540 -221.967] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 210.012 Td +/F128_0 9.963 Tf +(it.) 8.03018 Tj +-610 TJm +(The) 15.4925 Tj +-235 TJm +(calling) 27.1193 Tj +-235 TJm +(application) 44.2756 Tj +-234 TJm +(can) 13.8286 Tj +-235 TJm +(write) 20.474 Tj +-235 TJm +(its) 9.41504 Tj +-235 TJm +(o) 4.9815 Tj +25 TJm +(wn) 12.1748 Tj +-235 TJm +(data) 16.5984 Tj +-235 TJm +(before) 25.4455 Tj +-235 TJm +(and) 14.3866 Tj +-235 TJm +(after) 18.2522 Tj +-235 TJm +(the) 12.1748 Tj +-235 TJm +(compressed) 47.0353 Tj +-235 TJm +(dat) 12.1748 Tj +1 TJm +(a) 4.42357 Tj +-235 TJm +(stream,) 29.0521 Tj +-238 TJm +(using) 21.5898 Tj +-235 TJm +(that) 14.9445 Tj +-235 TJm +(same) 20.474 Tj +-235 TJm +(\002le) 12.7327 Tj +86.944 198.056 Td +(handle.) 29.0521 Tj +[1 0 0 1 115.995 198.056] cm +0 g +0 G +[1 0 0 1 -43.995 -21.917] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -176.139] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 176.139 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 176.139] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -176.139] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 176.139 Td +/F128_0 9.963 Tf +(Reading) 33.2067 Tj +-236 TJm +(is) 6.64532 Tj +-236 TJm +(m) 7.75121 Tj +1 TJm +(ore) 12.7228 Tj +-236 TJm +(comple) 29.3311 Tj +15 TJm +(x,) 7.47225 Tj +-239 TJm +(and) 14.3866 Tj +-236 TJm +(the) 12.1748 Tj +-235 TJm +(f) 3.31768 Tj +10 TJm +(acilities) 30.9949 Tj +-236 TJm +(are) 12.1648 Tj +-236 TJm +(not) 12.7327 Tj +-236 TJm +(as) 8.29918 Tj +-235 TJm +(general) 29.3211 Tj +-236 TJm +(as) 8.29918 Tj +-236 TJm +(the) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-236 TJm +(could) 22.1378 Tj +-236 TJm +(b) 4.9815 Tj +1 TJm +(e) 4.42357 Tj +-236 TJm +(since) 20.474 Tj +-236 TJm +(generality) 39.842 Tj +-236 TJm +(is) 6.64532 Tj +-236 TJm +(har) 12.7228 Tj +1 TJm +(d) 4.9815 Tj +-236 TJm +(to) 7.75121 Tj +-236 TJm +(reconcile) 36.5144 Tj +86.944 164.183 Td +(with) 17.7142 Tj +-404 TJm +(ef) 7.74125 Tj +25 TJm +(\002cienc) 26.5614 Tj +15 TJm +(y) 4.9815 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 164.811 164.183] cm +0 g +0 G +[1 0 0 1 -164.811 -164.183] cm +[1 0 0 1 0 0] Tm +0 0 Td +164.811 164.183 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 224.587 164.183] cm +0 g +0 G +[1 0 0 1 -224.587 -164.183] cm +[1 0 0 1 0 0] Tm +0 0 Td +228.614 164.183 Td +/F128_0 9.963 Tf +(reads) 21.0219 Tj +-404 TJm +(from) 19.3681 Tj +-404 TJm +(the) 12.1748 Tj +-405 TJm +(com) 17.1563 Tj +1 TJm +(pressed) 29.879 Tj +-405 TJm +(\002le) 12.7327 Tj +-404 TJm +(in) 7.75121 Tj +-404 TJm +(blocks) 26.0134 Tj +-404 TJm +(of) 8.29918 Tj +-404 TJm +(size) 15.4925 Tj +[1 0 0 1 434.744 164.183] cm +0 g +0 G +[1 0 0 1 -434.744 -164.183] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.744 164.183 Td +/F130_0 9.963 Tf +(BZ_MAX_UNUSED) 77.7114 Tj +[1 0 0 1 512.452 164.183] cm +0 g +0 G +[1 0 0 1 -512.452 -164.183] cm +[1 0 0 1 0 0] Tm +0 0 Td +516.479 164.183 Td +/F128_0 9.963 Tf +(bytes,) 23.5226 Tj +86.944 152.228 Td +(and) 14.3866 Tj +-413 TJm +(in) 7.75121 Tj +-413 TJm +(doing) 22.6957 Tj +-413 TJm +(so) 8.85711 Tj +-413 TJm +(probably) 35.4185 Tj +-413 TJm +(wi) 9.963 Tj +1 TJm +(ll) 5.53943 Tj +-413 TJm +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(ershoot) 29.3311 Tj +-413 TJm +(the) 12.1748 Tj +-413 TJm +(logical) 27.1193 Tj +-413 TJm +(end) 14.3866 Tj +-413 TJm +(of) 8.29918 Tj +-413 TJm +(compressed) 47.0353 Tj +-413 TJm +(stream.) 29.0521 Tj +-1597 TJm +(T) 6.08739 Tj +80 TJm +(o) 4.9815 Tj +-413 TJm +(reco) 17.1463 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-413 TJm +(this) 14.3965 Tj +-413 TJm +(data) 16.5984 Tj +-413 TJm +(once) 18.8101 Tj +86.944 140.273 Td +(decompression) 59.768 Tj +-252 TJm +(has) 13.2807 Tj +-252 TJm +(ended,) 26.2824 Tj +-252 TJm +(call) 14.3866 Tj +[1 0 0 1 210.705 140.273] cm +0 g +0 G +[1 0 0 1 -210.705 -140.273] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.705 140.273 Td +/F130_0 9.963 Tf +(BZ2_bzReadGetUnused) 113.578 Tj +[1 0 0 1 324.279 140.273] cm +0 g +0 G +[1 0 0 1 -324.279 -140.273] cm +[1 0 0 1 0 0] Tm +0 0 Td +326.789 140.273 Td +/F128_0 9.963 Tf +(after) 18.2522 Tj +-252 TJm +(the) 12.1748 Tj +-252 TJm +(last) 13.8386 Tj +-252 TJm +(call) 14.3866 Tj +-252 TJm +(of) 8.29918 Tj +[1 0 0 1 406.291 140.273] cm +0 g +0 G +[1 0 0 1 -406.291 -140.273] cm +[1 0 0 1 0 0] Tm +0 0 Td +406.291 140.273 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 466.067 140.273] cm +0 g +0 G +[1 0 0 1 -466.067 -140.273] cm +[1 0 0 1 0 0] Tm +0 0 Td +468.578 140.273 Td +/F128_0 9.963 Tf +(\(the) 15.4925 Tj +-252 TJm +(one) 14.3866 Tj +-252 TJm +(returning) 36.5244 Tj +[1 0 0 1 86.944 128.318] cm +0 g +0 G +[1 0 0 1 -86.944 -128.318] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 128.318 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 164.653 128.318] cm +0 g +0 G +[1 0 0 1 -164.653 -128.318] cm +[1 0 0 1 0 0] Tm +0 0 Td +164.653 128.318 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(before) 25.4455 Tj +-250 TJm +(calling) 27.1193 Tj +[1 0 0 1 243.028 128.318] cm +0 g +0 G +[1 0 0 1 -243.028 -128.318] cm +[1 0 0 1 0 0] Tm +0 0 Td +243.028 128.318 Td +/F130_0 9.963 Tf +(BZ2_bzReadClose) 89.667 Tj +[1 0 0 1 332.692 128.318] cm +0 g +0 G +[1 0 0 1 -332.692 -128.318] cm +[1 0 0 1 0 0] Tm +0 0 Td +332.692 128.318 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 335.182 128.318] cm +0 g +0 G +[1 0 0 1 -263.182 -77.466] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.754] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.754] cm +0 g +0 G +[1 0 0 1 -493.841 -50.852] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.852 Td +/F128_0 9.963 Tf +(24) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 28 28 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-271 TJm +(mechanism) 45.3815 Tj +-271 TJm +(mak) 17.1563 Tj +10 TJm +(es) 8.29918 Tj +-272 TJm +(i) 2.76971 Tj +1 TJm +(t) 2.76971 Tj +-272 TJm +(easy) 17.7043 Tj +-271 TJm +(to) 7.75121 Tj +-271 TJm +(decompress) 47.0353 Tj +-271 TJm +(multiple) 33.2166 Tj +[1 0 0 1 293.313 710.037] cm +0 g +0 G +[1 0 0 1 -293.313 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +293.313 710.037 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 323.2 710.037] cm +0 g +0 G +[1 0 0 1 -323.2 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +325.903 710.037 Td +/F128_0 9.963 Tf +(streams) 30.437 Tj +-271 TJm +(placed) 26.0034 Tj +-271 TJm +(end-to-end.) 45.6505 Tj +-374 TJm +(As) 11.0689 Tj +-271 TJm +(the) 12.1748 Tj +-272 TJm +(end) 14.3866 Tj +-271 TJm +(of) 8.29918 Tj +-271 TJm +(one) 14.3866 Tj +-271 TJm +(stream,) 29.0521 Tj +72 698.082 Td +(when) 21.5799 Tj +[1 0 0 1 96.195 698.082] cm +0 g +0 G +[1 0 0 1 -96.195 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +96.195 698.082 Td +/F130_0 9.963 Tf +(BZ2_bzRead) 59.778 Tj +[1 0 0 1 155.971 698.082] cm +0 g +0 G +[1 0 0 1 -155.971 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +158.586 698.082 Td +/F128_0 9.963 Tf +(returns) 27.6673 Tj +[1 0 0 1 188.868 698.082] cm +0 g +0 G +[1 0 0 1 -188.868 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +188.868 698.082 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 266.577 698.082] cm +0 g +0 G +[1 0 0 1 -266.577 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +266.577 698.082 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-263 TJm +(c) 4.42357 Tj +1 TJm +(all) 9.963 Tj +[1 0 0 1 288.685 698.082] cm +0 g +0 G +[1 0 0 1 -288.685 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +288.685 698.082 Td +/F130_0 9.963 Tf +(BZ2_bzReadGetUnused) 113.578 Tj +[1 0 0 1 402.259 698.082] cm +0 g +0 G +[1 0 0 1 -402.259 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +404.875 698.082 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-262 TJm +(collect) 26.5614 Tj +-263 TJm +(the) 12.1748 Tj +-262 TJm +(unused) 28.2252 Tj +-263 TJm +(data) 16.5984 Tj +-262 TJm +(\(cop) 17.7043 Tj +10 TJm +(y) 4.9815 Tj +-263 TJm +(it) 5.53943 Tj +72 686.127 Td +(into) 15.5024 Tj +-265 TJm +(your) 18.2622 Tj +-265 TJm +(o) 4.9815 Tj +25 TJm +(wn) 12.1748 Tj +-265 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-265 TJm +(some) 21.0319 Tj +25 TJm +(where\).) 30.148 Tj +-710 TJm +(That) 18.2622 Tj +-265 TJm +(data) 16.5984 Tj +-265 TJm +(forms) 23.2437 Tj +-265 TJm +(the) 12.1748 Tj +-265 TJm +(start) 17.1563 Tj +-265 TJm +(of) 8.29918 Tj +-265 TJm +(the) 12.1748 Tj +-265 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-265 TJm +(compressed) 47.0353 Tj +-265 TJm +(stream.) 29.0521 Tj +-710 TJm +(T) 6.08739 Tj +80 TJm +(o) 4.9815 Tj +-265 TJm +(start) 17.1563 Tj +-265 TJm +(uncompressing) 60.326 Tj +72 674.172 Td +(that) 14.9445 Tj +-246 TJm +(ne) 9.40507 Tj +15 TJm +(xt) 7.75121 Tj +-246 TJm +(stream,) 29.0521 Tj +-247 TJm +(call) 14.3866 Tj +[1 0 0 1 157.205 674.172] cm +0 g +0 G +[1 0 0 1 -157.205 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +157.205 674.172 Td +/F130_0 9.963 Tf +(BZ2_bzReadOpen) 83.6892 Tj +[1 0 0 1 240.891 674.172] cm +0 g +0 G +[1 0 0 1 -240.891 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +243.344 674.172 Td +/F128_0 9.963 Tf +(ag) 9.40507 Tj +5 TJm +(ain,) 14.6655 Tj +-247 TJm +(feeding) 29.879 Tj +-246 TJm +(in) 7.75121 Tj +-246 TJm +(the) 12.1748 Tj +-246 TJm +(unused) 28.2252 Tj +-246 TJm +(data) 16.5984 Tj +-246 TJm +(via) 12.1748 Tj +-247 TJm +(the) 12.1748 Tj +[1 0 0 1 405.967 674.172] cm +0 g +0 G +[1 0 0 1 -405.967 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +405.967 674.172 Td +/F130_0 9.963 Tf +(unused) 35.8668 Tj +[1 0 0 1 441.833 674.172] cm +0 g +0 G +[1 0 0 1 -441.833 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +444.286 674.172 Td +/F128_0 9.963 Tf +(/) 2.76971 Tj +[1 0 0 1 449.508 674.172] cm +0 g +0 G +[1 0 0 1 -449.508 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +449.508 674.172 Td +/F130_0 9.963 Tf +(nUnused) 41.8446 Tj +[1 0 0 1 491.351 674.172] cm +0 g +0 G +[1 0 0 1 -491.351 -674.172] cm +[1 0 0 1 0 0] Tm +0 0 Td +493.804 674.172 Td +/F128_0 9.963 Tf +(parameters.) 46.1984 Tj +72 662.217 Td +(K) 7.19329 Tj +25 TJm +(eep) 13.8286 Tj +-263 TJm +(doing) 22.6957 Tj +-263 TJm +(this) 14.3965 Tj +-263 TJm +(until) 18.2721 Tj +[1 0 0 1 158.622 662.217] cm +0 g +0 G +[1 0 0 1 -158.622 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +158.622 662.217 Td +/F130_0 9.963 Tf +(BZ_STREAM_END) 77.7114 Tj +[1 0 0 1 236.33 662.217] cm +0 g +0 G +[1 0 0 1 -236.33 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +238.952 662.217 Td +/F128_0 9.963 Tf +(return) 23.7916 Tj +-263 TJm +(coincides) 37.6303 Tj +-263 TJm +(with) 17.7142 Tj +-263 TJm +(the) 12.1748 Tj +-263 TJm +(ph) 9.963 Tj +5 TJm +(ysical) 23.2437 Tj +-263 TJm +(end) 14.3866 Tj +-263 TJm +(of) 8.29918 Tj +-264 TJm +(\002le) 12.7327 Tj +-263 TJm +(\() 3.31768 Tj +[1 0 0 1 423.125 662.217] cm +0 g +0 G +[1 0 0 1 -423.125 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +423.125 662.217 Td +/F130_0 9.963 Tf +(feof\(f\)) 41.8446 Tj +[1 0 0 1 464.968 662.217] cm +0 g +0 G +[1 0 0 1 -464.968 -662.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +464.968 662.217 Td +/F128_0 9.963 Tf +(\).) 5.80843 Tj +-699 TJm +(In) 8.29918 Tj +-263 TJm +(this) 14.3965 Tj +-263 TJm +(situation) 34.3225 Tj +[1 0 0 1 72 650.262] cm +0 g +0 G +[1 0 0 1 -72 -650.262] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 650.262 Td +/F130_0 9.963 Tf +(BZ2_bzReadGetUnused) 113.578 Tj +[1 0 0 1 185.574 650.262] cm +0 g +0 G +[1 0 0 1 -185.574 -650.262] cm +[1 0 0 1 0 0] Tm +0 0 Td +188.065 650.262 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(course) 26.0034 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(no) 9.963 Tj +-250 TJm +(data) 16.5984 Tj +1 TJm +(.) 2.49075 Tj +[1 0 0 1 72 649.096] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -639.133] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 628.344 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-240 TJm +(should) 26.5713 Tj +-241 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-240 TJm +(some) 21.0319 Tj +-240 TJm +(feel) 14.9345 Tj +-241 TJm +(for) 11.6169 Tj +-240 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-240 TJm +(the) 12.1748 Tj +-241 TJm +(high-le) 28.2252 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-240 TJm +(interf) 21.5799 Tj +10 TJm +(ace) 13.2707 Tj +-240 TJm +(can) 13.8286 Tj +-241 TJm +(be) 9.40507 Tj +-240 TJm +(used.) 20.7529 Tj +-614 TJm +(If) 6.63536 Tj +-240 TJm +(you) 14.9445 Tj +-240 TJm +(require) 28.2152 Tj +-241 TJm +(e) 4.42357 Tj +15 TJm +(xtra) 15.4925 Tj +-240 TJm +(\003e) 9.963 Tj +15 TJm +(xibility) 28.7931 Tj +65 TJm +(,) 2.49075 Tj +-242 TJm +(you') 18.2622 Tj +10 TJm +(ll) 5.53943 Tj +-241 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-240 TJm +(to) 7.75121 Tj +72 616.389 Td +(bite) 14.9445 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ullet) 17.7142 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(get) 12.1748 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(grip) 16.0504 Tj +1 TJm +(s) 3.87561 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(lo) 7.75121 Tj +25 TJm +(w-le) 17.7043 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(interf) 21.5799 Tj +10 TJm +(ace.) 15.7615 Tj +[1 0 0 1 72 614.232] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -604.269] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 585.767 Td +/F121_0 17.215 Tf +(3.4.9.) 43.0719 Tj +-278 TJm +(Standar) 64.0914 Tj +20 TJm +(d) 10.5184 Tj +-278 TJm +(\002le-reading/writing) 154.005 Tj +-278 TJm +(code) 40.1798 Tj +[1 0 0 1 72 581.937] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -571.974] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 563.85 Td +/F128_0 9.963 Tf +(Here') 22.6758 Tj +55 TJm +(s) 3.87561 Tj +-250 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(you') 18.2622 Tj +50 TJm +(d) 4.9815 Tj +-250 TJm +(write) 20.474 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(to) 7.75121 Tj +-249 TJm +(a) 4.42357 Tj +-250 TJm +(compressed) 47.0353 Tj +-250 TJm +(\002le:) 15.5024 Tj +[1 0 0 1 72 561.693] cm +0 g +0 G +[1 0 0 1 0 -371.607] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 370.61 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 367.023] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -552.328] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 552.328 Td +/F130_0 9.963 Tf +(FILE*) 29.889 Tj +-1278 TJm +(f;) 11.9556 Tj +90 540.373 Td +(BZFILE*) 41.8446 Tj +-426 TJm +(b;) 11.9556 Tj +90 528.418 Td +(int) 17.9334 Tj +-2130 TJm +(nBuf;) 29.889 Tj +90 516.462 Td +(char) 23.9112 Tj +-1704 TJm +(buf[) 23.9112 Tj +-426 TJm +(/*) 11.9556 Tj +-426 TJm +(whatever) 47.8224 Tj +-425 TJm +(size) 23.9112 Tj +-426 TJm +(you) 17.9334 Tj +-426 TJm +(like) 23.9112 Tj +-426 TJm +(*/) 11.9556 Tj +-426 TJm +(];) 11.9556 Tj +90 504.507 Td +(int) 17.9334 Tj +-2130 TJm +(bzerror;) 47.8224 Tj +90 492.552 Td +(int) 17.9334 Tj +-2130 TJm +(nWritten;) 53.8002 Tj +90 468.642 Td +(f) 5.9778 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(fopen) 29.889 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +("myfile.bz2") 71.7336 Tj +1 TJm +(,) 5.9778 Tj +-426 TJm +("w") 17.9334 Tj +-426 TJm +(\);) 11.9556 Tj +90 456.687 Td +(if) 11.9556 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(!f) 11.9556 Tj +-426 TJm +(\)) 5.9778 Tj +-426 TJm +({) 5.9778 Tj +94.244 444.731 Td +(/*) 11.9556 Tj +-426 TJm +(handle) 35.8668 Tj +-426 TJm +(error) 29.889 Tj +-426 TJm +(*/) 11.9556 Tj +90 432.776 Td +(}) 5.9778 Tj +90 420.821 Td +(b) 5.9778 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ2_bzWriteOpen\() 95.6448 Tj +-426 TJm +(&bze) 23.9112 Tj +1 TJm +(rror,) 29.889 Tj +-426 TJm +(f,) 11.9556 Tj +-426 TJm +(9) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +90 408.866 Td +(if) 11.9556 Tj +-426 TJm +(\(bzerror) 47.8224 Tj +-426 TJm +(!=) 11.9556 Tj +-426 TJm +(BZ_OK\)) 35.8668 Tj +-426 TJm +({) 5.9778 Tj +94.244 396.911 Td +(BZ2_bzWriteClose) 95.6448 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +94.244 384.955 Td +(/*) 11.9556 Tj +-426 TJm +(handle) 35.8668 Tj +-426 TJm +(error) 29.889 Tj +-426 TJm +(*/) 11.9556 Tj +90 373 Td +(}) 5.9778 Tj +90 349.09 Td +(while) 29.889 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(/*) 11.9556 Tj +-426 TJm +(condition) 53.8002 Tj +-426 TJm +(*/) 11.9556 Tj +-425 TJm +(\)) 5.9778 Tj +-426 TJm +({) 5.9778 Tj +94.244 337.135 Td +(/*) 11.9556 Tj +-426 TJm +(get) 17.9334 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(to) 11.9556 Tj +-426 TJm +(write) 29.889 Tj +-426 TJm +(int) 17.9334 Tj +1 TJm +(o) 5.9778 Tj +-426 TJm +(buf,) 23.9112 Tj +-426 TJm +(and) 17.9334 Tj +-426 TJm +(set) 17.9334 Tj +-426 TJm +(nBuf) 23.9112 Tj +-426 TJm +(appropriately) 77.7114 Tj +-426 TJm +(*/) 11.9556 Tj +94.244 325.18 Td +(nWritten) 47.8224 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ2_bzWrite) 65.7558 Tj +-426 TJm +(\() 5.9778 Tj +-425 TJm +(&bzerror,) 53.8002 Tj +-426 TJm +(b,) 11.9556 Tj +-426 TJm +(buf,) 23.9112 Tj +-426 TJm +(nBuf) 23.9112 Tj +-426 TJm +(\);) 11.9556 Tj +94.244 313.224 Td +(if) 11.9556 Tj +-426 TJm +(\(bzerror) 47.8224 Tj +-426 TJm +(==) 11.9556 Tj +-426 TJm +(BZ_IO_ERRO) 59.778 Tj +1 TJm +(R\)) 11.9556 Tj +-426 TJm +({) 5.9778 Tj +102.732 301.269 Td +(BZ2_bzWriteClose) 95.6448 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(&bzerr) 35.8668 Tj +1 TJm +(or,) 17.9334 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +102.732 289.314 Td +(/*) 11.9556 Tj +-426 TJm +(handle) 35.8668 Tj +-426 TJm +(error) 29.889 Tj +-426 TJm +(*/) 11.9556 Tj +94.244 277.359 Td +(}) 5.9778 Tj +90 265.404 Td +(}) 5.9778 Tj +90 241.493 Td +(BZ2_bzWriteClose\() 101.623 Tj +-426 TJm +(&bzerro) 41.8446 Tj +1 TJm +(r,) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +90 229.538 Td +(if) 11.9556 Tj +-426 TJm +(\(bzerror) 47.8224 Tj +-426 TJm +(==) 11.9556 Tj +-426 TJm +(BZ_IO_ERRO) 59.778 Tj +1 TJm +(R\)) 11.9556 Tj +-426 TJm +({) 5.9778 Tj +94.244 217.583 Td +(/*) 11.9556 Tj +-426 TJm +(handle) 35.8668 Tj +-426 TJm +(error) 29.889 Tj +-426 TJm +(*/) 11.9556 Tj +90 205.628 Td +(}) 5.9778 Tj +[1 0 0 1 72 190.086] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -180.124] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 168.168 Td +/F128_0 9.963 Tf +(And) 17.1563 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(read) 17.1463 Tj +-250 TJm +(from) 19.3681 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(compresse) 42.0538 Tj +1 TJm +(d) 4.9815 Tj +-250 TJm +(\002le:) 15.5024 Tj +[1 0 0 1 72 166.012] cm +0 g +0 G +[1 0 0 1 0 -115.16] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(25) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 29 29 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -392.164] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 370.61 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 367.024] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(FILE*) 29.889 Tj +-1278 TJm +(f;) 11.9556 Tj +90 699.676 Td +(BZFILE*) 41.8446 Tj +-426 TJm +(b;) 11.9556 Tj +90 687.721 Td +(int) 17.9334 Tj +-2130 TJm +(nBuf;) 29.889 Tj +90 675.766 Td +(char) 23.9112 Tj +-1704 TJm +(buf[) 23.9112 Tj +-426 TJm +(/*) 11.9556 Tj +-426 TJm +(whatever) 47.8224 Tj +-425 TJm +(size) 23.9112 Tj +-426 TJm +(you) 17.9334 Tj +-426 TJm +(like) 23.9112 Tj +-426 TJm +(*/) 11.9556 Tj +-426 TJm +(];) 11.9556 Tj +90 663.811 Td +(int) 17.9334 Tj +-2130 TJm +(bzerror;) 47.8224 Tj +90 651.856 Td +(int) 17.9334 Tj +-2130 TJm +(nWritten;) 53.8002 Tj +90 627.945 Td +(f) 5.9778 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(fopen) 29.889 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +("myfile.bz2") 71.7336 Tj +1 TJm +(,) 5.9778 Tj +-426 TJm +("r") 17.9334 Tj +-426 TJm +(\);) 11.9556 Tj +90 615.99 Td +(if) 11.9556 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(!f) 11.9556 Tj +-426 TJm +(\)) 5.9778 Tj +-426 TJm +({) 5.9778 Tj +98.488 604.035 Td +(/*) 11.9556 Tj +-426 TJm +(handle) 35.8668 Tj +-426 TJm +(error) 29.889 Tj +-426 TJm +(*/) 11.9556 Tj +90 592.08 Td +(}) 5.9778 Tj +90 580.125 Td +(b) 5.9778 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ2_bzReadOpen) 83.6892 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(&bz) 17.9334 Tj +1 TJm +(error,) 35.8668 Tj +-426 TJm +(f,) 11.9556 Tj +-426 TJm +(0,) 11.9556 Tj +-426 TJm +(NULL,) 29.889 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +90 568.169 Td +(if) 11.9556 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(!=) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +-426 TJm +(\)) 5.9778 Tj +-425 TJm +({) 5.9778 Tj +98.488 556.214 Td +(BZ2_bzReadClose) 89.667 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(&bzerro) 41.8446 Tj +1 TJm +(r,) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +98.488 544.259 Td +(/*) 11.9556 Tj +-426 TJm +(handle) 35.8668 Tj +-426 TJm +(error) 29.889 Tj +-426 TJm +(*/) 11.9556 Tj +90 532.304 Td +(}) 5.9778 Tj +90 508.393 Td +(bzerror) 41.8446 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ_OK;) 35.8668 Tj +90 496.438 Td +(while) 29.889 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(==) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +-425 TJm +(&&) 11.9556 Tj +-426 TJm +(/*) 11.9556 Tj +-426 TJm +(arbitrary) 53.8002 Tj +-426 TJm +(other) 29.889 Tj +-426 TJm +(conditions) 59.778 Tj +-426 TJm +(*/\)) 17.9334 Tj +-426 TJm +({) 5.9778 Tj +98.488 484.483 Td +(nBuf) 23.9112 Tj +-426 TJm +(=) 5.9778 Tj +-426 TJm +(BZ2_bzRead) 59.778 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(&bze) 23.9112 Tj +1 TJm +(rror,) 29.889 Tj +-426 TJm +(b,) 11.9556 Tj +-426 TJm +(buf,) 23.9112 Tj +-426 TJm +(/*) 11.9556 Tj +-426 TJm +(size) 23.9112 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(buf) 17.9334 Tj +-426 TJm +(*/) 11.9556 Tj +-426 TJm +(\);) 11.9556 Tj +98.488 472.528 Td +(if) 11.9556 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(==) 11.9556 Tj +-426 TJm +(BZ_OK) 29.889 Tj +-426 TJm +(\)) 5.9778 Tj +-425 TJm +({) 5.9778 Tj +106.976 460.573 Td +(/*) 11.9556 Tj +-426 TJm +(do) 11.9556 Tj +-426 TJm +(something) 53.8002 Tj +-426 TJm +(with) 23.9112 Tj +-426 TJm +(buf) 17.9334 Tj +1 TJm +([0) 11.9556 Tj +-426 TJm +(..) 11.9556 Tj +-426 TJm +(nBuf-1]) 41.8446 Tj +-426 TJm +(*/) 11.9556 Tj +98.488 448.618 Td +(}) 5.9778 Tj +90 436.662 Td +(}) 5.9778 Tj +90 424.707 Td +(if) 11.9556 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(bzerror) 41.8446 Tj +-426 TJm +(!=) 11.9556 Tj +-426 TJm +(BZ_STREAM) 53.8002 Tj +1 TJm +(_END) 23.9112 Tj +-426 TJm +(\)) 5.9778 Tj +-426 TJm +({) 5.9778 Tj +102.732 412.752 Td +(BZ2_bzReadClose) 89.667 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(&bzerro) 41.8446 Tj +1 TJm +(r,) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +102.732 400.797 Td +(/*) 11.9556 Tj +-426 TJm +(handle) 35.8668 Tj +-426 TJm +(error) 29.889 Tj +-426 TJm +(*/) 11.9556 Tj +90 388.842 Td +(}) 5.9778 Tj +-426 TJm +(else) 23.9112 Tj +-426 TJm +({) 5.9778 Tj +102.732 376.887 Td +(BZ2_bzReadClose) 89.667 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(&bzerro) 41.8446 Tj +1 TJm +(r) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +90 364.931 Td +(}) 5.9778 Tj +[1 0 0 1 72 349.39] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.586] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -339.427] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 314.637 Td +/F121_0 20.659 Tf +(3.5.) 34.4592 Tj +-278 TJm +(Utility) 57.3907 Tj +-278 TJm +(functions) 92.9655 Tj +[1 0 0 1 72 310.361] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -300.398] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 284.016 Td +/F121_0 17.215 Tf +(3.5.1.) 43.0719 Tj +[1 0 0 1 119.858 284.016] cm +0 g +0 G +[1 0 0 1 -119.858 -284.016] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 284.016 Td +/F387_0 17.215 Tf +(BZ2_bzBuffToBuffCompress) 247.896 Tj +[1 0 0 1 367.76 284.016] cm +0 g +0 G +[1 0 0 1 -295.76 -2.333] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -96.638] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 95.641 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 92.055] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -272.318] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 272.318 Td +/F130_0 9.963 Tf +(int) 17.9334 Tj +-426 TJm +(BZ2_bzBuffToBuffCompr) 125.534 Tj +1 TJm +(ess\() 23.9112 Tj +-426 TJm +(char*) 29.889 Tj +-3834 TJm +(dest,) 29.889 Tj +217.319 260.363 Td +(unsigned) 47.8224 Tj +-426 TJm +(int*) 23.9112 Tj +-426 TJm +(destLen,) 47.8224 Tj +217.319 248.408 Td +(char*) 29.889 Tj +-3834 TJm +(source,) 41.8446 Tj +217.319 236.453 Td +(unsigned) 47.8224 Tj +-426 TJm +(int) 17.9334 Tj +-852 TJm +(sourceLen,) 59.778 Tj +217.319 224.498 Td +(int) 17.9334 Tj +-4686 TJm +(blockSize) 53.8002 Tj +1 TJm +(100k,) 29.889 Tj +217.319 212.542 Td +(int) 17.9334 Tj +-4686 TJm +(verbosity) 53.8002 Tj +1 TJm +(,) 5.9778 Tj +217.319 200.587 Td +(int) 17.9334 Tj +-4686 TJm +(workFacto) 53.8002 Tj +1 TJm +(r) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 185.045] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -175.083] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 163.128 Td +/F128_0 9.963 Tf +(Attempts) 36.5343 Tj +-442 TJm +(to) 7.75121 Tj +-442 TJm +(compress) 37.6303 Tj +-442 TJm +(the) 12.1748 Tj +-442 TJm +(data) 16.5984 Tj +-443 TJm +(in) 7.75121 Tj +[1 0 0 1 216.87 163.128] cm +0 g +0 G +[1 0 0 1 -216.87 -163.128] cm +[1 0 0 1 0 0] Tm +0 0 Td +216.87 163.128 Td +/F130_0 9.963 Tf +(source[0) 47.8224 Tj +-600 TJm +(..) 11.9556 Tj +-1200 TJm +(sourceLen-1]) 71.7336 Tj +[1 0 0 1 366.309 163.128] cm +0 g +0 G +[1 0 0 1 -366.309 -163.128] cm +[1 0 0 1 0 0] Tm +0 0 Td +370.715 163.128 Td +/F128_0 9.963 Tf +(into) 15.5024 Tj +-442 TJm +(the) 12.1748 Tj +-442 TJm +(destination) 43.7276 Tj +-442 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +40 TJm +(,) 2.49075 Tj +[1 0 0 1 486.202 163.128] cm +0 g +0 G +[1 0 0 1 -486.202 -163.128] cm +[1 0 0 1 0 0] Tm +0 0 Td +486.202 163.128 Td +/F130_0 9.963 Tf +(dest[0) 35.8668 Tj +-600 TJm +(..) 11.9556 Tj +72 151.173 Td +(*destLen-1]) 65.7558 Tj +[1 0 0 1 137.753 151.173] cm +0 g +0 G +[1 0 0 1 -137.753 -151.173] cm +[1 0 0 1 0 0] Tm +0 0 Td +137.753 151.173 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1393 TJm +(If) 6.63536 Tj +-379 TJm +(the) 12.1748 Tj +-379 TJm +(destinat) 30.9949 Tj +1 TJm +(ion) 12.7327 Tj +-379 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-379 TJm +(is) 6.64532 Tj +-379 TJm +(big) 12.7327 Tj +-379 TJm +(enoug) 24.3496 Tj +1 TJm +(h,) 7.47225 Tj +[1 0 0 1 318.487 151.173] cm +0 g +0 G +[1 0 0 1 -318.487 -151.173] cm +[1 0 0 1 0 0] Tm +0 0 Td +318.487 151.173 Td +/F130_0 9.963 Tf +(*destLen) 47.8224 Tj +[1 0 0 1 366.307 151.173] cm +0 g +0 G +[1 0 0 1 -366.307 -151.173] cm +[1 0 0 1 0 0] Tm +0 0 Td +370.082 151.173 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-379 TJm +(set) 11.0689 Tj +-379 TJm +(t) 2.76971 Tj +1 TJm +(o) 4.9815 Tj +-379 TJm +(the) 12.1748 Tj +-379 TJm +(size) 15.4925 Tj +-379 TJm +(of) 8.29918 Tj +-379 TJm +(the) 12.1748 Tj +-378 TJm +(compressed) 47.0353 Tj +-379 TJm +(data,) 19.0891 Tj +72 139.217 Td +(and) 14.3866 Tj +[1 0 0 1 89.527 139.217] cm +0 g +0 G +[1 0 0 1 -89.527 -139.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +89.527 139.217 Td +/F130_0 9.963 Tf +(BZ_OK) 29.889 Tj +[1 0 0 1 119.415 139.217] cm +0 g +0 G +[1 0 0 1 -119.415 -139.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +122.556 139.217 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-315 TJm +(returned.) 35.6875 Tj +-1012 TJm +(If) 6.63536 Tj +-315 TJm +(the) 12.1748 Tj +-315 TJm +(compressed) 47.0353 Tj +-316 TJm +(da) 9.40507 Tj +1 TJm +(ta) 7.19329 Tj +-316 TJm +(w) 7.19329 Tj +10 TJm +(on') 13.2807 Tj +18 TJm +(t) 2.76971 Tj +-315 TJm +(\002t,) 10.7999 Tj +[1 0 0 1 313.323 139.217] cm +0 g +0 G +[1 0 0 1 -313.323 -139.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +313.323 139.217 Td +/F130_0 9.963 Tf +(*destLen) 47.8224 Tj +[1 0 0 1 361.143 139.217] cm +0 g +0 G +[1 0 0 1 -361.143 -139.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +364.285 139.217 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-315 TJm +(unchanged,) 45.6505 Tj +-332 TJm +(and) 14.3866 Tj +[1 0 0 1 440.551 139.217] cm +0 g +0 G +[1 0 0 1 -440.551 -139.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +440.551 139.217 Td +/F130_0 9.963 Tf +(BZ_OUTBUFF_FULL) 89.667 Tj +[1 0 0 1 530.214 139.217] cm +0 g +0 G +[1 0 0 1 -530.214 -139.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +533.355 139.217 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +72 127.262 Td +(returned.) 35.6875 Tj +[1 0 0 1 72 127.163] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -117.2] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 105.344 Td +/F128_0 9.963 Tf +(Compression) 52.5847 Tj +-297 TJm +(in) 7.75121 Tj +-297 TJm +(this) 14.3965 Tj +-297 TJm +(manner) 29.879 Tj +-297 TJm +(is) 6.64532 Tj +-297 TJm +(a) 4.42357 Tj +-297 TJm +(one-shot) 34.3126 Tj +-297 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ent,) 14.6655 Tj +-308 TJm +(done) 19.3681 Tj +-297 TJm +(with) 17.7142 Tj +-297 TJm +(a) 4.42357 Tj +-297 TJm +(single) 23.8016 Tj +-297 TJm +(call) 14.3866 Tj +-297 TJm +(to) 7.75121 Tj +-297 TJm +(this) 14.3965 Tj +-297 TJm +(function.) 35.6974 Tj +-902 TJm +(The) 15.4925 Tj +-297 TJm +(resulting) 34.8705 Tj +-297 TJm +(compressed) 47.0353 Tj +72 93.389 Td +(data) 16.5984 Tj +-296 TJm +(is) 6.64532 Tj +-296 TJm +(a) 4.42357 Tj +-296 TJm +(complete) 36.5244 Tj +[1 0 0 1 147.987 93.389] cm +0 g +0 G +[1 0 0 1 -147.987 -93.389] cm +[1 0 0 1 0 0] Tm +0 0 Td +147.987 93.389 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 177.875 93.389] cm +0 g +0 G +[1 0 0 1 -177.875 -93.389] cm +[1 0 0 1 0 0] Tm +0 0 Td +180.825 93.389 Td +/F128_0 9.963 Tf +(format) 26.5614 Tj +-296 TJm +(data) 16.5984 Tj +-296 TJm +(stream.) 29.0521 Tj +-896 TJm +(There) 23.2337 Tj +-296 TJm +(is) 6.64532 Tj +-296 TJm +(no) 9.963 Tj +-296 TJm +(mechanism) 45.3815 Tj +-296 TJm +(for) 11.6169 Tj +-296 TJm +(making) 29.889 Tj +-296 TJm +(additional) 39.852 Tj +-296 TJm +(calls) 18.2622 Tj +-296 TJm +(to) 7.75121 Tj +-296 TJm +(pro) 13.2807 Tj +15 TJm +(vide) 17.1563 Tj +-296 TJm +(e) 4.42357 Tj +15 TJm +(xtra) 15.4925 Tj +72 81.434 Td +(input) 20.4839 Tj +-250 TJm +(data.) 19.0891 Tj +-620 TJm +(If) 6.63536 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-250 TJm +(that) 14.9445 Tj +-250 TJm +(k) 4.9815 Tj +1 TJm +(ind) 12.7327 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(mechanism,) 47.8722 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(lo) 7.75121 Tj +25 TJm +(w-le) 17.7043 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(el) 7.19329 Tj +-250 TJm +(interf) 21.5799 Tj +10 TJm +(ace.) 15.7615 Tj +[1 0 0 1 72 79.277] cm +0 g +0 G +[1 0 0 1 0 -28.425] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(26) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 30 30 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-223 TJm +(the) 12.1748 Tj +-224 TJm +(meaning) 34.3126 Tj +-223 TJm +(of) 8.29918 Tj +-223 TJm +(parameters) 43.7077 Tj +[1 0 0 1 195.306 710.037] cm +0 g +0 G +[1 0 0 1 -195.306 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +195.306 710.037 Td +/F130_0 9.963 Tf +(blockSize100k) 77.7114 Tj +[1 0 0 1 273.015 710.037] cm +0 g +0 G +[1 0 0 1 -273.015 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +273.015 710.037 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 277.784 710.037] cm +0 g +0 G +[1 0 0 1 -277.784 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +277.784 710.037 Td +/F130_0 9.963 Tf +(verbosity) 53.8002 Tj +[1 0 0 1 331.583 710.037] cm +0 g +0 G +[1 0 0 1 -331.583 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +333.808 710.037 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 350.42 710.037] cm +0 g +0 G +[1 0 0 1 -350.42 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +350.42 710.037 Td +/F130_0 9.963 Tf +(workFactor) 59.778 Tj +[1 0 0 1 410.196 710.037] cm +0 g +0 G +[1 0 0 1 -410.196 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +410.196 710.037 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-229 TJm +(see) 12.7228 Tj +[1 0 0 1 429.913 710.037] cm +0 g +0 G +[1 0 0 1 -429.913 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +429.913 710.037 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 537.509 710.037] cm +0 g +0 G +[1 0 0 1 -537.509 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +537.509 710.037 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 707.881] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -697.918] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 688.12 Td +/F128_0 9.963 Tf +(T) 6.08739 Tj +80 TJm +(o) 4.9815 Tj +-410 TJm +(guarantee) 38.7262 Tj +-410 TJm +(that) 14.9445 Tj +-410 TJm +(the) 12.1748 Tj +-410 TJm +(compressed) 47.0353 Tj +-410 TJm +(data) 16.5984 Tj +-410 TJm +(will) 15.5024 Tj +-410 TJm +(\002) 5.53943 Tj +1 TJm +(t) 2.76971 Tj +-411 TJm +(i) 2.76971 Tj +1 TJm +(n) 4.9815 Tj +-411 TJm +(i) 2.76971 Tj +1 TJm +(ts) 6.64532 Tj +-410 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +40 TJm +(,) 2.49075 Tj +-450 TJm +(allocate) 30.9849 Tj +-410 TJm +(an) 9.40507 Tj +-410 TJm +(output) 25.4654 Tj +-410 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-410 TJm +(of) 8.29918 Tj +-410 TJm +(size) 15.4925 Tj +-410 TJm +(1%) 13.2807 Tj +-410 TJm +(lar) 10.511 Tj +18 TJm +(ger) 12.7228 Tj +-410 TJm +(than) 17.1563 Tj +-410 TJm +(the) 12.1748 Tj +72 676.164 Td +(uncompressed) 56.9983 Tj +-250 TJm +(data,) 19.0891 Tj +-250 TJm +(plus) 16.6083 Tj +-250 TJm +(six) 11.6268 Tj +-249 TJm +(hundred) 32.6488 Tj +-250 TJm +(e) 4.42357 Tj +15 TJm +(xtra) 15.4925 Tj +-250 TJm +(bytes.) 23.5226 Tj +[1 0 0 1 72 674.008] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -664.045] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 654.247 Td +/F130_0 9.963 Tf +(BZ2_bzBuffToBuffDecompress) 155.423 Tj +[1 0 0 1 227.417 654.247] cm +0 g +0 G +[1 0 0 1 -227.417 -654.247] cm +[1 0 0 1 0 0] Tm +0 0 Td +230.553 654.247 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-315 TJm +(not) 12.7327 Tj +-314 TJm +(write) 20.474 Tj +-315 TJm +(data) 16.5984 Tj +-315 TJm +(at) 7.19329 Tj +-315 TJm +(or) 8.29918 Tj +-314 TJm +(be) 9.40507 Tj +15 TJm +(yond) 19.926 Tj +[1 0 0 1 362.484 654.247] cm +0 g +0 G +[1 0 0 1 -362.484 -654.247] cm +[1 0 0 1 0 0] Tm +0 0 Td +362.484 654.247 Td +/F130_0 9.963 Tf +(dest[*destLen]) 83.6892 Tj +[1 0 0 1 446.17 654.247] cm +0 g +0 G +[1 0 0 1 -446.17 -654.247] cm +[1 0 0 1 0 0] Tm +0 0 Td +446.17 654.247 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-331 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-315 TJm +(in) 7.75121 Tj +-314 TJm +(case) 17.1463 Tj +-315 TJm +(of) 8.29918 Tj +-315 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +72 642.291 Td +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er\003o) 18.2622 Tj +25 TJm +(w) 7.19329 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 642.192] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -632.229] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 620.374 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 620.274] cm +0 g +0 G +[1 0 0 1 0 -168.369] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 167.372 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 163.786] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -610.909] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 610.909 Td +/F130_0 9.963 Tf +(BZ_CONFIG_ERROR) 89.667 Tj +98.488 598.954 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(library) 41.8446 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-425 TJm +(mis-compiled) 71.7336 Tj +90 586.999 Td +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 575.044 Td +(if) 11.9556 Tj +-426 TJm +(dest) 23.9112 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(destL) 29.889 Tj +1 TJm +(en) 11.9556 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +98.488 563.088 Td +(or) 11.9556 Tj +-426 TJm +(blockSize100k) 77.7114 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(1) 5.9778 Tj +-426 TJm +(or) 11.9556 Tj +-425 TJm +(blockSize100k) 77.7114 Tj +-426 TJm +(>) 5.9778 Tj +-426 TJm +(9) 5.9778 Tj +98.488 551.133 Td +(or) 11.9556 Tj +-426 TJm +(verbosity) 53.8002 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(verb) 23.9112 Tj +1 TJm +(osity) 29.889 Tj +-426 TJm +(>) 5.9778 Tj +-426 TJm +(4) 5.9778 Tj +98.488 539.178 Td +(or) 11.9556 Tj +-426 TJm +(workFactor) 59.778 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(wor) 17.9334 Tj +1 TJm +(kFactor) 41.8446 Tj +-426 TJm +(>) 5.9778 Tj +-426 TJm +(250) 17.9334 Tj +90 527.223 Td +(BZ_MEM_ERROR) 71.7336 Tj +98.488 515.268 Td +(if) 11.9556 Tj +-426 TJm +(insufficient) 71.7336 Tj +-426 TJm +(memory) 35.8668 Tj +-426 TJm +(is) 11.9556 Tj +-425 TJm +(available) 53.8002 Tj +90 503.313 Td +(BZ_OUTBUFF_FULL) 89.667 Tj +98.488 491.357 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(size) 23.9112 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compr) 29.889 Tj +1 TJm +(essed) 29.889 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(exceeds) 41.8446 Tj +-426 TJm +(*destLen) 47.8224 Tj +90 479.402 Td +(BZ_OK) 29.889 Tj +98.488 467.447 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 451.905] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -441.943] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 421.284 Td +/F121_0 17.215 Tf +(3.5.2.) 43.0719 Tj +[1 0 0 1 119.858 421.284] cm +0 g +0 G +[1 0 0 1 -119.858 -421.284] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.858 421.284 Td +/F387_0 17.215 Tf +(BZ2_bzBuffToBuffDecompress) 268.554 Tj +[1 0 0 1 388.419 421.284] cm +0 g +0 G +[1 0 0 1 -316.419 -2.332] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -84.683] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 83.686 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 80.099] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -409.587] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 409.587 Td +/F130_0 9.963 Tf +(int) 17.9334 Tj +-426 TJm +(BZ2_bzBuffToBuffDecom) 125.534 Tj +1 TJm +(press\() 35.8668 Tj +-426 TJm +(char*) 29.889 Tj +-3834 TJm +(dest,) 29.889 Tj +225.807 397.632 Td +(unsigned) 47.8224 Tj +-426 TJm +(int*) 23.9112 Tj +-426 TJm +(destLen,) 47.8224 Tj +225.807 385.676 Td +(char*) 29.889 Tj +-3834 TJm +(source,) 41.8446 Tj +225.807 373.721 Td +(unsigned) 47.8224 Tj +-426 TJm +(int) 17.9334 Tj +-852 TJm +(sourceLen,) 59.778 Tj +225.807 361.766 Td +(int) 17.9334 Tj +-4686 TJm +(small,) 35.8668 Tj +225.807 349.811 Td +(int) 17.9334 Tj +-4686 TJm +(verbosity) 53.8002 Tj +-425 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 334.269] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -324.307] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 312.351 Td +/F128_0 9.963 Tf +(Attempts) 36.5343 Tj +-358 TJm +(to) 7.75121 Tj +-358 TJm +(decompress) 47.0353 Tj +-359 TJm +(the) 12.1748 Tj +-358 TJm +(data) 16.5984 Tj +-358 TJm +(in) 7.75121 Tj +[1 0 0 1 221.259 312.351] cm +0 g +0 G +[1 0 0 1 -221.259 -312.351] cm +[1 0 0 1 0 0] Tm +0 0 Td +221.259 312.351 Td +/F130_0 9.963 Tf +(source[0) 47.8224 Tj +-600 TJm +(..) 11.9556 Tj +-1200 TJm +(sourceLen-1) 65.7558 Tj +1 TJm +(]) 5.9778 Tj +[1 0 0 1 370.698 312.351] cm +0 g +0 G +[1 0 0 1 -370.698 -312.351] cm +[1 0 0 1 0 0] Tm +0 0 Td +374.268 312.351 Td +/F128_0 9.963 Tf +(into) 15.5024 Tj +-358 TJm +(the) 12.1748 Tj +-359 TJm +(des) 13.2807 Tj +1 TJm +(tination) 30.4469 Tj +-359 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +40 TJm +(,) 2.49075 Tj +[1 0 0 1 486.202 312.351] cm +0 g +0 G +[1 0 0 1 -486.202 -312.351] cm +[1 0 0 1 0 0] Tm +0 0 Td +486.202 312.351 Td +/F130_0 9.963 Tf +(dest[0) 35.8668 Tj +-600 TJm +(..) 11.9556 Tj +72 300.396 Td +(*destLen-1]) 65.7558 Tj +[1 0 0 1 137.753 300.396] cm +0 g +0 G +[1 0 0 1 -137.753 -300.396] cm +[1 0 0 1 0 0] Tm +0 0 Td +137.753 300.396 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1123 TJm +(If) 6.63536 Tj +-334 TJm +(the) 12.1748 Tj +-334 TJm +(destination) 43.7276 Tj +-334 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-334 TJm +(is) 6.64532 Tj +-333 TJm +(big) 12.7327 Tj +-334 TJm +(enough,) 31.8218 Tj +[1 0 0 1 312.554 300.396] cm +0 g +0 G +[1 0 0 1 -312.554 -300.396] cm +[1 0 0 1 0 0] Tm +0 0 Td +312.554 300.396 Td +/F130_0 9.963 Tf +(*destLen) 47.8224 Tj +[1 0 0 1 360.374 300.396] cm +0 g +0 G +[1 0 0 1 -360.374 -300.396] cm +[1 0 0 1 0 0] Tm +0 0 Td +363.701 300.396 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-334 TJm +(set) 11.0689 Tj +-334 TJm +(to) 7.75121 Tj +-334 TJm +(th) 7.75121 Tj +1 TJm +(e) 4.42357 Tj +-334 TJm +(size) 15.4925 Tj +-334 TJm +(of) 8.29918 Tj +-334 TJm +(the) 12.1748 Tj +-334 TJm +(uncompressed) 56.9983 Tj +-334 TJm +(d) 4.9815 Tj +1 TJm +(ata,) 14.1076 Tj +72 288.441 Td +(and) 14.3866 Tj +[1 0 0 1 89.527 288.441] cm +0 g +0 G +[1 0 0 1 -89.527 -288.441] cm +[1 0 0 1 0 0] Tm +0 0 Td +89.527 288.441 Td +/F130_0 9.963 Tf +(BZ_OK) 29.889 Tj +[1 0 0 1 119.415 288.441] cm +0 g +0 G +[1 0 0 1 -119.415 -288.441] cm +[1 0 0 1 0 0] Tm +0 0 Td +122.556 288.441 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-315 TJm +(returned.) 35.6875 Tj +-1012 TJm +(If) 6.63536 Tj +-315 TJm +(the) 12.1748 Tj +-315 TJm +(compressed) 47.0353 Tj +-316 TJm +(da) 9.40507 Tj +1 TJm +(ta) 7.19329 Tj +-316 TJm +(w) 7.19329 Tj +10 TJm +(on') 13.2807 Tj +18 TJm +(t) 2.76971 Tj +-315 TJm +(\002t,) 10.7999 Tj +[1 0 0 1 313.323 288.441] cm +0 g +0 G +[1 0 0 1 -313.323 -288.441] cm +[1 0 0 1 0 0] Tm +0 0 Td +313.323 288.441 Td +/F130_0 9.963 Tf +(*destLen) 47.8224 Tj +[1 0 0 1 361.143 288.441] cm +0 g +0 G +[1 0 0 1 -361.143 -288.441] cm +[1 0 0 1 0 0] Tm +0 0 Td +364.285 288.441 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-315 TJm +(unchanged,) 45.6505 Tj +-332 TJm +(and) 14.3866 Tj +[1 0 0 1 440.551 288.441] cm +0 g +0 G +[1 0 0 1 -440.551 -288.441] cm +[1 0 0 1 0 0] Tm +0 0 Td +440.551 288.441 Td +/F130_0 9.963 Tf +(BZ_OUTBUFF_FULL) 89.667 Tj +[1 0 0 1 530.214 288.441] cm +0 g +0 G +[1 0 0 1 -530.214 -288.441] cm +[1 0 0 1 0 0] Tm +0 0 Td +533.355 288.441 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +72 276.486 Td +(returned.) 35.6875 Tj +[1 0 0 1 72 276.386] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -266.424] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 254.568 Td +/F130_0 9.963 Tf +(source) 35.8668 Tj +[1 0 0 1 107.865 254.568] cm +0 g +0 G +[1 0 0 1 -107.865 -254.568] cm +[1 0 0 1 0 0] Tm +0 0 Td +110.981 254.568 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-313 TJm +(assumed) 34.3126 Tj +-312 TJm +(to) 7.75121 Tj +-313 TJm +(hold) 17.7142 Tj +-313 TJm +(a) 4.42357 Tj +-312 TJm +(complete) 36.5244 Tj +[1 0 0 1 237.04 254.568] cm +0 g +0 G +[1 0 0 1 -237.04 -254.568] cm +[1 0 0 1 0 0] Tm +0 0 Td +237.04 254.568 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 266.928 254.568] cm +0 g +0 G +[1 0 0 1 -266.928 -254.568] cm +[1 0 0 1 0 0] Tm +0 0 Td +270.044 254.568 Td +/F128_0 9.963 Tf +(format) 26.5614 Tj +-313 TJm +(dat) 12.1748 Tj +1 TJm +(a) 4.42357 Tj +-313 TJm +(stream.) 29.0521 Tj +[1 0 0 1 353.446 254.568] cm +0 g +0 G +[1 0 0 1 -353.446 -254.568] cm +[1 0 0 1 0 0] Tm +0 0 Td +353.446 254.568 Td +/F130_0 9.963 Tf +(BZ2_bzBuffToBuffDecompres) 149.445 Tj +1 TJm +(s) 5.9778 Tj +[1 0 0 1 508.863 254.568] cm +0 g +0 G +[1 0 0 1 -508.863 -254.568] cm +[1 0 0 1 0 0] Tm +0 0 Td +511.979 254.568 Td +/F128_0 9.963 Tf +(tries) 17.1563 Tj +-313 TJm +(to) 7.75121 Tj +72 242.613 Td +(decompress) 47.0353 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(entirety) 30.437 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-250 TJm +(stream) 26.5614 Tj +-250 TJm +(into) 15.5024 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(output) 25.4654 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +55 TJm +(.) 2.49075 Tj +[1 0 0 1 72 240.456] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -230.493] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 220.695 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(meaning) 34.3126 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(parameter) 39.8321 Tj +1 TJm +(s) 3.87561 Tj +[1 0 0 1 196.631 220.695] cm +0 g +0 G +[1 0 0 1 -196.631 -220.695] cm +[1 0 0 1 0 0] Tm +0 0 Td +196.631 220.695 Td +/F130_0 9.963 Tf +(small) 29.889 Tj +[1 0 0 1 226.519 220.695] cm +0 g +0 G +[1 0 0 1 -226.519 -220.695] cm +[1 0 0 1 0 0] Tm +0 0 Td +229.01 220.695 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 245.887 220.695] cm +0 g +0 G +[1 0 0 1 -245.887 -220.695] cm +[1 0 0 1 0 0] Tm +0 0 Td +245.887 220.695 Td +/F130_0 9.963 Tf +(verbosity) 53.8002 Tj +[1 0 0 1 299.685 220.695] cm +0 g +0 G +[1 0 0 1 -299.685 -220.695] cm +[1 0 0 1 0 0] Tm +0 0 Td +299.685 220.695 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(see) 12.7228 Tj +[1 0 0 1 319.879 220.695] cm +0 g +0 G +[1 0 0 1 -319.879 -220.695] cm +[1 0 0 1 0 0] Tm +0 0 Td +319.879 220.695 Td +/F130_0 9.963 Tf +(BZ2_bzDecompressInit) 119.556 Tj +[1 0 0 1 439.431 220.695] cm +0 g +0 G +[1 0 0 1 -439.431 -220.695] cm +[1 0 0 1 0 0] Tm +0 0 Td +439.431 220.695 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 218.538] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -208.576] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 198.777 Td +/F128_0 9.963 Tf +(Because) 33.1967 Tj +-249 TJm +(the) 12.1748 Tj +-250 TJm +(compression) 50.363 Tj +-249 TJm +(ratio) 18.2622 Tj +-250 TJm +(of) 8.29918 Tj +-249 TJm +(the) 12.1748 Tj +-250 TJm +(compressed) 47.0353 Tj +-249 TJm +(data) 16.5984 Tj +-250 TJm +(canno) 23.7916 Tj +1 TJm +(t) 2.76971 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(kno) 14.9445 Tj +25 TJm +(w) 7.19329 Tj +1 TJm +(n) 4.9815 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(adv) 14.3866 Tj +25 TJm +(a) 4.42357 Tj +1 TJm +(nce,) 16.3194 Tj +-250 TJm +(there) 19.916 Tj +-250 TJm +(is) 6.64532 Tj +-249 TJm +(no) 9.963 Tj +-250 TJm +(easy) 17.7043 Tj +-249 TJm +(w) 7.19329 Tj +10 TJm +(ay) 9.40507 Tj +-250 TJm +(to) 7.75121 Tj +-249 TJm +(guarantee) 38.7262 Tj +72 186.822 Td +(that) 14.9445 Tj +-286 TJm +(the) 12.1748 Tj +-287 TJm +(output) 25.4654 Tj +-286 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +-286 TJm +(will) 15.5024 Tj +-287 TJm +(be) 9.40507 Tj +-286 TJm +(big) 12.7327 Tj +-286 TJm +(enough.) 31.8218 Tj +-839 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-286 TJm +(may) 17.1563 Tj +-286 TJm +(of) 8.29918 Tj +-287 TJm +(course) 26.0034 Tj +-286 TJm +(mak) 17.1563 Tj +10 TJm +(e) 4.42357 Tj +-286 TJm +(arrangements) 53.6707 Tj +-287 TJm +(in) 7.75121 Tj +-286 TJm +(your) 18.2622 Tj +-286 TJm +(code) 18.8101 Tj +-287 TJm +(to) 7.75121 Tj +-286 TJm +(record) 25.4455 Tj +-286 TJm +(the) 12.1748 Tj +-287 TJm +(size) 15.4925 Tj +-286 TJm +(of) 8.29918 Tj +72 174.867 Td +(the) 12.1748 Tj +-250 TJm +(uncompressed) 56.9983 Tj +-250 TJm +(data,) 19.0891 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(su) 8.85711 Tj +1 TJm +(ch) 9.40507 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(mechanism) 45.3815 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(be) 9.40507 Tj +15 TJm +(yond) 19.926 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(scope) 22.6858 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(this) 14.3965 Tj +-250 TJm +(library) 26.5614 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 172.71] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -162.747] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 152.949 Td +/F130_0 9.963 Tf +(BZ2_bzBuffToBuffDecompress) 155.423 Tj +[1 0 0 1 227.417 152.949] cm +0 g +0 G +[1 0 0 1 -227.417 -152.949] cm +[1 0 0 1 0 0] Tm +0 0 Td +230.553 152.949 Td +/F128_0 9.963 Tf +(will) 15.5024 Tj +-315 TJm +(not) 12.7327 Tj +-314 TJm +(write) 20.474 Tj +-315 TJm +(data) 16.5984 Tj +-315 TJm +(at) 7.19329 Tj +-315 TJm +(or) 8.29918 Tj +-314 TJm +(be) 9.40507 Tj +15 TJm +(yond) 19.926 Tj +[1 0 0 1 362.484 152.949] cm +0 g +0 G +[1 0 0 1 -362.484 -152.949] cm +[1 0 0 1 0 0] Tm +0 0 Td +362.484 152.949 Td +/F130_0 9.963 Tf +(dest[*destLen]) 83.6892 Tj +[1 0 0 1 446.17 152.949] cm +0 g +0 G +[1 0 0 1 -446.17 -152.949] cm +[1 0 0 1 0 0] Tm +0 0 Td +446.17 152.949 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-331 TJm +(e) 4.42357 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(en) 9.40507 Tj +-315 TJm +(in) 7.75121 Tj +-314 TJm +(case) 17.1463 Tj +-315 TJm +(of) 8.29918 Tj +-315 TJm +(b) 4.9815 Tj +20 TJm +(uf) 8.29918 Tj +25 TJm +(fer) 11.0589 Tj +72 140.994 Td +(o) 4.9815 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(er\003o) 18.2622 Tj +25 TJm +(w) 7.19329 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 140.894] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -130.932] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 119.076 Td +/F128_0 9.963 Tf +(Possible) 33.2166 Tj +-250 TJm +(return) 23.7916 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues:) 23.2437 Tj +[1 0 0 1 72 118.977] cm +0 g +0 G +[1 0 0 1 0 -68.125] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(27) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 31 31 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 4.384 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -352.044 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +436.124 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip) 27.6772 Tj +1 TJm +(2) 4.9815 Tj +[1 0 0 1 267.964 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -15.037 0] cm +0 g +0 G +[1 0 0 1 -468 -248.702] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 227.148 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 223.562] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -711.631] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 711.631 Td +/F130_0 9.963 Tf +(BZ_CONFIG_ERROR) 89.667 Tj +98.488 699.676 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(library) 41.8446 Tj +-426 TJm +(has) 17.9334 Tj +-426 TJm +(been) 23.9112 Tj +-425 TJm +(mis-compiled) 71.7336 Tj +90 687.721 Td +(BZ_PARAM_ERROR) 83.6892 Tj +98.488 675.766 Td +(if) 11.9556 Tj +-426 TJm +(dest) 23.9112 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(destL) 29.889 Tj +1 TJm +(en) 11.9556 Tj +-426 TJm +(is) 11.9556 Tj +-426 TJm +(NULL) 23.9112 Tj +98.488 663.811 Td +(or) 11.9556 Tj +-426 TJm +(small) 29.889 Tj +-426 TJm +(!=) 11.9556 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(&&) 11.9556 Tj +-426 TJm +(small) 29.889 Tj +-426 TJm +(!) 5.9778 Tj +1 TJm +(=) 5.9778 Tj +-426 TJm +(1) 5.9778 Tj +98.488 651.856 Td +(or) 11.9556 Tj +-426 TJm +(verbosity) 53.8002 Tj +-426 TJm +(<) 5.9778 Tj +-426 TJm +(0) 5.9778 Tj +-426 TJm +(or) 11.9556 Tj +-426 TJm +(verb) 23.9112 Tj +1 TJm +(osity) 29.889 Tj +-426 TJm +(>) 5.9778 Tj +-426 TJm +(4) 5.9778 Tj +90 639.9 Td +(BZ_MEM_ERROR) 71.7336 Tj +98.488 627.945 Td +(if) 11.9556 Tj +-426 TJm +(insufficient) 71.7336 Tj +-426 TJm +(memory) 35.8668 Tj +-426 TJm +(is) 11.9556 Tj +-425 TJm +(available) 53.8002 Tj +90 615.99 Td +(BZ_OUTBUFF_FULL) 89.667 Tj +98.488 604.035 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(size) 23.9112 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compr) 29.889 Tj +1 TJm +(essed) 29.889 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(exceeds) 41.8446 Tj +-426 TJm +(*destLen) 47.8224 Tj +90 592.08 Td +(BZ_DATA_ERROR) 77.7114 Tj +98.488 580.124 Td +(if) 11.9556 Tj +-426 TJm +(a) 5.9778 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(integrity) 53.8002 Tj +-426 TJm +(erro) 23.9112 Tj +1 TJm +(r) 5.9778 Tj +-426 TJm +(was) 17.9334 Tj +-426 TJm +(detected) 47.8224 Tj +-426 TJm +(in) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +-426 TJm +(data) 23.9112 Tj +90 568.169 Td +(BZ_DATA_ERROR_MAGIC) 113.578 Tj +98.488 556.214 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(d) 5.9778 Tj +1 TJm +(oesn't) 35.8668 Tj +-426 TJm +(begin) 29.889 Tj +-426 TJm +(with) 23.9112 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(right) 29.889 Tj +-426 TJm +(magic) 29.889 Tj +-426 TJm +(bytes) 29.889 Tj +90 544.259 Td +(BZ_UNEXPECTED_EOF) 101.623 Tj +98.488 532.304 Td +(if) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(compressed) 59.778 Tj +-426 TJm +(data) 23.9112 Tj +-426 TJm +(e) 5.9778 Tj +1 TJm +(nds) 17.9334 Tj +-426 TJm +(unexpectedly) 71.7336 Tj +90 520.349 Td +(BZ_OK) 29.889 Tj +98.488 508.393 Td +(otherwise) 53.8002 Tj +[1 0 0 1 72 492.852] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.586] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -482.889] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 458.099 Td +/F121_0 20.659 Tf +(3.6.) 34.4592 Tj +[1 0 0 1 112.201 458.099] cm +0 g +0 G +[1 0 0 1 -112.201 -458.099] cm +[1 0 0 1 0 0] Tm +0 0 Td +112.201 458.099 Td +/F387_0 20.659 Tf +(zlib) 49.5816 Tj +[1 0 0 1 161.781 458.099] cm +0 g +0 G +[1 0 0 1 -161.781 -458.099] cm +[1 0 0 1 0 0] Tm +0 0 Td +167.524 458.099 Td +/F121_0 20.659 Tf +(compatibility) 127.425 Tj +-278 TJm +(functions) 92.9655 Tj +[1 0 0 1 72 453.823] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -443.86] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 436.181 Td +/F128_0 9.963 Tf +(Y) 7.19329 Tj +110 TJm +(oshioka) 30.9949 Tj +-604 TJm +(Tsuneo) 29.3311 Tj +-604 TJm +(has) 13.2807 Tj +-604 TJm +(contrib) 28.2252 Tj +20 TJm +(uted) 17.1563 Tj +-604 TJm +(some) 21.0319 Tj +-604 TJm +(funct) 20.474 Tj +1 TJm +(ions) 16.6083 Tj +-604 TJm +(to) 7.75121 Tj +-604 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-604 TJm +(better) 22.6858 Tj +[1 0 0 1 356.347 436.181] cm +0 g +0 G +[1 0 0 1 -356.347 -436.181] cm +[1 0 0 1 0 0] Tm +0 0 Td +356.347 436.181 Td +/F130_0 9.963 Tf +(zlib) 23.9112 Tj +[1 0 0 1 380.257 436.181] cm +0 g +0 G +[1 0 0 1 -380.257 -436.181] cm +[1 0 0 1 0 0] Tm +0 0 Td +386.275 436.181 Td +/F128_0 9.963 Tf +(compatibility) 53.1426 Tj +65 TJm +(.) 2.49075 Tj +-1372 TJm +(These) 23.7916 Tj +-604 TJm +(functions) 37.0823 Tj +-604 TJm +(are) 12.1648 Tj +[1 0 0 1 72 424.226] cm +0 g +0 G +[1 0 0 1 -72 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 424.226 Td +/F130_0 9.963 Tf +(BZ2_bzopen) 59.778 Tj +[1 0 0 1 131.776 424.226] cm +0 g +0 G +[1 0 0 1 -131.776 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +131.776 424.226 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 144.283 424.226] cm +0 g +0 G +[1 0 0 1 -144.283 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +144.283 424.226 Td +/F130_0 9.963 Tf +(BZ2_bzread) 59.778 Tj +[1 0 0 1 204.059 424.226] cm +0 g +0 G +[1 0 0 1 -204.059 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +204.059 424.226 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 216.567 424.226] cm +0 g +0 G +[1 0 0 1 -216.567 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +216.567 424.226 Td +/F130_0 9.963 Tf +(BZ2_bzwrite) 65.7558 Tj +[1 0 0 1 282.32 424.226] cm +0 g +0 G +[1 0 0 1 -282.32 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +282.32 424.226 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 294.827 424.226] cm +0 g +0 G +[1 0 0 1 -294.827 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +294.827 424.226 Td +/F130_0 9.963 Tf +(BZ2_bzflush) 65.7558 Tj +[1 0 0 1 360.581 424.226] cm +0 g +0 G +[1 0 0 1 -360.581 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +360.581 424.226 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 373.088 424.226] cm +0 g +0 G +[1 0 0 1 -373.088 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +373.088 424.226 Td +/F130_0 9.963 Tf +(BZ2_bzclose) 65.7558 Tj +[1 0 0 1 438.842 424.226] cm +0 g +0 G +[1 0 0 1 -438.842 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +438.842 424.226 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 451.349 424.226] cm +0 g +0 G +[1 0 0 1 -451.349 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +451.349 424.226 Td +/F130_0 9.963 Tf +(BZ2_bzerror) 65.7558 Tj +[1 0 0 1 517.102 424.226] cm +0 g +0 G +[1 0 0 1 -517.102 -424.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +525.614 424.226 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 72 412.271] cm +0 g +0 G +[1 0 0 1 -72 -412.271] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 412.271 Td +/F130_0 9.963 Tf +(BZ2_bzlibVersion) 95.6448 Tj +[1 0 0 1 167.641 412.271] cm +0 g +0 G +[1 0 0 1 -167.641 -412.271] cm +[1 0 0 1 0 0] Tm +0 0 Td +167.641 412.271 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1419 TJm +(These) 23.7916 Tj +-384 TJm +(functi) 23.2437 Tj +1 TJm +(ons) 13.8386 Tj +-384 TJm +(are) 12.1648 Tj +-383 TJm +(not) 12.7327 Tj +-383 TJm +(\(yet\)) 18.8101 Tj +-383 TJm +(of) 8.29918 Tj +25 TJm +(\002cially) 27.6772 Tj +-383 TJm +(part) 15.4925 Tj +-383 TJm +(of) 8.29918 Tj +-384 TJm +(the) 12.1748 Tj +-383 TJm +(library) 26.5614 Tj +65 TJm +(.) 2.49075 Tj +-1419 TJm +(If) 6.63536 Tj +-383 TJm +(the) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-383 TJm +(break,) 24.6186 Tj +-417 TJm +(you) 14.9445 Tj +-383 TJm +(get) 12.1748 Tj +-383 TJm +(to) 7.75121 Tj +72 400.316 Td +(k) 4.9815 Tj +10 TJm +(eep) 13.8286 Tj +-250 TJm +(all) 9.963 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(pieces.) 27.3883 Tj +-620 TJm +(Ne) 11.6169 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(erth) 15.4925 Tj +1 TJm +(eless,) 21.8588 Tj +-250 TJm +(I) 3.31768 Tj +-250 TJm +(think) 20.4839 Tj +-250 TJm +(the) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ork) 13.2807 Tj +-250 TJm +(ok.) 12.4538 Tj +[1 0 0 1 72 398.159] cm +0 g +0 G +[1 0 0 1 0 -48.817] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 47.821 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 44.235] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -388.794] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 388.794 Td +/F130_0 9.963 Tf +(typedef) 41.8446 Tj +-426 TJm +(void) 23.9112 Tj +-426 TJm +(BZFILE;) 41.8446 Tj +90 364.884 Td +(const) 29.889 Tj +-426 TJm +(char) 23.9112 Tj +-426 TJm +(*) 5.9778 Tj +-426 TJm +(BZ2_bzlibVer) 71.7336 Tj +1 TJm +(sion) 23.9112 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(void) 23.9112 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 349.342] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -339.379] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 327.424 Td +/F128_0 9.963 Tf +(Returns) 30.9949 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(string) 22.6957 Tj +-250 TJm +(indicating) 39.852 Tj +-250 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-250 TJm +(library) 26.5614 Tj +-250 TJm +(v) 4.9815 Tj +15 TJm +(ersion.) 26.8403 Tj +[1 0 0 1 72 325.267] cm +0 g +0 G +[1 0 0 1 0 -36.862] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 35.866 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 32.279] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -315.902] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 315.902 Td +/F130_0 9.963 Tf +(BZFILE) 35.8668 Tj +-426 TJm +(*) 5.9778 Tj +-426 TJm +(BZ2_bzopen) 59.778 Tj +-852 TJm +(\() 5.9778 Tj +-426 TJm +(c) 5.9778 Tj +1 TJm +(onst) 23.9112 Tj +-426 TJm +(char) 23.9112 Tj +-426 TJm +(*path,) 35.8668 Tj +-426 TJm +(const) 29.889 Tj +-426 TJm +(char) 23.9112 Tj +-426 TJm +(*mode) 29.889 Tj +-426 TJm +(\);) 11.9556 Tj +90 303.947 Td +(BZFILE) 35.8668 Tj +-426 TJm +(*) 5.9778 Tj +-426 TJm +(BZ2_bzdopen) 65.7558 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(i) 5.9778 Tj +1 TJm +(nt) 11.9556 Tj +-3408 TJm +(fd,) 17.9334 Tj +-1704 TJm +(const) 29.889 Tj +-426 TJm +(char) 23.9112 Tj +-426 TJm +(*mode) 29.889 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 288.405] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -278.443] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 266.488 Td +/F128_0 9.963 Tf +(Opens) 25.4555 Tj +-243 TJm +(a) 4.42357 Tj +[1 0 0 1 106.713 266.488] cm +0 g +0 G +[1 0 0 1 -106.713 -266.488] cm +[1 0 0 1 0 0] Tm +0 0 Td +106.713 266.488 Td +/F130_0 9.963 Tf +(.bz2) 23.9112 Tj +[1 0 0 1 130.624 266.488] cm +0 g +0 G +[1 0 0 1 -130.624 -266.488] cm +[1 0 0 1 0 0] Tm +0 0 Td +133.041 266.488 Td +/F128_0 9.963 Tf +(\002le) 12.7327 Tj +-243 TJm +(for) 11.6169 Tj +-242 TJm +(reading) 29.879 Tj +-243 TJm +(or) 8.29918 Tj +-242 TJm +(writing,) 31.2739 Tj +-244 TJm +(using) 21.5898 Tj +-243 TJm +(either) 22.6858 Tj +-243 TJm +(its) 9.41504 Tj +-242 TJm +(name) 21.5799 Tj +-243 TJm +(or) 8.29918 Tj +-242 TJm +(a) 4.42357 Tj +-243 TJm +(pre-e) 20.464 Tj +15 TJm +(xisting) 27.1292 Tj +-243 TJm +(\002le) 12.7327 Tj +-242 TJm +(descriptor) 39.842 Tj +55 TJm +(.) 2.49075 Tj +-615 TJm +(Analogous) 43.1697 Tj +-243 TJm +(to) 7.75121 Tj +[1 0 0 1 510.112 266.488] cm +0 g +0 G +[1 0 0 1 -510.112 -266.488] cm +[1 0 0 1 0 0] Tm +0 0 Td +510.112 266.488 Td +/F130_0 9.963 Tf +(fopen) 29.889 Tj +[1 0 0 1 540 266.488] cm +0 g +0 G +[1 0 0 1 -540 -266.488] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 254.532 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 88.877 254.532] cm +0 g +0 G +[1 0 0 1 -88.877 -254.532] cm +[1 0 0 1 0 0] Tm +0 0 Td +88.877 254.532 Td +/F130_0 9.963 Tf +(fdopen) 35.8668 Tj +[1 0 0 1 124.742 254.532] cm +0 g +0 G +[1 0 0 1 -124.742 -254.532] cm +[1 0 0 1 0 0] Tm +0 0 Td +124.742 254.532 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 252.968] cm +0 g +0 G +[1 0 0 1 0 -36.861] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 35.866 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 32.279] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -243.604] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 243.604 Td +/F130_0 9.963 Tf +(int) 17.9334 Tj +-426 TJm +(BZ2_bzread) 59.778 Tj +-852 TJm +(\() 5.9778 Tj +-426 TJm +(BZFILE) 35.8668 Tj +1 TJm +(*) 5.9778 Tj +-426 TJm +(b,) 11.9556 Tj +-426 TJm +(void*) 29.889 Tj +-426 TJm +(buf,) 23.9112 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(len) 17.9334 Tj +-426 TJm +(\);) 11.9556 Tj +90 231.648 Td +(int) 17.9334 Tj +-426 TJm +(BZ2_bzwrite) 65.7558 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(BZFILE*) 41.8446 Tj +-425 TJm +(b,) 11.9556 Tj +-426 TJm +(void*) 29.889 Tj +-426 TJm +(buf,) 23.9112 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(len) 17.9334 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 216.107] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -206.144] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 194.189 Td +/F128_0 9.963 Tf +(Reads/writes) 51.4689 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(from/to) 29.889 Tj +-249 TJm +(a) 4.42357 Tj +-250 TJm +(pre) 12.7228 Tj +25 TJm +(viously) 29.341 Tj +-250 TJm +(opened) 28.7731 Tj +[1 0 0 1 259.903 194.189] cm +0 g +0 G +[1 0 0 1 -259.903 -194.189] cm +[1 0 0 1 0 0] Tm +0 0 Td +259.903 194.189 Td +/F130_0 9.963 Tf +(BZFILE) 35.8668 Tj +[1 0 0 1 295.769 194.189] cm +0 g +0 G +[1 0 0 1 -295.769 -194.189] cm +[1 0 0 1 0 0] Tm +0 0 Td +295.769 194.189 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-500 TJm +(Analogous) 43.1697 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 359.141 194.189] cm +0 g +0 G +[1 0 0 1 -359.141 -194.189] cm +[1 0 0 1 0 0] Tm +0 0 Td +359.141 194.189 Td +/F130_0 9.963 Tf +(fread) 29.889 Tj +[1 0 0 1 389.029 194.189] cm +0 g +0 G +[1 0 0 1 -389.029 -194.189] cm +[1 0 0 1 0 0] Tm +0 0 Td +391.519 194.189 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 408.396 194.189] cm +0 g +0 G +[1 0 0 1 -408.396 -194.189] cm +[1 0 0 1 0 0] Tm +0 0 Td +408.396 194.189 Td +/F130_0 9.963 Tf +(fwrite) 35.8668 Tj +[1 0 0 1 444.261 194.189] cm +0 g +0 G +[1 0 0 1 -444.261 -194.189] cm +[1 0 0 1 0 0] Tm +0 0 Td +444.261 194.189 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 192.032] cm +0 g +0 G +[1 0 0 1 0 -36.862] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 35.866 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 32.279] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -182.667] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 182.667 Td +/F130_0 9.963 Tf +(int) 17.9334 Tj +-852 TJm +(BZ2_bzflush) 65.7558 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(BZFIL) 29.889 Tj +1 TJm +(E*) 11.9556 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +90 170.712 Td +(void) 23.9112 Tj +-426 TJm +(BZ2_bzclose) 65.7558 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(BZFILE) 35.8668 Tj +1 TJm +(*) 5.9778 Tj +-426 TJm +(b) 5.9778 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 155.17] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -145.208] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 133.252 Td +/F128_0 9.963 Tf +(Flushes/closes) 57.5662 Tj +-250 TJm +(a) 4.42357 Tj +[1 0 0 1 138.968 133.252] cm +0 g +0 G +[1 0 0 1 -138.968 -133.252] cm +[1 0 0 1 0 0] Tm +0 0 Td +138.968 133.252 Td +/F130_0 9.963 Tf +(BZFILE) 35.8668 Tj +[1 0 0 1 174.833 133.252] cm +0 g +0 G +[1 0 0 1 -174.833 -133.252] cm +[1 0 0 1 0 0] Tm +0 0 Td +174.833 133.252 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 179.815 133.252] cm +0 g +0 G +[1 0 0 1 -179.815 -133.252] cm +[1 0 0 1 0 0] Tm +0 0 Td +179.815 133.252 Td +/F130_0 9.963 Tf +(BZ2_bzflush) 65.7558 Tj +[1 0 0 1 245.568 133.252] cm +0 g +0 G +[1 0 0 1 -245.568 -133.252] cm +[1 0 0 1 0 0] Tm +0 0 Td +248.059 133.252 Td +/F128_0 9.963 Tf +(doesn') 26.5614 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(actually) 31.5429 Tj +-250 TJm +(do) 9.963 Tj +-250 TJm +(an) 9.40507 Tj +15 TJm +(ything.) 27.9562 Tj +-619 TJm +(Analogous) 43.1697 Tj +-250 TJm +(to) 7.75121 Tj +[1 0 0 1 425.472 133.252] cm +0 g +0 G +[1 0 0 1 -425.472 -133.252] cm +[1 0 0 1 0 0] Tm +0 0 Td +425.472 133.252 Td +/F130_0 9.963 Tf +(fflush) 35.8668 Tj +[1 0 0 1 461.338 133.252] cm +0 g +0 G +[1 0 0 1 -461.338 -133.252] cm +[1 0 0 1 0 0] Tm +0 0 Td +463.828 133.252 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 480.705 133.252] cm +0 g +0 G +[1 0 0 1 -480.705 -133.252] cm +[1 0 0 1 0 0] Tm +0 0 Td +480.705 133.252 Td +/F130_0 9.963 Tf +(fclose) 35.8668 Tj +[1 0 0 1 516.57 133.252] cm +0 g +0 G +[1 0 0 1 -516.57 -133.252] cm +[1 0 0 1 0 0] Tm +0 0 Td +516.57 133.252 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 131.096] cm +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.323] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -121.731] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 121.731 Td +/F130_0 9.963 Tf +(const) 29.889 Tj +-426 TJm +(char) 23.9112 Tj +-426 TJm +(*) 5.9778 Tj +-426 TJm +(BZ2_bzerror) 65.7558 Tj +-425 TJm +(\() 5.9778 Tj +-426 TJm +(BZFILE) 35.8668 Tj +-426 TJm +(*b,) 17.9334 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(*errnum) 41.8446 Tj +-426 TJm +(\)) 5.9778 Tj +[1 0 0 1 72 106.189] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -96.226] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 84.271 Td +/F128_0 9.963 Tf +(Returns) 30.9949 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(string) 22.6957 Tj +-250 TJm +(describing) 41.5059 Tj +-250 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-250 TJm +(more) 20.474 Tj +-250 TJm +(recent) 24.3396 Tj +-250 TJm +(error) 19.3581 Tj +-250 TJm +(status) 22.6957 Tj +-250 TJm +(of) 8.29918 Tj +[1 0 0 1 303.858 84.271] cm +0 g +0 G +[1 0 0 1 -303.858 -84.271] cm +[1 0 0 1 0 0] Tm +0 0 Td +303.858 84.271 Td +/F130_0 9.963 Tf +(b) 5.9778 Tj +[1 0 0 1 309.835 84.271] cm +0 g +0 G +[1 0 0 1 -309.835 -84.271] cm +[1 0 0 1 0 0] Tm +0 0 Td +309.835 84.271 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(also) 16.0504 Tj +-250 TJm +(sets) 14.9445 Tj +[1 0 0 1 367.668 84.271] cm +0 g +0 G +[1 0 0 1 -367.668 -84.271] cm +[1 0 0 1 0 0] Tm +0 0 Td +367.668 84.271 Td +/F130_0 9.963 Tf +(*errnum) 41.8446 Tj +[1 0 0 1 409.511 84.271] cm +0 g +0 G +[1 0 0 1 -409.511 -84.271] cm +[1 0 0 1 0 0] Tm +0 0 Td +412.002 84.271 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(its) 9.41504 Tj +-250 TJm +(numerical) 39.842 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alue.) 19.0891 Tj +[1 0 0 1 72 82.114] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -21.3] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 4.384 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.573 -6.755] cm +0 g +0 G +[1 0 0 1 -495.734 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +536.307 50.951 Td +/F128_0 9.963 Tf +(28) 9.963 Tj +[1 0 0 1 455.161 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.599 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -15.037 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 32 32 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -540 -741.554] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 704.93 Td +/F121_0 20.659 Tf +(3.7.) 34.4592 Tj +-449 TJm +(Using) 57.3907 Tj +-449 TJm +(the) 30.9885 Tj +-449 TJm +(librar) 51.6682 Tj +-10 TJm +(y) 11.4864 Tj +-449 TJm +(in) 18.3659 Tj +-450 TJm +(a) 11.4864 Tj +[1 0 0 1 343.721 704.93] cm +0 g +0 G +[1 0 0 1 -343.721 -704.93] cm +[1 0 0 1 0 0] Tm +0 0 Td +343.721 704.93 Td +/F387_0 20.659 Tf +(stdio) 61.977 Tj +[1 0 0 1 405.696 704.93] cm +0 g +0 G +[1 0 0 1 -405.696 -704.93] cm +[1 0 0 1 0 0] Tm +0 0 Td +405.696 704.93 Td +/F121_0 20.659 Tf +(-free) 44.7681 Tj +-449 TJm +(en) 24.1091 Tj +40 TJm +(vir) 25.266 Tj +20 TJm +(on-) 32.1247 Tj +72 680.139 Td +(ment) 49.3544 Tj +[1 0 0 1 72 679.881] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -669.919] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 649.518 Td +/F121_0 17.215 Tf +(3.7.1.) 43.0719 Tj +-278 TJm +(Getting) 60.2525 Tj +-278 TJm +(rid) 22.0008 Tj +-278 TJm +(of) 16.251 Tj +[1 0 0 1 232.721 649.518] cm +0 g +0 G +[1 0 0 1 -232.721 -649.518] cm +[1 0 0 1 0 0] Tm +0 0 Td +232.721 649.518 Td +/F387_0 17.215 Tf +(stdio) 51.645 Tj +[1 0 0 1 284.367 649.518] cm +0 g +0 G +[1 0 0 1 -212.367 -3.83] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -635.725] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 627.6 Td +/F128_0 9.963 Tf +(In) 8.29918 Tj +-319 TJm +(a) 4.42357 Tj +-319 TJm +(deeply) 26.5614 Tj +-319 TJm +(embedded) 40.9479 Tj +-319 TJm +(application,) 46.7663 Tj +-336 TJm +(you) 14.9445 Tj +-319 TJm +(might) 23.2536 Tj +-319 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-319 TJm +(to) 7.75121 Tj +-319 TJm +(use) 13.2807 Tj +-319 TJm +(just) 14.3965 Tj +-319 TJm +(t) 2.76971 Tj +1 TJm +(he) 9.40507 Tj +-319 TJm +(memory-to-memory) 80.7999 Tj +-319 TJm +(functions.) 39.573 Tj +-1034 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-319 TJm +(can) 13.8286 Tj +-319 TJm +(do) 9.963 Tj +-319 TJm +(this) 14.3965 Tj +72 615.645 Td +(con) 14.3866 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(eniently) 32.1008 Tj +-327 TJm +(by) 9.963 Tj +-327 TJm +(compiling) 40.4099 Tj +-327 TJm +(the) 12.1748 Tj +-327 TJm +(library) 26.5614 Tj +-327 TJm +(with) 17.7142 Tj +-327 TJm +(preprocessor) 50.901 Tj +-327 TJm +(symbol) 29.341 Tj +[1 0 0 1 336.045 615.645] cm +0 g +0 G +[1 0 0 1 -336.045 -615.645] cm +[1 0 0 1 0 0] Tm +0 0 Td +336.045 615.645 Td +/F130_0 9.963 Tf +(BZ_NO_STDIO) 65.7558 Tj +[1 0 0 1 401.799 615.645] cm +0 g +0 G +[1 0 0 1 -401.799 -615.645] cm +[1 0 0 1 0 0] Tm +0 0 Td +405.057 615.645 Td +/F128_0 9.963 Tf +(de\002ned.) 31.8218 Tj +-1082 TJm +(Doing) 24.9075 Tj +-327 TJm +(this) 14.3965 Tj +-327 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(es) 8.29918 Tj +-327 TJm +(you) 14.9445 Tj +-327 TJm +(a) 4.42357 Tj +72 603.69 Td +(library) 26.5614 Tj +-250 TJm +(containing) 42.0638 Tj +-250 TJm +(only) 17.7142 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(fo) 8.29918 Tj +1 TJm +(llo) 10.5209 Tj +25 TJm +(wing) 19.926 Tj +-250 TJm +(eight) 19.926 Tj +-250 TJm +(functions:) 39.852 Tj +[1 0 0 1 72 601.533] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -591.571] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 581.772 Td +/F130_0 9.963 Tf +(BZ2_bzCompressInit) 107.6 Tj +[1 0 0 1 179.597 581.772] cm +0 g +0 G +[1 0 0 1 -179.597 -581.772] cm +[1 0 0 1 0 0] Tm +0 0 Td +179.597 581.772 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 199.079 581.772] cm +0 g +0 G +[1 0 0 1 -199.079 -581.772] cm +[1 0 0 1 0 0] Tm +0 0 Td +199.079 581.772 Td +/F130_0 9.963 Tf +(BZ2_bzCompress) 83.6892 Tj +[1 0 0 1 282.765 581.772] cm +0 g +0 G +[1 0 0 1 -282.765 -581.772] cm +[1 0 0 1 0 0] Tm +0 0 Td +282.765 581.772 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 302.247 581.772] cm +0 g +0 G +[1 0 0 1 -302.247 -581.772] cm +[1 0 0 1 0 0] Tm +0 0 Td +302.247 581.772 Td +/F130_0 9.963 Tf +(BZ2_bzCompressEnd) 101.623 Tj +[1 0 0 1 403.866 581.772] cm +0 g +0 G +[1 0 0 1 14.092 0] cm +0 g +0 G +[1 0 0 1 -417.958 -581.772] cm +[1 0 0 1 0 0] Tm +0 0 Td +417.958 581.772 Td +/F130_0 9.963 Tf +(BZ2_bzDecompressInit) 119.556 Tj +[1 0 0 1 537.509 581.772] cm +0 g +0 G +[1 0 0 1 -537.509 -581.772] cm +[1 0 0 1 0 0] Tm +0 0 Td +537.509 581.772 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 72 569.817] cm +0 g +0 G +[1 0 0 1 -72 -569.817] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 569.817 Td +/F130_0 9.963 Tf +(BZ2_bzDecompress) 95.6448 Tj +[1 0 0 1 167.641 569.817] cm +0 g +0 G +[1 0 0 1 -167.641 -569.817] cm +[1 0 0 1 0 0] Tm +0 0 Td +167.641 569.817 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 172.144 569.817] cm +0 g +0 G +[1 0 0 1 -172.144 -569.817] cm +[1 0 0 1 0 0] Tm +0 0 Td +172.144 569.817 Td +/F130_0 9.963 Tf +(BZ2_bzDecompressEnd) 113.578 Tj +[1 0 0 1 285.719 569.817] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 -287.612 -569.817] cm +[1 0 0 1 0 0] Tm +0 0 Td +287.612 569.817 Td +/F130_0 9.963 Tf +(BZ2_bzBuffToBuffCompres) 137.489 Tj +1 TJm +(s) 5.9778 Tj +[1 0 0 1 431.074 569.817] cm +0 g +0 G +[1 0 0 1 -431.074 -569.817] cm +[1 0 0 1 0 0] Tm +0 0 Td +431.074 569.817 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 435.577 569.817] cm +0 g +0 G +[1 0 0 1 -435.577 -569.817] cm +[1 0 0 1 0 0] Tm +0 0 Td +435.577 569.817 Td +/F130_0 9.963 Tf +(BZ2_bzBuffToBuffDecompre) 143.467 Tj +1 TJm +(ss) 11.9556 Tj +[1 0 0 1 590.994 569.817] cm +0 g +0 G +[1 0 0 1 -518.994 -1.564] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -558.29] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 547.899 Td +/F128_0 9.963 Tf +(When) 23.7916 Tj +-250 TJm +(compiled) 37.0823 Tj +-250 TJm +(lik) 10.5209 Tj +10 TJm +(e) 4.42357 Tj +-250 TJm +(this,) 16.8873 Tj +-250 TJm +(all) 9.963 Tj +-249 TJm +(functions) 37.0823 Tj +-250 TJm +(will) 15.5024 Tj +-250 TJm +(ignore) 25.4555 Tj +[1 0 0 1 272.526 547.899] cm +0 g +0 G +[1 0 0 1 -272.526 -547.899] cm +[1 0 0 1 0 0] Tm +0 0 Td +272.526 547.899 Td +/F130_0 9.963 Tf +(verbosity) 53.8002 Tj +[1 0 0 1 326.324 547.899] cm +0 g +0 G +[1 0 0 1 -326.324 -547.899] cm +[1 0 0 1 0 0] Tm +0 0 Td +328.815 547.899 Td +/F128_0 9.963 Tf +(settings.) 32.9377 Tj +[1 0 0 1 72 545.742] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -535.78] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 517.278 Td +/F121_0 17.215 Tf +(3.7.2.) 43.0719 Tj +-278 TJm +(Critical) 58.3589 Tj +-278 TJm +(err) 22.9648 Tj +20 TJm +(or) 17.215 Tj +-278 TJm +(handling) 71.7349 Tj +[1 0 0 1 72 513.448] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -503.485] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 495.36 Td +/F130_0 9.963 Tf +(libbzip2) 47.8224 Tj +[1 0 0 1 119.821 495.36] cm +0 g +0 G +[1 0 0 1 -119.821 -495.36] cm +[1 0 0 1 0 0] Tm +0 0 Td +124.529 495.36 Td +/F128_0 9.963 Tf +(contains) 33.2067 Tj +-472 TJm +(a) 4.42357 Tj +-473 TJm +(number) 30.437 Tj +-472 TJm +(of) 8.29918 Tj +-473 TJm +(internal) 30.437 Tj +-472 TJm +(assertion) 35.4185 Tj +-473 TJm +(checks) 27.1093 Tj +-472 TJm +(which) 24.3496 Tj +-473 TJm +(sho) 13.8386 Tj +1 TJm +(uld,) 15.2235 Tj +-529 TJm +(needles) 29.879 Tj +1 TJm +(s) 3.87561 Tj +-473 TJm +(to) 7.75121 Tj +-473 TJm +(sa) 8.29918 Tj +1 TJm +(y) 4.9815 Tj +65 TJm +(,) 2.49075 Tj +-529 TJm +(ne) 9.40507 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-472 TJm +(be) 9.40507 Tj +-473 TJm +(acti) 14.3866 Tj +25 TJm +(v) 4.9815 Tj +25 TJm +(ated.) 19.0891 Tj +72 483.405 Td +(Ne) 11.6169 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ertheless,) 37.3513 Tj +-532 TJm +(if) 6.08739 Tj +-476 TJm +(an) 9.40507 Tj +-476 TJm +(assertion) 35.4185 Tj +-476 TJm +(should) 26.5713 Tj +-476 TJm +(f) 3.31768 Tj +10 TJm +(ail,) 12.4538 Tj +-533 TJm +(beha) 18.8101 Tj +21 TJm +(viour) 21.0319 Tj +-476 TJm +(depends) 32.6488 Tj +-476 TJm +(on) 9.963 Tj +-476 TJm +(whether) 32.0908 Tj +-476 TJm +(or) 8.29918 Tj +-476 TJm +(not) 12.7327 Tj +-476 TJm +(the) 12.1748 Tj +-476 TJm +(library) 26.5614 Tj +-476 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-476 TJm +(compiled) 37.0823 Tj +-476 TJm +(with) 17.7142 Tj +[1 0 0 1 72 471.45] cm +0 g +0 G +[1 0 0 1 -72 -471.45] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 471.45 Td +/F130_0 9.963 Tf +(BZ_NO_STDIO) 65.7558 Tj +[1 0 0 1 137.753 471.45] cm +0 g +0 G +[1 0 0 1 -137.753 -471.45] cm +[1 0 0 1 0 0] Tm +0 0 Td +140.244 471.45 Td +/F128_0 9.963 Tf +(set.) 13.5596 Tj +[1 0 0 1 72 470.284] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -460.322] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 449.532 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(normal) 28.2252 Tj +-250 TJm +(compile,) 34.5915 Tj +-250 TJm +(an) 9.40507 Tj +-250 TJm +(asse) 16.5984 Tj +1 TJm +(rtion) 18.8201 Tj +-250 TJm +(f) 3.31768 Tj +10 TJm +(ailure) 22.6858 Tj +-250 TJm +(yields) 23.8016 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(message:) 36.5244 Tj +[1 0 0 1 72 447.375] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -437.413] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 427.614 Td +/F128_0 9.963 Tf +(bzip2/libbzip2:) 60.3359 Tj +-310 TJm +(internal) 30.437 Tj +-250 TJm +(err) 11.0589 Tj +1 TJm +(or) 8.29918 Tj +-250 TJm +(number) 30.437 Tj +-250 TJm +(N.) 9.68404 Tj +[1 0 0 1 72 425.458] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -415.495] cm +[1 0 0 1 0 0] Tm +0 0 Td +108 405.697 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-475 TJm +(is) 6.64532 Tj +-476 TJm +(a) 4.42357 Tj +-476 TJm +(b) 4.9815 Tj +20 TJm +(u) 4.9815 Tj +1 TJm +(g) 4.9815 Tj +-476 TJm +(in) 7.75121 Tj +-476 TJm +(bzi) 12.1748 Tj +1 TJm +(p2/libbzip2,) 47.8822 Tj +-532 TJm +(1.0.3) 19.926 Tj +-476 TJm +(of) 8.29918 Tj +-475 TJm +(15) 9.963 Tj +-476 TJm +(February) 35.9664 Tj +-475 TJm +(2005.) 22.4168 Tj +-987 TJm +(Please) 25.4555 Tj +-475 TJm +(report) 23.7916 Tj +-476 TJm +(it) 5.53943 Tj +-475 TJm +(to) 7.75121 Tj +-476 TJm +(me) 12.1748 Tj +-475 TJm +(at:) 9.963 Tj +-761 TJm +(jse-) 14.3866 Tj +108 393.741 Td +(w) 7.19329 Tj +10 TJm +(ard@bzip.or) 49.8449 Tj +18 TJm +(g.) 7.47225 Tj +-1091 TJm +(If) 6.63536 Tj +-329 TJm +(this) 14.3965 Tj +-328 TJm +(happened) 38.1782 Tj +-329 TJm +(wh) 12.1748 Tj +1 TJm +(en) 9.40507 Tj +-329 TJm +(you) 14.9445 Tj +-329 TJm +(w) 7.19329 Tj +1 TJm +(ere) 12.1648 Tj +-329 TJm +(using) 21.5898 Tj +-328 TJm +(some) 21.0319 Tj +-329 TJm +(program) 33.7546 Tj +-328 TJm +(which) 24.3496 Tj +-329 TJm +(uses) 17.1563 Tj +-328 TJm +(libbzip2) 32.6587 Tj +-329 TJm +(as) 8.29918 Tj +-328 TJm +(a) 4.42357 Tj +108 381.786 Td +(component,) 46.7663 Tj +-323 TJm +(you) 14.9445 Tj +-309 TJm +(should) 26.5713 Tj +-308 TJm +(also) 16.0504 Tj +-309 TJm +(report) 23.7916 Tj +-309 TJm +(this) 14.3965 Tj +-308 TJm +(b) 4.9815 Tj +20 TJm +(ug) 9.963 Tj +-309 TJm +(to) 7.75121 Tj +-309 TJm +(the) 12.1748 Tj +-308 TJm +(author\(s\)) 35.9664 Tj +-309 TJm +(of) 8.29918 Tj +-309 TJm +(tha) 12.1748 Tj +1 TJm +(t) 2.76971 Tj +-309 TJm +(program.) 36.2454 Tj +-972 TJm +(Please) 25.4555 Tj +-309 TJm +(mak) 17.1563 Tj +10 TJm +(e) 4.42357 Tj +-309 TJm +(an) 9.40507 Tj +-308 TJm +(ef-) 11.0589 Tj +108 369.831 Td +(fort) 14.3866 Tj +-315 TJm +(to) 7.75121 Tj +-315 TJm +(report) 23.7916 Tj +-316 TJm +(this) 14.3965 Tj +-315 TJm +(b) 4.9815 Tj +20 TJm +(ug;) 12.7327 Tj +-348 TJm +(timely) 25.4654 Tj +-315 TJm +(and) 14.3866 Tj +-315 TJm +(accurate) 33.1868 Tj +-315 TJm +(b) 4.9815 Tj +20 TJm +(ug) 9.963 Tj +-315 TJm +(reports) 27.6673 Tj +-316 TJm +(e) 4.42357 Tj +26 TJm +(v) 4.9815 Tj +15 TJm +(entually) 32.1008 Tj +-316 TJm +(lead) 16.5984 Tj +-315 TJm +(to) 7.75121 Tj +-315 TJm +(higher) 25.4555 Tj +-315 TJm +(quality) 27.6772 Tj +-315 TJm +(softw) 22.1378 Tj +10 TJm +(are.) 14.6556 Tj +108 357.876 Td +(Thanks.) 31.8218 Tj +-620 TJm +(Julian) 23.8016 Tj +-250 TJm +(Se) 9.963 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(ard,) 15.2135 Tj +-250 TJm +(15) 9.963 Tj +-250 TJm +(Fe) 9.963 Tj +1 TJm +(bruary) 26.0034 Tj +-250 TJm +(2005.) 22.4168 Tj +[1 0 0 1 72 355.719] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -335.794] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 325.995 Td +/F128_0 9.963 Tf +(where) 24.3396 Tj +[1 0 0 1 98.831 325.995] cm +0 g +0 G +[1 0 0 1 -98.831 -325.995] cm +[1 0 0 1 0 0] Tm +0 0 Td +98.831 325.995 Td +/F130_0 9.963 Tf +(N) 5.9778 Tj +[1 0 0 1 104.809 325.995] cm +0 g +0 G +[1 0 0 1 -104.809 -325.995] cm +[1 0 0 1 0 0] Tm +0 0 Td +107.301 325.995 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(some) 21.0319 Tj +-250 TJm +(error) 19.3581 Tj +-250 TJm +(code) 18.8101 Tj +-251 TJm +(nu) 9.963 Tj +1 TJm +(mber) 20.474 Tj +55 TJm +(.) 2.49075 Tj +-622 TJm +(If) 6.63536 Tj +[1 0 0 1 230.81 325.995] cm +0 g +0 G +[1 0 0 1 -230.81 -325.995] cm +[1 0 0 1 0 0] Tm +0 0 Td +230.81 325.995 Td +/F130_0 9.963 Tf +(N) 5.9778 Tj +-600 TJm +(==) 11.9556 Tj +-600 TJm +(1007) 23.9112 Tj +[1 0 0 1 284.608 325.995] cm +0 g +0 G +[1 0 0 1 -284.608 -325.995] cm +[1 0 0 1 0 0] Tm +0 0 Td +284.608 325.995 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(it) 5.53943 Tj +-250 TJm +(also) 16.0504 Tj +-250 TJm +(prints) 22.6957 Tj +-251 TJm +(som) 16.6083 Tj +1 TJm +(e) 4.42357 Tj +-251 TJm +(e) 4.42357 Tj +15 TJm +(xtra) 15.4925 Tj +-250 TJm +(te) 7.19329 Tj +15 TJm +(xt) 7.75121 Tj +-250 TJm +(advising) 33.7646 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(reader) 24.8876 Tj +-250 TJm +(that) 14.9445 Tj +-250 TJm +(unreliable) 39.842 Tj +72 314.04 Td +(memory) 33.2067 Tj +-425 TJm +(i) 2.76971 Tj +1 TJm +(s) 3.87561 Tj +-425 TJm +(often) 20.474 Tj +-425 TJm +(associate) 35.9664 Tj +1 TJm +(d) 4.9815 Tj +-425 TJm +(with) 17.7142 Tj +-425 TJm +(internal) 30.437 Tj +-424 TJm +(error) 19.3581 Tj +-425 TJm +(1007.) 22.4168 Tj +-834 TJm +(\(This) 21.0319 Tj +-424 TJm +(is) 6.64532 Tj +-425 TJm +(a) 4.42357 Tj +-424 TJm +(frequently-observ) 70.827 Tj +15 TJm +(ed-phenomenon) 64.1916 Tj +-425 TJm +(w) 7.19329 Tj +1 TJm +(ith) 10.5209 Tj +-425 TJm +(v) 4.9815 Tj +15 TJm +(ersions) 28.2252 Tj +72 302.085 Td +(1.0.0/1.0.1\).) 48.4301 Tj +[1 0 0 1 72 300.302] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -290.339] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 280.167 Td +/F130_0 9.963 Tf +(exit\(3\)) 41.8446 Tj +[1 0 0 1 113.843 280.167] cm +0 g +0 G +[1 0 0 1 -113.843 -280.167] cm +[1 0 0 1 0 0] Tm +0 0 Td +116.334 280.167 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(then) 17.1563 Tj +-250 TJm +(called.) 26.2824 Tj +[1 0 0 1 72 279.002] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -269.039] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 258.25 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-250 TJm +(a) 4.42357 Tj +[1 0 0 1 95.093 258.25] cm +0 g +0 G +[1 0 0 1 -95.093 -258.25] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.093 258.25 Td +/F130_0 9.963 Tf +(stdio) 29.889 Tj +[1 0 0 1 124.981 258.25] cm +0 g +0 G +[1 0 0 1 -124.981 -258.25] cm +[1 0 0 1 0 0] Tm +0 0 Td +124.981 258.25 Td +/F128_0 9.963 Tf +(-free) 18.8002 Tj +-250 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +-250 TJm +(assertion) 35.4185 Tj +-250 TJm +(f) 3.31768 Tj +10 TJm +(ailure) 22.6858 Tj +1 TJm +(s) 3.87561 Tj +-250 TJm +(result) 22.1378 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(call) 14.3866 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(function) 33.2067 Tj +-250 TJm +(declared) 33.7447 Tj +-250 TJm +(as:) 11.0689 Tj +[1 0 0 1 72 256.093] cm +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.323] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -246.728] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 246.728 Td +/F130_0 9.963 Tf +(extern) 35.8668 Tj +-426 TJm +(void) 23.9112 Tj +-426 TJm +(bz_internal_e) 77.7114 Tj +1 TJm +(rror) 23.9112 Tj +-426 TJm +(\() 5.9778 Tj +-426 TJm +(int) 17.9334 Tj +-426 TJm +(errcode) 41.8446 Tj +-426 TJm +(\);) 11.9556 Tj +[1 0 0 1 72 231.186] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -221.223] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 209.268 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-250 TJm +(rele) 14.9345 Tj +25 TJm +(v) 4.9815 Tj +25 TJm +(ant) 12.1748 Tj +-250 TJm +(code) 18.8101 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(passed) 26.5614 Tj +-250 TJm +(a) 4.42357 Tj +1 TJm +(s) 3.87561 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(parameter) 39.8321 Tj +55 TJm +(.) 2.49075 Tj +-620 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-250 TJm +(should) 26.5713 Tj +-250 TJm +(supply) 26.5713 Tj +-250 TJm +(such) 18.2622 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(function.) 35.6974 Tj +[1 0 0 1 72 207.111] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -197.149] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 187.35 Td +/F128_0 9.963 Tf +(In) 8.29918 Tj +-294 TJm +(either) 22.6858 Tj +-294 TJm +(case,) 19.6371 Tj +-305 TJm +(once) 18.8101 Tj +-295 TJm +(an) 9.40507 Tj +-294 TJm +(assertion) 35.4185 Tj +-294 TJm +(f) 3.31768 Tj +10 TJm +(ailure) 22.6858 Tj +-294 TJm +(has) 13.2807 Tj +-294 TJm +(occurred,) 37.3413 Tj +-305 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +[1 0 0 1 306.541 187.35] cm +0 g +0 G +[1 0 0 1 -306.541 -187.35] cm +[1 0 0 1 0 0] Tm +0 0 Td +306.541 187.35 Td +/F130_0 9.963 Tf +(bz_stream) 53.8002 Tj +[1 0 0 1 360.34 187.35] cm +0 g +0 G +[1 0 0 1 -360.34 -187.35] cm +[1 0 0 1 0 0] Tm +0 0 Td +363.271 187.35 Td +/F128_0 9.963 Tf +(records) 29.3211 Tj +-294 TJm +(in) 7.75121 Tj +40 TJm +(v) 4.9815 Tj +20 TJm +(olv) 12.7327 Tj +15 TJm +(ed) 9.40507 Tj +-294 TJm +(can) 13.8286 Tj +-294 TJm +(be) 9.40507 Tj +-294 TJm +(re) 7.74125 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(arded) 22.1278 Tj +-295 TJm +(as) 8.29918 Tj +-294 TJm +(in) 7.75121 Tj +40 TJm +(v) 4.9815 Tj +25 TJm +(alid.) 17.4353 Tj +72 175.395 Td +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-250 TJm +(should) 26.5713 Tj +-250 TJm +(not) 12.7327 Tj +-250 TJm +(attempt) 29.889 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(res) 11.6169 Tj +1 TJm +(ume) 17.1563 Tj +-250 TJm +(normal) 28.2252 Tj +-250 TJm +(operation) 37.6303 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(them.) 22.4168 Tj +[1 0 0 1 72 173.238] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -163.276] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 153.477 Td +/F128_0 9.963 Tf +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-299 TJm +(m) 7.75121 Tj +1 TJm +(ay) 9.40507 Tj +65 TJm +(,) 2.49075 Tj +-311 TJm +(of) 8.29918 Tj +-299 TJm +(course,) 28.4942 Tj +-310 TJm +(change) 28.2152 Tj +-299 TJm +(critical) 27.6673 Tj +-298 TJm +(error) 19.3581 Tj +-299 TJm +(ha) 9.40507 Tj +1 TJm +(ndling) 25.4654 Tj +-299 TJm +(to) 7.75121 Tj +-298 TJm +(suit) 14.3965 Tj +-299 TJm +(your) 18.2622 Tj +-298 TJm +(needs.) 25.1765 Tj +-912 TJm +(As) 11.0689 Tj +-298 TJm +(I) 3.31768 Tj +-299 TJm +(said) 16.0504 Tj +-298 TJm +(abo) 14.3866 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e,) 6.91432 Tj +-311 TJm +(critical) 27.6673 Tj +-298 TJm +(errors) 23.2337 Tj +-299 TJm +(indic) 19.926 Tj +1 TJm +(ate) 11.6169 Tj +-299 TJm +(b) 4.9815 Tj +20 TJm +(ugs) 13.8386 Tj +72 141.522 Td +(in) 7.75121 Tj +-263 TJm +(the) 12.1748 Tj +-263 TJm +(library) 26.5614 Tj +-263 TJm +(and) 14.3866 Tj +-263 TJm +(s) 3.87561 Tj +1 TJm +(hould) 22.6957 Tj +-263 TJm +(not) 12.7327 Tj +-263 TJm +(occur) 22.1278 Tj +55 TJm +(.) 2.49075 Tj +-698 TJm +(All) 12.7327 Tj +-263 TJm +("normal") 36.355 Tj +-263 TJm +(er) 7.74125 Tj +1 TJm +(ror) 11.6169 Tj +-263 TJm +(situations) 38.1981 Tj +-263 TJm +(are) 12.1648 Tj +-263 TJm +(indicated) 36.5244 Tj +-263 TJm +(via) 12.1748 Tj +-263 TJm +(error) 19.3581 Tj +-263 TJm +(retu) 15.4925 Tj +1 TJm +(rn) 8.29918 Tj +-263 TJm +(codes) 22.6858 Tj +-263 TJm +(from) 19.3681 Tj +-263 TJm +(functions,) 39.573 Tj +72 129.567 Td +(and) 14.3866 Tj +-250 TJm +(can) 13.8286 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(reco) 17.1463 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(ered) 17.1463 Tj +-250 TJm +(from.) 21.8588 Tj +[1 0 0 1 72 129.468] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -119.505] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 94.814 Td +/F121_0 20.659 Tf +(3.8.) 34.4592 Tj +-278 TJm +(Making) 71.1703 Tj +-278 TJm +(a) 11.4864 Tj +-278 TJm +(Windo) 63.1132 Tj +15 TJm +(ws) 27.5591 Tj +-278 TJm +(DLL) 40.1611 Tj +[1 0 0 1 72 90.218] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 0 -29.403] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.974] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -51.071] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 51.071 Td +/F128_0 9.963 Tf +(29) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 33 33 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -8.911] cm +0 g +0 G +[1 0 0 1 0 8.911] cm +0 g +0 G +0 g +0 G +[1 0 0 1 84.08 -6.755] cm +0 g +0 G +[1 0 0 1 -350.151 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +434.231 749.245 Td +/F128_0 9.963 Tf +(Programming) 54.7965 Tj +-250 TJm +(with) 17.7142 Tj +-250 TJm +(libbzip2) 32.6587 Tj +[1 0 0 1 266.071 747.089] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -5.037] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -540 -741.554] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(Ev) 11.0689 Tj +15 TJm +(erything) 33.2067 Tj +-452 TJm +(related) 27.1093 Tj +-452 TJm +(to) 7.75121 Tj +-453 TJm +(W) 9.40507 Tj +40 TJm +(indo) 17.7142 Tj +25 TJm +(ws) 11.0689 Tj +-452 TJm +(has) 13.2807 Tj +-452 TJm +(been) 18.8101 Tj +-453 TJm +(c) 4.42357 Tj +1 TJm +(ontrib) 23.8016 Tj +20 TJm +(uted) 17.1563 Tj +-453 TJm +(by) 9.963 Tj +-452 TJm +(Y) 7.19329 Tj +110 TJm +(oshioka) 30.9949 Tj +-452 TJm +(Tsuneo) 29.3311 Tj +-452 TJm +(\() 3.31768 Tj +[1 0 0 1 390.56 710.037] cm +0 g +0 G +[1 0 0 1 -390.56 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +390.56 710.037 Td +/F130_0 9.963 Tf +(QWF00133@niftyserve.or.jp) 149.445 Tj +[1 0 0 1 540 710.037] cm +0 g +0 G +[1 0 0 1 -540 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 698.082 Td +/F128_0 9.963 Tf +(/) 2.76971 Tj +[1 0 0 1 80.825 698.082] cm +0 g +0 G +[1 0 0 1 -80.825 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +80.825 698.082 Td +/F130_0 9.963 Tf +(tsuneo-y@is.aist-nara.ac.) 149.445 Tj +1 TJm +(jp) 11.9556 Tj +[1 0 0 1 242.22 698.082] cm +0 g +0 G +[1 0 0 1 -242.22 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +242.22 698.082 Td +/F128_0 9.963 Tf +(\),) 5.80843 Tj +-697 TJm +(so) 8.85711 Tj +-608 TJm +(you) 14.9445 Tj +-608 TJm +(should) 26.5713 Tj +-607 TJm +(send) 18.2622 Tj +-608 TJm +(your) 18.2622 Tj +-608 TJm +(queries) 28.7731 Tj +-607 TJm +(to) 7.75121 Tj +-608 TJm +(him) 15.5024 Tj +-608 TJm +(\(b) 8.29918 Tj +20 TJm +(ut) 7.75121 Tj +-608 TJm +(perha) 22.1278 Tj +1 TJm +(ps) 8.85711 Tj +-608 TJm +(Cc:) 13.8386 Tj +-1026 TJm +(me,) 14.6655 Tj +[1 0 0 1 72 686.127] cm +0 g +0 G +[1 0 0 1 -72 -686.127] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 686.127 Td +/F130_0 9.963 Tf +(jseward@bzip.org) 95.6448 Tj +[1 0 0 1 167.641 686.127] cm +0 g +0 G +[1 0 0 1 -167.641 -686.127] cm +[1 0 0 1 0 0] Tm +0 0 Td +167.641 686.127 Td +/F128_0 9.963 Tf +(\).) 5.80843 Tj +[1 0 0 1 72 684.344] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -674.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 664.209 Td +/F128_0 9.963 Tf +(My) 13.8386 Tj +-367 TJm +(v) 4.9815 Tj +25 TJm +(ague) 18.8101 Tj +-367 TJm +(understanding) 56.4504 Tj +-367 TJm +(of) 8.29918 Tj +-367 TJm +(what) 19.3681 Tj +-367 TJm +(to) 7.75121 Tj +-367 TJm +(do) 9.963 Tj +-367 TJm +(is:) 9.41504 Tj +-544 TJm +(using) 21.5898 Tj +-367 TJm +(V) 7.19329 Tj +60 TJm +(isual) 18.8201 Tj +-367 TJm +(C++) 17.8836 Tj +-367 TJm +(5.0,) 14.9445 Tj +-397 TJm +(open) 19.3681 Tj +-367 TJm +(the) 12.1748 Tj +-367 TJm +(project) 27.6673 Tj +-367 TJm +(\002le) 12.7327 Tj +[1 0 0 1 432.966 664.209] cm +0 g +0 G +[1 0 0 1 -432.966 -664.209] cm +[1 0 0 1 0 0] Tm +0 0 Td +432.966 664.209 Td +/F130_0 9.963 Tf +(libbz2.dsp) 59.778 Tj +[1 0 0 1 492.742 664.209] cm +0 g +0 G +[1 0 0 1 -492.742 -664.209] cm +[1 0 0 1 0 0] Tm +0 0 Td +492.742 664.209 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-396 TJm +(and) 14.3866 Tj +-367 TJm +(b) 4.9815 Tj +20 TJm +(uild.) 17.9932 Tj +72 652.254 Td +(That') 21.5799 Tj +55 TJm +(s) 3.87561 Tj +-250 TJm +(all.) 12.4538 Tj +[1 0 0 1 72 652.155] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -642.192] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 630.336 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-284 TJm +(you) 14.9445 Tj +-284 TJm +(can') 17.1463 Tj +18 TJm +(t) 2.76971 Tj +-284 TJm +(open) 19.3681 Tj +-285 TJm +(the) 12.1748 Tj +-284 TJm +(project) 27.6673 Tj +-284 TJm +(\002le) 12.7327 Tj +-284 TJm +(for) 11.6169 Tj +-284 TJm +(some) 21.0319 Tj +-284 TJm +(reason,) 28.4942 Tj +-293 TJm +(mak) 17.1563 Tj +10 TJm +(e) 4.42357 Tj +-284 TJm +(a) 4.42357 Tj +-284 TJm +(ne) 9.40507 Tj +25 TJm +(w) 7.19329 Tj +-284 TJm +(one,) 16.8773 Tj +-293 TJm +(naming) 29.889 Tj +-284 TJm +(these) 20.474 Tj +-284 TJm +(\002les:) 19.378 Tj +[1 0 0 1 424.505 630.336] cm +0 g +0 G +[1 0 0 1 -424.505 -630.336] cm +[1 0 0 1 0 0] Tm +0 0 Td +424.505 630.336 Td +/F130_0 9.963 Tf +(blocksort.c) 65.7558 Tj +[1 0 0 1 490.259 630.336] cm +0 g +0 G +[1 0 0 1 -490.259 -630.336] cm +[1 0 0 1 0 0] Tm +0 0 Td +490.259 630.336 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 495.666 630.336] cm +0 g +0 G +[1 0 0 1 -495.666 -630.336] cm +[1 0 0 1 0 0] Tm +0 0 Td +495.666 630.336 Td +/F130_0 9.963 Tf +(bzlib.c) 41.8446 Tj +[1 0 0 1 537.509 630.336] cm +0 g +0 G +[1 0 0 1 -537.509 -630.336] cm +[1 0 0 1 0 0] Tm +0 0 Td +537.509 630.336 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 72 618.381] cm +0 g +0 G +[1 0 0 1 -72 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 618.381 Td +/F130_0 9.963 Tf +(compress.c) 59.778 Tj +[1 0 0 1 131.776 618.381] cm +0 g +0 G +[1 0 0 1 -131.776 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +131.776 618.381 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 136.436 618.381] cm +0 g +0 G +[1 0 0 1 -136.436 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +136.436 618.381 Td +/F130_0 9.963 Tf +(crctable.c) 59.778 Tj +[1 0 0 1 196.211 618.381] cm +0 g +0 G +[1 0 0 1 -196.211 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +196.211 618.381 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 200.871 618.381] cm +0 g +0 G +[1 0 0 1 -200.871 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +200.871 618.381 Td +/F130_0 9.963 Tf +(decompress.c) 71.7336 Tj +[1 0 0 1 272.602 618.381] cm +0 g +0 G +[1 0 0 1 -272.602 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +272.602 618.381 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 277.262 618.381] cm +0 g +0 G +[1 0 0 1 -277.262 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +277.262 618.381 Td +/F130_0 9.963 Tf +(huffman.c) 53.8002 Tj +[1 0 0 1 331.06 618.381] cm +0 g +0 G +[1 0 0 1 -331.06 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +331.06 618.381 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 335.72 618.381] cm +0 g +0 G +[1 0 0 1 -335.72 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +335.72 618.381 Td +/F130_0 9.963 Tf +(randtable.c) 65.7558 Tj +[1 0 0 1 401.473 618.381] cm +0 g +0 G +[1 0 0 1 -401.473 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +403.562 618.381 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 420.037 618.381] cm +0 g +0 G +[1 0 0 1 -420.037 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +420.037 618.381 Td +/F130_0 9.963 Tf +(libbz2.def) 59.778 Tj +[1 0 0 1 479.812 618.381] cm +0 g +0 G +[1 0 0 1 -479.812 -618.381] cm +[1 0 0 1 0 0] Tm +0 0 Td +479.812 618.381 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-593 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-210 TJm +(will) 15.5024 Tj +-209 TJm +(also) 16.0504 Tj +72 606.426 Td +(need) 18.8101 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(name) 21.5799 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(header) 26.5514 Tj +-250 TJm +(\002les) 16.6083 Tj +[1 0 0 1 190.415 606.426] cm +0 g +0 G +[1 0 0 1 -190.415 -606.426] cm +[1 0 0 1 0 0] Tm +0 0 Td +190.415 606.426 Td +/F130_0 9.963 Tf +(bzlib.h) 41.8446 Tj +[1 0 0 1 232.258 606.426] cm +0 g +0 G +[1 0 0 1 -232.258 -606.426] cm +[1 0 0 1 0 0] Tm +0 0 Td +234.749 606.426 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 251.625 606.426] cm +0 g +0 G +[1 0 0 1 -251.625 -606.426] cm +[1 0 0 1 0 0] Tm +0 0 Td +251.625 606.426 Td +/F130_0 9.963 Tf +(bzlib_private.h) 89.667 Tj +[1 0 0 1 341.289 606.426] cm +0 g +0 G +[1 0 0 1 -341.289 -606.426] cm +[1 0 0 1 0 0] Tm +0 0 Td +341.289 606.426 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 604.862] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -594.899] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 584.508 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(don') 18.2622 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(VC++,) 27.5676 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(ma) 12.1748 Tj +1 TJm +(y) 4.9815 Tj +-250 TJm +(need) 18.8101 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(de\002ne) 24.3496 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(proprocessor) 51.4589 Tj +-250 TJm +(symbol) 29.341 Tj +[1 0 0 1 363.634 584.508] cm +0 g +0 G +[1 0 0 1 -363.634 -584.508] cm +[1 0 0 1 0 0] Tm +0 0 Td +363.634 584.508 Td +/F130_0 9.963 Tf +(_WIN32) 35.8668 Tj +[1 0 0 1 399.5 584.508] cm +0 g +0 G +[1 0 0 1 -399.5 -584.508] cm +[1 0 0 1 0 0] Tm +0 0 Td +399.5 584.508 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 582.351] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -572.389] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 562.59 Td +/F128_0 9.963 Tf +(Finally) 28.2351 Tj +65 TJm +(,) 2.49075 Tj +[1 0 0 1 104.568 562.59] cm +0 g +0 G +[1 0 0 1 -104.568 -562.59] cm +[1 0 0 1 0 0] Tm +0 0 Td +104.568 562.59 Td +/F130_0 9.963 Tf +(dlltest.c) 53.8002 Tj +[1 0 0 1 158.366 562.59] cm +0 g +0 G +[1 0 0 1 -158.366 -562.59] cm +[1 0 0 1 0 0] Tm +0 0 Td +160.856 562.59 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(sample) 28.2252 Tj +-250 TJm +(program) 33.7546 Tj +-250 TJm +(using) 21.5898 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(D) 7.19329 Tj +1 TJm +(LL.) 14.6655 Tj +-500 TJm +(It) 6.08739 Tj +-250 TJm +(has) 13.2807 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(project) 27.6673 Tj +-250 TJm +(\002le,) 15.2235 Tj +[1 0 0 1 388.58 562.59] cm +0 g +0 G +[1 0 0 1 -388.58 -562.59] cm +[1 0 0 1 0 0] Tm +0 0 Td +388.58 562.59 Td +/F130_0 9.963 Tf +(dlltest.dsp) 65.7558 Tj +[1 0 0 1 454.333 562.59] cm +0 g +0 G +[1 0 0 1 -454.333 -562.59] cm +[1 0 0 1 0 0] Tm +0 0 Td +454.333 562.59 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 560.433] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -550.471] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 540.672 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(just) 14.3965 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(mak) 17.1563 Tj +10 TJm +(e\002le) 17.1563 Tj +-250 TJm +(fo) 8.29918 Tj +1 TJm +(r) 3.31768 Tj +-250 TJm +(V) 7.19329 Tj +60 TJm +(isual) 18.8201 Tj +-250 TJm +(C,) 9.13607 Tj +-250 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(look) 17.7142 Tj +-250 TJm +(at) 7.19329 Tj +[1 0 0 1 292.212 540.672] cm +0 g +0 G +[1 0 0 1 -292.212 -540.672] cm +[1 0 0 1 0 0] Tm +0 0 Td +292.212 540.672 Td +/F130_0 9.963 Tf +(makefile.msc) 71.7336 Tj +[1 0 0 1 363.943 540.672] cm +0 g +0 G +[1 0 0 1 -363.943 -540.672] cm +[1 0 0 1 0 0] Tm +0 0 Td +363.943 540.672 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 538.516] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -528.553] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 518.755 Td +/F128_0 9.963 Tf +(Be) 11.0689 Tj +-291 TJm +(a) 4.42357 Tj +15 TJm +(w) 7.19329 Tj +10 TJm +(are) 12.1648 Tj +-291 TJm +(that) 14.9445 Tj +-291 TJm +(if) 6.08739 Tj +-291 TJm +(you) 14.9445 Tj +-291 TJm +(compile) 32.1008 Tj +[1 0 0 1 192.07 518.755] cm +0 g +0 G +[1 0 0 1 -192.07 -518.755] cm +[1 0 0 1 0 0] Tm +0 0 Td +192.07 518.755 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 221.957 518.755] cm +0 g +0 G +[1 0 0 1 -221.957 -518.755] cm +[1 0 0 1 0 0] Tm +0 0 Td +224.857 518.755 Td +/F128_0 9.963 Tf +(itself) 19.926 Tj +-291 TJm +(on) 9.963 Tj +-291 TJm +(W) 9.40507 Tj +40 TJm +(in32,) 20.205 Tj +-301 TJm +(you) 14.9445 Tj +-291 TJm +(must) 19.378 Tj +-291 TJm +(set) 11.0689 Tj +[1 0 0 1 346.842 518.755] cm +0 g +0 G +[1 0 0 1 -346.842 -518.755] cm +[1 0 0 1 0 0] Tm +0 0 Td +346.842 518.755 Td +/F130_0 9.963 Tf +(BZ_UNIX) 41.8446 Tj +[1 0 0 1 388.685 518.755] cm +0 g +0 G +[1 0 0 1 -388.685 -518.755] cm +[1 0 0 1 0 0] Tm +0 0 Td +391.584 518.755 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-291 TJm +(0) 4.9815 Tj +-291 TJm +(and) 14.3866 Tj +[1 0 0 1 427.399 518.755] cm +0 g +0 G +[1 0 0 1 -427.399 -518.755] cm +[1 0 0 1 0 0] Tm +0 0 Td +427.399 518.755 Td +/F130_0 9.963 Tf +(BZ_LCCWIN32) 65.7558 Tj +[1 0 0 1 493.153 518.755] cm +0 g +0 G +[1 0 0 1 -493.153 -518.755] cm +[1 0 0 1 0 0] Tm +0 0 Td +496.052 518.755 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-291 TJm +(1,) 7.47225 Tj +-301 TJm +(in) 7.75121 Tj +-291 TJm +(the) 12.1748 Tj +72 506.8 Td +(\002le) 12.7327 Tj +[1 0 0 1 87.223 506.799] cm +0 g +0 G +[1 0 0 1 -87.223 -506.799] cm +[1 0 0 1 0 0] Tm +0 0 Td +87.223 506.799 Td +/F130_0 9.963 Tf +(bzip2.c) 41.8446 Tj +[1 0 0 1 129.066 506.799] cm +0 g +0 G +[1 0 0 1 -129.066 -506.799] cm +[1 0 0 1 0 0] Tm +0 0 Td +129.066 506.799 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(before) 25.4455 Tj +-250 TJm +(compiling.) 42.9007 Tj +-310 TJm +(Otherwi) 32.6488 Tj +1 TJm +(se) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(resulting) 34.8705 Tj +-250 TJm +(binary) 25.4555 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(on') 13.2807 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ork) 13.2807 Tj +-250 TJm +(correctly) 35.4085 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 504.643] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -494.68] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 484.882 Td +/F128_0 9.963 Tf +(I) 3.31768 Tj +-250 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(en') 12.7228 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(tried) 18.2622 Tj +-250 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(this) 14.3965 Tj +-250 TJm +(stuf) 14.9445 Tj +25 TJm +(f) 3.31768 Tj +-249 TJm +(myself,) 29.61 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(it) 5.53943 Tj +-250 TJm +(all) 9.963 Tj +-250 TJm +(looks) 21.5898 Tj +-250 TJm +(plausible.) 38.4671 Tj +[1 0 0 1 72 482.725] cm +0 g +0 G +0 g +0 G +[1 0 0 1 0 -431.873] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(30) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 34 34 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 140.398 0] cm +0 g +0 G +[1 0 0 1 -140.398 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -13.948] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -21.554] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -720] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 701.916 Td +/F121_0 24.79 Tf +(4.) 20.6749 Tj +-278 TJm +(Miscellanea) 139.171 Tj +[1 0 0 1 72 701.606] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.135] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -14.116] cm +0 g +0 G +[1 0 0 1 -72 -678.355] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 658.006 Td +/F121_0 17.215 Tf +(T) 10.5184 Tj +80 TJm +(ab) 20.0899 Tj +10 TJm +(le) 14.3573 Tj +-278 TJm +(of) 16.251 Tj +-278 TJm +(Contents) 74.5926 Tj +[1 0 0 1 72 649.183] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -11.74] cm +0 g +0 G +[1 0 0 1 -72 -637.443] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 637.443 Td +/F128_0 9.963 Tf +(4.1.) 14.9445 Tj +-310 TJm +(Limitations) 45.9494 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(comp) 22.1378 Tj +1 TJm +(ressed) 24.8975 Tj +-250 TJm +(\002le) 12.7327 Tj +-250 TJm +(format) 26.5614 Tj +[1 0 0 1 255.231 637.443] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -260.212 -637.443] cm +[1 0 0 1 0 0] Tm +0 0 Td +269.154 637.443 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 637.443] cm +0 g +0 G +[1 0 0 1 -506.127 -637.443] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 637.443 Td +/F128_0 9.963 Tf +(31) 9.963 Tj +[1 0 0 1 516.09 637.443] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.798] cm +0 g +0 G +[1 0 0 1 -72 -625.488] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 625.488 Td +/F128_0 9.963 Tf +(4.2.) 14.9445 Tj +-310 TJm +(Portability) 42.0737 Tj +-250 TJm +(issues) 23.8016 Tj +[1 0 0 1 158.395 625.488] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -163.376 -625.488] cm +[1 0 0 1 0 0] Tm +0 0 Td +172.03 625.488 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 625.488] cm +0 g +0 G +[1 0 0 1 -506.127 -625.488] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 625.488 Td +/F128_0 9.963 Tf +(32) 9.963 Tj +[1 0 0 1 516.09 625.488] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.798] cm +0 g +0 G +[1 0 0 1 -72 -613.533] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 613.533 Td +/F128_0 9.963 Tf +(4.3.) 14.9445 Tj +-310 TJm +(Reporting) 39.852 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ugs) 13.8386 Tj +[1 0 0 1 150.993 613.533] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 -155.975 -613.533] cm +[1 0 0 1 0 0] Tm +0 0 Td +166.115 613.533 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 613.533] cm +0 g +0 G +[1 0 0 1 -506.127 -613.533] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 613.533 Td +/F128_0 9.963 Tf +(32) 9.963 Tj +[1 0 0 1 516.09 613.533] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.798] cm +0 g +0 G +[1 0 0 1 -72 -601.578] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 601.578 Td +/F128_0 9.963 Tf +(4.4.) 14.9445 Tj +-310 TJm +(Did) 14.9445 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(get) 12.1748 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(right) 18.8201 Tj +-250 TJm +(packa) 23.2337 Tj +1 TJm +(ge?) 13.8286 Tj +[1 0 0 1 212.602 601.578] cm +0 g +0 G +[1 0 0 1 3.088 0] cm +0 g +0 G +[1 0 0 1 3.088 0] cm +0 g +0 G +[1 0 0 1 -218.778 -601.578] cm +[1 0 0 1 0 0] Tm +0 0 Td +229.109 601.578 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 601.578] cm +0 g +0 G +[1 0 0 1 -506.127 -601.578] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 601.578 Td +/F128_0 9.963 Tf +(33) 9.963 Tj +[1 0 0 1 516.09 601.578] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.798] cm +0 g +0 G +[1 0 0 1 -72 -589.623] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 589.623 Td +/F128_0 9.963 Tf +(4.5.) 14.9445 Tj +-310 TJm +(Further) 29.3311 Tj +-250 TJm +(Reading) 33.2067 Tj +[1 0 0 1 155.058 589.623] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 -160.039 -589.623] cm +[1 0 0 1 0 0] Tm +0 0 Td +170.361 589.623 Td +/F143_0 9.963 Tf +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +-166 TJm +(:) 2.76971 Tj +-167 TJm +(:) 2.76971 Tj +[1 0 0 1 506.127 589.623] cm +0 g +0 G +[1 0 0 1 -506.127 -589.623] cm +[1 0 0 1 0 0] Tm +0 0 Td +506.127 589.623 Td +/F128_0 9.963 Tf +(34) 9.963 Tj +[1 0 0 1 516.09 589.623] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -444.09 -2.157] cm +0 g +0 G +[1 0 0 1 0 -9.135] cm +0 g +0 G +[1 0 0 1 0 -9.631] cm +0 g +0 G +[1 0 0 1 -72 -568.7] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 558.901 Td +/F128_0 9.963 Tf +(These) 23.7916 Tj +-250 TJm +(are) 12.1648 Tj +-250 TJm +(just) 14.3965 Tj +-250 TJm +(some) 21.0319 Tj +-250 TJm +(random) 30.437 Tj +-249 TJm +(thoughts) 34.3225 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(mine.) 22.4168 Tj +-620 TJm +(Y) 7.19329 Tj +110 TJm +(our) 13.2807 Tj +-250 TJm +(mileage) 31.5429 Tj +-250 TJm +(may) 17.1563 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(ary) 12.7228 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 556.744] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.631] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -547.113] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 524.48 Td +/F121_0 20.659 Tf +(4.1.) 34.4592 Tj +-278 TJm +(Limitations) 110.195 Tj +-278 TJm +(of) 19.5021 Tj +-278 TJm +(the) 30.9885 Tj +-278 TJm +(compres) 86.1067 Tj +1 TJm +(sed) 35.5955 Tj +-278 TJm +(\002le) 29.8523 Tj +-278 TJm +(f) 6.87945 Tj +20 TJm +(ormat) 57.3907 Tj +[1 0 0 1 72 520.203] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.631] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -510.572] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 502.893 Td +/F130_0 9.963 Tf +(bzip2-1.0.X) 65.7558 Tj +[1 0 0 1 137.753 502.893] cm +0 g +0 G +[1 0 0 1 -137.753 -502.893] cm +[1 0 0 1 0 0] Tm +0 0 Td +137.753 502.893 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +[1 0 0 1 143.405 502.893] cm +0 g +0 G +[1 0 0 1 -143.405 -502.893] cm +[1 0 0 1 0 0] Tm +0 0 Td +143.405 502.893 Td +/F130_0 9.963 Tf +(0.9.5) 29.889 Tj +[1 0 0 1 173.293 502.893] cm +0 g +0 G +[1 0 0 1 -173.293 -502.893] cm +[1 0 0 1 0 0] Tm +0 0 Td +176.453 502.893 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 194 502.893] cm +0 g +0 G +[1 0 0 1 -194 -502.893] cm +[1 0 0 1 0 0] Tm +0 0 Td +194 502.893 Td +/F130_0 9.963 Tf +(0.9.0) 29.889 Tj +[1 0 0 1 223.888 502.893] cm +0 g +0 G +[1 0 0 1 -223.888 -502.893] cm +[1 0 0 1 0 0] Tm +0 0 Td +227.048 502.893 Td +/F128_0 9.963 Tf +(use) 13.2807 Tj +-317 TJm +(e) 4.42357 Tj +15 TJm +(xactly) 24.3496 Tj +-317 TJm +(the) 12.1748 Tj +-318 TJm +(s) 3.87561 Tj +1 TJm +(ame) 16.5984 Tj +-318 TJm +(\002le) 12.7327 Tj +-317 TJm +(format) 26.5614 Tj +-317 TJm +(as) 8.29918 Tj +-317 TJm +(the) 12.1748 Tj +-317 TJm +(original) 30.9949 Tj +-317 TJm +(v) 4.9815 Tj +15 TJm +(ersion,) 26.8403 Tj +[1 0 0 1 455.801 502.893] cm +0 g +0 G +[1 0 0 1 -455.801 -502.893] cm +[1 0 0 1 0 0] Tm +0 0 Td +455.801 502.893 Td +/F130_0 9.963 Tf +(bzip2-0.1) 53.8002 Tj +[1 0 0 1 509.599 502.893] cm +0 g +0 G +[1 0 0 1 -509.599 -502.893] cm +[1 0 0 1 0 0] Tm +0 0 Td +509.599 502.893 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-1023 TJm +(This) 17.7142 Tj +72 490.938 Td +(decision) 33.2067 Tj +-222 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-221 TJm +(made) 21.5799 Tj +-222 TJm +(in) 7.75121 Tj +-222 TJm +(the) 12.1748 Tj +-222 TJm +(interests) 33.2067 Tj +-221 TJm +(of) 8.29918 Tj +-222 TJm +(stability) 32.1107 Tj +65 TJm +(.) 2.49075 Tj +-601 TJm +(Creating) 34.3126 Tj +-222 TJm +(yet) 12.1748 Tj +-222 TJm +(another) 29.879 Tj +-222 TJm +(inc) 12.1748 Tj +1 TJm +(ompatible) 39.852 Tj +-222 TJm +(compressed) 47.0353 Tj +-222 TJm +(\002le) 12.7327 Tj +-222 TJm +(form) 19.3681 Tj +1 TJm +(at) 7.19329 Tj +-222 TJm +(w) 7.19329 Tj +10 TJm +(ould) 17.7142 Tj +-222 TJm +(create) 23.7817 Tj +72 478.983 Td +(further) 27.1093 Tj +-250 TJm +(confusion) 39.2941 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(disrupti) 30.4469 Tj +1 TJm +(on) 9.963 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(users.) 22.9647 Tj +[1 0 0 1 72 476.826] cm +0 g +0 G +[1 0 0 1 0 -9.632] cm +0 g +0 G +[1 0 0 1 -72 -467.194] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 457.396 Td +/F128_0 9.963 Tf +(Ne) 11.6169 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ertheless,) 37.3513 Tj +-233 TJm +(this) 14.3965 Tj +-230 TJm +(is) 6.64532 Tj +-229 TJm +(not) 12.7327 Tj +-230 TJm +(a) 4.42357 Tj +-229 TJm +(painless) 32.1008 Tj +-230 TJm +(decisio) 28.2252 Tj +1 TJm +(n.) 7.47225 Tj +-607 TJm +(De) 11.6169 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(elopment) 37.0823 Tj +-229 TJm +(w) 7.19329 Tj +10 TJm +(ork) 13.2807 Tj +-230 TJm +(si) 6.64532 Tj +1 TJm +(nce) 13.8286 Tj +-230 TJm +(the) 12.1748 Tj +-229 TJm +(release) 27.6573 Tj +-230 TJm +(of) 8.29918 Tj +[1 0 0 1 407.317 457.396] cm +0 g +0 G +[1 0 0 1 -407.317 -457.396] cm +[1 0 0 1 0 0] Tm +0 0 Td +407.317 457.396 Td +/F130_0 9.963 Tf +(bzip2-0.1) 53.8002 Tj +[1 0 0 1 461.115 457.396] cm +0 g +0 G +[1 0 0 1 -461.115 -457.396] cm +[1 0 0 1 0 0] Tm +0 0 Td +463.402 457.396 Td +/F128_0 9.963 Tf +(in) 7.75121 Tj +-229 TJm +(August) 28.7831 Tj +-230 TJm +(1997) 19.926 Tj +-229 TJm +(has) 13.2807 Tj +72 445.441 Td +(sho) 13.8386 Tj +25 TJm +(wn) 12.1748 Tj +-226 TJm +(comple) 29.3311 Tj +15 TJm +(xities) 21.5898 Tj +-225 TJm +(in) 7.75121 Tj +-226 TJm +(the) 12.1748 Tj +-226 TJm +(\002le) 12.7327 Tj +-226 TJm +(forma) 23.7916 Tj +1 TJm +(t) 2.76971 Tj +-226 TJm +(which) 24.3496 Tj +-226 TJm +(slo) 11.6268 Tj +25 TJm +(w) 7.19329 Tj +-226 TJm +(do) 9.963 Tj +25 TJm +(wn) 12.1748 Tj +-225 TJm +(decompression) 59.768 Tj +-226 TJm +(and,) 16.8773 Tj +-231 TJm +(in) 7.75121 Tj +-225 TJm +(retrospect,) 41.7749 Tj +-231 TJm +(are) 12.1648 Tj +-226 TJm +(unnecess) 35.9664 Tj +1 TJm +(ary) 12.7228 Tj +65 TJm +(.) 2.49075 Tj +-604 TJm +(These) 23.7916 Tj +-226 TJm +(are:) 14.9345 Tj +[1 0 0 1 72 443.284] cm +0 g +0 G +[1 0 0 1 0 -29.062] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -414.222] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 414.222 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 414.222] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -414.222] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 414.222 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-265 TJm +(run-length) 41.5059 Tj +-265 TJm +(encoder) 31.5329 Tj +40 TJm +(,) 2.49075 Tj +-269 TJm +(which) 24.3496 Tj +-266 TJm +(is) 6.64532 Tj +-265 TJm +(the) 12.1748 Tj +-265 TJm +(\002rst) 15.5024 Tj +-265 TJm +(of) 8.29918 Tj +-266 TJm +(the) 12.1748 Tj +-265 TJm +(compression) 50.363 Tj +-265 TJm +(transformations,) 65.0285 Tj +-269 TJm +(is) 6.64532 Tj +-265 TJm +(entirely) 30.437 Tj +-265 TJm +(irrele) 21.0219 Tj +25 TJm +(v) 4.9815 Tj +25 TJm +(ant.) 14.6655 Tj +-712 TJm +(The) 15.4925 Tj +-265 TJm +(original) 30.9949 Tj +86.944 402.267 Td +(purpose) 31.5429 Tj +-301 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-301 TJm +(to) 7.75121 Tj +-301 TJm +(protect) 27.6673 Tj +-301 TJm +(the) 12.1748 Tj +-301 TJm +(sorting) 27.6772 Tj +-301 TJm +(algorit) 26.0134 Tj +1 TJm +(hm) 12.7327 Tj +-301 TJm +(from) 19.3681 Tj +-301 TJm +(the) 12.1748 Tj +-301 TJm +(v) 4.9815 Tj +15 TJm +(ery) 12.7228 Tj +-301 TJm +(w) 7.19329 Tj +10 TJm +(orst) 14.9445 Tj +-301 TJm +(case) 17.1463 Tj +-301 TJm +(input:) 23.2536 Tj +-412 TJm +(a) 4.42357 Tj +-301 TJm +(string) 22.6957 Tj +-301 TJm +(of) 8.29918 Tj +-301 TJm +(repeated) 33.7447 Tj +-301 TJm +(symbols.) 35.7074 Tj +-926 TJm +(But) 14.3965 Tj +86.944 390.312 Td +(algorithm) 38.7461 Tj +-274 TJm +(steps) 19.926 Tj +-274 TJm +(Q6a) 16.5984 Tj +-275 TJm +(and) 14.3866 Tj +-274 TJm +(Q6b) 17.1563 Tj +-274 TJm +(in) 7.75121 Tj +-274 TJm +(the) 12.1748 Tj +-275 TJm +(original) 30.9949 Tj +-274 TJm +(Burro) 23.2437 Tj +25 TJm +(ws-Wheeler) 48.1313 Tj +-274 TJm +(technical) 35.9664 Tj +-274 TJm +(report) 23.7916 Tj +-274 TJm +(\(SRC-124\)) 43.7276 Tj +-274 TJm +(sho) 13.8386 Tj +25 TJm +(w) 7.19329 Tj +-275 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-274 TJm +(repeats) 28.2152 Tj +-274 TJm +(can) 13.8286 Tj +86.944 378.357 Td +(be) 9.40507 Tj +-250 TJm +(handled) 31.5429 Tj +-250 TJm +(without) 30.4469 Tj +-250 TJm +(dif) 11.0689 Tj +25 TJm +(\002culty) 25.4654 Tj +-249 TJm +(in) 7.75121 Tj +-250 TJm +(block) 22.1378 Tj +-250 TJm +(sorting.) 30.168 Tj +[1 0 0 1 269.617 378.357] cm +0 g +0 G +[1 0 0 1 -197.617 -21.587] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -356.77] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 356.77 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 356.77] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -356.77] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 356.77 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-293 TJm +(randomisation) 57.0083 Tj +-293 TJm +(mechanism) 45.3815 Tj +-293 TJm +(doesn') 26.5614 Tj +18 TJm +(t) 2.76971 Tj +-293 TJm +(really) 22.6858 Tj +-293 TJm +(need) 18.8101 Tj +-293 TJm +(to) 7.75121 Tj +-293 TJm +(be) 9.40507 Tj +-293 TJm +(there.) 22.4068 Tj +-879 TJm +(Udi) 14.9445 Tj +-294 TJm +(Man) 18.2622 Tj +1 TJm +(ber) 12.7228 Tj +-294 TJm +(and) 14.3866 Tj +-293 TJm +(Gene) 21.0219 Tj +-293 TJm +(Myers) 25.4555 Tj +-293 TJm +(published) 38.7461 Tj +-293 TJm +(a) 4.42357 Tj +-293 TJm +(suf) 12.1748 Tj +25 TJm +(\002x) 10.5209 Tj +86.944 344.815 Td +(array) 20.464 Tj +-238 TJm +(construction) 49.2571 Tj +-238 TJm +(algorithm) 38.7461 Tj +-239 TJm +(a) 4.42357 Tj +-238 TJm +(fe) 7.74125 Tj +25 TJm +(w) 7.19329 Tj +-238 TJm +(years) 21.0219 Tj +-238 TJm +(back,) 21.3009 Tj +-241 TJm +(which) 24.3496 Tj +-238 TJm +(can) 13.8286 Tj +-238 TJm +(be) 9.40507 Tj +-239 TJm +(emplo) 24.9075 Tj +10 TJm +(yed) 14.3866 Tj +-238 TJm +(to) 7.75121 Tj +-238 TJm +(sort) 14.9445 Tj +-239 TJm +(a) 4.42357 Tj +1 TJm +(n) 4.9815 Tj +15 TJm +(y) 4.9815 Tj +-239 TJm +(block,) 24.6285 Tj +-240 TJm +(no) 9.963 Tj +-239 TJm +(matter) 25.4555 Tj +-238 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-238 TJm +(repetiti) 28.2252 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e,) 6.91432 Tj +86.944 332.86 Td +(in) 7.75121 Tj +-229 TJm +(O\(N) 17.7043 Tj +-230 TJm +(log) 12.7327 Tj +-229 TJm +(N\)) 10.511 Tj +-230 TJm +(time.) 20.205 Tj +-606 TJm +(Subsequent) 45.9394 Tj +-229 TJm +(w) 7.19329 Tj +10 TJm +(ork) 13.2807 Tj +-229 TJm +(by) 9.963 Tj +-230 TJm +(K) 7.19329 Tj +15 TJm +(unihik) 25.4654 Tj +10 TJm +(o) 4.9815 Tj +-229 TJm +(Sadakane) 38.1782 Tj +-230 TJm +(ha) 9.40507 Tj +1 TJm +(s) 3.87561 Tj +-230 TJm +(produced) 37.0723 Tj +-229 TJm +(a) 4.42357 Tj +-230 TJm +(deri) 15.4925 Tj +25 TJm +(v) 4.9815 Tj +25 TJm +(ati) 9.963 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-229 TJm +(O\(N) 17.7043 Tj +-229 TJm +(\(log) 16.0504 Tj +-230 TJm +(N\)^2\)) 23.4828 Tj +-229 TJm +(algorithm) 38.7461 Tj +86.944 320.905 Td +(which) 24.3496 Tj +-250 TJm +(usually) 28.7831 Tj +-250 TJm +(outperforms) 48.6991 Tj +-250 TJm +(th) 7.75121 Tj +1 TJm +(e) 4.42357 Tj +-250 TJm +(Manber) 30.9849 Tj +20 TJm +(-Myers) 28.7731 Tj +-250 TJm +(algorithm.) 41.2369 Tj +[1 0 0 1 314.189 320.905] cm +0 g +0 G +[1 0 0 1 -242.189 -11.789] cm +0 g +0 G +[1 0 0 1 -72 -309.116] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 299.318 Td +/F128_0 9.963 Tf +(I) 3.31768 Tj +-248 TJm +(could) 22.1378 Tj +-248 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-248 TJm +(changed) 33.1967 Tj +-248 TJm +(to) 7.75121 Tj +-248 TJm +(Sadakane') 41.4959 Tj +55 TJm +(s) 3.87561 Tj +-248 TJm +(algor) 20.474 Tj +1 TJm +(ithm,) 20.7629 Tj +-249 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-248 TJm +(I) 3.31768 Tj +-248 TJm +(\002nd) 15.5024 Tj +-248 TJm +(it) 5.53943 Tj +-248 TJm +(to) 7.75121 Tj +-248 TJm +(be) 9.40507 Tj +-248 TJm +(slo) 11.6268 Tj +25 TJm +(wer) 14.9345 Tj +-248 TJm +(than) 17.1563 Tj +[1 0 0 1 392.444 299.318] cm +0 g +0 G +[1 0 0 1 -392.444 -299.318] cm +[1 0 0 1 0 0] Tm +0 0 Td +392.444 299.318 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 422.332 299.318] cm +0 g +0 G +[1 0 0 1 -422.332 -299.318] cm +[1 0 0 1 0 0] Tm +0 0 Td +422.332 299.318 Td +/F128_0 9.963 Tf +(') 3.31768 Tj +55 TJm +(s) 3.87561 Tj +-248 TJm +(e) 4.42357 Tj +15 TJm +(xisting) 27.1292 Tj +-248 TJm +(algorithm) 38.7461 Tj +-248 TJm +(for) 11.6169 Tj +-248 TJm +(most) 19.378 Tj +86.944 287.363 Td +(inputs,) 26.8503 Tj +-369 TJm +(and) 14.3866 Tj +-346 TJm +(the) 12.1748 Tj +-346 TJm +(randomis) 37.0823 Tj +1 TJm +(ation) 19.926 Tj +-346 TJm +(mechanism) 45.3815 Tj +-346 TJm +(p) 4.9815 Tj +1 TJm +(rotects) 26.5614 Tj +-346 TJm +(adequately) 43.1597 Tj +-345 TJm +(ag) 9.40507 Tj +5 TJm +(ainst) 18.8201 Tj +-346 TJm +(bad) 14.3866 Tj +-346 TJm +(cases) 21.0219 Tj +1 TJm +(.) 2.49075 Tj +-1194 TJm +(I) 3.31768 Tj +-346 TJm +(didn') 21.0319 Tj +18 TJm +(t) 2.76971 Tj +-346 TJm +(think) 20.4839 Tj +-345 TJm +(it) 5.53943 Tj +-346 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-345 TJm +(a) 4.42357 Tj +-346 TJm +(good) 19.926 Tj +86.944 275.408 Td +(tradeof) 28.2152 Tj +25 TJm +(f) 3.31768 Tj +-261 TJm +(to) 7.75121 Tj +-262 TJm +(mak) 17.1563 Tj +10 TJm +(e.) 6.91432 Tj +-690 TJm +(P) 5.53943 Tj +15 TJm +(artly) 18.2622 Tj +-261 TJm +(this) 14.3965 Tj +-262 TJm +(is) 6.64532 Tj +-261 TJm +(due) 14.3866 Tj +-262 TJm +(to) 7.75121 Tj +-261 TJm +(the) 12.1748 Tj +-262 TJm +(f) 3.31768 Tj +10 TJm +(act) 11.6169 Tj +-261 TJm +(that) 14.9445 Tj +-262 TJm +(I) 3.31768 Tj +-262 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-261 TJm +(not) 12.7327 Tj +-262 TJm +(\003ooded) 29.889 Tj +-261 TJm +(with) 17.7142 Tj +-262 TJm +(email) 22.1378 Tj +-261 TJm +(complaints) 43.7276 Tj +-262 TJm +(about) 22.1378 Tj +[1 0 0 1 479.557 275.408] cm +0 g +0 G +[1 0 0 1 -479.557 -275.408] cm +[1 0 0 1 0 0] Tm +0 0 Td +479.557 275.408 Td +/F130_0 9.963 Tf +(bzip2-0.1) 53.8002 Tj +[1 0 0 1 533.355 275.408] cm +0 g +0 G +[1 0 0 1 -533.355 -275.408] cm +[1 0 0 1 0 0] Tm +0 0 Td +533.355 275.408 Td +/F128_0 9.963 Tf +(') 3.31768 Tj +55 TJm +(s) 3.87561 Tj +86.944 263.453 Td +(performance) 50.343 Tj +-250 TJm +(on) 9.963 Tj +-250 TJm +(repetiti) 28.2252 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(dat) 12.1748 Tj +1 TJm +(a,) 6.91432 Tj +-250 TJm +(so) 8.85711 Tj +-250 TJm +(perhaps) 30.9849 Tj +-250 TJm +(it) 5.53943 Tj +-250 TJm +(isn') 14.9445 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(problem) 33.2067 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(real) 14.9345 Tj +-250 TJm +(inputs.) 26.8503 Tj +[1 0 0 1 72 261.296] cm +0 g +0 G +[1 0 0 1 0 -9.632] cm +0 g +0 G +[1 0 0 1 -72 -251.664] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 241.866 Td +/F128_0 9.963 Tf +(Probably) 35.9764 Tj +-289 TJm +(the) 12.1748 Tj +-288 TJm +(best) 16.0504 Tj +-289 TJm +(long-term) 39.2941 Tj +-288 TJm +(solution,) 34.6015 Tj +-299 TJm +(and) 14.3866 Tj +-288 TJm +(the) 12.1748 Tj +-289 TJm +(one) 14.3866 Tj +-289 TJm +(I) 3.31768 Tj +-288 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-289 TJm +(incorporated) 50.353 Tj +-288 TJm +(into) 15.5024 Tj +-289 TJm +(0.9.5) 19.926 Tj +-289 TJm +(and) 14.3866 Tj +-288 TJm +(abo) 14.3866 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e,) 6.91432 Tj +-298 TJm +(is) 6.64532 Tj +-289 TJm +(to) 7.75121 Tj +-289 TJm +(use) 13.2807 Tj +-288 TJm +(the) 12.1748 Tj +-289 TJm +(e) 4.42357 Tj +15 TJm +(xisting) 27.1292 Tj +86.944 229.911 Td +(sorting) 27.6772 Tj +-451 TJm +(algorithm) 38.7461 Tj +-451 TJm +(initially) 31.0049 Tj +65 TJm +(,) 2.49075 Tj +-502 TJm +(and) 14.3866 Tj +-451 TJm +(f) 3.31768 Tj +10 TJm +(all) 9.963 Tj +-452 TJm +(back) 18.8101 Tj +-451 TJm +(to) 7.75121 Tj +-451 TJm +(a) 4.42357 Tj +-452 TJm +(O\(N) 17.7043 Tj +-451 TJm +(\(log) 16.0504 Tj +-451 TJm +(N\)^2\)) 23.4828 Tj +-451 TJm +(algorithm) 38.7461 Tj +-452 TJm +(if) 6.08739 Tj +-451 TJm +(the) 12.1748 Tj +-451 TJm +(standard) 33.7546 Tj +-452 TJm +(al) 7.19329 Tj +1 TJm +(gorithm) 31.5528 Tj +-452 TJm +(gets) 16.0504 Tj +-451 TJm +(into) 15.5024 Tj +86.944 217.956 Td +(dif) 11.0689 Tj +25 TJm +(\002culties.) 34.0436 Tj +[1 0 0 1 72 217.856] cm +0 g +0 G +[1 0 0 1 0 -21.487] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -196.369] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 196.369 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 196.369] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -196.369] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 196.369 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-299 TJm +(compressed) 47.0353 Tj +-299 TJm +(\002le) 12.7327 Tj +-299 TJm +(format) 26.5614 Tj +-299 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-299 TJm +(ne) 9.40507 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-299 TJm +(designed) 35.4185 Tj +-299 TJm +(to) 7.75121 Tj +-299 TJm +(be) 9.40507 Tj +-299 TJm +(handled) 31.5429 Tj +-299 TJm +(by) 9.963 Tj +-299 TJm +(a) 4.42357 Tj +-299 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +-312 TJm +(and) 14.3866 Tj +-299 TJm +(I) 3.31768 Tj +-299 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-299 TJm +(had) 14.3866 Tj +-299 TJm +(to) 7.75121 Tj +-299 TJm +(jump) 20.4839 Tj +-299 TJm +(though) 27.6772 Tj +-299 TJm +(some) 21.0319 Tj +86.944 184.414 Td +(hoops) 23.8016 Tj +-278 TJm +(to) 7.75121 Tj +-277 TJm +(produce) 32.0908 Tj +-278 TJm +(an) 9.40507 Tj +-277 TJm +(ef) 7.74125 Tj +25 TJm +(\002cient) 24.9075 Tj +-278 TJm +(implementation) 62.5477 Tj +-277 TJm +(of) 8.29918 Tj +-278 TJm +(decompression.) 62.2588 Tj +-786 TJm +(It') 9.40507 Tj +55 TJm +(s) 3.87561 Tj +-278 TJm +(a) 4.42357 Tj +-277 TJm +(bit) 10.5209 Tj +-278 TJm +(hairy) 20.474 Tj +65 TJm +(.) 2.49075 Tj +-786 TJm +(T) 6.08739 Tj +35 TJm +(ry) 8.29918 Tj +-278 TJm +(passing) 29.889 Tj +[1 0 0 1 468.269 184.414] cm +0 g +0 G +[1 0 0 1 -468.269 -184.414] cm +[1 0 0 1 0 0] Tm +0 0 Td +468.269 184.414 Td +/F130_0 9.963 Tf +(decompress.c) 71.7336 Tj +[1 0 0 1 540 184.414] cm +0 g +0 G +[1 0 0 1 -540 -184.414] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 172.459 Td +/F128_0 9.963 Tf +(through) 30.9949 Tj +-268 TJm +(the) 12.1748 Tj +-268 TJm +(C) 6.64532 Tj +-268 TJm +(preprocessor) 50.901 Tj +-268 TJm +(and) 14.3866 Tj +-268 TJm +(you') 18.2622 Tj +10 TJm +(ll) 5.53943 Tj +-268 TJm +(see) 12.7228 Tj +-268 TJm +(what) 19.3681 Tj +-268 TJm +(I) 3.31768 Tj +-269 TJm +(mea) 16.5984 Tj +1 TJm +(n.) 7.47225 Tj +-729 TJm +(Much) 23.2437 Tj +-268 TJm +(of) 8.29918 Tj +-269 TJm +(this) 14.3965 Tj +-268 TJm +(comple) 29.3311 Tj +15 TJm +(xit) 10.5209 Tj +1 TJm +(y) 4.9815 Tj +-269 TJm +(could) 22.1378 Tj +-268 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-268 TJm +(been) 18.8101 Tj +-268 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +20 TJm +(oided) 22.1378 Tj +-268 TJm +(if) 6.08739 Tj +-268 TJm +(the) 12.1748 Tj +86.944 160.503 Td +(compressed) 47.0353 Tj +-250 TJm +(size) 15.4925 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(each) 18.2522 Tj +-250 TJm +(bloc) 17.1563 Tj +1 TJm +(k) 4.9815 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-250 TJm +(recorded) 34.8506 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(data) 16.5984 Tj +-250 TJm +(stream.) 29.0521 Tj +[1 0 0 1 368.754 160.503] cm +0 g +0 G +[1 0 0 1 -296.754 -21.586] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -138.917] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 138.917 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 138.917] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -138.917] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 138.917 Td +/F128_0 9.963 Tf +(An) 12.1748 Tj +-250 TJm +(Adler) 22.6858 Tj +20 TJm +(-32) 13.2807 Tj +-250 TJm +(checksum,) 42.3328 Tj +-250 TJm +(rather) 23.2337 Tj +-249 TJm +(than) 17.1563 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(CRC32) 29.899 Tj +-250 TJm +(checksum,) 42.3328 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ould) 17.7142 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(f) 3.31768 Tj +10 TJm +(aster) 18.8101 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(compute.) 36.8033 Tj +[1 0 0 1 424.934 138.917] cm +0 g +0 G +[1 0 0 1 -352.934 -11.789] cm +0 g +0 G +[1 0 0 1 -72 -127.128] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 117.33 Td +/F128_0 9.963 Tf +(It) 6.08739 Tj +-349 TJm +(w) 7.19329 Tj +10 TJm +(ould) 17.7142 Tj +-349 TJm +(be) 9.40507 Tj +-348 TJm +(f) 3.31768 Tj +10 TJm +(air) 10.511 Tj +-349 TJm +(to) 7.75121 Tj +-349 TJm +(say) 13.2807 Tj +-349 TJm +(that) 14.9445 Tj +-348 TJm +(the) 12.1748 Tj +[1 0 0 1 201.979 117.33] cm +0 g +0 G +[1 0 0 1 -201.979 -117.33] cm +[1 0 0 1 0 0] Tm +0 0 Td +201.979 117.33 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 231.867 117.33] cm +0 g +0 G +[1 0 0 1 -231.867 -117.33] cm +[1 0 0 1 0 0] Tm +0 0 Td +235.342 117.33 Td +/F128_0 9.963 Tf +(format) 26.5614 Tj +-349 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-348 TJm +(frozen) 25.4455 Tj +-349 TJm +(before) 25.4455 Tj +-349 TJm +(I) 3.31768 Tj +-349 TJm +(properl) 28.7731 Tj +1 TJm +(y) 4.9815 Tj +-349 TJm +(and) 14.3866 Tj +-349 TJm +(fully) 18.8201 Tj +-349 TJm +(understood) 44.2756 Tj +-348 TJm +(the) 12.1748 Tj +-349 TJm +(performance) 50.343 Tj +72 105.375 Td +(consequences) 54.7766 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(doing) 22.6957 Tj +-250 TJm +(so.) 11.3479 Tj +[1 0 0 1 72 103.218] cm +0 g +0 G +[1 0 0 1 0 -9.631] cm +0 g +0 G +[1 0 0 1 -72 -93.587] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 83.788 Td +/F128_0 9.963 Tf +(Impro) 24.3496 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(ements) 28.2252 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(I) 3.31768 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(as) 8.29918 Tj +-250 TJm +(abl) 12.1748 Tj +1 TJm +(e) 4.42357 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(incorporate) 45.3715 Tj +-250 TJm +(into) 15.5024 Tj +-250 TJm +(0.9.0,) 22.4168 Tj +-250 TJm +(despite) 28.2252 Tj +-250 TJm +(using) 21.5898 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(same) 20.474 Tj +-250 TJm +(\002le) 12.7327 Tj +-250 TJm +(for) 11.6169 Tj +1 TJm +(mat,) 17.4353 Tj +-250 TJm +(are:) 14.9345 Tj +[1 0 0 1 72 81.631] cm +0 g +0 G +[1 0 0 1 0 -30.779] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(31) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 35 35 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -6.854] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 116.329 -6.755] cm +0 g +0 G +[1 0 0 1 -382.4 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +498.728 749.245 Td +/F128_0 9.963 Tf +(Miscellanea) 48.1412 Tj +[1 0 0 1 266.071 749.146] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -7.094] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -31.517] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 710.037 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 710.037] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 710.037 Td +/F128_0 9.963 Tf +(Single) 25.4654 Tj +-202 TJm +(ar) 7.74125 Tj +1 TJm +(ray) 12.7228 Tj +-202 TJm +(implementation) 62.5477 Tj +-201 TJm +(of) 8.29918 Tj +-202 TJm +(the) 12.1748 Tj +-202 TJm +(in) 7.75121 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(erse) 16.0404 Tj +-201 TJm +(BWT) 22.1378 Tj +74 TJm +(.) 2.49075 Tj +-403 TJm +(This) 17.7142 Tj +-202 TJm +(signi\002cantly) 49.267 Tj +-201 TJm +(speeds) 26.5614 Tj +-202 TJm +(up) 9.963 Tj +-202 TJm +(decom) 26.5614 Tj +1 TJm +(pression,) 35.6974 Tj +-212 TJm +(presuma) 33.7546 Tj +1 TJm +(bly) 12.7327 Tj +-202 TJm +(because) 31.5329 Tj +86.944 698.082 Td +(it) 5.53943 Tj +-250 TJm +(reduces) 30.427 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(number) 30.437 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(cach) 18.2522 Tj +1 TJm +(e) 4.42357 Tj +-250 TJm +(misses.) 29.0621 Tj +[1 0 0 1 240.496 698.082] cm +0 g +0 G +[1 0 0 1 -168.496 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 676.164 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 676.164] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -676.164] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 676.164 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(aster) 18.8101 Tj +-314 TJm +(in) 7.75121 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(erse) 16.0404 Tj +-315 TJm +(MTF) 20.4839 Tj +-314 TJm +(transform) 38.7361 Tj +-314 TJm +(for) 11.6169 Tj +-315 TJm +(lar) 10.511 Tj +18 TJm +(ge) 9.40507 Tj +-314 TJm +(MTF) 20.4839 Tj +-314 TJm +(v) 4.9815 Tj +25 TJm +(alues.) 22.9647 Tj +-504 TJm +(The) 15.4925 Tj +-314 TJm +(ne) 9.40507 Tj +25 TJm +(w) 7.19329 Tj +-315 TJm +(i) 2.76971 Tj +1 TJm +(mplementation) 59.778 Tj +-315 TJm +(is) 6.64532 Tj +-314 TJm +(based) 22.6858 Tj +-314 TJm +(on) 9.963 Tj +-315 TJm +(the) 12.1748 Tj +-314 TJm +(notion) 25.4654 Tj +-315 TJm +(of) 8.29918 Tj +-314 TJm +(sliding) 27.1292 Tj +86.944 664.209 Td +(blocks) 26.0134 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(v) 4.9815 Tj +25 TJm +(alues.) 22.9647 Tj +[1 0 0 1 153.932 664.209] cm +0 g +0 G +[1 0 0 1 -81.932 -21.918] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 642.291 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 642.291] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -86.944 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 642.291 Td +/F130_0 9.963 Tf +(bzip2-0.9.0) 65.7558 Tj +[1 0 0 1 152.697 642.291] cm +0 g +0 G +[1 0 0 1 -152.697 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +155.412 642.291 Td +/F128_0 9.963 Tf +(no) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-272 TJm +(reads) 21.0219 Tj +-273 TJm +(and) 14.3866 Tj +-272 TJm +(writes) 24.3496 Tj +-272 TJm +(\002les) 16.6083 Tj +-273 TJm +(with) 17.7142 Tj +[1 0 0 1 282.68 642.291] cm +0 g +0 G +[1 0 0 1 -282.68 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +282.68 642.291 Td +/F130_0 9.963 Tf +(fread) 29.889 Tj +[1 0 0 1 312.568 642.291] cm +0 g +0 G +[1 0 0 1 -312.568 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +315.282 642.291 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 332.383 642.291] cm +0 g +0 G +[1 0 0 1 -332.383 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +332.383 642.291 Td +/F130_0 9.963 Tf +(fwrite) 35.8668 Tj +[1 0 0 1 368.248 642.291] cm +0 g +0 G +[1 0 0 1 -368.248 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +368.248 642.291 Td +/F128_0 9.963 Tf +(;) 2.76971 Tj +-284 TJm +(v) 4.9815 Tj +15 TJm +(ersion) 24.3496 Tj +-272 TJm +(0.1) 12.4538 Tj +-272 TJm +(used) 18.2622 Tj +[1 0 0 1 441.882 642.291] cm +0 g +0 G +[1 0 0 1 -441.882 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +441.882 642.291 Td +/F130_0 9.963 Tf +(putc) 23.9112 Tj +[1 0 0 1 465.792 642.291] cm +0 g +0 G +[1 0 0 1 -465.792 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +468.507 642.291 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 485.607 642.291] cm +0 g +0 G +[1 0 0 1 -485.607 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +485.607 642.291 Td +/F130_0 9.963 Tf +(getc) 23.9112 Tj +[1 0 0 1 509.517 642.291] cm +0 g +0 G +[1 0 0 1 -509.517 -642.291] cm +[1 0 0 1 0 0] Tm +0 0 Td +509.517 642.291 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-755 TJm +(Duh!) 20.474 Tj +86.944 630.336 Td +(W) 9.40507 Tj +80 TJm +(ell,) 12.4538 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(li) 5.53943 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(learn.) 22.4068 Tj +[1 0 0 1 184.248 630.336] cm +0 g +0 G +[1 0 0 1 -112.248 -12.119] cm +0 g +0 G +[1 0 0 1 -72 -618.217] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 608.418 Td +/F128_0 9.963 Tf +(Further) 29.3311 Tj +-304 TJm +(ahead,) 25.7245 Tj +-318 TJm +(it) 5.53943 Tj +-305 TJm +(w) 7.19329 Tj +10 TJm +(ould) 17.7142 Tj +-304 TJm +(be) 9.40507 Tj +-304 TJm +(nice) 16.5984 Tj +-305 TJm +(to) 7.75121 Tj +-304 TJm +(be) 9.40507 Tj +-304 TJm +(able) 16.5984 Tj +-305 TJm +(to) 7.75121 Tj +-304 TJm +(do) 9.963 Tj +-305 TJm +(random) 30.437 Tj +-304 TJm +(access) 25.4455 Tj +-304 TJm +(into) 15.5024 Tj +-305 TJm +(\002l) 8.30914 Tj +1 TJm +(es.) 10.7899 Tj +-947 TJm +(This) 17.7142 Tj +-304 TJm +(will) 15.5024 Tj +-305 TJm +(require) 28.2152 Tj +-304 TJm +(some) 21.0319 Tj +-304 TJm +(careful) 27.6573 Tj +-305 TJm +(design) 26.0134 Tj +-304 TJm +(of) 8.29918 Tj +72 596.463 Td +(compressed) 47.0353 Tj +-250 TJm +(\002le) 12.7327 Tj +-250 TJm +(formats.) 32.9277 Tj +[1 0 0 1 72 594.306] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -584.344] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 561.71 Td +/F121_0 20.659 Tf +(4.2.) 34.4592 Tj +-278 TJm +(P) 13.7796 Tj +40 TJm +(or) 20.659 Tj +-20 TJm +(tability) 66.584 Tj +-278 TJm +(issues) 64.3115 Tj +[1 0 0 1 72 557.434] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -547.472] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 539.793 Td +/F128_0 9.963 Tf +(After) 21.0219 Tj +-250 TJm +(some) 21.0319 Tj +-250 TJm +(consideration,) 56.1714 Tj +-250 TJm +(I) 3.31768 Tj +-250 TJm +(h) 4.9815 Tj +1 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(decided) 30.9849 Tj +-250 TJm +(not) 12.7327 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(use) 13.2807 Tj +-250 TJm +(GNU) 21.5799 Tj +[1 0 0 1 303.231 539.793] cm +0 g +0 G +[1 0 0 1 -303.231 -539.793] cm +[1 0 0 1 0 0] Tm +0 0 Td +303.231 539.793 Td +/F130_0 9.963 Tf +(autoconf) 47.8224 Tj +[1 0 0 1 351.052 539.793] cm +0 g +0 G +[1 0 0 1 -351.052 -539.793] cm +[1 0 0 1 0 0] Tm +0 0 Td +353.542 539.793 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-250 TJm +(con\002gure) 37.6303 Tj +-250 TJm +(0.9.5) 19.926 Tj +-250 TJm +(or) 8.29918 Tj +-250 TJm +(1.0.) 14.9445 Tj +[1 0 0 1 72 537.636] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -527.673] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 517.875 Td +/F130_0 9.963 Tf +(autoconf) 47.8224 Tj +[1 0 0 1 119.821 517.875] cm +0 g +0 G +[1 0 0 1 -119.821 -517.875] cm +[1 0 0 1 0 0] Tm +0 0 Td +119.821 517.875 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-502 TJm +(admirable) 39.842 Tj +-452 TJm +(and) 14.3866 Tj +-452 TJm +(w) 7.19329 Tj +10 TJm +(onderful) 33.7546 Tj +-452 TJm +(though) 27.6772 Tj +-451 TJm +(it) 5.53943 Tj +-452 TJm +(is,) 9.13607 Tj +-503 TJm +(mainly) 27.6772 Tj +-451 TJm +(assists) 25.4654 Tj +-452 TJm +(with) 17.7142 Tj +-452 TJm +(portability) 41.5158 Tj +-452 TJm +(problems) 37.0823 Tj +-451 TJm +(between) 33.1967 Tj +-452 TJm +(Unix-lik) 33.7646 Tj +10 TJm +(e) 4.42357 Tj +72 505.92 Td +(platforms.) 40.6789 Tj +-1398 TJm +(But) 14.3965 Tj +[1 0 0 1 144.784 505.92] cm +0 g +0 G +[1 0 0 1 -144.784 -505.92] cm +[1 0 0 1 0 0] Tm +0 0 Td +144.784 505.92 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 174.672 505.92] cm +0 g +0 G +[1 0 0 1 -174.672 -505.92] cm +[1 0 0 1 0 0] Tm +0 0 Td +178.455 505.92 Td +/F128_0 9.963 Tf +(doesn') 26.5614 Tj +18 TJm +(t) 2.76971 Tj +-380 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +16 TJm +(e) 4.42357 Tj +-380 TJm +(much) 22.1378 Tj +-380 TJm +(in) 7.75121 Tj +-379 TJm +(the) 12.1748 Tj +-380 TJm +(w) 7.19329 Tj +10 TJm +(ay) 9.40507 Tj +-380 TJm +(of) 8.29918 Tj +-379 TJm +(portability) 41.5158 Tj +-380 TJm +(problems) 37.0823 Tj +-379 TJm +(on) 9.963 Tj +-380 TJm +(Unix;) 22.6957 Tj +-444 TJm +(most) 19.378 Tj +-380 TJm +(of) 8.29918 Tj +-379 TJm +(the) 12.1748 Tj +-380 TJm +(dif) 11.0689 Tj +25 TJm +(\002culties) 31.5528 Tj +72 493.964 Td +(appear) 26.5514 Tj +-297 TJm +(when) 21.5799 Tj +-296 TJm +(porting) 28.7831 Tj +-297 TJm +(to) 7.75121 Tj +-297 TJm +(the) 12.1748 Tj +-296 TJm +(Mac,) 20.195 Tj +-309 TJm +(or) 8.29918 Tj +-296 TJm +(to) 7.75121 Tj +-297 TJm +(Microsoft') 42.6118 Tj +55 TJm +(s) 3.87561 Tj +-297 TJm +(oper) 17.7043 Tj +1 TJm +(ating) 19.926 Tj +-297 TJm +(systems.) 34.0436 Tj +[1 0 0 1 361.339 493.964] cm +0 g +0 G +[1 0 0 1 -361.339 -493.964] cm +[1 0 0 1 0 0] Tm +0 0 Td +361.339 493.964 Td +/F130_0 9.963 Tf +(autoconf) 47.8224 Tj +[1 0 0 1 409.16 493.964] cm +0 g +0 G +[1 0 0 1 -409.16 -493.964] cm +[1 0 0 1 0 0] Tm +0 0 Td +412.116 493.964 Td +/F128_0 9.963 Tf +(doesn') 26.5614 Tj +18 TJm +(t) 2.76971 Tj +-297 TJm +(help) 17.1563 Tj +-296 TJm +(in) 7.75121 Tj +-297 TJm +(those) 21.0319 Tj +-297 TJm +(cases,) 23.5127 Tj +-308 TJm +(and) 14.3866 Tj +72 482.009 Td +(brings) 24.9075 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(whole) 24.3496 Tj +-250 TJm +(load) 17.1563 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(ne) 9.40507 Tj +25 TJm +(w) 7.19329 Tj +-250 TJm +(c) 4.42357 Tj +1 TJm +(omple) 24.9075 Tj +15 TJm +(xity) 15.5024 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 479.852] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -469.89] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 460.091 Td +/F128_0 9.963 Tf +(Most) 20.4839 Tj +-392 TJm +(people) 26.5614 Tj +-392 TJm +(should) 26.5713 Tj +-392 TJm +(be) 9.40507 Tj +-393 TJm +(able) 16.5984 Tj +-392 TJm +(to) 7.75121 Tj +-392 TJm +(compile) 32.1008 Tj +-392 TJm +(the) 12.1748 Tj +-392 TJm +(library) 26.5614 Tj +-392 TJm +(and) 14.3866 Tj +-393 TJm +(prog) 18.2622 Tj +1 TJm +(ram) 15.4925 Tj +-393 TJm +(under) 22.6858 Tj +-392 TJm +(Unix) 19.926 Tj +-392 TJm +(straight) 29.889 Tj +-392 TJm +(out-of-the-box,) 60.595 Tj +-428 TJm +(so) 8.85711 Tj +-392 TJm +(to) 7.75121 Tj +-392 TJm +(speak,) 25.1765 Tj +72 448.136 Td +(especially) 39.842 Tj +-250 TJm +(if) 6.08739 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(v) 4.9815 Tj +15 TJm +(ersio) 19.3681 Tj +1 TJm +(n) 4.9815 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(GNU) 21.5799 Tj +-250 TJm +(C) 6.64532 Tj +-250 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +25 TJm +(ailable.) 29.0521 Tj +[1 0 0 1 72 445.979] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -436.017] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 426.218 Td +/F128_0 9.963 Tf +(There) 23.2337 Tj +-258 TJm +(are) 12.1648 Tj +-259 TJm +(a) 4.42357 Tj +-259 TJm +(coupl) 22.1378 Tj +1 TJm +(e) 4.42357 Tj +-259 TJm +(of) 8.29918 Tj +[1 0 0 1 159.561 426.218] cm +0 g +0 G +[1 0 0 1 -159.561 -426.218] cm +[1 0 0 1 0 0] Tm +0 0 Td +159.561 426.218 Td +/F130_0 9.963 Tf +(__inline__) 59.778 Tj +[1 0 0 1 219.337 426.218] cm +0 g +0 G +[1 0 0 1 -219.337 -426.218] cm +[1 0 0 1 0 0] Tm +0 0 Td +221.913 426.218 Td +/F128_0 9.963 Tf +(directi) 25.4555 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(es) 8.29918 Tj +-258 TJm +(in) 7.75121 Tj +-259 TJm +(the) 12.1748 Tj +-258 TJm +(code.) 21.3009 Tj +-672 TJm +(GNU) 21.5799 Tj +-258 TJm +(C) 6.64532 Tj +-259 TJm +(\() 3.31768 Tj +[1 0 0 1 352.587 426.218] cm +0 g +0 G +[1 0 0 1 -352.587 -426.218] cm +[1 0 0 1 0 0] Tm +0 0 Td +352.587 426.218 Td +/F130_0 9.963 Tf +(gcc) 17.9334 Tj +[1 0 0 1 370.52 426.218] cm +0 g +0 G +[1 0 0 1 -370.52 -426.218] cm +[1 0 0 1 0 0] Tm +0 0 Td +370.52 426.218 Td +/F128_0 9.963 Tf +(\)) 3.31768 Tj +-259 TJm +(sho) 13.8386 Tj +1 TJm +(uld) 12.7327 Tj +-259 TJm +(be) 9.40507 Tj +-259 TJm +(able) 16.5984 Tj +-258 TJm +(to) 7.75121 Tj +-259 TJm +(handle) 26.5614 Tj +-258 TJm +(them.) 22.4168 Tj +-672 TJm +(If) 6.63536 Tj +-258 TJm +(you') 18.2622 Tj +50 TJm +(re) 7.74125 Tj +72 414.263 Td +(not) 12.7327 Tj +-279 TJm +(using) 21.5898 Tj +-279 TJm +(GNU) 21.5799 Tj +-279 TJm +(C,) 9.13607 Tj +-279 TJm +(your) 18.2622 Tj +-279 TJm +(C) 6.64532 Tj +-279 TJm +(compile) 32.1008 Tj +1 TJm +(r) 3.31768 Tj +-279 TJm +(shouldn') 34.8705 Tj +18 TJm +(t) 2.76971 Tj +-279 TJm +(see) 12.7228 Tj +-279 TJm +(them) 19.926 Tj +-279 TJm +(at) 7.19329 Tj +-279 TJm +(all.) 12.4538 Tj +-794 TJm +(If) 6.63536 Tj +-279 TJm +(your) 18.2622 Tj +-279 TJm +(compiler) 35.4185 Tj +-279 TJm +(does,) 20.7529 Tj +-286 TJm +(for) 11.6169 Tj +-279 TJm +(some) 21.0319 Tj +-279 TJm +(reason,) 28.4942 Tj +-286 TJm +(see) 12.7228 Tj +-279 TJm +(them) 19.926 Tj +-279 TJm +(and) 14.3866 Tj +72 402.308 Td +(doesn') 26.5614 Tj +18 TJm +(t) 2.76971 Tj +-283 TJm +(lik) 10.5209 Tj +10 TJm +(e) 4.42357 Tj +-283 TJm +(them,) 22.4168 Tj +-291 TJm +(just) 14.3965 Tj +[1 0 0 1 164.167 402.308] cm +0 g +0 G +[1 0 0 1 -164.167 -402.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +164.167 402.308 Td +/F130_0 9.963 Tf +(#define) 41.8446 Tj +[1 0 0 1 206.01 402.308] cm +0 g +0 G +[1 0 0 1 2.819 0] cm +0 g +0 G +[1 0 0 1 -208.829 -402.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +208.829 402.308 Td +/F130_0 9.963 Tf +(__inline__) 59.778 Tj +[1 0 0 1 268.605 402.308] cm +0 g +0 G +[1 0 0 1 -268.605 -402.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +271.425 402.308 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-283 TJm +(be) 9.40507 Tj +[1 0 0 1 294.22 402.308] cm +0 g +0 G +[1 0 0 1 -294.22 -402.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +294.22 402.308 Td +/F130_0 9.963 Tf +(/*) 11.9556 Tj +-600 TJm +(*/) 11.9556 Tj +[1 0 0 1 324.108 402.308] cm +0 g +0 G +[1 0 0 1 -324.108 -402.308] cm +[1 0 0 1 0 0] Tm +0 0 Td +324.108 402.308 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-818 TJm +(One) 16.5984 Tj +-283 TJm +(easy) 17.7043 Tj +-283 TJm +(w) 7.19329 Tj +10 TJm +(ay) 9.40507 Tj +-283 TJm +(to) 7.75121 Tj +-283 TJm +(do) 9.963 Tj +-283 TJm +(this) 14.3965 Tj +-283 TJm +(is) 6.64532 Tj +-283 TJm +(to) 7.75121 Tj +-283 TJm +(compile) 32.1008 Tj +-283 TJm +(with) 17.7142 Tj +-283 TJm +(th) 7.75121 Tj +1 TJm +(e) 4.42357 Tj +-283 TJm +(\003ag) 14.9445 Tj +[1 0 0 1 72 390.353] cm +0 g +0 G +[1 0 0 1 -72 -390.353] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 390.353 Td +/F130_0 9.963 Tf +(-D__inline__=) 77.7114 Tj +[1 0 0 1 149.709 390.353] cm +0 g +0 G +[1 0 0 1 -149.709 -390.353] cm +[1 0 0 1 0 0] Tm +0 0 Td +149.709 390.353 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-250 TJm +(which) 24.3496 Tj +-250 TJm +(should) 26.5713 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(understood) 44.2756 Tj +-249 TJm +(by) 9.963 Tj +-250 TJm +(most) 19.378 Tj +-250 TJm +(Unix) 19.926 Tj +-250 TJm +(compilers.) 41.7848 Tj +[1 0 0 1 72 388.196] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -378.234] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 368.435 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-321 TJm +(you) 14.9445 Tj +-321 TJm +(still) 14.9545 Tj +-321 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-322 TJm +(dif) 11.0689 Tj +25 TJm +(\002cul) 17.7142 Tj +1 TJm +(ties,) 16.3294 Tj +-339 TJm +(try) 11.0689 Tj +-322 TJm +(compi) 24.9075 Tj +1 TJm +(ling) 15.5024 Tj +-322 TJm +(with) 17.7142 Tj +-321 TJm +(the) 12.1748 Tj +-321 TJm +(macro) 24.8975 Tj +[1 0 0 1 310.295 368.435] cm +0 g +0 G +[1 0 0 1 -310.295 -368.435] cm +[1 0 0 1 0 0] Tm +0 0 Td +310.295 368.435 Td +/F130_0 9.963 Tf +(BZ_STRICT_ANSI) 83.6892 Tj +[1 0 0 1 393.981 368.435] cm +0 g +0 G +[1 0 0 1 -393.981 -368.435] cm +[1 0 0 1 0 0] Tm +0 0 Td +397.18 368.435 Td +/F128_0 9.963 Tf +(de\002ned.) 31.8218 Tj +-524 TJm +(This) 17.7142 Tj +-321 TJm +(should) 26.5713 Tj +-321 TJm +(enable) 26.0034 Tj +-321 TJm +(you) 14.9445 Tj +-321 TJm +(to) 7.75121 Tj +72 356.48 Td +(b) 4.9815 Tj +20 TJm +(uild) 15.5024 Tj +-321 TJm +(the) 12.1748 Tj +-321 TJm +(library) 26.5614 Tj +-321 TJm +(in) 7.75121 Tj +-322 TJm +(a) 4.42357 Tj +-321 TJm +(strictly) 27.6772 Tj +-321 TJm +(ANSI) 23.2437 Tj +-321 TJm +(compliant) 39.852 Tj +-321 TJm +(en) 9.40507 Tj +40 TJm +(vironment.) 43.4486 Tj +-1047 TJm +(Building) 34.8805 Tj +-321 TJm +(the) 12.1748 Tj +-321 TJm +(program) 33.7546 Tj +-321 TJm +(itself) 19.926 Tj +-321 TJm +(lik) 10.5209 Tj +10 TJm +(e) 4.42357 Tj +-322 TJm +(this) 14.3965 Tj +-321 TJm +(is) 6.64532 Tj +-321 TJm +(dangerous) 40.9479 Tj +-321 TJm +(and) 14.3866 Tj +72 344.525 Td +(not) 12.7327 Tj +-260 TJm +(supported,) 41.7848 Tj +-263 TJm +(since) 20.474 Tj +-260 TJm +(you) 14.9445 Tj +-260 TJm +(remo) 20.474 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +[1 0 0 1 204.498 344.525] cm +0 g +0 G +[1 0 0 1 -204.498 -344.525] cm +[1 0 0 1 0 0] Tm +0 0 Td +204.498 344.525 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 234.385 344.525] cm +0 g +0 G +[1 0 0 1 -234.385 -344.525] cm +[1 0 0 1 0 0] Tm +0 0 Td +234.385 344.525 Td +/F128_0 9.963 Tf +(') 3.31768 Tj +55 TJm +(s) 3.87561 Tj +-260 TJm +(checks) 27.1093 Tj +-260 TJm +(ag) 9.40507 Tj +5 TJm +(ainst) 18.8201 Tj +-260 TJm +(compressing) 50.363 Tj +-260 TJm +(directories,) 44.5446 Tj +-263 TJm +(symbolic) 36.5343 Tj +-260 TJm +(links,) 21.8688 Tj +-262 TJm +(de) 9.40507 Tj +25 TJm +(vices,) 22.9647 Tj +-263 TJm +(and) 14.3866 Tj +-260 TJm +(other) 20.474 Tj +72 332.57 Td +(not-really-a-\002le) 62.5278 Tj +-250 TJm +(entities.) 31.2739 Tj +-619 TJm +(This) 17.7142 Tj +-250 TJm +(could) 22.1378 Tj +-250 TJm +(cause) 22.1278 Tj +-250 TJm +(\002lesystem) 40.4099 Tj +-250 TJm +(corruption!) 44.8235 Tj +[1 0 0 1 72 330.413] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -320.45] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 310.652 Td +/F128_0 9.963 Tf +(One) 16.5984 Tj +-392 TJm +(othe) 17.1563 Tj +1 TJm +(r) 3.31768 Tj +-392 TJm +(thing:) 23.2536 Tj +-593 TJm +(if) 6.08739 Tj +-392 TJm +(you) 14.9445 Tj +-391 TJm +(create) 23.7817 Tj +-392 TJm +(a) 4.42357 Tj +[1 0 0 1 210.879 310.652] cm +0 g +0 G +[1 0 0 1 -210.879 -310.652] cm +[1 0 0 1 0 0] Tm +0 0 Td +210.879 310.652 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 240.767 310.652] cm +0 g +0 G +[1 0 0 1 -240.767 -310.652] cm +[1 0 0 1 0 0] Tm +0 0 Td +244.669 310.652 Td +/F128_0 9.963 Tf +(binary) 25.4555 Tj +-392 TJm +(fo) 8.29918 Tj +1 TJm +(r) 3.31768 Tj +-392 TJm +(public) 24.9075 Tj +-392 TJm +(distrib) 25.4654 Tj +20 TJm +(u) 4.9815 Tj +1 TJm +(tion,) 17.9932 Tj +-427 TJm +(please) 24.8975 Tj +-392 TJm +(consider) 33.7546 Tj +-391 TJm +(linking) 28.2351 Tj +-392 TJm +(it) 5.53943 Tj +-392 TJm +(s) 3.87561 Tj +1 TJm +(tatically) 32.1008 Tj +-392 TJm +(\() 3.31768 Tj +[1 0 0 1 522.067 310.652] cm +0 g +0 G +[1 0 0 1 -522.067 -310.652] cm +[1 0 0 1 0 0] Tm +0 0 Td +522.067 310.652 Td +/F130_0 9.963 Tf +(gcc) 17.9334 Tj +72 298.697 Td +(-static) 41.8446 Tj +[1 0 0 1 113.843 298.697] cm +0 g +0 G +[1 0 0 1 -113.843 -298.697] cm +[1 0 0 1 0 0] Tm +0 0 Td +113.843 298.697 Td +/F128_0 9.963 Tf +(\).) 5.80843 Tj +-620 TJm +(This) 17.7142 Tj +-250 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +20 TJm +(oids) 16.6083 Tj +-250 TJm +(all) 9.963 Tj +-250 TJm +(sorts) 18.8201 Tj +-250 TJm +(of) 8.29918 Tj +-250 TJm +(lib) 10.5209 Tj +1 TJm +(rary-v) 24.3396 Tj +15 TJm +(ersion) 24.3496 Tj +-250 TJm +(issues) 23.8016 Tj +-250 TJm +(that) 14.9445 Tj +-250 TJm +(others) 24.3496 Tj +-250 TJm +(may) 17.1563 Tj +-250 TJm +(encounter) 39.2841 Tj +-250 TJm +(later) 17.7043 Tj +-250 TJm +(on.) 12.4538 Tj +[1 0 0 1 72 296.54] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -286.577] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 276.779 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-296 TJm +(you) 14.9445 Tj +-296 TJm +(b) 4.9815 Tj +20 TJm +(uild) 15.5024 Tj +[1 0 0 1 122.708 276.779] cm +0 g +0 G +[1 0 0 1 -122.708 -276.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +122.708 276.779 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 152.596 276.779] cm +0 g +0 G +[1 0 0 1 -152.596 -276.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +155.545 276.779 Td +/F128_0 9.963 Tf +(on) 9.963 Tj +-296 TJm +(W) 9.40507 Tj +40 TJm +(in32,) 20.205 Tj +-307 TJm +(you) 14.9445 Tj +-296 TJm +(must) 19.378 Tj +-296 TJm +(set) 11.0689 Tj +[1 0 0 1 254.965 276.779] cm +0 g +0 G +[1 0 0 1 -254.965 -276.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +254.965 276.779 Td +/F130_0 9.963 Tf +(BZ_UNIX) 41.8446 Tj +[1 0 0 1 296.808 276.779] cm +0 g +0 G +[1 0 0 1 -296.808 -276.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +299.756 276.779 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-296 TJm +(0) 4.9815 Tj +-296 TJm +(and) 14.3866 Tj +[1 0 0 1 335.72 276.779] cm +0 g +0 G +[1 0 0 1 -335.72 -276.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +335.72 276.779 Td +/F130_0 9.963 Tf +(BZ_LCCWIN32) 65.7558 Tj +[1 0 0 1 401.473 276.779] cm +0 g +0 G +[1 0 0 1 -401.473 -276.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +404.422 276.779 Td +/F128_0 9.963 Tf +(to) 7.75121 Tj +-296 TJm +(1,) 7.47225 Tj +-307 TJm +(in) 7.75121 Tj +-296 TJm +(the) 12.1748 Tj +-296 TJm +(\002le) 12.7327 Tj +[1 0 0 1 467.159 276.779] cm +0 g +0 G +[1 0 0 1 -467.159 -276.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +467.159 276.779 Td +/F130_0 9.963 Tf +(bzip2.c) 41.8446 Tj +[1 0 0 1 509.002 276.779] cm +0 g +0 G +[1 0 0 1 -509.002 -276.779] cm +[1 0 0 1 0 0] Tm +0 0 Td +509.002 276.779 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-307 TJm +(before) 25.4455 Tj +72 264.824 Td +(compiling.) 42.9007 Tj +-310 TJm +(Otherwise) 40.9479 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(re) 7.74125 Tj +1 TJm +(sulting) 27.1292 Tj +-250 TJm +(binary) 25.4555 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(on') 13.2807 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ork) 13.2807 Tj +-250 TJm +(correctly) 35.4085 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 262.667] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -252.704] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 230.071 Td +/F121_0 20.659 Tf +(4.3.) 34.4592 Tj +-278 TJm +(Repor) 59.6839 Tj +-20 TJm +(ting) 37.8679 Tj +-278 TJm +(b) 12.6226 Tj +20 TJm +(ugs) 36.7317 Tj +[1 0 0 1 72 225.475] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -215.512] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 208.153 Td +/F128_0 9.963 Tf +(I) 3.31768 Tj +-228 TJm +(tried) 18.2622 Tj +-228 TJm +(pretty) 23.2437 Tj +-228 TJm +(hard) 17.7043 Tj +-228 TJm +(t) 2.76971 Tj +1 TJm +(o) 4.9815 Tj +-228 TJm +(mak) 17.1563 Tj +10 TJm +(e) 4.42357 Tj +-228 TJm +(sure) 16.5984 Tj +[1 0 0 1 196.25 208.153] cm +0 g +0 G +[1 0 0 1 -196.25 -208.153] cm +[1 0 0 1 0 0] Tm +0 0 Td +196.25 208.153 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 226.138 208.153] cm +0 g +0 G +[1 0 0 1 -226.138 -208.153] cm +[1 0 0 1 0 0] Tm +0 0 Td +228.409 208.153 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-228 TJm +(b) 4.9815 Tj +20 TJm +(ug) 9.963 Tj +-228 TJm +(free,) 17.9733 Tj +-232 TJm +(both) 17.7142 Tj +-228 TJm +(by) 9.963 Tj +-228 TJm +(design) 26.0134 Tj +-228 TJm +(and) 14.3866 Tj +-228 TJm +(by) 9.963 Tj +-228 TJm +(te) 7.19329 Tj +1 TJm +(sting.) 21.8688 Tj +-606 TJm +(Hopefully) 40.4 Tj +-227 TJm +(you') 18.2622 Tj +10 TJm +(ll) 5.53943 Tj +-228 TJm +(ne) 9.40507 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +-228 TJm +(need) 18.8101 Tj +-228 TJm +(to) 7.75121 Tj +-228 TJm +(read) 17.1463 Tj +72 196.198 Td +(this) 14.3965 Tj +-250 TJm +(section) 28.2252 Tj +-250 TJm +(for) 11.6169 Tj +-250 TJm +(real.) 17.4253 Tj +[1 0 0 1 72 196.098] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -186.136] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 174.28 Td +/F128_0 9.963 Tf +(Ne) 11.6169 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ertheless,) 37.3513 Tj +-313 TJm +(if) 6.08739 Tj +[1 0 0 1 137.751 174.28] cm +0 g +0 G +[1 0 0 1 -137.751 -174.28] cm +[1 0 0 1 0 0] Tm +0 0 Td +137.751 174.28 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 167.639 174.28] cm +0 g +0 G +[1 0 0 1 -167.639 -174.28] cm +[1 0 0 1 0 0] Tm +0 0 Td +170.634 174.28 Td +/F128_0 9.963 Tf +(dies) 16.0504 Tj +-301 TJm +(w) 7.19329 Tj +1 TJm +(ith) 10.5209 Tj +-301 TJm +(a) 4.42357 Tj +-301 TJm +(se) 8.29918 Tj +15 TJm +(gm) 12.7327 Tj +1 TJm +(entation) 32.1008 Tj +-301 TJm +(f) 3.31768 Tj +10 TJm +(ault,) 17.4353 Tj +-313 TJm +(a) 4.42357 Tj +-301 TJm +(b) 4.9815 Tj +20 TJm +(us) 8.85711 Tj +-300 TJm +(error) 19.3581 Tj +-301 TJm +(or) 8.29918 Tj +-300 TJm +(an) 9.40507 Tj +-301 TJm +(internal) 30.437 Tj +-300 TJm +(assertion) 35.4185 Tj +-301 TJm +(f) 3.31768 Tj +10 TJm +(ailure,) 25.1765 Tj +-313 TJm +(it) 5.53943 Tj +-300 TJm +(will) 15.5024 Tj +-301 TJm +(ask) 13.2807 Tj +-300 TJm +(you) 14.9445 Tj +-301 TJm +(to) 7.75121 Tj +72 162.325 Td +(email) 22.1378 Tj +-242 TJm +(me) 12.1748 Tj +-243 TJm +(a) 4.42357 Tj +-242 TJm +(b) 4.9815 Tj +20 TJm +(ug) 9.963 Tj +-243 TJm +(r) 3.31768 Tj +1 TJm +(eport.) 22.9647 Tj +-615 TJm +(Experience) 44.8136 Tj +-243 TJm +(from) 19.3681 Tj +-242 TJm +(years) 21.0219 Tj +-242 TJm +(of) 8.29918 Tj +-243 TJm +(feedback) 35.9565 Tj +-242 TJm +(of) 8.29918 Tj +-242 TJm +(bzip2) 22.1378 Tj +-243 TJm +(users) 20.474 Tj +-242 TJm +(indicates) 35.4185 Tj +-242 TJm +(that) 14.9445 Tj +-243 TJm +(almost) 26.5713 Tj +-242 TJm +(all) 9.963 Tj +-242 TJm +(these) 20.474 Tj +-243 TJm +(problems) 37.0823 Tj +-242 TJm +(can) 13.8286 Tj +72 150.37 Td +(be) 9.40507 Tj +-250 TJm +(traced) 24.3396 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(either) 22.6858 Tj +-250 TJm +(compiler) 35.4185 Tj +-249 TJm +(b) 4.9815 Tj +20 TJm +(ugs) 13.8386 Tj +-250 TJm +(or) 8.29918 Tj +-250 TJm +(hardw) 24.8975 Tj +10 TJm +(are) 12.1648 Tj +-250 TJm +(problems.) 39.573 Tj +[1 0 0 1 72 148.213] cm +0 g +0 G +[1 0 0 1 0 -97.361] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(32) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 36 36 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -6.854] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 116.329 -6.755] cm +0 g +0 G +[1 0 0 1 -382.4 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +498.728 749.245 Td +/F128_0 9.963 Tf +(Miscellanea) 48.1412 Tj +[1 0 0 1 266.071 749.146] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -7.094] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -468 -31.517] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 710.037 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 710.037] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -710.037] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 710.037 Td +/F128_0 9.963 Tf +(Recompile) 43.1697 Tj +-306 TJm +(the) 12.1748 Tj +-306 TJm +(program) 33.7546 Tj +-306 TJm +(with) 17.7142 Tj +-305 TJm +(no) 9.963 Tj +-306 TJm +(optimisation,) 52.3157 Tj +-320 TJm +(and) 14.3866 Tj +-306 TJm +(see) 12.7228 Tj +-306 TJm +(if) 6.08739 Tj +-306 TJm +(it) 5.53943 Tj +-306 TJm +(w) 7.19329 Tj +10 TJm +(orks.) 19.647 Tj +-956 TJm +(And/or) 28.2252 Tj +-306 TJm +(try) 11.0689 Tj +-306 TJm +(a) 4.42357 Tj +-306 TJm +(dif) 11.0689 Tj +25 TJm +(fe) 7.74125 Tj +1 TJm +(rent) 15.4925 Tj +-306 TJm +(compiler) 35.4185 Tj +55 TJm +(.) 2.49075 Tj +-956 TJm +(I) 3.31768 Tj +-306 TJm +(heard) 22.1278 Tj +-306 TJm +(all) 9.963 Tj +86.944 698.082 Td +(sorts) 18.8201 Tj +-282 TJm +(of) 8.29918 Tj +-282 TJm +(stories) 26.0134 Tj +-282 TJm +(about) 22.1378 Tj +-282 TJm +(v) 4.9815 Tj +25 TJm +(arious) 24.3496 Tj +-282 TJm +(\003a) 9.963 Tj +20 TJm +(v) 4.9815 Tj +20 TJm +(ours) 17.1563 Tj +-282 TJm +(of) 8.29918 Tj +-282 TJm +(GNU) 21.5799 Tj +-282 TJm +(C) 6.64532 Tj +-283 TJm +(\(a) 7.74125 Tj +1 TJm +(nd) 9.963 Tj +-283 TJm +(other) 20.474 Tj +-282 TJm +(compiler) 35.4185 Tj +1 TJm +(s\)) 7.19329 Tj +-283 TJm +(genera) 26.5514 Tj +1 TJm +(ting) 15.5024 Tj +-283 TJm +(bad) 14.3866 Tj +-282 TJm +(code) 18.8101 Tj +-282 TJm +(for) 11.6169 Tj +[1 0 0 1 472.141 698.082] cm +0 g +0 G +[1 0 0 1 -472.141 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +472.141 698.082 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 502.029 698.082] cm +0 g +0 G +[1 0 0 1 -502.029 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +502.029 698.082 Td +/F128_0 9.963 Tf +(,) 2.49075 Tj +-290 TJm +(and) 14.3866 Tj +-282 TJm +(I') 6.63536 Tj +50 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +86.944 686.127 Td +(run) 13.2807 Tj +-250 TJm +(across) 24.8975 Tj +-250 TJm +(tw) 9.963 Tj +10 TJm +(o) 4.9815 Tj +-250 TJm +(such) 18.2622 Tj +-250 TJm +(e) 4.42357 Tj +15 TJm +(xamples) 33.2067 Tj +-249 TJm +(myself.) 29.61 Tj +[1 0 0 1 237.767 686.127] cm +0 g +0 G +[1 0 0 1 -165.767 -12.119] cm +0 g +0 G +[1 0 0 1 -72 -674.008] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 664.209 Td +/F128_0 9.963 Tf +(2.7.X) 22.1378 Tj +-279 TJm +(v) 4.9815 Tj +15 TJm +(ersions) 28.2252 Tj +-280 TJm +(of) 8.29918 Tj +-279 TJm +(GNU) 21.5799 Tj +-280 TJm +(C) 6.64532 Tj +-279 TJm +(are) 12.1648 Tj +-280 TJm +(kno) 14.9445 Tj +25 TJm +(wn) 12.1748 Tj +-279 TJm +(to) 7.75121 Tj +-280 TJm +(generate) 33.7447 Tj +-279 TJm +(bad) 14.3866 Tj +-280 TJm +(code) 18.8101 Tj +-279 TJm +(from) 19.3681 Tj +-280 TJm +(time) 17.7142 Tj +-279 TJm +(to) 7.75121 Tj +-280 TJm +(time,) 20.205 Tj +-287 TJm +(at) 7.19329 Tj +-279 TJm +(high) 17.7142 Tj +-280 TJm +(optimisation) 49.825 Tj +-279 TJm +(le) 7.19329 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(els.) 13.5596 Tj +-797 TJm +(If) 6.63536 Tj +-280 TJm +(you) 14.9445 Tj +86.944 652.254 Td +(get) 12.1748 Tj +-295 TJm +(problems,) 39.573 Tj +-307 TJm +(try) 11.0689 Tj +-296 TJm +(u) 4.9815 Tj +1 TJm +(sing) 16.6083 Tj +-296 TJm +(the) 12.1748 Tj +-295 TJm +(\003ags) 18.8201 Tj +[1 0 0 1 220.116 652.254] cm +0 g +0 G +[1 0 0 1 -220.116 -652.254] cm +[1 0 0 1 0 0] Tm +0 0 Td +220.116 652.254 Td +/F130_0 9.963 Tf +(-O2) 17.9334 Tj +[1 0 0 1 238.049 652.254] cm +0 g +0 G +[1 0 0 1 2.944 0] cm +0 g +0 G +[1 0 0 1 -240.993 -652.254] cm +[1 0 0 1 0 0] Tm +0 0 Td +240.993 652.254 Td +/F130_0 9.963 Tf +(-fomit-frame-pointer) 119.556 Tj +[1 0 0 1 360.544 652.254] cm +0 g +0 G +[1 0 0 1 2.944 0] cm +0 g +0 G +[1 0 0 1 -363.488 -652.254] cm +[1 0 0 1 0 0] Tm +0 0 Td +363.488 652.254 Td +/F130_0 9.963 Tf +(-fno-strength-reduce) 119.556 Tj +[1 0 0 1 483.04 652.254] cm +0 g +0 G +[1 0 0 1 -483.04 -652.254] cm +[1 0 0 1 0 0] Tm +0 0 Td +483.04 652.254 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-893 TJm +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-295 TJm +(should) 26.5713 Tj +86.944 640.299 Td +(speci\002cally) 45.3815 Tj +[1 0 0 1 134.814 640.299] cm +0 g +0 G +[1 0 0 1 -134.814 -640.299] cm +[1 0 0 1 0 0] Tm +0 0 Td +134.814 640.299 Td +/F631_0 9.963 Tf +(not) 12.7327 Tj +[1 0 0 1 147.546 640.299] cm +0 g +0 G +[1 0 0 1 -147.546 -640.299] cm +[1 0 0 1 0 0] Tm +0 0 Td +150.037 640.299 Td +/F128_0 9.963 Tf +(use) 13.2807 Tj +[1 0 0 1 165.807 640.299] cm +0 g +0 G +[1 0 0 1 -165.807 -640.299] cm +[1 0 0 1 0 0] Tm +0 0 Td +165.807 640.299 Td +/F130_0 9.963 Tf +(-funroll-loops) 83.6892 Tj +[1 0 0 1 249.493 640.299] cm +0 g +0 G +[1 0 0 1 -249.493 -640.299] cm +[1 0 0 1 0 0] Tm +0 0 Td +249.493 640.299 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +[1 0 0 1 72 638.142] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -628.179] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 618.381 Td +/F128_0 9.963 Tf +(Y) 7.19329 Tj +110 TJm +(ou) 9.963 Tj +-249 TJm +(may) 17.1563 Tj +-248 TJm +(notice) 24.3496 Tj +-249 TJm +(that) 14.9445 Tj +-249 TJm +(the) 12.1748 Tj +-249 TJm +(M) 8.85711 Tj +1 TJm +(ak) 9.40507 Tj +10 TJm +(e\002le) 17.1563 Tj +-249 TJm +(runs) 17.1563 Tj +-249 TJm +(six) 11.6268 Tj +-249 TJm +(test) 13.8386 Tj +1 TJm +(s) 3.87561 Tj +-249 TJm +(as) 8.29918 Tj +-249 TJm +(part) 15.4925 Tj +-249 TJm +(of) 8.29918 Tj +-248 TJm +(the) 12.1748 Tj +-249 TJm +(b) 4.9815 Tj +20 TJm +(uild) 15.5024 Tj +-249 TJm +(process.) 32.3698 Tj +-619 TJm +(If) 6.63536 Tj +-249 TJm +(the) 12.1748 Tj +-248 TJm +(program) 33.7546 Tj +-249 TJm +(passes) 25.4555 Tj +-249 TJm +(all) 9.963 Tj +-248 TJm +(of) 8.29918 Tj +-249 TJm +(these,) 22.9647 Tj +-249 TJm +(it') 8.85711 Tj +55 TJm +(s) 3.87561 Tj +86.944 606.426 Td +(a) 4.42357 Tj +-250 TJm +(pretty) 23.2437 Tj +-250 TJm +(good) 19.926 Tj +-250 TJm +(\(b) 8.29918 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(not) 12.7327 Tj +-250 TJm +(100%\)) 26.5614 Tj +-250 TJm +(in) 7.75121 Tj +1 TJm +(dication) 32.1008 Tj +-250 TJm +(that) 14.9445 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(compiler) 35.4185 Tj +-250 TJm +(has) 13.2807 Tj +-250 TJm +(done) 19.3681 Tj +-250 TJm +(its) 9.41504 Tj +-250 TJm +(job) 12.7327 Tj +-250 TJm +(correctly) 35.4085 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 604.269] cm +0 g +0 G +[1 0 0 1 0 -19.761] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -584.508] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 584.508 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 584.508] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -584.508] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 584.508 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +[1 0 0 1 95.956 584.508] cm +0 g +0 G +[1 0 0 1 -95.956 -584.508] cm +[1 0 0 1 0 0] Tm +0 0 Td +95.956 584.508 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 125.844 584.508] cm +0 g +0 G +[1 0 0 1 -125.844 -584.508] cm +[1 0 0 1 0 0] Tm +0 0 Td +128.22 584.508 Td +/F128_0 9.963 Tf +(crashes) 29.3211 Tj +-238 TJm +(randomly) 38.1882 Tj +65 TJm +(,) 2.49075 Tj +-241 TJm +(and) 14.3866 Tj +-239 TJm +(the) 12.1748 Tj +-238 TJm +(crashes) 29.3211 Tj +-239 TJm +(are) 12.1648 Tj +-238 TJm +(not) 12.7327 Tj +-239 TJm +(repea) 21.5699 Tj +1 TJm +(table,) 21.8588 Tj +-241 TJm +(you) 14.9445 Tj +-239 TJm +(may) 17.1563 Tj +-238 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-239 TJm +(a) 4.42357 Tj +-238 TJm +(\003ak) 14.9445 Tj +15 TJm +(y) 4.9815 Tj +-239 TJm +(memory) 33.2067 Tj +-238 TJm +(subsystem.) 44.0066 Tj +[1 0 0 1 510.112 584.508] cm +0 g +0 G +[1 0 0 1 -510.112 -584.508] cm +[1 0 0 1 0 0] Tm +0 0 Td +510.112 584.508 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 540 584.508] cm +0 g +0 G +[1 0 0 1 -540 -584.508] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 572.553 Td +/F128_0 9.963 Tf +(really) 22.6858 Tj +-253 TJm +(hammers) 36.5244 Tj +-254 TJm +(your) 18.2622 Tj +-253 TJm +(memory) 33.2067 Tj +-254 TJm +(hierarch) 32.6388 Tj +5 TJm +(y) 4.9815 Tj +65 TJm +(,) 2.49075 Tj +-254 TJm +(and) 14.3866 Tj +-254 TJm +(if) 6.08739 Tj +-253 TJm +(it') 8.85711 Tj +55 TJm +(s) 3.87561 Tj +-254 TJm +(a) 4.42357 Tj +-253 TJm +(bit) 10.5209 Tj +-254 TJm +(mar) 15.4925 Tj +18 TJm +(ginal,) 22.4168 Tj +-254 TJm +(you) 14.9445 Tj +-254 TJm +(may) 17.1563 Tj +-253 TJm +(get) 12.1748 Tj +-254 TJm +(these) 20.474 Tj +-253 TJm +(problems.) 39.573 Tj +-642 TJm +(D) 7.19329 Tj +1 TJm +(itto) 13.2906 Tj +-254 TJm +(if) 6.08739 Tj +-254 TJm +(you) 14.9445 Tj +1 TJm +(r) 3.31768 Tj +-254 TJm +(disk) 16.6083 Tj +86.944 560.598 Td +(or) 8.29918 Tj +-250 TJm +(I/O) 13.2807 Tj +-250 TJm +(subsystem) 41.5158 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(slo) 11.6268 Tj +25 TJm +(wly) 14.9445 Tj +-249 TJm +(f) 3.31768 Tj +10 TJm +(ailing.) 25.1865 Tj +-620 TJm +(Y) 7.19329 Tj +111 TJm +(up,) 12.4538 Tj +-250 TJm +(this) 14.3965 Tj +-250 TJm +(really) 22.6858 Tj +-250 TJm +(does) 18.2622 Tj +-250 TJm +(happen.) 31.2639 Tj +[1 0 0 1 345.143 560.598] cm +0 g +0 G +[1 0 0 1 -273.143 -12.12] cm +0 g +0 G +[1 0 0 1 -72 -548.478] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 538.68 Td +/F128_0 9.963 Tf +(T) 6.08739 Tj +35 TJm +(ry) 8.29918 Tj +-250 TJm +(using) 21.5898 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(dif) 11.0689 Tj +25 TJm +(ferent) 23.2337 Tj +-250 TJm +(machine) 33.7546 Tj +-249 TJm +(of) 8.29918 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(same) 20.474 Tj +-250 TJm +(type,) 19.647 Tj +-250 TJm +(and) 14.3866 Tj +-250 TJm +(see) 12.7228 Tj +-250 TJm +(if) 6.08739 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(can) 13.8286 Tj +-250 TJm +(repeat) 24.3396 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(problem.) 35.6974 Tj +[1 0 0 1 72 536.523] cm +0 g +0 G +[1 0 0 1 0 -19.761] cm +0 g +0 G +[1 0 0 1 6.974 0] cm +0 g +0 G +[1 0 0 1 -78.974 -516.762] cm +[1 0 0 1 0 0] Tm +0 0 Td +78.974 516.762 Td +/F128_0 9.963 Tf +(\225) 3.48705 Tj +[1 0 0 1 82.461 516.762] cm +0 g +0 G +[1 0 0 1 2.49 0] cm +0 g +0 G +[1 0 0 1 1.993 0] cm +0 g +0 G +[1 0 0 1 -86.944 -516.762] cm +[1 0 0 1 0 0] Tm +0 0 Td +86.944 516.762 Td +/F128_0 9.963 Tf +(This) 17.7142 Tj +-229 TJm +(isn') 14.9445 Tj +18 TJm +(t) 2.76971 Tj +-230 TJm +(real) 14.9345 Tj +1 TJm +(ly) 7.75121 Tj +-230 TJm +(a) 4.42357 Tj +-229 TJm +(b) 4.9815 Tj +20 TJm +(ug,) 12.4538 Tj +-234 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-229 TJm +(...) 7.47225 Tj +-303 TJm +(If) 6.63536 Tj +[1 0 0 1 212.232 516.762] cm +0 g +0 G +[1 0 0 1 -212.232 -516.762] cm +[1 0 0 1 0 0] Tm +0 0 Td +212.232 516.762 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 242.12 516.762] cm +0 g +0 G +[1 0 0 1 -242.12 -516.762] cm +[1 0 0 1 0 0] Tm +0 0 Td +244.405 516.762 Td +/F128_0 9.963 Tf +(tells) 16.6083 Tj +-229 TJm +(you) 14.9445 Tj +-230 TJm +(your) 18.2622 Tj +-229 TJm +(\002le) 12.7327 Tj +-229 TJm +(is) 6.64532 Tj +-229 TJm +(corrupted) 38.1782 Tj +-230 TJm +(on) 9.963 Tj +-229 TJm +(decompression,) 62.2588 Tj +-233 TJm +(and) 14.3866 Tj +-230 TJm +(you) 14.9445 Tj +-229 TJm +(obtained) 34.3126 Tj +-229 TJm +(the) 12.1748 Tj +-229 TJm +(\002le) 12.7327 Tj +86.944 504.807 Td +(via) 12.1748 Tj +-262 TJm +(FTP) 17.1662 Tj +111 TJm +(,) 2.49075 Tj +-262 TJm +(there) 19.916 Tj +-263 TJm +(is) 6.64532 Tj +-262 TJm +(a) 4.42357 Tj +-262 TJm +(possibility) 41.5258 Tj +-262 TJm +(that) 14.9445 Tj +-263 TJm +(y) 4.9815 Tj +1 TJm +(ou) 9.963 Tj +-263 TJm +(for) 11.6169 Tj +18 TJm +(got) 12.7327 Tj +-262 TJm +(to) 7.75121 Tj +-262 TJm +(tell) 12.7327 Tj +-262 TJm +(FTP) 17.1662 Tj +-263 TJm +(to) 7.75121 Tj +-262 TJm +(do) 9.963 Tj +-262 TJm +(a) 4.42357 Tj +-262 TJm +(binary) 25.4555 Tj +-263 TJm +(mode) 22.1378 Tj +-262 TJm +(transfer) 30.427 Tj +55 TJm +(.) 2.49075 Tj +-694 TJm +(Th) 11.0689 Tj +1 TJm +(at) 7.19329 Tj +-263 TJm +(absolutely) 40.9579 Tj +-262 TJm +(will) 15.5024 Tj +-262 TJm +(cause) 22.1278 Tj +86.944 492.852 Td +(the) 12.1748 Tj +-250 TJm +(\002le) 12.7327 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(be) 9.40507 Tj +-250 TJm +(non-decompress) 65.2975 Tj +1 TJm +(ible.) 17.4353 Tj +-620 TJm +(Y) 7.19329 Tj +110 TJm +(ou') 13.2807 Tj +10 TJm +(ll) 5.53943 Tj +-250 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(transfer) 30.427 Tj +-250 TJm +(it) 5.53943 Tj +-250 TJm +(ag) 9.40507 Tj +5 TJm +(ain.) 14.6655 Tj +[1 0 0 1 351.34 492.852] cm +0 g +0 G +[1 0 0 1 -279.34 -12.12] cm +0 g +0 G +[1 0 0 1 -72 -480.732] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 470.934 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-235 TJm +(you') 18.2622 Tj +50 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-235 TJm +(incorporated) 50.353 Tj +[1 0 0 1 163.036 470.934] cm +0 g +0 G +[1 0 0 1 -163.036 -470.934] cm +[1 0 0 1 0 0] Tm +0 0 Td +163.036 470.934 Td +/F130_0 9.963 Tf +(libbzip2) 47.8224 Tj +[1 0 0 1 210.856 470.934] cm +0 g +0 G +[1 0 0 1 -210.856 -470.934] cm +[1 0 0 1 0 0] Tm +0 0 Td +213.2 470.934 Td +/F128_0 9.963 Tf +(into) 15.5024 Tj +-235 TJm +(your) 18.2622 Tj +-235 TJm +(o) 4.9815 Tj +25 TJm +(wn) 12.1748 Tj +-236 TJm +(prog) 18.2622 Tj +1 TJm +(ram) 15.4925 Tj +-236 TJm +(and) 14.3866 Tj +-235 TJm +(are) 12.1648 Tj +-235 TJm +(getting) 27.6772 Tj +-235 TJm +(problems,) 39.573 Tj +-238 TJm +(please,) 27.3883 Tj +-238 TJm +(please,) 27.3883 Tj +-238 TJm +(please,) 27.3883 Tj +-238 TJm +(check) 23.2337 Tj +-236 TJm +(t) 2.76971 Tj +1 TJm +(hat) 12.1748 Tj +72 458.979 Td +(the) 12.1748 Tj +-242 TJm +(parameters) 43.7077 Tj +-242 TJm +(you) 14.9445 Tj +-243 TJm +(are) 12.1648 Tj +-242 TJm +(passing) 29.889 Tj +-242 TJm +(in) 7.75121 Tj +-243 TJm +(calls) 18.2622 Tj +-242 TJm +(to) 7.75121 Tj +-242 TJm +(the) 12.1748 Tj +-242 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +-244 TJm +(are) 12.1648 Tj +-243 TJm +(co) 9.40507 Tj +1 TJm +(rrect,) 20.743 Tj +-244 TJm +(and) 14.3866 Tj +-243 TJm +(in) 7.75121 Tj +-242 TJm +(accordance) 44.8036 Tj +-242 TJm +(with) 17.7142 Tj +-242 TJm +(what) 19.3681 Tj +-243 TJm +(the) 12.1748 Tj +-242 TJm +(documentation) 59.2201 Tj +-242 TJm +(says) 17.1563 Tj +72 447.024 Td +(is) 6.64532 Tj +-250 TJm +(allo) 14.9445 Tj +25 TJm +(w) 7.19329 Tj +10 TJm +(able.) 19.0891 Tj +-310 TJm +(I) 3.31768 Tj +-250 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(tried) 18.2622 Tj +-250 TJm +(to) 7.75121 Tj +-250 TJm +(m) 7.75121 Tj +1 TJm +(ak) 9.40507 Tj +10 TJm +(e) 4.42357 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(library) 26.5614 Tj +-250 TJm +(rob) 13.2807 Tj +20 TJm +(ust) 11.6268 Tj +-250 TJm +(ag) 9.40507 Tj +5 TJm +(ainst) 18.8201 Tj +-250 TJm +(such) 18.2622 Tj +-250 TJm +(problems,) 39.573 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-250 TJm +(I'm) 14.3866 Tj +-250 TJm +(sur) 12.1748 Tj +1 TJm +(e) 4.42357 Tj +-250 TJm +(I) 3.31768 Tj +-250 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(en') 12.7228 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(succeeded.) 43.4287 Tj +[1 0 0 1 72 444.867] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -434.904] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 425.106 Td +/F128_0 9.963 Tf +(Finally) 28.2351 Tj +65 TJm +(,) 2.49075 Tj +-324 TJm +(if) 6.08739 Tj +-309 TJm +(the) 12.1748 Tj +-310 TJm +(abo) 14.3866 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-309 TJm +(comments) 40.9579 Tj +-309 TJm +(don') 18.2622 Tj +18 TJm +(t) 2.76971 Tj +-309 TJm +(help,) 19.647 Tj +-325 TJm +(you') 18.2622 Tj +11 TJm +(ll) 5.53943 Tj +-310 TJm +(ha) 9.40507 Tj +20 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-309 TJm +(to) 7.75121 Tj +-309 TJm +(send) 18.2622 Tj +-310 TJm +(me) 12.1748 Tj +-309 TJm +(a) 4.42357 Tj +-309 TJm +(b) 4.9815 Tj +20 TJm +(ug) 9.963 Tj +-310 TJm +(report.) 26.2824 Tj +-976 TJm +(No) 12.1748 Tj +25 TJm +(w) 7.19329 Tj +65 TJm +(,) 2.49075 Tj +-324 TJm +(it') 8.85711 Tj +55 TJm +(s) 3.87561 Tj +-309 TJm +(just) 14.3965 Tj +-309 TJm +(amazing) 33.7546 Tj +-310 TJm +(ho) 9.963 Tj +25 TJm +(w) 7.19329 Tj +-309 TJm +(man) 17.1563 Tj +15 TJm +(y) 4.9815 Tj +72 413.151 Td +(people) 26.5614 Tj +-250 TJm +(will) 15.5024 Tj +-250 TJm +(send) 18.2622 Tj +-250 TJm +(me) 12.1748 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(b) 4.9815 Tj +20 TJm +(ug) 9.963 Tj +-250 TJm +(rep) 12.7228 Tj +1 TJm +(ort) 11.0689 Tj +-250 TJm +(saying) 26.0134 Tj +-250 TJm +(something) 41.5158 Tj +-250 TJm +(lik) 10.5209 Tj +10 TJm +(e:) 7.19329 Tj +[1 0 0 1 72 410.994] cm +0 g +0 G +[1 0 0 1 0 -24.907] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 23.91 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 20.324] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -401.629] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 401.629 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +-426 TJm +(crashed) 41.8446 Tj +-426 TJm +(with) 23.9112 Tj +-426 TJm +(segmen) 35.8668 Tj +1 TJm +(tation) 35.8668 Tj +-426 TJm +(fault) 29.889 Tj +-426 TJm +(on) 11.9556 Tj +-426 TJm +(my) 11.9556 Tj +-426 TJm +(machine) 41.8446 Tj +[1 0 0 1 72 386.087] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -376.125] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 364.169 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +-241 TJm +(absolutely) 40.9579 Tj +-240 TJm +(nothing) 30.4469 Tj +-241 TJm +(else.) 17.9832 Tj +-614 TJm +(Needless) 35.9664 Tj +-241 TJm +(to) 7.75121 Tj +-240 TJm +(say) 13.2807 Tj +65 TJm +(,) 2.49075 Tj +-243 TJm +(a) 4.42357 Tj +-241 TJm +(such) 18.2622 Tj +-241 TJm +(a) 4.42357 Tj +-240 TJm +(report) 23.7916 Tj +-241 TJm +(is) 6.64532 Tj +[1 0 0 1 324.681 364.169] cm +0 g +0 G +[1 0 0 1 -324.681 -364.169] cm +[1 0 0 1 0 0] Tm +0 0 Td +324.681 364.169 Td +/F631_0 9.963 Tf +(totally) 25.4654 Tj +55 TJm +(,) 2.49075 Tj +-243 TJm +(u) 4.9815 Tj +1 TJm +(tterly) 21.0319 Tj +55 TJm +(,) 2.49075 Tj +-243 TJm +(completely) 43.1597 Tj +-241 TJm +(and) 14.9445 Tj +-240 TJm +(compr) 25.4555 Tj +37 TJm +(ehensively) 41.4959 Tj +-241 TJm +(100%) 23.2437 Tj +72 352.214 Td +(useless;) 31.5429 Tj +-257 TJm +(a) 4.9815 Tj +-255 TJm +(waste) 22.6957 Tj +-255 TJm +(of) 7.75121 Tj +-255 TJm +(your) 18.2622 Tj +-255 TJm +(time) 17.1563 Tj +10 TJm +(,) 2.49075 Tj +-256 TJm +(my) 11.6169 Tj +-255 TJm +(t) 2.76971 Tj +1 TJm +(ime) 14.3866 Tj +10 TJm +(,) 2.49075 Tj +-257 TJm +(and) 14.9445 Tj +-254 TJm +(net) 12.1748 Tj +-255 TJm +(bandwidth) 42.0737 Tj +[1 0 0 1 302.574 352.214] cm +0 g +0 G +[1 0 0 1 -302.574 -352.214] cm +[1 0 0 1 0 0] Tm +0 0 Td +302.574 352.214 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-649 TJm +(W) 9.40507 Tj +40 TJm +(ith) 10.5209 Tj +-255 TJm +(no) 9.963 Tj +-255 TJm +(details) 26.0134 Tj +-255 TJm +(at) 7.19329 Tj +-255 TJm +(all,) 12.4538 Tj +-256 TJm +(there') 23.2337 Tj +55 TJm +(s) 3.87561 Tj +-255 TJm +(no) 9.963 Tj +-255 TJm +(w) 7.19329 Tj +10 TJm +(ay) 9.40507 Tj +-254 TJm +(I) 3.31768 Tj +-255 TJm +(can) 13.8286 Tj +-255 TJm +(possibly) 33.2166 Tj +-255 TJm +(be) 9.40507 Tj +15 TJm +(gin) 12.7327 Tj +72 340.259 Td +(to) 7.75121 Tj +-250 TJm +(\002gure) 23.2437 Tj +-250 TJm +(out) 12.7327 Tj +-250 TJm +(what) 19.3681 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(problem) 33.2067 Tj +-249 TJm +(is.) 9.13607 Tj +[1 0 0 1 72 338.102] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -328.14] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 318.341 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-309 TJm +(rules) 19.3681 Tj +-309 TJm +(of) 8.29918 Tj +-309 TJm +(the) 12.1748 Tj +-309 TJm +(g) 4.9815 Tj +5 TJm +(ame) 16.5984 Tj +-309 TJm +(are:) 14.9345 Tj +-429 TJm +(f) 3.31768 Tj +10 TJm +(ac) 8.84714 Tj +1 TJm +(ts,) 9.13607 Tj +-324 TJm +(f) 3.31768 Tj +10 TJm +(acts,) 17.9832 Tj +-324 TJm +(f) 3.31768 Tj +10 TJm +(acts.) 17.9832 Tj +-975 TJm +(Don') 20.474 Tj +18 TJm +(t) 2.76971 Tj +-309 TJm +(omit) 18.2721 Tj +-309 TJm +(them) 19.926 Tj +-309 TJm +(because) 31.5329 Tj +-309 TJm +("oh,) 16.5187 Tj +-324 TJm +(the) 12.1748 Tj +15 TJm +(y) 4.9815 Tj +-309 TJm +(w) 7.19329 Tj +10 TJm +(on') 13.2807 Tj +18 TJm +(t) 2.76971 Tj +-309 TJm +(be) 9.40507 Tj +-309 TJm +(rele) 14.9345 Tj +25 TJm +(v) 4.9815 Tj +25 TJm +(ant".) 18.7304 Tj +-975 TJm +(At) 9.963 Tj +-309 TJm +(the) 12.1748 Tj +-309 TJm +(bare) 17.1463 Tj +72 306.386 Td +(minimum:) 41.5258 Tj +[1 0 0 1 72 306.287] cm +0 g +0 G +[1 0 0 1 0 -60.772] cm +0.949 0.949 0.97646 rg +0.949 0.949 0.97646 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 59.776 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 56.189] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -296.922] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 296.922 Td +/F130_0 9.963 Tf +(Machine) 41.8446 Tj +-426 TJm +(type.) 29.889 Tj +-852 TJm +(Operating) 53.8002 Tj +-425 TJm +(system) 35.8668 Tj +-426 TJm +(version.) 47.8224 Tj +90 284.967 Td +(Exact) 29.889 Tj +-426 TJm +(version) 41.8446 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(bzip2) 29.889 Tj +-426 TJm +(\() 5.9778 Tj +1 TJm +(do) 11.9556 Tj +-426 TJm +(bzip2) 29.889 Tj +-426 TJm +(-V\).) 23.9112 Tj +90 273.011 Td +(Exact) 29.889 Tj +-426 TJm +(version) 41.8446 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(com) 17.9334 Tj +1 TJm +(piler) 29.889 Tj +-426 TJm +(used.) 29.889 Tj +90 261.056 Td +(Flags) 29.889 Tj +-426 TJm +(passed) 35.8668 Tj +-426 TJm +(to) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(comp) 23.9112 Tj +1 TJm +(iler.) 29.889 Tj +[1 0 0 1 72 245.514] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -235.552] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 223.597 Td +/F128_0 9.963 Tf +(Ho) 12.1748 Tj +25 TJm +(we) 11.6169 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(er) 7.74125 Tj +40 TJm +(,) 2.49075 Tj +-253 TJm +(the) 12.1748 Tj +-253 TJm +(most) 19.378 Tj +-253 TJm +(important) 38.7461 Tj +-252 TJm +(single) 23.8016 Tj +-253 TJm +(thing) 20.4839 Tj +-253 TJm +(that) 14.9445 Tj +-253 TJm +(will) 15.5024 Tj +-252 TJm +(help) 17.1563 Tj +-253 TJm +(me) 12.1748 Tj +-253 TJm +(is) 6.64532 Tj +-253 TJm +(the) 12.1748 Tj +-252 TJm +(\002le) 12.7327 Tj +-253 TJm +(that) 14.9445 Tj +-253 TJm +(you) 14.9445 Tj +-253 TJm +(we) 11.6169 Tj +1 TJm +(re) 7.74125 Tj +-253 TJm +(trying) 23.8016 Tj +-253 TJm +(to) 7.75121 Tj +-253 TJm +(compress) 37.6303 Tj +-252 TJm +(or) 8.29918 Tj +-253 TJm +(decompress) 47.0353 Tj +72 211.642 Td +(at) 7.19329 Tj +-304 TJm +(the) 12.1748 Tj +-305 TJm +(time) 17.7142 Tj +-304 TJm +(the) 12.1748 Tj +-304 TJm +(problem) 33.2067 Tj +-304 TJm +(happened.) 40.669 Tj +-946 TJm +(W) 9.40507 Tj +40 TJm +(ithout) 23.2536 Tj +-305 TJm +(that,) 17.4353 Tj +-317 TJm +(my) 12.7327 Tj +-305 TJm +(ability) 25.4654 Tj +-304 TJm +(to) 7.75121 Tj +-304 TJm +(do) 9.963 Tj +-305 TJm +(an) 9.40507 Tj +15 TJm +(ythin) 20.4839 Tj +1 TJm +(g) 4.9815 Tj +-305 TJm +(more) 20.474 Tj +-304 TJm +(than) 17.1563 Tj +-304 TJm +(speculate) 37.0723 Tj +-305 TJm +(abou) 19.3681 Tj +1 TJm +(t) 2.76971 Tj +-305 TJm +(the) 12.1748 Tj +-304 TJm +(cause,) 24.6186 Tj +-318 TJm +(is) 6.64532 Tj +72 199.686 Td +(limited.) 30.7259 Tj +[1 0 0 1 72 199.587] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -189.624] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 164.933 Td +/F121_0 20.659 Tf +(4.4.) 34.4592 Tj +-278 TJm +(Did) 33.2816 Tj +-278 TJm +(y) 11.4864 Tj +25 TJm +(ou) 25.2453 Tj +-278 TJm +(g) 12.6226 Tj +-10 TJm +(et) 18.3659 Tj +-278 TJm +(the) 30.9885 Tj +-278 TJm +(right) 45.9043 Tj +-278 TJm +(pac) 35.5955 Tj +20 TJm +(ka) 22.9728 Tj +11 TJm +(g) 12.6226 Tj +-10 TJm +(e?) 24.1091 Tj +[1 0 0 1 72 160.337] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -150.374] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 143.016 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 143.016] cm +0 g +0 G +[1 0 0 1 -101.888 -143.016] cm +[1 0 0 1 0 0] Tm +0 0 Td +104.603 143.016 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-272 TJm +(a) 4.42357 Tj +-273 TJm +(resource) 33.7447 Tj +-272 TJm +(hog.) 17.4353 Tj +-378 TJm +(It) 6.08739 Tj +-272 TJm +(soaks) 22.1378 Tj +-272 TJm +(up) 9.963 Tj +-273 TJm +(lar) 10.511 Tj +18 TJm +(ge) 9.40507 Tj +-272 TJm +(amounts) 33.7646 Tj +-273 TJm +(of) 8.29918 Tj +-272 TJm +(CPU) 19.378 Tj +-272 TJm +(c) 4.42357 Tj +15 TJm +(ycles) 20.474 Tj +-273 TJm +(and) 14.3866 Tj +-272 TJm +(memory) 33.2067 Tj +65 TJm +(.) 2.49075 Tj +-755 TJm +(Also,) 21.3109 Tj +-278 TJm +(it) 5.53943 Tj +-272 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(es) 8.29918 Tj +-273 TJm +(v) 4.9815 Tj +15 TJm +(ery) 12.7228 Tj +-272 TJm +(lar) 10.511 Tj +18 TJm +(ge) 9.40507 Tj +-273 TJm +(latencies.) 37.3513 Tj +72 131.061 Td +(In) 8.29918 Tj +-251 TJm +(the) 12.1748 Tj +-251 TJm +(w) 7.19329 Tj +10 TJm +(orst) 14.9445 Tj +-251 TJm +(case,) 19.6371 Tj +-251 TJm +(you) 14.9445 Tj +-251 TJm +(can) 13.8286 Tj +-251 TJm +(feed) 17.1463 Tj +-251 TJm +(man) 17.1563 Tj +15 TJm +(y) 4.9815 Tj +-251 TJm +(me) 12.1748 Tj +15 TJm +(g) 4.9815 Tj +5 TJm +(abytes) 25.4555 Tj +-251 TJm +(of) 8.29918 Tj +-251 TJm +(uncompressed) 56.9983 Tj +-251 TJm +(dat) 12.1748 Tj +1 TJm +(a) 4.42357 Tj +-251 TJm +(into) 15.5024 Tj +-251 TJm +(the) 12.1748 Tj +-251 TJm +(library) 26.5614 Tj +-251 TJm +(before) 25.4455 Tj +-251 TJm +(getting) 27.6772 Tj +-251 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-251 TJm +(compressed) 47.0353 Tj +72 119.105 Td +(output,) 27.9562 Tj +-250 TJm +(so) 8.85711 Tj +-250 TJm +(this) 14.3965 Tj +-250 TJm +(probably) 35.4185 Tj +-250 TJm +(rules) 19.3681 Tj +-249 TJm +(out) 12.7327 Tj +-250 TJm +(applications) 48.1512 Tj +-250 TJm +(requiring) 36.5244 Tj +-250 TJm +(interacti) 32.6488 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +-250 TJm +(beha) 18.8101 Tj +20 TJm +(viour) 21.0319 Tj +55 TJm +(.) 2.49075 Tj +[1 0 0 1 72 116.949] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 -72 -106.986] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 97.188 Td +/F128_0 9.963 Tf +(These) 23.7916 Tj +-304 TJm +(aren') 20.464 Tj +18 TJm +(t) 2.76971 Tj +-304 TJm +(f) 3.31768 Tj +10 TJm +(aults) 18.8201 Tj +-304 TJm +(of) 8.29918 Tj +-304 TJm +(my) 12.7327 Tj +-304 TJm +(im) 10.5209 Tj +1 TJm +(plementation,) 54.5175 Tj +-318 TJm +(I) 3.31768 Tj +-304 TJm +(hope,) 21.8588 Tj +-317 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-304 TJm +(more) 20.474 Tj +-304 TJm +(an) 9.40507 Tj +-304 TJm +(intrinsic) 32.6587 Tj +-304 TJm +(property) 33.7546 Tj +-304 TJm +(of) 8.29918 Tj +-303 TJm +(the) 12.1748 Tj +-304 TJm +(Burro) 23.2437 Tj +25 TJm +(ws-Wheeler) 48.1313 Tj +-304 TJm +(transform) 38.7361 Tj +72 85.232 Td +(\(unfortunately\).) 62.8068 Tj +-620 TJm +(Maybe) 27.6673 Tj +-250 TJm +(this) 14.3965 Tj +-249 TJm +(isn') 14.9445 Tj +18 TJm +(t) 2.76971 Tj +-250 TJm +(what) 19.3681 Tj +-250 TJm +(you) 14.9445 Tj +-250 TJm +(w) 7.19329 Tj +10 TJm +(ant.) 14.6655 Tj +[1 0 0 1 72 83.076] cm +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +[1 0 0 1 0 -22.261] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(33) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 37 37 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -6.854] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 116.329 -6.755] cm +0 g +0 G +[1 0 0 1 -382.4 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +498.728 749.245 Td +/F128_0 9.963 Tf +(Miscellanea) 48.1412 Tj +[1 0 0 1 266.071 749.146] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -7.094] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -540 -741.554] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(If) 6.63536 Tj +-275 TJm +(you) 14.9445 Tj +-274 TJm +(w) 7.19329 Tj +10 TJm +(ant) 12.1748 Tj +-275 TJm +(a) 4.42357 Tj +-274 TJm +(compressor) 45.9294 Tj +-275 TJm +(and/or) 25.4555 Tj +-274 TJm +(library) 26.5614 Tj +-275 TJm +(which) 24.3496 Tj +-274 TJm +(is) 6.64532 Tj +-275 TJm +(f) 3.31768 Tj +10 TJm +(aster) 18.8101 Tj +40 TJm +(,) 2.49075 Tj +-280 TJm +(uses) 17.1563 Tj +-275 TJm +(less) 14.9445 Tj +-274 TJm +(memory) 33.2067 Tj +-275 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-274 TJm +(gets) 16.0504 Tj +-275 TJm +(pretty) 23.2437 Tj +-274 TJm +(good) 19.926 Tj +-275 TJm +(compression,) 52.8537 Tj +-280 TJm +(and) 14.3866 Tj +-275 TJm +(has) 13.2807 Tj +72 698.082 Td +(minimal) 33.2166 Tj +-288 TJm +(latenc) 23.7916 Tj +15 TJm +(y) 4.9815 Tj +65 TJm +(,) 2.49075 Tj +-297 TJm +(consider) 33.7546 Tj +-288 TJm +(Jean-lou) 33.7546 Tj +1 TJm +(p) 4.9815 Tj +-288 TJm +(Gailly') 28.2252 Tj +55 TJm +(s) 3.87561 Tj +-288 TJm +(and) 14.3866 Tj +-288 TJm +(Mark) 21.5799 Tj +-288 TJm +(Adler') 26.0034 Tj +55 TJm +(s) 3.87561 Tj +-287 TJm +(w) 7.19329 Tj +10 TJm +(ork,) 15.7714 Tj +[1 0 0 1 353.879 698.082] cm +0 g +0 G +[1 0 0 1 -353.879 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +353.879 698.082 Td +/F130_0 9.963 Tf +(zlib-1.2.1) 59.778 Tj +[1 0 0 1 413.655 698.082] cm +0 g +0 G +[1 0 0 1 -413.655 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +416.523 698.082 Td +/F128_0 9.963 Tf +(and) 14.3866 Tj +[1 0 0 1 433.777 698.082] cm +0 g +0 G +[1 0 0 1 -433.777 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +433.777 698.082 Td +/F130_0 9.963 Tf +(gzip-1.2.4) 59.778 Tj +[1 0 0 1 493.553 698.082] cm +0 g +0 G +[1 0 0 1 -493.553 -698.082] cm +[1 0 0 1 0 0] Tm +0 0 Td +493.553 698.082 Td +/F128_0 9.963 Tf +(.) 2.49075 Tj +-847 TJm +(Look) 21.0319 Tj +-288 TJm +(for) 11.6169 Tj +72 686.127 Td +(them) 19.926 Tj +-250 TJm +(at) 7.19329 Tj +-250 TJm +(http://www) 45.3914 Tj +65 TJm +(.zlib) 17.4353 Tj +40 TJm +(.or) 10.7899 Tj +18 TJm +(g) 4.9815 Tj +-250 TJm +(a) 4.42357 Tj +1 TJm +(nd) 9.963 Tj +-250 TJm +(http://www) 45.3914 Tj +65 TJm +(.gzip.or) 30.437 Tj +18 TJm +(g) 4.9815 Tj +-250 TJm +(respecti) 30.9849 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(ely) 12.1748 Tj +65 TJm +(.) 2.49075 Tj +[1 0 0 1 72 683.97] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -674.008] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 664.209 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(or) 8.29918 Tj +-582 TJm +(something) 41.5158 Tj +-582 TJm +(f) 3.31768 Tj +10 TJm +(aster) 18.8101 Tj +-583 TJm +(and) 14.3866 Tj +-582 TJm +(lighter) 26.0134 Tj +-582 TJm +(still,) 17.4452 Tj +-665 TJm +(you) 14.9445 Tj +-583 TJm +(m) 7.75121 Tj +1 TJm +(ight) 15.5024 Tj +-583 TJm +(try) 11.0689 Tj +-582 TJm +(Markus) 30.437 Tj +-582 TJm +(F) 5.53943 Tj +-582 TJm +(X) 7.19329 Tj +-582 TJm +(J) 3.87561 Tj +-582 TJm +(Oberhumer') 48.6892 Tj +55 TJm +(s) 3.87561 Tj +[1 0 0 1 437.433 664.209] cm +0 g +0 G +[1 0 0 1 -437.433 -664.209] cm +[1 0 0 1 0 0] Tm +0 0 Td +437.433 664.209 Td +/F130_0 9.963 Tf +(LZO) 17.9334 Tj +[1 0 0 1 455.365 664.209] cm +0 g +0 G +[1 0 0 1 -455.365 -664.209] cm +[1 0 0 1 0 0] Tm +0 0 Td +461.164 664.209 Td +/F128_0 9.963 Tf +(real-time) 35.9664 Tj +-582 TJm +(compres-) 37.0723 Tj +72 652.254 Td +(sion/decompression) 79.1461 Tj +-250 TJm +(library) 26.5614 Tj +65 TJm +(,) 2.49075 Tj +-250 TJm +(a) 4.42357 Tj +1 TJm +(t) 2.76971 Tj +-250 TJm +(http://www) 45.3914 Tj +65 TJm +(.oberhumer) 45.6505 Tj +55 TJm +(.com/opensource.) 70.279 Tj +[1 0 0 1 72 650.097] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -640.135] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 617.501 Td +/F121_0 20.659 Tf +(4.5.) 34.4592 Tj +-278 TJm +(Fur) 33.2816 Tj +-20 TJm +(ther) 39.0249 Tj +-278 TJm +(Reading) 81.4998 Tj +[1 0 0 1 72 612.905] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 0 -9.963] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -72 -602.942] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 595.583 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 101.888 595.583] cm +0 g +0 G +[1 0 0 1 -101.888 -595.583] cm +[1 0 0 1 0 0] Tm +0 0 Td +104.923 595.583 Td +/F128_0 9.963 Tf +(is) 6.64532 Tj +-305 TJm +(n) 4.9815 Tj +1 TJm +(ot) 7.75121 Tj +-305 TJm +(research) 33.1868 Tj +-304 TJm +(w) 7.19329 Tj +10 TJm +(ork,) 15.7714 Tj +-319 TJm +(in) 7.75121 Tj +-304 TJm +(the) 12.1748 Tj +-305 TJm +(sense) 21.5799 Tj +-304 TJm +(that) 14.9445 Tj +-305 TJm +(it) 5.53943 Tj +-304 TJm +(doesn') 26.5614 Tj +18 TJm +(t) 2.76971 Tj +-305 TJm +(present) 28.7731 Tj +-304 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-305 TJm +(ne) 9.40507 Tj +25 TJm +(w) 7.19329 Tj +-304 TJm +(ideas.) 22.9647 Tj +-474 TJm +(Rather) 26.5614 Tj +40 TJm +(,) 2.49075 Tj +-318 TJm +(it') 8.85711 Tj +55 TJm +(s) 3.87561 Tj +-305 TJm +(an) 9.40507 Tj +-304 TJm +(engineering) 47.0353 Tj +-305 TJm +(e) 4.42357 Tj +15 TJm +(x) 4.9815 Tj +15 TJm +(e) 4.42357 Tj +1 TJm +(rcise) 18.8101 Tj +72 583.628 Td +(based) 22.6858 Tj +-250 TJm +(on) 9.963 Tj +-250 TJm +(e) 4.42357 Tj +15 TJm +(xisting) 27.1292 Tj +-250 TJm +(ideas.) 22.9647 Tj +[1 0 0 1 72 581.471] cm +0 g +0 G +[1 0 0 1 0 -9.962] cm +0 g +0 G +[1 0 0 1 -72 -571.509] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 561.71 Td +/F128_0 9.963 Tf +(F) 5.53943 Tj +15 TJm +(our) 13.2807 Tj +-250 TJm +(documents) 43.1697 Tj +-250 TJm +(describe) 33.1967 Tj +-250 TJm +(esse) 16.5984 Tj +1 TJm +(ntially) 25.4654 Tj +-250 TJm +(all) 9.963 Tj +-250 TJm +(the) 12.1748 Tj +-250 TJm +(ideas) 20.474 Tj +-250 TJm +(behind) 27.1193 Tj +[1 0 0 1 298.747 561.71] cm +0 g +0 G +[1 0 0 1 -298.747 -561.71] cm +[1 0 0 1 0 0] Tm +0 0 Td +298.747 561.71 Td +/F130_0 9.963 Tf +(bzip2) 29.889 Tj +[1 0 0 1 328.635 561.71] cm +0 g +0 G +[1 0 0 1 -328.635 -561.71] cm +[1 0 0 1 0 0] Tm +0 0 Td +328.635 561.71 Td +/F128_0 9.963 Tf +(:) 2.76971 Tj +[1 0 0 1 72 559.554] cm +0 g +0 G +[1 0 0 1 0 -299.876] cm +0.9294 0.96861 0.95685 rg +0.9294 0.96861 0.95685 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 298.879 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 295.292] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -550.189] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 550.189 Td +/F130_0 9.963 Tf +(Michael) 41.8446 Tj +-426 TJm +(Burrows) 41.8446 Tj +-426 TJm +(and) 17.9334 Tj +-426 TJm +(D.) 11.9556 Tj +-426 TJm +(J) 5.9778 Tj +1 TJm +(.) 5.9778 Tj +-426 TJm +(Wheeler:) 47.8224 Tj +98.488 538.234 Td +("A) 11.9556 Tj +-426 TJm +(block-sorting) 77.7114 Tj +-426 TJm +(lossless) 47.8224 Tj +-425 TJm +(data) 23.9112 Tj +-426 TJm +(compression) 65.7558 Tj +-426 TJm +(algorithm") 59.778 Tj +102.732 526.278 Td +(10th) 23.9112 Tj +-426 TJm +(May) 17.9334 Tj +-426 TJm +(1994.) 29.889 Tj +102.732 514.323 Td +(Digital) 41.8446 Tj +-426 TJm +(SRC) 17.9334 Tj +-426 TJm +(Research) 47.8224 Tj +-426 TJm +(Rep) 17.9334 Tj +1 TJm +(ort) 17.9334 Tj +-426 TJm +(124.) 23.9112 Tj +102.732 502.368 Td +(ftp://ftp.digital.com/pub) 149.445 Tj +1 TJm +(/DEC/SRC/research-reports/SRC-124.ps.gz) 233.134 Tj +102.732 490.413 Td +(If) 11.9556 Tj +-426 TJm +(you) 17.9334 Tj +-426 TJm +(have) 23.9112 Tj +-426 TJm +(trouble) 41.8446 Tj +-426 TJm +(find) 23.9112 Tj +1 TJm +(ing) 17.9334 Tj +-426 TJm +(it,) 17.9334 Tj +-426 TJm +(try) 17.9334 Tj +-426 TJm +(searching) 53.8002 Tj +-426 TJm +(at) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +102.732 478.458 Td +(New) 17.9334 Tj +-426 TJm +(Zealand) 41.8446 Tj +-426 TJm +(Digital) 41.8446 Tj +-426 TJm +(Libr) 23.9112 Tj +1 TJm +(ary,) 23.9112 Tj +-426 TJm +(http://www.nzdl.org.) 119.556 Tj +90 454.547 Td +(Daniel) 35.8668 Tj +-426 TJm +(S.) 11.9556 Tj +-426 TJm +(Hirschberg) 59.778 Tj +-426 TJm +(and) 17.9334 Tj +-425 TJm +(Debra) 29.889 Tj +-426 TJm +(A.) 11.9556 Tj +-426 TJm +(LeLewer) 41.8446 Tj +98.488 442.592 Td +("Efficient) 59.778 Tj +-426 TJm +(Decoding) 47.8224 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(Pr) 11.9556 Tj +1 TJm +(efix) 23.9112 Tj +-426 TJm +(Codes") 35.8668 Tj +102.732 430.637 Td +(Communications) 83.6892 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(ACM) 17.9334 Tj +1 TJm +(,) 5.9778 Tj +-426 TJm +(April) 29.889 Tj +-426 TJm +(1990,) 29.889 Tj +-426 TJm +(Vol) 17.9334 Tj +-426 TJm +(33,) 17.9334 Tj +-426 TJm +(Number) 35.8668 Tj +-426 TJm +(4.) 11.9556 Tj +102.732 418.682 Td +(You) 17.9334 Tj +-426 TJm +(might) 29.889 Tj +-426 TJm +(be) 11.9556 Tj +-426 TJm +(able) 23.9112 Tj +-426 TJm +(to) 11.9556 Tj +-426 TJm +(get) 17.9334 Tj +-425 TJm +(an) 11.9556 Tj +-426 TJm +(electronic) 59.778 Tj +-426 TJm +(copy) 23.9112 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(this) 23.9112 Tj +102.732 406.727 Td +(from) 23.9112 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(ACM) 17.9334 Tj +-426 TJm +(Digital) 41.8446 Tj +-426 TJm +(Lib) 17.9334 Tj +1 TJm +(rary.) 29.889 Tj +90 382.816 Td +(David) 29.889 Tj +-426 TJm +(J.) 11.9556 Tj +-426 TJm +(Wheeler) 41.8446 Tj +102.732 370.861 Td +(Program) 41.8446 Tj +-426 TJm +(bred3.c) 41.8446 Tj +-426 TJm +(and) 17.9334 Tj +-426 TJm +(accom) 29.889 Tj +1 TJm +(panying) 41.8446 Tj +-426 TJm +(document) 47.8224 Tj +-426 TJm +(bred3.ps.) 53.8002 Tj +102.732 358.906 Td +(This) 23.9112 Tj +-426 TJm +(contains) 47.8224 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(idea) 23.9112 Tj +-426 TJm +(b) 5.9778 Tj +1 TJm +(ehind) 29.889 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(multi-table) 65.7558 Tj +-426 TJm +(Huffman) 41.8446 Tj +-426 TJm +(coding) 35.8668 Tj +-426 TJm +(scheme.) 41.8446 Tj +102.732 346.951 Td +(ftp://ftp.cl.cam.ac.uk/us) 149.445 Tj +1 TJm +(ers/djw3/) 53.8002 Tj +90 323.04 Td +(Jon) 17.9334 Tj +-426 TJm +(L.) 11.9556 Tj +-426 TJm +(Bentley) 41.8446 Tj +-426 TJm +(and) 17.9334 Tj +-426 TJm +(Robert) 35.8668 Tj +-425 TJm +(Sedgewick) 53.8002 Tj +98.488 311.085 Td +("Fast) 29.889 Tj +-426 TJm +(Algorithms) 59.778 Tj +-426 TJm +(for) 17.9334 Tj +-426 TJm +(Sort) 23.9112 Tj +1 TJm +(ing) 17.9334 Tj +-426 TJm +(and) 17.9334 Tj +-426 TJm +(Searching) 53.8002 Tj +-426 TJm +(Strings") 47.8224 Tj +102.732 299.13 Td +(Available) 53.8002 Tj +-426 TJm +(from) 23.9112 Tj +-426 TJm +(Sedgewick') 59.778 Tj +1 TJm +(s) 5.9778 Tj +-426 TJm +(web) 17.9334 Tj +-426 TJm +(page,) 29.889 Tj +102.732 287.175 Td +(www.cs.princeton.edu/~rs) 143.467 Tj +[1 0 0 1 72 259.678] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -249.715] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 237.76 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-239 TJm +(follo) 18.8201 Tj +26 TJm +(wing) 19.926 Tj +-239 TJm +(paper) 22.1278 Tj +-239 TJm +(gi) 7.75121 Tj +25 TJm +(v) 4.9815 Tj +15 TJm +(es) 8.29918 Tj +-238 TJm +(v) 4.9815 Tj +25 TJm +(aluable) 28.7731 Tj +-239 TJm +(additiona) 37.0823 Tj +1 TJm +(l) 2.76971 Tj +-239 TJm +(insights) 31.0049 Tj +-239 TJm +(into) 15.5024 Tj +-238 TJm +(the) 12.1748 Tj +-239 TJm +(algorithm,) 41.2369 Tj +-240 TJm +(b) 4.9815 Tj +20 TJm +(ut) 7.75121 Tj +-239 TJm +(is) 6.64532 Tj +-239 TJm +(not) 12.7327 Tj +-238 TJm +(immediately) 49.815 Tj +-239 TJm +(the) 12.1748 Tj +-238 TJm +(basis) 19.926 Tj +-239 TJm +(of) 8.29918 Tj +-238 TJm +(an) 9.40507 Tj +15 TJm +(y) 4.9815 Tj +-239 TJm +(code) 18.8101 Tj +72 225.805 Td +(used) 18.2622 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(bzip2.) 24.6285 Tj +[1 0 0 1 72 223.648] cm +0 g +0 G +[1 0 0 1 0 -72.727] cm +0.9294 0.96861 0.95685 rg +0.9294 0.96861 0.95685 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 71.731 re +f +Q +0 g +0 G +[1 0 0 1 0 3.587] cm +0 g +0 G +[1 0 0 1 0 68.144] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -214.283] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 214.283 Td +/F130_0 9.963 Tf +(Peter) 29.889 Tj +-426 TJm +(Fenwick:) 47.8224 Tj +102.732 202.328 Td +(Block) 29.889 Tj +-426 TJm +(Sorting) 41.8446 Tj +-426 TJm +(Text) 23.9112 Tj +-426 TJm +(Compr) 29.889 Tj +1 TJm +(ession) 35.8668 Tj +102.732 190.373 Td +(Proceedings) 65.7558 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(19th) 23.9112 Tj +-425 TJm +(Australasian) 71.7336 Tj +-426 TJm +(Computer) 47.8224 Tj +-426 TJm +(Science) 41.8446 Tj +-426 TJm +(Conference,) 65.7558 Tj +111.22 178.418 Td +(Melbourne,) 59.778 Tj +-426 TJm +(Australia.) 59.778 Tj +-852 TJm +(J) 5.9778 Tj +1 TJm +(an) 11.9556 Tj +-426 TJm +(31) 11.9556 Tj +-426 TJm +(-) 5.9778 Tj +-426 TJm +(Feb) 17.9334 Tj +-426 TJm +(2,) 11.9556 Tj +-426 TJm +(1996.) 29.889 Tj +102.732 166.463 Td +(ftp://ftp.cs.auckland.ac.) 149.445 Tj +1 TJm +(nz/pub/peter-f/ACSC96paper.ps) 173.356 Tj +[1 0 0 1 72 150.921] cm +0 g +0 G +[1 0 0 1 468 3.587] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.55] cm +0 g +0 G +[1 0 0 1 -72 -140.958] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 129.003 Td +/F128_0 9.963 Tf +(K) 7.19329 Tj +15 TJm +(unihik) 25.4654 Tj +10 TJm +(o) 4.9815 Tj +-250 TJm +(Sadakane') 41.4959 Tj +55 TJm +(s) 3.87561 Tj +-250 TJm +(sorting) 27.6772 Tj +-250 TJm +(al) 7.19329 Tj +1 TJm +(gorithm,) 34.0436 Tj +-250 TJm +(mentioned) 42.0638 Tj +-250 TJm +(abo) 14.3866 Tj +15 TJm +(v) 4.9815 Tj +15 TJm +(e,) 6.91432 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +25 TJm +(ailable) 26.5614 Tj +-250 TJm +(from:) 22.1378 Tj +[1 0 0 1 72 126.846] cm +0 g +0 G +[1 0 0 1 0 -36.861] cm +0.9294 0.96861 0.95685 rg +0.9294 0.96861 0.95685 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 35.866 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 32.279] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -117.481] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 117.481 Td +/F130_0 9.963 Tf +(http://naomi.is.s.u-tokyo.) 155.423 Tj +1 TJm +(ac.jp/~sada/papers/Sada98b.ps.gz) 191.29 Tj +[1 0 0 1 72 89.985] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 0 -29.17] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(34) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Page: 38 38 +%%BeginPageSetup +%%PageOrientation: Portrait +pdfStartPage +%%EndPageSetup +[] 0 d +1 i +0 j +0 J +10 M +1 w +0 g +0 G +q +[1 0 0 1 72 741.554] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 14.446] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 187.197 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.49 -6.854] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 116.329 -6.755] cm +0 g +0 G +[1 0 0 1 -382.4 -749.245] cm +[1 0 0 1 0 0] Tm +0 0 Td +498.728 749.245 Td +/F128_0 9.963 Tf +(Miscellanea) 48.1412 Tj +[1 0 0 1 266.071 749.146] cm +0 g +0 G +0 g +0 G +[1 0 0 1 280.796 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -472.974 -7.094] cm +0 g +0 G +[1 0 0 1 0 -0.498] cm +q +[] 0 d +0 J +0.498 w +0 0.249 m +475.465 0.249 l +S +Q +0 g +0 G +[1 0 0 1 479.251 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +[1 0 0 1 -540 -741.554] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 710.037 Td +/F128_0 9.963 Tf +(The) 15.4925 Tj +-250 TJm +(Manber) 30.9849 Tj +20 TJm +(-Myers) 28.7731 Tj +-250 TJm +(suf) 12.1748 Tj +25 TJm +(\002x) 10.5209 Tj +-250 TJm +(arra) 15.4825 Tj +1 TJm +(y) 4.9815 Tj +-250 TJm +(construction) 49.2571 Tj +-250 TJm +(algorithm) 38.7461 Tj +-250 TJm +(is) 6.64532 Tj +-250 TJm +(described) 38.1782 Tj +-250 TJm +(in) 7.75121 Tj +-250 TJm +(a) 4.42357 Tj +-250 TJm +(paper) 22.1278 Tj +-250 TJm +(a) 4.42357 Tj +20 TJm +(v) 4.9815 Tj +25 TJm +(ailabl) 22.1378 Tj +1 TJm +(e) 4.42357 Tj +-250 TJm +(from:) 22.1378 Tj +[1 0 0 1 72 707.881] cm +0 g +0 G +[1 0 0 1 0 -36.862] cm +0.9294 0.96861 0.95685 rg +0.9294 0.96861 0.95685 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 35.866 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 32.279] cm +0 g +0 G +[1 0 0 1 18 -8.368] cm +0 g +0 G +[1 0 0 1 -90 -698.516] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 698.516 Td +/F130_0 9.963 Tf +(http://www.cs.arizona.edu/) 155.423 Tj +1 TJm +(people/gene/PAPERS/suffix.ps) 167.378 Tj +[1 0 0 1 72 671.019] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -13.549] cm +0 g +0 G +[1 0 0 1 -72 -661.056] cm +[1 0 0 1 0 0] Tm +0 0 Td +72 649.101 Td +/F128_0 9.963 Tf +(Finally) 28.2351 Tj +65 TJm +(,) 2.49075 Tj +-227 TJm +(the) 12.1748 Tj +-221 TJm +(follo) 18.8201 Tj +25 TJm +(wing) 19.926 Tj +-221 TJm +(papers) 26.0034 Tj +-222 TJm +(docume) 31.5429 Tj +1 TJm +(nt) 7.75121 Tj +-222 TJm +(some) 21.0319 Tj +-221 TJm +(in) 7.75121 Tj +40 TJm +(v) 4.9815 Tj +15 TJm +(estig) 18.8201 Tj +5 TJm +(ations) 23.8016 Tj +-221 TJm +(I) 3.31768 Tj +-221 TJm +(made) 21.5799 Tj +-222 TJm +(into) 15.5024 Tj +-221 TJm +(the) 12.1748 Tj +-221 TJm +(performance) 50.343 Tj +-221 TJm +(of) 8.29918 Tj +-222 TJm +(sorting) 27.6772 Tj +-221 TJm +(and) 14.3866 Tj +-221 TJm +(decompression) 59.768 Tj +72 637.146 Td +(algorithms:) 45.3914 Tj +[1 0 0 1 72 634.989] cm +0 g +0 G +[1 0 0 1 0 -132.503] cm +0.9294 0.96861 0.95685 rg +0.9294 0.96861 0.95685 RG +q +[] 0 d +0 J +0 j +0 w +0 0 468 131.507 re +f +Q +0 g +0 G +[1 0 0 1 0 3.586] cm +0 g +0 G +[1 0 0 1 0 127.921] cm +0 g +0 G +[1 0 0 1 18 -8.369] cm +0 g +0 G +[1 0 0 1 -90 -625.624] cm +[1 0 0 1 0 0] Tm +0 0 Td +90 625.624 Td +/F130_0 9.963 Tf +(Julian) 35.8668 Tj +-426 TJm +(Seward) 35.8668 Tj +102.732 613.669 Td +(On) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(Performance) 65.7558 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(BW) 11.9556 Tj +1 TJm +(T) 5.9778 Tj +-426 TJm +(Sorting) 41.8446 Tj +-426 TJm +(Algorithms) 59.778 Tj +102.732 601.714 Td +(Proceedings) 65.7558 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(IEEE) 23.9112 Tj +-425 TJm +(Data) 23.9112 Tj +-426 TJm +(Compression) 65.7558 Tj +-426 TJm +(Conference) 59.778 Tj +-426 TJm +(2000) 23.9112 Tj +111.22 589.759 Td +(Snowbird,) 53.8002 Tj +-426 TJm +(Utah.) 29.889 Tj +-852 TJm +(28-30) 29.889 Tj +-426 TJm +(M) 5.9778 Tj +1 TJm +(arch) 23.9112 Tj +-426 TJm +(2000.) 29.889 Tj +90 565.848 Td +(Julian) 35.8668 Tj +-426 TJm +(Seward) 35.8668 Tj +102.732 553.893 Td +(Space-time) 59.778 Tj +-426 TJm +(Tradeoffs) 53.8002 Tj +-426 TJm +(in) 11.9556 Tj +-425 TJm +(the) 17.9334 Tj +-426 TJm +(Inverse) 41.8446 Tj +-426 TJm +(B-W) 17.9334 Tj +-426 TJm +(Transform) 53.8002 Tj +102.732 541.938 Td +(Proceedings) 65.7558 Tj +-426 TJm +(of) 11.9556 Tj +-426 TJm +(the) 17.9334 Tj +-426 TJm +(IEEE) 23.9112 Tj +-425 TJm +(Data) 23.9112 Tj +-426 TJm +(Compression) 65.7558 Tj +-426 TJm +(Conference) 59.778 Tj +-426 TJm +(2001) 23.9112 Tj +111.22 529.983 Td +(Snowbird,) 53.8002 Tj +-426 TJm +(Utah.) 29.889 Tj +-852 TJm +(27-29) 29.889 Tj +-426 TJm +(M) 5.9778 Tj +1 TJm +(arch) 23.9112 Tj +-426 TJm +(2001.) 29.889 Tj +[1 0 0 1 72 502.486] cm +0 g +0 G +[1 0 0 1 468 3.586] cm +0 g +0 G +0 g +0 G +[1 0 0 1 -468 -3.586] cm +0 g +0 G +[1 0 0 1 0 -451.634] cm +0 g +0 G +[1 0 0 1 1.893 0] cm +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +0 g +0 G +[1 0 0 1 374.394 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 2.491 0] cm +0 g +0 G +[1 0 0 1 0 6.854] cm +0 g +0 G +0 g +0 G +[1 0 0 1 40.572 -6.755] cm +0 g +0 G +[1 0 0 1 -493.841 -50.951] cm +[1 0 0 1 0 0] Tm +0 0 Td +534.414 50.951 Td +/F128_0 9.963 Tf +(35) 9.963 Tj +[1 0 0 1 453.269 50.852] cm +0 g +0 G +0 g +0 G +[1 0 0 1 93.598 0] cm +0 g +0 G +0 g +0 G +[1 0 0 1 6.277 0] cm +0 g +0 G +[1 0 0 1 -13.144 0] cm +0 g +0 G +Q +showpage +%%PageTrailer +pdfEndPage +%%Trailer +end +%%DocumentSuppliedResources: +%%+ font CJBHNS+CMMI10 +%%+ font RBGKEI+CMSY10 +%%EOF diff --git a/commands/bzip2-1.0.3/manual.xml b/commands/bzip2-1.0.3/manual.xml new file mode 100644 index 000000000..1ab5bd71d --- /dev/null +++ b/commands/bzip2-1.0.3/manual.xml @@ -0,0 +1,2966 @@ + + + %common-ents; +]> + + + + + bzip2 and libbzip2, version 1.0.3 + A program and library for data compression + + &bz-lifespan; + Julian Seward + + Version &bz-version; of &bz-date; + + + + Julian + Seward + + &bz-url; + + + + + + + This program, bzip2, the + associated library libbzip2, and + all documentation, are copyright © &bz-lifespan; Julian 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: + + + + Redistributions of source code must retain the + above copyright notice, this list of conditions and the + following disclaimer. + + 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. + + Altered source versions must be plainly marked + as such, and must not be misrepresented as being the original + software. + + 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. + + PATENTS: To the best of my knowledge, + bzip2 and + libbzip2 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. + + + + + + + + + +Introduction + +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. + +bzip2 is built on top of +libbzip2, a flexible library for +handling compressed data in the +bzip2 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. + + + + describes how to use + bzip2; this is the only part + you need to read if you just want to know how to operate the + program. + + describes the + programming interfaces in detail, and + + records some + miscellaneous notes which I thought ought to be recorded + somewhere. + + + + + + + +How to use bzip2 + +This chapter contains a copy of the +bzip2 man page, and nothing +else. + + +NAME + + + + bzip2, + bunzip2 - a block-sorting file + compressor, v1.0.3 + + 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 statistical 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 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. + +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 +decompression from standard input to standard output. + +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 +bzip2 version 0.9.0 or later. +Earlier versions of bzip2 will +stop after decompressing 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 corruption 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, etc.), 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 invokation 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 + 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 verbosity + 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 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. + + + + -- + 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. + + + + --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. + + + + + + + + +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) +respectively. 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. 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 + + + + + + +RECOVERING DATA FROM DAMAGED FILES + +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. + +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 damaged file, and writes a +number of files rec0001file.bz2, +rec0002file.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 -- lists 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 minimise any potential data +loss through media or transmission 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 monitor 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 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 +bzip2 will perform 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 &bz-version; of +bzip2. 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 and 1.0.2, 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 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 +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, +&bz-email; + +The ideas embodied in +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 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 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. + + + + + + + + + +Programming with <computeroutput>libbzip2</computeroutput> + + +This chapter describes the programming interface to +libbzip2. + +For general background information, particularly about +memory use and performance aspects, you'd be well advised to read + as well. + + + +Top-level structure + +libbzip2 is a flexible +library for compressing and decompressing data in the +bzip2 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. + +The structure of +libbzip2's interfaces is similar +to that of Jean-loup Gailly's and Mark Adler's excellent +zlib library. + +All externally visible symbols have names beginning +BZ2_. This is new in version +1.0. The intention is to minimise pollution of the namespaces of +library clients. + +To use any part of the library, you need to +#include <bzlib.h> +into your sources. + + + + +Low-level summary + +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 +stdio.h, which may be helpful +for embedded applications. + +The low-level part of the library has no global variables +and is therefore thread-safe. + +Six routines make up the low level interface: +BZ2_bzCompressInit, +BZ2_bzCompress, and +BZ2_bzCompressEnd for +compression, and a corresponding trio +BZ2_bzDecompressInit, +BZ2_bzDecompress and +BZ2_bzDecompressEnd for +decompression. The *Init +functions allocate memory for compression/decompression and do +other initialisations, whilst the +*End functions close down +operations and release memory. + +The real work is done by +BZ2_bzCompress and +BZ2_bzDecompress. 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. + + + + + +High-level summary + +This interface provides some handy wrappers around the +low-level interface to facilitate reading and writing +bzip2 format files +(.bz2 files). The routines +provide hooks to facilitate reading files in which the +bzip2 data stream is embedded +within some larger-scale file structure, or where there are +multiple bzip2 data streams +concatenated end-to-end. + +For reading files, +BZ2_bzReadOpen, +BZ2_bzRead, +BZ2_bzReadClose and +BZ2_bzReadGetUnused are +supplied. For writing files, +BZ2_bzWriteOpen, +BZ2_bzWrite and +BZ2_bzWriteFinish are +available. + +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 errno to +determine the cause of the error. In that case, you'd need a C +library which correctly supports +errno in a multithreaded +environment. + +To make the library a little simpler and more portable, +BZ2_bzReadOpen and +BZ2_bzWriteOpen require you to +pass them file handles (FILE*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. + + + + + +Utility functions summary + +For very simple needs, +BZ2_bzBuffToBuffCompress and +BZ2_bzBuffToBuffDecompress 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. + +Yoshioka Tsuneo +(QWF00133@niftyserve.or.jp / +tsuneo-y@is.aist-nara.ac.jp) has +contributed some functions to give better +zlib compatibility. These +functions are BZ2_bzopen, +BZ2_bzread, +BZ2_bzwrite, +BZ2_bzflush, +BZ2_bzclose, +BZ2_bzerror and +BZ2_bzlibVersion. 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. + +Yoshioka also contributed modifications to allow the +library to be built as a Windows DLL. + + + + + + + +Error handling + +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. + +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. + +The file bzlib.h contains +all definitions needed to use the library. In particular, you +should definitely not include +bzlib_private.h. + +In bzlib.h, 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. + + + + + BZ_OK + The requested action was completed + successfully. + + + + BZ_RUN_OK, BZ_FLUSH_OK, + BZ_FINISH_OK + In + BZ2_bzCompress, the requested + flush/finish/nothing-special action was completed + successfully. + + + + BZ_STREAM_END + Compression of data was completed, or the + logical stream end was detected during + decompression. + + + + +The following return values indicate an error of some +kind. + + + + + BZ_CONFIG_ERROR + Indicates that the library has been improperly + compiled on your platform -- a major configuration error. + Specifically, it means that + sizeof(char), + sizeof(short) and + sizeof(int) 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 + sizeof(long) and + sizeof(void*) are 8. Under + LP64, sizeof(int) is still 4, + so libbzip2, which doesn't + use the long type, is + OK. + + + + BZ_SEQUENCE_ERROR + 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. + libbzip2 checks as much as it + can to ensure this is happening, and returns + BZ_SEQUENCE_ERROR 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. + + + + BZ_PARAM_ERROR + Returned when a parameter to a function call is + out of range or otherwise manifestly incorrect. As with + BZ_SEQUENCE_ERROR, this + denotes a bug in the client code. The distinction between + BZ_PARAM_ERROR and + BZ_SEQUENCE_ERROR is a bit + hazy, but still worth making. + + + + BZ_MEM_ERROR + 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 + BZ2_bzDecompress and + BZ2_bzRead may return + BZ_MEM_ERROR even though some + of the compressed data has been read. The same is not true + for compression; once + BZ2_bzCompressInit or + BZ2_bzWriteOpen have + successfully completed, + BZ_MEM_ERROR cannot + occur. + + + + BZ_DATA_ERROR + 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. + + + + BZ_DATA_ERROR_MAGIC + As a special case of + BZ_DATA_ERROR, it is + sometimes useful to know when the compressed stream does not + start with the correct magic bytes ('B' 'Z' + 'h'). + + + + BZ_IO_ERROR + Returned by + BZ2_bzRead and + BZ2_bzWrite when there is an + error reading or writing in the compressed file, and by + BZ2_bzReadOpen and + BZ2_bzWriteOpen for attempts + to use a file for which the error indicator (viz, + ferror(f)) is set. On + receipt of BZ_IO_ERROR, the + caller should consult errno + and/or perror to acquire + operating-system specific information about the + problem. + + + + BZ_UNEXPECTED_EOF + Returned by + BZ2_bzRead when the + compressed file finishes before the logical end of stream is + detected. + + + + BZ_OUTBUFF_FULL + Returned by + BZ2_bzBuffToBuffCompress and + BZ2_bzBuffToBuffDecompress to + indicate that the output data will not fit into the output + buffer provided. + + + + + + + + + +Low-level interface + + + +<computeroutput>BZ2_bzCompressInit</computeroutput> + + +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 ); + + +Prepares for compression. The +bz_stream structure holds all +data pertaining to the compression activity. A +bz_stream structure should be +allocated and initialised prior to the call. The fields of +bz_stream comprise the entirety +of the user-visible data. state +is a pointer to the private data structures required for +compression. + +Custom memory allocators are supported, via fields +bzalloc, +bzfree, and +opaque. The value +opaque is passed to as the first +argument to all calls to bzalloc +and bzfree, but is otherwise +ignored by the library. The call bzalloc ( +opaque, n, m ) is expected to return a pointer +p to n * +m bytes of memory, and bzfree ( +opaque, p ) should free that memory. + +If you don't want to use a custom memory allocator, set +bzalloc, +bzfree and +opaque to +NULL, and the library will then +use the standard malloc / +free routines. + +Before calling +BZ2_bzCompressInit, fields +bzalloc, +bzfree and +opaque should be filled +appropriately, as just described. Upon return, the internal +state will have been allocated and initialised, and +total_in_lo32, +total_in_hi32, +total_out_lo32 and +total_out_hi32 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 _hi32 +fields to store the upper 32 bits of the count. So, for example, +the total amount of data in is (total_in_hi32 +<< 32) + total_in_lo32. + +Parameter blockSize100k +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. + +Parameter verbosity 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 +-DBZ_NO_STDIO, no such output +will appear for any verbosity setting. + +Parameter workFactor +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. + +Lower values of workFactor +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. + +Allowable values range from 0 to 250 inclusive. 0 is a +special case, equivalent to using the default value of 30. + +Note that the compressed output generated is the same +regardless of whether or not the fallback algorithm is +used. + +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. + +Possible return values: + + +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 + + +Allowable next actions: + + +BZ2_bzCompress + if BZ_OK is returned + no specific action needed in case of error + + + + + + +<computeroutput>BZ2_bzCompress</computeroutput> + + +int BZ2_bzCompress ( bz_stream *strm, int action ); + + +Provides more input and/or output buffer space for the +library. The caller maintains input and output buffers, and +calls BZ2_bzCompress to transfer +data between them. + +Before each call to +BZ2_bzCompress, +next_in should point at the data +to be compressed, and avail_in +should indicate how many bytes the library may read. +BZ2_bzCompress updates +next_in, +avail_in and +total_in to reflect the number +of bytes it has read. + +Similarly, next_out should +point to a buffer in which the compressed data is to be placed, +with avail_out indicating how +much output space is available. +BZ2_bzCompress updates +next_out, +avail_out and +total_out to reflect the number +of bytes output. + +You may provide and remove as little or as much data as you +like on each call of +BZ2_bzCompress. 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. + +A second purpose of +BZ2_bzCompress is to request a +change of mode of the compressed stream. + +Conceptually, a compressed stream can be in one of four +states: IDLE, RUNNING, FLUSHING and FINISHING. Before +initialisation +(BZ2_bzCompressInit) and after +termination (BZ2_bzCompressEnd), +a stream is regarded as IDLE. + +Upon initialisation +(BZ2_bzCompressInit), the stream +is placed in the RUNNING state. Subsequent calls to +BZ2_bzCompress should pass +BZ_RUN as the requested action; +other actions are illegal and will result in +BZ_SEQUENCE_ERROR. + +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, +BZ2_bzCompress will no longer +attempt to read data from +next_in, but it will want to +write data to next_out. 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 +BZ2_bzCompress. + +Instead, the calling program passes +BZ_FINISH as an action to +BZ2_bzCompress. This changes +the stream's state to FINISHING. Any remaining input (ie, +next_in[0 .. avail_in-1]) is +compressed and transferred to the output buffer. To do this, +BZ2_bzCompress must be called +repeatedly until all the output has been consumed. At that +point, BZ2_bzCompress returns +BZ_STREAM_END, and the stream's +state is set back to IDLE. +BZ2_bzCompressEnd should then be +called. + +Just to make sure the calling program does not cheat, the +library makes a note of avail_in +at the time of the first call to +BZ2_bzCompress which has +BZ_FINISH 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 +avail_in over subsequent calls +to BZ2_bzCompress, the library +can detect any attempts to slip in more data to compress. Any +calls for which this is detected will return +BZ_SEQUENCE_ERROR. This +indicates a programming mistake which should be corrected. + +Instead of asking to finish, the calling program may ask +BZ2_bzCompress 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 BZ2_bzCompress +with an action of BZ_FLUSH, +remove output data, and persist with the +BZ_FLUSH action until the value +BZ_RUN is returned. As with +finishing, BZ2_bzCompress +detects any attempt to provide more input data once the flush has +begun. + +Once the flush is complete, the stream returns to the +normal RUNNING state. + +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 +BZ2_bzCompress. + + +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_FINISHING + +FINISHING/other + Illegal. + Return value = BZ_SEQUENCE_ERROR + + + +That still looks complicated? Well, fair enough. The +usual sequence of calls for compressing a load of data is: + + + + Get started with + BZ2_bzCompressInit. + + Shovel data in and shlurp out its compressed form + using zero or more calls of + BZ2_bzCompress with action = + BZ_RUN. + + Finish up. Repeatedly call + BZ2_bzCompress with action = + BZ_FINISH, copying out the + compressed output, until + BZ_STREAM_END is + returned. Close up and go home. Call + BZ2_bzCompressEnd. + + + +If the data you want to compress fits into your input +buffer all at once, you can skip the calls of +BZ2_bzCompress ( ..., BZ_RUN ) +and just do the BZ2_bzCompress ( ..., BZ_FINISH +) calls. + +All required memory is allocated by +BZ2_bzCompressInit. The +compression library can accept any data at all (obviously). So +you shouldn't get any error return values from the +BZ2_bzCompress calls. If you +do, they will be +BZ_SEQUENCE_ERROR, and indicate +a bug in your programming. + +Trivial other possible return values: + + +BZ_PARAM_ERROR + if strm is NULL, or strm->s is NULL + + + + + + +<computeroutput>BZ2_bzCompressEnd</computeroutput> + + +int BZ2_bzCompressEnd ( bz_stream *strm ); + + +Releases all memory associated with a compression +stream. + +Possible return values: + + +BZ_PARAM_ERROR if strm is NULL or strm->s is NULL +BZ_OK otherwise + + + + + + +<computeroutput>BZ2_bzDecompressInit</computeroutput> + + +int BZ2_bzDecompressInit ( bz_stream *strm, int verbosity, int small ); + + +Prepares for decompression. As with +BZ2_bzCompressInit, a +bz_stream record should be +allocated and initialised before the call. Fields +bzalloc, +bzfree and +opaque should be set if a custom +memory allocator is required, or made +NULL for the normal +malloc / +free routines. Upon return, the +internal state will have been initialised, and +total_in and +total_out will be zero. + +For the meaning of parameter +verbosity, see +BZ2_bzCompressInit. + +If small 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 +for more information on memory management. + +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 +BZ2_bzDecompressInit succeeds, a +subsequent BZ2_bzDecompress +could fail with +BZ_MEM_ERROR. + +Possible return values: + + +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 + + +Allowable next actions: + + +BZ2_bzDecompress + if BZ_OK was returned + no specific action required in case of error + + + + + + +<computeroutput>BZ2_bzDecompress</computeroutput> + + +int BZ2_bzDecompress ( bz_stream *strm ); + + +Provides more input and/out output buffer space for the +library. The caller maintains input and output buffers, and uses +BZ2_bzDecompress to transfer +data between them. + +Before each call to +BZ2_bzDecompress, +next_in should point at the +compressed data, and avail_in +should indicate how many bytes the library may read. +BZ2_bzDecompress updates +next_in, +avail_in and +total_in to reflect the number +of bytes it has read. + +Similarly, next_out should +point to a buffer in which the uncompressed output is to be +placed, with avail_out +indicating how much output space is available. +BZ2_bzCompress updates +next_out, +avail_out and +total_out to reflect the number +of bytes output. + +You may provide and remove as little or as much data as you +like on each call of +BZ2_bzDecompress. 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. + +Use of BZ2_bzDecompress is +simpler than +BZ2_bzCompress. + +You should provide input and remove output as described +above, and repeatedly call +BZ2_bzDecompress until +BZ_STREAM_END is returned. +Appearance of BZ_STREAM_END +denotes that BZ2_bzDecompress +has detected the logical end of the compressed stream. +BZ2_bzDecompress will not +produce BZ_STREAM_END until all +output data has been placed into the output buffer, so once +BZ_STREAM_END appears, you are +guaranteed to have available all the decompressed output, and +BZ2_bzDecompressEnd can safely +be called. + +If case of an error return value, you should call +BZ2_bzDecompressEnd to clean up +and release memory. + +Possible return values: + + +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 + + +Allowable next actions: + + +BZ2_bzDecompress + if BZ_OK was returned +BZ2_bzDecompressEnd + otherwise + + + + + + +<computeroutput>BZ2_bzDecompressEnd</computeroutput> + + +int BZ2_bzDecompressEnd ( bz_stream *strm ); + + +Releases all memory associated with a decompression +stream. + +Possible return values: + + +BZ_PARAM_ERROR + if strm is NULL or strm->s is NULL +BZ_OK + otherwise + + +Allowable next actions: + + + None. + + + + + + + + +High-level interface + +This interface provides functions for reading and writing +bzip2 format files. First, some +general points. + + + + All of the functions take an + int* first argument, + bzerror. After each call, + bzerror should be consulted + first to determine the outcome of the call. If + bzerror is + BZ_OK, the call completed + successfully, and only then should the return value of the + function (if any) be consulted. If + bzerror is + BZ_IO_ERROR, there was an + error reading/writing the underlying compressed file, and you + should then consult errno / + perror to determine the cause + of the difficulty. bzerror + may also be set to various other values; precise details are + given on a per-function basis below. + + If bzerror indicates + an error (ie, anything except + BZ_OK and + BZ_STREAM_END), you should + immediately call + BZ2_bzReadClose (or + BZ2_bzWriteClose, 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 + BZ2_bzReadClose + (BZ2_bzWriteClose) is + undefined. The implication is that (1) + bzerror should be checked + after each call, and (2) if + bzerror indicates an error, + BZ2_bzReadClose + (BZ2_bzWriteClose) should then + be called to clean up. + + The FILE* arguments + passed to BZ2_bzReadOpen / + BZ2_bzWriteOpen 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. + + Memory allocation requests are handled by + malloc / + free. At present there is no + facility for user-defined memory allocators in the file I/O + functions (could easily be added, though). + + + + + + +<computeroutput>BZ2_bzReadOpen</computeroutput> + + +typedef void BZFILE; + +BZFILE *BZ2_bzReadOpen( int *bzerror, FILE *f, + int verbosity, int small, + void *unused, int nUnused ); + + +Prepare to read compressed data from file handle +f. +f should refer to a file which +has been opened for reading, and for which the error indicator +(ferror(f))is not set. If +small is 1, the library will try +to decompress using less memory, at the expense of speed. + +For reasons explained below, +BZ2_bzRead will decompress the +nUnused bytes starting at +unused, before starting to read +from the file f. At most +BZ_MAX_UNUSED bytes may be +supplied like this. If this facility is not required, you should +pass NULL and +0 for +unused and +nUnused respectively. + +For the meaning of parameters +small and +verbosity, see +BZ2_bzDecompressInit. + +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 BZ2_bzReadOpen +returns BZ_OK but a subsequent +call of BZ2_bzRead will return +BZ_MEM_ERROR. + +Possible assignments to +bzerror: + + +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. + + +Possible return values: + + +Pointer to an abstract BZFILE + if bzerror is BZ_OK +NULL + otherwise + + +Allowable next actions: + + +BZ2_bzRead + if bzerror is BZ_OK +BZ2_bzClose + otherwise + + + + + + +<computeroutput>BZ2_bzRead</computeroutput> + + +int BZ2_bzRead ( int *bzerror, BZFILE *b, void *buf, int len ); + + +Reads up to len +(uncompressed) bytes from the compressed file +b into the buffer +buf. If the read was +successful, bzerror is set to +BZ_OK and the number of bytes +read is returned. If the logical end-of-stream was detected, +bzerror will be set to +BZ_STREAM_END, and the number of +bytes read is returned. All other +bzerror values denote an +error. + +BZ2_bzRead will supply +len 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 bzerror after every call +and watch out for +BZ_STREAM_END. + +Internally, BZ2_bzRead +copies data from the compressed file in chunks of size +BZ_MAX_UNUSED bytes before +decompressing it. If the file contains more bytes than strictly +needed to reach the logical end-of-stream, +BZ2_bzRead will almost certainly +read some of the trailing data before signalling +BZ_SEQUENCE_END. To collect the +read but unused data once +BZ_SEQUENCE_END has appeared, +call BZ2_bzReadGetUnused +immediately before +BZ2_bzReadClose. + +Possible assignments to +bzerror: + + +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. + + +Possible return values: + + +number of bytes read + if bzerror is BZ_OK or BZ_STREAM_END +undefined + otherwise + + +Allowable next actions: + + +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 + + + + + + +<computeroutput>BZ2_bzReadGetUnused</computeroutput> + + +void BZ2_bzReadGetUnused( int* bzerror, BZFILE *b, + void** unused, int* nUnused ); + + +Returns data which was read from the compressed file but +was not needed to get to the logical end-of-stream. +*unused is set to the address of +the data, and *nUnused to the +number of bytes. *nUnused will +be set to a value between 0 and +BZ_MAX_UNUSED inclusive. + +This function may only be called once +BZ2_bzRead has signalled +BZ_STREAM_END but before +BZ2_bzReadClose. + +Possible assignments to +bzerror: + + +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 + + +Allowable next actions: + + +BZ2_bzReadClose + + + + + + +<computeroutput>BZ2_bzReadClose</computeroutput> + + +void BZ2_bzReadClose ( int *bzerror, BZFILE *b ); + + +Releases all memory pertaining to the compressed file +b. +BZ2_bzReadClose does not call +fclose on the underlying file +handle, so you should do that yourself if appropriate. +BZ2_bzReadClose should be called +to clean up after all error situations. + +Possible assignments to +bzerror: + + +BZ_SEQUENCE_ERROR + if b was opened with BZ2_bzOpenWrite +BZ_OK + otherwise + + +Allowable next actions: + + +none + + + + + + +<computeroutput>BZ2_bzWriteOpen</computeroutput> + + +BZFILE *BZ2_bzWriteOpen( int *bzerror, FILE *f, + int blockSize100k, int verbosity, + int workFactor ); + + +Prepare to write compressed data to file handle +f. +f should refer to a file which +has been opened for writing, and for which the error indicator +(ferror(f))is not set. + +For the meaning of parameters +blockSize100k, +verbosity and +workFactor, see +BZ2_bzCompressInit. + +All required memory is allocated at this stage, so if the +call completes successfully, +BZ_MEM_ERROR cannot be signalled +by a subsequent call to +BZ2_bzWrite. + +Possible assignments to +bzerror: + + +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 + + +Possible return values: + + +Pointer to an abstract BZFILE + if bzerror is BZ_OK +NULL + otherwise + + +Allowable next actions: + + +BZ2_bzWrite + if bzerror is BZ_OK + (you could go directly to BZ2_bzWriteClose, but this would be pretty pointless) +BZ2_bzWriteClose + otherwise + + + + + + +<computeroutput>BZ2_bzWrite</computeroutput> + + +void BZ2_bzWrite ( int *bzerror, BZFILE *b, void *buf, int len ); + + +Absorbs len bytes from the +buffer buf, eventually to be +compressed and written to the file. + +Possible assignments to +bzerror: + + +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 + + + + + + +<computeroutput>BZ2_bzWriteClose</computeroutput> + + +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 ); + + +Compresses and flushes to the compressed file all data so +far supplied by BZ2_bzWrite. +The logical end-of-stream markers are also written, so subsequent +calls to BZ2_bzWrite are +illegal. All memory associated with the compressed file +b is released. +fflush is called on the +compressed file, but it is not +fclose'd. + +If BZ2_bzWriteClose 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 +fflush the compressed file. You +can force this behaviour to happen even in the case of no error, +by passing a nonzero value to +abandon. + +If nbytes_in is non-null, +*nbytes_in will be set to be the +total volume of uncompressed data handled. Similarly, +nbytes_out will be set to the +total volume of compressed data written. For compatibility with +older versions of the library, +BZ2_bzWriteClose only yields the +lower 32 bits of these counts. Use +BZ2_bzWriteClose64 if you want +the full 64 bit counts. These two functions are otherwise +absolutely identical. + +Possible assignments to +bzerror: + + +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 + + + + + + +Handling embedded compressed data streams + +The high-level library facilitates use of +bzip2 data streams which form +some part of a surrounding, larger data stream. + + + + For writing, the library takes an open file handle, + writes compressed data to it, + fflushes it but does not + fclose it. The calling + application can write its own data before and after the + compressed data stream, using that same file handle. + + Reading is more complex, and the facilities are not as + general as they could be since generality is hard to reconcile + with efficiency. BZ2_bzRead + reads from the compressed file in blocks of size + BZ_MAX_UNUSED bytes, and in + doing so probably will overshoot the logical end of compressed + stream. To recover this data once decompression has ended, + call BZ2_bzReadGetUnused after + the last call of BZ2_bzRead + (the one returning + BZ_STREAM_END) but before + calling + BZ2_bzReadClose. + + + +This mechanism makes it easy to decompress multiple +bzip2 streams placed end-to-end. +As the end of one stream, when +BZ2_bzRead returns +BZ_STREAM_END, call +BZ2_bzReadGetUnused 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 +BZ2_bzReadOpen again, feeding in +the unused data via the unused / +nUnused parameters. Keep doing +this until BZ_STREAM_END return +coincides with the physical end of file +(feof(f)). In this situation +BZ2_bzReadGetUnused will of +course return no data. + +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. + + + + + +Standard file-reading/writing code + +Here's how you'd write data to a compressed file: + + +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 */ +} + + +And to read from a compressed file: + + +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 ); +} + + + + + + + + +Utility functions + + + +<computeroutput>BZ2_bzBuffToBuffCompress</computeroutput> + + +int BZ2_bzBuffToBuffCompress( char* dest, + unsigned int* destLen, + char* source, + unsigned int sourceLen, + int blockSize100k, + int verbosity, + int workFactor ); + + +Attempts to compress the data in source[0 +.. sourceLen-1] into the destination buffer, +dest[0 .. *destLen-1]. If the +destination buffer is big enough, +*destLen is set to the size of +the compressed data, and BZ_OK +is returned. If the compressed data won't fit, +*destLen is unchanged, and +BZ_OUTBUFF_FULL is +returned. + +Compression in this manner is a one-shot event, done with a +single call to this function. The resulting compressed data is a +complete bzip2 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. + +For the meaning of parameters +blockSize100k, +verbosity and +workFactor, see +BZ2_bzCompressInit. + +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. + +BZ2_bzBuffToBuffDecompress +will not write data at or beyond +dest[*destLen], even in case of +buffer overflow. + +Possible return values: + + +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 + + + + + + +<computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput> + + +int BZ2_bzBuffToBuffDecompress( char* dest, + unsigned int* destLen, + char* source, + unsigned int sourceLen, + int small, + int verbosity ); + + +Attempts to decompress the data in source[0 +.. sourceLen-1] into the destination buffer, +dest[0 .. *destLen-1]. If the +destination buffer is big enough, +*destLen is set to the size of +the uncompressed data, and BZ_OK +is returned. If the compressed data won't fit, +*destLen is unchanged, and +BZ_OUTBUFF_FULL is +returned. + +source is assumed to hold +a complete bzip2 format data +stream. +BZ2_bzBuffToBuffDecompress tries +to decompress the entirety of the stream into the output +buffer. + +For the meaning of parameters +small and +verbosity, see +BZ2_bzDecompressInit. + +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. + +BZ2_bzBuffToBuffDecompress +will not write data at or beyond +dest[*destLen], even in case of +buffer overflow. + +Possible return values: + + +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 + + + + + + + + +<computeroutput>zlib</computeroutput> compatibility functions + +Yoshioka Tsuneo has contributed some functions to give +better zlib compatibility. +These functions are BZ2_bzopen, +BZ2_bzread, +BZ2_bzwrite, +BZ2_bzflush, +BZ2_bzclose, +BZ2_bzerror and +BZ2_bzlibVersion. 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. + + +typedef void BZFILE; + +const char * BZ2_bzlibVersion ( void ); + + +Returns a string indicating the library version. + + +BZFILE * BZ2_bzopen ( const char *path, const char *mode ); +BZFILE * BZ2_bzdopen ( int fd, const char *mode ); + + +Opens a .bz2 file for +reading or writing, using either its name or a pre-existing file +descriptor. Analogous to fopen +and fdopen. + + +int BZ2_bzread ( BZFILE* b, void* buf, int len ); +int BZ2_bzwrite ( BZFILE* b, void* buf, int len ); + + +Reads/writes data from/to a previously opened +BZFILE. Analogous to +fread and +fwrite. + + +int BZ2_bzflush ( BZFILE* b ); +void BZ2_bzclose ( BZFILE* b ); + + +Flushes/closes a BZFILE. +BZ2_bzflush doesn't actually do +anything. Analogous to fflush +and fclose. + + +const char * BZ2_bzerror ( BZFILE *b, int *errnum ) + + +Returns a string describing the more recent error status of +b, and also sets +*errnum to its numerical +value. + + + + + +Using the library in a <computeroutput>stdio</computeroutput>-free environment + + + +Getting rid of <computeroutput>stdio</computeroutput> + +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 +BZ_NO_STDIO defined. Doing this +gives you a library containing only the following eight +functions: + +BZ2_bzCompressInit, +BZ2_bzCompress, +BZ2_bzCompressEnd +BZ2_bzDecompressInit, +BZ2_bzDecompress, +BZ2_bzDecompressEnd +BZ2_bzBuffToBuffCompress, +BZ2_bzBuffToBuffDecompress + +When compiled like this, all functions will ignore +verbosity settings. + + + + + +Critical error handling + +libbzip2 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 +BZ_NO_STDIO set. + +For a normal compile, an assertion failure yields the +message: + +
+bzip2/libbzip2: internal error number N. +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;. +
+ +where N is some error code +number. If N == 1007, 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). + +exit(3) is then +called. + +For a stdio-free library, +assertion failures result in a call to a function declared +as: + + +extern void bz_internal_error ( int errcode ); + + +The relevant code is passed as a parameter. You should +supply such a function. + +In either case, once an assertion failure has occurred, any +bz_stream records involved can +be regarded as invalid. You should not attempt to resume normal +operation with them. + +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. + +
+ +
+ + + +Making a Windows DLL + +Everything related to Windows has been contributed by +Yoshioka Tsuneo +(QWF00133@niftyserve.or.jp / +tsuneo-y@is.aist-nara.ac.jp), so +you should send your queries to him (but perhaps Cc: me, +&bz-email;). + +My vague understanding of what to do is: using Visual C++ +5.0, open the project file +libbz2.dsp, and build. That's +all. + +If you can't open the project file for some reason, make a +new one, naming these files: +blocksort.c, +bzlib.c, +compress.c, +crctable.c, +decompress.c, +huffman.c, +randtable.c and +libbz2.def. You will also need +to name the header files bzlib.h +and bzlib_private.h. + +If you don't use VC++, you may need to define the +proprocessor symbol +_WIN32. + +Finally, dlltest.c is a +sample program using the DLL. It has a project file, +dlltest.dsp. + +If you just want a makefile for Visual C, have a look at +makefile.msc. + +Be aware that if you compile +bzip2 itself on Win32, you must +set BZ_UNIX to 0 and +BZ_LCCWIN32 to 1, in the file +bzip2.c, before compiling. +Otherwise the resulting binary won't work correctly. + +I haven't tried any of this stuff myself, but it all looks +plausible. + + + +
+ + + + +Miscellanea + +These are just some random thoughts of mine. Your mileage +may vary. + + + +Limitations of the compressed file format + +bzip2-1.0.X, +0.9.5 and +0.9.0 use exactly the same file +format as the original version, +bzip2-0.1. This decision was +made in the interests of stability. Creating yet another +incompatible compressed file format would create further +confusion and disruption for users. + +Nevertheless, this is not a painless decision. Development +work since the release of +bzip2-0.1 in August 1997 has +shown complexities in the file format which slow down +decompression and, in retrospect, are unnecessary. These +are: + + + + 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. + + 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. + + I could have changed to Sadakane's algorithm, but I find + it to be slower than bzip2'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 + bzip2-0.1's performance on + repetitive data, so perhaps it isn't a problem for real + inputs. + + 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. + + 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 + decompress.c 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. + + An Adler-32 checksum, rather than a CRC32 checksum, + would be faster to compute. + + + +It would be fair to say that the +bzip2 format was frozen before I +properly and fully understood the performance consequences of +doing so. + +Improvements which I was able to incorporate into 0.9.0, +despite using the same file format, are: + + + + Single array implementation of the inverse BWT. This + significantly speeds up decompression, presumably because it + reduces the number of cache misses. + + Faster inverse MTF transform for large MTF values. + The new implementation is based on the notion of sliding blocks + of values. + + bzip2-0.9.0 now reads + and writes files with fread + and fwrite; version 0.1 used + putc and + getc. Duh! Well, you live + and learn. + + + +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. + + + + + +Portability issues + +After some consideration, I have decided not to use GNU +autoconf to configure 0.9.5 or +1.0. + +autoconf, admirable and +wonderful though it is, mainly assists with portability problems +between Unix-like platforms. But +bzip2 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. autoconf doesn't help +in those cases, and brings in a whole load of new +complexity. + +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. + +There are a couple of +__inline__ directives in the +code. GNU C (gcc) 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 +#define +__inline__ to be +/* */. One easy way to do this +is to compile with the flag +-D__inline__=, which should be +understood by most Unix compilers. + +If you still have difficulties, try compiling with the +macro BZ_STRICT_ANSI 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 +bzip2's checks against +compressing directories, symbolic links, devices, and other +not-really-a-file entities. This could cause filesystem +corruption! + +One other thing: if you create a +bzip2 binary for public distribution, +please consider linking it statically (gcc +-static). This avoids all sorts of library-version +issues that others may encounter later on. + +If you build bzip2 on +Win32, you must set BZ_UNIX to 0 +and BZ_LCCWIN32 to 1, in the +file bzip2.c, before compiling. +Otherwise the resulting binary won't work correctly. + + + + + +Reporting bugs + +I tried pretty hard to make sure +bzip2 is bug free, both by +design and by testing. Hopefully you'll never need to read this +section for real. + +Nevertheless, if bzip2 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. + + + + 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 + bzip2, and I've run across two + such examples myself. + + 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 + -O2 + -fomit-frame-pointer + -fno-strength-reduce. You + should specifically not use + -funroll-loops. + + 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. + + If bzip2 + crashes randomly, and the crashes are not repeatable, you may + have a flaky memory subsystem. + bzip2 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. + + Try using a different machine of the same type, and see + if you can repeat the problem. + + This isn't really a bug, but ... If + bzip2 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. + + + +If you've incorporated +libbzip2 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. + +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: + + +bzip2 crashed with segmentation fault on my machine + + +and absolutely nothing else. Needless to say, a such a +report is totally, utterly, completely and +comprehensively 100% useless; a waste of your time, my time, and +net bandwidth. With no details at all, there's no way +I can possibly begin to figure out what the problem is. + +The rules of the game are: facts, facts, facts. Don't omit +them because "oh, they won't be relevant". At the bare +minimum: + + +Machine type. Operating system version. +Exact version of bzip2 (do bzip2 -V). +Exact version of the compiler used. +Flags passed to the compiler. + + +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. + + + + + +Did you get the right package? + +bzip2 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. + +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. + +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, zlib-1.2.1 and +gzip-1.2.4. Look for them at +http://www.zlib.org and +http://www.gzip.org +respectively. + +For something faster and lighter still, you might try Markus F +X J Oberhumer's LZO real-time +compression/decompression library, at +http://www.oberhumer.com/opensource. + + + + + + +Further Reading + +bzip2 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. + +Four documents describe essentially all the ideas behind +bzip2: + +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 + + +The following paper gives valuable additional insights into +the algorithm, but is not immediately the basis of any code used +in bzip2. + +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 + +Kunihiko Sadakane's sorting algorithm, mentioned above, is +available from: + +http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz + + +The Manber-Myers suffix array construction algorithm is +described in a paper available from: + +http://www.cs.arizona.edu/people/gene/PAPERS/suffix.ps + + +Finally, the following papers document some +investigations I made into the performance of sorting +and decompression algorithms: + +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. + + + + + + +
diff --git a/commands/bzip2-1.0.3/mk251.c b/commands/bzip2-1.0.3/mk251.c new file mode 100644 index 000000000..205778a84 --- /dev/null +++ b/commands/bzip2-1.0.3/mk251.c @@ -0,0 +1,16 @@ + +/* 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. +*/ + +#include + +int main () +{ + int i; + for (i = 0; i < 48500000 ; i++) + putchar(251); + return 0; +} diff --git a/commands/bzip2-1.0.3/randtable.c b/commands/bzip2-1.0.3/randtable.c new file mode 100644 index 000000000..940462d69 --- /dev/null +++ b/commands/bzip2-1.0.3/randtable.c @@ -0,0 +1,124 @@ + +/*-------------------------------------------------------------*/ +/*--- Table for randomising repetitive blocks ---*/ +/*--- randtable.c ---*/ +/*-------------------------------------------------------------*/ + +/*-- + This file is a part of bzip2 and/or libbzip2, a program and + library for lossless, block-sorting data compression. + + Copyright (C) 1996-2005 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, Cambridge, UK. + jseward@bzip.org + bzip2/libbzip2 version 1.0 of 21 March 2000 + + This program is based on (at least) the work of: + Mike Burrows + David Wheeler + Peter Fenwick + Alistair Moffat + Radford Neal + Ian H. Witten + Robert Sedgewick + Jon L. Bentley + + For more information on these sources, see the manual. +--*/ + + +#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/commands/bzip2-1.0.3/sample1.bz2 b/commands/bzip2-1.0.3/sample1.bz2 new file mode 100644 index 000000000..18dea6004 Binary files /dev/null and b/commands/bzip2-1.0.3/sample1.bz2 differ diff --git a/commands/bzip2-1.0.3/sample1.ref b/commands/bzip2-1.0.3/sample1.ref new file mode 100644 index 000000000..a56e52b77 Binary files /dev/null and b/commands/bzip2-1.0.3/sample1.ref differ diff --git a/commands/bzip2-1.0.3/sample2.bz2 b/commands/bzip2-1.0.3/sample2.bz2 new file mode 100644 index 000000000..d5a6160ba Binary files /dev/null and b/commands/bzip2-1.0.3/sample2.bz2 differ diff --git a/commands/bzip2-1.0.3/sample2.ref b/commands/bzip2-1.0.3/sample2.ref new file mode 100644 index 000000000..34af95839 Binary files /dev/null and b/commands/bzip2-1.0.3/sample2.ref differ diff --git a/commands/bzip2-1.0.3/sample3.bz2 b/commands/bzip2-1.0.3/sample3.bz2 new file mode 100644 index 000000000..d90cff920 Binary files /dev/null and b/commands/bzip2-1.0.3/sample3.bz2 differ diff --git a/commands/bzip2-1.0.3/sample3.ref b/commands/bzip2-1.0.3/sample3.ref new file mode 100644 index 000000000..775a2f68e --- /dev/null +++ b/commands/bzip2-1.0.3/sample3.ref @@ -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/commands/bzip2-1.0.3/spewG.c b/commands/bzip2-1.0.3/spewG.c new file mode 100644 index 000000000..7934e7658 --- /dev/null +++ b/commands/bzip2-1.0.3/spewG.c @@ -0,0 +1,39 @@ + +/* 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). +*/ + +#define _FILE_OFFSET_BITS 64 + +#include +#include + +/* 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/commands/bzip2-1.0.3/unzcrash.c b/commands/bzip2-1.0.3/unzcrash.c new file mode 100644 index 000000000..f0f17fcca --- /dev/null +++ b/commands/bzip2-1.0.3/unzcrash.c @@ -0,0 +1,126 @@ + +/* 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! + + p.s. 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. +*/ + +#include +#include +#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/commands/bzip2-1.0.3/words0 b/commands/bzip2-1.0.3/words0 new file mode 100644 index 000000000..164a8ed28 --- /dev/null +++ b/commands/bzip2-1.0.3/words0 @@ -0,0 +1,5 @@ + +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. + diff --git a/commands/bzip2-1.0.3/words1 b/commands/bzip2-1.0.3/words1 new file mode 100644 index 000000000..2e83de9f0 --- /dev/null +++ b/commands/bzip2-1.0.3/words1 @@ -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/commands/bzip2-1.0.3/words2 b/commands/bzip2-1.0.3/words2 new file mode 100644 index 000000000..203ee39c4 --- /dev/null +++ b/commands/bzip2-1.0.3/words2 @@ -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@acm.org). + diff --git a/commands/bzip2-1.0.3/words3 b/commands/bzip2-1.0.3/words3 new file mode 100644 index 000000000..7a6b46244 --- /dev/null +++ b/commands/bzip2-1.0.3/words3 @@ -0,0 +1,23 @@ + +If you got this far and the "cmp"s didn't complain, it looks +like you're in business. + +To install in /usr/bin, /usr/lib, /usr/man and /usr/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_toc.html). + +You can also do "bzip2 --help" to see some helpful information. +"bzip2 -L" displays the software license. + diff --git a/commands/bzip2-1.0.3/xmlproc.sh b/commands/bzip2-1.0.3/xmlproc.sh new file mode 100755 index 000000000..6fe4d5748 --- /dev/null +++ b/commands/bzip2-1.0.3/xmlproc.sh @@ -0,0 +1,99 @@ +#!/bin/bash +# see the README in this directory for usage etc. + +usage() { + echo ''; + echo 'Usage: xmlproc.sh -[option] '; + 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 $OUT $OUT $OUT $OUT $OUT $OUT $OUT $OUT