home *** CD-ROM | disk | FTP | other *** search
/ Software Collection (I) / TOOLS.iso / f20 / 0614-1.img
DOSIMG Disk Image  |  1993-08-03  |  226.9 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: DOSIMG Disk Image (archive/dosimg).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert DOSIMG Disk Image (archive/dosimg) magic Supported
66% dexvert Alias/Vivid PIX Image (image/aliasPIX) ext Supported
66% dexvert GEM Raster Bitmap (image/gem) ext Supported
66% dexvert DaVinci (image/daVinci) ext Supported
46% dexvert Disk Image (archive/diskImage) ext Supported
1% dexvert AIX/BFF backup/restore (archive/aixBackupRestore) ext Unsupported
1% dexvert The Duplicator Toolkit disk image (archive/duplicatorToolkitDiskImage) ext Unsupported
1% dexvert GFS2 Filesystem (archive/gfs2Filesystem) ext Unsupported
1% dexvert JFS/JFS22 filesystem image (archive/jfsFilesystemImage) ext Unsupported
1% dexvert PTS-DOS disk image (archive/ptsDOSDiskImage) ext Unsupported
1% dexvert QNX volume disk image (archive/qnxVolumeDiskImage) ext Unsupported
1% dexvert ReiserFS file system (archive/reiserFSFileSystem) ext Unsupported
1% dexvert SCO UnixWare BFS filesystem (archive/scoUnixWareBFSFilesystem) ext Unsupported
1% dexvert SNATCH-IT Disk Image (archive/snatchItDiskImage) ext Unsupported
1% dexvert UBIFS filesystem (archive/ubiFSilesystem) ext Unsupported
1% dexvert UFS2 file system (archive/ufs2Filesystem) ext Unsupported
1% dexvert Android boot image (archive/androidBootImage) ext Unsupported
1% dexvert Paragon DOS disk image (archive/paragonDOSDiskImage) ext Unsupported
1% dexvert QEMU QCOW Image (archive/qemuQCOWImage) ext Unsupported
1% dexvert Davilex Games game data format (other/davilexGamesGameDataFormat) ext Unsupported
1% dexvert Eclipse Image (other/eclipseImage) ext Unsupported
1% dexvert InfoComics game data (other/infoComicsGameData) ext Unsupported
1% dexvert Garmin map (other/garminMap) ext Unsupported
1% dexvert Piklib/BlooMoo graphic data (other/piklibGraphicData) ext Unsupported
100% file data default
100% TrID DOSIMG disk image (80t/15s) default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4f 0f 01 01 01 01 01 01 | 01 01 01 01 01 01 01 01 |O.......|........|
|00000010| 01 01 01 01 01 01 01 01 | 01 01 01 01 01 01 01 01 |........|........|
|00000020| 01 01 01 01 01 01 01 01 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000080| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000090| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000a0| 00 00 00 00 00 00 94 08 | ee eb 28 90 49 42 4d 20 |........|..(.IBM |
|000000b0| 20 33 2e 33 00 02 01 01 | 00 02 e0 00 60 09 f9 07 | 3.3....|....`...|
|000000c0| 00 0f 00 02 ee 00 0f fa | 33 ed b8 c0 07 8e d8 c4 |........|3.......|
|000000d0| 1e 1c 00 88 16 fd 01 0a | d2 79 08 89 1e 24 00 8c |........|.y...$..|
|000000e0| 06 26 00 8e c5 8e d5 bc | 00 7c fc 1e 36 c5 36 78 |.&......|.|..6.6x|
|000000f0| 00 bf 2a 7c b9 0b 00 f3 | a4 1f c6 06 2e 00 0f bf |..*|....|........|
|00000100| 78 00 b8 2a 7c ab 91 ab | fb 8a 16 fd 01 cd 13 a0 |x..*|...|........|
|00000110| 10 00 98 f7 26 16 00 03 | 06 0e 00 e8 73 00 e8 79 |....&...|....s..y|
|00000120| 00 bb 00 05 53 e8 a0 00 | 5f be 71 01 b9 0b 00 90 |....S...|_.q.....|
|00000130| f3 a6 75 57 83 c7 15 b1 | 0b 90 90 f3 a6 75 4c 26 |..uW....|.....uL&|
|00000140| 8b 47 1c 99 8b 0e 0b 00 | 03 c1 48 f7 f1 3d 14 00 |.G......|..H..=..|
|00000150| 7f 02 b0 14 96 a1 11 00 | b1 04 d3 e8 e8 32 00 ff |........|.....2..|
|00000160| 36 24 00 c4 1e 6d 01 e8 | 30 00 e8 5b 00 2b f0 76 |6$...m..|0..[.+.v|
|00000170| 0d e8 1d 00 52 f7 26 0b | 00 03 d8 5a eb e9 5b 8a |....R.&.|...Z..[.|
|00000180| 2e 15 00 8a 16 fd 01 ff | 2e 6d 01 be 8b 01 eb 54 |........|.m.....T|
|00000190| 90 01 06 24 00 11 2e 26 | 00 c3 a1 18 00 f6 26 1a |...$...&|......&.|
|000001a0| 00 91 a1 24 00 8b 16 26 | 00 f7 f1 92 8b 0e 18 00 |...$...&|........|
|000001b0| f6 f1 2a cc 91 fe c5 86 | e9 d0 ce d0 ce 0a f1 86 |..*.....|........|
|000001c0| f2 87 ca 8a 16 fd 01 c3 | bf 05 00 b8 01 02 cd 13 |........|........|
|000001d0| 72 03 b0 01 c3 80 fc 11 | 74 f8 33 c0 cd 13 4f 75 |r.......|t.3...Ou|
|000001e0| ea be d5 01 e8 1d 00 be | ab 01 e8 17 00 33 c0 cd |........|.....3..|
|000001f0| 16 36 c7 06 72 04 34 12 | ea 00 00 ff ff b4 0e bb |.6..r.4.|........|
|00000200| 07 00 cd 10 ac 3c 24 75 | f4 c3 00 00 70 00 49 42 |.....<$u|....p.IB|
|00000210| 4d 42 49 4f 20 20 43 4f | 4d 49 42 4d 44 4f 53 20 |MBIO CO|MIBMDOS |
|00000220| 20 43 4f 4d ee 00 04 0a | 0d 4e 6f 6e 2d 53 79 73 | COM....|.Non-Sys|
|00000230| 74 65 6d 20 64 69 73 6b | 20 6f 72 20 64 69 73 6b |tem disk| or disk|
|00000240| 20 65 72 72 6f 72 24 0a | 0d 52 65 70 6c 61 63 65 | error$.|.Replace|
|00000250| 20 61 6e 64 20 73 74 72 | 69 6b 65 20 61 6e 79 20 | and str|ike any |
|00000260| 6b 65 79 20 77 68 65 6e | 20 72 65 61 64 79 0a 0d |key when| ready..|
|00000270| 24 0a 0d 44 69 73 6b 20 | 62 6f 6f 74 20 66 61 69 |$..Disk |boot fai|
|00000280| 6c 75 72 65 24 43 6f 70 | 72 2e 20 43 4f 4d 50 41 |lure$Cop|r. COMPA|
|00000290| 51 20 31 39 38 33 2d 38 | 37 00 55 aa f9 ff ff 03 |Q 1983-8|7.U.....|
|000002a0| 40 00 05 60 00 07 80 00 | 09 a0 00 0b c0 00 0d e0 |@..`....|........|
|000002b0| 00 0f 00 01 11 20 01 13 | 40 01 15 60 01 17 80 01 |..... ..|@..`....|
|000002c0| 19 a0 01 1b c0 01 1d e0 | 01 1f 00 02 21 20 02 23 |........|....! .#|
|000002d0| 40 02 25 60 02 27 80 02 | 29 a0 02 2b c0 02 2d e0 |@.%`.'..|)..+..-.|
|000002e0| 02 2f 00 03 31 20 03 33 | 40 03 ee ff 03 37 f0 ff |./..1 .3|@....7..|
|000002f0| 39 a0 03 3b c0 03 3d e0 | 03 3f 00 04 41 20 04 43 |9..;..=.|.?..A .C|
|00000300| 40 04 45 60 04 47 80 04 | 49 f0 ff 4b f0 ff 4d e0 |@.E`.G..|I..K..M.|
|00000310| 04 4f 00 05 51 20 05 53 | 40 05 55 60 05 57 80 05 |.O..Q .S|@.U`.W..|
|00000320| 59 a0 05 5b c0 05 5d e0 | 05 5f 00 06 61 20 06 63 |Y..[..].|._..a .c|
|00000330| 40 06 65 60 06 67 80 06 | 69 a0 06 6b c0 06 6d e0 |@.e`.g..|i..k..m.|
|00000340| 06 6f 00 07 71 20 07 73 | 40 07 75 60 07 77 80 07 |.o..q .s|@.u`.w..|
|00000350| 79 a0 07 7b c0 07 7d e0 | 07 7f 00 08 81 20 08 83 |y..{..}.|..... ..|
|00000360| 40 08 85 60 08 87 80 08 | 89 a0 08 8b c0 08 8d e0 |@..`....|........|
|00000370| 08 8f 00 09 91 20 09 93 | 40 09 95 60 09 97 80 09 |..... ..|@..`....|
|00000380| 99 a0 09 9b c0 09 9d e0 | 09 9f 00 0a a1 20 0a a3 |........|..... ..|
|00000390| 40 0a a5 60 0a a7 80 0a | a9 a0 0a ab c0 0a ad e0 |@..`....|........|
|000003a0| 0a af 00 0b b1 20 0b b3 | 40 0b b5 60 0b b7 80 0b |..... ..|@..`....|
|000003b0| b9 a0 0b bb c0 0b bd e0 | 0b bf 00 0c c1 20 0c c3 |........|..... ..|
|000003c0| 40 0c c5 60 0c c7 80 0c | c9 a0 0c cb c0 0c cd e0 |@..`....|........|
|000003d0| 0c cf 00 0d d1 20 0d d3 | 40 0d d5 60 0d d7 80 0d |..... ..|@..`....|
|000003e0| d9 a0 0d db c0 0d dd e0 | 0d df 00 0e e1 20 0e e3 |........|..... ..|
|000003f0| 40 0e e5 60 0e e7 80 0e | e9 a0 0e eb c0 0e ed e0 |@..`....|........|
|00000400| 0e ef 00 0f f1 20 0f f3 | 40 0f f5 60 0f f7 80 0f |..... ..|@..`....|
|00000410| f9 a0 0f fb c0 0f fd e0 | 0f ff 00 10 01 21 10 03 |........|.....!..|
|00000420| 41 10 05 61 10 07 81 10 | 09 a1 10 0b c1 10 0d e1 |A..a....|........|
|00000430| 10 0f 01 11 11 21 11 13 | 41 11 15 61 11 17 81 11 |.....!..|A..a....|
|00000440| 19 a1 11 1b c1 11 1d e1 | 11 1f 01 12 21 21 12 23 |........|....!!.#|
|00000450| 41 12 25 61 12 27 81 12 | 29 a1 12 2b c1 12 2d e1 |A.%a.'..|)..+..-.|
|00000460| 12 2f 01 13 31 21 13 33 | 41 13 35 61 13 37 81 13 |./..1!.3|A.5a.7..|
|00000470| 39 a1 13 3b c1 13 3d e1 | 13 3f 01 14 41 21 14 43 |9..;..=.|.?..A!.C|
|00000480| 41 14 45 61 14 47 81 14 | 49 a1 14 4b c1 14 4d e1 |A.Ea.G..|I..K..M.|
|00000490| 14 4f 01 15 51 21 15 53 | 41 15 55 61 15 57 81 15 |.O..Q!.S|A.Ua.W..|
|000004a0| 59 a1 15 5b c1 15 5d e1 | 15 ff 0f 16 ff 2f 16 63 |Y..[..].|...../.c|
|000004b0| 41 16 65 61 16 67 81 16 | 69 f1 ff 6b c1 16 6d e1 |A.ea.g..|i..k..m.|
|000004c0| 16 6f 01 17 71 21 17 73 | 41 17 75 61 17 77 81 17 |.o..q!.s|A.ua.w..|
|000004d0| 79 a1 17 7b c1 17 7d e1 | 17 7f 01 18 81 21 18 83 |y..{..}.|.....!..|
|000004e0| 41 18 85 61 18 87 81 18 | 89 a1 18 8b c1 18 8d e1 |A..a....|........|
|000004f0| 18 8f 01 19 91 21 19 93 | 41 19 95 f1 ff 97 81 19 |.....!..|A.......|
|00000500| 99 a1 19 9b c1 19 9d e1 | 19 9f 01 1a a1 21 1a a3 |........|.....!..|
|00000510| 41 1a a5 61 1a a7 81 1a | a9 a1 1a ab c1 1a ad e1 |A..a....|........|
|00000520| 1a af 01 1b b1 21 1b b3 | 41 1b b5 61 1b b7 81 1b |.....!..|A..a....|
|00000530| b9 a1 1b bb c1 1b bd e1 | 1b bf 01 1c c1 21 1c c3 |........|.....!..|
|00000540| 41 1c c5 61 1c c7 81 1c | c9 a1 1c cb c1 1c cd e1 |A..a....|........|
|00000550| 1c cf 01 1d d1 21 1d d3 | f1 ff d5 61 1d d7 81 1d |.....!..|...a....|
|00000560| d9 a1 1d db c1 1d dd e1 | 1d df 01 1e e1 21 1e e3 |........|.....!..|
|00000570| 41 1e e5 f1 ff e7 f1 ff | e9 a1 1e eb c1 1e ed e1 |A.......|........|
|00000580| 1e ef 01 1f f1 21 1f f3 | 41 1f f5 61 1f f7 81 1f |.....!..|A..a....|
|00000590| f9 a1 1f fb c1 1f fd e1 | 1f ff 01 20 01 22 20 03 |........|... ." .|
|000005a0| 42 20 ff 6f 20 07 82 20 | 09 a2 20 0b c2 20 0d e2 |B .o .. |.. .. ..|
|000005b0| 20 0f 02 21 ff 2f 21 13 | 42 21 15 62 21 17 82 21 | ..!./!.|B!.b!..!|
|000005c0| 19 a2 21 1b c2 21 1d e2 | 21 ff 0f ee 00 ff ee 00 |..!..!..|!.......|
|000005d0| ff ee 00 ff ee 00 ff ee | 00 ff ee 00 ff ee 00 ff |........|........|
|000005e0| ee 00 ff ee 00 ff ee 00 | ff ee 00 db f9 ff ff 03 |........|........|
|000005f0| 40 00 05 60 00 07 80 00 | 09 a0 00 0b c0 00 0d e0 |@..`....|........|
|00000600| 00 0f 00 01 11 20 01 13 | 40 01 15 60 01 17 80 01 |..... ..|@..`....|
|00000610| 19 a0 01 1b c0 01 1d e0 | 01 1f 00 02 21 20 02 23 |........|....! .#|
|00000620| 40 02 25 60 02 27 80 02 | 29 a0 02 2b c0 02 2d e0 |@.%`.'..|)..+..-.|
|00000630| 02 2f 00 03 31 20 03 33 | 40 03 ee ff 03 37 f0 ff |./..1 .3|@....7..|
|00000640| 39 a0 03 3b c0 03 3d e0 | 03 3f 00 04 41 20 04 43 |9..;..=.|.?..A .C|
|00000650| 40 04 45 60 04 47 80 04 | 49 f0 ff 4b f0 ff 4d e0 |@.E`.G..|I..K..M.|
|00000660| 04 4f 00 05 51 20 05 53 | 40 05 55 60 05 57 80 05 |.O..Q .S|@.U`.W..|
|00000670| 59 a0 05 5b c0 05 5d e0 | 05 5f 00 06 61 20 06 63 |Y..[..].|._..a .c|
|00000680| 40 06 65 60 06 67 80 06 | 69 a0 06 6b c0 06 6d e0 |@.e`.g..|i..k..m.|
|00000690| 06 6f 00 07 71 20 07 73 | 40 07 75 60 07 77 80 07 |.o..q .s|@.u`.w..|
|000006a0| 79 a0 07 7b c0 07 7d e0 | 07 7f 00 08 81 20 08 83 |y..{..}.|..... ..|
|000006b0| 40 08 85 60 08 87 80 08 | 89 a0 08 8b c0 08 8d e0 |@..`....|........|
|000006c0| 08 8f 00 09 91 20 09 93 | 40 09 95 60 09 97 80 09 |..... ..|@..`....|
|000006d0| 99 a0 09 9b c0 09 9d e0 | 09 9f 00 0a a1 20 0a a3 |........|..... ..|
|000006e0| 40 0a a5 60 0a a7 80 0a | a9 a0 0a ab c0 0a ad e0 |@..`....|........|
|000006f0| 0a af 00 0b b1 20 0b b3 | 40 0b b5 60 0b b7 80 0b |..... ..|@..`....|
|00000700| b9 a0 0b bb c0 0b bd e0 | 0b bf 00 0c c1 20 0c c3 |........|..... ..|
|00000710| 40 0c c5 60 0c c7 80 0c | c9 a0 0c cb c0 0c cd e0 |@..`....|........|
|00000720| 0c cf 00 0d d1 20 0d d3 | 40 0d d5 60 0d d7 80 0d |..... ..|@..`....|
|00000730| d9 a0 0d db c0 0d dd e0 | 0d df 00 0e e1 20 0e e3 |........|..... ..|
|00000740| 40 0e e5 60 0e e7 80 0e | e9 a0 0e eb c0 0e ed e0 |@..`....|........|
|00000750| 0e ef 00 0f f1 20 0f f3 | 40 0f f5 60 0f f7 80 0f |..... ..|@..`....|
|00000760| f9 a0 0f fb c0 0f fd e0 | 0f ff 00 10 01 21 10 03 |........|.....!..|
|00000770| 41 10 05 61 10 07 81 10 | 09 a1 10 0b c1 10 0d e1 |A..a....|........|
|00000780| 10 0f 01 11 11 21 11 13 | 41 11 15 61 11 17 81 11 |.....!..|A..a....|
|00000790| 19 a1 11 1b c1 11 1d e1 | 11 1f 01 12 21 21 12 23 |........|....!!.#|
|000007a0| 41 12 25 61 12 27 81 12 | 29 a1 12 2b c1 12 2d e1 |A.%a.'..|)..+..-.|
|000007b0| 12 2f 01 13 31 21 13 33 | 41 13 35 61 13 37 81 13 |./..1!.3|A.5a.7..|
|000007c0| 39 a1 13 3b c1 13 3d e1 | 13 3f 01 14 41 21 14 43 |9..;..=.|.?..A!.C|
|000007d0| 41 14 45 61 14 47 81 14 | 49 a1 14 4b c1 14 4d e1 |A.Ea.G..|I..K..M.|
|000007e0| 14 4f 01 15 51 21 15 53 | 41 15 55 61 15 57 81 15 |.O..Q!.S|A.Ua.W..|
|000007f0| 59 a1 15 5b c1 15 5d e1 | 15 ff 0f 16 ff 2f 16 63 |Y..[..].|...../.c|
|00000800| 41 16 65 61 16 67 81 16 | 69 f1 ff 6b c1 16 6d e1 |A.ea.g..|i..k..m.|
|00000810| 16 6f 01 17 71 21 17 73 | 41 17 75 61 17 77 81 17 |.o..q!.s|A.ua.w..|
|00000820| 79 a1 17 7b c1 17 7d e1 | 17 7f 01 18 81 21 18 83 |y..{..}.|.....!..|
|00000830| 41 18 85 61 18 87 81 18 | 89 a1 18 8b c1 18 8d e1 |A..a....|........|
|00000840| 18 8f 01 19 91 21 19 93 | 41 19 95 f1 ff 97 81 19 |.....!..|A.......|
|00000850| 99 a1 19 9b c1 19 9d e1 | 19 9f 01 1a a1 21 1a a3 |........|.....!..|
|00000860| 41 1a a5 61 1a a7 81 1a | a9 a1 1a ab c1 1a ad e1 |A..a....|........|
|00000870| 1a af 01 1b b1 21 1b b3 | 41 1b b5 61 1b b7 81 1b |.....!..|A..a....|
|00000880| b9 a1 1b bb c1 1b bd e1 | 1b bf 01 1c c1 21 1c c3 |........|.....!..|
|00000890| 41 1c c5 61 1c c7 81 1c | c9 a1 1c cb c1 1c cd e1 |A..a....|........|
|000008a0| 1c cf 01 1d d1 21 1d d3 | f1 ff d5 61 1d d7 81 1d |.....!..|...a....|
|000008b0| d9 a1 1d db c1 1d dd e1 | 1d df 01 1e e1 21 1e e3 |........|.....!..|
|000008c0| 41 1e e5 f1 ff e7 f1 ff | e9 a1 1e eb c1 1e ed e1 |A.......|........|
|000008d0| 1e ef 01 1f f1 21 1f f3 | 41 1f f5 61 1f f7 81 1f |.....!..|A..a....|
|000008e0| f9 a1 1f fb c1 1f fd e1 | 1f ff 01 20 01 22 20 03 |........|... ." .|
|000008f0| 42 20 ff 6f 20 07 82 20 | 09 a2 20 0b c2 20 0d e2 |B .o .. |.. .. ..|
|00000900| 20 0f 02 21 ff 2f 21 13 | 42 21 15 62 21 17 82 21 | ..!./!.|B!.b!..!|
|00000910| 19 a2 21 1b c2 21 1d e2 | 21 ff 0f ee 00 ff ee 00 |..!..!..|!.......|
|00000920| ff ee 00 ff ee 00 ff ee | 00 ff ee 00 ff ee 00 ff |........|........|
|00000930| ee 00 ff ee 00 ff ee 00 | ff ee 00 db c0 03 fe 41 |........|.......A|
|00000940| 50 50 4e 4f 54 45 20 54 | 58 54 20 fe 00 0a 20 08 |PPNOTE T|XT ... .|
|00000950| f5 12 02 00 3e 64 00 00 | 42 49 4f 53 46 49 58 20 |....>d..|BIOSFIX |
|00000960| 43 4f 4d 20 fe 00 0a 40 | 08 41 13 35 00 27 01 00 |COM ...@|.A.5.'..|
|00000970| 00 44 45 44 49 43 41 54 | 45 44 4f 43 20 fe 00 0a |.DEDICAT|EDOC ...|
|00000980| 20 08 f5 12 36 00 d0 02 | 00 00 4c 49 43 45 4e 53 | ...6...|..LICENS|
|00000990| 45 20 44 4f 43 20 fe 00 | 0a 20 08 f5 12 38 00 ff |E DOC ..|. ...8..|
|000009a0| 22 00 00 4d 41 4b 45 53 | 46 58 20 43 4f 4d 20 fe |"..MAKES|FX COM .|
|000009b0| 00 0a 40 08 41 13 4a 00 | 80 03 00 00 4d 41 4e 55 |..@.A.J.|....MANU|
|000009c0| 41 4c 20 20 44 4f 43 20 | fe 00 0a 20 08 f5 12 4c |AL DOC |... ...L|
|000009d0| 00 43 24 02 00 4f 4d 42 | 55 44 53 4d 4e 41 53 50 |.C$..OMB|UDSMNASP|
|000009e0| 20 fe 00 0a 20 08 f5 12 | 5f 01 53 02 00 00 4f 52 | ... ...|_.S...OR|
|000009f0| 44 45 52 fe 20 03 44 4f | 43 20 fe 00 0a 20 08 f5 |DER. .DO|C ... ..|
|00000a00| 12 61 01 ff 11 00 00 50 | 4b 55 4e 5a 49 50 20 45 |.a.....P|KUNZIP E|
|00000a10| 58 45 20 fe 00 0a 40 08 | 41 13 6a 01 06 56 00 00 |XE ...@.|A.j..V..|
|00000a20| 50 4b 5a 49 50 fe 20 03 | 45 58 45 20 fe 00 0a 40 |PKZIP. .|EXE ...@|
|00000a30| 08 41 13 96 01 b0 7a 00 | 00 50 4b 5a 49 50 46 49 |.A....z.|.PKZIPFI|
|00000a40| 58 45 58 45 20 fe 00 0a | 20 08 f5 12 d4 01 de 22 |XEXE ...| ......"|
|00000a50| 00 00 52 45 41 44 4d 45 | 20 20 44 4f 43 20 fe 00 |..README| DOC ..|
|00000a60| 0a 40 08 41 13 e6 01 69 | 03 00 00 52 45 5a 49 50 |.@.A...i|...REZIP|
|00000a70| fe 20 03 5a 49 50 20 fe | 00 0a 40 08 41 13 e8 01 |. .ZIP .|..@.A...|
|00000a80| 00 39 00 00 57 48 41 54 | 53 4e 45 57 31 30 32 20 |.9..WHAT|SNEW102 |
|00000a90| fe 00 0a 40 08 41 13 05 | 02 cd 16 00 00 5a 49 50 |...@.A..|.....ZIP|
|00000aa0| 32 45 58 45 20 45 58 45 | 20 fe 00 0a 40 08 41 13 |2EXE EXE| ...@.A.|
|00000ab0| 11 02 fa 1a fe 00 ff fe | 00 ff fe 00 ff fe 00 ff |........|........|
|00000ac0| fe 00 ff fe 00 ff fe 00 | ff fe 00 ff fe 00 ff fe |........|........|
|00000ad0| 00 ff fe 00 ff fe 00 ff | fe 00 ff fe 00 ff fe 00 |........|........|
|00000ae0| ff fe 00 ff fe 00 ff fe | 00 ff fe 00 ff fe 00 ff |........|........|
|00000af0| fe 00 ff fe 00 ff fe 00 | ff fe 00 ff fe 00 ff fe |........|........|
|00000b00| 00 ff fe 00 3c 0d 0a 44 | 69 73 63 6c 61 69 6d 65 |....<..D|isclaime|
|00000b10| 72 0d 0a fe 2d 0a 0d 0a | 0d 0a 41 6c 74 68 6f 75 |r...-...|..Althou|
|00000b20| 67 68 20 50 4b 57 41 52 | 45 20 77 69 6c 6c 20 61 |gh PKWAR|E will a|
|00000b30| 74 74 65 6d 70 74 20 74 | 6f 20 73 75 70 70 6c 79 |ttempt t|o supply|
|00000b40| 20 63 75 72 72 65 6e 74 | 20 61 6e 64 20 61 63 63 | current| and acc|
|00000b50| 75 72 61 74 65 0d 0a 69 | 6e 66 6f 72 6d 61 74 69 |urate..i|nformati|
|00000b60| 6f 6e 20 72 65 6c 61 74 | 69 6e 67 20 74 6f 20 69 |on relat|ing to i|
|00000b70| 74 73 20 66 69 6c 65 20 | 66 6f 72 6d 61 74 73 2c |ts file |formats,|
|00000b80| 20 61 6c 67 6f 72 69 74 | 68 6d 73 2c 20 61 6e 64 | algorit|hms, and|
|00000b90| 20 74 68 65 0d 0a 73 75 | 62 6a 65 63 74 20 70 72 | the..su|bject pr|
|00000ba0| 6f 67 72 61 6d 73 2c 20 | 74 68 65 20 70 6f 73 73 |ograms, |the poss|
|00000bb0| 69 62 69 6c 69 74 79 20 | 6f 66 20 65 72 72 6f 72 |ibility |of error|
|00000bc0| 20 63 61 6e 20 6e 6f 74 | 20 62 65 20 65 6c 69 6d | can not| be elim|
|00000bd0| 69 6e 61 74 65 64 2e 0d | 0a 50 4b 57 41 52 45 20 |inated..|.PKWARE |
|00000be0| 74 68 65 72 65 66 6f 72 | 65 20 65 78 70 72 65 73 |therefor|e expres|
|00000bf0| 73 6c 79 20 64 69 73 63 | 6c 61 69 6d 73 20 61 6e |sly disc|laims an|
|00000c00| 79 20 77 61 72 72 61 6e | 74 79 20 74 68 61 74 20 |y warran|ty that |
|00000c10| 74 68 65 0d 0a 69 6e 66 | 6f 72 6d 61 74 69 6f 6e |the..inf|ormation|
|00000c20| 20 63 6f 6e 74 61 69 6e | 65 64 20 69 6e 20 74 68 | contain|ed in th|
|00000c30| 65 20 61 73 73 6f 63 69 | 61 74 65 64 20 6d 61 74 |e associ|ated mat|
|00000c40| 65 72 69 61 6c 73 20 72 | 65 6c 61 74 69 6e 67 20 |erials r|elating |
|00000c50| 74 6f 20 74 68 65 0d 0a | 73 75 62 6a 65 63 74 20 |to the..|subject |
|00000c60| 70 72 6f 67 72 61 6d 73 | 20 61 6e 64 2f 6f 72 20 |programs| and/or |
|00000c70| 74 68 65 20 66 6f 72 6d | 61 74 20 6f 66 20 74 68 |the form|at of th|
|00000c80| 65 20 66 69 6c 65 73 20 | 63 72 65 61 74 65 64 20 |e files |created |
|00000c90| 6f 72 0d 0a 61 63 63 65 | 73 73 65 64 20 62 79 20 |or..acce|ssed by |
|00000ca0| 74 68 65 20 73 75 62 6a | 65 63 74 20 70 72 6f 67 |the subj|ect prog|
|00000cb0| 72 61 6d 73 20 61 6e 64 | 2f 6f 72 20 74 68 65 20 |rams and|/or the |
|00000cc0| 61 6c 67 6f 72 69 74 68 | 6d 73 20 75 73 65 64 20 |algorith|ms used |
|00000cd0| 62 79 0d 0a 74 68 65 20 | 73 75 62 6a 65 63 74 20 |by..the |subject |
|00000ce0| 70 72 6f 67 72 61 6d 73 | 2c 20 6f 72 20 61 6e 79 |programs|, or any|
|00000cf0| 20 6f 74 68 65 72 20 6d | 61 74 74 65 72 2c 6e 1d | other m|atter,n.|
|00000d00| ff 20 69 73 20 63 75 72 | 72 65 6e 74 2c 20 63 6f |. is cur|rent, co|
|00000d10| 72 72 65 63 74 20 6f 72 | 0d 0a 61 63 63 75 72 61 |rrect or|..accura|
|00000d20| 74 65 20 61 73 20 64 65 | 6c 69 76 65 72 65 64 2e |te as de|livered.|
|00000d30| 20 20 41 6e 79 20 72 69 | 73 6b 20 6f 66 20 64 61 | Any ri|sk of da|
|00000d40| 6d 61 67 65 20 64 75 65 | 20 74 6f 20 61 6e 79 20 |mage due| to any |
|00000d50| 70 6f 73 73 69 62 6c 65 | 0d 0a 69 6e 61 63 63 75 |possible|..inaccu|
|00000d60| 72 61 74 65 20 69 6e 66 | 6f 72 6d 61 74 69 6f 6e |rate inf|ormation|
|00000d70| 20 69 73 20 61 73 73 75 | 6d 65 64 20 62 79 20 74 | is assu|med by t|
|00000d80| 68 65 20 75 73 65 72 20 | 6f 66 20 74 68 65 20 69 |he user |of the i|
|00000d90| 6e 66 6f 72 6d 61 74 69 | 6f 6e 2e 0d 0a 46 75 72 |nformati|on...Fur|
|00000da0| 74 68 65 72 6d 6f 72 65 | 2c 20 74 68 65 20 69 6e |thermore|, the in|
|00000db0| 66 6f 72 6d 61 74 69 6f | 6e 20 72 65 6c 61 74 69 |formatio|n relati|
|00000dc0| 6e 67 20 74 6f 20 74 68 | 65 20 73 75 62 6a 65 63 |ng to th|e subjec|
|00000dd0| 74 20 70 72 6f 67 72 61 | 6d 73 0d 0a 61 6e 64 2f |t progra|ms..and/|
|00000de0| 6f 72 20 74 68 65 20 66 | 69 6c 65 20 66 6f 72 6d |or the f|ile form|
|00000df0| 61 74 73 20 63 72 65 61 | 74 65 64 20 6f 72 20 61 |ats crea|ted or a|
|00000e00| 63 63 65 73 73 65 64 20 | 62 79 20 74 68 65 20 73 |ccessed |by the s|
|00000e10| 75 62 6a 65 63 74 0d 0a | 70 72 6f 67 72 61 6d 73 |ubject..|programs|
|00000e20| 20 61 6e 64 2f 6f 72 20 | 74 68 65 20 61 6c 67 6f | and/or |the algo|
|00000e30| 72 69 74 68 6d 73 20 75 | 73 65 64 20 62 79 20 74 |rithms u|sed by t|
|00000e40| 68 65 20 73 75 62 6a 65 | 63 74 20 70 72 6f 67 72 |he subje|ct progr|
|00000e50| 61 6d 73 20 69 73 0d 0a | 73 75 62 6a 65 63 74 20 |ams is..|subject |
|00000e60| 74 6f 20 63 68 61 6e 67 | 65 20 77 69 74 68 6f 75 |to chang|e withou|
|00000e70| 74 20 6e 6f 74 69 63 65 | 2e 0d 0a 0d 0a 0d 0a 47 |t notice|.......G|
|00000e80| 65 6e 65 72 61 6c 20 46 | 6f 72 6d 61 74 20 6f 66 |eneral F|ormat of|
|00000e90| 20 61 20 5a 49 50 20 66 | 69 6c 65 0d 0a ff 2d 1c | a ZIP f|ile...-.|
|00000ea0| 0d 0a 0d 0a 20 20 46 69 | 6c 65 73 20 73 74 6f 72 |.... Fi|les stor|
|00000eb0| 65 64 20 69 6e 20 61 72 | 62 69 74 72 61 72 79 20 |ed in ar|bitrary |
|00000ec0| 6f 72 64 65 72 2e 20 20 | 4c 61 72 67 65 20 7a 69 |order. |Large zi|
|00000ed0| 70 66 69 6c 65 73 20 63 | 61 6e 20 73 70 61 6e 20 |pfiles c|an span |
|00000ee0| 6d 75 6c 74 69 70 6c 65 | 0d 0a 20 20 64 69 73 6b |multiple|.. disk|
|00000ef0| 65 74 74 65 20 6d 65 64 | 69 61 2e 0d 0a 0d 0a 20 |ette med|ia..... |
|00000f00| 20 4f 76 65 72 61 6c 6c | 20 7a 69 70 66 69 6c 65 | Overall| zipfile|
|00000f10| 20 66 6f 72 6d 61 74 3a | 0d 0a 0d 0a ff 20 04 5b | format:|..... .[|
|00000f20| 6c 6f 63 61 6c 20 66 69 | 6c 65 20 68 65 61 64 65 |local fi|le heade|
|00000f30| 72 2b 66 69 6c 65 20 64 | 61 74 61 5d 20 2e 20 2e |r+file d|ata] . .|
|00000f40| 20 2e 0d 0a ff 20 04 5b | 63 65 6e 74 72 61 6c 20 | .... .[|central |
|00000f50| 64 69 72 65 63 74 6f 72 | 79 5d 20 65 6e 64 20 6f |director|y] end o|
|00000f60| 66 20 63 65 6e 74 72 61 | 6c 20 64 69 72 65 63 74 |f centra|l direct|
|00000f70| 6f 72 79 20 72 65 63 6f | 72 64 0d 0a 0d 0a 0d 0a |ory reco|rd......|
|00000f80| 20 20 41 2e 20 20 4c 6f | 63 61 6c 20 66 69 6c 65 | A. Lo|cal file|
|00000f90| 20 68 65 61 64 65 72 3a | 0d 0a 0d 0a 09 6c 6f 63 | header:|.....loc|
|00000fa0| 61 6c 20 66 69 6c 65 20 | 68 65 61 64 65 72 20 73 |al file |header s|
|00000fb0| 69 67 6e 61 74 75 72 65 | 09 34 20 62 79 74 65 73 |ignature|.4 bytes|
|00000fc0| 20 20 28 30 78 30 34 30 | 33 34 62 35 30 29 0d 0a | (0x040|34b50)..|
|00000fd0| 09 76 65 72 73 69 6f 6e | 20 6e 65 65 64 65 64 20 |.version| needed |
|00000fe0| 74 6f 20 65 78 74 72 61 | 63 74 09 32 20 62 79 74 |to extra|ct.2 byt|
|00000ff0| 65 73 0d 0a 09 67 65 6e | 65 72 61 6c 20 70 75 72 |es...gen|eral pur|
|00001000| 70 6f 73 65 20 62 69 74 | 20 66 6c 61 67 09 32 20 |pose bit| flag.2 |
|00001010| 62 79 74 65 73 0d 0a 09 | 63 6f 6d 70 72 65 73 73 |bytes...|compress|
|00001020| 69 6f 6e 20 6d 65 74 68 | 6f 64 09 09 32 20 62 79 |ion meth|od..2 by|
|00001030| 74 65 73 0d 0a 09 6c 61 | 73 74 20 6d 6f 64 20 66 |tes...la|st mod f|
|00001040| 69 6c 65 20 74 69 6d 65 | 20 09 09 32 20 62 79 74 |ile time| ..2 byt|
|00001050| 65 73 0d 0a 09 6c 61 73 | 74 20 6d 6f 64 20 66 69 |es...las|t mod fi|
|00001060| 6c 65 20 64 61 74 65 09 | 09 32 20 62 79 74 65 73 |le date.|.2 bytes|
|00001070| 0d 0a 09 63 72 63 2d 33 | 32 ff 20 03 ff 09 03 34 |...crc-3|2. ....4|
|00001080| 20 62 79 74 65 73 0d 0a | 09 63 6f 6d 70 72 65 73 | bytes..|.compres|
|00001090| 73 65 64 20 73 69 7a 65 | ff 09 03 34 20 62 79 74 |sed size|...4 byt|
|000010a0| 65 73 0d 0a 09 75 6e 63 | 6f 6d 70 72 65 73 73 65 |es...unc|ompresse|
|000010b0| 64 20 73 69 7a 65 09 09 | 34 20 62 79 74 65 73 0d |d size..|4 bytes.|
|000010c0| 0a 09 66 69 6c 65 6e 61 | 6d 65 20 6c 65 6e 67 74 |..filena|me lengt|
|000010d0| 68 ff 09 03 32 20 62 79 | 74 65 73 0d 0a 09 65 78 |h...2 by|tes...ex|
|000010e0| 74 72 61 20 66 69 65 6c | 64 20 6c 65 6e 67 74 68 |tra fiel|d length|
|000010f0| 09 09 32 20 62 79 74 65 | 73 0d 0a 0d 0a 09 66 69 |..2 byte|s.....fi|
|00001100| 6c 65 6e 61 6d 65 20 28 | 76 61 72 69 61 62 6c 65 |lename (|variable|
|00001110| 20 73 69 7a 65 29 0d 0a | 09 65 78 74 72 61 20 66 | size)..|.extra f|
|00001120| 69 65 6c 64 20 28 76 61 | 72 69 61 62 6c 65 20 73 |ield (va|riable s|
|00001130| 69 7a 65 29 0d 0a 0d 0a | 0d 0a 20 20 42 2e 20 20 |ize)....|.. B. |
|00001140| 43 65 6e 74 72 61 6c 20 | 64 69 72 65 63 74 6f 72 |Central |director|
|00001150| 79 20 73 74 72 75 63 74 | 75 72 65 3a 0d 0a 0d 0a |y struct|ure:....|
|00001160| ff 20 06 5b 66 69 6c 65 | 20 68 65 61 64 65 72 5d |. .[file| header]|
|00001170| 20 2e 20 2e 20 2e 20 20 | 65 6e 64 20 6f 66 20 63 | . . . |end of c|
|00001180| 65 6e 74 72 61 6c 20 64 | 69 72 20 72 65 63 6f 72 |entral d|ir recor|
|00001190| 64 0d 0a 0d 0a ff 20 06 | 46 69 6c 65 20 68 65 61 |d..... .|File hea|
|000011a0| 64 65 72 3a 0d 0a 0d 0a | 09 63 65 6e 74 72 61 6c |der:....|.central|
|000011b0| 20 66 69 6c 65 20 68 65 | 61 64 65 72 20 73 69 67 | file he|ader sig|
|000011c0| 6e 61 74 75 72 65 09 34 | 20 62 79 74 65 73 20 20 |nature.4| bytes |
|000011d0| 28 30 78 30 32 30 31 34 | 62 35 30 29 0d 0a 09 76 |(0x02014|b50)...v|
|000011e0| 65 72 73 69 6f 6e 20 6d | 61 64 65 20 62 79 ff 09 |ersion m|ade by..|
|000011f0| 03 32 20 62 79 74 65 73 | 0d 0a 09 76 65 72 73 69 |.2 bytes|...versi|
|00001200| 6f 6e 20 6e 65 65 64 65 | 64 20 74 6f 20 65 78 74 |on neede|d to ext|
|00001210| 72 61 63 74 09 32 20 62 | 79 74 65 73 0d 0a 09 67 |ract.2 b|ytes...g|
|00001220| 65 6e 65 72 61 6c 20 70 | 75 72 70 6f 73 65 20 62 |eneral p|urpose b|
|00001230| 69 74 20 66 6c 61 67 09 | 32 20 62 79 74 65 73 0d |it flag.|2 bytes.|
|00001240| 0a 09 63 6f 6d 70 72 65 | 73 73 69 6f 6e 20 6d 65 |..compre|ssion me|
|00001250| 74 68 6f 64 09 09 32 20 | 62 79 74 65 73 0d 0a 09 |thod..2 |bytes...|
|00001260| 6c 61 73 74 20 6d 6f 64 | 20 66 69 6c 65 20 74 69 |last mod| file ti|
|00001270| 6d 65 20 09 09 32 20 62 | 79 74 65 73 0d 0a 09 6c |me ..2 b|ytes...l|
|00001280| 61 73 74 20 6d 6f 64 20 | 66 69 6c 65 20 64 61 74 |ast mod |file dat|
|00001290| 65 09 09 32 20 62 79 74 | 65 73 0d 0a 09 63 72 63 |e..2 byt|es...crc|
|000012a0| 2d 33 32 ff 20 03 ff 09 | 03 34 20 62 79 74 65 73 |-32. ...|.4 bytes|
|000012b0| 0d 0a 09 63 6f 6d 70 72 | 65 73 73 65 64 20 73 69 |...compr|essed si|
|000012c0| 7a 65 ff 09 03 34 20 62 | 79 74 65 73 0d 0a 09 75 |ze...4 b|ytes...u|
|000012d0| 6e 63 6f 6d 70 72 65 73 | 73 65 64 20 73 69 7a 65 |ncompres|sed size|
|000012e0| 09 09 34 20 62 79 74 65 | 73 0d 0a 09 66 69 6c 65 |..4 byte|s...file|
|000012f0| 6e 61 6d 65 20 6c 65 6e | 67 74 68 ff 09 03 32 20 |name len|gth...2 |
|00001300| 62 79 74 65 73 0d 0a 09 | 65 78 74 72 61 20 66 69 |bytes...|extra fi|
|00001310| 65 6c 64 20 6c 65 6e 67 | 74 68 09 09 32 20 62 79 |eld leng|th..2 by|
|00001320| 74 65 73 0d 0a 09 66 69 | 6c 65 20 63 6f 6d 6d 65 |tes...fi|le comme|
|00001330| 6e 74 20 6c 65 6e 67 74 | 68 09 09 32 20 62 79 74 |nt lengt|h..2 byt|
|00001340| 65 73 0d 0a 09 64 69 73 | 6b 20 6e 75 6d 62 65 72 |es...dis|k number|
|00001350| 20 73 74 61 72 74 09 09 | 32 20 62 79 74 65 73 0d | start..|2 bytes.|
|00001360| 0a 09 69 6e 74 65 72 6e | 61 6c 20 66 69 6c 65 20 |..intern|al file |
|00001370| 61 74 74 72 69 62 75 74 | 65 73 09 32 20 62 79 74 |attribut|es.2 byt|
|00001380| 65 73 0d 0a 09 65 78 74 | 65 72 6e 61 6c 20 66 69 |es...ext|ernal fi|
|00001390| 6c 65 20 61 74 74 72 69 | 62 75 74 65 73 09 34 20 |le attri|butes.4 |
|000013a0| 62 79 74 65 73 0d 0a 09 | 72 65 6c 61 74 69 76 65 |bytes...|relative|
|000013b0| 20 6f 66 66 73 65 74 20 | 6f 66 20 6c 6f 63 61 6c | offset |of local|
|000013c0| 20 68 65 61 64 65 72 09 | 34 20 62 79 74 65 73 0d | header.|4 bytes.|
|000013d0| 0a 0d 0a 09 66 69 6c 65 | 6e 61 6d 65 20 28 76 61 |....file|name (va|
|000013e0| 72 69 61 62 6c 65 20 73 | 69 7a 65 29 0d 0a 09 65 |riable s|ize)...e|
|000013f0| 78 74 72 61 20 66 69 65 | 6c 64 20 28 76 61 72 69 |xtra fie|ld (vari|
|00001400| 61 62 6c 65 20 73 69 7a | 65 29 0d 0a 09 66 69 6c |able siz|e)...fil|
|00001410| 65 20 63 6f 6d 6d 65 6e | 74 20 28 76 61 72 69 61 |e commen|t (varia|
|00001420| 62 6c 65 20 73 69 7a 65 | 29 0d 0a 0d 0a ff 20 06 |ble size|)..... .|
|00001430| 45 6e 64 20 6f 66 20 63 | 65 6e 74 72 61 6c 20 64 |End of c|entral d|
|00001440| 69 72 20 72 65 63 6f 72 | 64 3a 0d 0a 0d 0a 09 65 |ir recor|d:.....e|
|00001450| 6e 64 20 6f 66 20 63 65 | 6e 74 72 61 6c 20 64 69 |nd of ce|ntral di|
|00001460| 72 20 73 69 67 6e 61 74 | 75 72 65 09 34 20 62 79 |r signat|ure.4 by|
|00001470| 74 65 73 20 20 28 30 78 | 30 36 30 35 34 62 35 30 |tes (0x|06054b50|
|00001480| 29 0d 0a 09 6e 75 6d 62 | 65 72 20 6f 66 20 74 68 |)...numb|er of th|
|00001490| 69 73 20 64 69 73 6b 09 | 09 32 20 62 79 74 65 73 |is disk.|.2 bytes|
|000014a0| 0d 0a 09 6e 75 6d 62 65 | 72 20 6f 66 20 74 68 65 |...numbe|r of the|
|000014b0| 20 64 69 73 6b 20 77 69 | 74 68 20 74 68 65 0d 0a | disk wi|th the..|
|000014c0| 09 73 74 61 72 74 20 6f | 66 20 74 68 65 20 63 65 |.start o|f the ce|
|000014d0| 6e 74 72 61 6c 20 64 69 | 72 65 63 74 6f 72 79 09 |ntral di|rectory.|
|000014e0| 32 20 62 79 74 65 73 0d | 0a 09 74 6f 74 61 6c 20 |2 bytes.|..total |
|000014f0| 6e 75 6d 62 65 72 20 6f | 66 20 65 6e 74 72 69 65 |number o|f entrie|
|00001500| 73 20 69 6e 0d 0a 09 74 | 68 65 20 63 65 6e 74 72 |s in...t|he centr|
|00001510| 61 6c 20 64 69 72 20 6f | 6e 20 74 68 69 73 20 64 |al dir o|n this d|
|00001520| 69 73 6b 09 32 20 62 79 | 74 65 73 0d 0a 09 74 6f |isk.2 by|tes...to|
|00001530| 74 61 6c 20 6e 75 6d 62 | 65 72 20 6f 66 20 65 6e |tal numb|er of en|
|00001540| 74 72 69 65 73 20 69 6e | 0d 0a 09 74 68 65 20 63 |tries in|...the c|
|00001550| 65 6e 74 72 61 6c 20 64 | 69 72 ff 09 03 32 20 62 |entral d|ir...2 b|
|00001560| 79 74 65 73 0d 0a 09 73 | 69 7a 65 20 6f 66 20 74 |ytes...s|ize of t|
|00001570| 68 65 20 63 65 6e 74 72 | 61 6c 20 64 69 72 65 63 |he centr|al direc|
|00001580| 74 6f 72 79 ff 20 03 34 | 20 62 79 74 65 73 0d 0a |tory. .4| bytes..|
|00001590| 09 6f 66 66 73 65 74 20 | 6f 66 20 73 74 61 72 74 |.offset |of start|
|000015a0| 20 6f 66 20 63 65 6e 74 | 72 61 6c 0d 0a 09 64 69 | of cent|ral...di|
|000015b0| 72 65 63 74 6f 72 79 20 | 77 69 74 68 20 72 65 73 |rectory |with res|
|000015c0| 70 65 63 74 20 74 6f 0d | 0a 09 74 68 65 20 73 74 |pect to.|..the st|
|000015d0| 61 72 74 69 6e 67 20 64 | 69 73 6b 20 6e 75 6d 62 |arting d|isk numb|
|000015e0| 65 72 09 34 20 62 79 74 | 65 73 0d 0a 09 7a 69 70 |er.4 byt|es...zip|
|000015f0| 66 69 6c 65 20 63 6f 6d | 6d 65 6e 74 20 6c 65 6e |file com|ment len|
|00001600| 67 74 68 09 09 32 20 62 | 79 74 65 73 0d 0a 09 7a |gth..2 b|ytes...z|
|00001610| 69 70 66 69 6c 65 20 63 | 6f 6d 6d 65 6e 74 20 28 |ipfile c|omment (|
|00001620| 76 61 72 69 61 62 6c 65 | 20 73 69 7a 65 29 0d 0a |variable| size)..|
|00001630| 0d 0a 0d 0a 0d 0a 0d 0a | 20 20 43 2e 20 20 45 78 |........| C. Ex|
|00001640| 70 6c 61 6e 61 74 69 6f | 6e 20 6f 66 20 66 69 65 |planatio|n of fie|
|00001650| 6c 64 73 3a 0d 0a 0d 0a | ff 20 06 76 65 72 73 69 |lds:....|. .versi|
|00001660| 6f 6e 20 6d 61 64 65 20 | 62 79 0d 0a 0d 0a 09 20 |on made |by..... |
|00001670| 20 54 68 65 20 75 70 70 | 65 72 20 62 79 74 65 20 | The upp|er byte |
|00001680| 69 6e 64 69 63 61 74 65 | 73 20 74 68 65 20 68 6f |indicate|s the ho|
|00001690| 73 74 20 73 79 73 74 65 | 6d 20 28 4f 53 29 20 66 |st syste|m (OS) f|
|000016a0| 6f 72 20 74 68 65 0d 0a | 09 20 20 66 69 6c 65 2e |or the..|. file.|
|000016b0| 20 20 53 6f 66 74 77 61 | 72 65 20 63 61 6e 20 75 | Softwa|re can u|
|000016c0| 73 65 20 74 68 69 73 20 | 69 6e 66 6f 72 6d 61 74 |se this |informat|
|000016d0| 69 6f 6e 20 74 6f 20 64 | 65 74 65 72 6d 69 6e 65 |ion to d|etermine|
|000016e0| 0d 0a 09 20 20 74 68 65 | 20 6c 69 6e 65 20 72 65 |... the| line re|
|000016f0| 63 6f 72 64 20 66 6f 72 | 6d 61 74 20 66 6f 72 20 |cord for|mat for |
|00001700| 74 65 78 74 20 66 69 6c | 65 73 20 65 74 63 2e 20 |text fil|es etc. |
|00001710| 20 54 68 65 20 63 75 72 | 72 65 6e 74 0d 0a 09 20 | The cur|rent... |
|00001720| 20 6d 61 70 70 69 6e 67 | 73 20 61 72 65 3a 0d 0a | mapping|s are:..|
|00001730| 0d 0a 09 20 20 30 20 2d | 20 4d 53 2d 44 4f 53 20 |... 0 -| MS-DOS |
|00001740| 61 6e 64 20 4f 53 2f 32 | 20 28 46 2e 41 2e 54 2e |and OS/2| (F.A.T.|
|00001750| 20 66 69 6c 65 20 73 79 | 73 74 65 6d 73 29 0d 0a | file sy|stems)..|
|00001760| 09 20 20 31 20 2d 20 41 | 6d 69 67 61 09 32 20 2d |. 1 - A|miga.2 -|
|00001770| 20 56 4d 53 09 09 33 20 | 2d 20 2a 6e 69 78 09 34 | VMS..3 |- *nix.4|
|00001780| 20 2d 20 56 4d 2f 43 4d | 53 0d 0a 09 20 20 35 20 | - VM/CM|S... 5 |
|00001790| 2d 20 41 74 61 72 69 20 | 53 54 ff 20 12 36 20 2d |- Atari |ST. .6 -|
|000017a0| 20 4f 53 2f 32 20 31 2e | 32 20 65 78 74 65 6e 64 | OS/2 1.|2 extend|
|000017b0| 65 64 20 66 69 6c 65 20 | 73 79 73 74 65 6d 73 0d |ed file |systems.|
|000017c0| 0a 09 20 20 37 20 2d 20 | 4d 61 63 69 6e 74 6f 73 |.. 7 - |Macintos|
|000017d0| 68 ff 09 03 38 20 74 68 | 72 75 20 32 35 35 20 2d |h...8 th|ru 255 -|
|000017e0| 20 75 6e 75 73 65 64 0d | 0a 0d 0a 09 20 20 54 68 | unused.|.... Th|
|000017f0| 65 20 6c 6f 77 65 72 20 | 62 79 74 65 20 69 6e 64 |e lower |byte ind|
|00001800| 69 63 61 74 65 73 20 74 | 68 65 20 76 65 72 73 69 |icates t|he versi|
|00001810| 6f 6e 20 6e 75 6d 62 65 | 72 20 6f 66 20 74 68 65 |on numbe|r of the|
|00001820| 0d 0a 09 20 20 73 6f 66 | 74 77 61 72 65 20 75 73 |... sof|tware us|
|00001830| 65 64 20 74 6f 20 65 6e | 63 6f 64 65 20 74 68 65 |ed to en|code the|
|00001840| 20 66 69 6c 65 2e 20 20 | 54 68 65 20 76 61 6c 75 | file. |The valu|
|00001850| 65 2f 31 30 0d 0a 09 20 | 20 69 6e 64 69 63 61 74 |e/10... | indicat|
|00001860| 65 73 20 74 68 65 20 6d | 61 6a 6f 72 20 76 65 72 |es the m|ajor ver|
|00001870| 73 69 6f 6e 20 6e 75 6d | 62 65 72 2c 20 61 6e 64 |sion num|ber, and|
|00001880| 20 74 68 65 20 76 61 6c | 75 65 0d 0a 09 20 20 6d | the val|ue... m|
|00001890| 6f 64 20 31 30 20 69 73 | 20 74 68 65 20 6d 69 6e |od 10 is| the min|
|000018a0| 6f 72 20 76 65 72 73 69 | 6f 6e 20 6e 75 6d 62 65 |or versi|on numbe|
|000018b0| 72 2e 0d 0a 0d 0a ff 20 | 06 76 65 72 73 69 6f 6e |r...... |.version|
|000018c0| 20 6e 65 65 64 65 64 20 | 74 6f 20 65 78 74 72 61 | needed |to extra|
|000018d0| 63 74 0d 0a 0d 0a 09 20 | 20 54 68 65 20 6d 69 6e |ct..... | The min|
|000018e0| 69 6d 75 6d 20 73 6f 66 | 74 77 61 72 65 20 76 65 |imum sof|tware ve|
|000018f0| 72 73 69 6f 6e 20 6e 65 | 65 64 65 64 20 74 6f 20 |rsion ne|eded to |
|00001900| 65 78 74 72 61 63 74 20 | 74 68 65 0d 0a 09 20 20 |extract |the... |
|00001910| 66 69 6c 65 2c 20 6d 61 | 70 70 65 64 20 61 73 20 |file, ma|pped as |
|00001920| 61 62 6f 76 65 2e 0d 0a | 0d 0a ff 20 06 67 65 6e |above...|... .gen|
|00001930| 65 72 61 6c 20 70 75 72 | 70 6f 73 65 20 62 69 74 |eral pur|pose bit|
|00001940| 20 66 6c 61 67 3a 0d 0a | 0d 0a ff 20 0a 62 69 74 | flag:..|... .bit|
|00001950| 20 30 3a 20 49 66 20 73 | 65 74 2c 20 69 6e 64 69 | 0: If s|et, indi|
|00001960| 63 61 74 65 73 20 74 68 | 61 74 20 74 68 65 20 66 |cates th|at the f|
|00001970| 69 6c 65 20 69 73 20 65 | 6e 63 72 79 70 74 65 64 |ile is e|ncrypted|
|00001980| 2e 0d 0a ff 20 0a 62 69 | 74 20 31 3a 20 49 66 20 |.... .bi|t 1: If |
|00001990| 74 68 65 20 63 6f 6d 70 | 72 65 73 73 69 6f 6e 20 |the comp|ression |
|000019a0| 6d 65 74 68 6f 64 20 75 | 73 65 64 20 77 61 73 20 |method u|sed was |
|000019b0| 74 79 70 65 20 36 2c 0d | 0a 09 09 20 49 6d 70 6c |type 6,.|... Impl|
|000019c0| 6f 64 69 6e 67 2c 20 74 | 68 65 6e 20 74 68 69 73 |oding, t|hen this|
|000019d0| 20 62 69 74 2c 20 69 66 | 20 73 65 74 2c 20 69 6e | bit, if| set, in|
|000019e0| 64 69 63 61 74 65 73 0d | 0a 09 09 20 61 6e 20 38 |dicates.|... an 8|
|000019f0| 4b 20 73 6c 69 64 69 6e | 67 20 64 69 63 74 69 6f |K slidin|g dictio|
|00001a00| 6e 61 72 79 20 77 61 73 | 20 75 73 65 64 2e 20 20 |nary was| used. |
|00001a10| 49 66 20 63 6c 65 61 72 | 2c 0d 0a 09 09 20 74 68 |If clear|,.... th|
|00001a20| 65 6e 20 61 20 34 4b 20 | 73 6c 69 64 69 6e 67 20 |en a 4K |sliding |
|00001a30| 64 69 63 74 69 6f 6e 61 | 72 79 20 77 61 73 20 75 |dictiona|ry was u|
|00001a40| 73 65 64 2e 0d 0a ff 20 | 0a 62 69 74 20 32 3a 20 |sed.... |.bit 2: |
|00001a50| 49 66 20 74 68 65 20 63 | 6f 6d 70 72 65 73 73 69 |If the c|ompressi|
|00001a60| 6f 6e 20 6d 65 74 68 6f | 64 20 75 73 65 64 20 77 |on metho|d used w|
|00001a70| 61 73 20 74 79 70 65 20 | 36 2c 0d 0a 09 09 20 49 |as type |6,.... I|
|00001a80| 6d 70 6c 6f 64 69 6e 67 | 2c 20 74 68 65 6e 20 74 |mploding|, then t|
|00001a90| 68 69 73 20 62 69 74 2c | 20 69 66 20 73 65 74 2c |his bit,| if set,|
|00001aa0| 20 69 6e 64 69 63 61 74 | 65 73 0d 0a 09 09 20 61 | indicat|es.... a|
|00001ab0| 6e 20 33 20 53 68 61 6e | 6e 6f 6e 2d 46 61 6e 6f |n 3 Shan|non-Fano|
|00001ac0| 20 74 72 65 65 73 20 77 | 65 72 65 20 75 73 65 64 | trees w|ere used|
|00001ad0| 20 74 6f 20 65 6e 63 6f | 64 65 20 74 68 65 0d 0a | to enco|de the..|
|00001ae0| 09 09 20 73 6c 69 64 69 | 6e 67 20 64 69 63 74 69 |.. slidi|ng dicti|
|00001af0| 6f 6e 61 72 79 20 6f 75 | 74 70 75 74 2e 20 20 49 |onary ou|tput. I|
|00001b00| 66 20 63 6c 65 61 72 2c | 20 74 68 65 6e 20 32 0d |f clear,| then 2.|
|00001b10| 0a 09 09 20 53 68 61 6e | 6e 6f 6e 2d 46 61 6e 6f |... Shan|non-Fano|
|00001b20| 20 74 72 65 65 73 20 77 | 65 72 65 20 75 73 65 64 | trees w|ere used|
|00001b30| 2e 0d 0a 09 20 20 4e 6f | 74 65 3a 20 20 42 69 74 |.... No|te: Bit|
|00001b40| 73 20 31 20 61 6e 64 20 | 32 20 61 72 65 20 75 6e |s 1 and |2 are un|
|00001b50| 64 65 66 69 6e 65 64 20 | 69 66 20 74 68 65 20 63 |defined |if the c|
|00001b60| 6f 6d 70 72 65 73 73 69 | 6f 6e 0d 0a 09 09 20 6d |ompressi|on.... m|
|00001b70| 65 74 68 6f 64 20 69 73 | 20 6f 74 68 65 72 20 74 |ethod is| other t|
|00001b80| 68 61 6e 20 74 79 70 65 | 20 36 20 28 49 6d 70 6c |han type| 6 (Impl|
|00001b90| 6f 64 69 6e 67 29 2e 0d | 0a 0d 0a ff 20 0a 54 68 |oding)..|.... .Th|
|00001ba0| 65 20 75 70 70 65 72 20 | 74 68 72 65 65 20 62 69 |e upper |three bi|
|00001bb0| 74 73 20 61 72 65 20 72 | 65 73 65 72 76 65 64 20 |ts are r|eserved |
|00001bc0| 61 6e 64 20 75 73 65 64 | 20 69 6e 74 65 72 6e 61 |and used| interna|
|00001bd0| 6c 6c 79 0d 0a 09 20 20 | 62 79 20 74 68 65 20 73 |lly... |by the s|
|00001be0| 6f 66 74 77 61 72 65 20 | 77 68 65 6e 20 70 72 6f |oftware |when pro|
|00001bf0| 63 65 73 73 69 6e 67 20 | 74 68 65 20 7a 69 70 66 |cessing |the zipf|
|00001c00| 69 6c 65 2e 20 20 54 68 | 65 0d 0a 09 20 20 72 65 |ile. Th|e... re|
|00001c10| 6d 61 69 6e 69 6e 67 20 | 62 69 74 73 20 61 72 65 |maining |bits are|
|00001c20| 20 75 6e 75 73 65 64 20 | 69 6e 20 76 65 72 73 69 | unused |in versi|
|00001c30| 6f 6e 20 31 2e 30 2e 0d | 0a 0d 0a ff 20 06 63 6f |on 1.0..|.... .co|
|00001c40| 6d 70 72 65 73 73 69 6f | 6e 20 6d 65 74 68 6f 64 |mpressio|n method|
|00001c50| 3a 0d 0a 0d 0a 09 20 20 | 28 73 65 65 20 61 63 63 |:..... |(see acc|
|00001c60| 6f 6d 70 61 6e 79 69 6e | 67 20 64 6f 63 75 6d 65 |ompanyin|g docume|
|00001c70| 6e 74 61 74 69 6f 6e 20 | 66 6f 72 20 61 6c 67 6f |ntation |for algo|
|00001c80| 72 69 74 68 6d 0d 0a 09 | 20 20 64 65 73 63 72 69 |rithm...| descri|
|00001c90| 70 74 69 6f 6e 73 29 0d | 0a 0d 0a 09 20 20 30 20 |ptions).|.... 0 |
|00001ca0| 2d 20 54 68 65 20 66 69 | 6c 65 20 69 73 20 73 74 |- The fi|le is st|
|00001cb0| 6f 72 65 64 20 28 6e 6f | 20 63 6f 6d 70 72 65 73 |ored (no| compres|
|00001cc0| 73 69 6f 6e 29 0d 0a 09 | 20 20 31 20 2d 20 54 68 |sion)...| 1 - Th|
|00001cd0| 65 20 66 69 6c 65 20 69 | 73 20 53 68 72 75 6e 6b |e file i|s Shrunk|
|00001ce0| 0d 0a 09 20 20 32 20 2d | 20 54 68 65 20 66 69 6c |... 2 -| The fil|
|00001cf0| 65 20 69 73 20 52 65 64 | 75 63 65 64 20 77 69 74 |e is Red|uced wit|
|00001d00| 68 20 63 6f 6d 70 72 65 | 73 73 69 6f 6e 20 66 61 |h compre|ssion fa|
|00001d10| 63 74 6f 72 20 31 0d 0a | 09 20 20 33 20 2d 20 54 |ctor 1..|. 3 - T|
|00001d20| 68 65 20 66 69 6c 65 20 | 69 73 20 52 65 64 75 63 |he file |is Reduc|
|00001d30| 65 64 20 77 69 74 68 20 | 63 6f 6d 70 72 65 73 73 |ed with |compress|
|00001d40| 69 6f 6e 20 66 61 63 74 | 6f 72 20 32 0d 0a 09 20 |ion fact|or 2... |
|00001d50| 20 34 20 2d 20 54 68 65 | 20 66 69 6c 65 20 69 73 | 4 - The| file is|
|00001d60| 20 52 65 64 75 63 65 64 | 20 77 69 74 68 20 63 6f | Reduced| with co|
|00001d70| 6d 70 72 65 73 73 69 6f | 6e 20 66 61 63 74 6f 72 |mpressio|n factor|
|00001d80| 20 33 0d 0a 09 20 20 35 | 20 2d 20 54 68 65 20 66 | 3... 5| - The f|
|00001d90| 69 6c 65 20 69 73 20 52 | 65 64 75 63 65 64 20 77 |ile is R|educed w|
|00001da0| 69 74 68 20 63 6f 6d 70 | 72 65 73 73 69 6f 6e 20 |ith comp|ression |
|00001db0| 66 61 63 74 6f 72 20 34 | 0d 0a ff 20 0a 36 20 2d |factor 4|... .6 -|
|00001dc0| 20 54 68 65 20 66 69 6c | 65 20 69 73 20 49 6d 70 | The fil|e is Imp|
|00001dd0| 6c 6f 64 65 64 0d 0a 0d | 0a ff 20 06 64 61 74 65 |loded...|.. .date|
|00001de0| 20 61 6e 64 20 74 69 6d | 65 20 66 69 65 6c 64 73 | and tim|e fields|
|00001df0| 3a 0d 0a 0d 0a 09 20 20 | 54 68 65 20 64 61 74 65 |:..... |The date|
|00001e00| 20 61 6e 64 20 74 69 6d | 65 20 61 72 65 20 65 6e | and tim|e are en|
|00001e10| 63 6f 64 65 64 20 69 6e | 20 73 74 61 6e 64 61 72 |coded in| standar|
|00001e20| 64 20 4d 53 2d 44 4f 53 | 0d 0a 09 20 20 66 6f 72 |d MS-DOS|... for|
|00001e30| 6d 61 74 2e 0d 0a 0d 0a | ff 20 06 43 52 43 2d 33 |mat.....|. .CRC-3|
|00001e40| 32 3a 0d 0a 0d 0a 09 20 | 20 54 68 65 20 43 52 43 |2:..... | The CRC|
|00001e50| 2d 33 32 20 61 6c 67 6f | 72 69 74 68 6d 20 77 61 |-32 algo|rithm wa|
|00001e60| 73 20 67 65 6e 65 72 6f | 75 73 6c 79 20 63 6f 6e |s genero|usly con|
|00001e70| 74 72 69 62 75 74 65 64 | 20 62 79 0d 0a 09 20 20 |tributed| by... |
|00001e80| 44 61 76 69 64 20 53 63 | 68 77 61 64 65 72 65 72 |David Sc|hwaderer|
|00001e90| 20 61 6e 64 20 63 61 6e | 20 62 65 20 66 6f 75 6e | and can| be foun|
|00001ea0| 64 20 69 6e 20 68 69 73 | 20 65 78 63 65 6c 6c 65 |d in his| excelle|
|00001eb0| 6e 74 0d 0a 09 20 20 62 | 6f 6f 6b 20 22 43 20 50 |nt... b|ook "C P|
|00001ec0| 72 6f 67 72 61 6d 6d 65 | 72 73 20 47 75 69 64 65 |rogramme|rs Guide|
|00001ed0| 20 74 6f 20 4e 65 74 42 | 49 4f 53 22 20 70 75 62 | to NetB|IOS" pub|
|00001ee0| 6c 69 73 68 65 64 20 62 | 79 0d 0a 09 20 20 48 6f |lished b|y... Ho|
|00001ef0| 77 61 72 64 20 57 2e 20 | 53 61 6d 73 20 26 20 43 |ward W. |Sams & C|
|00001f00| 6f 2e 20 49 6e 63 2e 20 | 20 54 68 65 20 27 6d 61 |o. Inc. | The 'ma|
|00001f10| 67 69 63 20 6e 75 6d 62 | 65 72 27 20 66 6f 72 0d |gic numb|er' for.|
|00001f20| 0a 09 20 20 74 68 65 20 | 43 52 43 20 69 73 20 30 |.. the |CRC is 0|
|00001f30| 78 64 65 62 62 32 30 65 | 33 2e 20 20 54 68 65 20 |xdebb20e|3. The |
|00001f40| 70 72 6f 70 65 72 20 43 | 52 43 20 70 72 65 20 61 |proper C|RC pre a|
|00001f50| 6e 64 20 70 6f 73 74 0d | 0a 09 20 20 63 6f 6e 64 |nd post.|.. cond|
|00001f60| 69 74 69 6f 6e 69 6e 67 | 20 69 73 20 75 73 65 64 |itioning| is used|
|00001f70| 2c 20 6d 65 61 6e 69 6e | 67 20 74 68 61 74 20 74 |, meanin|g that t|
|00001f80| 68 65 20 43 52 43 20 72 | 65 67 69 73 74 65 72 0d |he CRC r|egister.|
|00001f90| 0a 09 20 20 69 73 20 70 | 72 65 2d 63 6f 6e 64 69 |.. is p|re-condi|
|00001fa0| 74 69 6f 6e 65 64 20 77 | 69 74 68 20 61 6c 6c 20 |tioned w|ith all |
|00001fb0| 6f 6e 65 73 20 28 61 20 | 73 74 61 72 74 69 6e 67 |ones (a |starting|
|00001fc0| 20 76 61 6c 75 65 0d 0a | 09 20 20 6f 66 20 30 78 | value..|. of 0x|
|00001fd0| ff 66 08 29 20 61 6e 64 | 20 74 68 65 20 76 61 6c |.f.) and| the val|
|00001fe0| 75 65 20 69 73 20 70 6f | 73 74 2d 63 6f 6e 64 69 |ue is po|st-condi|
|00001ff0| 74 69 6f 6e 65 64 20 62 | 79 0d 0a 09 20 20 74 61 |tioned b|y... ta|
|00002000| 6b 69 6e 67 20 74 68 65 | 20 6f 6e 65 27 73 20 63 |king the| one's c|
|00002010| 6f 6d 70 6c 65 6d 65 6e | 74 20 6f 66 20 74 68 65 |omplemen|t of the|
|00002020| 20 43 52 43 20 72 65 73 | 69 64 75 61 6c 2e 0d 0a | CRC res|idual...|
|00002030| 09 0d 0a ff 20 06 63 6f | 6d 70 72 65 73 73 65 64 |.... .co|mpressed|
|00002040| 20 73 69 7a 65 3a 0d 0a | ff 20 06 75 6e 63 6f 6d | size:..|. .uncom|
|00002050| 70 72 65 73 73 65 64 20 | 73 69 7a 65 3a 0d 0a 0d |pressed |size:...|
|00002060| 0a 09 20 20 54 68 65 20 | 73 69 7a 65 20 6f 66 20 |.. The |size of |
|00002070| 74 68 65 20 66 69 6c 65 | 20 63 6f 6d 70 72 65 73 |the file| compres|
|00002080| 73 65 64 20 61 6e 64 20 | 75 6e 63 6f 6d 70 72 65 |sed and |uncompre|
|00002090| 73 73 65 64 2c 0d 0a 09 | 20 20 72 65 73 70 65 63 |ssed,...| respec|
|000020a0| 74 69 76 65 6c 79 2e 0d | 0a 0d 0a ff 20 06 66 69 |tively..|.... .fi|
|000020b0| 6c 65 6e 61 6d 65 20 6c | 65 6e 67 74 68 3a 0d 0a |lename l|ength:..|
|000020c0| ff 20 06 65 78 74 72 61 | 20 66 69 65 6c 64 20 6c |. .extra| field l|
|000020d0| 65 6e 67 74 68 3a 0d 0a | ff 20 06 66 69 6c 65 20 |ength:..|. .file |
|000020e0| 63 6f 6d 6d 65 6e 74 20 | 6c 65 6e 67 74 68 3a 0d |comment |length:.|
|000020f0| 0a 0d 0a 09 20 20 54 68 | 65 20 6c 65 6e 67 74 68 |.... Th|e length|
|00002100| 20 6f 66 20 74 68 65 20 | 66 69 6c 65 6e 61 6d 65 | of the |filename|
|00002110| 2c 20 65 78 74 72 61 20 | 66 69 65 6c 64 2c 20 61 |, extra |field, a|
|00002120| 6e 64 20 63 6f 6d 6d 65 | 6e 74 0d 0a 09 20 20 66 |nd comme|nt... f|
|00002130| 69 65 6c 64 73 20 72 65 | 73 70 65 63 74 69 76 65 |ields re|spective|
|00002140| 6c 79 2e 20 20 54 68 65 | 20 63 6f 6d 62 69 6e 65 |ly. The| combine|
|00002150| 64 20 6c 65 6e 67 74 68 | 20 6f 66 20 61 6e 79 0d |d length| of any.|
|00002160| 0a 09 20 20 64 69 72 65 | 63 74 6f 72 79 20 72 65 |.. dire|ctory re|
|00002170| 63 6f 72 64 20 61 6e 64 | 20 74 68 65 73 65 20 74 |cord and| these t|
|00002180| 68 72 65 65 20 66 69 65 | 6c 64 73 20 73 68 6f 75 |hree fie|lds shou|
|00002190| 6c 64 20 6e 6f 74 0d 0a | 09 20 20 67 65 6e 65 72 |ld not..|. gener|
|000021a0| 61 6c 6c 79 20 65 78 63 | 65 65 64 20 36 35 2c 35 |ally exc|eed 65,5|
|000021b0| 33 35 20 62 79 74 65 73 | 2e 0d 0a 0d 0a ff 20 06 |35 bytes|...... .|
|000021c0| 64 69 73 6b 20 6e 75 6d | 62 65 72 20 73 74 61 72 |disk num|ber star|
|000021d0| 74 3a 0d 0a 0d 0a 09 20 | 20 54 68 65 20 6e 75 6d |t:..... | The num|
|000021e0| 62 65 72 20 6f 66 20 74 | 68 65 20 64 69 73 6b 20 |ber of t|he disk |
|000021f0| 6f 6e 20 77 68 69 63 68 | 20 74 68 69 73 20 66 69 |on which| this fi|
|00002200| 6c 65 20 62 65 67 69 6e | 73 2e 0d 0a 0d 0a ff 20 |le begin|s...... |
|00002210| 06 69 6e 74 65 72 6e 61 | 6c 20 66 69 6c 65 20 61 |.interna|l file a|
|00002220| 74 74 72 69 62 75 74 65 | 73 3a 0d 0a 0d 0a 09 20 |ttribute|s:..... |
|00002230| 20 54 68 65 20 6c 6f 77 | 65 73 74 20 62 69 74 20 | The low|est bit |
|00002240| 6f 66 20 74 68 69 73 20 | 66 69 65 6c 64 20 69 6e |of this |field in|
|00002250| 64 69 63 61 74 65 73 2c | 20 69 66 20 73 65 74 2c |dicates,| if set,|
|00002260| 20 74 68 61 74 0d 0a 09 | 20 20 74 68 65 20 66 69 | that...| the fi|
|00002270| 6c 65 20 69 73 20 61 70 | 70 61 72 65 6e 74 6c 79 |le is ap|parently|
|00002280| 20 61 6e 20 41 53 43 49 | 49 20 6f 72 20 74 65 78 | an ASCI|I or tex|
|00002290| 74 20 66 69 6c 65 2e 20 | 20 49 66 20 6e 6f 74 0d |t file. | If not.|
|000022a0| 0a 09 20 20 73 65 74 2c | 20 74 68 61 74 20 74 68 |.. set,| that th|
|000022b0| 65 20 66 69 6c 65 20 61 | 70 70 61 72 65 6e 74 6c |e file a|pparentl|
|000022c0| 79 20 63 6f 6e 74 61 69 | 6e 73 20 62 69 6e 61 72 |y contai|ns binar|
|000022d0| 79 20 64 61 74 61 2e 0d | 0a 09 20 20 54 68 65 20 |y data..|.. The |
|000022e0| 72 65 6d 61 69 6e 69 6e | 67 20 62 69 74 73 20 61 |remainin|g bits a|
|000022f0| 72 65 20 75 6e 75 73 65 | 64 20 69 6e 20 76 65 72 |re unuse|d in ver|
|00002300| 73 69 6f 6e 20 31 2e 30 | 2e 0d 0a 0d 0a ff 20 06 |sion 1.0|...... .|
|00002310| 65 78 74 65 72 6e 61 6c | 20 66 69 6c 65 20 61 74 |external| file at|
|00002320| 74 72 69 62 75 74 65 73 | 3a 0d 0a 0d 0a 09 20 20 |tributes|:..... |
|00002330| 54 68 65 20 6d 61 70 70 | 69 6e 67 20 6f 66 20 74 |The mapp|ing of t|
|00002340| 68 65 20 65 78 74 65 72 | 6e 61 6c 20 61 74 74 72 |he exter|nal attr|
|00002350| 69 62 75 74 65 73 20 69 | 73 0d 0a 09 20 20 68 6f |ibutes i|s... ho|
|00002360| 73 74 2d 73 79 73 74 65 | 6d 20 64 65 70 65 6e 64 |st-syste|m depend|
|00002370| 65 6e 74 20 28 73 65 65 | 20 27 76 65 72 73 69 6f |ent (see| 'versio|
|00002380| 6e 20 6d 61 64 65 20 62 | 79 27 29 2e 20 20 46 6f |n made b|y'). Fo|
|00002390| 72 0d 0a 09 20 20 4d 53 | 2d 44 4f 53 2c 20 74 68 |r... MS|-DOS, th|
|000023a0| 65 20 6c 6f 77 20 6f 72 | 64 65 72 20 62 79 74 65 |e low or|der byte|
|000023b0| 20 69 73 20 74 68 65 20 | 4d 53 2d 44 4f 53 20 64 | is the |MS-DOS d|
|000023c0| 69 72 65 63 74 6f 72 79 | 0d 0a 09 20 20 61 74 74 |irectory|... att|
|000023d0| 72 69 62 75 74 65 20 62 | 79 74 65 2e 0d 0a 0d 0a |ribute b|yte.....|
|000023e0| ff 20 06 72 65 6c 61 74 | 69 76 65 20 6f 66 66 73 |. .relat|ive offs|
|000023f0| 65 74 20 6f 66 20 6c 6f | 63 61 6c 20 68 65 61 64 |et of lo|cal head|
|00002400| 65 72 3a 0d 0a 0d 0a 09 | 20 20 54 68 69 73 20 69 |er:.....| This i|
|00002410| 73 20 74 68 65 20 6f 66 | 66 73 65 74 20 66 72 6f |s the of|fset fro|
|00002420| 6d 20 74 68 65 20 73 74 | 61 72 74 20 6f 66 20 74 |m the st|art of t|
|00002430| 68 65 20 66 69 72 73 74 | 20 64 69 73 6b 20 6f 6e |he first| disk on|
|00002440| 0d 0a 09 20 20 77 68 69 | 63 68 20 74 68 69 73 20 |... whi|ch this |
|00002450| 66 69 6c 65 20 61 70 70 | 65 61 72 73 2c 20 74 6f |file app|ears, to|
|00002460| 20 77 68 65 72 65 20 74 | 68 65 20 6c 6f 63 61 6c | where t|he local|
|00002470| 20 68 65 61 64 65 72 20 | 73 68 6f 75 6c 64 0d 0a | header |should..|
|00002480| 09 20 20 62 65 20 66 6f | 75 6e 64 2e 0d 0a 0d 0a |. be fo|und.....|
|00002490| ff 20 06 66 69 6c 65 6e | 61 6d 65 3a 0d 0a 0d 0a |. .filen|ame:....|
|000024a0| 09 20 20 54 68 65 20 6e | 61 6d 65 20 6f 66 20 74 |. The n|ame of t|
|000024b0| 68 65 20 66 69 6c 65 2c | 20 77 69 74 68 20 6f 70 |he file,| with op|
|000024c0| 74 69 6f 6e 61 6c 20 72 | 65 6c 61 74 69 76 65 20 |tional r|elative |
|000024d0| 70 61 74 68 2e 0d 0a 09 | 20 20 54 68 65 20 70 61 |path....| The pa|
|000024e0| 74 68 20 73 74 6f 72 65 | 64 20 73 68 6f 75 6c 64 |th store|d should|
|000024f0| 20 6e 6f 74 20 63 6f 6e | 74 61 69 6e 20 61 20 64 | not con|tain a d|
|00002500| 72 69 76 65 20 6f 72 0d | 0a 09 20 20 64 65 76 69 |rive or.|.. devi|
|00002510| 63 65 20 6c 65 74 74 65 | 72 2c 20 6f 72 20 61 20 |ce lette|r, or a |
|00002520| 6c 65 61 64 69 6e 67 20 | 73 6c 61 73 68 2e 20 20 |leading |slash. |
|00002530| 41 6c 6c 20 73 6c 61 73 | 68 65 73 0d 0a 09 20 20 |All slas|hes... |
|00002540| 73 68 6f 75 6c 64 20 62 | 65 20 66 6f 72 77 61 72 |should b|e forwar|
|00002550| 64 20 73 6c 61 73 68 65 | 73 20 27 2f 27 20 61 73 |d slashe|s '/' as|
|00002560| 20 6f 70 70 6f 73 65 64 | 20 74 6f 0d 0a 09 20 20 | opposed| to... |
|00002570| 62 61 63 6b 77 61 72 64 | 73 20 73 6c 61 73 68 65 |backward|s slashe|
|00002580| 73 20 27 5c 27 20 66 6f | 72 20 63 6f 6d 70 61 74 |s '\' fo|r compat|
|00002590| 69 62 69 6c 69 74 79 20 | 77 69 74 68 20 41 6d 69 |ibility |with Ami|
|000025a0| 67 61 0d 0a 09 20 20 61 | 6e 64 20 55 6e 69 78 20 |ga... a|nd Unix |
|000025b0| 66 69 6c 65 20 73 79 73 | 74 65 6d 73 20 65 74 63 |file sys|tems etc|
|000025c0| 2e 0d 0a 0d 0a ff 20 06 | 65 78 74 72 61 20 66 69 |...... .|extra fi|
|000025d0| 65 6c 64 3a 0d 0a 0d 0a | 09 20 20 54 68 69 73 20 |eld:....|. This |
|000025e0| 69 73 20 66 6f 72 20 66 | 75 74 75 72 65 20 65 78 |is for f|uture ex|
|000025f0| 70 61 6e 73 69 6f 6e 2e | 20 20 49 66 20 61 64 64 |pansion.| If add|
|00002600| 69 74 69 6f 6e 61 6c 20 | 69 6e 66 6f 72 6d 61 74 |itional |informat|
|00002610| 69 6f 6e 0d 0a 09 20 20 | 6e 65 65 64 73 20 74 6f |ion... |needs to|
|00002620| 20 62 65 20 73 74 6f 72 | 65 64 20 69 6e 20 74 68 | be stor|ed in th|
|00002630| 65 20 66 75 74 75 72 65 | 2c 20 69 74 20 73 68 6f |e future|, it sho|
|00002640| 75 6c 64 20 62 65 20 73 | 74 6f 72 65 64 0d 0a 09 |uld be s|tored...|
|00002650| 20 20 68 65 72 65 2e 20 | 20 45 61 72 6c 69 65 72 | here. | Earlier|
|00002660| 20 76 65 72 73 69 6f 6e | 73 20 6f 66 20 74 68 65 | version|s of the|
|00002670| 20 73 6f 66 74 77 61 72 | 65 20 63 61 6e 20 74 68 | softwar|e can th|
|00002680| 65 6e 20 73 61 66 65 6c | 79 0d 0a 09 20 20 73 6b |en safel|y... sk|
|00002690| 69 70 20 74 68 69 73 20 | 66 69 6c 65 2c 20 61 6e |ip this |file, an|
|000026a0| 64 20 66 69 6e 64 20 74 | 68 65 20 6e 65 78 74 20 |d find t|he next |
|000026b0| 66 69 6c 65 20 6f 72 20 | 68 65 61 64 65 72 2e 20 |file or |header. |
|000026c0| 20 54 68 69 73 0d 0a 09 | 20 20 66 69 65 6c 64 20 | This...| field |
|000026d0| 77 69 6c 6c 20 62 65 20 | 30 20 6c 65 6e 67 74 68 |will be |0 length|
|000026e0| 20 69 6e 20 76 65 72 73 | 69 6f 6e 20 31 2e 30 2e | in vers|ion 1.0.|
|000026f0| 0d 0a 0d 0a 09 20 20 49 | 6e 20 6f 72 64 65 72 20 |..... I|n order |
|00002700| 74 6f 20 61 6c 6c 6f 77 | 20 64 69 66 66 65 72 65 |to allow| differe|
|00002710| 6e 74 20 70 72 6f 67 72 | 61 6d 73 20 61 6e 64 20 |nt progr|ams and |
|00002720| 64 69 66 66 65 72 65 6e | 74 20 74 79 70 65 73 20 |differen|t types |
|00002730| 0d 0a 09 20 20 6f 66 20 | 69 6e 66 6f 72 6d 61 74 |... of |informat|
|00002740| 69 6f 6e 20 74 6f 20 62 | 65 20 73 74 6f 72 65 64 |ion to b|e stored|
|00002750| 20 69 6e 20 74 68 65 20 | 27 65 78 74 72 61 27 20 | in the |'extra' |
|00002760| 66 69 65 6c 64 20 69 6e | 20 2e 5a 49 50 20 0d 0a |field in| .ZIP ..|
|00002770| 09 20 20 66 69 6c 65 73 | 2c 20 74 68 65 20 66 6f |. files|, the fo|
|00002780| 6c 6c 6f 77 69 6e 67 20 | 73 74 72 75 63 74 75 72 |llowing |structur|
|00002790| 65 20 73 68 6f 75 6c 64 | 20 62 65 20 75 73 65 64 |e should| be used|
|000027a0| 20 66 6f 72 20 61 6c 6c | 20 0d 0a 09 20 20 70 72 | for all| ... pr|
|000027b0| 6f 67 72 61 6d 73 20 73 | 74 6f 72 69 6e 67 20 64 |ograms s|toring d|
|000027c0| 61 74 61 20 69 6e 20 74 | 68 69 73 20 66 69 65 6c |ata in t|his fiel|
|000027d0| 64 3a 0d 0a 0d 0a 09 20 | 20 68 65 61 64 65 72 31 |d:..... | header1|
|000027e0| 2b 64 61 74 61 31 20 2b | 20 68 65 61 64 65 72 32 |+data1 +| header2|
|000027f0| 2b 64 61 74 61 32 20 2e | 20 2e 20 2e 0d 0a 0d 0a |+data2 .| . .....|
|00002800| 09 20 20 45 61 63 68 20 | 68 65 61 64 65 72 20 73 |. Each |header s|
|00002810| 68 6f 75 6c 64 20 63 6f | 6e 73 69 73 74 20 6f 66 |hould co|nsist of|
|00002820| 3a 0d 0a 0d 0a 09 ff 20 | 04 48 65 61 64 65 72 20 |:...... |.Header |
|00002830| 49 44 20 2d 20 32 20 62 | 79 74 65 73 0d 0a 09 ff |ID - 2 b|ytes....|
|00002840| 20 04 44 61 74 61 20 53 | 69 7a 65 20 2d 20 32 20 | .Data S|ize - 2 |
|00002850| 62 79 74 65 73 0d 0a 0d | 0a 09 20 20 4e 6f 74 65 |bytes...|.. Note|
|00002860| 3a 20 61 6c 6c 20 66 69 | 65 6c 64 73 20 73 74 6f |: all fi|elds sto|
|00002870| 72 65 64 20 69 6e 20 49 | 6e 74 65 6c 20 6c 6f 77 |red in I|ntel low|
|00002880| 2d 62 79 74 65 2f 68 69 | 67 68 2d 62 79 74 65 20 |-byte/hi|gh-byte |
|00002890| 6f 72 64 65 72 2e 0d 0a | 0d 0a 09 20 20 54 68 65 |order...|... The|
|000028a0| 20 48 65 61 64 65 72 20 | 49 44 20 66 69 65 6c 64 | Header |ID field|
|000028b0| 20 69 6e 64 69 63 61 74 | 65 73 20 74 68 65 20 74 | indicat|es the t|
|000028c0| 79 70 65 20 6f 66 20 64 | 61 74 61 20 74 68 61 74 |ype of d|ata that|
|000028d0| 20 69 73 20 69 6e 20 0d | 0a 09 20 20 74 68 65 20 | is in .|.. the |
|000028e0| 66 6f 6c 6c 6f 77 69 6e | 67 20 64 61 74 61 20 62 |followin|g data b|
|000028f0| 6c 6f 63 6b 2e 0d 0a ff | 20 06 0d 0a 09 20 20 48 |lock....| .... H|
|00002900| 65 61 64 65 72 20 49 44 | 27 73 20 6f 66 20 30 20 |eader ID|'s of 0 |
|00002910| 74 68 72 75 20 33 31 20 | 61 72 65 20 72 65 73 65 |thru 31 |are rese|
|00002920| 72 76 65 64 20 66 6f 72 | 20 75 73 65 20 62 79 20 |rved for| use by |
|00002930| 50 4b 57 41 52 45 2e 20 | 20 0d 0a 09 20 20 54 68 |PKWARE. | ... Th|
|00002940| 65 20 72 65 6d 61 69 6e | 69 6e 67 20 49 44 27 73 |e remain|ing ID's|
|00002950| 20 63 61 6e 20 62 65 20 | 75 73 65 64 20 62 79 20 | can be |used by |
|00002960| 74 68 69 72 64 20 70 61 | 72 74 79 20 76 65 6e 64 |third pa|rty vend|
|00002970| 6f 72 73 20 66 6f 72 20 | 0d 0a 09 20 20 70 72 6f |ors for |... pro|
|00002980| 70 72 69 65 74 61 72 79 | 20 75 73 61 67 65 2e 0d |prietary| usage..|
|00002990| 0a 0d 0a 0d 0a 09 20 20 | 54 68 65 20 44 61 74 61 |...... |The Data|
|000029a0| 20 53 69 7a 65 20 66 69 | 65 6c 64 20 69 6e 64 69 | Size fi|eld indi|
|000029b0| 63 61 74 65 73 20 74 68 | 65 20 73 69 7a 65 20 6f |cates th|e size o|
|000029c0| 66 20 74 68 65 20 66 6f | 6c 6c 6f 77 69 6e 67 20 |f the fo|llowing |
|000029d0| 0d 0a 09 20 20 64 61 74 | 61 20 62 6c 6f 63 6b 2e |... dat|a block.|
|000029e0| 20 50 72 6f 67 72 61 6d | 73 20 63 61 6e 20 75 73 | Program|s can us|
|000029f0| 65 20 74 68 69 73 20 76 | 61 6c 75 65 20 74 6f 20 |e this v|alue to |
|00002a00| 73 6b 69 70 20 74 6f 20 | 74 68 65 20 0d 0a 09 20 |skip to |the ... |
|00002a10| 20 6e 65 78 74 20 68 65 | 61 64 65 72 20 62 6c 6f | next he|ader blo|
|00002a20| 63 6b 2c 20 70 61 73 73 | 69 6e 67 20 6f 76 65 72 |ck, pass|ing over|
|00002a30| 20 61 6e 79 20 64 61 74 | 61 20 62 6c 6f 63 6b 73 | any dat|a blocks|
|00002a40| 20 74 68 61 74 20 61 72 | 65 20 0d 0a 09 20 20 6e | that ar|e ... n|
|00002a50| 6f 74 20 6f 66 20 69 6e | 74 65 72 65 73 74 2e 0d |ot of in|terest..|
|00002a60| 0a 0d 0a 09 20 20 4e 6f | 74 65 3a 20 41 73 8c 1d |.... No|te: As..|
|00002a70| ff 20 73 74 61 74 65 64 | 20 69 6e 20 74 68 65 20 |. stated| in the |
|00002a80| 73 74 61 6e 64 61 72 64 | 20 50 4b 5a 49 50 20 61 |standard| PKZIP a|
|00002a90| 70 70 6c 69 63 61 74 69 | 6f 6e 20 6e 6f 74 65 73 |pplicati|on notes|
|00002aa0| 2c 20 0d 0a 09 ff 20 04 | 74 68 65 20 73 69 7a 65 |, .... .|the size|
|00002ab0| 20 6f 66 20 74 68 65 20 | 65 6e 74 69 72 65 20 2e | of the |entire .|
|00002ac0| 5a 49 50 20 66 69 6c 65 | 20 68 65 61 64 65 72 2c |ZIP file| header,|
|00002ad0| 20 69 6e 63 6c 75 64 69 | 6e 67 20 74 68 65 20 0d | includi|ng the .|
|00002ae0| 0a 09 ff 20 04 66 69 6c | 65 6e 61 6d 65 2c 20 63 |... .fil|ename, c|
|00002af0| 6f 6d 6d 65 6e 74 2c 20 | 61 6e 64 20 65 78 74 72 |omment, |and extr|
|00002b00| 61 20 66 69 65 6c 64 20 | 73 68 6f 75 6c 64 20 6e |a field |should n|
|00002b10| 6f 74 20 65 78 63 65 65 | 64 20 36 34 4b 20 0d 0a |ot excee|d 64K ..|
|00002b20| 09 ff 20 04 69 6e 20 73 | 69 7a 65 2e 0d 0a 0d 0a |.. .in s|ize.....|
|00002b30| 0d 0a 09 20 20 49 6e 20 | 63 61 73 65 20 74 77 6f |... In |case two|
|00002b40| 20 64 69 66 66 65 72 65 | 6e 74 20 70 72 6f 67 72 | differe|nt progr|
|00002b50| 61 6d 73 20 73 68 6f 75 | 6c 64 20 61 70 70 72 6f |ams shou|ld appro|
|00002b60| 70 72 69 61 74 65 20 74 | 68 65 20 73 61 6d 65 20 |priate t|he same |
|00002b70| 0d 0a 09 20 20 48 65 61 | 64 65 72 20 49 44 20 76 |... Hea|der ID v|
|00002b80| 61 6c 75 65 2c 20 69 74 | 20 69 73 20 73 74 72 6f |alue, it| is stro|
|00002b90| 6e 67 6c 79 20 72 65 63 | 6f 6d 6d 65 6e 64 65 64 |ngly rec|ommended|
|00002ba0| 20 74 68 61 74 20 65 61 | 63 68 20 0d 0a 09 20 20 | that ea|ch ... |
|00002bb0| 70 72 6f 67 72 61 6d 20 | 70 6c 61 63 65 20 61 20 |program |place a |
|00002bc0| 75 6e 69 71 75 65 20 73 | 69 67 6e 61 74 75 72 65 |unique s|ignature|
|00002bd0| 20 6f 66 20 61 74 20 6c | 65 61 73 74 20 74 77 6f | of at l|east two|
|00002be0| 20 62 79 74 65 73 20 69 | 6e 20 0d 0a 09 20 20 73 | bytes i|n ... s|
|00002bf0| 69 7a 65 20 28 61 6e 64 | 20 70 72 65 66 65 72 61 |ize (and| prefera|
|00002c00| 62 6c 79 20 34 20 62 79 | 74 65 73 20 6f 72 20 62 |bly 4 by|tes or b|
|00002c10| 69 67 67 65 72 29 20 61 | 74 20 74 68 65 20 73 74 |igger) a|t the st|
|00002c20| 61 72 74 20 6f 66 20 0d | 0a 09 20 20 65 61 63 68 |art of .|.. each|
|00002c30| 20 64 61 74 61 20 61 72 | 65 61 2e 20 20 45 76 65 | data ar|ea. Eve|
|00002c40| 72 79 20 70 72 6f 67 72 | 61 6d 20 73 68 6f 75 6c |ry progr|am shoul|
|00002c50| 64 20 76 65 72 69 66 79 | 20 74 68 61 74 20 69 74 |d verify| that it|
|00002c60| 27 73 20 0d 0a 09 20 20 | 75 6e 69 71 75 65 20 73 |'s ... |unique s|
|00002c70| 69 67 6e 61 74 75 72 65 | 20 69 73 20 70 72 65 73 |ignature| is pres|
|00002c80| 65 6e 74 2c 20 69 6e 20 | 61 64 64 69 74 69 6f 6e |ent, in |addition|
|00002c90| 20 74 6f 20 74 68 65 20 | 48 65 61 64 65 72 20 49 | to the |Header I|
|00002ca0| 44 20 0d 0a 09 20 20 76 | 61 6c 75 65 20 62 65 69 |D ... v|alue bei|
|00002cb0| 6e 67 20 63 6f 72 72 65 | 63 74 2c 20 62 65 66 6f |ng corre|ct, befo|
|00002cc0| 72 65 20 61 73 73 75 6d | 69 6e 67 20 74 68 61 74 |re assum|ing that|
|00002cd0| 20 69 74 20 69 73 20 61 | 20 62 6c 6f 63 6b 20 6f | it is a| block o|
|00002ce0| 66 20 0d 0a 09 20 20 6b | 6e 6f 77 6e 20 74 79 70 |f ... k|nown typ|
|00002cf0| 65 2e 0d 0a 0d 0a 0d 0a | ff 20 06 66 69 6c 65 20 |e.......|. .file |
|00002d00| 63 6f 6d 6d 65 6e 74 3a | 0d 0a 0d 0a 09 20 20 54 |comment:|..... T|
|00002d10| 68 65 20 63 6f 6d 6d 65 | 6e 74 20 66 6f 72 20 74 |he comme|nt for t|
|00002d20| 68 69 73 20 66 69 6c 65 | 2e 0d 0a 0d 0a 0d 0a ff |his file|........|
|00002d30| 20 06 6e 75 6d 62 65 72 | 20 6f 66 20 74 68 69 73 | .number| of this|
|00002d40| 20 64 69 73 6b 3a 0d 0a | 0d 0a 09 20 20 54 68 65 | disk:..|... The|
|00002d50| 20 6e 75 6d 62 65 72 20 | 6f 66 20 74 68 69 73 20 | number |of this |
|00002d60| 64 69 73 6b 2c 20 77 68 | 69 63 68 20 63 6f 6e 74 |disk, wh|ich cont|
|00002d70| 61 69 6e 73 20 63 65 6e | 74 72 61 6c 0d 0a 09 20 |ains cen|tral... |
|00002d80| 20 64 69 72 65 63 74 6f | 72 79 20 65 6e 64 20 72 | directo|ry end r|
|00002d90| 65 63 6f 72 64 2e 0d 0a | 0d 0a ff 20 06 6e 75 6d |ecord...|... .num|
|00002da0| 62 65 72 20 6f 66 20 74 | 68 65 20 64 69 73 6b 20 |ber of t|he disk |
|00002db0| 77 69 74 68 20 74 68 65 | 20 73 74 61 72 74 20 6f |with the| start o|
|00002dc0| 66 20 74 68 65 20 63 65 | 6e 74 72 61 6c 20 64 69 |f the ce|ntral di|
|00002dd0| 72 65 63 74 6f 72 79 3a | 0d 0a 0d 0a 09 20 20 54 |rectory:|..... T|
|00002de0| 68 65 20 6e 75 6d 62 65 | 72 20 6f 66 20 74 68 65 |he numbe|r of the|
|00002df0| 20 64 69 73 6b 20 6f 6e | 20 77 68 69 63 68 20 74 | disk on| which t|
|00002e00| 68 65 20 63 65 6e 74 72 | 61 6c 0d 0a 09 20 20 64 |he centr|al... d|
|00002e10| 69 72 65 63 74 6f 72 79 | 20 73 74 61 72 74 73 2e |irectory| starts.|
|00002e20| 0d 0a 0d 0a ff 20 06 74 | 6f 74 61 6c 20 6e 75 6d |..... .t|otal num|
|00002e30| 62 65 72 20 6f 66 20 65 | 6e 74 72 69 65 73 20 69 |ber of e|ntries i|
|00002e40| 6e 20 74 68 65 20 63 65 | 6e 74 72 61 6c 20 64 69 |n the ce|ntral di|
|00002e50| 72 20 6f 6e 20 74 68 69 | 73 20 64 69 73 6b 3a 0d |r on thi|s disk:.|
|00002e60| 0a 0d 0a 09 20 20 54 68 | 65 20 6e 75 6d 62 65 72 |.... Th|e number|
|00002e70| 20 6f 66 20 63 65 6e 74 | 72 61 6c 20 64 69 72 65 | of cent|ral dire|
|00002e80| 63 74 6f 72 79 20 65 6e | 74 72 69 65 73 20 6f 6e |ctory en|tries on|
|00002e90| 20 74 68 69 73 20 64 69 | 73 6b 2e 0d 0a 09 0d 0a | this di|sk......|
|00002ea0| ff 20 06 74 6f 74 61 6c | 20 6e 75 6d 62 65 72 20 |. .total| number |
|00002eb0| 6f 66 20 65 6e 74 72 69 | 65 73 20 69 6e 20 74 68 |of entri|es in th|
|00002ec0| 65 20 63 65 6e 74 72 61 | 6c 20 64 69 72 3a 0d 0a |e centra|l dir:..|
|00002ed0| 0d 0a 09 20 20 54 68 65 | 20 74 6f 74 61 6c 20 6e |... The| total n|
|00002ee0| 75 6d 62 65 72 20 6f 66 | 20 66 69 6c 65 73 20 69 |umber of| files i|
|00002ef0| 6e 20 74 68 65 20 7a 69 | 70 66 69 6c 65 2e 0d 0a |n the zi|pfile...|
|00002f00| 0d 0a 0d 0a ff 20 06 73 | 69 7a 65 20 6f 66 20 74 |..... .s|ize of t|
|00002f10| 68 65 20 63 65 6e 74 72 | 61 6c 20 64 69 72 65 63 |he centr|al direc|
|00002f20| 74 6f 72 79 3a 0d 0a 0d | 0a 09 20 20 54 68 65 20 |tory:...|.. The |
|00002f30| 73 69 7a 65 20 28 69 6e | 20 62 79 74 65 73 29 20 |size (in| bytes) |
|00002f40| 6f 66 20 74 68 65 20 65 | 6e 74 69 72 65 20 63 65 |of the e|ntire ce|
|00002f50| 6e 74 72 61 6c 20 64 69 | 72 65 63 74 6f 72 79 2e |ntral di|rectory.|
|00002f60| 0d 0a 0d 0a ff 20 06 6f | 66 66 73 65 74 20 6f 66 |..... .o|ffset of|
|00002f70| 20 73 74 61 72 74 20 6f | 66 20 63 65 6e 74 72 61 | start o|f centra|
|00002f80| 6c 20 64 69 72 65 63 74 | 6f 72 79 20 77 69 74 68 |l direct|ory with|
|00002f90| 20 72 65 73 70 65 63 74 | 20 74 6f 0d 0a ff 20 06 | respect| to... .|
|00002fa0| 74 68 65 20 73 74 61 72 | 74 69 6e 67 20 64 69 73 |the star|ting dis|
|00002fb0| 6b 20 6e 75 6d 62 65 72 | 3a 0d 0a 0d 0a 09 20 20 |k number|:..... |
|00002fc0| 4f 66 66 73 65 74 20 6f | 66 20 74 68 65 20 73 74 |Offset o|f the st|
|00002fd0| 61 72 74 20 6f 66 20 74 | 68 65 20 63 65 6e 74 72 |art of t|he centr|
|00002fe0| 61 6c 20 64 69 72 65 63 | 6f 72 79 20 6f 6e 20 74 |al direc|ory on t|
|00002ff0| 68 65 0d 0a 09 20 20 64 | 69 73 6b 20 6f 6e 20 77 |he... d|isk on w|
|00003000| 68 69 63 68 20 74 68 65 | 20 63 65 6e 74 72 61 6c |hich the| central|
|00003010| 20 64 69 72 65 63 74 6f | 72 79 20 73 74 61 72 74 | directo|ry start|
|00003020| 73 2e 0d 0a 0d 0a ff 20 | 06 7a 69 70 66 69 6c 65 |s...... |.zipfile|
|00003030| 20 63 6f 6d 6d 65 6e 74 | 20 6c 65 6e 67 74 68 3a | comment| length:|
|00003040| 0d 0a 0d 0a 09 20 20 54 | 68 65 20 6c 65 6e 67 74 |..... T|he lengt|
|00003050| 68 20 6f 66 20 74 68 65 | 20 63 6f 6d 6d 65 6e 74 |h of the| comment|
|00003060| 20 66 6f 72 20 74 68 69 | 73 20 7a 69 70 66 69 6c | for thi|s zipfil|
|00003070| 65 2e 0d 0a 0d 0a ff 20 | 06 7a 69 70 66 69 6c 65 |e...... |.zipfile|
|00003080| 20 63 6f 6d 6d 65 6e 74 | 3a 0d 0a 0d 0a 09 20 20 | comment|:..... |
|00003090| 54 68 65 20 63 6f 6d 6d | 65 6e 74 20 66 6f 72 20 |The comm|ent for |
|000030a0| 74 68 69 73 20 7a 69 70 | 66 69 6c 65 2e 0d 0a 0d |this zip|file....|
|000030b0| 0a 0d 0a 20 20 44 2e 20 | 20 47 65 6e 65 72 61 6c |... D. | General|
|000030c0| 20 6e 6f 74 65 73 3a 0d | 0a 0d 0a ff 20 06 31 29 | notes:.|.... .1)|
|000030d0| 20 20 41 6c 6c 20 66 69 | 65 6c 64 73 20 75 6e 6c | All fi|elds unl|
|000030e0| 65 73 73 20 6f 74 68 65 | 72 77 69 73 65 20 6e 6f |ess othe|rwise no|
|000030f0| 74 65 64 20 61 72 65 20 | 75 6e 73 69 67 6e 65 64 |ted are |unsigned|
|00003100| 20 61 6e 64 20 73 74 6f | 72 65 64 0d 0a 09 20 20 | and sto|red... |
|00003110| 69 6e 20 49 6e 74 65 6c | 20 6c 6f 77 2d 62 79 74 |in Intel| low-byt|
|00003120| 65 3a 68 69 67 68 2d 62 | 79 74 65 2c 20 6c 6f 77 |e:high-b|yte, low|
|00003130| 2d 77 6f 72 64 3a 68 69 | 67 68 2d 77 6f 72 64 20 |-word:hi|gh-word |
|00003140| 6f 72 64 65 72 2e 0d 0a | 0d 0a ff 20 06 32 29 20 |order...|... .2) |
|00003150| 20 53 74 72 69 6e 67 20 | 66 69 65 6c 64 73 20 61 | String |fields a|
|00003160| 72 65 20 6e 6f 74 20 6e | 75 6c 6c 20 74 65 72 6d |re not n|ull term|
|00003170| 69 6e 61 74 65 64 2c 20 | 73 69 6e 63 65 20 74 68 |inated, |since th|
|00003180| 65 0d 0a 09 20 20 6c 65 | 6e 67 74 68 20 69 73 20 |e... le|ngth is |
|00003190| 67 69 76 65 6e 20 65 78 | 70 6c 69 63 69 74 6c 79 |given ex|plicitly|
|000031a0| 2e 0d 0a 0d 0a ff 20 06 | 33 29 20 20 4c 6f 63 61 |...... .|3) Loca|
|000031b0| 6c 20 68 65 61 64 65 72 | 73 20 73 68 6f 75 6c 64 |l header|s should|
|000031c0| 20 6e 6f 74 20 73 70 61 | 6e 20 64 69 73 6b 20 62 | not spa|n disk b|
|000031d0| 6f 75 6e 64 72 69 65 73 | 2e 20 20 41 6c 73 6f 2c |oundries|. Also,|
|000031e0| 20 65 76 65 6e 0d 0a 09 | 20 20 74 68 6f 75 67 68 | even...| though|
|000031f0| 20 74 68 65 20 63 65 6e | 74 72 61 6c 20 64 69 72 | the cen|tral dir|
|00003200| 65 63 74 6f 72 79 20 63 | 61 6e 20 73 70 61 6e 20 |ectory c|an span |
|00003210| 64 69 73 6b 20 62 6f 75 | 6e 64 72 69 65 73 2c 20 |disk bou|ndries, |
|00003220| 6e 6f 0d 0a 09 20 20 73 | 69 6e 67 6c 65 20 72 65 |no... s|ingle re|
|00003230| 63 6f 72 64 20 69 6e 20 | 74 68 65 20 63 65 6e 74 |cord in |the cent|
|00003240| 72 61 6c 20 64 69 72 65 | 63 74 6f 72 79 20 73 68 |ral dire|ctory sh|
|00003250| 6f 75 6c 64 20 62 65 20 | 73 70 6c 69 74 0d 0a 09 |ould be |split...|
|00003260| 20 20 61 63 72 6f 73 73 | 20 64 69 73 6b 73 2e 0d | across| disks..|
|00003270| 0a 0d 0a ff 20 06 34 29 | 20 20 54 68 65 20 65 6e |.... .4)| The en|
|00003280| 74 72 69 65 73 20 69 6e | 20 74 68 65 20 63 65 6e |tries in| the cen|
|00003290| 74 72 61 6c 20 64 69 72 | 65 63 74 6f 72 79 20 6d |tral dir|ectory m|
|000032a0| 61 79 20 6e 6f 74 20 6e | 65 63 65 73 73 61 72 69 |ay not n|ecessari|
|000032b0| 6c 79 0d 0a 09 20 20 62 | 65 20 69 6e 20 74 68 65 |ly... b|e in the|
|000032c0| 20 73 61 6d 65 20 6f 72 | 64 65 72 20 74 68 61 74 | same or|der that|
|000032d0| 20 66 69 6c 65 73 20 61 | 70 70 65 61 72 20 69 6e | files a|ppear in|
|000032e0| 20 74 68 65 20 7a 69 70 | 66 69 6c 65 2e 0d 0a 0c | the zip|file....|
|000032f0| 0d 0a 55 6e 53 68 72 69 | 6e 6b 69 6e 67 0d 0a ff |..UnShri|nking...|
|00003300| 2d 0b 0d 0a 0d 0a 53 68 | 72 69 6e 6b 69 6e 67 20 |-.....Sh|rinking |
|00003310| 69 73 20 61 20 44 79 6e | 61 6d 69 63 20 5a 69 76 |is a Dyn|amic Ziv|
|00003320| 2d 4c 65 6d 70 65 6c 2d | 57 65 6c 63 68 20 63 6f |-Lempel-|Welch co|
|00003330| 6d 70 72 65 73 73 69 6f | 6e 20 61 6c 67 6f 72 69 |mpressio|n algori|
|00003340| 74 68 6d 0d 0a 77 69 74 | 68 20 70 61 72 74 69 61 |thm..wit|h partia|
|00003350| 6c 20 63 6c 65 61 72 69 | 6e 67 2e 20 20 54 68 65 |l cleari|ng. The|
|00003360| 20 69 6e 69 74 69 61 6c | 20 63 6f 64 65 20 73 69 | initial| code si|
|00003370| 7a 65 20 69 73 20 39 20 | 62 69 74 73 2c 20 61 6e |ze is 9 |bits, an|
|00003380| 64 0d 0a 74 68 65 20 6d | 61 78 69 6d 75 6d 20 63 |d..the m|aximum c|
|00003390| 6f 64 65 20 73 69 7a 65 | 20 69 73 20 31 33 20 62 |ode size| is 13 b|
|000033a0| 69 74 73 2e 20 20 53 68 | 72 69 6e 6b 69 6e 67 20 |its. Sh|rinking |
|000033b0| 64 69 66 66 65 72 73 20 | 66 72 6f 6d 0d 0a 63 6f |differs |from..co|
|000033c0| 6e 76 65 6e 74 69 6f 6e | 61 6c 20 44 79 6e 61 6d |nvention|al Dynam|
|000033d0| 69 63 20 5a 69 76 2d 6c | 65 6d 70 65 6c 2d 57 65 |ic Ziv-l|empel-We|
|000033e0| 6c 63 68 20 69 6d 70 6c | 65 6d 65 6e 74 61 74 69 |lch impl|ementati|
|000033f0| 6f 6e 73 20 69 6e 20 73 | 65 76 65 72 61 6c 0d 0a |ons in s|everal..|
|00003400| 72 65 73 70 65 63 74 73 | 3a 0d 0a 0d 0a 31 29 20 |respects|:....1) |
|00003410| 20 54 68 65 20 63 6f 64 | 65 20 73 69 7a 65 20 69 | The cod|e size i|
|00003420| 73 20 63 6f 6e 74 72 6f | 6c 6c 65 64 20 62 79 20 |s contro|lled by |
|00003430| 74 68 65 20 63 6f 6d 70 | 72 65 73 73 6f 72 2c 20 |the comp|ressor, |
|00003440| 61 6e 64 20 69 73 20 6e | 6f 74 0d 0a ff 20 04 61 |and is n|ot... .a|
|00003450| 75 74 6f 6d 61 74 69 63 | 61 6c 6c 79 20 69 6e 63 |utomatic|ally inc|
|00003460| 72 65 61 73 65 64 20 77 | 68 65 6e 20 63 6f 64 65 |reased w|hen code|
|00003470| 73 20 6c 61 72 67 65 72 | 20 74 68 61 6e 20 74 68 |s larger| than th|
|00003480| 65 20 63 75 72 72 65 6e | 74 0d 0a ff 20 04 63 6f |e curren|t... .co|
|00003490| 64 65 20 73 69 7a 65 20 | 61 72 65 20 63 72 65 61 |de size |are crea|
|000034a0| 74 65 64 20 28 62 75 74 | 20 6e 6f 74 20 6e 65 63 |ted (but| not nec|
|000034b0| 65 73 73 61 72 69 6c 79 | 20 75 73 65 64 29 2e 20 |essarily| used). |
|000034c0| 20 57 68 65 6e 0d 0a ff | 20 04 74 68 65 20 64 65 | When...| .the de|
|000034d0| 63 6f 6d 70 72 65 73 73 | 6f 72 20 65 6e 63 6f 75 |compress|or encou|
|000034e0| 6e 74 65 72 73 20 74 68 | 65 20 63 6f 64 65 20 73 |nters th|e code s|
|000034f0| 65 71 75 65 6e 63 65 20 | 32 35 36 0d 0a ff 20 04 |equence |256... .|
|00003500| 28 64 65 63 69 6d 61 6c | 29 20 66 6f 6c 6c 6f 77 |(decimal|) follow|
|00003510| 65 64 20 62 79 20 31 2c | 20 69 74 20 73 68 6f 75 |ed by 1,| it shou|
|00003520| 6c 64 20 69 6e 63 72 65 | 61 73 65 20 74 68 65 20 |ld incre|ase the |
|00003530| 63 6f 64 65 20 73 69 7a | 65 0d 0a ff 20 04 72 65 |code siz|e... .re|
|00003540| 61 64 20 66 72 6f 6d 20 | 74 68 65 20 69 6e 70 75 |ad from |the inpu|
|00003550| 74 20 73 74 72 65 61 6d | 20 74 6f 20 74 68 65 20 |t stream| to the |
|00003560| 6e 65 78 74 20 62 69 74 | 20 73 69 7a 65 2e 20 20 |next bit| size. |
|00003570| 4e 6f 0d 0a ff 20 04 62 | 6c 6f 63 6b 69 6e 67 20 |No... .b|locking |
|00003580| 6f 66 20 74 68 65 20 63 | 6f 64 65 73 20 69 73 20 |of the c|odes is |
|00003590| 70 65 72 66 6f 72 6d 65 | 64 2c 20 73 6f 20 74 68 |performe|d, so th|
|000035a0| 65 20 6e 65 78 74 20 63 | 6f 64 65 20 61 74 0d 0a |e next c|ode at..|
|000035b0| ff 20 04 74 68 65 20 69 | 6e 63 72 65 61 73 65 64 |. .the i|ncreased|
|000035c0| 20 73 69 7a 65 20 73 68 | 6f 75 6c 64 20 62 65 20 | size sh|ould be |
|000035d0| 72 65 61 64 20 66 72 6f | 6d 20 74 68 65 20 69 6e |read fro|m the in|
|000035e0| 70 75 74 20 73 74 72 65 | 61 6d 0d 0a ff 20 04 69 |put stre|am... .i|
|000035f0| 6d 6d 65 64 69 61 74 65 | 6c 79 20 61 66 74 65 72 |mmediate|ly after|
|00003600| 20 77 68 65 72 65 20 74 | 68 65 20 70 72 65 76 69 | where t|he previ|
|00003610| 6f 75 73 20 63 6f 64 65 | 20 61 74 20 74 68 65 20 |ous code| at the |
|00003620| 73 6d 61 6c 6c 65 72 0d | 0a ff 20 04 62 69 74 20 |smaller.|.. .bit |
|00003630| 73 69 7a 65 20 77 61 73 | 20 72 65 61 64 2e 20 20 |size was| read. |
|00003640| 41 67 61 69 6e 2c 20 74 | 68 65 20 64 65 63 6f 6d |Again, t|he decom|
|00003650| 70 72 65 73 73 6f 72 20 | 73 68 6f 75 6c 64 20 6e |pressor |should n|
|00003660| 6f 74 0d 0a ff 20 04 69 | 6e 63 72 65 61 73 65 20 |ot... .i|ncrease |
|00003670| 74 68 65 20 63 6f 64 65 | 20 73 69 7a 65 20 75 73 |the code| size us|
|00003680| 65 64 20 75 6e 74 69 6c | 20 74 68 65 20 73 65 71 |ed until| the seq|
|00003690| 75 65 6e 63 65 20 32 35 | 36 2c 31 20 69 73 0d 0a |uence 25|6,1 is..|
|000036a0| ff 20 04 65 6e 63 6f 75 | 6e 74 65 72 65 64 2e 0d |. .encou|ntered..|
|000036b0| 0a 0d 0a 32 29 20 20 57 | 68 65 6e 20 74 68 65 20 |...2) W|hen the |
|000036c0| 74 61 62 6c 65 20 62 65 | 63 6f 6d 65 73 20 66 75 |table be|comes fu|
|000036d0| 6c 6c 2c 20 74 6f 74 61 | 6c 20 63 6c 65 61 72 69 |ll, tota|l cleari|
|000036e0| 6e 67 20 69 73 20 6e 6f | 74 0d 0a ff 20 04 70 65 |ng is no|t... .pe|
|000036f0| 72 66 6f 72 6d 65 64 2e | 20 20 52 61 74 68 65 72 |rformed.| Rather|
|00003700| 2c 20 77 68 65 6e 20 74 | 68 65 20 63 6f 6d 70 72 |, when t|he compr|
|00003710| 65 73 73 65 72 20 65 6d | 69 74 73 20 74 68 65 20 |esser em|its the |
|00003720| 63 6f 64 65 0d 0a ff 20 | 04 73 65 71 75 65 6e 63 |code... |.sequenc|
|00003730| 65 20 32 35 36 2c 32 20 | 28 64 65 63 69 6d 61 6c |e 256,2 |(decimal|
|00003740| 29 2c 20 74 68 65 20 64 | 65 63 6f 6d 70 72 65 73 |), the d|ecompres|
|00003750| 73 6f 72 20 73 68 6f 75 | 6c 64 20 63 6c 65 61 72 |sor shou|ld clear|
|00003760| 0d 0a ff 20 04 61 6c 6c | 20 6c 65 61 66 20 6e 6f |... .all| leaf no|
|00003770| 64 65 73 20 66 72 6f 6d | 20 74 68 65 20 5a 69 76 |des from| the Ziv|
|00003780| 2d 4c 65 6d 70 65 6c 20 | 74 72 65 65 2c 20 61 6e |-Lempel |tree, an|
|00003790| 64 20 63 6f 6e 74 69 6e | 75 65 20 74 6f 0d 0a ff |d contin|ue to...|
|000037a0| 20 04 75 73 65 20 74 68 | 65 20 63 75 72 72 65 6e | .use th|e curren|
|000037b0| 74 20 63 6f 64 65 20 73 | 69 7a 65 2e 20 20 54 68 |t code s|ize. Th|
|000037c0| 65 20 6e 6f 64 65 73 20 | 74 68 61 74 20 61 72 65 |e nodes |that are|
|000037d0| 20 63 6c 65 61 72 65 64 | 0d 0a ff 20 04 66 72 6f | cleared|... .fro|
|000037e0| 6d 20 74 68 65 20 5a 69 | 76 2d 4c 65 6d 70 65 6c |m the Zi|v-Lempel|
|000037f0| 20 74 72 65 65 20 61 72 | 65 20 74 68 65 6e 20 72 | tree ar|e then r|
|00003800| 65 2d 75 73 65 64 2c 20 | 77 69 74 68 20 74 68 65 |e-used, |with the|
|00003810| 20 6c 6f 77 65 73 74 0d | 0a ff 20 04 63 6f 64 65 | lowest.|.. .code|
|00003820| 20 76 61 6c 75 65 20 72 | 65 2d 75 73 65 64 20 66 | value r|e-used f|
|00003830| 69 72 73 74 2c 20 61 6e | 64 20 74 68 65 20 68 69 |irst, an|d the hi|
|00003840| 67 68 65 73 74 20 63 6f | 64 65 20 76 61 6c 75 65 |ghest co|de value|
|00003850| 0d 0a ff 20 04 72 65 2d | 75 73 65 64 20 6c 61 73 |... .re-|used las|
|00003860| 74 2e 20 20 54 68 65 20 | 63 6f 6d 70 72 65 73 73 |t. The |compress|
|00003870| 6f 72 20 63 61 6e 20 65 | 6d 69 74 20 74 68 65 20 |or can e|mit the |
|00003880| 73 65 71 75 65 6e 63 65 | 20 32 35 36 2c 32 0d 0a |sequence| 256,2..|
|00003890| ff 20 04 61 74 20 61 6e | 79 20 74 69 6d 65 2e 0d |. .at an|y time..|
|000038a0| 0a 0d 0a 0d 0a 0c 0d 0a | 45 78 70 61 6e 64 69 6e |........|Expandin|
|000038b0| 67 0d 0a ff 2d 09 0d 0a | 0d 0a 54 68 65 20 52 65 |g...-...|..The Re|
|000038c0| 64 75 63 69 6e 67 20 61 | 6c 67 6f 72 69 74 68 6d |ducing a|lgorithm|
|000038d0| 20 69 73 20 61 63 74 75 | 61 6c 6c 79 20 61 20 63 | is actu|ally a c|
|000038e0| 6f 6d 62 69 6e 61 74 69 | 6f 6e 20 6f 66 20 74 77 |ombinati|on of tw|
|000038f0| 6f 0d 0a 64 69 73 74 69 | 6e 63 74 20 61 6c 67 6f |o..disti|nct algo|
|00003900| 72 69 74 68 6d 73 2e 20 | 20 54 68 65 20 66 69 72 |rithms. | The fir|
|00003910| 73 74 20 61 6c 67 6f 72 | 69 74 68 6d 20 63 6f 6d |st algor|ithm com|
|00003920| 70 72 65 73 73 65 73 20 | 72 65 70 65 61 74 65 64 |presses |repeated|
|00003930| 0d 0a 62 79 74 65 20 73 | 65 71 75 65 6e 63 65 73 |..byte s|equences|
|00003940| 2c 20 61 6e 64 20 74 68 | 65 20 73 65 63 6f 6e 64 |, and th|e second|
|00003950| 20 61 6c 67 6f 72 69 74 | 68 6d 20 74 61 6b 65 73 | algorit|hm takes|
|00003960| 20 74 68 65 20 63 6f 6d | 70 72 65 73 73 65 64 0d | the com|pressed.|
|00003970| 0a 73 74 72 65 61 6d 20 | 66 72 6f 6d 20 74 68 65 |.stream |from the|
|00003980| 20 66 69 72 73 74 20 61 | 6c 67 6f 72 69 74 68 6d | first a|lgorithm|
|00003990| 20 61 6e 64 20 61 70 70 | 6c 69 65 73 20 61 20 70 | and app|lies a p|
|000039a0| 72 6f 62 61 62 69 6c 69 | 73 74 69 63 0d 0a 63 6f |robabili|stic..co|
|000039b0| 6d 70 72 65 73 73 69 6f | 6e 20 6d 65 74 68 6f 64 |mpressio|n method|
|000039c0| 2e 0d 0a 0d 0a 54 68 65 | 20 70 72 6f 62 61 62 69 |.....The| probabi|
|000039d0| 6c 69 73 74 69 63 20 63 | 6f 6d 70 72 65 73 73 69 |listic c|ompressi|
|000039e0| 6f 6e 20 73 74 6f 72 65 | 73 20 61 6e 20 61 72 72 |on store|s an arr|
|000039f0| 61 79 20 6f 66 20 27 66 | 6f 6c 6c 6f 77 65 72 0d |ay of 'f|ollower.|
|00003a00| 0a 73 65 74 73 27 20 53 | 28 6a 29 2c 20 66 6f 72 |.sets' S|(j), for|
|00003a10| 20 6a 3d 30 20 74 6f 20 | 32 35 35 2c 20 63 6f 72 | j=0 to |255, cor|
|00003a20| 72 65 73 70 6f 6e 64 69 | 6e 67 20 74 6f 20 65 61 |respondi|ng to ea|
|00003a30| 63 68 20 70 6f 73 73 69 | 62 6c 65 0d 0a 41 53 43 |ch possi|ble..ASC|
|00003a40| 49 49 20 63 68 61 72 61 | 63 74 65 72 2e 20 20 45 |II chara|cter. E|
|00003a50| 61 63 68 20 73 65 74 20 | 63 6f 6e 74 61 69 6e 73 |ach set |contains|
|00003a60| 20 62 65 74 77 65 65 6e | 20 30 20 61 6e 64 20 33 | between| 0 and 3|
|00003a70| 32 0d 0a 63 68 61 72 61 | 63 74 65 72 73 2c 20 74 |2..chara|cters, t|
|00003a80| 6f 20 62 65 20 64 65 6e | 6f 74 65 64 20 61 73 20 |o be den|oted as |
|00003a90| 53 28 6a 29 5b 30 5d 2c | ff 2e 03 2c 53 28 6a 29 |S(j)[0],|...,S(j)|
|00003aa0| 5b 6d 5d 2c 20 77 68 65 | 72 65 20 6d 3c 33 32 2e |[m], whe|re m<32.|
|00003ab0| 0d 0a 54 68 65 20 73 65 | 74 73 20 61 72 65 20 73 |..The se|ts are s|
|00003ac0| 74 6f 72 65 64 20 61 74 | 20 74 68 65 20 62 65 67 |tored at| the beg|
|00003ad0| 69 6e 6e 69 6e 67 20 6f | 66 20 74 68 65 20 64 61 |inning o|f the da|
|00003ae0| 74 61 20 61 72 65 61 20 | 66 6f 72 20 61 0d 0a 52 |ta area |for a..R|
|00003af0| 65 64 75 63 65 64 20 66 | 69 6c 65 2c 20 69 6e 20 |educed f|ile, in |
|00003b00| 72 65 76 65 72 73 65 20 | 6f 72 64 65 72 2c 20 77 |reverse |order, w|
|00003b10| 69 74 68 20 53 28 32 35 | 35 29 20 66 69 72 73 74 |ith S(25|5) first|
|00003b20| 2c 20 61 6e 64 20 53 28 | 30 29 0d 0a 6c 61 73 74 |, and S(|0)..last|
|00003b30| 2e 0d 0a 0d 0a 54 68 65 | 20 73 65 74 73 20 61 72 |.....The| sets ar|
|00003b40| 65 20 65 6e 63 6f 64 65 | 64 20 61 73 20 7b 20 4e |e encode|d as { N|
|00003b50| 28 6a 29 2c 20 53 28 6a | 29 5b 30 5d 2c ff 2e 03 |(j), S(j|)[0],...|
|00003b60| 2c 53 28 6a 29 5b 4e 28 | 6a 29 2d 31 5d 20 7d 2c |,S(j)[N(|j)-1] },|
|00003b70| 0d 0a 77 68 65 72 65 20 | 4e 28 6a 29 20 69 73 20 |..where |N(j) is |
|00003b80| 74 68 65 20 73 69 7a 65 | 20 6f 66 20 73 65 74 20 |the size| of set |
|00003b90| 53 28 6a 29 2e 20 20 4e | 28 6a 29 20 63 61 6e 20 |S(j). N|(j) can |
|00003ba0| 62 65 20 30 2c 20 69 6e | 20 77 68 69 63 68 0d 0a |be 0, in| which..|
|00003bb0| 63 61 73 65 20 74 68 65 | 20 66 6f 6c 6c 6f 77 65 |case the| followe|
|00003bc0| 72 20 73 65 74 20 66 6f | 72 20 53 28 6a 29 20 69 |r set fo|r S(j) i|
|00003bd0| 73 20 65 6d 70 74 79 2e | 20 20 45 61 63 68 20 4e |s empty.| Each N|
|00003be0| 28 6a 29 20 76 61 6c 75 | 65 20 69 73 0d 0a 65 6e |(j) valu|e is..en|
|00003bf0| 63 6f 64 65 64 20 69 6e | 20 36 20 62 69 74 73 2c |coded in| 6 bits,|
|00003c00| 20 66 6f 6c 6c 6f 77 65 | 64 20 62 79 20 4e 28 6a | followe|d by N(j|
|00003c10| 29 20 65 69 67 68 74 20 | 62 69 74 20 63 68 61 72 |) eight |bit char|
|00003c20| 61 63 74 65 72 20 76 61 | 6c 75 65 73 0d 0a 63 6f |acter va|lues..co|
|00003c30| 72 72 65 73 70 6f 6e 64 | 69 6e 67 20 74 6f 20 53 |rrespond|ing to S|
|00003c40| 28 6a 29 5b 30 5d 20 74 | 6f 20 53 28 6a 29 5b 4e |(j)[0] t|o S(j)[N|
|00003c50| 28 6a 29 2d 31 5d 20 72 | 65 73 70 65 63 74 69 76 |(j)-1] r|espectiv|
|00003c60| 65 6c 79 2e 20 20 49 66 | 0d 0a 4e 28 6a 29 20 69 |ely. If|..N(j) i|
|00003c70| 73 20 30 2c 20 74 68 65 | 6e 20 6e 6f 20 76 61 6c |s 0, the|n no val|
|00003c80| 75 65 73 20 66 6f 72 20 | 53 28 6a 29 20 61 72 65 |ues for |S(j) are|
|00003c90| 20 73 74 6f 72 65 64 2c | 20 61 6e 64 20 74 68 65 | stored,| and the|
|00003ca0| 20 76 61 6c 75 65 0d 0a | 66 6f 72 20 4e 28 6a 2d | value..|for N(j-|
|00003cb0| 31 29 20 69 6d 6d 65 64 | 69 61 74 65 6c 79 20 66 |1) immed|iately f|
|00003cc0| 6f 6c 6c 6f 77 73 2e 0d | 0a 0d 0a 49 6d 6d 65 64 |ollows..|...Immed|
|00003cd0| 69 61 74 65 6c 79 20 61 | 66 74 65 72 20 74 68 65 |iately a|fter the|
|00003ce0| 20 66 6f 6c 6c 6f 77 65 | 72 20 73 65 74 73 2c 20 | followe|r sets, |
|00003cf0| 69 73 20 74 68 65 20 63 | 6f 6d 70 72 65 73 73 65 |is the c|ompresse|
|00003d00| 64 20 64 61 74 61 0d 0a | 73 74 72 65 61 6d 2e 20 |d data..|stream. |
|00003d10| 20 54 68 65 20 63 6f 6d | 70 72 65 73 73 65 64 20 | The com|pressed |
|00003d20| 64 61 74 61 20 73 74 72 | 65 61 6d 20 63 61 6e 20 |data str|eam can |
|00003d30| 62 65 20 69 6e 74 65 72 | 70 72 65 74 65 64 20 66 |be inter|preted f|
|00003d40| 6f 72 20 74 68 65 0d 0a | 70 72 6f 62 61 62 69 6c |or the..|probabil|
|00003d50| 69 73 74 69 63 20 64 65 | 63 6f 6d 70 72 65 73 73 |istic de|compress|
|00003d60| 69 6f 6e 20 61 73 20 66 | 6f 6c 6c 6f 77 73 3a 0d |ion as f|ollows:.|
|00003d70| 0a 0d 0a 0d 0a 6c 65 74 | 20 4c 61 73 74 2d 43 68 |.....let| Last-Ch|
|00003d80| 61 72 61 63 74 65 72 20 | 3c 2d 20 30 2e 0d 0a 6c |aracter |<- 0...l|
|00003d90| 6f 6f 70 20 75 6e 74 69 | 6c 20 64 6f 6e 65 0d 0a |oop unti|l done..|
|00003da0| ff 20 04 69 66 20 74 68 | 65 20 66 6f 6c 6c 6f 77 |. .if th|e follow|
|00003db0| 65 72 20 73 65 74 20 53 | 28 4c 61 73 74 2d 43 68 |er set S|(Last-Ch|
|00003dc0| 61 72 61 63 74 65 72 29 | 20 69 73 20 65 6d 70 74 |aracter)| is empt|
|00003dd0| 79 20 74 68 65 6e 0d 0a | 09 72 65 61 64 20 38 20 |y then..|.read 8 |
|00003de0| 62 69 74 73 20 66 72 6f | 6d 20 74 68 65 20 69 6e |bits fro|m the in|
|00003df0| 70 75 74 20 73 74 72 65 | 61 6d 2c 20 61 6e 64 20 |put stre|am, and |
|00003e00| 63 6f 70 79 20 74 68 69 | 73 0d 0a 09 76 61 6c 75 |copy thi|s...valu|
|00003e10| 65 20 74 6f 20 74 68 65 | 20 6f 75 74 70 75 74 20 |e to the| output |
|00003e20| 73 74 72 65 61 6d 2e 0d | 0a ff 20 04 6f 74 68 65 |stream..|.. .othe|
|00003e30| 72 77 69 73 65 20 69 66 | 20 74 68 65 20 66 6f 6c |rwise if| the fol|
|00003e40| 6c 6f 77 65 72 20 73 65 | 74 20 53 28 4c 61 73 74 |lower se|t S(Last|
|00003e50| 2d 43 68 61 72 61 63 74 | 65 72 29 20 69 73 20 6e |-Charact|er) is n|
|00003e60| 6f 6e 2d 65 6d 70 74 79 | 20 74 68 65 6e 0d 0a 09 |on-empty| then...|
|00003e70| 72 65 61 64 20 31 20 62 | 69 74 20 66 72 6f 6d 20 |read 1 b|it from |
|00003e80| 74 68 65 20 69 6e 70 75 | 74 20 73 74 72 65 61 6d |the inpu|t stream|
|00003e90| 2e 0d 0a 09 69 66 20 74 | 68 69 73 20 62 69 74 20 |....if t|his bit |
|00003ea0| 69 73 20 6e 6f 74 20 7a | 65 72 6f 20 74 68 65 6e |is not z|ero then|
|00003eb0| 0d 0a 09 ff 20 04 72 65 | 61 64 20 38 20 62 69 74 |.... .re|ad 8 bit|
|00003ec0| 73 20 66 72 6f 6d 20 74 | 68 65 20 69 6e 70 75 74 |s from t|he input|
|00003ed0| 20 73 74 72 65 61 6d 2c | 20 61 6e 64 20 63 6f 70 | stream,| and cop|
|00003ee0| 79 20 74 68 69 73 0d 0a | 09 ff 20 04 76 61 6c 75 |y this..|.. .valu|
|00003ef0| 65 20 74 6f 20 74 68 65 | 20 6f 75 74 70 75 74 20 |e to the| output |
|00003f00| 73 74 72 65 61 6d 2e 0d | 0a 09 6f 74 68 65 72 77 |stream..|..otherw|
|00003f10| 69 73 65 20 69 66 20 74 | 68 69 73 20 62 69 74 20 |ise if t|his bit |
|00003f20| 69 73 20 7a 65 72 6f 20 | 74 68 65 6e 0d 0a 09 ff |is zero |then....|
|00003f30| 20 04 72 65 61 64 20 42 | 28 4e 28 4c 61 73 74 2d | .read B|(N(Last-|
|00003f40| 43 68 61 72 61 63 74 65 | 72 29 29 20 62 69 74 73 |Characte|r)) bits|
|00003f50| 20 66 72 6f 6d 20 74 68 | 65 20 69 6e 70 75 74 0d | from th|e input.|
|00003f60| 0a 09 ff 20 04 73 74 72 | 65 61 6d 2c 20 61 6e 64 |... .str|eam, and|
|00003f70| 20 61 73 73 69 67 6e 20 | 74 68 69 73 20 76 61 6c | assign |this val|
|00003f80| 75 65 20 74 6f 20 49 2e | 0d 0a 09 ff 20 04 43 6f |ue to I.|.... .Co|
|00003f90| 70 79 20 74 68 65 20 76 | 61 6c 75 65 20 6f 66 20 |py the v|alue of |
|00003fa0| 53 28 4c 61 73 74 2d 43 | 68 61 72 61 63 74 65 72 |S(Last-C|haracter|
|00003fb0| 29 5b 49 5d 20 74 6f 20 | 74 68 65 0d 0a 09 ff 20 |)[I] to |the.... |
|00003fc0| 04 6f 75 74 70 75 74 20 | 73 74 72 65 61 6d 2e 0d |.output |stream..|
|00003fd0| 0a 09 0d 0a ff 20 04 61 | 73 73 69 67 6e 20 74 68 |..... .a|ssign th|
|00003fe0| 65 20 6c 61 73 74 20 76 | 61 6c 75 65 20 70 6c 61 |e last v|alue pla|
|00003ff0| 63 65 64 20 6f 6e 20 74 | 68 65 20 6f 75 74 70 75 |ced on t|he outpu|
|00004000| 74 20 73 74 72 65 61 6d | 20 74 6f 0d 0a ff 20 04 |t stream| to... .|
|00004010| 4c 61 73 74 2d 43 68 61 | 72 61 63 74 65 72 2e 0d |Last-Cha|racter..|
|00004020| 0a 65 6e 64 20 6c 6f 6f | 70 0d 0a 0d 0a 0d 0a 42 |.end loo|p......B|
|00004030| 28 4e 28 6a 29 29 20 69 | 73 20 64 65 66 69 6e 65 |(N(j)) i|s define|
|00004040| 64 20 61 73 20 74 68 65 | 20 6d 69 6e 69 6d 61 6c |d as the| minimal|
|00004050| 20 6e 75 6d 62 65 72 20 | 6f 66 20 62 69 74 73 20 | number |of bits |
|00004060| 72 65 71 75 69 72 65 64 | 20 74 6f 0d 0a 65 6e 63 |required| to..enc|
|00004070| 6f 64 65 20 74 68 65 20 | 76 61 6c 75 65 20 4e 28 |ode the |value N(|
|00004080| 6a 29 2d 31 2e 0d 0a 0d | 0a 0d 0a 54 68 65 20 64 |j)-1....|...The d|
|00004090| 65 63 6f 6d 70 72 65 73 | 73 65 64 20 73 74 72 65 |ecompres|sed stre|
|000040a0| 61 6d 20 66 72 6f 6d 20 | 61 62 6f 76 65 20 63 61 |am from |above ca|
|000040b0| 6e 20 74 68 65 6e 20 62 | 65 20 65 78 70 61 6e 64 |n then b|e expand|
|000040c0| 65 64 20 74 6f 0d 0a 72 | 65 2d 63 72 65 61 74 65 |ed to..r|e-create|
|000040d0| 20 74 68 65 20 6f 72 69 | 67 69 6e 61 6c 20 66 69 | the ori|ginal fi|
|000040e0| 6c 65 20 61 73 20 66 6f | 6c 6c 6f 77 73 3a 0d 0a |le as fo|llows:..|
|000040f0| 0d 0a 0d 0a 6c 65 74 20 | 53 74 61 74 65 20 3c 2d |....let |State <-|
|00004100| 20 30 2e 0d 0a 0d 0a 6c | 6f 6f 70 20 75 6e 74 69 | 0.....l|oop unti|
|00004110| 6c 20 64 6f 6e 65 0d 0a | ff 20 04 72 65 61 64 20 |l done..|. .read |
|00004120| 38 20 62 69 74 73 20 66 | 72 6f 6d 20 74 68 65 20 |8 bits f|rom the |
|00004130| 69 6e 70 75 74 20 73 74 | 72 65 61 6d 20 69 6e 74 |input st|ream int|
|00004140| 6f 20 43 2e 0d 0a ff 20 | 04 63 61 73 65 20 53 74 |o C.... |.case St|
|00004150| 61 74 65 20 6f 66 0d 0a | 09 30 3a 20 20 69 66 20 |ate of..|.0: if |
|00004160| 43 20 69 73 20 6e 6f 74 | 20 65 71 75 61 6c 20 74 |C is not| equal t|
|00004170| 6f 20 44 4c 45 20 28 31 | 34 34 20 64 65 63 69 6d |o DLE (1|44 decim|
|00004180| 61 6c 29 20 74 68 65 6e | 0d 0a 09 09 63 6f 70 79 |al) then|....copy|
|00004190| 20 43 20 74 6f 20 74 68 | 65 20 6f 75 74 70 75 74 | C to th|e output|
|000041a0| 20 73 74 72 65 61 6d 2e | 0d 0a 09 ff 20 04 6f 74 | stream.|.... .ot|
|000041b0| 68 65 72 77 69 73 65 20 | 69 66 20 43 20 69 73 20 |herwise |if C is |
|000041c0| 65 71 75 61 6c 20 74 6f | 20 44 4c 45 20 74 68 65 |equal to| DLE the|
|000041d0| 6e 0d 0a 09 09 6c 65 74 | 20 53 74 61 74 65 20 3c |n....let| State <|
|000041e0| 2d 20 31 2e 0d 0a 0d 0a | 09 31 3a 20 20 69 66 20 |- 1.....|.1: if |
|000041f0| 43 20 69 73 20 6e 6f 6e | 2d 7a 65 72 6f 20 74 68 |C is non|-zero th|
|00004200| 65 6e 0d 0a 09 09 6c 65 | 74 20 56 20 3c 2d 20 43 |en....le|t V <- C|
|00004210| 2e 0d 0a 09 09 6c 65 74 | 20 4c 65 6e 20 3c 2d 20 |.....let| Len <- |
|00004220| 4c 28 56 29 0d 0a 09 09 | 6c 65 74 20 53 74 61 74 |L(V)....|let Stat|
|00004230| 65 20 3c 2d 20 46 28 4c | 65 6e 29 2e 0d 0a 09 ff |e <- F(L|en).....|
|00004240| 20 04 6f 74 68 65 72 77 | 69 73 65 20 69 66 20 43 | .otherw|ise if C|
|00004250| 20 69 73 20 7a 65 72 6f | 20 74 68 65 6e 0d 0a 09 | is zero| then...|
|00004260| 09 63 6f 70 79 20 74 68 | 65 20 76 61 6c 75 65 20 |.copy th|e value |
|00004270| 31 34 34 20 28 64 65 63 | 69 6d 61 6c 29 20 74 6f |144 (dec|imal) to|
|00004280| 20 74 68 65 20 6f 75 74 | 70 75 74 20 73 74 72 65 | the out|put stre|
|00004290| 61 6d 2e 0d 0a 09 09 6c | 65 74 20 53 74 61 74 65 |am.....l|et State|
|000042a0| 20 3c 2d 20 30 0d 0a 0d | 0a 09 32 3a 20 20 6c 65 | <- 0...|..2: le|
|000042b0| 74 20 4c 65 6e 20 3c 2d | 20 4c 65 6e 20 2b 20 43 |t Len <-| Len + C|
|000042c0| 0d 0a 09 ff 20 04 6c 65 | 74 20 53 74 61 74 65 20 |.... .le|t State |
|000042d0| 3c 2d 20 33 2e 0d 0a 0d | 0a 09 33 3a 20 20 6d 6f |<- 3....|..3: mo|
|000042e0| 76 65 20 62 61 63 6b 77 | 61 72 64 73 20 44 28 56 |ve backw|ards D(V|
|000042f0| 2c 43 29 20 62 79 74 65 | 73 20 69 6e 20 74 68 65 |,C) byte|s in the|
|00004300| 20 6f 75 74 70 75 74 20 | 73 74 72 65 61 6d 0d 0a | output |stream..|
|00004310| 09 ff 20 04 28 69 66 20 | 74 68 69 73 20 70 6f 73 |.. .(if |this pos|
|00004320| 69 74 69 6f 6e 20 69 73 | 20 62 65 66 6f 72 65 20 |ition is| before |
|00004330| 74 68 65 20 73 74 61 72 | 74 20 6f 66 20 74 68 65 |the star|t of the|
|00004340| 20 6f 75 74 70 75 74 0d | 0a 09 ff 20 04 73 74 72 | output.|... .str|
|00004350| 65 61 6d 2c 20 74 68 65 | 6e 20 61 73 73 75 6d 65 |eam, the|n assume|
|00004360| 20 74 68 61 74 20 61 6c | 6c 20 74 68 65 20 64 61 | that al|l the da|
|00004370| 74 61 20 62 65 66 6f 72 | 65 20 74 68 65 0d 0a 09 |ta befor|e the...|
|00004380| ff 20 04 73 74 61 72 74 | 20 6f 66 20 74 68 65 20 |. .start| of the |
|00004390| 6f 75 74 70 75 74 20 73 | 74 72 65 61 6d 20 69 73 |output s|tream is|
|000043a0| 20 66 69 6c 6c 65 64 20 | 77 69 74 68 20 7a 65 72 | filled |with zer|
|000043b0| 6f 73 29 2e 0d 0a 09 ff | 20 04 63 6f 70 79 20 4c |os).....| .copy L|
|000043c0| 65 6e 2b 33 20 62 79 74 | 65 73 20 66 72 6f 6d 20 |en+3 byt|es from |
|000043d0| 74 68 69 73 20 70 6f 73 | 69 74 69 6f 6e 20 74 6f |this pos|ition to|
|000043e0| 20 74 68 65 20 6f 75 74 | 70 75 74 20 73 74 72 65 | the out|put stre|
|000043f0| 61 6d 2e 0d 0a 09 ff 20 | 04 6c 65 74 20 53 74 61 |am..... |.let Sta|
|00004400| 74 65 20 3c 2d 20 30 2e | 0d 0a ff 20 04 65 6e 64 |te <- 0.|... .end|
|00004410| 20 63 61 73 65 0d 0a 65 | 6e 64 20 6c 6f 6f 70 0d | case..e|nd loop.|
|00004420| 0a 0d 0a 0d 0a 54 68 65 | 20 66 75 6e 63 74 69 6f |.....The| functio|
|00004430| 6e 73 20 46 2c 4c 2c 20 | 61 6e 64 20 44 20 61 72 |ns F,L, |and D ar|
|00004440| 65 20 64 65 70 65 6e 64 | 65 6e 74 20 6f 6e 20 74 |e depend|ent on t|
|00004450| 68 65 20 27 63 6f 6d 70 | 72 65 73 73 69 6f 6e 0d |he 'comp|ression.|
|00004460| 0a 66 61 63 74 6f 72 27 | 2c 20 31 20 74 68 72 6f |.factor'|, 1 thro|
|00004470| 75 67 68 20 34 2c 20 61 | 6e 64 20 61 72 65 20 64 |ugh 4, a|nd are d|
|00004480| 65 66 69 6e 65 64 20 61 | 73 20 66 6f 6c 6c 6f 77 |efined a|s follow|
|00004490| 73 3a 0d 0a 0d 0a 46 6f | 72 20 63 6f 6d 70 72 65 |s:....Fo|r compre|
|000044a0| 73 73 69 6f 6e 20 66 61 | 63 74 6f 72 20 31 3a 0d |ssion fa|ctor 1:.|
|000044b0| 0a ff 20 04 4c 28 58 29 | 20 65 71 75 61 6c 73 20 |.. .L(X)| equals |
|000044c0| 74 68 65 20 6c 6f 77 65 | 72 20 37 20 62 69 74 73 |the lowe|r 7 bits|
|000044d0| 20 6f 66 20 58 2e 0d 0a | ff 20 04 46 28 58 29 20 | of X...|. .F(X) |
|000044e0| 65 71 75 61 6c 73 20 32 | 20 69 66 20 58 20 65 71 |equals 2| if X eq|
|000044f0| 75 61 6c 73 20 31 32 37 | 20 6f 74 68 65 72 77 69 |uals 127| otherwi|
|00004500| 73 65 20 46 28 58 29 20 | 65 71 75 61 6c 73 20 33 |se F(X) |equals 3|
|00004510| 2e 0d 0a ff 20 04 44 28 | 58 2c 59 29 20 65 71 75 |.... .D(|X,Y) equ|
|00004520| 61 6c 73 20 74 68 65 20 | 28 75 70 70 65 72 20 31 |als the |(upper 1|
|00004530| 20 62 69 74 20 6f 66 20 | 58 29 20 2a 20 32 35 36 | bit of |X) * 256|
|00004540| 20 2b 20 59 20 2b 20 31 | 2e 0d 0a 46 6f 72 20 63 | + Y + 1|...For c|
|00004550| 6f 6d 70 72 65 73 73 69 | 6f 6e 20 66 61 63 74 6f |ompressi|on facto|
|00004560| 72 20 32 3a 0d 0a ff 20 | 04 4c 28 58 29 20 65 71 |r 2:... |.L(X) eq|
|00004570| 75 61 6c 73 20 74 68 65 | 20 6c 6f 77 65 72 20 36 |uals the| lower 6|
|00004580| 20 62 69 74 73 20 6f 66 | 20 58 2e 0d 0a ff 20 04 | bits of| X.... .|
|00004590| 46 28 58 29 20 65 71 75 | 61 6c 73 20 32 20 69 66 |F(X) equ|als 2 if|
|000045a0| 20 58 20 65 71 75 61 6c | 73 20 36 33 20 6f 74 68 | X equal|s 63 oth|
|000045b0| 65 72 77 69 73 65 20 46 | 28 58 29 20 65 71 75 61 |erwise F|(X) equa|
|000045c0| 6c 73 20 33 2e 0d 0a ff | 20 04 44 28 58 2c 59 29 |ls 3....| .D(X,Y)|
|000045d0| 20 65 71 75 61 6c 73 20 | 74 68 65 20 28 75 70 70 | equals |the (upp|
|000045e0| 65 72 20 32 20 62 69 74 | 73 20 6f 66 20 58 29 20 |er 2 bit|s of X) |
|000045f0| 2a 20 32 35 36 20 2b 20 | 59 20 2b 20 31 2e 0d 0a |* 256 + |Y + 1...|
|00004600| 46 6f 72 20 63 6f 6d 70 | 72 65 73 73 69 6f 6e 20 |For comp|ression |
|00004610| 66 61 63 74 6f 72 20 33 | 3a 0d 0a ff 20 04 4c 28 |factor 3|:... .L(|
|00004620| 58 29 20 65 71 75 61 6c | 73 20 74 68 65 20 6c 6f |X) equal|s the lo|
|00004630| 77 65 72 20 35 20 62 69 | 74 73 20 6f 66 20 58 2e |wer 5 bi|ts of X.|
|00004640| 0d 0a ff 20 04 46 28 58 | 29 20 65 71 75 61 6c 73 |... .F(X|) equals|
|00004650| 20 32 20 69 66 20 58 20 | 65 71 75 61 6c 73 20 33 | 2 if X |equals 3|
|00004660| 31 20 6f 74 68 65 72 77 | 69 73 65 20 46 28 58 29 |1 otherw|ise F(X)|
|00004670| 20 65 71 75 61 6c 73 20 | 33 2e 0d 0a ff 20 04 44 | equals |3.... .D|
|00004680| 28 58 2c 59 29 20 65 71 | 75 61 6c 73 20 74 68 65 |(X,Y) eq|uals the|
|00004690| 20 28 75 70 70 65 72 20 | 33 20 62 69 74 73 20 6f | (upper |3 bits o|
|000046a0| 66 20 58 29 20 2a 20 32 | 35 36 20 2b 20 59 20 2b |f X) * 2|56 + Y +|
|000046b0| 20 31 2e 0d 0a 46 6f 72 | 20 63 6f 6d 70 72 65 73 | 1...For| compres|
|000046c0| 73 69 6f 6e 20 66 61 63 | 74 6f 72 20 34 3a 0d 0a |sion fac|tor 4:..|
|000046d0| ff 20 04 4c 28 58 29 20 | 65 71 75 61 6c 73 20 74 |. .L(X) |equals t|
|000046e0| 68 65 20 6c 6f 77 65 72 | 20 34 20 62 69 74 73 20 |he lower| 4 bits |
|000046f0| 6f 66 20 58 2e 0d 0a ff | 20 04 46 28 58 29 20 65 |of X....| .F(X) e|
|00004700| 71 75 61 6c 73 20 32 20 | 69 66 20 58 20 65 71 75 |quals 2 |if X equ|
|00004710| 61 6c 73 20 31 35 20 6f | 74 68 65 72 77 69 73 65 |als 15 o|therwise|
|00004720| 20 46 28 58 29 20 65 71 | 75 61 6c 73 20 33 2e 0d | F(X) eq|uals 3..|
|00004730| 0a ff 20 04 44 28 58 2c | 59 29 20 65 71 75 61 6c |.. .D(X,|Y) equal|
|00004740| 73 20 74 68 65 20 28 75 | 70 70 65 72 20 34 20 62 |s the (u|pper 4 b|
|00004750| 69 74 73 20 6f 66 20 58 | 29 20 2a 20 32 35 36 20 |its of X|) * 256 |
|00004760| 2b 20 59 20 2b 20 31 2e | 0d 0a 0d 0a 0c 0d 0a 49 |+ Y + 1.|.......I|
|00004770| 6d 70 6c 6f 64 69 6e 67 | 0d 0a ff 2d 09 0d 0a 0d |mploding|...-....|
|00004780| 0a 54 68 65 20 49 6d 70 | 6c 6f 64 69 6e 67 20 61 |.The Imp|loding a|
|00004790| 6c 67 6f 72 69 74 68 6d | 20 69 73 20 61 63 74 75 |lgorithm| is actu|
|000047a0| 61 6c 6c 79 20 61 20 63 | 6f 6d 62 69 6e 61 74 69 |ally a c|ombinati|
|000047b0| 6f 6e 20 6f 66 20 74 77 | 6f 20 64 69 73 74 69 6e |on of tw|o distin|
|000047c0| 63 74 0d 0a 61 6c 67 6f | 72 69 74 68 6d 73 2e 20 |ct..algo|rithms. |
|000047d0| 20 54 68 65 20 66 69 72 | 73 74 20 61 6c 67 6f 72 | The fir|st algor|
|000047e0| 69 74 68 6d 20 63 6f 6d | 70 72 65 73 73 65 73 20 |ithm com|presses |
|000047f0| 72 65 70 65 61 74 65 64 | 20 62 79 74 83 1c ff 65 |repeated| byt...e|
|00004800| 0d 0a 73 65 71 75 65 6e | 63 65 73 20 75 73 69 6e |..sequen|ces usin|
|00004810| 67 20 61 20 73 6c 69 64 | 69 6e 67 20 64 69 63 74 |g a slid|ing dict|
|00004820| 69 6f 6e 61 72 79 2e 20 | 20 54 68 65 20 73 65 63 |ionary. | The sec|
|00004830| 6f 6e 64 20 61 6c 67 6f | 72 69 74 68 6d 20 69 73 |ond algo|rithm is|
|00004840| 0d 0a 75 73 65 64 20 74 | 6f 20 63 6f 6d 70 72 65 |..used t|o compre|
|00004850| 73 73 20 74 68 65 20 65 | 6e 63 6f 64 69 6e 67 20 |ss the e|ncoding |
|00004860| 6f 66 20 74 68 65 20 73 | 6c 69 64 69 6e 67 20 64 |of the s|liding d|
|00004870| 69 63 74 69 6f 6e 61 72 | 79 20 6f 75 70 75 74 2c |ictionar|y ouput,|
|00004880| 0d 0a 75 73 69 6e 67 20 | 6d 75 6c 74 69 70 6c 65 |..using |multiple|
|00004890| 20 53 68 61 6e 6e 6f 6e | 2d 46 61 6e 6f 20 74 72 | Shannon|-Fano tr|
|000048a0| 65 65 73 2e 0d 0a 0d 0a | 54 68 65 20 49 6d 70 6c |ees.....|The Impl|
|000048b0| 6f 64 69 6e 67 20 61 6c | 67 6f 72 69 74 68 6d 20 |oding al|gorithm |
|000048c0| 63 61 6e 20 75 73 65 20 | 61 20 34 4b 20 6f 72 20 |can use |a 4K or |
|000048d0| 38 4b 20 73 6c 69 64 69 | 6e 67 20 64 69 63 74 69 |8K slidi|ng dicti|
|000048e0| 6f 6e 61 72 79 0d 0a 73 | 69 7a 65 2e 20 54 68 65 |onary..s|ize. The|
|000048f0| 20 64 69 63 74 69 6f 6e | 61 72 79 20 73 69 7a 65 | diction|ary size|
|00004900| 20 75 73 65 64 20 63 61 | 6e 20 62 65 20 64 65 74 | used ca|n be det|
|00004910| 65 72 6d 69 6e 65 64 20 | 62 79 20 62 69 74 20 31 |ermined |by bit 1|
|00004920| 20 69 6e 20 74 68 65 0d | 0a 67 65 6e 65 72 61 6c | in the.|.general|
|00004930| 20 70 75 72 70 6f 73 65 | 20 66 6c 61 67 20 77 6f | purpose| flag wo|
|00004940| 72 64 2c 20 61 20 30 20 | 62 69 74 20 69 6e 64 69 |rd, a 0 |bit indi|
|00004950| 63 61 74 65 73 20 61 20 | 34 4b 20 64 69 63 74 69 |cates a |4K dicti|
|00004960| 6f 6e 61 72 79 0d 0a 77 | 68 69 6c 65 20 61 20 31 |onary..w|hile a 1|
|00004970| 20 62 69 74 20 69 6e 64 | 69 63 61 74 65 73 20 61 | bit ind|icates a|
|00004980| 6e 20 38 4b 20 64 69 63 | 74 69 6f 6e 61 72 79 2e |n 8K dic|tionary.|
|00004990| 0d 0a 0d 0a 54 68 65 20 | 53 68 61 6e 6e 6f 6e 2d |....The |Shannon-|
|000049a0| 46 61 6e 6f 20 74 72 65 | 65 73 20 61 72 65 20 73 |Fano tre|es are s|
|000049b0| 74 6f 72 65 64 20 61 74 | 20 74 68 65 20 73 74 61 |tored at| the sta|
|000049c0| 72 74 20 6f 66 20 74 68 | 65 20 63 6f 6d 70 72 65 |rt of th|e compre|
|000049d0| 73 73 65 64 0d 0a 66 69 | 6c 65 2e 20 54 68 65 20 |ssed..fi|le. The |
|000049e0| 6e 75 6d 62 65 72 20 6f | 66 20 74 72 65 65 73 20 |number o|f trees |
|000049f0| 73 74 6f 72 65 64 20 69 | 73 20 64 65 66 69 6e 65 |stored i|s define|
|00004a00| 64 20 62 79 20 62 69 74 | 20 32 20 69 6e 20 74 68 |d by bit| 2 in th|
|00004a10| 65 0d 0a 67 65 6e 65 72 | 61 6c 20 70 75 72 70 6f |e..gener|al purpo|
|00004a20| 73 65 20 66 6c 61 67 20 | 77 6f 72 64 2c 20 61 20 |se flag |word, a |
|00004a30| 30 20 62 69 74 20 69 6e | 64 69 63 61 74 65 73 20 |0 bit in|dicates |
|00004a40| 74 77 6f 20 74 72 65 65 | 73 20 73 74 6f 72 65 64 |two tree|s stored|
|00004a50| 2c 20 61 0d 0a 31 20 62 | 69 74 20 69 6e 64 69 63 |, a..1 b|it indic|
|00004a60| 61 74 65 73 20 74 68 72 | 65 65 20 74 72 65 65 73 |ates thr|ee trees|
|00004a70| 20 61 72 65 20 73 74 6f | 72 65 64 2e 20 20 49 66 | are sto|red. If|
|00004a80| 20 33 20 74 72 65 65 73 | 20 61 72 65 20 73 74 6f | 3 trees| are sto|
|00004a90| 72 65 64 2c 0d 0a 74 68 | 65 20 66 69 72 73 74 20 |red,..th|e first |
|00004aa0| 53 68 61 6e 6e 6f 6e 2d | 46 61 6e 6f 20 74 72 65 |Shannon-|Fano tre|
|00004ab0| 65 20 72 65 70 72 65 73 | 65 6e 74 73 20 74 68 65 |e repres|ents the|
|00004ac0| 20 65 6e 63 6f 64 69 6e | 67 20 6f 66 20 74 68 65 | encodin|g of the|
|00004ad0| 0d 0a 4c 69 74 65 72 61 | 6c 20 63 68 61 72 61 63 |..Litera|l charac|
|00004ae0| 74 65 72 73 2c 20 74 68 | 65 20 73 65 63 6f 6e 64 |ters, th|e second|
|00004af0| 20 74 72 65 65 20 72 65 | 70 72 65 73 65 6e 74 73 | tree re|presents|
|00004b00| 20 74 68 65 20 65 6e 63 | 6f 64 69 6e 67 20 6f 66 | the enc|oding of|
|00004b10| 0d 0a 74 68 65 20 4c 65 | 6e 67 74 68 20 69 6e 66 |..the Le|ngth inf|
|00004b20| 6f 72 6d 61 74 69 6f 6e | 2c 20 74 68 65 20 74 68 |ormation|, the th|
|00004b30| 69 72 64 20 72 65 70 72 | 65 73 65 6e 74 73 20 74 |ird repr|esents t|
|00004b40| 68 65 20 65 6e 63 6f 64 | 69 6e 67 20 6f 66 20 74 |he encod|ing of t|
|00004b50| 68 65 0d 0a 44 69 73 74 | 61 6e 63 65 20 69 6e 66 |he..Dist|ance inf|
|00004b60| 6f 72 6d 61 74 69 6f 6e | 2e 20 20 57 68 65 6e 20 |ormation|. When |
|00004b70| 32 20 53 68 61 6e 6e 6f | 6e 2d 46 61 6e 6f 20 74 |2 Shanno|n-Fano t|
|00004b80| 72 65 65 73 20 61 72 65 | 20 73 74 6f 72 65 64 2c |rees are| stored,|
|00004b90| 20 74 68 65 0d 0a 4c 65 | 6e 67 74 68 20 74 72 65 | the..Le|ngth tre|
|00004ba0| 65 20 69 73 20 73 74 6f | 72 65 64 20 66 69 72 73 |e is sto|red firs|
|00004bb0| 74 2c 20 66 6f 6c 6c 6f | 77 65 64 20 62 79 20 74 |t, follo|wed by t|
|00004bc0| 68 65 20 44 69 73 74 61 | 6e 63 65 20 74 72 65 65 |he Dista|nce tree|
|00004bd0| 2e 0d 0a 0d 0a 54 68 65 | 20 4c 69 74 65 72 61 6c |.....The| Literal|
|00004be0| 20 53 68 61 6e 6e 6f 6e | 2d 46 61 6e 6f 20 74 72 | Shannon|-Fano tr|
|00004bf0| 65 65 2c 20 69 66 20 70 | 72 65 73 65 6e 74 20 69 |ee, if p|resent i|
|00004c00| 73 20 75 73 65 64 20 74 | 6f 20 72 65 70 72 65 73 |s used t|o repres|
|00004c10| 65 6e 74 0d 0a 74 68 65 | 20 65 6e 74 69 72 65 20 |ent..the| entire |
|00004c20| 41 53 43 49 49 20 63 68 | 61 72 61 63 74 65 72 20 |ASCII ch|aracter |
|00004c30| 73 65 74 2c 20 61 6e 64 | 20 63 6f 6e 74 61 69 6e |set, and| contain|
|00004c40| 73 20 32 35 36 20 76 61 | 6c 75 65 73 2e 20 20 54 |s 256 va|lues. T|
|00004c50| 68 69 73 0d 0a 74 72 65 | 65 20 69 73 20 75 73 65 |his..tre|e is use|
|00004c60| 64 20 74 6f 20 63 6f 6d | 70 72 65 73 73 20 61 6e |d to com|press an|
|00004c70| 79 20 64 61 74 61 20 6e | 6f 74 20 63 6f 6d 70 72 |y data n|ot compr|
|00004c80| 65 73 73 65 64 20 62 79 | 20 74 68 65 20 73 6c 69 |essed by| the sli|
|00004c90| 64 69 6e 67 0d 0a 64 69 | 63 74 69 6f 6e 61 72 79 |ding..di|ctionary|
|00004ca0| 20 61 6c 67 6f 72 69 74 | 68 6d 2e 20 20 57 68 65 | algorit|hm. Whe|
|00004cb0| 6e 20 74 68 69 73 20 74 | 72 65 65 20 69 73 20 70 |n this t|ree is p|
|00004cc0| 72 65 73 65 6e 74 2c 20 | 74 68 65 20 4d 69 6e 69 |resent, |the Mini|
|00004cd0| 6d 75 6d 0d 0a 4d 61 74 | 63 68 20 4c 65 6e 67 74 |mum..Mat|ch Lengt|
|00004ce0| 68 20 66 6f 72 20 74 68 | 65 20 73 6c 69 64 69 6e |h for th|e slidin|
|00004cf0| 67 20 64 69 63 74 69 6f | 6e 61 72 79 20 69 73 20 |g dictio|nary is |
|00004d00| 33 2e 20 20 49 66 20 74 | 68 69 73 20 74 72 65 65 |3. If t|his tree|
|00004d10| 20 69 73 0d 0a 6e 6f 74 | 20 70 72 65 73 65 6e 74 | is..not| present|
|00004d20| 2c 20 74 68 65 20 4d 69 | 6e 69 6d 75 6d 20 4d 61 |, the Mi|nimum Ma|
|00004d30| 74 63 68 20 4c 65 6e 67 | 74 68 20 69 73 20 32 2e |tch Leng|th is 2.|
|00004d40| 0d 0a 0d 0a 54 68 65 20 | 4c 65 6e 67 74 68 20 53 |....The |Length S|
|00004d50| 68 61 6e 6e 6f 6e 2d 46 | 61 6e 6f 20 74 72 65 65 |hannon-F|ano tree|
|00004d60| 20 69 73 20 75 73 65 64 | 20 74 6f 20 63 6f 6d 70 | is used| to comp|
|00004d70| 72 65 73 73 20 74 68 65 | 20 4c 65 6e 67 74 68 20 |ress the| Length |
|00004d80| 70 61 72 74 0d 0a 6f 66 | 20 74 68 65 20 28 6c 65 |part..of| the (le|
|00004d90| 6e 67 74 68 2c 64 69 73 | 74 61 6e 63 65 29 20 70 |ngth,dis|tance) p|
|00004da0| 61 69 72 73 20 66 72 6f | 6d 20 74 68 65 20 73 6c |airs fro|m the sl|
|00004db0| 69 64 69 6e 67 20 64 69 | 63 74 69 6f 6e 61 72 79 |iding di|ctionary|
|00004dc0| 0d 0a 6f 75 74 70 75 74 | 2e 20 54 68 65 20 4c 65 |..output|. The Le|
|00004dd0| 6e 67 74 68 20 74 72 65 | 65 20 63 6f 6e 74 61 69 |ngth tre|e contai|
|00004de0| 6e 73 20 36 34 20 76 61 | 6c 75 65 73 2c 20 72 61 |ns 64 va|lues, ra|
|00004df0| 6e 67 69 6e 67 20 66 72 | 6f 6d 20 74 68 65 0d 0a |nging fr|om the..|
|00004e00| 4d 69 6e 69 6d 75 6d 20 | 4d 61 74 63 68 20 4c 65 |Minimum |Match Le|
|00004e10| 6e 67 74 68 2c 20 74 6f | 20 36 33 20 70 6c 75 73 |ngth, to| 63 plus|
|00004e20| 20 74 68 65 20 4d 69 6e | 69 6d 75 6d 20 4d 61 74 | the Min|imum Mat|
|00004e30| 63 68 20 4c 65 6e 67 74 | 68 2e 0d 0a 0d 0a 54 68 |ch Lengt|h.....Th|
|00004e40| 65 20 44 69 73 74 61 6e | 63 65 20 53 68 61 6e 6e |e Distan|ce Shann|
|00004e50| 6f 6e 2d 46 61 6e 6f 20 | 74 72 65 65 20 69 73 20 |on-Fano |tree is |
|00004e60| 75 73 65 64 20 74 6f 20 | 63 6f 6d 70 72 65 73 73 |used to |compress|
|00004e70| 20 74 68 65 20 44 69 73 | 74 61 6e 63 65 0d 0a 70 | the Dis|tance..p|
|00004e80| 61 72 74 20 6f 66 20 74 | 68 65 20 28 6c 65 6e 67 |art of t|he (leng|
|00004e90| 74 68 2c 64 69 73 74 61 | 6e 63 65 29 20 70 61 69 |th,dista|nce) pai|
|00004ea0| 72 73 20 66 72 6f 6d 20 | 74 68 65 20 73 6c 69 64 |rs from |the slid|
|00004eb0| 69 6e 67 20 64 69 63 74 | 69 6f 6e 61 72 79 0d 0a |ing dict|ionary..|
|00004ec0| 6f 75 74 70 75 74 2e 20 | 54 68 65 20 44 69 73 74 |output. |The Dist|
|00004ed0| 61 6e 63 65 20 74 72 65 | 65 20 63 6f 6e 74 61 69 |ance tre|e contai|
|00004ee0| 6e 73 20 36 34 20 76 61 | 6c 75 65 73 2c 20 72 61 |ns 64 va|lues, ra|
|00004ef0| 6e 67 69 6e 67 20 66 72 | 6f 6d 20 30 20 74 6f 0d |nging fr|om 0 to.|
|00004f00| 0a 36 33 2c 20 72 65 70 | 72 65 73 65 6e 74 69 6e |.63, rep|resentin|
|00004f10| 67 20 74 68 65 20 75 70 | 70 65 72 20 36 20 62 69 |g the up|per 6 bi|
|00004f20| 74 73 20 6f 66 20 74 68 | 65 20 64 69 73 74 61 6e |ts of th|e distan|
|00004f30| 63 65 20 76 61 6c 75 65 | 2e 20 20 54 68 65 0d 0a |ce value|. The..|
|00004f40| 64 69 73 74 61 6e 63 65 | 20 76 61 6c 75 65 73 20 |distance| values |
|00004f50| 74 68 65 6d 73 65 6c 76 | 65 73 20 77 69 6c 6c 20 |themselv|es will |
|00004f60| 62 65 20 62 65 74 77 65 | 65 6e 20 30 20 61 6e 64 |be betwe|en 0 and|
|00004f70| 20 74 68 65 20 73 6c 69 | 64 69 6e 67 0d 0a 64 69 | the sli|ding..di|
|00004f80| 63 74 69 6f 6e 61 72 79 | 20 73 69 7a 65 2c 20 65 |ctionary| size, e|
|00004f90| 69 74 68 65 72 20 34 4b | 20 6f 72 20 38 4b 2e 0d |ither 4K| or 8K..|
|00004fa0| 0a 0d 0a 54 68 65 20 53 | 68 61 6e 6e 6f 6e 2d 46 |...The S|hannon-F|
|00004fb0| 61 6e 6f 20 74 72 65 65 | 73 20 74 68 65 6d 73 65 |ano tree|s themse|
|00004fc0| 6c 76 65 73 20 61 72 65 | 20 73 74 6f 72 65 64 20 |lves are| stored |
|00004fd0| 69 6e 20 61 20 63 6f 6d | 70 72 65 73 73 65 64 0d |in a com|pressed.|
|00004fe0| 0a 66 6f 72 6d 61 74 2e | 20 54 68 65 20 66 69 72 |.format.| The fir|
|00004ff0| 73 74 20 62 79 74 65 20 | 6f 66 20 74 68 65 20 74 |st byte |of the t|
|00005000| 72 65 65 20 64 61 74 61 | 20 72 65 70 72 65 73 65 |ree data| represe|
|00005010| 6e 74 73 20 74 68 65 20 | 6e 75 6d 62 65 72 20 6f |nts the |number o|
|00005020| 66 0d 0a 62 79 74 65 73 | 20 6f 66 20 64 61 74 61 |f..bytes| of data|
|00005030| 20 72 65 70 72 65 73 65 | 6e 74 69 6e 67 20 74 68 | represe|nting th|
|00005040| 65 20 28 63 6f 6d 70 72 | 65 73 73 65 64 29 20 53 |e (compr|essed) S|
|00005050| 68 61 6e 6e 6f 6e 2d 46 | 61 6e 6f 20 74 72 65 65 |hannon-F|ano tree|
|00005060| 0d 0a 6d 69 6e 75 73 20 | 31 2e 20 20 54 68 65 20 |..minus |1. The |
|00005070| 72 65 6d 61 69 6e 69 6e | 67 20 62 79 74 65 73 20 |remainin|g bytes |
|00005080| 72 65 70 72 65 73 65 6e | 74 20 74 68 65 20 53 68 |represen|t the Sh|
|00005090| 61 6e 6e 6f 6e 2d 46 61 | 6e 6f 20 74 72 65 65 0d |annon-Fa|no tree.|
|000050a0| 0a 64 61 74 61 20 65 6e | 63 6f 64 65 64 20 61 73 |.data en|coded as|
|000050b0| 3a 0d 0a 0d 0a ff 20 04 | 48 69 67 68 20 34 20 62 |:..... .|High 4 b|
|000050c0| 69 74 73 3a 20 4e 75 6d | 62 65 72 20 6f 66 20 76 |its: Num|ber of v|
|000050d0| 61 6c 75 65 73 20 61 74 | 20 74 68 69 73 20 62 69 |alues at| this bi|
|000050e0| 74 20 6c 65 6e 67 74 68 | 20 2b 20 31 2e 20 28 31 |t length| + 1. (1|
|000050f0| 20 2d 20 31 36 29 0d 0a | ff 20 04 4c 6f 77 20 20 | - 16)..|. .Low |
|00005100| 34 20 62 69 74 73 3a 20 | 42 69 74 20 4c 65 6e 67 |4 bits: |Bit Leng|
|00005110| 74 68 20 6e 65 65 64 65 | 64 20 74 6f 20 72 65 70 |th neede|d to rep|
|00005120| 72 65 73 65 6e 74 20 76 | 61 6c 75 65 20 2b 20 31 |resent v|alue + 1|
|00005130| 2e 20 28 31 20 2d 20 31 | 36 29 0d 0a 0d 0a 54 68 |. (1 - 1|6)....Th|
|00005140| 65 20 53 68 61 6e 6e 6f | 6e 2d 46 61 6e 6f 20 63 |e Shanno|n-Fano c|
|00005150| 6f 64 65 73 20 63 61 6e | 20 62 65 20 63 6f 6e 73 |odes can| be cons|
|00005160| 74 72 75 63 74 65 64 20 | 66 72 6f 6d 20 74 68 65 |tructed |from the|
|00005170| 20 62 69 74 20 6c 65 6e | 67 74 68 73 0d 0a 75 73 | bit len|gths..us|
|00005180| 69 6e 67 20 74 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |ing the |followin|
|00005190| 67 20 61 6c 67 6f 72 69 | 74 68 6d 3a 0d 0a 0d 0a |g algori|thm:....|
|000051a0| 31 29 20 20 53 6f 72 74 | 20 74 68 65 20 42 69 74 |1) Sort| the Bit|
|000051b0| 20 4c 65 6e 67 74 68 73 | 20 69 6e 20 61 73 63 65 | Lengths| in asce|
|000051c0| 6e 64 69 6e 67 20 6f 72 | 64 65 72 2c 20 77 68 69 |nding or|der, whi|
|000051d0| 6c 65 20 72 65 74 61 69 | 6e 69 6e 67 20 74 68 65 |le retai|ning the|
|000051e0| 0d 0a ff 20 04 6f 72 64 | 65 72 20 6f 66 20 74 68 |... .ord|er of th|
|000051f0| 65 20 6f 72 69 67 69 6e | 61 6c 20 6c 65 6e 67 74 |e origin|al lengt|
|00005200| 68 73 20 73 74 6f 72 65 | 64 20 69 6e 20 74 68 65 |hs store|d in the|
|00005210| 20 66 69 6c 65 2e 0d 0a | 0d 0a 32 29 20 20 47 65 | file...|..2) Ge|
|00005220| 6e 65 72 61 74 65 20 74 | 68 65 20 53 68 61 6e 6e |nerate t|he Shann|
|00005230| 6f 6e 2d 46 61 6e 6f 20 | 74 72 65 65 73 3a 0d 0a |on-Fano |trees:..|
|00005240| 0d 0a ff 20 04 43 6f 64 | 65 20 3c 2d 20 30 0d 0a |... .Cod|e <- 0..|
|00005250| ff 20 04 43 6f 64 65 49 | 6e 63 72 65 6d 65 6e 74 |. .CodeI|ncrement|
|00005260| 20 3c 2d 20 30 0d 0a ff | 20 04 4c 61 73 74 42 69 | <- 0...| .LastBi|
|00005270| 74 4c 65 6e 67 74 68 20 | 3c 2d 20 30 0d 0a ff 20 |tLength |<- 0... |
|00005280| 04 69 20 3c 2d 20 6e 75 | 6d 62 65 72 20 6f 66 20 |.i <- nu|mber of |
|00005290| 53 68 61 6e 6e 6f 6e 2d | 46 61 6e 6f 20 63 6f 64 |Shannon-|Fano cod|
|000052a0| 65 73 20 2d 20 31 ff 20 | 03 28 65 69 74 68 65 72 |es - 1. |.(either|
|000052b0| 20 32 35 35 20 6f 72 20 | 36 33 29 0d 0a 0d 0a ff | 255 or |63).....|
|000052c0| 20 04 6c 6f 6f 70 20 77 | 68 69 6c 65 20 69 20 3e | .loop w|hile i >|
|000052d0| 3d 20 30 0d 0a 09 43 6f | 64 65 20 3d 20 43 6f 64 |= 0...Co|de = Cod|
|000052e0| 65 20 2b 20 43 6f 64 65 | 49 6e 63 72 65 6d 65 6e |e + Code|Incremen|
|000052f0| 74 0d 0a 09 69 66 20 42 | 69 74 4c 65 6e 67 74 68 |t...if B|itLength|
|00005300| 28 69 29 20 3c 3e 20 4c | 61 73 74 42 69 74 4c 65 |(i) <> L|astBitLe|
|00005310| 6e 67 74 68 20 74 68 65 | 6e 0d 0a 09 ff 20 04 4c |ngth the|n.... .L|
|00005320| 61 73 74 42 69 74 4c 65 | 6e 67 74 68 3d 42 69 74 |astBitLe|ngth=Bit|
|00005330| 4c 65 6e 67 74 68 28 69 | 29 0d 0a 09 ff 20 04 43 |Length(i|).... .C|
|00005340| 6f 64 65 49 6e 63 72 65 | 6d 65 6e 74 20 3d 20 31 |odeIncre|ment = 1|
|00005350| 20 73 68 69 66 74 65 64 | 20 6c 65 66 74 20 28 31 | shifted| left (1|
|00005360| 36 20 2d 20 4c 61 73 74 | 42 69 74 4c 65 6e 67 74 |6 - Last|BitLengt|
|00005370| 68 29 0d 0a 09 53 68 61 | 6e 6e 6f 6e 43 6f 64 65 |h)...Sha|nnonCode|
|00005380| 28 69 29 20 3d 20 43 6f | 64 65 0d 0a 09 69 20 3c |(i) = Co|de...i <|
|00005390| 2d 20 69 20 2d 20 31 0d | 0a ff 20 04 65 6e 64 20 |- i - 1.|.. .end |
|000053a0| 6c 6f 6f 70 0d 0a 0d 0a | 0d 0a 33 29 20 20 52 65 |loop....|..3) Re|
|000053b0| 76 65 72 73 65 20 74 68 | 65 20 6f 72 64 65 72 20 |verse th|e order |
|000053c0| 6f 66 20 61 6c 6c 20 74 | 68 65 20 62 69 74 73 20 |of all t|he bits |
|000053d0| 69 6e 20 74 68 65 20 61 | 62 6f 76 65 20 53 68 61 |in the a|bove Sha|
|000053e0| 6e 6e 6f 6e 43 6f 64 65 | 28 29 0d 0a ff 20 04 76 |nnonCode|()... .v|
|000053f0| 65 63 74 6f 72 2c 20 73 | 6f 20 74 68 61 74 20 74 |ector, s|o that t|
|00005400| 68 65 20 6d 6f 73 74 20 | 73 69 67 6e 69 66 69 63 |he most |signific|
|00005410| 61 6e 74 20 62 69 74 20 | 62 65 63 6f 6d 65 73 20 |ant bit |becomes |
|00005420| 74 68 65 20 6c 65 61 73 | 74 0d 0a ff 20 04 73 69 |the leas|t... .si|
|00005430| 67 6e 69 66 69 63 61 6e | 74 20 62 69 74 2e 20 20 |gnifican|t bit. |
|00005440| 46 6f 72 20 65 78 61 6d | 70 6c 65 2c 20 74 68 65 |For exam|ple, the|
|00005450| 20 76 61 6c 75 65 20 30 | 78 31 32 33 34 20 28 68 | value 0|x1234 (h|
|00005460| 65 78 29 20 77 6f 75 6c | 64 0d 0a ff 20 04 62 65 |ex) woul|d... .be|
|00005470| 63 6f 6d 65 20 30 78 32 | 43 34 38 20 28 68 65 78 |come 0x2|C48 (hex|
|00005480| 29 2e 0d 0a 0d 0a 34 29 | 20 20 52 65 73 74 6f 72 |).....4)| Restor|
|00005490| 65 20 74 68 65 20 6f 72 | 64 65 72 20 6f 66 20 53 |e the or|der of S|
|000054a0| 68 61 6e 6e 6f 6e 2d 46 | 61 6e 6f 20 63 6f 64 65 |hannon-F|ano code|
|000054b0| 73 20 61 73 20 6f 72 69 | 67 69 6e 61 6c 6c 79 20 |s as ori|ginally |
|000054c0| 73 74 6f 72 65 64 0d 0a | ff 20 04 77 69 74 68 69 |stored..|. .withi|
|000054d0| 6e 20 74 68 65 20 66 69 | 6c 65 2e 0d 0a 0d 0a 45 |n the fi|le.....E|
|000054e0| 78 61 6d 70 6c 65 3a 0d | 0a 0d 0a ff 20 04 54 68 |xample:.|.... .Th|
|000054f0| 69 73 20 65 78 61 6d 70 | 6c 65 20 77 69 6c 6c 20 |is examp|le will |
|00005500| 73 68 6f 77 20 74 68 65 | 20 65 6e 63 6f 64 69 6e |show the| encodin|
|00005510| 67 20 6f 66 20 61 20 53 | 68 61 6e 6e 6f 6e 2d 46 |g of a S|hannon-F|
|00005520| 61 6e 6f 20 74 72 65 65 | 0d 0a ff 20 04 6f 66 20 |ano tree|... .of |
|00005530| 73 69 7a 65 20 38 2e 20 | 20 4e 6f 74 69 63 65 20 |size 8. | Notice |
|00005540| 74 68 61 74 20 74 68 65 | 20 61 63 74 75 61 6c 20 |that the| actual |
|00005550| 53 68 61 6e 6e 6f 6e 2d | 46 61 6e 6f 20 74 72 65 |Shannon-|Fano tre|
|00005560| 65 73 20 75 73 65 64 0d | 0a ff 20 04 66 6f 72 20 |es used.|.. .for |
|00005570| 49 6d 70 6c 6f 64 69 6e | 67 20 61 72 65 20 65 69 |Implodin|g are ei|
|00005580| 74 68 65 72 20 36 34 20 | 6f 72 20 32 35 36 20 65 |ther 64 |or 256 e|
|00005590| 6e 74 72 69 65 73 20 69 | 6e 20 73 69 7a 65 2e 0d |ntries i|n size..|
|000055a0| 0a 0d 0a 45 78 61 6d 70 | 6c 65 3a ff 20 03 30 78 |...Examp|le:. .0x|
|000055b0| 30 32 2c 20 30 78 34 32 | 2c 20 30 78 30 31 2c 20 |02, 0x42|, 0x01, |
|000055c0| 30 78 31 33 0d 0a 0d 0a | ff 20 04 54 68 65 20 66 |0x13....|. .The f|
|000055d0| 69 72 73 74 20 62 79 74 | 65 20 69 6e 64 69 63 61 |irst byt|e indica|
|000055e0| 74 65 73 20 33 20 76 61 | 6c 75 65 73 20 69 6e 20 |tes 3 va|lues in |
|000055f0| 74 68 69 73 20 74 61 62 | 6c 65 2e 20 20 44 65 63 |this tab|le. Dec|
|00005600| 6f 64 69 6e 67 20 74 68 | 65 0d 0a ff 20 04 62 79 |oding th|e... .by|
|00005610| 74 65 73 3a 0d 0a 09 ff | 20 04 30 78 34 32 20 3d |tes:....| .0x42 =|
|00005620| 20 35 20 63 6f 64 65 73 | 20 6f 66 20 33 20 62 69 | 5 codes| of 3 bi|
|00005630| 74 73 20 6c 6f 6e 67 0d | 0a 09 ff 20 04 30 78 30 |ts long.|... .0x0|
|00005640| 31 20 3d 20 31 20 63 6f | 64 65 20 20 6f 66 20 32 |1 = 1 co|de of 2|
|00005650| 20 62 69 74 73 20 6c 6f | 6e 67 0d 0a 09 ff 20 04 | bits lo|ng.... .|
|00005660| 30 78 31 33 20 3d 20 32 | 20 63 6f 64 65 73 20 6f |0x13 = 2| codes o|
|00005670| 66 20 34 20 62 69 74 73 | 20 6c 6f 6e 67 0d 0a 0d |f 4 bits| long...|
|00005680| 0a ff 20 04 54 68 69 73 | 20 77 6f 75 6c 64 20 67 |.. .This| would g|
|00005690| 65 6e 65 72 61 74 65 20 | 74 68 65 20 6f 72 69 67 |enerate |the orig|
|000056a0| 69 6e 61 6c 20 62 69 74 | 20 6c 65 6e 67 74 68 20 |inal bit| length |
|000056b0| 61 72 72 61 79 20 6f 66 | 3a 0d 0a ff 20 04 28 33 |array of|:... .(3|
|000056c0| 2c 20 33 2c 20 33 2c 20 | 33 2c 20 33 2c 20 32 2c |, 3, 3, |3, 3, 2,|
|000056d0| 20 34 2c 20 34 29 0d 0a | 0d 0a ff 20 04 54 68 65 | 4, 4)..|... .The|
|000056e0| 72 65 20 61 72 65 20 38 | 20 63 6f 64 65 73 20 69 |re are 8| codes i|
|000056f0| 6e 20 74 68 69 73 20 74 | 61 62 6c 65 20 66 6f 72 |n this t|able for|
|00005700| 20 74 68 65 20 76 61 6c | 75 65 73 20 30 20 74 68 | the val|ues 0 th|
|00005710| 72 75 20 37 2e 20 20 55 | 73 69 6e 67 20 74 68 65 |ru 7. U|sing the|
|00005720| 0d 0a ff 20 04 61 6c 67 | 6f 72 69 74 68 6d 20 74 |... .alg|orithm t|
|00005730| 6f 20 6f 62 74 61 69 6e | 20 74 68 65 20 53 68 61 |o obtain| the Sha|
|00005740| 6e 6e 6f 6e 2d 46 61 6e | 6f 20 63 6f 64 65 73 20 |nnon-Fan|o codes |
|00005750| 70 72 6f 64 75 63 65 73 | 3a 0d 0a 0d 0a ff 20 22 |produces|:..... "|
|00005760| 52 65 76 65 72 73 65 64 | ff 20 05 4f 72 64 65 72 |Reversed|. .Order|
|00005770| ff 20 05 4f 72 69 67 69 | 6e 61 6c 0d 0a 56 61 6c |. .Origi|nal..Val|
|00005780| 20 20 53 6f 72 74 65 64 | ff 20 03 43 6f 6e 73 74 | Sorted|. .Const|
|00005790| 72 75 63 74 65 64 20 43 | 6f 64 65 ff 20 06 56 61 |ructed C|ode. .Va|
|000057a0| 6c 75 65 ff 20 05 52 65 | 73 74 6f 72 65 64 ff 20 |lue. .Re|stored. |
|000057b0| 04 4c 65 6e 67 74 68 0d | 0a ff 2d 03 20 20 ff 2d |.Length.|..-. .-|
|000057c0| 06 ff 20 03 ff 2d 11 ff | 20 03 ff 2d 08 ff 20 04 |.. ..-..| ..-.. .|
|000057d0| ff 2d 08 ff 20 04 ff 2d | 06 0d 0a 30 3a ff 20 05 |.-.. ..-|...0:. .|
|000057e0| 32 ff 20 06 31 31 ff 30 | 0e ff 20 08 31 31 ff 20 |2. .11.0|.. .11. |
|000057f0| 07 31 30 31 ff 20 0a 33 | 0d 0a 31 3a ff 20 05 33 |.101. .3|..1:. .3|
|00005800| ff 20 06 31 30 31 ff 30 | 0d ff 20 07 31 30 31 ff |. .101.0|.. .101.|
|00005810| 20 07 30 30 31 ff 20 0a | 33 0d 0a 32 3a ff 20 05 | .001. .|3..2:. .|
|00005820| 33 ff 20 06 31 ff 30 0f | ff 20 07 30 30 31 ff 20 |3. .1.0.|. .001. |
|00005830| 07 31 31 30 ff 20 0a 33 | 0d 0a 33 3a ff 20 05 33 |.110. .3|..3:. .3|
|00005840| ff 20 06 30 31 31 ff 30 | 0d ff 20 07 31 31 30 ff |. .011.0|.. .110.|
|00005850| 20 07 30 31 30 ff 20 0a | 33 0d 0a 34 3a ff 20 05 | .010. .|3..4:. .|
|00005860| 33 ff 20 06 30 31 ff 30 | 0e ff 20 07 30 31 30 ff |3. .01.0|.. .010.|
|00005870| 20 07 31 30 30 ff 20 0a | 33 0d 0a 35 3a ff 20 05 | .100. .|3..5:. .|
|00005880| 33 ff 20 06 30 30 31 ff | 30 0d ff 20 07 31 30 30 |3. .001.|0.. .100|
|00005890| ff 20 08 31 31 ff 20 0a | 32 0d 0a 36 3a ff 20 05 |. .11. .|2..6:. .|
|000058a0| 34 ff 20 06 ff 30 03 31 | ff 30 0c ff 20 06 31 ff |4. ..0.1|.0.. .1.|
|000058b0| 30 03 ff 20 06 31 ff 30 | 03 ff 20 0a 34 0d 0a 37 |0.. .1.0|.. .4..7|
|000058c0| 3a ff 20 05 34 ff 20 06 | ff 30 10 ff 20 06 ff 30 |:. .4. .|.0.. ..0|
|000058d0| 04 ff 20 06 ff 30 04 ff | 20 0a 34 0d 0a 0d 0a 0d |.. ..0..| .4.....|
|000058e0| 0a 54 68 65 20 76 61 6c | 75 65 73 20 69 6e 20 74 |.The val|ues in t|
|000058f0| 68 65 20 56 61 6c 2c 20 | 4f 72 64 65 72 20 52 65 |he Val, |Order Re|
|00005900| 73 74 6f 72 65 64 20 61 | 6e 64 20 4f 72 69 67 69 |stored a|nd Origi|
|00005910| 6e 61 6c 20 4c 65 6e 67 | 74 68 20 63 6f 6c 75 6d |nal Leng|th colum|
|00005920| 6e 73 0d 0a 6e 6f 77 20 | 72 65 70 72 65 73 65 6e |ns..now |represen|
|00005930| 74 20 74 68 65 20 53 68 | 61 6e 6e 6f 6e 2d 46 61 |t the Sh|annon-Fa|
|00005940| 6e 6f 20 65 6e 63 6f 64 | 69 6e 67 20 74 72 65 65 |no encod|ing tree|
|00005950| 20 74 68 61 74 20 63 61 | 6e 20 62 65 20 75 73 65 | that ca|n be use|
|00005960| 64 20 66 6f 72 0d 0a 64 | 65 63 6f 64 69 6e 67 20 |d for..d|ecoding |
|00005970| 74 68 65 20 53 68 61 6e | 6e 6f 6e 2d 46 61 6e 6f |the Shan|non-Fano|
|00005980| 20 65 6e 63 6f 64 65 64 | 20 64 61 74 61 2e 20 20 | encoded| data. |
|00005990| 48 6f 77 20 74 6f 20 70 | 61 72 73 65 20 74 68 65 |How to p|arse the|
|000059a0| 0d 0a 76 61 72 69 61 62 | 6c 65 20 6c 65 6e 67 74 |..variab|le lengt|
|000059b0| 68 20 53 68 61 6e 6e 6f | 6e 2d 46 61 6e 6f 20 76 |h Shanno|n-Fano v|
|000059c0| 61 6c 75 65 73 20 66 72 | 6f 6d 20 74 68 65 20 64 |alues fr|om the d|
|000059d0| 61 74 61 20 73 74 72 65 | 61 6d 20 69 73 20 62 65 |ata stre|am is be|
|000059e0| 79 6f 6e 64 20 74 68 65 | 0d 0a 73 63 6f 70 65 20 |yond the|..scope |
|000059f0| 6f 66 20 74 68 69 73 20 | 64 6f 63 75 6d 65 6e 74 |of this |document|
|00005a00| 2e 20 20 28 53 65 65 20 | 74 68 65 20 72 65 66 65 |. (See |the refe|
|00005a10| 72 65 6e 63 65 73 20 6c | 69 73 74 65 64 20 61 74 |rences l|isted at|
|00005a20| 20 74 68 65 20 65 6e 64 | 20 6f 66 0d 0a 74 68 69 | the end| of..thi|
|00005a30| 73 20 64 6f 63 75 6d 65 | 6e 74 20 66 6f 72 20 6d |s docume|nt for m|
|00005a40| 6f 72 65 20 69 6e 66 6f | 72 6d 61 74 69 6f 6e 2e |ore info|rmation.|
|00005a50| 29 20 20 48 6f 77 65 76 | 65 72 2c 20 74 72 61 64 |) Howev|er, trad|
|00005a60| 69 74 69 6f 6e 61 6c 20 | 64 65 63 6f 64 69 6e 67 |itional |decoding|
|00005a70| 0d 0a 73 63 68 65 6d 65 | 73 20 75 73 65 64 20 66 |..scheme|s used f|
|00005a80| 6f 72 20 48 75 66 66 6d | 61 6e 20 76 61 72 69 61 |or Huffm|an varia|
|00005a90| 62 6c 65 20 6c 65 6e 67 | 74 68 20 64 65 63 6f 64 |ble leng|th decod|
|00005aa0| 69 6e 67 2c 20 73 75 63 | 68 20 61 73 20 74 68 65 |ing, suc|h as the|
|00005ab0| 0d 0a 47 72 65 65 6e 6c | 61 77 20 61 6c 67 6f 72 |..Greenl|aw algor|
|00005ac0| 69 74 68 6d 2c 20 63 61 | 6e 20 62 65 20 73 75 63 |ithm, ca|n be suc|
|00005ad0| 63 65 73 66 75 6c 6c 79 | 20 61 70 70 6c 69 65 64 |cesfully| applied|
|00005ae0| 2e 0d 0a 0d 0a 54 68 65 | 20 63 6f 6d 70 72 65 73 |.....The| compres|
|00005af0| 73 65 64 20 64 61 74 61 | 20 73 74 72 65 61 6d 20 |sed data| stream |
|00005b00| 62 65 67 69 6e 73 20 69 | 6d 6d 65 64 69 61 74 65 |begins i|mmediate|
|00005b10| 6c 79 20 61 66 74 65 72 | 20 74 68 65 0d 0a 63 6f |ly after| the..co|
|00005b20| 6d 70 72 65 73 73 65 64 | 20 53 68 61 6e 6e 6f 6e |mpressed| Shannon|
|00005b30| 2d 46 61 6e 6f 20 64 61 | 74 61 2e 20 20 54 68 65 |-Fano da|ta. The|
|00005b40| 20 63 6f 6d 70 72 65 73 | 73 65 64 20 64 61 74 61 | compres|sed data|
|00005b50| 20 73 74 72 65 61 6d 20 | 63 61 6e 20 62 65 0d 0a | stream |can be..|
|00005b60| 69 6e 74 65 72 70 72 65 | 74 65 64 20 61 73 20 66 |interpre|ted as f|
|00005b70| 6f 6c 6c 6f 77 73 3a 0d | 0a 0d 0a 6c 6f 6f 70 20 |ollows:.|...loop |
|00005b80| 75 6e 74 69 6c 20 64 6f | 6e 65 0d 0a ff 20 04 72 |until do|ne... .r|
|00005b90| 65 61 64 20 31 20 62 69 | 74 20 66 72 6f 6d 20 69 |ead 1 bi|t from i|
|00005ba0| 6e 70 75 74 20 73 74 72 | 65 61 6d 2e 0d 0a 0d 0a |nput str|eam.....|
|00005bb0| ff 20 04 69 66 20 74 68 | 69 73 20 62 69 74 20 69 |. .if th|is bit i|
|00005bc0| 73 20 6e 6f 6e 2d 7a 65 | 72 6f 20 74 68 65 6e ff |s non-ze|ro then.|
|00005bd0| 20 07 28 65 6e 63 6f 64 | 65 64 20 64 61 74 61 20 | .(encod|ed data |
|00005be0| 69 73 20 6c 69 74 65 72 | 61 6c 20 64 61 74 61 29 |is liter|al data)|
|00005bf0| 0d 0a 09 69 66 20 4c 69 | 74 65 72 61 6c 20 53 68 |...if Li|teral Sh|
|00005c00| 61 6e 6e 6f 6e 2d 46 61 | 6e 6f 20 74 72 65 65 20 |annon-Fa|no tree |
|00005c10| 69 73 20 70 72 65 73 65 | 6e 74 0d 0a 09 ff 20 04 |is prese|nt.... .|
|00005c20| 72 65 61 64 20 61 6e 64 | 20 64 65 63 6f 64 65 20 |read and| decode |
|00005c30| 63 68 61 72 61 63 74 65 | 72 20 75 73 69 6e 67 20 |characte|r using |
|00005c40| 4c 69 74 65 72 61 6c 20 | 53 68 61 6e 6e 6f 6e 2d |Literal |Shannon-|
|00005c50| 46 61 6e 6f 20 74 72 65 | 65 2e 0d 0a 09 6f 74 68 |Fano tre|e....oth|
|00005c60| 65 72 77 69 73 65 0d 0a | 09 ff 20 04 72 65 61 64 |erwise..|.. .read|
|00005c70| 20 38 20 62 69 74 73 20 | 66 72 6f 6d 20 69 6e 70 | 8 bits |from inp|
|00005c80| 75 74 20 73 74 72 65 61 | 6d 2e 0d 0a 09 63 6f 70 |ut strea|m....cop|
|00005c90| 79 20 63 68 61 72 61 63 | 74 65 72 20 74 6f 20 74 |y charac|ter to t|
|00005ca0| 68 65 20 6f 75 74 70 75 | 74 20 73 74 72 65 61 6d |he outpu|t stream|
|00005cb0| 2e 0d 0a ff 20 04 6f 74 | 68 65 72 77 69 73 65 ff |.... .ot|herwise.|
|00005cc0| 20 13 28 65 6e 63 6f 64 | 65 64 20 64 61 74 61 20 | .(encod|ed data |
|00005cd0| 69 73 20 73 6c 69 64 69 | 6e 67 20 64 69 63 74 69 |is slidi|ng dicti|
|00005ce0| 6f 6e 61 72 79 20 6d 61 | 74 63 68 29 0d 0a 09 69 |onary ma|tch)...i|
|00005cf0| 66 20 38 4b 20 64 69 63 | 74 69 6f 6e 61 72 79 20 |f 8K dic|tionary |
|00005d00| 73 69 7a 65 0d 0a 09 ff | 20 04 72 65 61 64 20 37 |size....| .read 7|
|00005d10| 20 62 69 74 73 20 66 6f | 72 20 6f 66 66 73 65 74 | bits fo|r offset|
|00005d20| 20 44 69 73 74 61 6e 63 | 65 20 28 6c 6f 77 65 72 | Distanc|e (lower|
|00005d30| 20 37 20 62 69 74 73 20 | 6f 66 20 6f 66 66 73 65 | 7 bits |of offse|
|00005d40| 74 29 2e 0d 0a 09 6f 74 | 68 65 72 77 69 73 65 0d |t)....ot|herwise.|
|00005d50| 0a 09 ff 20 04 72 65 61 | 64 20 36 20 62 69 74 73 |... .rea|d 6 bits|
|00005d60| 20 66 6f 72 20 6f 66 66 | 73 65 74 20 44 69 73 74 | for off|set Dist|
|00005d70| 61 6e 63 65 20 28 6c 6f | 77 65 72 20 36 20 62 69 |ance (lo|wer 6 bi|
|00005d80| 74 73 20 6f 66 20 6f 66 | 66 73 65 74 29 2e 0d 0a |ts of of|fset)...|
|00005d90| 09 0d 0a 09 75 73 69 6e | 67 20 74 68 65 20 44 69 |....usin|g the Di|
|00005da0| 73 74 61 6e 63 65 20 53 | 68 61 6e 6e 6f 6e 2d 46 |stance S|hannon-F|
|00005db0| 61 6e 6f 20 74 72 65 65 | 2c 20 72 65 61 64 20 61 |ano tree|, read a|
|00005dc0| 6e 64 20 64 65 63 6f 64 | 65 20 74 68 65 0d 0a 09 |nd decod|e the...|
|00005dd0| 20 20 75 70 70 65 72 20 | 36 20 62 69 74 73 20 6f | upper |6 bits o|
|00005de0| 66 20 74 68 65 20 44 69 | 73 74 61 6e 63 65 20 76 |f the Di|stance v|
|00005df0| 61 6c 75 65 2e 0d 0a 0d | 0a 09 75 73 69 6e 67 20 |alue....|..using |
|00005e00| 74 68 65 20 4c 65 6e 67 | 74 68 20 53 68 61 6e 6e |the Leng|th Shann|
|00005e10| 6f 6e 2d 46 61 6e 6f 20 | 74 72 65 65 2c 20 72 65 |on-Fano |tree, re|
|00005e20| 61 64 20 61 6e 64 20 64 | 65 63 6f 64 65 0d 0a 09 |ad and d|ecode...|
|00005e30| 20 20 74 68 65 20 4c 65 | 6e 67 74 68 20 76 61 6c | the Le|ngth val|
|00005e40| 75 65 2e 0d 0a 09 0d 0a | 09 4c 65 6e 67 74 68 20 |ue......|.Length |
|00005e50| 3c 2d 20 4c 65 6e 67 74 | 68 20 2b 20 4d 69 6e 69 |<- Lengt|h + Mini|
|00005e60| 6d 75 6d 20 4d 61 74 63 | 68 20 4c 65 6e 67 74 68 |mum Matc|h Length|
|00005e70| 0d 0a 09 0d 0a 09 69 66 | 20 4c 65 6e 67 74 68 20 |......if| Length |
|00005e80| 3d 20 36 33 20 2b 20 4d | 69 6e 69 6d 75 6d 20 4d |= 63 + M|inimum M|
|00005e90| 61 74 63 68 20 4c 65 6e | 67 74 68 0d 0a 09 ff 20 |atch Len|gth.... |
|00005ea0| 04 72 65 61 64 20 38 20 | 62 69 74 73 20 66 72 6f |.read 8 |bits fro|
|00005eb0| 6d 20 74 68 65 20 69 6e | 70 75 74 20 73 74 72 65 |m the in|put stre|
|00005ec0| 61 6d 2c 0d 0a 09 ff 20 | 04 61 64 64 20 74 68 69 |am,.... |.add thi|
|00005ed0| 73 20 76 61 6c 75 65 20 | 74 6f 20 4c 65 6e 67 74 |s value |to Lengt|
|00005ee0| 68 2e 0d 0a 0d 0a 09 6d | 6f 76 65 20 62 61 63 6b |h......m|ove back|
|00005ef0| 77 61 72 64 73 20 44 69 | 73 74 61 6e 63 65 2b 31 |wards Di|stance+1|
|00005f00| 20 62 79 74 65 73 20 69 | 6e 20 74 68 65 20 6f 75 | bytes i|n the ou|
|00005f10| 74 70 75 74 20 73 74 72 | 65 61 6d 2c 20 61 6e 64 |tput str|eam, and|
|00005f20| 0d 0a 09 63 6f 70 79 20 | 4c 65 6e 67 74 68 20 63 |...copy |Length c|
|00005f30| 68 61 72 61 63 74 65 72 | 73 20 66 72 6f 6d 20 74 |haracter|s from t|
|00005f40| 68 69 73 20 70 6f 73 69 | 74 69 6f 6e 20 74 6f 20 |his posi|tion to |
|00005f50| 74 68 65 20 6f 75 74 70 | 75 74 0d 0a 09 73 74 72 |the outp|ut...str|
|00005f60| 65 61 6d 2e 20 20 28 69 | 66 20 74 68 69 73 20 70 |eam. (i|f this p|
|00005f70| 6f 73 69 74 69 6f 6e 20 | 69 73 20 62 65 66 6f 72 |osition |is befor|
|00005f80| 65 20 74 68 65 20 73 74 | 61 72 74 20 6f 66 20 74 |e the st|art of t|
|00005f90| 68 65 20 6f 75 74 70 75 | 74 0d 0a 09 73 74 72 65 |he outpu|t...stre|
|00005fa0| 61 6d 2c 20 74 68 65 6e | 20 61 73 73 75 6d 65 20 |am, then| assume |
|00005fb0| 74 68 61 74 20 61 6c 6c | 20 74 68 65 20 64 61 74 |that all| the dat|
|00005fc0| 61 20 62 65 66 6f 72 65 | 20 74 68 65 20 73 74 61 |a before| the sta|
|00005fd0| 72 74 20 6f 66 0d 0a 09 | 74 68 65 20 6f 75 74 70 |rt of...|the outp|
|00005fe0| 75 74 20 73 74 72 65 61 | 6d 20 69 73 20 66 69 6c |ut strea|m is fil|
|00005ff0| 6c 65 64 20 77 69 74 68 | 20 7a 65 72 6f 73 29 2e |led with| zeros).|
|00006000| 0d 0a 65 6e 64 20 6c 6f | 6f 70 0d 0a 0c 0d 0a 44 |..end lo|op.....D|
|00006010| 65 63 72 79 70 74 69 6f | 6e 0d 0a ff 2d 0a 0d 0a |ecryptio|n...-...|
|00006020| 0d 0a 54 68 65 20 65 6e | 63 72 79 70 74 69 6f 6e |..The en|cryption|
|00006030| 20 75 73 65 64 20 69 6e | 20 50 4b 5a 49 50 20 77 | used in| PKZIP w|
|00006040| 61 73 20 67 65 6e 65 72 | 6f 75 73 6c 79 20 73 75 |as gener|ously su|
|00006050| 70 70 6c 69 65 64 20 62 | 79 20 52 6f 67 65 72 0d |pplied b|y Roger.|
|00006060| 0a 53 63 68 6c 61 66 6c | 79 2e 20 20 50 4b 57 41 |.Schlafl|y. PKWA|
|00006070| 52 45 20 69 73 20 67 72 | 61 74 65 66 75 6c 20 74 |RE is gr|ateful t|
|00006080| 6f 20 4d 72 2e 20 53 63 | 68 6c 61 66 6c 79 20 66 |o Mr. Sc|hlafly f|
|00006090| 6f 72 20 68 69 73 20 65 | 78 70 65 72 74 0d 0a 68 |or his e|xpert..h|
|000060a0| 65 6c 70 20 61 6e 64 20 | 61 64 76 69 63 65 20 69 |elp and |advice i|
|000060b0| 6e 20 74 68 65 20 66 69 | 65 6c 64 20 6f 66 20 64 |n the fi|eld of d|
|000060c0| 61 74 61 20 65 6e 63 72 | 79 70 74 69 6f 6e 2e 0d |ata encr|yption..|
|000060d0| 0a 0d 0a 50 4b 5a 49 50 | 20 65 6e 63 72 79 70 74 |...PKZIP| encrypt|
|000060e0| 73 20 74 68 65 20 63 6f | 6d 70 72 65 73 73 65 64 |s the co|mpressed|
|000060f0| 20 64 61 74 61 20 73 74 | 72 65 61 6d 2e 20 20 45 | data st|ream. E|
|00006100| 6e 63 72 79 70 74 65 64 | 20 66 69 6c 65 73 20 6d |ncrypted| files m|
|00006110| 75 73 74 0d 0a 62 65 20 | 64 65 63 72 79 70 74 65 |ust..be |decrypte|
|00006120| 64 20 62 65 66 6f 72 65 | 20 74 68 65 79 20 63 61 |d before| they ca|
|00006130| 6e 20 62 65 20 65 78 74 | 72 61 63 74 65 64 2e 0d |n be ext|racted..|
|00006140| 0a 0d 0a 45 61 63 68 20 | 65 6e 63 72 79 70 74 65 |...Each |encrypte|
|00006150| 64 20 66 69 6c 65 20 68 | 61 73 20 61 6e 20 65 78 |d file h|as an ex|
|00006160| 74 72 61 20 31 32 20 62 | 79 74 65 73 20 73 74 6f |tra 12 b|ytes sto|
|00006170| 72 65 64 20 61 74 20 74 | 68 65 20 73 74 61 72 74 |red at t|he start|
|00006180| 20 6f 66 0d 0a 74 68 65 | 20 64 61 74 61 20 61 72 | of..the| data ar|
|00006190| 65 61 20 64 65 66 69 6e | 69 6e 67 20 74 68 65 20 |ea defin|ing the |
|000061a0| 65 6e 63 72 79 70 74 69 | 6f 6e 20 68 65 61 64 65 |encrypti|on heade|
|000061b0| 72 20 66 6f 72 20 74 68 | 61 74 20 66 69 6c 65 2e |r for th|at file.|
|000061c0| 20 20 54 68 65 0d 0a 65 | 6e 63 72 79 70 74 69 6f | The..e|ncryptio|
|000061d0| 6e 20 68 65 61 64 65 72 | 20 69 73 20 6f 72 69 67 |n header| is orig|
|000061e0| 69 6e 61 6c 6c 79 20 73 | 65 74 20 74 6f 20 72 61 |inally s|et to ra|
|000061f0| 6e 64 6f 6d 20 76 61 6c | 75 65 73 2c 20 61 6e 64 |ndom val|ues, and|
|00006200| 20 74 68 65 6e 0d 0a 69 | 74 73 65 6c 66 20 65 6e | then..i|tself en|
|00006210| 63 72 79 70 74 65 64 2c | 20 75 73 69 6e 67 20 33 |crypted,| using 3|
|00006220| 2c 20 33 32 2d 62 69 74 | 20 6b 65 79 73 2e 20 20 |, 32-bit| keys. |
|00006230| 54 68 65 20 6b 65 79 20 | 76 61 6c 75 65 73 20 61 |The key |values a|
|00006240| 72 65 20 0d 0a 69 6e 69 | 74 69 61 6c 69 7a 65 64 |re ..ini|tialized|
|00006250| 20 75 73 69 6e 67 20 74 | 68 65 20 73 75 70 70 6c | using t|he suppl|
|00006260| 69 65 64 20 65 6e 63 72 | 79 70 74 69 6f 6e 20 70 |ied encr|yption p|
|00006270| 61 73 73 77 6f 72 64 2e | 20 20 41 66 74 65 72 20 |assword.| After |
|00006280| 65 61 63 68 20 62 79 74 | 65 0d 0a 69 73 20 65 6e |each byt|e..is en|
|00006290| 63 72 79 70 74 65 64 2c | 20 74 68 65 20 6b 65 79 |crypted,| the key|
|000062a0| 73 20 61 72 65 20 74 68 | 65 6e 20 75 70 64 61 74 |s are th|en updat|
|000062b0| 65 64 20 75 73 69 6e 67 | 20 70 73 75 65 64 6f 2d |ed using| psuedo-|
|000062c0| 72 61 6e 64 6f 6d 20 6e | 75 6d 62 65 72 0d 0a 67 |random n|umber..g|
|000062d0| 65 6e 65 72 61 74 69 6f | 6e 20 74 65 63 68 6e 69 |eneratio|n techni|
|000062e0| 71 75 65 73 20 69 6e 20 | 63 6f 6d 62 69 6e 61 74 |ques in |combinat|
|000062f0| 69 6f 6e 20 77 69 74 68 | 20 74 68 65 20 73 61 6d |ion with| the sam|
|00006300| 65 20 43 52 43 2d 33 32 | 20 61 6c 67 6f 72 69 74 |e CRC-32| algorit|
|00006310| 68 6d 20 0d 0a 75 73 65 | 64 20 69 6e 20 50 4b 5a |hm ..use|d in PKZ|
|00006320| 49 50 20 61 6e 64 20 64 | 65 73 63 72 69 62 65 64 |IP and d|escribed|
|00006330| 20 65 6c 73 65 77 68 65 | 72 65 20 69 6e 20 74 68 | elsewhe|re in th|
|00006340| 69 73 20 64 6f 63 75 6d | 65 6e 74 2e 0d 0a 0d 0a |is docum|ent.....|
|00006350| 54 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 69 73 |The foll|owing is|
|00006360| 20 74 68 65 20 62 61 73 | 69 63 20 73 74 65 70 73 | the bas|ic steps|
|00006370| 20 72 65 71 75 69 72 65 | 64 20 74 6f 20 64 65 63 | require|d to dec|
|00006380| 72 79 70 74 20 61 20 66 | 69 6c 65 3a 0d 0a 0d 0a |rypt a f|ile:....|
|00006390| 31 29 20 49 6e 69 74 69 | 61 6c 69 7a 65 20 74 68 |1) Initi|alize th|
|000063a0| 65 20 74 68 72 65 65 20 | 33 32 2d 62 69 74 20 6b |e three |32-bit k|
|000063b0| 65 79 73 20 77 69 74 68 | 20 74 68 65 20 70 61 73 |eys with| the pas|
|000063c0| 73 77 6f 72 64 2e 0d 0a | 32 29 20 52 65 61 64 20 |sword...|2) Read |
|000063d0| 61 6e 64 20 64 65 63 72 | 79 70 74 20 74 68 65 20 |and decr|ypt the |
|000063e0| 31 32 2d 62 79 74 65 20 | 65 6e 63 72 79 70 74 69 |12-byte |encrypti|
|000063f0| 6f 6e 20 68 65 61 64 65 | 72 2c 20 66 75 72 74 68 |on heade|r, furth|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.