Update to file-4.19.
[dragonfly.git] / contrib / file-4 / magic / magic.mime
1 # Magic data for KMimeMagic (originally for file(1) command)
2 #
3 # The format is 4-5 columns:
4 #    Column #1: byte number to begin checking from, ">" indicates continuation
5 #    Column #2: type of data to match
6 #    Column #3: contents of data to match
7 #    Column #4: MIME type of result
8 #    Column #5: MIME encoding of result (optional)
9
10 #------------------------------------------------------------------------------
11 # Localstuff:  file(1) magic for locally observed files
12 # Add any locally observed files here.
13
14 # Real Audio (Magic .ra\0375)
15 0       belong          0x2e7261fd      audio/x-pn-realaudio
16 0       string          .RMF            application/vnd.rn-realmedia
17
18 #video/x-pn-realvideo
19 #video/vnd.rn-realvideo
20 #application/vnd.rn-realmedia
21 #       sigh, there are many mimes for that but the above are the most common.
22
23 # Taken from magic, converted to magic.mime
24 # mime types according to http://www.geocities.com/nevilo/mod.htm:
25 #       audio/it        .it
26 #       audio/x-zipped-it       .itz
27 #       audio/xm        fasttracker modules
28 #       audio/x-s3m     screamtracker modules
29 #       audio/s3m       screamtracker modules
30 #       audio/x-zipped-mod      mdz
31 #       audio/mod       mod
32 #       audio/x-mod     All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
33
34 # Taken from loader code from mikmod version 2.14
35 # by Steve McIntyre (stevem@chiark.greenend.org.uk)
36 # <doj@cubic.org> added title printing on 2003-06-24
37 0       string  MAS_UTrack_V00
38 >14     string  >/0             audio/x-mod
39 #audio/x-tracker-module
40
41 #0      string  UN05            MikMod UNI format module sound data
42
43 0       string  Extended\ Module: audio/x-mod
44 #audio/x-tracker-module
45 ##>17   string  >\0             Title: "%s"
46
47 21      string/c        \!SCREAM!       audio/x-mod
48 #audio/x-screamtracker-module
49 21      string  BMOD2STM        audio/x-mod
50 #audio/x-screamtracker-module
51 1080    string  M.K.            audio/x-mod
52 #audio/x-protracker-module
53 #>0     string  >\0             Title: "%s"
54 1080    string  M!K!            audio/x-mod
55 #audio/x-protracker-module
56 #>0     string  >\0             Title: "%s"
57 1080    string  FLT4            audio/x-mod
58 #audio/x-startracker-module
59 #>0     string  >\0             Title: "%s"
60 1080    string  FLT8            audio/x-mod
61 #audio/x-startracker-module
62 #>0     string  >\0             Title: "%s"
63 1080    string  4CHN            audio/x-mod
64 #audio/x-fasttracker-module
65 #>0     string  >\0             Title: "%s"
66 1080    string  6CHN            audio/x-mod
67 #audio/x-fasttracker-module
68 #>0     string  >\0             Title: "%s"
69 1080    string  8CHN            audio/x-mod
70 #audio/x-fasttracker-module
71 #>0     string  >\0             Title: "%s"
72 1080    string  CD81            audio/x-mod
73 #audio/x-oktalyzer-tracker-module
74 #>0     string  >\0             Title: "%s"
75 1080    string  OKTA            audio/x-mod
76 #audio/x-oktalyzer-tracker-module
77 #>0     string  >\0             Title: "%s"
78 # Not good enough.
79 #1082   string  CH
80 #>1080  string  >/0             %.2s-channel Fasttracker "oktalyzer" module sound data
81 1080    string  16CN            audio/x-mod
82 #audio/x-taketracker-module
83 #>0     string  >\0             Title: "%s"
84 1080    string  32CN            audio/x-mod
85 #audio/x-taketracker-module
86 #>0     string  >\0             Title: "%s"
87
88 # Impuse tracker module (it)
89 0       string          IMPM            audio/x-mod
90 #>4     string          >\0             "%s"
91 #>40    leshort         !0              compatible w/ITv%x
92 #>42    leshort         !0              created w/ITv%x
93
94 #------------------------------------------------------------------------------
95 # end local stuff
96 #------------------------------------------------------------------------------
97
98 # xml based formats!
99
100 # svg
101
102 38      string          \<\!DOCTYPE\040svg      image/svg+xml
103
104
105 # xml
106 0       string          \<?xml                  text/xml
107
108
109 #------------------------------------------------------------------------------
110 # Java
111
112 0       beshort         0xcafe
113 >2      beshort         0xbabe          application/java
114
115 #------------------------------------------------------------------------------
116 # audio:  file(1) magic for sound formats
117 #
118 # from Jan Nicolai Langfeldt <janl@ifi.uio.no>,
119 #
120
121 # Sun/NeXT audio data
122 0       string          .snd
123 >12     belong          1               audio/basic
124 >12     belong          2               audio/basic
125 >12     belong          3               audio/basic
126 >12     belong          4               audio/basic
127 >12     belong          5               audio/basic
128 >12     belong          6               audio/basic
129 >12     belong          7               audio/basic
130
131 >12     belong          23              audio/x-adpcm
132
133 # DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
134 # that uses little-endian encoding and has a different magic number
135 # (0x0064732E in little-endian encoding).
136 0       lelong          0x0064732E
137 >12     lelong          1               audio/x-dec-basic
138 >12     lelong          2               audio/x-dec-basic
139 >12     lelong          3               audio/x-dec-basic
140 >12     lelong          4               audio/x-dec-basic
141 >12     lelong          5               audio/x-dec-basic
142 >12     lelong          6               audio/x-dec-basic
143 >12     lelong          7               audio/x-dec-basic
144 #                                       compressed (G.721 ADPCM)
145 >12     lelong          23              audio/x-dec-adpcm
146
147 # Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM"
148 #                                       AIFF audio data
149 8       string          AIFF            audio/x-aiff
150 #                                       AIFF-C audio data
151 8       string          AIFC            audio/x-aiff
152 #                                       IFF/8SVX audio data
153 8       string          8SVX            audio/x-aiff
154
155
156
157 # Creative Labs AUDIO stuff
158 #                                       Standard MIDI data
159 0       string  MThd                    audio/unknown
160 #>9     byte    >0                      (format %d)
161 #>11    byte    >1                      using %d channels
162 #                                       Creative Music (CMF) data
163 0       string  CTMF                    audio/unknown
164 #                                       SoundBlaster instrument data
165 0       string  SBI                     audio/unknown
166 #                                       Creative Labs voice data
167 0       string  Creative\ Voice\ File   audio/unknown
168 ## is this next line right?  it came this way...
169 #>19    byte    0x1A
170 #>23    byte    >0                      - version %d
171 #>22    byte    >0                      \b.%d
172
173 # [GRR 950115:  is this also Creative Labs?  Guessing that first line
174 #  should be string instead of unknown-endian long...]
175 #0      long            0x4e54524b      MultiTrack sound data
176 #0      string          NTRK            MultiTrack sound data
177 #>4     long            x               - version %ld
178
179 # Microsoft WAVE format (*.wav)
180 # [GRR 950115:  probably all of the shorts and longs should be leshort/lelong]
181 #                                       Microsoft RIFF
182 0       string          RIFF
183 #                                       - WAVE format
184 >8      string          WAVE            audio/x-wav
185 >8      string/B        AVI             video/x-msvideo
186 #
187 >8      string          CDRA            image/x-coreldraw
188
189 # AAC (aka MPEG-2 NBC)
190 0       beshort&0xfff6    0xfff0          audio/X-HX-AAC-ADTS
191 0       string          ADIF            audio/X-HX-AAC-ADIF
192 0       beshort&0xffe0  0x56e0          audio/MP4A-LATM
193 0       beshort         0x4De1          audio/MP4A-LATM
194
195 # MPEG Layer 3 sound files
196 0       beshort         &0xffe0         audio/mpeg
197 #MP3 with ID3 tag
198 0       string          ID3             audio/mpeg
199 # Ogg/Vorbis
200 0       string          OggS            application/ogg
201
202 #------------------------------------------------------------------------------
203 # c-lang:  file(1) magic for C programs or various scripts
204 #
205
206 # XPM icons (Greg Roelofs, newt@uchicago.edu)
207 # ideally should go into "images", but entries below would tag XPM as C source
208 0       string          /*\ XPM         image/x-xpmi 7bit
209
210 # 3DS (3d Studio files) Conflicts with diff output 0x3d '='
211 #16     beshort         0x3d3d          image/x-3ds
212
213 # this first will upset you if you're a PL/1 shop... (are there any left?)
214 # in which case rm it; ascmagic will catch real C programs
215 #                                       C or REXX program text
216 #0      string          /*              text/x-c
217 #                                       C++ program text
218 #0      string          //              text/x-c++
219
220 #------------------------------------------------------------------------------
221 # commands:  file(1) magic for various shells and interpreters
222 #
223 #0       string          :\ shell archive or commands for antique kernel text
224 0       string          #!/bin/sh               application/x-shellscript
225 0       string          #!\ /bin/sh             application/x-shellscript
226 0       string          #!/bin/csh              application/x-shellscript
227 0       string          #!\ /bin/csh            application/x-shellscript
228 # korn shell magic, sent by George Wu, gwu@clyde.att.com
229 0       string          #!/bin/ksh              application/x-shellscript
230 0       string          #!\ /bin/ksh            application/x-shellscript
231 0       string          #!/bin/tcsh             application/x-shellscript
232 0       string          #!\ /bin/tcsh           application/x-shellscript
233 0       string          #!/usr/local/tcsh       application/x-shellscript
234 0       string          #!\ /usr/local/tcsh     application/x-shellscript
235 0       string          #!/usr/local/bin/tcsh   application/x-shellscript
236 0       string          #!\ /usr/local/bin/tcsh application/x-shellscript
237 # bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
238 0       string          #!/bin/bash                     application/x-shellscript
239 0       string          #!\ /bin/bash           application/x-shellscript
240 0       string          #!/usr/local/bin/bash   application/x-shellscript
241 0       string          #!\ /usr/local/bin/bash application/x-shellscript
242
243 #
244 # zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
245 0       string          #!/bin/zsh              application/x-shellscript
246 0       string          #!/usr/bin/zsh          application/x-shellscript
247 0       string          #!/usr/local/bin/zsh    application/x-shellscript
248 0       string          #!\ /usr/local/bin/zsh  application/x-shellscript
249 0       string          #!/usr/local/bin/ash    application/x-shellscript
250 0       string          #!\ /usr/local/bin/ash  application/x-shellscript
251 #0       string          #!/usr/local/bin/ae     Neil Brown's ae
252 #0       string          #!\ /usr/local/bin/ae   Neil Brown's ae
253 0       string          #!/bin/nawk             application/x-nawk
254 0       string          #!\ /bin/nawk           application/x-nawk
255 0       string          #!/usr/bin/nawk         application/x-nawk
256 0       string          #!\ /usr/bin/nawk       application/x-nawk
257 0       string          #!/usr/local/bin/nawk   application/x-nawk
258 0       string          #!\ /usr/local/bin/nawk application/x-nawk
259 0       string          #!/bin/gawk             application/x-gawk
260 0       string          #!\ /bin/gawk           application/x-gawk
261 0       string          #!/usr/bin/gawk         application/x-gawk
262 0       string          #!\ /usr/bin/gawk       application/x-gawk
263 0       string          #!/usr/local/bin/gawk   application/x-gawk
264 0       string          #!\ /usr/local/bin/gawk application/x-gawk
265 #
266 0       string          #!/bin/awk              application/x-awk
267 0       string          #!\ /bin/awk            application/x-awk
268 0       string          #!/usr/bin/awk          application/x-awk
269 0       string          #!\ /usr/bin/awk        application/x-awk
270 # update to distinguish from *.vcf files by Joerg Jenderek: joerg dot jenderek at web dot de
271 0       regex           BEGIN[[:space:]]*[{]    application/x-awk
272
273 # For Larry Wall's perl language.  The ``eval'' line recognizes an
274 # outrageously clever hack for USG systems.
275 #                               Keith Waclena <keith@cerberus.uchicago.edu>
276 0       string          #!/bin/perl                     application/x-perl
277 0       string          #!\ /bin/perl                   application/x-perl
278 0       string          eval\ "exec\ /bin/perl          application/x-perl
279 0       string          #!/usr/bin/perl                 application/x-perl
280 0       string          #!\ /usr/bin/perl               application/x-perl
281 0       string          eval\ "exec\ /usr/bin/perl      application/x-perl
282 0       string          #!/usr/local/bin/perl           application/x-perl
283 0       string          #!\ /usr/local/bin/perl         application/x-perl
284 0       string          eval\ "exec\ /usr/local/bin/perl application/x-perl
285
286 #------------------------------------------------------------------------------
287 # compress:  file(1) magic for pure-compression formats (no archives)
288 #
289 # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc.
290 #
291 # Formats for various forms of compressed data
292 # Formats for "compress" proper have been moved into "compress.c",
293 # because it tries to uncompress it to figure out what's inside.
294
295 # standard unix compress
296 0       string          \037\235        application/x-compress
297
298 # gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
299 0       string          \037\213        application/x-gzip
300
301 0               string                  PK\003\004              application/x-zip
302
303 # RAR archiver (Greg Roelofs, newt@uchicago.edu)
304 0       string          Rar!            application/x-rar
305
306 # According to gzip.h, this is the correct byte order for packed data.
307 0       string          \037\036        application/octet-stream
308 #
309 # This magic number is byte-order-independent.
310 #
311 0       short           017437          application/octet-stream
312
313 # XXX - why *two* entries for "compacted data", one of which is
314 # byte-order independent, and one of which is byte-order dependent?
315 #
316 # compacted data
317 0       short           0x1fff          application/octet-stream
318 0       string          \377\037        application/octet-stream
319 # huf output
320 0       short           0145405         application/octet-stream
321
322 # Squeeze and Crunch...
323 # These numbers were gleaned from the Unix versions of the programs to
324 # handle these formats.  Note that I can only uncrunch, not crunch, and
325 # I didn't have a crunched file handy, so the crunch number is untested.
326 #                               Keith Waclena <keith@cerberus.uchicago.edu>
327 #0      leshort         0x76FF          squeezed data (CP/M, DOS)
328 #0      leshort         0x76FE          crunched data (CP/M, DOS)
329
330 # Freeze
331 #0      string          \037\237        Frozen file 2.1
332 #0      string          \037\236        Frozen file 1.0 (or gzip 0.5)
333
334 # lzh?
335 #0      string          \037\240        LZH compressed data
336
337 257     string          ustar\0         application/x-tar       posix
338 257     string          ustar\040\040\0         application/x-tar       gnu
339
340 0       short           070707          application/x-cpio
341 0       short           0143561         application/x-cpio      swapped
342
343 0       string          =<ar>           application/x-archive
344 0       string          \!<arch>        application/x-archive
345 >8      string          debian          application/x-debian-package
346
347 #------------------------------------------------------------------------------
348 #
349 # RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
350 #
351 0       beshort         0xedab
352 >2      beshort         0xeedb          application/x-rpm
353
354 0       lelong&0x8080ffff       0x0000081a      application/x-arc       lzw
355 0       lelong&0x8080ffff       0x0000091a      application/x-arc       squashed
356 0       lelong&0x8080ffff       0x0000021a      application/x-arc       uncompressed
357 0       lelong&0x8080ffff       0x0000031a      application/x-arc       packed
358 0       lelong&0x8080ffff       0x0000041a      application/x-arc       squeezed
359 0       lelong&0x8080ffff       0x0000061a      application/x-arc       crunched
360
361 0       leshort 0xea60  application/x-arj
362
363 # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
364 2       string  -lh0-   application/x-lharc     lh0
365 2       string  -lh1-   application/x-lharc     lh1
366 2       string  -lz4-   application/x-lharc     lz4
367 2       string  -lz5-   application/x-lharc     lz5
368 #       [never seen any but the last; -lh4- reported in comp.compression:]
369 2       string  -lzs-   application/x-lha       lzs
370 2       string  -lh\ -  application/x-lha       lh
371 2       string  -lhd-   application/x-lha       lhd
372 2       string  -lh2-   application/x-lha       lh2
373 2       string  -lh3-   application/x-lha       lh3
374 2       string  -lh4-   application/x-lha       lh4
375 2       string  -lh5-   application/x-lha       lh5
376 2       string  -lh6-   application/x-lha       lh6
377 2       string  -lh7-   application/x-lha       lh7
378 # Shell archives
379 10      string  #\ This\ is\ a\ shell\ archive  application/octet-stream        x-shell
380
381 #------------------------------------------------------------------------------
382 # frame:  file(1) magic for FrameMaker files
383 #
384 # This stuff came on a FrameMaker demo tape, most of which is
385 # copyright, but this file is "published" as witness the following:
386 #
387 0       string          \<MakerFile     application/x-frame
388 0       string          \<MIFFile       application/x-frame
389 0       string          \<MakerDictionary       application/x-frame
390 0       string          \<MakerScreenFon        application/x-frame
391 0       string          \<MML           application/x-frame
392 0       string          \<Book          application/x-frame
393 0       string          \<Maker         application/x-frame
394
395 #------------------------------------------------------------------------------
396 # html:  file(1) magic for HTML (HyperText Markup Language) docs
397 #
398 # from Daniel Quinlan <quinlan@yggdrasil.com>
399 #
400 0       string          \<HEAD  text/html
401 0       string          \<head  text/html
402 0       string          \<TITLE text/html
403 0       string          \<title text/html
404 0       string          \<html  text/html
405 0       string          \<HTML  text/html
406 0       string          \<!--   text/html
407 0       string          \<h1    text/html
408 0       string          \<H1    text/html
409 0       string/c        \<!doctype\ html        text/html
410
411 #------------------------------------------------------------------------------
412 # images:  file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
413 #
414 # originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
415 # additions by janl@ifi.uio.no as well as others. Jan also suggested
416 # merging several one- and two-line files into here.
417 #
418 # XXX - byte order for GIF and TIFF fields?
419 # [GRR:  TIFF allows both byte orders; GIF is probably little-endian]
420 #
421
422 # [GRR:  what the hell is this doing in here?]
423 #0      string          xbtoa           btoa'd file
424
425 # PBMPLUS
426 #                                       PBM file
427 0       string          P1              image/x-portable-bitmap 7bit
428 #                                       PGM file
429 0       string          P2              image/x-portable-greymap        7bit
430 #                                       PPM file
431 0       string          P3              image/x-portable-pixmap 7bit
432 #                                       PBM "rawbits" file
433 0       string          P4              image/x-portable-bitmap
434 #                                       PGM "rawbits" file
435 0       string          P5              image/x-portable-greymap
436 #                                       PPM "rawbits" file
437 0       string          P6              image/x-portable-pixmap
438
439 # NIFF (Navy Interchange File Format, a modification of TIFF)
440 # [GRR:  this *must* go before TIFF]
441 0       string          IIN1            image/x-niff
442
443 # TIFF and friends
444 #                                       TIFF file, big-endian
445 0       string          MM              image/tiff
446 #                                       TIFF file, little-endian
447 0       string          II              image/tiff
448
449 # possible GIF replacements; none yet released!
450 # (Greg Roelofs, newt@uchicago.edu)
451 #
452 # GRR 950115:  this was mine ("Zip GIF"):
453 #                                       ZIF image (GIF+deflate alpha)
454 0       string          GIF94z          image/unknown
455 #
456 # GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
457 #                                       FGF image (GIF+deflate beta)
458 0       string          FGF95a          image/unknown
459 #
460 # GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
461 # (best; not yet implemented):
462 #                                       PBF image (deflate compression)
463 0       string          PBF             image/unknown
464
465 # GIF
466 0       string          GIF             image/gif
467
468 # JPEG images
469 0       beshort         0xffd8          image/jpeg
470
471 # PC bitmaps (OS/2, Windoze BMP files)  (Greg Roelofs, newt@uchicago.edu)
472 0       string          BM              image/bmp
473 #>14    byte            12              (OS/2 1.x format)
474 #>14    byte            64              (OS/2 2.x format)
475 #>14    byte            40              (Windows 3.x format)
476 #0      string          IC              icon
477 #0      string          PI              pointer
478 #0      string          CI              color icon
479 #0      string          CP              color pointer
480 #0      string          BA              bitmap array
481
482 # CDROM Filesystems
483 32769    string    CD001     application/x-iso9660
484
485 # Newer StuffIt archives (grant@netbsd.org)
486 0       string          StuffIt                 application/x-stuffit
487 #>162   string          >0                      : %s
488
489 # BinHex is the Macintosh ASCII-encoded file format (see also "apple")
490 # Daniel Quinlan, quinlan@yggdrasil.com
491 11      string  must\ be\ converted\ with\ BinHex\ 4    application/mac-binhex40
492 ##>41   string  x                                       \b, version %.3s
493
494
495 #------------------------------------------------------------------------------
496 # lisp:  file(1) magic for lisp programs
497 #
498 # various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
499 0       string  ;;                      text/plain      8bit
500 # Emacs 18 - this is always correct, but not very magical.
501 0       string  \012(                   application/x-elc
502 # Emacs 19
503 0       string  ;ELC\023\000\000\000    application/x-elc
504
505 #------------------------------------------------------------------------------
506 # mail.news:  file(1) magic for mail and news
507 #
508 # There are tests to ascmagic.c to cope with mail and news.
509 0       string          Relay-Version:  message/rfc822  7bit
510 0       string          #!\ rnews       message/rfc822  7bit
511 0       string          N#!\ rnews      message/rfc822  7bit
512 0       string          Forward\ to     message/rfc822  7bit
513 0       string          Pipe\ to        message/rfc822  7bit
514 0       string          Return-Path:    message/rfc822  7bit
515 0       string          Received:       message/rfc822
516 0       string          Path:           message/news    8bit
517 0       string          Xref:           message/news    8bit
518 0       string          From:           message/rfc822  7bit
519 0       string          Article         message/news    8bit
520 #------------------------------------------------------------------------------
521 # msword: file(1) magic for MS Word files
522 #
523 # Contributor claims:
524 # Reversed-engineered MS Word magic numbers
525 #
526
527 0       string          \376\067\0\043                  application/msword
528 # disable this one because it applies also to other
529 # Office/OLE documents for which msword is not correct. See PR#2608.
530 # from magic file of the apache
531 #0      string          \320\317\021\340\241\261        application/msword
532 512     string          \354\245\301                    application/msword
533 0       string          \333\245-\0\0\0                 application/msword
534
535
536
537 #------------------------------------------------------------------------------
538 # printer:  file(1) magic for printer-formatted files
539 #
540
541 # PostScript
542 0       string          %!              application/postscript
543 0       string          \004%!          application/postscript
544
545 # Acrobat
546 # (due to clamen@cs.cmu.edu)
547 0       string          %PDF-           application/pdf
548
549 #------------------------------------------------------------------------------
550 # sc:  file(1) magic for "sc" spreadsheet
551 #
552 38      string          Spreadsheet     application/x-sc
553
554 #------------------------------------------------------------------------------
555 # tex:  file(1) magic for TeX files
556 #
557 # XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
558 #
559 # From <conklin@talisman.kaleida.com>
560
561 # Although we may know the offset of certain text fields in TeX DVI
562 # and font files, we can't use them reliably because they are not
563 # zero terminated. [but we do anyway, christos]
564 0       string          \367\002        application/x-dvi
565 #0      string          \367\203        TeX generic font data
566 #0      string          \367\131        TeX packed font data
567 #0      string          \367\312        TeX virtual font data
568 #0      string          This\ is\ TeX,  TeX transcript text
569 #0      string          This\ is\ METAFONT,     METAFONT transcript text
570
571 # There is no way to detect TeX Font Metric (*.tfm) files without
572 # breaking them apart and reading the data.  The following patterns
573 # match most *.tfm files generated by METAFONT or afm2tfm.
574 2       string          \000\021        application/x-tex-tfm
575 2       string          \000\022        application/x-tex-tfm
576 #>34    string          >\0             (%s)
577
578 # Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
579 0       string          \\input\ texinfo                text/x-texinfo
580 0       string          This\ is\ Info\ file    text/x-info
581
582 # correct TeX magic for Linux (and maybe more)
583 # from Peter Tobias (tobias@server.et-inf.fho-emden.de)
584 #
585 0       leshort         0x02f7          application/x-dvi
586
587 # RTF - Rich Text Format
588 0       string          {\\rtf          text/rtf
589
590 #------------------------------------------------------------------------------
591 # animation:  file(1) magic for animation/movie formats
592 #
593 # animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8)
594 #                                               MPEG file
595 # MPEG sequences
596 0       belong             0x000001BA
597 >4      byte               &0x40          video/mp2p
598 >4      byte               ^0x40          video/mpeg
599 0       belong             0x000001BB     video/mpeg
600 0       belong             0x000001B0     video/mp4v-es
601 0       belong             0x000001B5     video/mp4v-es
602 0       belong             0x000001B3     video/mpv
603 0       belong&0xFF5FFF1F  0x47400010     video/mp2t
604 0       belong             0x00000001
605 >4      byte&0x1F          0x07           video/h264
606
607 # FLI animation format
608 0       leshort         0xAF11                          video/fli
609 # FLC animation format
610 0       leshort         0xAF12                          video/flc
611 #
612 # SGI and Apple formats
613 # Added ISO mimes
614 0       string          MOVI          video/sgi
615 4       string          moov          video/quicktime
616 4       string          mdat          video/quicktime
617 4       string          wide          video/quicktime
618 4       string          skip          video/quicktime
619 4       string          free          video/quicktime
620 4       string          idsc          image/x-quicktime
621 4       string          idat          image/x-quicktime
622 4       string          pckg          application/x-quicktime
623 4       string/B        jP            image/jp2
624 4       string          ftyp
625 >8      string          isom          video/mp4
626 >8      string          mp41          video/mp4
627 >8      string          mp42          video/mp4
628 >8      string/B        jp2           image/jp2
629 >8      string          3gp           video/3gpp
630 >8      string          avc1          video/3gpp
631 >8      string          mmp4          video/mp4
632 >8      string/B        M4A           audio/mp4
633 >8      string/B        qt            video/quicktime
634 # The contributor claims:
635 #   I couldn't find a real magic number for these, however, this
636 #   -appears- to work.  Note that it might catch other files, too,
637 #   so BE CAREFUL!
638 #
639 # Note that title and author appear in the two 20-byte chunks
640 # at decimal offsets 2 and 22, respectively, but they are XOR'ed with
641 # 255 (hex FF)! DL format SUCKS BIG ROCKS.
642 #
643 #                                               DL file version 1 , medium format (160x100, 4 images/screen)
644 0       byte            1                       video/unknown
645 0       byte            2                       video/unknown
646 #
647 # Databases
648 #
649 # GDBM magic numbers
650 #  Will be maintained as part of the GDBM distribution in the future.
651 #  <downsj@teeny.org>
652 0       belong  0x13579ace      application/x-gdbm
653 0       lelong  0x13579ace      application/x-gdbm
654 0       string  GDBM            application/x-gdbm
655 #
656 0       belong  0x061561        application/x-dbm
657 #
658 # Executables
659 #
660 0       string          \177ELF
661 >16     leshort         0               application/octet-stream
662 >16     leshort         1               application/x-object
663 >16     leshort         2               application/x-executable
664 >16     leshort         3               application/x-sharedlib
665 >16     leshort         4               application/x-coredump
666 >16     beshort         0               application/octet-stream
667 >16     beshort         1               application/x-object
668 >16     beshort         2               application/x-executable
669 >16     beshort         3               application/x-sharedlib
670 >16     beshort         4               application/x-coredump
671 #
672 # DOS
673 0               string                  MZ                              application/x-dosexec
674 #
675 # KDE
676 0               string  [KDE\ Desktop\ Entry]   application/x-kdelnk
677 0               string  \#\ KDE\ Config\ File   application/x-kdelnk
678 # xmcd database file for kscd
679 0               string  \#\ xmcd                text/xmcd
680
681 #------------------------------------------------------------------------------
682 # pkgadd:  file(1) magic for SysV R4 PKG Datastreams
683 #
684 0       string          #\ PaCkAgE\ DaTaStReAm  application/x-svr4-package
685
686 #PNG Image Format
687 0       string          \x89PNG                 image/png
688
689 # MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
690 0       string          \x8aMNG                 video/x-mng
691 0       string          \x8aJNG                 video/x-jng
692
693 #------------------------------------------------------------------------------
694 # Hierarchical Data Format, used to facilitate scientific data exchange
695 # specifications at http://hdf.ncsa.uiuc.edu/
696 0       belong          0x0e031301      Hierarchical Data Format (version 4) data
697 0       string          \211HDF\r\n\032 Hierarchical Data Format (version 5) data
698
699 # Adobe Photoshop
700 0       string          8BPS                    image/x-photoshop
701
702 # Felix von Leitner <felix-file@fefe.de>
703 0       string          d8:announce             application/x-bittorrent
704
705
706 # lotus 1-2-3 document
707 0       belong  0x00001a00      application/x-123
708 0       belong  0x00000200      application/x-123
709
710 # MS Access database
711 4       string  Standard\ Jet\ DB       application/msaccess
712
713 ## magic for XBase files
714 #0      byte       0x02
715 #>8     leshort   >0
716 #>>12   leshort    0    application/x-dbf
717 #
718 #0      byte       0x03
719 #>8     leshort   >0
720 #>>12   leshort    0    application/x-dbf
721 #
722 #0      byte       0x04
723 #>8     leshort   >0
724 #>>12   leshort    0    application/x-dbf
725 #
726 #0      byte       0x05
727 #>8     leshort   >0
728 #>>12   leshort    0    application/x-dbf
729 #
730 #0      byte       0x30
731 #>8     leshort   >0
732 #>>12   leshort    0    application/x-dbf
733 #
734 #0      byte       0x43
735 #>8     leshort   >0
736 #>>12   leshort    0    application/x-dbf
737 #
738 #0      byte       0x7b
739 #>8     leshort   >0
740 #>>12   leshort    0    application/x-dbf
741 #
742 #0      byte       0x83
743 #>8     leshort   >0
744 #>>12   leshort    0    application/x-dbf
745 #
746 #0      byte       0x8b
747 #>8     leshort   >0
748 #>>12   leshort    0    application/x-dbf
749 #
750 #0      byte       0x8e
751 #>8     leshort   >0
752 #>>12   leshort    0    application/x-dbf
753 #
754 #0      byte       0xb3
755 #>8     leshort   >0
756 #>>12   leshort    0    application/x-dbf
757 #
758 #0      byte       0xf5
759 #>8     leshort   >0
760 #>>12   leshort    0    application/x-dbf
761 #
762 #0      leshort         0x0006          application/x-dbt
763
764 # Debian has entries for the old PGP formats:
765 # pgp:  file(1) magic for Pretty Good Privacy
766 # see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
767 0       beshort         0x9900                  text/PGP key public ring
768 0       beshort         0x9501                  text/PGP key security ring
769 0       beshort         0x9500                  text/PGP key security ring
770 0       beshort         0xa600                  text/PGP encrypted data
771 0       string          -----BEGIN\040PGP       text/PGP armored data
772 >15     string          PUBLIC\040KEY\040BLOCK- public key block
773 >15     string          MESSAGE-                message
774 >15     string          SIGNED\040MESSAGE-      signed message
775 >15     string          PGP\040SIGNATURE-       signature
776 0       beshort         0x8501                  data
777 #
778 # GnuPG Magic:
779 #
780 0       beshort         0x9901                  text/GnuPG key public ring
781 0       beshort         0x8501                  text/OpenPGP data
782
783 # flash:        file(1) magic for Macromedia Flash file format
784 #
785 # See
786 #
787 #       http://www.macromedia.com/software/flash/open/
788 #
789 0       string          FWS
790 >3      byte            x                       application/x-shockwave-flash
791
792 # The following paramaters are created for Namazu.
793 # <http://www.namazu.org/>
794 #
795 # 1999/08/13
796 #0      string          \<!--\ MHonArc          text/html; x-type=mhonarc
797 0       string          BZh                     application/x-bzip2
798
799 # 1999/09/09
800 # VRML (suggested by Masao Takaku)
801 0       string          #VRML\ V1.0\ ascii      model/vrml
802 0       string          #VRML\ V2.0\ utf8       model/vrml
803
804 #------------------------------------------------------------------------------
805 # ichitaro456: file(1) magic for Just System Word Processor Ichitaro
806 #
807 # Contributor kenzo-:
808 # Reversed-engineered JS Ichitaro magic numbers
809 #
810
811 0       string          DOC
812 >43     byte            0x14            application/ichitaro4
813 >144    string  JDASH           application/ichitaro4
814
815 0       string          DOC
816 >43     byte            0x15            application/ichitaro5
817
818 0       string          DOC
819 >43     byte            0x16            application/ichitaro6
820
821 #------------------------------------------------------------------------------
822 # office97: file(1) magic for MicroSoft Office files
823 #
824 # Contributor kenzo-:
825 # Reversed-engineered MS Office magic numbers
826 #
827
828 #0       string          \320\317\021\340\241\261\032\341
829 #>48     byte            0x1B            application/excel
830
831 2080    string  Microsoft\ Excel\ 5.0\ Worksheet        application/excel
832 2114    string  Biff5                                   application/excel
833
834 0       string  \224\246\056            application/msword
835
836 0       belong  0x31be0000              application/msword
837
838 0       string  PO^Q`                   application/msword
839
840 0       string  \320\317\021\340\241\261\032\341
841 >546    string  bjbj                    application/msword
842 >546    string  jbjb                    application/msword
843
844 512     string  R\0o\0o\0t\0\ \0E\0n\0t\0r\0y   application/msword
845
846 2080    string  Microsoft\ Word\ 6.0\ Document  application/msword
847 2080    string  Documento\ Microsoft\ Word\ 6   application/msword
848 2112    string  MSWordDoc                       application/msword
849
850 #0      string  \320\317\021\340\241\261\032\341        application/powerpoint
851 0       string  \320\317\021\340\241\261\032\341        application/msword
852
853 0       string  #\ PaCkAgE\ DaTaStReAm  application/x-svr4-package
854
855
856 # WinNT/WinCE PE files (Warner Losh, imp@village.org)
857 #
858 128             string  PE\000\000      application/octet-stream
859 0               string  PE\000\000      application/octet-stream
860
861 # miscellaneous formats
862 0               string  LZ              application/octet-stream
863
864
865 # .EXE formats (Greg Roelofs, newt@uchicago.edu)
866 #
867 0               string  MZ
868 >24             string  @               application/octet-stream
869
870 0               string  MZ
871 >30             string  Copyright\ 1989-1990\ PKWARE\ Inc.      application/x-zip
872
873 0               string  MZ
874 >30             string  PKLITE\ Copr.   application/x-zip
875
876 0               string  MZ
877 >36             string  LHa's\ SFX      application/x-lha
878
879 0               string  MZ              application/octet-stream
880
881 # LHA archiver
882 2               string  -lh
883 >6              string  -               application/x-lha
884
885
886 # Zoo archiver
887 20              lelong  0xfdc4a7dc      application/x-zoo
888
889 # ARC archiver
890 0               lelong&0x8080ffff       0x0000081a      application/x-arc
891 0               lelong&0x8080ffff       0x0000091a      application/x-arc
892 0               lelong&0x8080ffff       0x0000021a      application/x-arc
893 0               lelong&0x8080ffff       0x0000031a      application/x-arc
894 0               lelong&0x8080ffff       0x0000041a      application/x-arc
895 0               lelong&0x8080ffff       0x0000061a      application/x-arc
896
897 # Microsoft Outlook's Transport Neutral Encapsulation Format (TNEF)
898 0               lelong  0x223e9f78      application/ms-tnef
899
900 # From: stephane.loeuillet@tiscali.f
901 # http://www.djvuzone.org/
902 0       string          AT&TFORM        image/x.djvu
903
904 # Danny Milosavljevic <danny.milo@gmx.net>
905 # this are adrift (adventure game standard) game files, extension .taf
906 # depending on version magic continues with 0x93453E6139FA (V 4.0)
907 # 0x9445376139FA (V 3.90)
908 # 0x9445366139FA (V 3.80)
909 # this is from source (http://www.adrift.org.uk/) and I have some taf
910 # files, and checked them.
911 #0      belong  0x3C423FC9
912 #>4     belong  0x6A87C2CF      application/x-adrift
913 #0      string  \000\000\001\000        image/x-ico
914
915 # Quark Xpress 3 Files:
916 # (made the mimetype up)
917 0       string  \0\0MMXPR3\0    application/x-quark-xpress-3
918
919 # EET archive
920 # From: Tilman Sauerbeck <tilman@code-monkey.de>
921 0       belong  0x1ee7ff00      application/x-eet
922
923 # From: Denis Knauf, via gentoo.
924 0       string  fLaC            audio/x-flac
925 0       string  CWS             application/x-shockwave-flash
926
927 # Hangul Document Files:
928 # Reversed-engineered HWP magic numbers
929 # From: Won-Kyu Park <wkpark@kldp.org>
930 512     string          R\0o\0o\0t\0    application/x-hwp
931
932 0       string/c        BEGIN:VCARD     text/x-vcard
933 0       string          WordPro\0       application/vnd.lotus-wordpro
934 0       string          WordPro\r\373   application/vnd.lotus-wordpro
935 0       string          CPC\262         image/cpi
936
937
938 128     string          DICM            application/dicom