marcel 0.3.2 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/lib/marcel.rb +3 -2
  3. data/lib/marcel/magic.rb +147 -0
  4. data/lib/marcel/mime_type.rb +68 -67
  5. data/lib/marcel/mime_type/definitions.rb +8 -3
  6. data/lib/marcel/tables.rb +2515 -0
  7. data/lib/marcel/version.rb +1 -1
  8. metadata +42 -235
  9. data/.gitignore +0 -1
  10. data/.travis.yml +0 -7
  11. data/Gemfile +0 -4
  12. data/Gemfile.lock +0 -26
  13. data/README.md +0 -50
  14. data/Rakefile +0 -33
  15. data/marcel.gemspec +0 -28
  16. data/test/declared_type_test.rb +0 -17
  17. data/test/extension_test.rb +0 -25
  18. data/test/fixtures/image.gif +0 -0
  19. data/test/fixtures/magic/application/msword/msword.doc +0 -0
  20. data/test/fixtures/magic/application/pdf/illustrator-seen-as-pdf.ai +22 -6302
  21. data/test/fixtures/magic/application/pdf/pdf.pdf +0 -0
  22. data/test/fixtures/magic/application/rtf/rtf.rtf +0 -1
  23. data/test/fixtures/magic/application/vnd.adobe.flash.movie/flash.swf +0 -0
  24. data/test/fixtures/magic/application/vnd.openxmlformats-officedocument.presentationml.presentation/vnd.openxmlformats-officedocument.presentationml.presentation.pptx +0 -0
  25. data/test/fixtures/magic/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet/vnd.openxmlformats-officedocument.spreadsheetml.sheet.xlsx +0 -0
  26. data/test/fixtures/magic/application/vnd.openxmlformats-officedocument.wordprocessingml.document/vnd.openxmlformats-officedocument.wordprocessingml.document.docx +0 -0
  27. data/test/fixtures/magic/application/x-font-ttf.ttf +0 -0
  28. data/test/fixtures/magic/application/xml/xml.xml +0 -1
  29. data/test/fixtures/magic/application/zip/sketch.sketch +0 -0
  30. data/test/fixtures/magic/application/zip/zip.zip +0 -0
  31. data/test/fixtures/magic/audio/flac/flac.flac +0 -0
  32. data/test/fixtures/magic/audio/mp4/m4a.m4a +0 -0
  33. data/test/fixtures/magic/audio/mp4/mp4.m4a +0 -0
  34. data/test/fixtures/magic/audio/mpeg/mpeg.mp3 +0 -0
  35. data/test/fixtures/magic/audio/x-wav/wav.wav +0 -0
  36. data/test/fixtures/magic/audio/x-wav/x-wav.wav +0 -0
  37. data/test/fixtures/magic/image/bmp/bmp.bmp +0 -0
  38. data/test/fixtures/magic/image/gif/gif.gif +0 -0
  39. data/test/fixtures/magic/image/jpeg/jpeg.jpg +0 -0
  40. data/test/fixtures/magic/image/png/png.png +0 -0
  41. data/test/fixtures/magic/image/svg+xml/svg.svg +0 -1
  42. data/test/fixtures/magic/image/tiff/tiff.tif +0 -0
  43. data/test/fixtures/magic/image/vnd.adobe.photoshop/photoshop-large-document-format.psb +0 -0
  44. data/test/fixtures/magic/image/vnd.adobe.photoshop/vnd.adobe.photoshop.psd +0 -0
  45. data/test/fixtures/magic/image/vnd.dwg/x-dwg.dwg +0 -0
  46. data/test/fixtures/magic/image/vnd.microsoft.icon/ico.ico +0 -0
  47. data/test/fixtures/magic/image/webp/webp.webp +0 -0
  48. data/test/fixtures/magic/image/x-eps/postscript/postscript.eps +0 -0
  49. data/test/fixtures/magic/image/x-eps/x-eps.eps +0 -0
  50. data/test/fixtures/magic/text/html/html.html +0 -3
  51. data/test/fixtures/magic/video/mp4/m4v.m4v +0 -0
  52. data/test/fixtures/magic/video/mp4/mp4.mp4 +0 -0
  53. data/test/fixtures/magic/video/quicktime/quicktime.mov +0 -0
  54. data/test/fixtures/magic/video/webm/webm.mkv +0 -0
  55. data/test/fixtures/name/application/illustrator/illustrator.ai +27 -6301
  56. data/test/fixtures/name/application/javascript/javascript.js +0 -3
  57. data/test/fixtures/name/application/json/json.json +0 -3
  58. data/test/fixtures/name/application/msword/msword.doc +0 -0
  59. data/test/fixtures/name/application/pdf/pdf.pdf +0 -0
  60. data/test/fixtures/name/application/rtf/rtf.rtf +0 -1
  61. data/test/fixtures/name/application/sql/sql.sql +0 -0
  62. data/test/fixtures/name/application/vnd.adobe.flash.movie/flash.swf +0 -0
  63. data/test/fixtures/name/application/vnd.android.package-archive/vnd.android.package-archive.apk +0 -0
  64. data/test/fixtures/name/application/vnd.apple.keynote/vnd.apple.keynote.key +0 -0
  65. data/test/fixtures/name/application/vnd.apple.numbers/vnd.apple.numbers.numbers +0 -0
  66. data/test/fixtures/name/application/vnd.apple.pages/vnd.apple.pages.pages +0 -0
  67. data/test/fixtures/name/application/vnd.ms-excel.sheet.binary.macroenabled.12/vnd.ms-excel.sheet.binary.macroenabled.12.xlsb +0 -0
  68. data/test/fixtures/name/application/vnd.ms-excel.sheet.macroenabled.12/vnd.ms-excel.sheet.macroenabled.12.xlsm +0 -0
  69. data/test/fixtures/name/application/vnd.ms-excel.template.macroenabled.12/vnd.ms-excel.template.macroenabled.12.xltm +0 -0
  70. data/test/fixtures/name/application/vnd.ms-excel/vnd.ms-excel.xls +0 -0
  71. data/test/fixtures/name/application/vnd.ms-powerpoint.presentation.macroenabled.12/vnd.ms-powerpoint.presentation.macroenabled.12.pptm +0 -0
  72. data/test/fixtures/name/application/vnd.ms-powerpoint.slideshow.macroenabled.12/vnd.ms-powerpoint.slideshow.macroenabled.12.ppsm +0 -0
  73. data/test/fixtures/name/application/vnd.ms-powerpoint.template.macroenabled.12/vnd.ms-powerpoint.template.macroenabled.12.potm +0 -0
  74. data/test/fixtures/name/application/vnd.ms-powerpoint/vnd.ms-powerpoint.ppt +0 -0
  75. data/test/fixtures/name/application/vnd.ms-word.document.macroenabled.12/vnd.ms-word.document.macroenabled.12.docm +0 -0
  76. data/test/fixtures/name/application/vnd.ms-word.template.macroenabled.12/vnd.ms-word.template.macroenabled.12.dotm +0 -0
  77. data/test/fixtures/name/application/vnd.openxmlformats-officedocument.presentationml.presentation/vnd.openxmlformats-officedocument.presentationml.presentation.pptx +0 -0
  78. data/test/fixtures/name/application/vnd.openxmlformats-officedocument.presentationml.slideshow/vnd.openxmlformats-officedocument.presentationml.slideshow.ppsx +0 -0
  79. data/test/fixtures/name/application/vnd.openxmlformats-officedocument.presentationml.template/vnd.openxmlformats-officedocument.presentationml.template.potx +0 -0
  80. data/test/fixtures/name/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet/downloaded-from-google-docs.xlsx +0 -0
  81. data/test/fixtures/name/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet/vnd.openxmlformats-officedocument.spreadsheetml.sheet.xlsx +0 -0
  82. data/test/fixtures/name/application/vnd.openxmlformats-officedocument.wordprocessingml.document/vnd.openxmlformats-officedocument.wordprocessingml.document.docx +0 -0
  83. data/test/fixtures/name/application/vnd.openxmlformats-officedocument.wordprocessingml.template/vnd.openxmlformats-officedocument.wordprocessingml.template.dotx +0 -0
  84. data/test/fixtures/name/application/x-font-ttf.ttf +0 -0
  85. data/test/fixtures/name/application/zip/zip.zip +0 -0
  86. data/test/fixtures/name/audio/flac/flac.flac +0 -0
  87. data/test/fixtures/name/audio/mp4/mp4.m4a +0 -0
  88. data/test/fixtures/name/audio/mpeg/mpeg.mp3 +0 -0
  89. data/test/fixtures/name/audio/x-wav/x-wav.wav +0 -0
  90. data/test/fixtures/name/image/bmp/bmp.bmp +0 -0
  91. data/test/fixtures/name/image/gif/gif.gif +0 -0
  92. data/test/fixtures/name/image/heic.heic +0 -0
  93. data/test/fixtures/name/image/heif.heif +0 -0
  94. data/test/fixtures/name/image/jpeg/jpeg.jpg +0 -0
  95. data/test/fixtures/name/image/png/png.png +0 -0
  96. data/test/fixtures/name/image/svg+xml/svg.svg +0 -1
  97. data/test/fixtures/name/image/tiff/tiff.tif +0 -0
  98. data/test/fixtures/name/image/tiff/tiff.tiff +0 -0
  99. data/test/fixtures/name/image/vnd.adobe.photoshop/saved-as-large-document-format.psb +0 -0
  100. data/test/fixtures/name/image/vnd.adobe.photoshop/vnd.adobe.photoshop.psd +0 -0
  101. data/test/fixtures/name/image/x-eps/postscript/postscript.eps +0 -0
  102. data/test/fixtures/name/image/x-eps/x-eps.eps +0 -0
  103. data/test/fixtures/name/message/rfc822/rfc822.eml +0 -34
  104. data/test/fixtures/name/text/csv/csv.csv +0 -2
  105. data/test/fixtures/name/text/html/html.html +0 -3
  106. data/test/fixtures/name/text/plain/plain.asc +0 -1
  107. data/test/fixtures/name/text/plain/plain.txt +0 -1
  108. data/test/fixtures/name/text/x-log/x-log.log +0 -1
  109. data/test/fixtures/name/video/mp4/mp4.mp4 +0 -0
  110. data/test/fixtures/name/video/quicktime/quicktime.mov +0 -0
  111. data/test/magic_and_declared_type_test.rb +0 -10
  112. data/test/magic_and_name_test.rb +0 -13
  113. data/test/magic_test.rb +0 -13
  114. data/test/mime_type_test.rb +0 -47
  115. data/test/name_test.rb +0 -10
  116. data/test/test_helper.rb +0 -49
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 57f17eae54469b574b2c7ce541bf2c6cf82f180456f6d1f133dd99c13585fbb0
4
- data.tar.gz: b73e492f9d3b2b58abc751ea29a9c5da7fe5c7ef372da6c472c16c3708edd579
3
+ metadata.gz: bc7fbdfb0773a80f6826742b37b9cda29b8052b0bfd150db03b6ba032bac9c1c
4
+ data.tar.gz: c69cee83d060a359318b4302703d276e1ad24aaa73f9c42b4e5af5870a96420e
5
5
  SHA512:
6
- metadata.gz: 140466ed263e260c2936d619d27b584af4b377f02c05acb508a0246cc55730a371023ebc93a183152b593529aac6071a374def41b686d523b85f37818c26b6b9
7
- data.tar.gz: 95f8f724211e266bf3a3ccedfed7c78fd7e35376d74d28e63ceabf538a5945fc01319115391f060bc84cd91ec18e7ed64aa0f607edff83a1026c2fe48a5bfbb5
6
+ metadata.gz: 67ba30b3d8d1f0955397411e478b03844fb53219ceb557411a3059523f21c72fcb5379ae7d9095de1f3053e9c12c3751052db74b27d47a102a78080bb9083776
7
+ data.tar.gz: 7a3178742ed80dcc0f04781baba63dc8758b979d46c11a4ad9f0a365f334cd5ebd9a54ddd39da40f0f9583221bb50e157deee766a67a86fb2525cd19235a8194
data/lib/marcel.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  module Marcel
2
- autoload :VERSION, 'marcel/version'
3
- autoload :MimeType, 'marcel/mime_type'
2
+ require "marcel/version"
3
+ require "marcel/magic"
4
+ require "marcel/mime_type"
4
5
  end
@@ -0,0 +1,147 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Code in this file adapted from the mimemagic gem, released under the MIT License.
4
+ # Copyright (c) 2011 Daniel Mendler. Available at https://github.com/mimemagicrb/mimemagic.
5
+
6
+ require 'marcel/tables'
7
+
8
+ require 'stringio'
9
+
10
+ module Marcel
11
+ # Mime type detection
12
+ class Magic
13
+ attr_reader :type, :mediatype, :subtype
14
+
15
+ # Mime type by type string
16
+ def initialize(type)
17
+ @type = type
18
+ @mediatype, @subtype = type.split('/', 2)
19
+ end
20
+
21
+ # Add custom mime type. Arguments:
22
+ # * <i>type</i>: Mime type
23
+ # * <i>options</i>: Options hash
24
+ #
25
+ # Option keys:
26
+ # * <i>:extensions</i>: String list or single string of file extensions
27
+ # * <i>:parents</i>: String list or single string of parent mime types
28
+ # * <i>:magic</i>: Mime magic specification
29
+ # * <i>:comment</i>: Comment string
30
+ def self.add(type, options)
31
+ extensions = [options[:extensions]].flatten.compact
32
+ TYPES[type] = [extensions,
33
+ [options[:parents]].flatten.compact,
34
+ options[:comment]]
35
+ extensions.each {|ext| EXTENSIONS[ext] = type }
36
+ MAGIC.unshift [type, options[:magic]] if options[:magic]
37
+ end
38
+
39
+ # Removes a mime type from the dictionary. You might want to do this if
40
+ # you're seeing impossible conflicts (for instance, application/x-gmc-link).
41
+ # * <i>type</i>: The mime type to remove. All associated extensions and magic are removed too.
42
+ def self.remove(type)
43
+ EXTENSIONS.delete_if {|ext, t| t == type }
44
+ MAGIC.delete_if {|t, m| t == type }
45
+ TYPES.delete(type)
46
+ end
47
+
48
+ # Returns true if type is a text format
49
+ def text?; mediatype == 'text' || child_of?('text/plain'); end
50
+
51
+ # Mediatype shortcuts
52
+ def image?; mediatype == 'image'; end
53
+ def audio?; mediatype == 'audio'; end
54
+ def video?; mediatype == 'video'; end
55
+
56
+ # Returns true if type is child of parent type
57
+ def child_of?(parent)
58
+ self.class.child?(type, parent)
59
+ end
60
+
61
+ # Get string list of file extensions
62
+ def extensions
63
+ TYPES.key?(type) ? TYPES[type][0] : []
64
+ end
65
+
66
+ # Get mime comment
67
+ def comment
68
+ (TYPES.key?(type) ? TYPES[type][2] : nil).to_s
69
+ end
70
+
71
+ # Lookup mime type by file extension
72
+ def self.by_extension(ext)
73
+ ext = ext.to_s.downcase
74
+ mime = ext[0..0] == '.' ? EXTENSIONS[ext[1..-1]] : EXTENSIONS[ext]
75
+ mime && new(mime)
76
+ end
77
+
78
+ # Lookup mime type by filename
79
+ def self.by_path(path)
80
+ by_extension(File.extname(path))
81
+ end
82
+
83
+ # Lookup mime type by magic content analysis.
84
+ # This is a slow operation.
85
+ def self.by_magic(io)
86
+ mime = magic_match(io, :find)
87
+ mime && new(mime[0])
88
+ end
89
+
90
+ # Lookup all mime types by magic content analysis.
91
+ # This is a slower operation.
92
+ def self.all_by_magic(io)
93
+ magic_match(io, :select).map { |mime| new(mime[0]) }
94
+ end
95
+
96
+ # Return type as string
97
+ def to_s
98
+ type
99
+ end
100
+
101
+ # Allow comparison with string
102
+ def eql?(other)
103
+ type == other.to_s
104
+ end
105
+
106
+ def hash
107
+ type.hash
108
+ end
109
+
110
+ alias == eql?
111
+
112
+ def self.child?(child, parent)
113
+ child == parent || TYPES.key?(child) && TYPES[child][1].any? {|p| child?(p, parent) }
114
+ end
115
+
116
+ def self.magic_match(io, method)
117
+ return magic_match(StringIO.new(io.to_s), method) unless io.respond_to?(:read)
118
+
119
+ io.binmode if io.respond_to?(:binmode)
120
+ io.set_encoding(Encoding::BINARY) if io.respond_to?(:set_encoding)
121
+ buffer = "".encode(Encoding::BINARY)
122
+
123
+ MAGIC.send(method) { |type, matches| magic_match_io(io, matches, buffer) }
124
+ end
125
+
126
+ def self.magic_match_io(io, matches, buffer)
127
+ matches.any? do |offset, value, children|
128
+ match =
129
+ if value
130
+ if Range === offset
131
+ io.read(offset.begin, buffer)
132
+ x = io.read(offset.end - offset.begin + value.bytesize, buffer)
133
+ x && x.include?(value)
134
+ else
135
+ io.read(offset, buffer)
136
+ io.read(value.bytesize, buffer) == value
137
+ end
138
+ end
139
+
140
+ io.rewind
141
+ match && (!children || magic_match_io(io, children, buffer))
142
+ end
143
+ end
144
+
145
+ private_class_method :magic_match, :magic_match_io
146
+ end
147
+ end
@@ -1,97 +1,98 @@
1
- class Marcel::MimeType
2
- BINARY = "application/octet-stream"
1
+ module Marcel
2
+ class MimeType
3
+ BINARY = "application/octet-stream"
3
4
 
4
- class << self
5
- def extend(type, extensions: [], parents: [], magic: nil)
6
- existing = MimeMagic::TYPES[type] || [[], [], ""]
5
+ class << self
6
+ def extend(type, extensions: [], parents: [], magic: nil)
7
+ existing = Marcel::TYPES[type] || [[], [], ""]
7
8
 
8
- extensions = (Array(extensions) + existing[0]).uniq
9
- parents = (Array(parents) + existing[1]).uniq
10
- comment = existing[2]
9
+ extensions = (Array(extensions) + existing[0]).uniq
10
+ parents = (Array(parents) + existing[1]).uniq
11
+ comment = existing[2]
11
12
 
12
- MimeMagic.add(type, extensions: extensions, magic: magic, parents: parents, comment: comment)
13
- end
13
+ Magic.add(type, extensions: extensions, magic: magic, parents: parents, comment: comment)
14
+ end
14
15
 
15
- def for(pathname_or_io = nil, name: nil, extension: nil, declared_type: nil)
16
- type_from_data = for_data(pathname_or_io)
17
- fallback_type = for_declared_type(declared_type) || for_name(name) || for_extension(extension) || BINARY
16
+ def for(pathname_or_io = nil, name: nil, extension: nil, declared_type: nil)
17
+ type_from_data = for_data(pathname_or_io)
18
+ fallback_type = for_declared_type(declared_type) || for_name(name) || for_extension(extension) || BINARY
18
19
 
19
- if type_from_data
20
- most_specific_type type_from_data, fallback_type
21
- else
22
- fallback_type
20
+ if type_from_data
21
+ most_specific_type type_from_data, fallback_type
22
+ else
23
+ fallback_type
24
+ end
23
25
  end
24
- end
25
26
 
26
- private
27
- def for_data(pathname_or_io)
28
- if pathname_or_io
29
- with_io(pathname_or_io) do |io|
30
- if magic = MimeMagic.by_magic(io)
31
- magic.type.downcase
27
+ private
28
+ def for_data(pathname_or_io)
29
+ if pathname_or_io
30
+ with_io(pathname_or_io) do |io|
31
+ if magic = Marcel::Magic.by_magic(io)
32
+ magic.type.downcase
33
+ end
32
34
  end
33
35
  end
34
36
  end
35
- end
36
37
 
37
- def for_name(name)
38
- if name
39
- if magic = MimeMagic.by_path(name)
40
- magic.type.downcase
38
+ def for_name(name)
39
+ if name
40
+ if magic = Marcel::Magic.by_path(name)
41
+ magic.type.downcase
42
+ end
41
43
  end
42
44
  end
43
- end
44
45
 
45
- def for_extension(extension)
46
- if extension
47
- if magic = MimeMagic.by_extension(extension)
48
- magic.type.downcase
46
+ def for_extension(extension)
47
+ if extension
48
+ if magic = Marcel::Magic.by_extension(extension)
49
+ magic.type.downcase
50
+ end
49
51
  end
50
52
  end
51
- end
52
53
 
53
- def for_declared_type(declared_type)
54
- type = parse_media_type(declared_type)
54
+ def for_declared_type(declared_type)
55
+ type = parse_media_type(declared_type)
55
56
 
56
- if type != BINARY && !type.nil?
57
- type.downcase
57
+ if type != BINARY && !type.nil?
58
+ type.downcase
59
+ end
58
60
  end
59
- end
60
61
 
61
- def with_io(pathname_or_io, &block)
62
- case pathname_or_io
63
- when Pathname
64
- pathname_or_io.open &block
65
- else
66
- yield pathname_or_io
62
+ def with_io(pathname_or_io, &block)
63
+ if defined?(Pathname) && pathname_or_io.is_a?(Pathname)
64
+ pathname_or_io.open(&block)
65
+ else
66
+ yield pathname_or_io
67
+ end
67
68
  end
68
- end
69
69
 
70
- def parse_media_type(content_type)
71
- if content_type
72
- result = content_type.downcase.split(/[;,\s]/, 2).first
73
- result if result && result.index("/")
70
+ def parse_media_type(content_type)
71
+ if content_type
72
+ result = content_type.downcase.split(/[;,\s]/, 2).first
73
+ result if result && result.index("/")
74
+ end
74
75
  end
75
- end
76
76
 
77
- # For some document types (notably Microsoft Office) we recognise the main content
78
- # type with magic, but not the specific subclass. In this situation, if we can get a more
79
- # specific class using either the name or declared_type, we should use that in preference
80
- def most_specific_type(from_magic_type, fallback_type)
81
- if (root_types(from_magic_type) & root_types(fallback_type)).any?
82
- fallback_type
83
- else
84
- from_magic_type
77
+ # For some document types (notably Microsoft Office) we recognise the main content
78
+ # type with magic, but not the specific subclass. In this situation, if we can get a more
79
+ # specific class using either the name or declared_type, we should use that in preference
80
+ def most_specific_type(from_magic_type, fallback_type)
81
+ if (root_types(from_magic_type) & root_types(fallback_type)).any?
82
+ fallback_type
83
+ else
84
+ from_magic_type
85
+ end
85
86
  end
86
- end
87
87
 
88
- def root_types(type)
89
- if MimeMagic::TYPES[type].nil? || MimeMagic::TYPES[type][1].empty?
90
- [ type ]
91
- else
92
- MimeMagic::TYPES[type][1].map {|t| root_types t }.flatten
88
+ def root_types(type)
89
+ if TYPES[type].nil? || TYPES[type][1].empty?
90
+ [ type ]
91
+ else
92
+ TYPES[type][1].map {|t| root_types t }.flatten
93
+ end
93
94
  end
94
- end
95
+ end
95
96
  end
96
97
  end
97
98
 
@@ -1,6 +1,3 @@
1
- require 'mimemagic'
2
- require 'mimemagic/overlay'
3
-
4
1
  Marcel::MimeType.extend "text/plain", extensions: %w( txt asc )
5
2
 
6
3
  Marcel::MimeType.extend "application/illustrator", parents: "application/pdf"
@@ -37,3 +34,11 @@ Marcel::MimeType.extend "image/vnd.dwg", magic: [[0, "AC10"]]
37
34
 
38
35
  Marcel::MimeType.extend "image/heif", magic: [[4, "ftypmif1"]], extensions: %w( heif )
39
36
  Marcel::MimeType.extend "image/heic", magic: [[4, "ftypheic"]], extensions: %w( heic )
37
+
38
+ Marcel::MimeType.extend "video/mp4", magic: [[4, "ftypisom"], [4, "ftypM4V "]], extensions: %w( mp4 m4v )
39
+
40
+ Marcel::MimeType.extend "font/ttf", magic: [[0, "\x00\x01\x00\x00"]], extensions: %w( ttf ttc )
41
+ Marcel::MimeType.extend "font/otf", magic: [[0, "OTTO"]], extensions: %w( otf ), parents: "font/ttf"
42
+ Marcel::MimeType.extend "application/vnd.adobe.flash.movie", magic: [[0, "FWS"], [0, "CWS"]], extensions: %w( swf )
43
+ Marcel::MimeType.extend "application/sql", extensions: %w( sql )
44
+ Marcel::MimeType.extend "text/vcard", magic: [[0, "BEGIN:VCARD"]], extensions: %w( vcf ), parents: "text/plain"
@@ -0,0 +1,2515 @@
1
+ # -*- coding: binary -*-
2
+ # frozen_string_literal: true
3
+ module Marcel
4
+ # @private
5
+ # :nodoc:
6
+ EXTENSIONS = {
7
+ '123' => 'application/vnd.lotus-1-2-3',
8
+ '3dml' => 'text/vnd.in3d.3dml',
9
+ '3fr' => 'image/x-raw-hasselblad',
10
+ '3g2' => 'video/3gpp2',
11
+ '3gp' => 'video/3gpp',
12
+ '4th' => 'text/x-forth',
13
+ '7z' => 'application/x-7z-compressed',
14
+ 'a' => 'application/x-archive',
15
+ 'aab' => 'application/x-authorware-bin',
16
+ 'aac' => 'audio/x-aac',
17
+ 'aam' => 'application/x-authorware-map',
18
+ 'aart' => 'text/plain',
19
+ 'aas' => 'application/x-authorware-seg',
20
+ 'abw' => 'application/x-abiword',
21
+ 'ac' => 'text/plain',
22
+ 'ac3' => 'audio/ac3',
23
+ 'acc' => 'application/vnd.americandynamics.acc',
24
+ 'ace' => 'application/x-ace-compressed',
25
+ 'acfm' => 'application/x-font-adobe-metric',
26
+ 'acu' => 'application/vnd.acucobol',
27
+ 'acutc' => 'application/vnd.acucorp',
28
+ 'ad' => 'text/x-asciidoc',
29
+ 'ad.txt' => 'text/x-asciidoc',
30
+ 'ada' => 'text/x-ada',
31
+ 'adb' => 'text/x-ada',
32
+ 'adoc' => 'text/x-asciidoc',
33
+ 'adoc.txt' => 'text/x-asciidoc',
34
+ 'adp' => 'audio/adpcm',
35
+ 'ads' => 'text/x-ada',
36
+ 'aep' => 'application/vnd.adobe.aftereffects.project',
37
+ 'aet' => 'application/vnd.adobe.aftereffects.template',
38
+ 'afm' => 'application/x-font-adobe-metric',
39
+ 'afp' => 'application/vnd.ibm.modcap',
40
+ 'ai' => 'application/illustrator',
41
+ 'aif' => 'audio/x-aiff',
42
+ 'aifc' => 'audio/x-aiff',
43
+ 'aiff' => 'audio/x-aiff',
44
+ 'air' => 'application/vnd.adobe.air-application-installer-package+zip',
45
+ 'aj' => 'text/x-aspectj',
46
+ 'al' => 'text/x-perl',
47
+ 'am' => 'text/plain',
48
+ 'amfm' => 'application/x-font-adobe-metric',
49
+ 'ami' => 'application/vnd.amiga.ami',
50
+ 'amr' => 'audio/amr',
51
+ 'anpa' => 'text/vnd.iptc.anpa',
52
+ 'apk' => 'application/vnd.android.package-archive',
53
+ 'applescript' => 'text/x-applescript',
54
+ 'application' => 'application/x-ms-application',
55
+ 'apr' => 'application/vnd.lotus-approach',
56
+ 'apt' => 'text/plain',
57
+ 'ar' => 'application/x-archive',
58
+ 'arc' => 'application/x-internet-archive',
59
+ 'arj' => 'application/x-arj',
60
+ 'arw' => 'image/x-raw-sony',
61
+ 'as' => 'text/x-actionscript',
62
+ 'asc' => 'application/pgp-signature',
63
+ 'asciidoc' => 'text/x-asciidoc',
64
+ 'asf' => 'video/x-ms-asf',
65
+ 'asice' => 'application/vnd.etsi.asic-e+zip',
66
+ 'asics' => 'application/vnd.etsi.asic-s+zip',
67
+ 'asm' => 'text/x-assembly',
68
+ 'asnd' => 'audio/vnd.adobe.soundbooth',
69
+ 'aso' => 'application/vnd.accpac.simply.aso',
70
+ 'asp' => 'text/asp',
71
+ 'aspx' => 'text/aspdotnet',
72
+ 'asx' => 'application/x-ms-asx',
73
+ 'atc' => 'application/vnd.acucorp',
74
+ 'atom' => 'application/atom+xml',
75
+ 'atomcat' => 'application/atomcat+xml',
76
+ 'atomsvc' => 'application/atomsvc+xml',
77
+ 'atx' => 'application/vnd.antix.game-component',
78
+ 'au' => 'audio/basic',
79
+ 'avi' => 'video/x-msvideo',
80
+ 'avif' => 'image/avif',
81
+ 'aw' => 'application/applixware',
82
+ 'awk' => 'text/x-awk',
83
+ 'axx' => 'application/x-axcrypt',
84
+ 'azf' => 'application/vnd.airzip.filesecure.azf',
85
+ 'azs' => 'application/vnd.airzip.filesecure.azs',
86
+ 'azw' => 'application/vnd.amazon.ebook',
87
+ 'bas' => 'text/x-basic',
88
+ 'bash' => 'application/x-sh',
89
+ 'bat' => 'application/x-bat',
90
+ 'bau' => 'application/vnd.openofficeorg.autotext',
91
+ 'bay' => 'image/x-raw-casio',
92
+ 'bcpio' => 'application/x-bcpio',
93
+ 'bdf' => 'application/x-font-bdf',
94
+ 'bdm' => 'application/vnd.syncml.dm+wbxml',
95
+ 'bh2' => 'application/vnd.fujitsu.oasysprs',
96
+ 'bib' => 'application/x-bibtex-text-file',
97
+ 'bibtex' => 'application/x-bibtex-text-file',
98
+ 'bin' => 'application/octet-stream',
99
+ 'bmi' => 'application/vnd.bmi',
100
+ 'bmp' => 'image/bmp',
101
+ 'book' => 'application/vnd.framemaker',
102
+ 'box' => 'application/vnd.previewsystems.box',
103
+ 'boz' => 'application/x-bzip2',
104
+ 'bpg' => 'image/x-bpg',
105
+ 'bpk' => 'application/octet-stream',
106
+ 'bpm' => 'application/bizagi-modeler',
107
+ 'br' => 'application/x-brotli',
108
+ 'brotli' => 'application/x-brotli',
109
+ 'bsh' => 'text/plain',
110
+ 'btif' => 'image/prs.btif',
111
+ 'bz' => 'application/x-bzip',
112
+ 'bz2' => 'application/x-bzip2',
113
+ 'c' => 'text/x-c++src',
114
+ 'c++' => 'text/x-c++src',
115
+ 'c4d' => 'application/vnd.clonk.c4group',
116
+ 'c4f' => 'application/vnd.clonk.c4group',
117
+ 'c4g' => 'application/vnd.clonk.c4group',
118
+ 'c4p' => 'application/vnd.clonk.c4group',
119
+ 'c4u' => 'application/vnd.clonk.c4group',
120
+ 'cab' => 'application/vnd.ms-cab-compressed',
121
+ 'caf' => 'audio/x-caf',
122
+ 'cap' => 'application/vnd.tcpdump.pcap',
123
+ 'car' => 'application/vnd.curl.car',
124
+ 'cat' => 'application/vnd.ms-pki.seccat',
125
+ 'cbl' => 'text/x-cobol',
126
+ 'cbor' => 'application/cbor',
127
+ 'cc' => 'text/x-c++src',
128
+ 'cct' => 'application/x-director',
129
+ 'ccxml' => 'application/ccxml+xml',
130
+ 'cdbcmsg' => 'application/vnd.contact.cmsg',
131
+ 'cdf' => 'application/x-netcdf',
132
+ 'cdkey' => 'application/vnd.mediastation.cdkey',
133
+ 'cdr' => 'application/coreldraw',
134
+ 'cdx' => 'chemical/x-cdx',
135
+ 'cdxml' => 'application/vnd.chemdraw+xml',
136
+ 'cdy' => 'application/vnd.cinderella',
137
+ 'cer' => 'application/pkix-cert',
138
+ 'cfc' => 'text/x-coldfusion',
139
+ 'cfg' => 'text/x-config',
140
+ 'cfm' => 'text/x-coldfusion',
141
+ 'cfml' => 'text/x-coldfusion',
142
+ 'cgi' => 'text/x-cgi',
143
+ 'cgm' => 'image/cgm',
144
+ 'chat' => 'application/x-chat',
145
+ 'chm' => 'application/vnd.ms-htmlhelp',
146
+ 'chrt' => 'application/vnd.kde.kchart',
147
+ 'cif' => 'chemical/x-cif',
148
+ 'cii' => 'application/vnd.anser-web-certificate-issue-initiation',
149
+ 'cil' => 'application/vnd.ms-artgalry',
150
+ 'cl' => 'text/x-common-lisp',
151
+ 'cla' => 'application/vnd.claymore',
152
+ 'class' => 'application/java-vm',
153
+ 'classpath' => 'text/plain',
154
+ 'clj' => 'text/x-clojure',
155
+ 'clkk' => 'application/vnd.crick.clicker.keyboard',
156
+ 'clkp' => 'application/vnd.crick.clicker.palette',
157
+ 'clkt' => 'application/vnd.crick.clicker.template',
158
+ 'clkw' => 'application/vnd.crick.clicker.wordbank',
159
+ 'clkx' => 'application/vnd.crick.clicker',
160
+ 'clp' => 'application/x-msclip',
161
+ 'cls' => 'text/x-vbasic',
162
+ 'cmc' => 'application/vnd.cosmocaller',
163
+ 'cmd' => 'application/x-bat',
164
+ 'cmdf' => 'chemical/x-cmdf',
165
+ 'cml' => 'chemical/x-cml',
166
+ 'cmp' => 'application/vnd.yellowriver-custom-menu',
167
+ 'cmx' => 'image/x-cmx',
168
+ 'cnd' => 'text/plain',
169
+ 'cob' => 'text/x-cobol',
170
+ 'cod' => 'application/vnd.rim.cod',
171
+ 'coffee' => 'text/x-coffeescript',
172
+ 'com' => 'application/x-msdownload',
173
+ 'conf' => 'text/x-config',
174
+ 'config' => 'text/x-config',
175
+ 'cpio' => 'application/x-cpio',
176
+ 'cpp' => 'text/x-c++src',
177
+ 'cpt' => 'application/mac-compactpro',
178
+ 'cr2' => 'image/x-raw-canon',
179
+ 'crd' => 'application/x-mscardfile',
180
+ 'crl' => 'application/pkix-crl',
181
+ 'crt' => 'application/x-x509-cert',
182
+ 'crw' => 'image/x-raw-canon',
183
+ 'crx' => 'application/x-chrome-package',
184
+ 'cs' => 'text/x-csharp',
185
+ 'csh' => 'application/x-csh',
186
+ 'csml' => 'chemical/x-csml',
187
+ 'csp' => 'application/vnd.commonspace',
188
+ 'css' => 'text/css',
189
+ 'cst' => 'application/x-director',
190
+ 'csv' => 'text/csv',
191
+ 'cu' => 'application/cu-seeme',
192
+ 'curl' => 'text/vnd.curl',
193
+ 'cwiki' => 'text/plain',
194
+ 'cwk' => 'application/x-appleworks',
195
+ 'cww' => 'application/prs.cww',
196
+ 'cxt' => 'application/x-director',
197
+ 'cxx' => 'text/x-c++src',
198
+ 'd' => 'text/x-d',
199
+ 'daf' => 'application/vnd.mobius.daf',
200
+ 'data' => 'text/plain',
201
+ 'dataless' => 'application/vnd.fdsn.seed',
202
+ 'davmount' => 'application/davmount+xml',
203
+ 'dbase' => 'application/x-dbf',
204
+ 'dbase3' => 'application/x-dbf',
205
+ 'dbf' => 'application/x-dbf',
206
+ 'dcl' => 'text/plain',
207
+ 'dcr' => 'application/x-director',
208
+ 'dcs' => 'image/x-raw-kodak',
209
+ 'dcurl' => 'text/vnd.curl.dcurl',
210
+ 'dcx' => 'image/vnd.zbrush.dcx',
211
+ 'dd2' => 'application/vnd.oma.dd2+xml',
212
+ 'ddd' => 'application/vnd.fujixerox.ddd',
213
+ 'deb' => 'application/x-debian-package',
214
+ 'def' => 'text/plain',
215
+ 'deploy' => 'application/octet-stream',
216
+ 'der' => 'application/x-x509-cert;format=der',
217
+ 'dex' => 'application/x-dex',
218
+ 'dfac' => 'application/vnd.dreamfactory',
219
+ 'dib' => 'image/bmp',
220
+ 'dif' => 'application/dif+xml',
221
+ 'diff' => 'text/x-diff',
222
+ 'dir' => 'application/x-director',
223
+ 'dis' => 'application/vnd.mobius.dis',
224
+ 'dist' => 'application/octet-stream',
225
+ 'distz' => 'application/octet-stream',
226
+ 'dita' => 'application/dita+xml;format=topic',
227
+ 'ditamap' => 'application/dita+xml;format=map',
228
+ 'ditaval' => 'application/dita+xml;format=val',
229
+ 'djv' => 'image/vnd.djvu',
230
+ 'djvu' => 'image/vnd.djvu',
231
+ 'dll' => 'application/x-msdownload',
232
+ 'dmg' => 'application/x-apple-diskimage',
233
+ 'dmp' => 'application/vnd.tcpdump.pcap',
234
+ 'dms' => 'application/octet-stream',
235
+ 'dna' => 'application/vnd.dna',
236
+ 'dng' => 'image/x-raw-adobe',
237
+ 'do' => 'application/x-stata-do',
238
+ 'doc' => 'application/msword',
239
+ 'docm' => 'application/vnd.ms-word.document.macroenabled.12',
240
+ 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
241
+ 'dot' => 'application/msword',
242
+ 'dotm' => 'application/vnd.ms-word.template.macroenabled.12',
243
+ 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
244
+ 'dp' => 'application/vnd.osgi.dp',
245
+ 'dpg' => 'application/vnd.dpgraph',
246
+ 'dpr' => 'text/x-pascal',
247
+ 'dpx' => 'image/x-dpx',
248
+ 'drc' => 'video/x-dirac',
249
+ 'drf' => 'image/x-raw-kodak',
250
+ 'dsc' => 'text/prs.lines.tag',
251
+ 'dsp' => 'text/plain',
252
+ 'dsw' => 'text/plain',
253
+ 'dta' => 'application/x-stata-dta',
254
+ 'dtb' => 'application/x-dtbook+xml',
255
+ 'dtd' => 'application/xml-dtd',
256
+ 'dts' => 'audio/vnd.dts',
257
+ 'dtshd' => 'audio/vnd.dts.hd',
258
+ 'dump' => 'application/octet-stream',
259
+ 'dvi' => 'application/x-dvi',
260
+ 'dwf' => 'model/vnd.dwf',
261
+ 'dwfx' => 'model/vnd.dwfx+xps',
262
+ 'dwg' => 'image/vnd.dwg',
263
+ 'dxb' => 'image/vnd.dxb',
264
+ 'dxf' => 'image/vnd.dxf',
265
+ 'dxp' => 'application/vnd.spotfire.dxp',
266
+ 'dxr' => 'application/x-director',
267
+ 'e' => 'text/x-eiffel',
268
+ 'ear' => 'application/x-tika-java-enterprise-archive',
269
+ 'ecelp4800' => 'audio/vnd.nuera.ecelp4800',
270
+ 'ecelp7470' => 'audio/vnd.nuera.ecelp7470',
271
+ 'ecelp9600' => 'audio/vnd.nuera.ecelp9600',
272
+ 'ecma' => 'application/ecmascript',
273
+ 'edm' => 'application/vnd.novadigm.edm',
274
+ 'edx' => 'application/vnd.novadigm.edx',
275
+ 'efif' => 'application/vnd.picsel',
276
+ 'egrm' => 'text/plain',
277
+ 'ei6' => 'application/vnd.pg.osasli',
278
+ 'el' => 'text/x-emacs-lisp',
279
+ 'elc' => 'application/octet-stream',
280
+ 'emf' => 'image/emf',
281
+ 'eml' => 'message/rfc822',
282
+ 'emlx' => 'message/x-emlx',
283
+ 'emma' => 'application/emma+xml',
284
+ 'emz' => 'image/x-emf-compressed',
285
+ 'enr' => 'application/x-endnote-refer',
286
+ 'ent' => 'text/plain',
287
+ 'enw' => 'application/x-endnote-refer',
288
+ 'eol' => 'audio/vnd.digital-winds',
289
+ 'eot' => 'application/vnd.ms-fontobject',
290
+ 'eps' => 'application/postscript',
291
+ 'epsf' => 'application/postscript',
292
+ 'epsi' => 'application/postscript',
293
+ 'epub' => 'application/epub+zip',
294
+ 'erf' => 'image/x-raw-epson',
295
+ 'erl' => 'text/x-erlang',
296
+ 'es3' => 'application/vnd.eszigno3+xml',
297
+ 'esf' => 'application/vnd.epson.esf',
298
+ 'et3' => 'application/vnd.eszigno3+xml',
299
+ 'etx' => 'text/x-setext',
300
+ 'exe' => 'application/x-dosexec',
301
+ 'exp' => 'text/x-expect',
302
+ 'exr' => 'image/aces',
303
+ 'ext' => 'application/vnd.novadigm.ext',
304
+ 'ez' => 'application/andrew-inset',
305
+ 'ez2' => 'application/vnd.ezpix-album',
306
+ 'ez3' => 'application/vnd.ezpix-package',
307
+ 'f' => 'text/x-fortran',
308
+ 'f4v' => 'video/x-f4v',
309
+ 'f77' => 'text/x-fortran',
310
+ 'f90' => 'text/x-fortran',
311
+ 'fb2' => 'application/x-fictionbook+xml',
312
+ 'fbs' => 'image/vnd.fastbidsheet',
313
+ 'fdf' => 'application/vnd.fdf',
314
+ 'fe_launch' => 'application/vnd.denovo.fcselayout-link',
315
+ 'fff' => 'image/x-raw-imacon',
316
+ 'fg5' => 'application/vnd.fujitsu.oasysgp',
317
+ 'fgd' => 'application/x-director',
318
+ 'fh' => 'image/x-freehand',
319
+ 'fh10' => 'image/x-freehand',
320
+ 'fh11' => 'image/x-freehand',
321
+ 'fh12' => 'image/x-freehand',
322
+ 'fh4' => 'image/x-freehand',
323
+ 'fh40' => 'image/x-freehand',
324
+ 'fh5' => 'image/x-freehand',
325
+ 'fh50' => 'image/x-freehand',
326
+ 'fh7' => 'image/x-freehand',
327
+ 'fh8' => 'image/x-freehand',
328
+ 'fh9' => 'image/x-freehand',
329
+ 'fhc' => 'image/x-freehand',
330
+ 'fig' => 'application/x-xfig',
331
+ 'fit' => 'application/fits',
332
+ 'fits' => 'application/fits',
333
+ 'flac' => 'audio/x-flac',
334
+ 'flc' => 'video/x-flc',
335
+ 'fli' => 'video/x-fli',
336
+ 'flo' => 'application/vnd.micrografx.flo',
337
+ 'flv' => 'video/x-flv',
338
+ 'flw' => 'application/vnd.kde.kivio',
339
+ 'flx' => 'text/vnd.fmi.flexstor',
340
+ 'fly' => 'text/vnd.fly',
341
+ 'fm' => 'application/vnd.framemaker',
342
+ 'fn' => 'text/plain',
343
+ 'fnc' => 'application/vnd.frogans.fnc',
344
+ 'fo' => 'application/xslfo+xml',
345
+ 'fodp' => 'application/vnd.oasis.opendocument.flat.presentation',
346
+ 'fods' => 'application/vnd.oasis.opendocument.flat.spreadsheet',
347
+ 'fodt' => 'application/vnd.oasis.opendocument.flat.text',
348
+ 'for' => 'text/x-fortran',
349
+ 'fp7' => 'application/x-filemaker',
350
+ 'fpx' => 'image/vnd.fpx',
351
+ 'frame' => 'application/vnd.framemaker',
352
+ 'frm' => 'text/x-vbasic',
353
+ 'fsc' => 'application/vnd.fsc.weblaunch',
354
+ 'fst' => 'image/vnd.fst',
355
+ 'ft' => 'text/plain',
356
+ 'ft10' => 'image/x-freehand',
357
+ 'ft11' => 'image/x-freehand',
358
+ 'ft12' => 'image/x-freehand',
359
+ 'ft7' => 'image/x-freehand',
360
+ 'ft8' => 'image/x-freehand',
361
+ 'ft9' => 'image/x-freehand',
362
+ 'ftc' => 'application/vnd.fluxtime.clip',
363
+ 'fti' => 'application/vnd.anser-web-funds-transfer-initiation',
364
+ 'fts' => 'application/fits',
365
+ 'fv' => 'text/plain',
366
+ 'fvt' => 'video/vnd.fvt',
367
+ 'fzs' => 'application/vnd.fuzzysheet',
368
+ 'g' => 'text/plain',
369
+ 'g3' => 'image/g3fax',
370
+ 'gac' => 'application/vnd.groove-account',
371
+ 'gdl' => 'model/vnd.gdl',
372
+ 'geo' => 'application/vnd.dynageo',
373
+ 'gex' => 'application/vnd.geometry-explorer',
374
+ 'ggb' => 'application/vnd.geogebra.file',
375
+ 'ggt' => 'application/vnd.geogebra.tool',
376
+ 'ghf' => 'application/vnd.groove-help',
377
+ 'gif' => 'image/gif',
378
+ 'gim' => 'application/vnd.groove-identity-message',
379
+ 'gmx' => 'application/vnd.gmx',
380
+ 'gnucash' => 'application/x-gnucash',
381
+ 'gnumeric' => 'application/x-gnumeric',
382
+ 'go' => 'text/x-go',
383
+ 'gph' => 'application/vnd.flographit',
384
+ 'gqf' => 'application/vnd.grafeq',
385
+ 'gqs' => 'application/vnd.grafeq',
386
+ 'gram' => 'application/srgs',
387
+ 'grb' => 'application/x-grib',
388
+ 'grb1' => 'application/x-grib',
389
+ 'grb2' => 'application/x-grib',
390
+ 'gre' => 'application/vnd.geometry-explorer',
391
+ 'grm' => 'text/plain',
392
+ 'groovy' => 'text/x-groovy',
393
+ 'grv' => 'application/vnd.groove-injector',
394
+ 'grxml' => 'application/srgs+xml',
395
+ 'gsf' => 'application/x-font-ghostscript',
396
+ 'gtar' => 'application/x-gtar',
397
+ 'gtm' => 'application/vnd.groove-tool-message',
398
+ 'gtw' => 'model/vnd.gtw',
399
+ 'gv' => 'text/vnd.graphviz',
400
+ 'gz' => 'application/gzip',
401
+ 'h' => 'text/x-c++hdr',
402
+ 'h++' => 'text/x-c++hdr',
403
+ 'h261' => 'video/h261',
404
+ 'h263' => 'video/h263',
405
+ 'h264' => 'video/h264',
406
+ 'h5' => 'application/x-hdf',
407
+ 'haml' => 'text/x-haml',
408
+ 'handlers' => 'text/plain',
409
+ 'hbci' => 'application/vnd.hbci',
410
+ 'hdf' => 'application/x-hdf',
411
+ 'hdr' => 'application/envi.hdr',
412
+ 'he5' => 'application/x-hdf',
413
+ 'heic' => 'image/heic',
414
+ 'heif' => 'image/heif',
415
+ 'hfa' => 'application/x-erdas-hfa',
416
+ 'hh' => 'text/x-c++hdr',
417
+ 'hlp' => 'application/winhlp',
418
+ 'hp' => 'text/x-c++hdr',
419
+ 'hpgl' => 'application/vnd.hp-hpgl',
420
+ 'hpid' => 'application/vnd.hp-hpid',
421
+ 'hpp' => 'text/x-c++hdr',
422
+ 'hprof' => 'application/vnd.java.hprof ',
423
+ 'hprof.txt' => 'application/vnd.java.hprof.text',
424
+ 'hps' => 'application/vnd.hp-hps',
425
+ 'hqx' => 'application/mac-binhex40',
426
+ 'hs' => 'text/x-haskell',
427
+ 'htc' => 'text/plain',
428
+ 'htke' => 'application/vnd.kenameaapp',
429
+ 'htm' => 'text/html',
430
+ 'html' => 'text/html',
431
+ 'hvd' => 'application/vnd.yamaha.hv-dic',
432
+ 'hvp' => 'application/vnd.yamaha.hv-voice',
433
+ 'hvs' => 'application/vnd.yamaha.hv-script',
434
+ 'hx' => 'text/x-haxe',
435
+ 'hxx' => 'text/x-c++hdr',
436
+ 'i3' => 'text/x-modula',
437
+ 'ibooks' => 'application/x-ibooks+zip',
438
+ 'icb' => 'image/x-tga',
439
+ 'icc' => 'application/vnd.iccprofile',
440
+ 'ice' => 'x-conference/x-cooltalk',
441
+ 'icm' => 'application/vnd.iccprofile',
442
+ 'icns' => 'image/icns',
443
+ 'ico' => 'image/vnd.microsoft.icon',
444
+ 'ics' => 'text/calendar',
445
+ 'idl' => 'text/x-idl',
446
+ 'ief' => 'image/ief',
447
+ 'ifb' => 'text/calendar',
448
+ 'ifm' => 'application/vnd.shana.informed.formdata',
449
+ 'ig' => 'text/x-modula',
450
+ 'iges' => 'model/iges',
451
+ 'igl' => 'application/vnd.igloader',
452
+ 'igs' => 'model/iges',
453
+ 'igx' => 'application/vnd.micrografx.igx',
454
+ 'ihtml' => 'text/plain',
455
+ 'iif' => 'application/vnd.shana.informed.interchange',
456
+ 'iiq' => 'image/x-raw-phaseone',
457
+ 'imp' => 'application/vnd.accpac.simply.imp',
458
+ 'ims' => 'application/vnd.ms-ims',
459
+ 'in' => 'text/plain',
460
+ 'indd' => 'application/x-adobe-indesign',
461
+ 'ini' => 'text/x-ini',
462
+ 'inx' => 'application/x-adobe-indesign-interchange',
463
+ 'ipa' => 'application/x-itunes-ipa',
464
+ 'ipk' => 'application/vnd.shana.informed.package',
465
+ 'irm' => 'application/vnd.ibm.rights-management',
466
+ 'irp' => 'application/vnd.irepository.package+xml',
467
+ 'iso' => 'application/x-iso9660-image',
468
+ 'iso19139' => 'text/iso19139+xml',
469
+ 'itk' => 'text/x-tcl',
470
+ 'itp' => 'application/vnd.shana.informed.formtemplate',
471
+ 'ivp' => 'application/vnd.immervision-ivp',
472
+ 'ivu' => 'application/vnd.immervision-ivu',
473
+ 'j2c' => 'image/x-jp2-codestream',
474
+ 'jad' => 'text/vnd.sun.j2me.app-descriptor',
475
+ 'jam' => 'application/vnd.jam',
476
+ 'jar' => 'application/java-archive',
477
+ 'java' => 'text/x-java-source',
478
+ 'jb2' => 'image/x-jbig2',
479
+ 'jbig2' => 'image/x-jbig2',
480
+ 'jfi' => 'image/jpeg',
481
+ 'jfif' => 'image/jpeg',
482
+ 'jif' => 'image/jpeg',
483
+ 'jisp' => 'application/vnd.jisp',
484
+ 'jl' => 'text/x-common-lisp',
485
+ 'jlt' => 'application/vnd.hp-jlyt',
486
+ 'jmx' => 'text/plain',
487
+ 'jng' => 'video/x-jng',
488
+ 'jnilib' => 'application/x-java-jnilib',
489
+ 'jnlp' => 'application/x-java-jnlp-file',
490
+ 'joda' => 'application/vnd.joost.joda-archive',
491
+ 'jp2' => 'image/jp2',
492
+ 'jpe' => 'image/jpeg',
493
+ 'jpeg' => 'image/jpeg',
494
+ 'jpf' => 'image/jpx',
495
+ 'jpg' => 'image/jpeg',
496
+ 'jpgm' => 'image/jpm',
497
+ 'jpgv' => 'video/jpeg',
498
+ 'jpm' => 'image/jpm',
499
+ 'js' => 'application/javascript',
500
+ 'json' => 'application/json',
501
+ 'jsp' => 'text/x-jsp',
502
+ 'junit' => 'text/plain',
503
+ 'jx' => 'text/plain',
504
+ 'k25' => 'image/x-raw-kodak',
505
+ 'kar' => 'audio/midi',
506
+ 'karbon' => 'application/vnd.kde.karbon',
507
+ 'kdc' => 'image/x-raw-kodak',
508
+ 'key' => 'application/vnd.apple.keynote',
509
+ 'kfo' => 'application/vnd.kde.kformula',
510
+ 'kia' => 'application/vnd.kidspiration',
511
+ 'kil' => 'application/x-killustrator',
512
+ 'kml' => 'application/vnd.google-earth.kml+xml',
513
+ 'kmz' => 'application/vnd.google-earth.kmz',
514
+ 'kne' => 'application/vnd.kinar',
515
+ 'knp' => 'application/vnd.kinar',
516
+ 'kon' => 'application/vnd.kde.kontour',
517
+ 'kpr' => 'application/vnd.kde.kpresenter',
518
+ 'kpt' => 'application/vnd.kde.kpresenter',
519
+ 'ksp' => 'application/vnd.kde.kspread',
520
+ 'ktr' => 'application/vnd.kahootz',
521
+ 'ktz' => 'application/vnd.kahootz',
522
+ 'kwd' => 'application/vnd.kde.kword',
523
+ 'kwt' => 'application/vnd.kde.kword',
524
+ 'l' => 'text/x-lex',
525
+ 'latex' => 'application/x-latex',
526
+ 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop',
527
+ 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml',
528
+ 'les' => 'application/vnd.hhe.lesson-player',
529
+ 'less' => 'text/x-less',
530
+ 'lha' => 'application/octet-stream',
531
+ 'lhs' => 'text/x-haskell',
532
+ 'link66' => 'application/vnd.route66.link66+xml',
533
+ 'lisp' => 'text/x-common-lisp',
534
+ 'list' => 'text/plain',
535
+ 'list3820' => 'application/vnd.ibm.modcap',
536
+ 'listafp' => 'application/vnd.ibm.modcap',
537
+ 'log' => 'text/x-log',
538
+ 'lostxml' => 'application/lost+xml',
539
+ 'lrf' => 'application/octet-stream',
540
+ 'lrm' => 'application/vnd.ms-lrm',
541
+ 'lsp' => 'text/x-common-lisp',
542
+ 'ltf' => 'application/vnd.frogans.ltf',
543
+ 'lua' => 'text/x-lua',
544
+ 'lvp' => 'audio/vnd.lucent.voice',
545
+ 'lwp' => 'application/vnd.lotus-wordpro',
546
+ 'lz' => 'application/x-lzip',
547
+ 'lz4' => 'application/x-lz4',
548
+ 'lzh' => 'application/octet-stream',
549
+ 'lzma' => 'application/x-lzma',
550
+ 'm' => 'text/x-objcsrc',
551
+ 'm13' => 'application/x-msmediaview',
552
+ 'm14' => 'application/x-msmediaview',
553
+ 'm1v' => 'video/mpeg',
554
+ 'm2a' => 'audio/mpeg',
555
+ 'm2v' => 'video/mpeg',
556
+ 'm3' => 'text/x-modula',
557
+ 'm3a' => 'audio/mpeg',
558
+ 'm3u' => 'audio/x-mpegurl',
559
+ 'm3u8' => 'application/vnd.apple.mpegurl',
560
+ 'm4' => 'text/plain',
561
+ 'm4a' => 'audio/mp4',
562
+ 'm4b' => 'audio/mp4',
563
+ 'm4s' => 'video/iso.segment',
564
+ 'm4u' => 'video/vnd.mpegurl',
565
+ 'm4v' => 'video/x-m4v',
566
+ 'ma' => 'application/mathematica',
567
+ 'mag' => 'application/vnd.ecowin.chart',
568
+ 'maker' => 'application/vnd.framemaker',
569
+ 'man' => 'text/troff',
570
+ 'manifest' => 'text/plain',
571
+ 'markdown' => 'text/x-web-markdown',
572
+ 'mat' => 'application/x-matlab-data',
573
+ 'mathml' => 'application/mathml+xml',
574
+ 'mb' => 'application/mathematica',
575
+ 'mbk' => 'application/vnd.mobius.mbk',
576
+ 'mbox' => 'application/mbox',
577
+ 'mc1' => 'application/vnd.medcalcdata',
578
+ 'mcd' => 'application/vnd.mcd',
579
+ 'mcurl' => 'text/vnd.curl.mcurl',
580
+ 'md' => 'text/x-web-markdown',
581
+ 'mdb' => 'application/x-msaccess',
582
+ 'mdi' => 'image/vnd.ms-modi',
583
+ 'mdo' => 'text/plain',
584
+ 'mdtext' => 'text/x-web-markdown',
585
+ 'me' => 'text/troff',
586
+ 'mef' => 'image/x-raw-mamiya',
587
+ 'memgraph' => 'application/x-memgraph',
588
+ 'mesh' => 'model/mesh',
589
+ 'meta' => 'text/plain',
590
+ 'mf' => 'text/plain',
591
+ 'mfm' => 'application/vnd.mfmp',
592
+ 'mg' => 'text/x-modula',
593
+ 'mgz' => 'application/vnd.proteus.magazine',
594
+ 'mht' => 'multipart/related',
595
+ 'mhtml' => 'multipart/related',
596
+ 'mid' => 'audio/midi',
597
+ 'midi' => 'audio/midi',
598
+ 'mif' => 'application/vnd.mif',
599
+ 'mime' => 'message/rfc822',
600
+ 'mj2' => 'video/mj2',
601
+ 'mjp2' => 'video/mj2',
602
+ 'mka' => 'audio/x-matroska',
603
+ 'mkd' => 'text/x-web-markdown',
604
+ 'mkv' => 'video/x-matroska',
605
+ 'ml' => 'text/x-ml',
606
+ 'mli' => 'text/x-ocaml',
607
+ 'mlp' => 'application/vnd.dolby.mlp',
608
+ 'mmap' => 'application/vnd.mindjet.mindmanager',
609
+ 'mmas' => 'application/vnd.mindjet.mindmanager',
610
+ 'mmat' => 'application/vnd.mindjet.mindmanager',
611
+ 'mmd' => 'application/vnd.chipnuts.karaoke-mmd',
612
+ 'mmf' => 'application/vnd.smaf',
613
+ 'mmmp' => 'application/vnd.mindjet.mindmanager',
614
+ 'mmp' => 'application/vnd.mindjet.mindmanager',
615
+ 'mmpt' => 'application/vnd.mindjet.mindmanager',
616
+ 'mmr' => 'image/vnd.fujixerox.edmics-mmr',
617
+ 'mng' => 'video/x-mng',
618
+ 'mny' => 'application/x-msmoney',
619
+ 'mobi' => 'application/x-mobipocket-ebook',
620
+ 'mod' => 'audio/x-mod',
621
+ 'mos' => 'image/x-raw-leaf',
622
+ 'mov' => 'video/quicktime',
623
+ 'movie' => 'video/x-sgi-movie',
624
+ 'mp2' => 'audio/mpeg',
625
+ 'mp2a' => 'audio/mpeg',
626
+ 'mp3' => 'audio/mpeg',
627
+ 'mp4' => 'video/mp4',
628
+ 'mp4a' => 'audio/mp4',
629
+ 'mp4s' => 'application/mp4',
630
+ 'mp4v' => 'video/mp4',
631
+ 'mpc' => 'application/vnd.mophun.certificate',
632
+ 'mpd' => 'application/dash+xml',
633
+ 'mpe' => 'video/mpeg',
634
+ 'mpeg' => 'video/mpeg',
635
+ 'mpg' => 'video/mpeg',
636
+ 'mpg4' => 'video/mp4',
637
+ 'mpga' => 'audio/mpeg',
638
+ 'mpkg' => 'application/vnd.apple.installer+xml',
639
+ 'mpm' => 'application/vnd.blueice.multipass',
640
+ 'mpn' => 'application/vnd.mophun.application',
641
+ 'mpp' => 'application/vnd.ms-project',
642
+ 'mpt' => 'application/vnd.ms-project',
643
+ 'mpx' => 'application/x-project',
644
+ 'mpy' => 'application/vnd.ibm.minipay',
645
+ 'mqy' => 'application/vnd.mobius.mqy',
646
+ 'mrc' => 'application/marc',
647
+ 'mrw' => 'image/x-raw-minolta',
648
+ 'ms' => 'text/troff',
649
+ 'mscml' => 'application/mediaservercontrol+xml',
650
+ 'mseed' => 'application/vnd.fdsn.mseed',
651
+ 'mseq' => 'application/vnd.mseq',
652
+ 'msf' => 'application/vnd.epson.msf',
653
+ 'msg' => 'application/vnd.ms-outlook',
654
+ 'msh' => 'model/mesh',
655
+ 'msi' => 'application/x-ms-installer',
656
+ 'msl' => 'application/vnd.mobius.msl',
657
+ 'msp' => 'application/x-ms-installer',
658
+ 'mst' => 'application/x-ms-installer',
659
+ 'msty' => 'application/vnd.muvee.style',
660
+ 'mts' => 'model/vnd.mts',
661
+ 'mus' => 'application/vnd.musician',
662
+ 'musicxml' => 'application/vnd.recordare.musicxml+xml',
663
+ 'mvb' => 'application/x-msmediaview',
664
+ 'mwf' => 'application/vnd.mfer',
665
+ 'mxf' => 'application/mxf',
666
+ 'mxl' => 'application/vnd.recordare.musicxml',
667
+ 'mxml' => 'application/xv+xml',
668
+ 'mxs' => 'application/vnd.triscape.mxs',
669
+ 'mxu' => 'video/vnd.mpegurl',
670
+ 'myd' => 'application/x-mysql-misam-data',
671
+ 'myi' => 'application/x-mysql-misam-compressed-index',
672
+ 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install',
673
+ 'n3' => 'text/plain',
674
+ 'nar' => 'application/vnd.iptc.g2.newsmessage+xml',
675
+ 'nb' => 'application/mathematica',
676
+ 'nc' => 'application/x-netcdf',
677
+ 'ncx' => 'application/x-dtbncx+xml',
678
+ 'nef' => 'image/x-raw-nikon',
679
+ 'ngdat' => 'application/vnd.nokia.n-gage.data',
680
+ 'nitf' => 'image/nitf',
681
+ 'nlu' => 'application/vnd.neurolanguage.nlu',
682
+ 'nml' => 'application/vnd.enliven',
683
+ 'nnd' => 'application/vnd.noblenet-directory',
684
+ 'nns' => 'application/vnd.noblenet-sealer',
685
+ 'nnw' => 'application/vnd.noblenet-web',
686
+ 'npx' => 'image/vnd.net-fpx',
687
+ 'nroff' => 'text/troff',
688
+ 'nrw' => 'image/x-raw-nikon',
689
+ 'nsf' => 'application/vnd.lotus-notes',
690
+ 'ntf' => 'image/nitf',
691
+ 'numbers' => 'application/vnd.apple.numbers',
692
+ 'oa2' => 'application/vnd.fujitsu.oasys2',
693
+ 'oa3' => 'application/vnd.fujitsu.oasys3',
694
+ 'oas' => 'application/vnd.fujitsu.oasys',
695
+ 'obd' => 'application/x-msbinder',
696
+ 'ocaml' => 'text/x-ocaml',
697
+ 'oda' => 'application/oda',
698
+ 'odb' => 'application/vnd.oasis.opendocument.base',
699
+ 'odc' => 'application/vnd.oasis.opendocument.chart',
700
+ 'odf' => 'application/vnd.oasis.opendocument.formula',
701
+ 'odft' => 'application/vnd.oasis.opendocument.formula-template',
702
+ 'odg' => 'application/vnd.oasis.opendocument.graphics',
703
+ 'odi' => 'application/vnd.oasis.opendocument.image',
704
+ 'odp' => 'application/vnd.oasis.opendocument.presentation',
705
+ 'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
706
+ 'odt' => 'application/vnd.oasis.opendocument.text',
707
+ 'oga' => 'audio/ogg',
708
+ 'ogg' => 'audio/vorbis',
709
+ 'ogm' => 'video/x-ogm',
710
+ 'ogv' => 'video/ogg',
711
+ 'ogx' => 'application/ogg',
712
+ 'one' => 'application/onenote;format=one',
713
+ 'onepkg' => 'application/onenote; format=package',
714
+ 'onetmp' => 'application/onenote',
715
+ 'onetoc' => 'application/onenote;format=onetoc2',
716
+ 'onetoc2' => 'application/onenote;format=onetoc2',
717
+ 'opf' => 'application/oebps-package+xml',
718
+ 'oprc' => 'application/vnd.palm',
719
+ 'opus' => 'audio/opus',
720
+ 'orf' => 'image/x-raw-olympus',
721
+ 'org' => 'application/vnd.lotus-organizer',
722
+ 'osf' => 'application/vnd.yamaha.openscoreformat',
723
+ 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml',
724
+ 'ost' => 'application/vnd.ms-outlook-pst',
725
+ 'otc' => 'application/vnd.oasis.opendocument.chart-template',
726
+ 'otf' => 'application/x-font-otf',
727
+ 'otg' => 'application/vnd.oasis.opendocument.graphics-template',
728
+ 'oth' => 'application/vnd.oasis.opendocument.text-web',
729
+ 'oti' => 'application/vnd.oasis.opendocument.image-template',
730
+ 'otm' => 'application/vnd.oasis.opendocument.text-master',
731
+ 'otp' => 'application/vnd.oasis.opendocument.presentation-template',
732
+ 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
733
+ 'ott' => 'application/vnd.oasis.opendocument.text-template',
734
+ 'owl' => 'application/rdf+xml',
735
+ 'oxps' => 'application/vnd.ms-xpsdocument',
736
+ 'oxt' => 'application/vnd.openofficeorg.extension',
737
+ 'p' => 'text/x-pascal',
738
+ 'p10' => 'application/pkcs10',
739
+ 'p12' => 'application/x-pkcs12',
740
+ 'p7b' => 'application/x-pkcs7-certificates',
741
+ 'p7c' => 'application/pkcs7-mime',
742
+ 'p7m' => 'application/pkcs7-mime',
743
+ 'p7r' => 'application/x-pkcs7-certreqresp',
744
+ 'p7s' => 'application/pkcs7-signature',
745
+ 'pack' => 'application/x-java-pack200',
746
+ 'pages' => 'application/vnd.apple.pages',
747
+ 'parquet' => 'application/x-parquet',
748
+ 'pas' => 'text/x-pascal',
749
+ 'patch' => 'text/x-diff',
750
+ 'pbd' => 'application/vnd.powerbuilder6',
751
+ 'pbm' => 'image/x-portable-bitmap',
752
+ 'pcap' => 'application/vnd.tcpdump.pcap',
753
+ 'pcf' => 'application/x-font-pcf',
754
+ 'pcl' => 'application/vnd.hp-pcl',
755
+ 'pclxl' => 'application/vnd.hp-pclxl',
756
+ 'pct' => 'image/x-pict',
757
+ 'pcurl' => 'application/vnd.curl.pcurl',
758
+ 'pcx' => 'image/vnd.zbrush.pcx',
759
+ 'pdb' => 'chemical/x-pdb',
760
+ 'pdf' => 'application/pdf',
761
+ 'pef' => 'image/x-raw-pentax',
762
+ 'pem' => 'application/x-x509-cert;format=pem',
763
+ 'pen' => 'text/plain',
764
+ 'perl' => 'text/x-perl',
765
+ 'pfa' => 'application/x-font-type1',
766
+ 'pfb' => 'application/x-font-type1',
767
+ 'pfm' => 'application/x-font-printer-metric',
768
+ 'pfr' => 'application/font-tdpfr',
769
+ 'pfx' => 'application/x-pkcs12',
770
+ 'pgm' => 'image/x-portable-graymap',
771
+ 'pgn' => 'application/x-chess-pgn',
772
+ 'pgp' => 'application/pgp-encrypted',
773
+ 'php' => 'text/x-php',
774
+ 'php3' => 'text/x-php',
775
+ 'php4' => 'text/x-php',
776
+ 'pic' => 'image/x-pict',
777
+ 'pict' => 'image/x-pict',
778
+ 'pkg' => 'application/octet-stream',
779
+ 'pki' => 'application/pkixcmp',
780
+ 'pkipath' => 'application/pkix-pkipath',
781
+ 'pl' => 'text/x-perl',
782
+ 'plb' => 'application/vnd.3gpp.pic-bw-large',
783
+ 'plc' => 'application/vnd.mobius.plc',
784
+ 'plf' => 'application/vnd.pocketlearn',
785
+ 'pls' => 'application/pls+xml',
786
+ 'pm' => 'text/x-perl',
787
+ 'pml' => 'application/vnd.ctc-posml',
788
+ 'png' => 'image/png',
789
+ 'pnm' => 'image/x-portable-anymap',
790
+ 'pod' => 'text/plain',
791
+ 'pom' => 'text/plain',
792
+ 'portpkg' => 'application/vnd.macports.portpkg',
793
+ 'pot' => 'application/vnd.ms-powerpoint',
794
+ 'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12',
795
+ 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
796
+ 'pp' => 'text/x-pascal',
797
+ 'ppa' => 'application/vnd.ms-powerpoint',
798
+ 'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12',
799
+ 'ppd' => 'application/vnd.cups-ppd',
800
+ 'ppj' => 'image/vnd.adobe.premiere',
801
+ 'ppm' => 'image/x-portable-pixmap',
802
+ 'pps' => 'application/vnd.ms-powerpoint',
803
+ 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',
804
+ 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
805
+ 'ppt' => 'application/vnd.ms-powerpoint',
806
+ 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12',
807
+ 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
808
+ 'ppz' => 'application/vnd.ms-powerpoint',
809
+ 'pqa' => 'application/vnd.palm',
810
+ 'prc' => 'application/x-mobipocket-ebook',
811
+ 'pre' => 'application/vnd.lotus-freelance',
812
+ 'prf' => 'application/pics-rules',
813
+ 'pro' => 'text/x-prolog',
814
+ 'project' => 'text/plain',
815
+ 'properties' => 'text/x-java-properties',
816
+ 'prt' => 'application/x-prt',
817
+ 'ps' => 'application/postscript',
818
+ 'psb' => 'application/vnd.3gpp.pic-bw-small',
819
+ 'psd' => 'image/vnd.adobe.photoshop',
820
+ 'psf' => 'application/x-font-linux-psf',
821
+ 'pst' => 'application/vnd.ms-outlook-pst',
822
+ 'ptid' => 'application/vnd.pvi.ptid1',
823
+ 'ptx' => 'image/x-raw-pentax',
824
+ 'pub' => 'application/x-mspublisher',
825
+ 'pvb' => 'application/vnd.3gpp.pic-bw-var',
826
+ 'pwn' => 'application/vnd.3m.post-it-notes',
827
+ 'pxn' => 'image/x-raw-logitech',
828
+ 'py' => 'text/x-python',
829
+ 'pya' => 'audio/vnd.ms-playready.media.pya',
830
+ 'pyv' => 'video/vnd.ms-playready.media.pyv',
831
+ 'qam' => 'application/vnd.epson.quickanime',
832
+ 'qbo' => 'application/vnd.intu.qbo',
833
+ 'qfx' => 'application/vnd.intu.qfx',
834
+ 'qps' => 'application/vnd.publishare-delta-tree',
835
+ 'qpw' => 'application/x-quattro-pro',
836
+ 'qt' => 'video/quicktime',
837
+ 'qwd' => 'application/vnd.quark.quarkxpress',
838
+ 'qwt' => 'application/vnd.quark.quarkxpress',
839
+ 'qxb' => 'application/vnd.quark.quarkxpress',
840
+ 'qxd' => 'application/vnd.quark.quarkxpress',
841
+ 'qxl' => 'application/vnd.quark.quarkxpress',
842
+ 'qxt' => 'application/vnd.quark.quarkxpress',
843
+ 'r' => 'text/x-rsrc',
844
+ 'r3d' => 'image/x-raw-red',
845
+ 'ra' => 'audio/x-pn-realaudio',
846
+ 'raf' => 'image/x-raw-fuji',
847
+ 'ram' => 'audio/x-pn-realaudio',
848
+ 'rar' => 'application/x-rar-compressed',
849
+ 'ras' => 'image/x-cmu-raster',
850
+ 'raw' => 'image/x-raw-panasonic',
851
+ 'rb' => 'text/x-ruby',
852
+ 'rcprofile' => 'application/vnd.ipunplugged.rcprofile',
853
+ 'rdf' => 'application/rdf+xml',
854
+ 'rdz' => 'application/vnd.data-vision.rdz',
855
+ 'rep' => 'application/vnd.businessobjects',
856
+ 'res' => 'application/x-dtbresource+xml',
857
+ 'rest' => 'text/x-rst',
858
+ 'restx' => 'text/x-rst',
859
+ 'rexx' => 'text/x-rexx',
860
+ 'rgb' => 'image/x-rgb',
861
+ 'rif' => 'application/reginfo+xml',
862
+ 'rl' => 'application/resource-lists+xml',
863
+ 'rlc' => 'image/vnd.fujixerox.edmics-rlc',
864
+ 'rld' => 'application/resource-lists-diff+xml',
865
+ 'rm' => 'application/vnd.rn-realmedia',
866
+ 'rmi' => 'audio/midi',
867
+ 'rmp' => 'audio/x-pn-realaudio-plugin',
868
+ 'rms' => 'application/vnd.jcp.javame.midlet-rms',
869
+ 'rnc' => 'application/relax-ng-compact-syntax',
870
+ 'rng' => 'text/plain',
871
+ 'rnx' => 'text/plain',
872
+ 'roff' => 'text/troff',
873
+ 'roles' => 'text/plain',
874
+ 'rpm' => 'application/x-rpm',
875
+ 'rpss' => 'application/vnd.nokia.radio-presets',
876
+ 'rpst' => 'application/vnd.nokia.radio-preset',
877
+ 'rq' => 'application/sparql-query',
878
+ 'rs' => 'application/rls-services+xml',
879
+ 'rsd' => 'application/rsd+xml',
880
+ 'rss' => 'application/rss+xml',
881
+ 'rst' => 'text/x-rst',
882
+ 'rtf' => 'application/rtf',
883
+ 'rtx' => 'text/richtext',
884
+ 'rw2' => 'image/x-raw-panasonic',
885
+ 'rwz' => 'image/x-raw-rawzor',
886
+ 's' => 'text/x-assembly',
887
+ 's7m' => 'application/x-sas-dmdb',
888
+ 'sa7' => 'application/x-sas-access',
889
+ 'saf' => 'application/vnd.yamaha.smaf-audio',
890
+ 'sas' => 'application/x-sas',
891
+ 'sas7bacs' => 'application/x-sas-access',
892
+ 'sas7baud' => 'application/x-sas-audit',
893
+ 'sas7bbak' => 'application/x-sas-backup',
894
+ 'sas7bcat' => 'application/x-sas-catalog',
895
+ 'sas7bdat' => 'application/x-sas-data',
896
+ 'sas7bdmd' => 'application/x-sas-dmdb',
897
+ 'sas7bfdb' => 'application/x-sas-fdb',
898
+ 'sas7bitm' => 'application/x-sas-itemstor',
899
+ 'sas7bmdb' => 'application/x-sas-mddb',
900
+ 'sas7bndx' => 'application/x-sas-data-index',
901
+ 'sas7bpgm' => 'application/x-sas-program-data',
902
+ 'sas7bput' => 'application/x-sas-putility',
903
+ 'sas7butl' => 'application/x-sas-utility',
904
+ 'sas7bvew' => 'application/x-sas-view',
905
+ 'sbml' => 'application/sbml+xml',
906
+ 'sc' => 'application/vnd.ibm.secure-container',
907
+ 'sc7' => 'application/x-sas-catalog',
908
+ 'scala' => 'text/x-scala',
909
+ 'scd' => 'application/x-msschedule',
910
+ 'schemas' => 'text/plain',
911
+ 'scm' => 'text/x-scheme',
912
+ 'scq' => 'application/scvp-cv-request',
913
+ 'scs' => 'application/scvp-cv-response',
914
+ 'scurl' => 'text/vnd.curl.scurl',
915
+ 'sd2' => 'application/x-sas-data-v6',
916
+ 'sd7' => 'application/x-sas-data',
917
+ 'sda' => 'application/vnd.stardivision.draw',
918
+ 'sdc' => 'application/vnd.stardivision.calc',
919
+ 'sdd' => 'application/vnd.stardivision.impress',
920
+ 'sdkd' => 'application/vnd.solent.sdkm+xml',
921
+ 'sdkm' => 'application/vnd.solent.sdkm+xml',
922
+ 'sdp' => 'application/sdp',
923
+ 'sdw' => 'application/vnd.stardivision.writer',
924
+ 'sed' => 'text/x-sed',
925
+ 'see' => 'application/vnd.seemail',
926
+ 'seed' => 'application/vnd.fdsn.seed',
927
+ 'sema' => 'application/vnd.sema',
928
+ 'semd' => 'application/vnd.semd',
929
+ 'semf' => 'application/vnd.semf',
930
+ 'ser' => 'application/java-serialized-object',
931
+ 'setpay' => 'application/set-payment-initiation',
932
+ 'setreg' => 'application/set-registration-initiation',
933
+ 'sf7' => 'application/x-sas-fdb',
934
+ 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data',
935
+ 'sfdu' => 'application/x-sfdu',
936
+ 'sfs' => 'application/vnd.spotfire.sfs',
937
+ 'sgl' => 'application/vnd.stardivision.writer-global',
938
+ 'sgm' => 'text/sgml',
939
+ 'sgml' => 'text/sgml',
940
+ 'sh' => 'application/x-sh',
941
+ 'shar' => 'application/x-shar',
942
+ 'shf' => 'application/shf+xml',
943
+ 'shp' => 'application/x-shapefile',
944
+ 'shw' => 'application/x-corelpresentations',
945
+ 'si7' => 'application/x-sas-data-index',
946
+ 'sig' => 'application/pgp-signature',
947
+ 'silo' => 'model/mesh',
948
+ 'sis' => 'application/vnd.symbian.install',
949
+ 'sisx' => 'application/vnd.symbian.install',
950
+ 'sit' => 'application/x-stuffit',
951
+ 'sitx' => 'application/x-stuffitx',
952
+ 'skd' => 'application/vnd.koan',
953
+ 'skm' => 'application/vnd.koan',
954
+ 'skp' => 'application/vnd.koan',
955
+ 'skt' => 'application/vnd.koan',
956
+ 'sldasm' => 'application/sldworks',
957
+ 'slddrw' => 'application/sldworks',
958
+ 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12',
959
+ 'sldprt' => 'application/sldworks',
960
+ 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
961
+ 'slt' => 'application/vnd.epson.salt',
962
+ 'sm7' => 'application/x-sas-mddb',
963
+ 'smf' => 'application/vnd.stardivision.math',
964
+ 'smi' => 'application/smil+xml',
965
+ 'smil' => 'application/smil+xml',
966
+ 'sml' => 'application/smil+xml',
967
+ 'snd' => 'audio/basic',
968
+ 'snf' => 'application/x-font-snf',
969
+ 'so' => 'application/octet-stream',
970
+ 'sp7' => 'application/x-sas-putility',
971
+ 'spc' => 'application/x-pkcs7-certificates',
972
+ 'spf' => 'application/vnd.yamaha.smaf-phrase',
973
+ 'spl' => 'application/x-futuresplash',
974
+ 'spot' => 'text/vnd.in3d.spot',
975
+ 'spp' => 'application/scvp-vp-response',
976
+ 'spq' => 'application/scvp-vp-request',
977
+ 'spx' => 'audio/speex',
978
+ 'sql' => 'text/x-sql',
979
+ 'sr2' => 'image/x-raw-sony',
980
+ 'sr7' => 'application/x-sas-itemstor',
981
+ 'src' => 'application/x-wais-source',
982
+ 'srf' => 'image/x-raw-sony',
983
+ 'srl' => 'application/sereal',
984
+ 'srx' => 'application/sparql-results+xml',
985
+ 'ss7' => 'application/x-sas-program-data',
986
+ 'sse' => 'application/vnd.kodak-descriptor',
987
+ 'ssf' => 'application/vnd.epson.ssf',
988
+ 'ssml' => 'application/ssml+xml',
989
+ 'st' => 'text/x-stsrc',
990
+ 'st7' => 'application/x-sas-audit',
991
+ 'stc' => 'application/vnd.sun.xml.calc.template',
992
+ 'std' => 'application/vnd.sun.xml.draw.template',
993
+ 'stf' => 'application/vnd.wt.stf',
994
+ 'sti' => 'application/vnd.sun.xml.impress.template',
995
+ 'stk' => 'application/hyperstudio',
996
+ 'stl' => 'application/vnd.ms-pki.stl',
997
+ 'str' => 'application/vnd.pg.format',
998
+ 'stw' => 'application/vnd.sun.xml.writer.template',
999
+ 'stx' => 'application/x-sas-transport',
1000
+ 'su7' => 'application/x-sas-utility',
1001
+ 'sus' => 'application/vnd.sus-calendar',
1002
+ 'susp' => 'application/vnd.sus-calendar',
1003
+ 'sv4cpio' => 'application/x-sv4cpio',
1004
+ 'sv4crc' => 'application/x-sv4crc',
1005
+ 'sv7' => 'application/x-sas-view',
1006
+ 'svd' => 'application/vnd.svd',
1007
+ 'svg' => 'image/svg+xml',
1008
+ 'svgz' => 'image/svg+xml',
1009
+ 'swa' => 'application/x-director',
1010
+ 'swf' => 'application/x-shockwave-flash',
1011
+ 'swi' => 'application/vnd.arastra.swi',
1012
+ 'sxc' => 'application/vnd.sun.xml.calc',
1013
+ 'sxd' => 'application/vnd.sun.xml.draw',
1014
+ 'sxg' => 'application/vnd.sun.xml.writer.global',
1015
+ 'sxi' => 'application/vnd.sun.xml.impress',
1016
+ 'sxm' => 'application/vnd.sun.xml.math',
1017
+ 'sxw' => 'application/vnd.sun.xml.writer',
1018
+ 'sz' => 'application/x-snappy-framed',
1019
+ 't' => 'text/troff',
1020
+ 'tao' => 'application/vnd.tao.intent-module-archive',
1021
+ 'tar' => 'application/x-tar',
1022
+ 'tbz' => 'application/x-bzip',
1023
+ 'tbz2' => 'application/x-bzip2',
1024
+ 'tcap' => 'application/vnd.3gpp2.tcap',
1025
+ 'tcl' => 'text/x-tcl',
1026
+ 'tcsh' => 'application/x-csh',
1027
+ 'teacher' => 'application/vnd.smart.teacher',
1028
+ 'tex' => 'application/x-tex',
1029
+ 'texi' => 'application/x-texinfo',
1030
+ 'texinfo' => 'application/x-texinfo',
1031
+ 'text' => 'text/plain',
1032
+ 'tfm' => 'application/x-tex-tfm',
1033
+ 'tga' => 'image/x-tga',
1034
+ 'tgz' => 'application/gzip',
1035
+ 'thmx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
1036
+ 'tif' => 'image/tiff',
1037
+ 'tiff' => 'image/tiff',
1038
+ 'tk' => 'text/x-tcl',
1039
+ 'tld' => 'text/plain',
1040
+ 'tmo' => 'application/vnd.tmobile-livetv',
1041
+ 'toast' => 'application/x-roxio-toast',
1042
+ 'torrent' => 'application/x-bittorrent',
1043
+ 'tpl' => 'application/vnd.groove-tool-template',
1044
+ 'tpt' => 'application/vnd.trid.tpt',
1045
+ 'tr' => 'text/troff',
1046
+ 'tra' => 'application/vnd.trueapp',
1047
+ 'trm' => 'application/x-msterminal',
1048
+ 'tsd' => 'application/timestamped-data',
1049
+ 'tsv' => 'text/tab-separated-values',
1050
+ 'ttc' => 'application/x-font-ttf',
1051
+ 'ttf' => 'application/x-font-ttf',
1052
+ 'twd' => 'application/vnd.simtech-mindmapper',
1053
+ 'twds' => 'application/vnd.simtech-mindmapper',
1054
+ 'txd' => 'application/vnd.genomatix.tuxedo',
1055
+ 'txf' => 'application/vnd.mobius.txf',
1056
+ 'txt' => 'text/plain',
1057
+ 'types' => 'text/plain',
1058
+ 'u32' => 'application/x-authorware-bin',
1059
+ 'uc2' => 'application/x-uc2-compressed',
1060
+ 'udeb' => 'application/x-debian-package',
1061
+ 'ufd' => 'application/vnd.ufdl',
1062
+ 'ufdl' => 'application/vnd.ufdl',
1063
+ 'umj' => 'application/vnd.umajin',
1064
+ 'unityweb' => 'application/vnd.unity',
1065
+ 'uoml' => 'application/vnd.uoml+xml',
1066
+ 'uri' => 'text/uri-list',
1067
+ 'uris' => 'text/uri-list',
1068
+ 'urls' => 'text/uri-list',
1069
+ 'ustar' => 'application/x-ustar',
1070
+ 'utz' => 'application/vnd.uiq.theme',
1071
+ 'uu' => 'text/x-uuencode',
1072
+ 'v' => 'text/x-verilog',
1073
+ 'vb' => 'text/x-vbdotnet',
1074
+ 'vbs' => 'text/x-vbscript',
1075
+ 'vcd' => 'application/x-cdlink',
1076
+ 'vcf' => 'text/x-vcard',
1077
+ 'vcg' => 'application/vnd.groove-vcard',
1078
+ 'vcs' => 'text/x-vcalendar',
1079
+ 'vcx' => 'application/vnd.vcx',
1080
+ 'vda' => 'image/x-tga',
1081
+ 'vhd' => 'text/x-vhdl',
1082
+ 'vhdl' => 'text/x-vhdl',
1083
+ 'vis' => 'application/vnd.visionary',
1084
+ 'viv' => 'video/vnd.vivo',
1085
+ 'vm' => 'text/plain',
1086
+ 'vmdk' => 'application/x-vmdk',
1087
+ 'vor' => 'application/x-staroffice-template',
1088
+ 'vox' => 'application/x-authorware-bin',
1089
+ 'vrml' => 'model/vrml',
1090
+ 'vsd' => 'application/vnd.visio',
1091
+ 'vsdm' => 'application/vnd.ms-visio.drawing.macroEnabled.12',
1092
+ 'vsdx' => 'application/vnd.ms-visio.drawing',
1093
+ 'vsf' => 'application/vnd.vsf',
1094
+ 'vsl' => 'text/plain',
1095
+ 'vss' => 'application/vnd.visio',
1096
+ 'vssm' => 'application/vnd.ms-visio.stencil.macroEnabled.12',
1097
+ 'vssx' => 'application/vnd.ms-visio.stencil',
1098
+ 'vst' => 'application/vnd.visio',
1099
+ 'vstm' => 'application/vnd.ms-visio.template.macroEnabled.12',
1100
+ 'vstx' => 'application/vnd.ms-visio.template',
1101
+ 'vsw' => 'application/vnd.visio',
1102
+ 'vtt' => 'text/vtt',
1103
+ 'vtu' => 'model/vnd.vtu',
1104
+ 'vxml' => 'application/voicexml+xml',
1105
+ 'w3d' => 'application/x-director',
1106
+ 'w60' => 'application/vnd.wordperfect',
1107
+ 'wad' => 'application/x-doom',
1108
+ 'war' => 'application/x-tika-java-web-archive',
1109
+ 'warc' => 'application/warc',
1110
+ 'wasm' => 'application/wasm',
1111
+ 'wav' => 'audio/vnd.wave',
1112
+ 'wax' => 'audio/x-ms-wax',
1113
+ 'wb1' => 'application/x-quattro-pro',
1114
+ 'wb2' => 'application/x-quattro-pro',
1115
+ 'wb3' => 'application/x-quattro-pro',
1116
+ 'wbmp' => 'image/vnd.wap.wbmp',
1117
+ 'wbs' => 'application/vnd.criticaltools.wbs+xml',
1118
+ 'wbxml' => 'application/vnd.wap.wbxml',
1119
+ 'wcm' => 'application/vnd.ms-works',
1120
+ 'wdb' => 'application/vnd.ms-works',
1121
+ 'webarchive' => 'application/x-webarchive',
1122
+ 'webm' => 'video/webm',
1123
+ 'webp' => 'image/webp',
1124
+ 'wk1' => 'application/vnd.lotus-1-2-3',
1125
+ 'wk2' => 'application/vnd.lotus-1-2-3',
1126
+ 'wk3' => 'application/vnd.lotus-1-2-3',
1127
+ 'wk4' => 'application/vnd.lotus-1-2-3',
1128
+ 'wkq' => 'application/x-quattro-pro',
1129
+ 'wks' => 'application/vnd.ms-works',
1130
+ 'wl' => 'application/vnd.wolfram.wl',
1131
+ 'wm' => 'video/x-ms-wm',
1132
+ 'wma' => 'audio/x-ms-wma',
1133
+ 'wmd' => 'application/x-ms-wmd',
1134
+ 'wmf' => 'image/wmf',
1135
+ 'wml' => 'text/vnd.wap.wml',
1136
+ 'wmlc' => 'application/vnd.wap.wmlc',
1137
+ 'wmls' => 'text/vnd.wap.wmlscript',
1138
+ 'wmlsc' => 'application/vnd.wap.wmlscriptc',
1139
+ 'wmv' => 'video/x-ms-wmv',
1140
+ 'wmx' => 'video/x-ms-wmx',
1141
+ 'wmz' => 'application/x-ms-wmz',
1142
+ 'woff' => 'font/woff',
1143
+ 'woff2' => 'font/woff2',
1144
+ 'wp' => 'application/vnd.wordperfect',
1145
+ 'wp5' => 'application/vnd.wordperfect',
1146
+ 'wp6' => 'application/vnd.wordperfect',
1147
+ 'wp61' => 'application/vnd.wordperfect',
1148
+ 'wpd' => 'application/vnd.wordperfect',
1149
+ 'wpl' => 'application/vnd.ms-wpl',
1150
+ 'wps' => 'application/vnd.ms-works',
1151
+ 'wpt' => 'application/vnd.wordperfect',
1152
+ 'wq1' => 'application/x-quattro-pro',
1153
+ 'wq2' => 'application/x-quattro-pro',
1154
+ 'wqd' => 'application/vnd.wqd',
1155
+ 'wri' => 'application/x-mswrite',
1156
+ 'wrl' => 'model/vrml',
1157
+ 'wsdd' => 'text/plain',
1158
+ 'wsdl' => 'application/wsdl+xml',
1159
+ 'wspolicy' => 'application/wspolicy+xml',
1160
+ 'wtb' => 'application/vnd.webturbo',
1161
+ 'wvx' => 'video/x-ms-wvx',
1162
+ 'x32' => 'application/x-authorware-bin',
1163
+ 'x3d' => 'application/vnd.hzn-3d-crossword',
1164
+ 'x3f' => 'image/x-raw-sigma',
1165
+ 'xap' => 'application/x-silverlight-app',
1166
+ 'xar' => 'application/vnd.xara',
1167
+ 'xargs' => 'text/plain',
1168
+ 'xbap' => 'application/x-ms-xbap',
1169
+ 'xbd' => 'application/vnd.fujixerox.docuworks.binder',
1170
+ 'xbm' => 'image/x-xbitmap',
1171
+ 'xcat' => 'text/plain',
1172
+ 'xcf' => 'image/x-xcf',
1173
+ 'xconf' => 'text/x-config',
1174
+ 'xdm' => 'application/vnd.syncml.dm+xml',
1175
+ 'xdp' => 'application/vnd.adobe.xdp+xml',
1176
+ 'xdw' => 'application/vnd.fujixerox.docuworks',
1177
+ 'xegrm' => 'text/plain',
1178
+ 'xenc' => 'application/xenc+xml',
1179
+ 'xer' => 'application/patch-ops-error+xml',
1180
+ 'xfdf' => 'application/vnd.adobe.xfdf',
1181
+ 'xfdl' => 'application/vnd.xfdl',
1182
+ 'xgrm' => 'text/plain',
1183
+ 'xht' => 'application/xhtml+xml',
1184
+ 'xhtml' => 'application/xhtml+xml',
1185
+ 'xhtml2' => 'application/xhtml+xml',
1186
+ 'xhvml' => 'application/xv+xml',
1187
+ 'xif' => 'image/vnd.xiff',
1188
+ 'xla' => 'application/vnd.ms-excel',
1189
+ 'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12',
1190
+ 'xlc' => 'application/vnd.ms-excel',
1191
+ 'xld' => 'application/vnd.ms-excel',
1192
+ 'xlex' => 'text/plain',
1193
+ 'xlf' => 'application/x-xliff+xml',
1194
+ 'xliff' => 'application/x-xliff+xml',
1195
+ 'xll' => 'application/vnd.ms-excel',
1196
+ 'xlm' => 'application/vnd.ms-excel',
1197
+ 'xlog' => 'text/plain',
1198
+ 'xlr' => 'application/x-tika-msworks-spreadsheet',
1199
+ 'xls' => 'application/vnd.ms-excel',
1200
+ 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12',
1201
+ 'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12',
1202
+ 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
1203
+ 'xlt' => 'application/vnd.ms-excel',
1204
+ 'xltm' => 'application/vnd.ms-excel.template.macroenabled.12',
1205
+ 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
1206
+ 'xlw' => 'application/vnd.ms-excel',
1207
+ 'xlz' => 'application/x-xliff+zip',
1208
+ 'xmap' => 'text/plain',
1209
+ 'xmind' => 'application/x-xmind',
1210
+ 'xml' => 'application/xml',
1211
+ 'xmp' => 'application/rdf+xml',
1212
+ 'xo' => 'application/vnd.olpc-sugar',
1213
+ 'xop' => 'application/xop+xml',
1214
+ 'xpi' => 'application/x-xpinstall',
1215
+ 'xpm' => 'image/x-xpixmap',
1216
+ 'xport' => 'application/x-sas-xport',
1217
+ 'xpr' => 'application/vnd.is-xpr',
1218
+ 'xps' => 'application/vnd.ms-xpsdocument',
1219
+ 'xpt' => 'application/x-sas-xport',
1220
+ 'xpw' => 'application/vnd.intercon.formnet',
1221
+ 'xpx' => 'application/vnd.intercon.formnet',
1222
+ 'xq' => 'application/xquery',
1223
+ 'xquery' => 'application/xquery',
1224
+ 'xroles' => 'text/plain',
1225
+ 'xsamples' => 'text/plain',
1226
+ 'xsd' => 'application/xml',
1227
+ 'xsl' => 'application/xml',
1228
+ 'xslfo' => 'application/xslfo+xml',
1229
+ 'xslt' => 'application/xslt+xml',
1230
+ 'xsm' => 'application/vnd.syncml+xml',
1231
+ 'xsp' => 'text/plain',
1232
+ 'xspf' => 'application/xspf+xml',
1233
+ 'xtest' => 'text/plain',
1234
+ 'xul' => 'application/vnd.mozilla.xul+xml',
1235
+ 'xvm' => 'application/xv+xml',
1236
+ 'xvml' => 'application/xv+xml',
1237
+ 'xwd' => 'image/x-xwindowdump',
1238
+ 'xweb' => 'text/plain',
1239
+ 'xwelcome' => 'text/plain',
1240
+ 'xyz' => 'chemical/x-xyz',
1241
+ 'xz' => 'application/x-xz',
1242
+ 'y' => 'text/x-yacc',
1243
+ 'yaml' => 'text/x-yaml',
1244
+ 'z' => 'application/x-compress',
1245
+ 'zaz' => 'application/vnd.zzazz.deck+xml',
1246
+ 'zip' => 'application/zip',
1247
+ 'zir' => 'application/vnd.zul',
1248
+ 'zirz' => 'application/vnd.zul',
1249
+ 'zmm' => 'application/vnd.handheld-entertainment+xml',
1250
+ 'zoo' => 'application/x-zoo',
1251
+ 'zstd' => 'application/zstd',
1252
+ }
1253
+ # @private
1254
+ # :nodoc:
1255
+ TYPES = {
1256
+ 'application/andrew-inset' => [%w(ez), %w(), nil],
1257
+ 'application/applixware' => [%w(aw), %w(), nil],
1258
+ 'application/atom+xml' => [%w(atom), %w(), nil],
1259
+ 'application/atomcat+xml' => [%w(atomcat), %w(), nil],
1260
+ 'application/atomsvc+xml' => [%w(atomsvc), %w(), nil],
1261
+ 'application/bizagi-modeler' => [%w(bpm), %w(application/zip), 'BizAgi Process Modeler'],
1262
+ 'application/cbor' => [%w(cbor), %w(), 'Concise Binary Object Representation container'],
1263
+ 'application/ccxml+xml' => [%w(ccxml), %w(), nil],
1264
+ 'application/coreldraw' => [%w(cdr), %w(), 'des: CorelDraw X4 and newer'],
1265
+ 'application/cu-seeme' => [%w(cu), %w(), nil],
1266
+ 'application/dash+xml' => [%w(mpd), %w(application/xml), nil],
1267
+ 'application/davmount+xml' => [%w(davmount), %w(), nil],
1268
+ 'application/dif+xml' => [%w(dif), %w(application/xml), nil],
1269
+ 'application/dita+xml;format=map' => [%w(ditamap), %w(application/dita+xml), 'DITA Map'],
1270
+ 'application/dita+xml;format=topic' => [%w(dita), %w(application/dita+xml), 'DITA Topic'],
1271
+ 'application/dita+xml;format=val' => [%w(ditaval), %w(application/dita+xml), 'DITA Conditional Processing Profile'],
1272
+ 'application/ecmascript' => [%w(ecma), %w(), nil],
1273
+ 'application/emma+xml' => [%w(emma), %w(), nil],
1274
+ 'application/envi.hdr' => [%w(hdr), %w(), nil],
1275
+ 'application/epub+zip' => [%w(epub), %w(), 'Electronic Publication'],
1276
+ 'application/fits' => [%w(fits fit fts), %w(), 'Flexible Image Transport System'],
1277
+ 'application/font-tdpfr' => [%w(pfr), %w(), nil],
1278
+ 'application/gzip' => [%w(gz tgz), %w(), 'Gzip Compressed Archive'],
1279
+ 'application/hyperstudio' => [%w(stk), %w(), nil],
1280
+ 'application/illustrator' => [%w(ai), %w(application/postscript), 'Adobe Illustrator Artwork'],
1281
+ 'application/java-archive' => [%w(jar), %w(application/zip), 'Java Archive'],
1282
+ 'application/java-serialized-object' => [%w(ser), %w(), nil],
1283
+ 'application/java-vm' => [%w(class), %w(), 'Java Class File'],
1284
+ 'application/javascript' => [%w(js), %w(text/plain), 'JavaScript Source Code'],
1285
+ 'application/json' => [%w(json), %w(application/javascript), nil],
1286
+ 'application/lost+xml' => [%w(lostxml), %w(), nil],
1287
+ 'application/mac-binhex40' => [%w(hqx), %w(), nil],
1288
+ 'application/mac-compactpro' => [%w(cpt), %w(), nil],
1289
+ 'application/marc' => [%w(mrc), %w(), nil],
1290
+ 'application/mathematica' => [%w(ma nb mb), %w(text/plain), 'Wolfram Mathematica'],
1291
+ 'application/mathml+xml' => [%w(mathml), %w(), nil],
1292
+ 'application/mbox' => [%w(mbox), %w(text/x-tika-text-based-message), nil],
1293
+ 'application/mediaservercontrol+xml' => [%w(mscml), %w(), nil],
1294
+ 'application/mp4' => [%w(mp4s), %w(application/quicktime), 'MP4 container format'],
1295
+ 'application/msword' => [%w(doc dot), %w(application/x-tika-msoffice), 'Microsoft Word Document'],
1296
+ 'application/mxf' => [%w(mxf), %w(), nil],
1297
+ 'application/octet-stream' => [%w(bin dms lha lrf lzh so dist distz pkg bpk dump elc deploy), %w(), nil],
1298
+ 'application/oda' => [%w(oda), %w(), nil],
1299
+ 'application/oebps-package+xml' => [%w(opf), %w(), nil],
1300
+ 'application/ogg' => [%w(ogx), %w(), nil],
1301
+ 'application/onenote' => [%w(onetmp), %w(), nil],
1302
+ 'application/onenote; format=package' => [%w(onepkg), %w(application/vnd.ms-cab-compressed), 'OneNote Package'],
1303
+ 'application/onenote;format=one' => [%w(one), %w(application/onenote), nil],
1304
+ 'application/onenote;format=onetoc2' => [%w(onetoc onetoc2), %w(application/onenote), 'OneNote Table of Contents'],
1305
+ 'application/patch-ops-error+xml' => [%w(xer), %w(), nil],
1306
+ 'application/pdf' => [%w(pdf), %w(), 'Portable Document Format'],
1307
+ 'application/pgp-encrypted' => [%w(pgp), %w(), nil],
1308
+ 'application/pgp-signature' => [%w(asc sig), %w(), nil],
1309
+ 'application/pics-rules' => [%w(prf), %w(), nil],
1310
+ 'application/pkcs10' => [%w(p10), %w(), nil],
1311
+ 'application/pkcs7-mime' => [%w(p7m p7c), %w(), nil],
1312
+ 'application/pkcs7-signature' => [%w(p7s), %w(), nil],
1313
+ 'application/pkix-cert' => [%w(cer), %w(), nil],
1314
+ 'application/pkix-crl' => [%w(crl), %w(), nil],
1315
+ 'application/pkix-pkipath' => [%w(pkipath), %w(), nil],
1316
+ 'application/pkixcmp' => [%w(pki), %w(), nil],
1317
+ 'application/pls+xml' => [%w(pls), %w(), nil],
1318
+ 'application/postscript' => [%w(ps eps epsf epsi), %w(), 'PostScript'],
1319
+ 'application/prs.cww' => [%w(cww), %w(), nil],
1320
+ 'application/rdf+xml' => [%w(rdf owl xmp), %w(application/xml), 'XML syntax for RDF graphs'],
1321
+ 'application/reginfo+xml' => [%w(rif), %w(), nil],
1322
+ 'application/relax-ng-compact-syntax' => [%w(rnc), %w(text/plain), nil],
1323
+ 'application/resource-lists+xml' => [%w(rl), %w(), nil],
1324
+ 'application/resource-lists-diff+xml' => [%w(rld), %w(), nil],
1325
+ 'application/rls-services+xml' => [%w(rs), %w(), nil],
1326
+ 'application/rsd+xml' => [%w(rsd), %w(), nil],
1327
+ 'application/rss+xml' => [%w(rss), %w(), nil],
1328
+ 'application/rtf' => [%w(rtf), %w(text/plain), 'Rich Text Format File'],
1329
+ 'application/sbml+xml' => [%w(sbml), %w(), nil],
1330
+ 'application/scvp-cv-request' => [%w(scq), %w(), nil],
1331
+ 'application/scvp-cv-response' => [%w(scs), %w(), nil],
1332
+ 'application/scvp-vp-request' => [%w(spq), %w(), nil],
1333
+ 'application/scvp-vp-response' => [%w(spp), %w(), nil],
1334
+ 'application/sdp' => [%w(sdp), %w(), nil],
1335
+ 'application/sereal' => [%w(srl), %w(), 'Sereal binary serialization format'],
1336
+ 'application/set-payment-initiation' => [%w(setpay), %w(), nil],
1337
+ 'application/set-registration-initiation' => [%w(setreg), %w(), nil],
1338
+ 'application/shf+xml' => [%w(shf), %w(), nil],
1339
+ 'application/sldworks' => [%w(sldprt sldasm slddrw), %w(application/x-tika-msoffice), 'SolidWorks CAD program'],
1340
+ 'application/smil+xml' => [%w(smi smil sml), %w(application/xml), 'SMIL Multimedia'],
1341
+ 'application/sparql-query' => [%w(rq), %w(), nil],
1342
+ 'application/sparql-results+xml' => [%w(srx), %w(), nil],
1343
+ 'application/srgs' => [%w(gram), %w(), nil],
1344
+ 'application/srgs+xml' => [%w(grxml), %w(), nil],
1345
+ 'application/ssml+xml' => [%w(ssml), %w(), nil],
1346
+ 'application/timestamped-data' => [%w(tsd), %w(), nil],
1347
+ 'application/vnd.3gpp.pic-bw-large' => [%w(plb), %w(), nil],
1348
+ 'application/vnd.3gpp.pic-bw-small' => [%w(psb), %w(), nil],
1349
+ 'application/vnd.3gpp.pic-bw-var' => [%w(pvb), %w(), nil],
1350
+ 'application/vnd.3gpp2.tcap' => [%w(tcap), %w(), nil],
1351
+ 'application/vnd.3m.post-it-notes' => [%w(pwn), %w(), nil],
1352
+ 'application/vnd.accpac.simply.aso' => [%w(aso), %w(), nil],
1353
+ 'application/vnd.accpac.simply.imp' => [%w(imp), %w(), nil],
1354
+ 'application/vnd.acucobol' => [%w(acu), %w(), nil],
1355
+ 'application/vnd.acucorp' => [%w(atc acutc), %w(), nil],
1356
+ 'application/vnd.adobe.aftereffects.project' => [%w(aep), %w(), nil],
1357
+ 'application/vnd.adobe.aftereffects.template' => [%w(aet), %w(), nil],
1358
+ 'application/vnd.adobe.air-application-installer-package+zip' => [%w(air), %w(), nil],
1359
+ 'application/vnd.adobe.xdp+xml' => [%w(xdp), %w(application/xml), nil],
1360
+ 'application/vnd.adobe.xfdf' => [%w(xfdf), %w(application/xml), nil],
1361
+ 'application/vnd.airzip.filesecure.azf' => [%w(azf), %w(), nil],
1362
+ 'application/vnd.airzip.filesecure.azs' => [%w(azs), %w(), nil],
1363
+ 'application/vnd.amazon.ebook' => [%w(azw), %w(), nil],
1364
+ 'application/vnd.americandynamics.acc' => [%w(acc), %w(), nil],
1365
+ 'application/vnd.amiga.ami' => [%w(ami), %w(), nil],
1366
+ 'application/vnd.android.package-archive' => [%w(apk), %w(application/java-archive), nil],
1367
+ 'application/vnd.anser-web-certificate-issue-initiation' => [%w(cii), %w(), nil],
1368
+ 'application/vnd.anser-web-funds-transfer-initiation' => [%w(fti), %w(), nil],
1369
+ 'application/vnd.antix.game-component' => [%w(atx), %w(), nil],
1370
+ 'application/vnd.apple.installer+xml' => [%w(mpkg), %w(), nil],
1371
+ 'application/vnd.apple.keynote' => [%w(key), %w(application/vnd.apple.iwork), nil],
1372
+ 'application/vnd.apple.mpegurl' => [%w(m3u8), %w(), nil],
1373
+ 'application/vnd.apple.numbers' => [%w(numbers), %w(application/vnd.apple.iwork), nil],
1374
+ 'application/vnd.apple.pages' => [%w(pages), %w(application/vnd.apple.iwork), nil],
1375
+ 'application/vnd.arastra.swi' => [%w(swi), %w(), nil],
1376
+ 'application/vnd.blueice.multipass' => [%w(mpm), %w(), nil],
1377
+ 'application/vnd.bmi' => [%w(bmi), %w(), nil],
1378
+ 'application/vnd.businessobjects' => [%w(rep), %w(), nil],
1379
+ 'application/vnd.chemdraw+xml' => [%w(cdxml), %w(), nil],
1380
+ 'application/vnd.chipnuts.karaoke-mmd' => [%w(mmd), %w(), nil],
1381
+ 'application/vnd.cinderella' => [%w(cdy), %w(), nil],
1382
+ 'application/vnd.claymore' => [%w(cla), %w(), nil],
1383
+ 'application/vnd.clonk.c4group' => [%w(c4g c4d c4f c4p c4u), %w(), nil],
1384
+ 'application/vnd.commonspace' => [%w(csp), %w(), nil],
1385
+ 'application/vnd.contact.cmsg' => [%w(cdbcmsg), %w(), nil],
1386
+ 'application/vnd.cosmocaller' => [%w(cmc), %w(), nil],
1387
+ 'application/vnd.crick.clicker' => [%w(clkx), %w(), nil],
1388
+ 'application/vnd.crick.clicker.keyboard' => [%w(clkk), %w(), nil],
1389
+ 'application/vnd.crick.clicker.palette' => [%w(clkp), %w(), nil],
1390
+ 'application/vnd.crick.clicker.template' => [%w(clkt), %w(), nil],
1391
+ 'application/vnd.crick.clicker.wordbank' => [%w(clkw), %w(), nil],
1392
+ 'application/vnd.criticaltools.wbs+xml' => [%w(wbs), %w(), nil],
1393
+ 'application/vnd.ctc-posml' => [%w(pml), %w(), nil],
1394
+ 'application/vnd.cups-ppd' => [%w(ppd), %w(), nil],
1395
+ 'application/vnd.curl.car' => [%w(car), %w(), nil],
1396
+ 'application/vnd.curl.pcurl' => [%w(pcurl), %w(), nil],
1397
+ 'application/vnd.data-vision.rdz' => [%w(rdz), %w(), nil],
1398
+ 'application/vnd.denovo.fcselayout-link' => [%w(fe_launch), %w(), nil],
1399
+ 'application/vnd.dna' => [%w(dna), %w(), nil],
1400
+ 'application/vnd.dolby.mlp' => [%w(mlp), %w(), nil],
1401
+ 'application/vnd.dpgraph' => [%w(dpg), %w(), nil],
1402
+ 'application/vnd.dreamfactory' => [%w(dfac), %w(), nil],
1403
+ 'application/vnd.dynageo' => [%w(geo), %w(), nil],
1404
+ 'application/vnd.ecowin.chart' => [%w(mag), %w(), nil],
1405
+ 'application/vnd.enliven' => [%w(nml), %w(), nil],
1406
+ 'application/vnd.epson.esf' => [%w(esf), %w(), nil],
1407
+ 'application/vnd.epson.msf' => [%w(msf), %w(), nil],
1408
+ 'application/vnd.epson.quickanime' => [%w(qam), %w(), nil],
1409
+ 'application/vnd.epson.salt' => [%w(slt), %w(), nil],
1410
+ 'application/vnd.epson.ssf' => [%w(ssf), %w(), nil],
1411
+ 'application/vnd.eszigno3+xml' => [%w(es3 et3), %w(), nil],
1412
+ 'application/vnd.etsi.asic-e+zip' => [%w(asice), %w(application/zip), 'Extended Associated Signature Container'],
1413
+ 'application/vnd.etsi.asic-s+zip' => [%w(asics), %w(application/zip), 'Simple Associated Signature Container'],
1414
+ 'application/vnd.ezpix-album' => [%w(ez2), %w(), nil],
1415
+ 'application/vnd.ezpix-package' => [%w(ez3), %w(), nil],
1416
+ 'application/vnd.fdf' => [%w(fdf), %w(), 'Forms Data Format'],
1417
+ 'application/vnd.fdsn.mseed' => [%w(mseed), %w(), nil],
1418
+ 'application/vnd.fdsn.seed' => [%w(seed dataless), %w(), nil],
1419
+ 'application/vnd.flographit' => [%w(gph), %w(), nil],
1420
+ 'application/vnd.fluxtime.clip' => [%w(ftc), %w(), nil],
1421
+ 'application/vnd.framemaker' => [%w(fm frame maker book), %w(), nil],
1422
+ 'application/vnd.frogans.fnc' => [%w(fnc), %w(), nil],
1423
+ 'application/vnd.frogans.ltf' => [%w(ltf), %w(), nil],
1424
+ 'application/vnd.fsc.weblaunch' => [%w(fsc), %w(), nil],
1425
+ 'application/vnd.fujitsu.oasys' => [%w(oas), %w(), nil],
1426
+ 'application/vnd.fujitsu.oasys2' => [%w(oa2), %w(), nil],
1427
+ 'application/vnd.fujitsu.oasys3' => [%w(oa3), %w(), nil],
1428
+ 'application/vnd.fujitsu.oasysgp' => [%w(fg5), %w(), nil],
1429
+ 'application/vnd.fujitsu.oasysprs' => [%w(bh2), %w(), nil],
1430
+ 'application/vnd.fujixerox.ddd' => [%w(ddd), %w(), nil],
1431
+ 'application/vnd.fujixerox.docuworks' => [%w(xdw), %w(), nil],
1432
+ 'application/vnd.fujixerox.docuworks.binder' => [%w(xbd), %w(), nil],
1433
+ 'application/vnd.fuzzysheet' => [%w(fzs), %w(), nil],
1434
+ 'application/vnd.genomatix.tuxedo' => [%w(txd), %w(), nil],
1435
+ 'application/vnd.geogebra.file' => [%w(ggb), %w(), nil],
1436
+ 'application/vnd.geogebra.tool' => [%w(ggt), %w(), nil],
1437
+ 'application/vnd.geometry-explorer' => [%w(gex gre), %w(), nil],
1438
+ 'application/vnd.gmx' => [%w(gmx), %w(), nil],
1439
+ 'application/vnd.google-earth.kml+xml' => [%w(kml), %w(application/xml), 'Keyhole Markup Language'],
1440
+ 'application/vnd.google-earth.kmz' => [%w(kmz), %w(application/zip), nil],
1441
+ 'application/vnd.grafeq' => [%w(gqf gqs), %w(), nil],
1442
+ 'application/vnd.groove-account' => [%w(gac), %w(), nil],
1443
+ 'application/vnd.groove-help' => [%w(ghf), %w(), nil],
1444
+ 'application/vnd.groove-identity-message' => [%w(gim), %w(), nil],
1445
+ 'application/vnd.groove-injector' => [%w(grv), %w(), nil],
1446
+ 'application/vnd.groove-tool-message' => [%w(gtm), %w(), nil],
1447
+ 'application/vnd.groove-tool-template' => [%w(tpl), %w(), nil],
1448
+ 'application/vnd.groove-vcard' => [%w(vcg), %w(), nil],
1449
+ 'application/vnd.handheld-entertainment+xml' => [%w(zmm), %w(), nil],
1450
+ 'application/vnd.hbci' => [%w(hbci), %w(), nil],
1451
+ 'application/vnd.hhe.lesson-player' => [%w(les), %w(), nil],
1452
+ 'application/vnd.hp-hpgl' => [%w(hpgl), %w(), nil],
1453
+ 'application/vnd.hp-hpid' => [%w(hpid), %w(), nil],
1454
+ 'application/vnd.hp-hps' => [%w(hps), %w(), nil],
1455
+ 'application/vnd.hp-jlyt' => [%w(jlt), %w(), nil],
1456
+ 'application/vnd.hp-pcl' => [%w(pcl), %w(), nil],
1457
+ 'application/vnd.hp-pclxl' => [%w(pclxl), %w(), nil],
1458
+ 'application/vnd.hydrostatix.sof-data' => [%w(sfd-hdstx), %w(), nil],
1459
+ 'application/vnd.hzn-3d-crossword' => [%w(x3d), %w(), nil],
1460
+ 'application/vnd.ibm.minipay' => [%w(mpy), %w(), nil],
1461
+ 'application/vnd.ibm.modcap' => [%w(afp listafp list3820), %w(), nil],
1462
+ 'application/vnd.ibm.rights-management' => [%w(irm), %w(), nil],
1463
+ 'application/vnd.ibm.secure-container' => [%w(sc), %w(), nil],
1464
+ 'application/vnd.iccprofile' => [%w(icc icm), %w(), nil],
1465
+ 'application/vnd.igloader' => [%w(igl), %w(), nil],
1466
+ 'application/vnd.immervision-ivp' => [%w(ivp), %w(), nil],
1467
+ 'application/vnd.immervision-ivu' => [%w(ivu), %w(), nil],
1468
+ 'application/vnd.intercon.formnet' => [%w(xpw xpx), %w(), nil],
1469
+ 'application/vnd.intu.qbo' => [%w(qbo), %w(), nil],
1470
+ 'application/vnd.intu.qfx' => [%w(qfx), %w(), nil],
1471
+ 'application/vnd.iptc.g2.newsmessage+xml' => [%w(nar), %w(application/xml), 'XML syntax for IPTC NewsMessages'],
1472
+ 'application/vnd.ipunplugged.rcprofile' => [%w(rcprofile), %w(), nil],
1473
+ 'application/vnd.irepository.package+xml' => [%w(irp), %w(), nil],
1474
+ 'application/vnd.is-xpr' => [%w(xpr), %w(), nil],
1475
+ 'application/vnd.jam' => [%w(jam), %w(), nil],
1476
+ 'application/vnd.java.hprof ' => [%w(hprof), %w(), 'Java hprof text file'],
1477
+ 'application/vnd.java.hprof.text' => [%w(hprof.txt), %w(text/plain), 'Java hprof text file'],
1478
+ 'application/vnd.jcp.javame.midlet-rms' => [%w(rms), %w(), nil],
1479
+ 'application/vnd.jisp' => [%w(jisp), %w(), nil],
1480
+ 'application/vnd.joost.joda-archive' => [%w(joda), %w(), nil],
1481
+ 'application/vnd.kahootz' => [%w(ktz ktr), %w(), nil],
1482
+ 'application/vnd.kde.karbon' => [%w(karbon), %w(), nil],
1483
+ 'application/vnd.kde.kchart' => [%w(chrt), %w(), 'KChart File'],
1484
+ 'application/vnd.kde.kformula' => [%w(kfo), %w(), nil],
1485
+ 'application/vnd.kde.kivio' => [%w(flw), %w(), nil],
1486
+ 'application/vnd.kde.kontour' => [%w(kon), %w(), nil],
1487
+ 'application/vnd.kde.kpresenter' => [%w(kpr kpt), %w(), 'KPresenter File'],
1488
+ 'application/vnd.kde.kspread' => [%w(ksp), %w(), 'KSpread File'],
1489
+ 'application/vnd.kde.kword' => [%w(kwd kwt), %w(), 'KWord File'],
1490
+ 'application/vnd.kenameaapp' => [%w(htke), %w(), nil],
1491
+ 'application/vnd.kidspiration' => [%w(kia), %w(), nil],
1492
+ 'application/vnd.kinar' => [%w(kne knp), %w(), nil],
1493
+ 'application/vnd.koan' => [%w(skp skd skt skm), %w(), 'SSEYO Koan File'],
1494
+ 'application/vnd.kodak-descriptor' => [%w(sse), %w(), nil],
1495
+ 'application/vnd.llamagraphics.life-balance.desktop' => [%w(lbd), %w(), nil],
1496
+ 'application/vnd.llamagraphics.life-balance.exchange+xml' => [%w(lbe), %w(), nil],
1497
+ 'application/vnd.lotus-1-2-3' => [%w(wk1 wk2 wk3 wk4 123), %w(), 'Lotus 1-2-3'],
1498
+ 'application/vnd.lotus-1-2-3;version=2' => [%w(wk1 wk2), %w(application/vnd.lotus-1-2-3), 'Lotus 1-2-3, version 2'],
1499
+ 'application/vnd.lotus-1-2-3;version=3' => [%w(wk3), %w(application/vnd.lotus-1-2-3), 'Lotus 1-2-3, version 3'],
1500
+ 'application/vnd.lotus-1-2-3;version=4' => [%w(wk4), %w(application/vnd.lotus-1-2-3), 'Lotus 1-2-3, version 4-5'],
1501
+ 'application/vnd.lotus-1-2-3;version=97+9.x' => [%w(123), %w(application/vnd.lotus-1-2-3), 'Lotus 1-2-3, version 97/9.x'],
1502
+ 'application/vnd.lotus-approach' => [%w(apr), %w(), nil],
1503
+ 'application/vnd.lotus-freelance' => [%w(pre), %w(), nil],
1504
+ 'application/vnd.lotus-notes' => [%w(nsf), %w(), nil],
1505
+ 'application/vnd.lotus-organizer' => [%w(org), %w(), nil],
1506
+ 'application/vnd.lotus-wordpro' => [%w(lwp), %w(), nil],
1507
+ 'application/vnd.macports.portpkg' => [%w(portpkg), %w(), nil],
1508
+ 'application/vnd.mcd' => [%w(mcd), %w(), nil],
1509
+ 'application/vnd.medcalcdata' => [%w(mc1), %w(), nil],
1510
+ 'application/vnd.mediastation.cdkey' => [%w(cdkey), %w(), nil],
1511
+ 'application/vnd.mfer' => [%w(mwf), %w(), nil],
1512
+ 'application/vnd.mfmp' => [%w(mfm), %w(), nil],
1513
+ 'application/vnd.micrografx.flo' => [%w(flo), %w(), nil],
1514
+ 'application/vnd.micrografx.igx' => [%w(igx), %w(), nil],
1515
+ 'application/vnd.mif' => [%w(mif), %w(), 'FrameMaker Interchange Format'],
1516
+ 'application/vnd.mindjet.mindmanager' => [%w(mmp mmap mmpt mmat mmmp mmas), %w(application/zip), 'MindManager'],
1517
+ 'application/vnd.mobius.daf' => [%w(daf), %w(), nil],
1518
+ 'application/vnd.mobius.dis' => [%w(dis), %w(), nil],
1519
+ 'application/vnd.mobius.mbk' => [%w(mbk), %w(), nil],
1520
+ 'application/vnd.mobius.mqy' => [%w(mqy), %w(), nil],
1521
+ 'application/vnd.mobius.msl' => [%w(msl), %w(), nil],
1522
+ 'application/vnd.mobius.plc' => [%w(plc), %w(), nil],
1523
+ 'application/vnd.mobius.txf' => [%w(txf), %w(), nil],
1524
+ 'application/vnd.mophun.application' => [%w(mpn), %w(), nil],
1525
+ 'application/vnd.mophun.certificate' => [%w(mpc), %w(), nil],
1526
+ 'application/vnd.mozilla.xul+xml' => [%w(xul), %w(), nil],
1527
+ 'application/vnd.ms-artgalry' => [%w(cil), %w(), nil],
1528
+ 'application/vnd.ms-cab-compressed' => [%w(cab), %w(), nil],
1529
+ 'application/vnd.ms-excel' => [%w(xls xlm xla xlc xlt xlw xll xld), %w(application/x-tika-msoffice), 'Microsoft Excel Spreadsheet'],
1530
+ 'application/vnd.ms-excel.addin.macroenabled.12' => [%w(xlam), %w(application/x-tika-ooxml), 'Office Open XML Workbook Add-in (macro-enabled)'],
1531
+ 'application/vnd.ms-excel.sheet.binary.macroenabled.12' => [%w(xlsb), %w(application/x-tika-ooxml), 'Microsoft Excel 2007 Binary Spreadsheet'],
1532
+ 'application/vnd.ms-excel.sheet.macroenabled.12' => [%w(xlsm), %w(application/x-tika-ooxml), 'Office Open XML Workbook (macro-enabled)'],
1533
+ 'application/vnd.ms-excel.template.macroenabled.12' => [%w(xltm), %w(application/x-tika-ooxml), 'Office Open XML Workbook Template (macro-enabled)'],
1534
+ 'application/vnd.ms-fontobject' => [%w(eot), %w(), nil],
1535
+ 'application/vnd.ms-htmlhelp' => [%w(chm), %w(), nil],
1536
+ 'application/vnd.ms-ims' => [%w(ims), %w(), nil],
1537
+ 'application/vnd.ms-lrm' => [%w(lrm), %w(), nil],
1538
+ 'application/vnd.ms-outlook' => [%w(msg), %w(application/x-tika-msoffice), 'Microsoft Outlook Message'],
1539
+ 'application/vnd.ms-outlook-pst' => [%w(pst ost), %w(), 'Outlook Personal Folders File Format'],
1540
+ 'application/vnd.ms-pki.seccat' => [%w(cat), %w(), nil],
1541
+ 'application/vnd.ms-pki.stl' => [%w(stl), %w(), nil],
1542
+ 'application/vnd.ms-powerpoint' => [%w(ppt ppz pps pot ppa), %w(application/x-tika-msoffice), 'Microsoft Powerpoint Presentation'],
1543
+ 'application/vnd.ms-powerpoint.addin.macroenabled.12' => [%w(ppam), %w(application/x-tika-ooxml), 'Office Open XML Presentation Add-in (macro-enabled)'],
1544
+ 'application/vnd.ms-powerpoint.presentation.macroenabled.12' => [%w(pptm), %w(application/x-tika-ooxml), 'Office Open XML Presentation (macro-enabled)'],
1545
+ 'application/vnd.ms-powerpoint.slide.macroenabled.12' => [%w(sldm), %w(application/x-tika-ooxml), nil],
1546
+ 'application/vnd.ms-powerpoint.slideshow.macroenabled.12' => [%w(ppsm), %w(application/x-tika-ooxml), 'Office Open XML Presentation Slideshow (macro-enabled)'],
1547
+ 'application/vnd.ms-powerpoint.template.macroenabled.12' => [%w(potm), %w(application/x-tika-ooxml), nil],
1548
+ 'application/vnd.ms-project' => [%w(mpp mpt), %w(application/x-tika-msoffice), nil],
1549
+ 'application/vnd.ms-visio.drawing' => [%w(vsdx), %w(application/x-tika-visio-ooxml), 'Office Open XML Visio Drawing (macro-free)'],
1550
+ 'application/vnd.ms-visio.drawing.macroEnabled.12' => [%w(vsdm), %w(application/x-tika-visio-ooxml), 'Office Open XML Visio Drawing (macro-enabled)'],
1551
+ 'application/vnd.ms-visio.stencil' => [%w(vssx), %w(application/x-tika-visio-ooxml), 'Office Open XML Visio Stencil (macro-free)'],
1552
+ 'application/vnd.ms-visio.stencil.macroEnabled.12' => [%w(vssm), %w(application/x-tika-visio-ooxml), 'Office Open XML Visio Stencil (macro-enabled)'],
1553
+ 'application/vnd.ms-visio.template' => [%w(vstx), %w(application/x-tika-visio-ooxml), 'Office Open XML Visio Template (macro-free)'],
1554
+ 'application/vnd.ms-visio.template.macroEnabled.12' => [%w(vstm), %w(application/x-tika-visio-ooxml), 'Office Open XML Visio Template (macro-enabled)'],
1555
+ 'application/vnd.ms-word.document.macroenabled.12' => [%w(docm), %w(application/x-tika-ooxml), 'Office Open XML Document (macro-enabled)'],
1556
+ 'application/vnd.ms-word.template.macroenabled.12' => [%w(dotm), %w(application/x-tika-ooxml), 'Office Open XML Document Template (macro-enabled)'],
1557
+ 'application/vnd.ms-works' => [%w(wps wks wcm wdb), %w(application/x-tika-msoffice), nil],
1558
+ 'application/vnd.ms-wpl' => [%w(wpl), %w(), nil],
1559
+ 'application/vnd.ms-xpsdocument' => [%w(xps oxps), %w(application/x-tika-ooxml), 'Open XML Paper Specification'],
1560
+ 'application/vnd.mseq' => [%w(mseq), %w(), nil],
1561
+ 'application/vnd.musician' => [%w(mus), %w(), nil],
1562
+ 'application/vnd.muvee.style' => [%w(msty), %w(), nil],
1563
+ 'application/vnd.neurolanguage.nlu' => [%w(nlu), %w(), nil],
1564
+ 'application/vnd.noblenet-directory' => [%w(nnd), %w(), nil],
1565
+ 'application/vnd.noblenet-sealer' => [%w(nns), %w(), nil],
1566
+ 'application/vnd.noblenet-web' => [%w(nnw), %w(), nil],
1567
+ 'application/vnd.nokia.n-gage.data' => [%w(ngdat), %w(), nil],
1568
+ 'application/vnd.nokia.n-gage.symbian.install' => [%w(n-gage), %w(), nil],
1569
+ 'application/vnd.nokia.radio-preset' => [%w(rpst), %w(), nil],
1570
+ 'application/vnd.nokia.radio-presets' => [%w(rpss), %w(), nil],
1571
+ 'application/vnd.novadigm.edm' => [%w(edm), %w(), nil],
1572
+ 'application/vnd.novadigm.edx' => [%w(edx), %w(), nil],
1573
+ 'application/vnd.novadigm.ext' => [%w(ext), %w(), nil],
1574
+ 'application/vnd.oasis.opendocument.base' => [%w(odb), %w(), nil],
1575
+ 'application/vnd.oasis.opendocument.chart' => [%w(odc), %w(), 'OpenDocument v1.0: Chart document'],
1576
+ 'application/vnd.oasis.opendocument.chart-template' => [%w(otc), %w(), 'OpenDocument v1.0: Chart document used as template'],
1577
+ 'application/vnd.oasis.opendocument.flat.presentation' => [%w(fodp), %w(application/vnd.oasis.opendocument.tika.flat.document), 'OpenDocument v1.0: Flat Presentation document'],
1578
+ 'application/vnd.oasis.opendocument.flat.spreadsheet' => [%w(fods), %w(application/vnd.oasis.opendocument.tika.flat.document), 'OpenDocument v1.0: Flat Spreadsheet document'],
1579
+ 'application/vnd.oasis.opendocument.flat.text' => [%w(fodt), %w(application/vnd.oasis.opendocument.tika.flat.document), 'OpenDocument v1.0: Flat Text document'],
1580
+ 'application/vnd.oasis.opendocument.formula' => [%w(odf), %w(application/zip), 'OpenDocument v1.0: Formula document'],
1581
+ 'application/vnd.oasis.opendocument.formula-template' => [%w(odft), %w(), 'OpenDocument v1.0: Formula document used as template'],
1582
+ 'application/vnd.oasis.opendocument.graphics' => [%w(odg), %w(), 'OpenDocument v1.0: Graphics document (Drawing)'],
1583
+ 'application/vnd.oasis.opendocument.graphics-template' => [%w(otg), %w(), 'OpenDocument v1.0: Graphics document used as template'],
1584
+ 'application/vnd.oasis.opendocument.image' => [%w(odi), %w(), 'OpenDocument v1.0: Image document'],
1585
+ 'application/vnd.oasis.opendocument.image-template' => [%w(oti), %w(), 'OpenDocument v1.0: Image document used as template'],
1586
+ 'application/vnd.oasis.opendocument.presentation' => [%w(odp), %w(), 'OpenDocument v1.0: Presentation document'],
1587
+ 'application/vnd.oasis.opendocument.presentation-template' => [%w(otp), %w(), 'OpenDocument v1.0: Presentation document used as template'],
1588
+ 'application/vnd.oasis.opendocument.spreadsheet' => [%w(ods), %w(), 'OpenDocument v1.0: Spreadsheet document'],
1589
+ 'application/vnd.oasis.opendocument.spreadsheet-template' => [%w(ots), %w(), 'OpenDocument v1.0: Spreadsheet document used as template'],
1590
+ 'application/vnd.oasis.opendocument.text' => [%w(odt), %w(), 'OpenDocument v1.0: Text document'],
1591
+ 'application/vnd.oasis.opendocument.text-master' => [%w(otm), %w(), 'OpenDocument v1.0: Global Text document'],
1592
+ 'application/vnd.oasis.opendocument.text-template' => [%w(ott), %w(), 'OpenDocument v1.0: Text document used as template'],
1593
+ 'application/vnd.oasis.opendocument.text-web' => [%w(oth), %w(), 'OpenDocument v1.0: Text document used as template for HTML documents'],
1594
+ 'application/vnd.olpc-sugar' => [%w(xo), %w(), nil],
1595
+ 'application/vnd.oma.dd2+xml' => [%w(dd2), %w(), nil],
1596
+ 'application/vnd.openofficeorg.autotext' => [%w(bau), %w(application/zip), nil],
1597
+ 'application/vnd.openofficeorg.extension' => [%w(oxt), %w(), nil],
1598
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => [%w(pptx thmx), %w(application/x-tika-ooxml), 'Office Open XML Presentation'],
1599
+ 'application/vnd.openxmlformats-officedocument.presentationml.slide' => [%w(sldx), %w(application/x-tika-ooxml), nil],
1600
+ 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => [%w(ppsx), %w(application/x-tika-ooxml), 'Office Open XML Presentation Slideshow'],
1601
+ 'application/vnd.openxmlformats-officedocument.presentationml.template' => [%w(potx), %w(application/x-tika-ooxml), 'Office Open XML Presentation Template'],
1602
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => [%w(xlsx), %w(application/x-tika-ooxml), 'Office Open XML Workbook'],
1603
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => [%w(xltx), %w(application/x-tika-ooxml), 'Office Open XML Workbook Template'],
1604
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => [%w(docx), %w(application/x-tika-ooxml), 'Office Open XML Document'],
1605
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => [%w(dotx), %w(application/x-tika-ooxml), 'Office Open XML Document Template'],
1606
+ 'application/vnd.osgi.dp' => [%w(dp), %w(), nil],
1607
+ 'application/vnd.palm' => [%w(pqa oprc), %w(), nil],
1608
+ 'application/vnd.pg.format' => [%w(str), %w(), nil],
1609
+ 'application/vnd.pg.osasli' => [%w(ei6), %w(), nil],
1610
+ 'application/vnd.picsel' => [%w(efif), %w(), nil],
1611
+ 'application/vnd.pocketlearn' => [%w(plf), %w(), nil],
1612
+ 'application/vnd.powerbuilder6' => [%w(pbd), %w(), nil],
1613
+ 'application/vnd.previewsystems.box' => [%w(box), %w(), nil],
1614
+ 'application/vnd.proteus.magazine' => [%w(mgz), %w(), nil],
1615
+ 'application/vnd.publishare-delta-tree' => [%w(qps), %w(), nil],
1616
+ 'application/vnd.pvi.ptid1' => [%w(ptid), %w(), nil],
1617
+ 'application/vnd.quark.quarkxpress' => [%w(qxd qxt qwd qwt qxl qxb), %w(), nil],
1618
+ 'application/vnd.recordare.musicxml' => [%w(mxl), %w(), nil],
1619
+ 'application/vnd.recordare.musicxml+xml' => [%w(musicxml), %w(), nil],
1620
+ 'application/vnd.rim.cod' => [%w(cod), %w(), nil],
1621
+ 'application/vnd.rn-realmedia' => [%w(rm), %w(), nil],
1622
+ 'application/vnd.route66.link66+xml' => [%w(link66), %w(), nil],
1623
+ 'application/vnd.seemail' => [%w(see), %w(), nil],
1624
+ 'application/vnd.sema' => [%w(sema), %w(), nil],
1625
+ 'application/vnd.semd' => [%w(semd), %w(), nil],
1626
+ 'application/vnd.semf' => [%w(semf), %w(), nil],
1627
+ 'application/vnd.shana.informed.formdata' => [%w(ifm), %w(), nil],
1628
+ 'application/vnd.shana.informed.formtemplate' => [%w(itp), %w(), nil],
1629
+ 'application/vnd.shana.informed.interchange' => [%w(iif), %w(), nil],
1630
+ 'application/vnd.shana.informed.package' => [%w(ipk), %w(), nil],
1631
+ 'application/vnd.simtech-mindmapper' => [%w(twd twds), %w(), nil],
1632
+ 'application/vnd.smaf' => [%w(mmf), %w(), nil],
1633
+ 'application/vnd.smart.teacher' => [%w(teacher), %w(), nil],
1634
+ 'application/vnd.solent.sdkm+xml' => [%w(sdkm sdkd), %w(), nil],
1635
+ 'application/vnd.spotfire.dxp' => [%w(dxp), %w(), nil],
1636
+ 'application/vnd.spotfire.sfs' => [%w(sfs), %w(), nil],
1637
+ 'application/vnd.stardivision.calc' => [%w(sdc), %w(application/x-tika-staroffice), nil],
1638
+ 'application/vnd.stardivision.draw' => [%w(sda), %w(application/x-tika-staroffice), nil],
1639
+ 'application/vnd.stardivision.impress' => [%w(sdd), %w(application/x-tika-staroffice), nil],
1640
+ 'application/vnd.stardivision.math' => [%w(smf), %w(), nil],
1641
+ 'application/vnd.stardivision.writer' => [%w(sdw), %w(application/x-tika-staroffice), nil],
1642
+ 'application/vnd.stardivision.writer-global' => [%w(sgl), %w(), nil],
1643
+ 'application/vnd.sun.xml.calc' => [%w(sxc), %w(), nil],
1644
+ 'application/vnd.sun.xml.calc.template' => [%w(stc), %w(), nil],
1645
+ 'application/vnd.sun.xml.draw' => [%w(sxd), %w(), nil],
1646
+ 'application/vnd.sun.xml.draw.template' => [%w(std), %w(), nil],
1647
+ 'application/vnd.sun.xml.impress' => [%w(sxi), %w(), nil],
1648
+ 'application/vnd.sun.xml.impress.template' => [%w(sti), %w(), nil],
1649
+ 'application/vnd.sun.xml.math' => [%w(sxm), %w(), nil],
1650
+ 'application/vnd.sun.xml.writer' => [%w(sxw), %w(), 'OpenOffice v1.0: Writer Document'],
1651
+ 'application/vnd.sun.xml.writer.global' => [%w(sxg), %w(), nil],
1652
+ 'application/vnd.sun.xml.writer.template' => [%w(stw), %w(), nil],
1653
+ 'application/vnd.sus-calendar' => [%w(sus susp), %w(), nil],
1654
+ 'application/vnd.svd' => [%w(svd), %w(), nil],
1655
+ 'application/vnd.symbian.install' => [%w(sis sisx), %w(), nil],
1656
+ 'application/vnd.syncml+xml' => [%w(xsm), %w(), nil],
1657
+ 'application/vnd.syncml.dm+wbxml' => [%w(bdm), %w(), nil],
1658
+ 'application/vnd.syncml.dm+xml' => [%w(xdm), %w(), nil],
1659
+ 'application/vnd.tao.intent-module-archive' => [%w(tao), %w(), nil],
1660
+ 'application/vnd.tcpdump.pcap' => [%w(pcap cap dmp), %w(), 'TCPDump pcap packet capture'],
1661
+ 'application/vnd.tmobile-livetv' => [%w(tmo), %w(), nil],
1662
+ 'application/vnd.trid.tpt' => [%w(tpt), %w(), nil],
1663
+ 'application/vnd.triscape.mxs' => [%w(mxs), %w(), nil],
1664
+ 'application/vnd.trueapp' => [%w(tra), %w(), nil],
1665
+ 'application/vnd.ufdl' => [%w(ufd ufdl), %w(), nil],
1666
+ 'application/vnd.uiq.theme' => [%w(utz), %w(), nil],
1667
+ 'application/vnd.umajin' => [%w(umj), %w(), nil],
1668
+ 'application/vnd.unity' => [%w(unityweb), %w(), nil],
1669
+ 'application/vnd.uoml+xml' => [%w(uoml), %w(), nil],
1670
+ 'application/vnd.vcx' => [%w(vcx), %w(), nil],
1671
+ 'application/vnd.visio' => [%w(vsd vst vss vsw), %w(application/x-tika-msoffice), 'Microsoft Visio Diagram'],
1672
+ 'application/vnd.visionary' => [%w(vis), %w(), nil],
1673
+ 'application/vnd.vsf' => [%w(vsf), %w(), nil],
1674
+ 'application/vnd.wap.wbxml' => [%w(wbxml), %w(), nil],
1675
+ 'application/vnd.wap.wmlc' => [%w(wmlc), %w(), 'Compiled WML Document'],
1676
+ 'application/vnd.wap.wmlscriptc' => [%w(wmlsc), %w(), 'Compiled WML Script'],
1677
+ 'application/vnd.webturbo' => [%w(wtb), %w(), nil],
1678
+ 'application/vnd.wolfram.wl' => [%w(wl), %w(application/mathematica), 'Wolfram Language'],
1679
+ 'application/vnd.wordperfect' => [%w(wpd wp wp5 wp6 w60 wp61 wpt), %w(), 'WordPerfect - Corel Word Processing'],
1680
+ 'application/vnd.wqd' => [%w(wqd), %w(), nil],
1681
+ 'application/vnd.wt.stf' => [%w(stf), %w(), nil],
1682
+ 'application/vnd.xara' => [%w(xar), %w(), nil],
1683
+ 'application/vnd.xfdl' => [%w(xfdl), %w(), nil],
1684
+ 'application/vnd.yamaha.hv-dic' => [%w(hvd), %w(), nil],
1685
+ 'application/vnd.yamaha.hv-script' => [%w(hvs), %w(), nil],
1686
+ 'application/vnd.yamaha.hv-voice' => [%w(hvp), %w(), nil],
1687
+ 'application/vnd.yamaha.openscoreformat' => [%w(osf), %w(), nil],
1688
+ 'application/vnd.yamaha.openscoreformat.osfpvg+xml' => [%w(osfpvg), %w(), nil],
1689
+ 'application/vnd.yamaha.smaf-audio' => [%w(saf), %w(), nil],
1690
+ 'application/vnd.yamaha.smaf-phrase' => [%w(spf), %w(), nil],
1691
+ 'application/vnd.yellowriver-custom-menu' => [%w(cmp), %w(), nil],
1692
+ 'application/vnd.zul' => [%w(zir zirz), %w(), nil],
1693
+ 'application/vnd.zzazz.deck+xml' => [%w(zaz), %w(), nil],
1694
+ 'application/voicexml+xml' => [%w(vxml), %w(), nil],
1695
+ 'application/warc' => [%w(warc), %w(), 'WARC'],
1696
+ 'application/wasm' => [%w(wasm), %w(), 'Web Assembly'],
1697
+ 'application/winhlp' => [%w(hlp), %w(), nil],
1698
+ 'application/wsdl+xml' => [%w(wsdl), %w(), nil],
1699
+ 'application/wspolicy+xml' => [%w(wspolicy), %w(), nil],
1700
+ 'application/x-7z-compressed' => [%w(7z), %w(), '7-zip archive'],
1701
+ 'application/x-abiword' => [%w(abw), %w(), nil],
1702
+ 'application/x-ace-compressed' => [%w(ace), %w(), nil],
1703
+ 'application/x-adobe-indesign' => [%w(indd), %w(), 'Adobe InDesign document'],
1704
+ 'application/x-adobe-indesign-interchange' => [%w(inx), %w(application/xml), 'Adobe InDesign Interchange format'],
1705
+ 'application/x-apple-diskimage' => [%w(dmg), %w(), nil],
1706
+ 'application/x-appleworks' => [%w(cwk), %w(), nil],
1707
+ 'application/x-archive' => [%w(ar a), %w(), nil],
1708
+ 'application/x-arj' => [%w(arj), %w(), nil],
1709
+ 'application/x-authorware-bin' => [%w(aab x32 u32 vox), %w(), nil],
1710
+ 'application/x-authorware-map' => [%w(aam), %w(), nil],
1711
+ 'application/x-authorware-seg' => [%w(aas), %w(), nil],
1712
+ 'application/x-axcrypt' => [%w(axx), %w(), 'AxCrypt'],
1713
+ 'application/x-bat' => [%w(bat cmd), %w(text/plain), 'Windows Batch / Command File'],
1714
+ 'application/x-bcpio' => [%w(bcpio), %w(), nil],
1715
+ 'application/x-bibtex-text-file' => [%w(bib bibtex), %w(text/plain), nil],
1716
+ 'application/x-bittorrent' => [%w(torrent), %w(), nil],
1717
+ 'application/x-brotli' => [%w(br brotli), %w(), nil],
1718
+ 'application/x-bzip' => [%w(bz tbz), %w(), nil],
1719
+ 'application/x-bzip2' => [%w(bz2 tbz2 boz), %w(application/x-bzip), 'Bzip 2 UNIX Compressed File'],
1720
+ 'application/x-cdlink' => [%w(vcd), %w(), 'Virtual CD-ROM CD Image File'],
1721
+ 'application/x-chat' => [%w(chat), %w(), nil],
1722
+ 'application/x-chess-pgn' => [%w(pgn), %w(), nil],
1723
+ 'application/x-chrome-package' => [%w(crx), %w(), 'Chrome Extension Package'],
1724
+ 'application/x-compress' => [%w(z), %w(), nil],
1725
+ 'application/x-corelpresentations' => [%w(shw), %w(application/x-tika-msoffice), nil],
1726
+ 'application/x-cpio' => [%w(cpio), %w(), 'UNIX CPIO Archive'],
1727
+ 'application/x-csh' => [%w(csh tcsh), %w(), nil],
1728
+ 'application/x-dbf' => [%w(dbf dbase dbase3), %w(), nil],
1729
+ 'application/x-debian-package' => [%w(deb udeb), %w(application/x-archive), nil],
1730
+ 'application/x-dex' => [%w(dex), %w(), 'Dalvik Executable Format'],
1731
+ 'application/x-director' => [%w(dir dcr dxr cst cct cxt w3d fgd swa), %w(), 'Shockwave Movie'],
1732
+ 'application/x-doom' => [%w(wad), %w(), nil],
1733
+ 'application/x-dosexec' => [%w(exe), %w(application/x-msdownload), 'DOS/Windows executable (EXE)'],
1734
+ 'application/x-dtbncx+xml' => [%w(ncx), %w(), nil],
1735
+ 'application/x-dtbook+xml' => [%w(dtb), %w(), nil],
1736
+ 'application/x-dtbresource+xml' => [%w(res), %w(), nil],
1737
+ 'application/x-dvi' => [%w(dvi), %w(), 'TeX Device Independent Document'],
1738
+ 'application/x-elc' => [%w(elc), %w(), 'Emacs Lisp bytecode'],
1739
+ 'application/x-endnote-refer' => [%w(enw enr), %w(), nil],
1740
+ 'application/x-erdas-hfa' => [%w(hfa), %w(), nil],
1741
+ 'application/x-fictionbook+xml' => [%w(fb2), %w(application/xml), 'FictionBook document'],
1742
+ 'application/x-filemaker' => [%w(fp7), %w(), 'FileMaker Pro 7'],
1743
+ 'application/x-font-adobe-metric' => [%w(afm acfm amfm), %w(), 'Adobe Font Metric'],
1744
+ 'application/x-font-bdf' => [%w(bdf), %w(), nil],
1745
+ 'application/x-font-ghostscript' => [%w(gsf), %w(), nil],
1746
+ 'application/x-font-linux-psf' => [%w(psf), %w(), nil],
1747
+ 'application/x-font-otf' => [%w(otf), %w(), 'OpenType Font'],
1748
+ 'application/x-font-pcf' => [%w(pcf), %w(), nil],
1749
+ 'application/x-font-printer-metric' => [%w(pfm), %w(), 'Printer Font Metric'],
1750
+ 'application/x-font-snf' => [%w(snf), %w(), nil],
1751
+ 'application/x-font-ttf' => [%w(ttf ttc), %w(), 'TrueType Font'],
1752
+ 'application/x-font-type1' => [%w(pfa pfb), %w(), nil],
1753
+ 'application/x-futuresplash' => [%w(spl), %w(), 'Macromedia FutureSplash File'],
1754
+ 'application/x-gnucash' => [%w(gnucash), %w(), nil],
1755
+ 'application/x-gnumeric' => [%w(gnumeric), %w(), nil],
1756
+ 'application/x-grib' => [%w(grb grb1 grb2), %w(), 'General Regularly-distributed Information in Binary form'],
1757
+ 'application/x-gtar' => [%w(gtar), %w(application/x-tar), 'GNU tar Compressed File Archive (GNU Tape Archive)'],
1758
+ 'application/x-hdf' => [%w(hdf he5 h5), %w(), 'Hierarchical Data Format File'],
1759
+ 'application/x-ibooks+zip' => [%w(ibooks), %w(application/epub+zip), 'Apple iBooks Author publication format'],
1760
+ 'application/x-internet-archive' => [%w(arc), %w(), 'ARC'],
1761
+ 'application/x-iso9660-image' => [%w(iso), %w(), 'ISO 9660 CD-ROM filesystem data'],
1762
+ 'application/x-itunes-ipa' => [%w(ipa), %w(application/zip), 'Apple iOS IPA AppStore file'],
1763
+ 'application/x-java-jnilib' => [%w(jnilib), %w(), 'Java Native Library for OSX'],
1764
+ 'application/x-java-jnlp-file' => [%w(jnlp), %w(), nil],
1765
+ 'application/x-java-pack200' => [%w(pack), %w(), nil],
1766
+ 'application/x-killustrator' => [%w(kil), %w(), 'KIllustrator File'],
1767
+ 'application/x-latex' => [%w(latex), %w(application/x-tex), 'LaTeX Source Document'],
1768
+ 'application/x-lz4' => [%w(lz4), %w(), 'Second match Legacy Frame'],
1769
+ 'application/x-lzip' => [%w(lz), %w(), 'Lzip (LZMA) compressed archive'],
1770
+ 'application/x-lzma' => [%w(lzma), %w(), 'LZMA compressed archive'],
1771
+ 'application/x-matlab-data' => [%w(mat), %w(), nil],
1772
+ 'application/x-memgraph' => [%w(memgraph), %w(application/x-bplist), 'Apple Xcode Memgraph'],
1773
+ 'application/x-mobipocket-ebook' => [%w(prc mobi), %w(), 'Mobipocket Ebook'],
1774
+ 'application/x-ms-application' => [%w(application), %w(), nil],
1775
+ 'application/x-ms-asx' => [%w(asx), %w(application/xml), 'Windows Media Metafile'],
1776
+ 'application/x-ms-installer' => [%w(msi msp mst), %w(application/x-tika-msoffice), 'Microsoft Windows Installer'],
1777
+ 'application/x-ms-wmd' => [%w(wmd), %w(), nil],
1778
+ 'application/x-ms-wmz' => [%w(wmz), %w(application/gzip), nil],
1779
+ 'application/x-ms-xbap' => [%w(xbap), %w(), nil],
1780
+ 'application/x-msaccess' => [%w(mdb), %w(), nil],
1781
+ 'application/x-msbinder' => [%w(obd), %w(), nil],
1782
+ 'application/x-mscardfile' => [%w(crd), %w(), nil],
1783
+ 'application/x-msclip' => [%w(clp), %w(), nil],
1784
+ 'application/x-msdownload' => [%w(dll com), %w(), nil],
1785
+ 'application/x-msmediaview' => [%w(mvb m13 m14), %w(), nil],
1786
+ 'application/x-msmoney' => [%w(mny), %w(), nil],
1787
+ 'application/x-mspublisher' => [%w(pub), %w(application/x-tika-msoffice), nil],
1788
+ 'application/x-msschedule' => [%w(scd), %w(), nil],
1789
+ 'application/x-msterminal' => [%w(trm), %w(), nil],
1790
+ 'application/x-mswrite' => [%w(wri), %w(), nil],
1791
+ 'application/x-mysql-misam-compressed-index' => [%w(myi), %w(application/x-mysql-db), 'MySQL MISAM Compressed Index'],
1792
+ 'application/x-mysql-misam-data' => [%w(myd), %w(application/x-mysql-db), 'MySQL MISAM Data'],
1793
+ 'application/x-netcdf' => [%w(nc cdf), %w(), nil],
1794
+ 'application/x-parquet' => [%w(parquet), %w(), nil],
1795
+ 'application/x-pkcs12' => [%w(p12 pfx), %w(), nil],
1796
+ 'application/x-pkcs7-certificates' => [%w(p7b spc), %w(), nil],
1797
+ 'application/x-pkcs7-certreqresp' => [%w(p7r), %w(), nil],
1798
+ 'application/x-project' => [%w(mpx), %w(text/plain), nil],
1799
+ 'application/x-prt' => [%w(prt), %w(), nil],
1800
+ 'application/x-quattro-pro' => [%w(wq1 wq2 wkq qpw wb1 wb2 wb3), %w(application/x-tika-msoffice), "\n Quattro Pro - Corel Spreadsheet (part of WordPerfect Office suite)\n "],
1801
+ 'application/x-quattro-pro;version=1+5' => [%w(wb1), %w(application/x-quattro-pro), 'Quattro Pro for Windows, version 1, 5'],
1802
+ 'application/x-quattro-pro;version=1-4' => [%w(wq1 wkq), %w(application/x-quattro-pro), 'Quattro Pro for DOS, version 1-4'],
1803
+ 'application/x-quattro-pro;version=5' => [%w(wq2 wkq), %w(application/x-quattro-pro), 'Quattro Pro for DOS, version 5'],
1804
+ 'application/x-quattro-pro;version=6' => [%w(wb2), %w(application/x-quattro-pro), 'Quattro Pro for Windows, version 6'],
1805
+ 'application/x-rar-compressed' => [%w(rar), %w(), 'RAR archive'],
1806
+ 'application/x-roxio-toast' => [%w(toast), %w(application/x-iso9660-image), nil],
1807
+ 'application/x-rpm' => [%w(rpm), %w(), 'RedHat Package Manager'],
1808
+ 'application/x-sas' => [%w(sas), %w(text/plain), 'SAS Program'],
1809
+ 'application/x-sas-access' => [%w(sa7 sas7bacs), %w(), 'SAS Access Descriptor'],
1810
+ 'application/x-sas-audit' => [%w(st7 sas7baud), %w(), 'SAS Audit'],
1811
+ 'application/x-sas-backup' => [%w(sas7bbak), %w(), 'SAS Backup'],
1812
+ 'application/x-sas-catalog' => [%w(sc7 sas7bcat), %w(), 'SAS Catalog'],
1813
+ 'application/x-sas-data' => [%w(sd7 sas7bdat), %w(), 'SAS Data Set'],
1814
+ 'application/x-sas-data-index' => [%w(si7 sas7bndx), %w(), 'SAS Data Set Index'],
1815
+ 'application/x-sas-data-v6' => [%w(sd2), %w(), 'SAS v6 Data Set'],
1816
+ 'application/x-sas-dmdb' => [%w(s7m sas7bdmd), %w(), 'SAS DMDB Data Mining Database File'],
1817
+ 'application/x-sas-fdb' => [%w(sf7 sas7bfdb), %w(), 'SAS FDB Consolidation Database File'],
1818
+ 'application/x-sas-itemstor' => [%w(sr7 sas7bitm), %w(), 'SAS Item Store (ItemStor) File'],
1819
+ 'application/x-sas-mddb' => [%w(sm7 sas7bmdb), %w(), 'SAS MDDB Multi-Dimensional Database File'],
1820
+ 'application/x-sas-program-data' => [%w(ss7 sas7bpgm), %w(), 'SAS Stored Program (DATA Step)'],
1821
+ 'application/x-sas-putility' => [%w(sp7 sas7bput), %w(), 'SAS Permanent Utility'],
1822
+ 'application/x-sas-transport' => [%w(stx), %w(), 'SAS Transport File'],
1823
+ 'application/x-sas-utility' => [%w(su7 sas7butl), %w(), 'SAS Utility'],
1824
+ 'application/x-sas-view' => [%w(sv7 sas7bvew), %w(), 'SAS Data Set View'],
1825
+ 'application/x-sas-xport' => [%w(xpt xport), %w(), 'SAS XPORT Transfer File'],
1826
+ 'application/x-sfdu' => [%w(sfdu), %w(text/plain), 'Standard Formatted Data Units (SFDUs) data'],
1827
+ 'application/x-sh' => [%w(sh bash), %w(text/plain), 'UNIX/LINUX Shell Script'],
1828
+ 'application/x-shapefile' => [%w(shp), %w(), 'ESRI Shapefiles'],
1829
+ 'application/x-shar' => [%w(shar), %w(), nil],
1830
+ 'application/x-shockwave-flash' => [%w(swf), %w(), 'Adobe Flash'],
1831
+ 'application/x-silverlight-app' => [%w(xap), %w(), nil],
1832
+ 'application/x-snappy-framed' => [%w(sz), %w(), 'Snappy Framed'],
1833
+ 'application/x-staroffice-template' => [%w(vor), %w(application/x-tika-staroffice), nil],
1834
+ 'application/x-stata-do' => [%w(do), %w(), 'Stata DTA Script'],
1835
+ 'application/x-stata-dta' => [%w(dta), %w(), 'Stata DTA Dataset'],
1836
+ 'application/x-stuffit' => [%w(sit), %w(), nil],
1837
+ 'application/x-stuffitx' => [%w(sitx), %w(), nil],
1838
+ 'application/x-sv4cpio' => [%w(sv4cpio), %w(), nil],
1839
+ 'application/x-sv4crc' => [%w(sv4crc), %w(), nil],
1840
+ 'application/x-tar' => [%w(tar), %w(), nil],
1841
+ 'application/x-tex' => [%w(tex), %w(text/plain), 'TeX Source'],
1842
+ 'application/x-tex-tfm' => [%w(tfm), %w(), nil],
1843
+ 'application/x-texinfo' => [%w(texinfo texi), %w(), nil],
1844
+ 'application/x-tika-java-enterprise-archive' => [%w(ear), %w(application/java-archive), nil],
1845
+ 'application/x-tika-java-web-archive' => [%w(war), %w(application/java-archive), nil],
1846
+ 'application/x-tika-msworks-spreadsheet' => [%w(xlr), %w(application/vnd.ms-excel), nil],
1847
+ 'application/x-uc2-compressed' => [%w(uc2), %w(), nil],
1848
+ 'application/x-ustar' => [%w(ustar), %w(), nil],
1849
+ 'application/x-vmdk' => [%w(vmdk), %w(), 'Virtual Disk Format'],
1850
+ 'application/x-wais-source' => [%w(src), %w(), nil],
1851
+ 'application/x-webarchive' => [%w(webarchive), %w(application/x-bplist), nil],
1852
+ 'application/x-x509-cert' => [%w(crt), %w(), nil],
1853
+ 'application/x-x509-cert;format=der' => [%w(der), %w(application/x-x509-cert), nil],
1854
+ 'application/x-x509-cert;format=pem' => [%w(pem), %w(application/x-x509-cert), nil],
1855
+ 'application/x-xfig' => [%w(fig), %w(), nil],
1856
+ 'application/x-xliff+xml' => [%w(xlf xliff), %w(application/xml), 'XLIFF 1.2 document'],
1857
+ 'application/x-xliff+zip' => [%w(xlz), %w(application/zip), 'XLZ Archive'],
1858
+ 'application/x-xmind' => [%w(xmind), %w(application/zip), 'XMind Pro'],
1859
+ 'application/x-xpinstall' => [%w(xpi), %w(), nil],
1860
+ 'application/x-xz' => [%w(xz), %w(), nil],
1861
+ 'application/x-zoo' => [%w(zoo), %w(), nil],
1862
+ 'application/xenc+xml' => [%w(xenc), %w(), nil],
1863
+ 'application/xhtml+xml' => [%w(xhtml xhtml2 xht), %w(), nil],
1864
+ 'application/xml' => [%w(xml xsl xsd), %w(text/plain), 'Extensible Markup Language'],
1865
+ 'application/xml-dtd' => [%w(dtd), %w(text/plain), 'XML Document Type Definition'],
1866
+ 'application/xop+xml' => [%w(xop), %w(), nil],
1867
+ 'application/xquery' => [%w(xq xquery), %w(text/plain), 'XQuery source code'],
1868
+ 'application/xslfo+xml' => [%w(xslfo fo), %w(), 'XSL Format'],
1869
+ 'application/xslt+xml' => [%w(xslt), %w(), 'XSL Transformations'],
1870
+ 'application/xspf+xml' => [%w(xspf), %w(), 'XML Shareable Playlist Format'],
1871
+ 'application/xv+xml' => [%w(mxml xhvml xvml xvm), %w(), nil],
1872
+ 'application/zip' => [%w(zip), %w(), 'Compressed Archive File'],
1873
+ 'application/zstd' => [%w(zstd), %w(), 'https://tools.ietf.org/id/draft-kucherawy-dispatch-zstd-01.html'],
1874
+ 'audio/ac3' => [%w(ac3), %w(), 'Dolby Digital Audio Compression File'],
1875
+ 'audio/adpcm' => [%w(adp), %w(), nil],
1876
+ 'audio/amr' => [%w(amr), %w(), nil],
1877
+ 'audio/basic' => [%w(au snd), %w(), 'uLaw/AU Audio File'],
1878
+ 'audio/midi' => [%w(mid midi kar rmi), %w(), 'Musical Instrument Digital Interface'],
1879
+ 'audio/mp4' => [%w(mp4a m4a m4b), %w(application/quicktime), nil],
1880
+ 'audio/mpeg' => [%w(mpga mp2 mp2a mp3 m2a m3a), %w(), 'MPEG-1 Audio Layer 3'],
1881
+ 'audio/ogg' => [%w(oga), %w(application/ogg), 'Ogg Vorbis Audio'],
1882
+ 'audio/opus' => [%w(opus), %w(audio/ogg), 'Ogg Opus Codec Compressed WAV File'],
1883
+ 'audio/speex' => [%w(spx), %w(audio/ogg), 'Ogg Speex Codec Compressed WAV File'],
1884
+ 'audio/vnd.adobe.soundbooth' => [%w(asnd), %w(), nil],
1885
+ 'audio/vnd.digital-winds' => [%w(eol), %w(), nil],
1886
+ 'audio/vnd.dts' => [%w(dts), %w(), nil],
1887
+ 'audio/vnd.dts.hd' => [%w(dtshd), %w(), nil],
1888
+ 'audio/vnd.lucent.voice' => [%w(lvp), %w(), nil],
1889
+ 'audio/vnd.ms-playready.media.pya' => [%w(pya), %w(), nil],
1890
+ 'audio/vnd.nuera.ecelp4800' => [%w(ecelp4800), %w(), nil],
1891
+ 'audio/vnd.nuera.ecelp7470' => [%w(ecelp7470), %w(), nil],
1892
+ 'audio/vnd.nuera.ecelp9600' => [%w(ecelp9600), %w(), nil],
1893
+ 'audio/vnd.wave' => [%w(wav), %w(), nil],
1894
+ 'audio/vorbis' => [%w(ogg), %w(audio/ogg), 'Ogg Vorbis Codec Compressed WAV File'],
1895
+ 'audio/x-aac' => [%w(aac), %w(), nil],
1896
+ 'audio/x-aiff' => [%w(aif aiff aifc), %w(), 'Audio Interchange File Format'],
1897
+ 'audio/x-caf' => [%w(caf), %w(), 'com.apple.coreaudio-format'],
1898
+ 'audio/x-flac' => [%w(flac), %w(), 'Free Lossless Audio Codec'],
1899
+ 'audio/x-matroska' => [%w(mka), %w(application/x-matroska), nil],
1900
+ 'audio/x-mod' => [%w(mod), %w(), nil],
1901
+ 'audio/x-mpegurl' => [%w(m3u), %w(), 'MP3 Playlist File'],
1902
+ 'audio/x-ms-wax' => [%w(wax), %w(), nil],
1903
+ 'audio/x-ms-wma' => [%w(wma), %w(video/x-ms-asf), nil],
1904
+ 'audio/x-pn-realaudio' => [%w(ram ra), %w(), 'Real Audio'],
1905
+ 'audio/x-pn-realaudio-plugin' => [%w(rmp), %w(), 'RealMedia Player Plug-in'],
1906
+ 'chemical/x-cdx' => [%w(cdx), %w(), nil],
1907
+ 'chemical/x-cif' => [%w(cif), %w(), nil],
1908
+ 'chemical/x-cmdf' => [%w(cmdf), %w(), nil],
1909
+ 'chemical/x-cml' => [%w(cml), %w(), nil],
1910
+ 'chemical/x-csml' => [%w(csml), %w(), nil],
1911
+ 'chemical/x-pdb' => [%w(pdb), %w(), 'Brookhaven Protein Databank File'],
1912
+ 'chemical/x-xyz' => [%w(xyz), %w(), nil],
1913
+ 'font/woff' => [%w(woff), %w(), nil],
1914
+ 'font/woff2' => [%w(woff2), %w(), nil],
1915
+ 'image/aces' => [%w(exr), %w(), 'ACES Image Container File'],
1916
+ 'image/avif' => [%w(avif), %w(), 'AV1 Image File'],
1917
+ 'image/bmp' => [%w(bmp dib), %w(), 'Windows bitmap'],
1918
+ 'image/cgm' => [%w(cgm), %w(), 'Computer Graphics Metafile'],
1919
+ 'image/emf' => [%w(emf), %w(), 'Enhanced Metafile'],
1920
+ 'image/g3fax' => [%w(g3), %w(), nil],
1921
+ 'image/gif' => [%w(gif), %w(), 'Graphics Interchange Format'],
1922
+ 'image/heic' => [%w(heic), %w(), nil],
1923
+ 'image/heif' => [%w(heif), %w(), nil],
1924
+ 'image/icns' => [%w(icns), %w(), 'Apple Icon Image Format'],
1925
+ 'image/ief' => [%w(ief), %w(), nil],
1926
+ 'image/jp2' => [%w(jp2), %w(image/x-jp2-container), 'JPEG 2000 Part 1 (JP2)'],
1927
+ 'image/jpeg' => [%w(jpg jpeg jpe jif jfif jfi), %w(), 'Joint Photographic Experts Group'],
1928
+ 'image/jpm' => [%w(jpm jpgm), %w(image/x-jp2-container), 'JPEG 2000 Part 6 (JPM)'],
1929
+ 'image/jpx' => [%w(jpf), %w(image/x-jp2-container), 'JPEG 2000 Part 2 (JPX)'],
1930
+ 'image/nitf' => [%w(ntf nitf), %w(), nil],
1931
+ 'image/png' => [%w(png), %w(), 'Portable Network Graphics'],
1932
+ 'image/prs.btif' => [%w(btif), %w(), nil],
1933
+ 'image/svg+xml' => [%w(svg svgz), %w(application/xml), 'Scalable Vector Graphics'],
1934
+ 'image/tiff' => [%w(tiff tif), %w(), 'Tagged Image File Format'],
1935
+ 'image/vnd.adobe.photoshop' => [%w(psd), %w(), 'Photoshop Image'],
1936
+ 'image/vnd.adobe.premiere' => [%w(ppj), %w(application/xml), nil],
1937
+ 'image/vnd.djvu' => [%w(djvu djv), %w(), nil],
1938
+ 'image/vnd.dwg' => [%w(dwg), %w(), 'AutoCad Drawing'],
1939
+ 'image/vnd.dxb' => [%w(dxb), %w(), 'AutoCAD DXF simplified Binary'],
1940
+ 'image/vnd.dxf' => [%w(dxf), %w(), 'AutoCAD DXF'],
1941
+ 'image/vnd.fastbidsheet' => [%w(fbs), %w(), nil],
1942
+ 'image/vnd.fpx' => [%w(fpx), %w(), nil],
1943
+ 'image/vnd.fst' => [%w(fst), %w(), nil],
1944
+ 'image/vnd.fujixerox.edmics-mmr' => [%w(mmr), %w(), nil],
1945
+ 'image/vnd.fujixerox.edmics-rlc' => [%w(rlc), %w(), nil],
1946
+ 'image/vnd.microsoft.icon' => [%w(ico), %w(), nil],
1947
+ 'image/vnd.ms-modi' => [%w(mdi), %w(), 'Microsoft Document Imaging'],
1948
+ 'image/vnd.net-fpx' => [%w(npx), %w(), nil],
1949
+ 'image/vnd.wap.wbmp' => [%w(wbmp), %w(), 'Wireless Bitmap File Format'],
1950
+ 'image/vnd.xiff' => [%w(xif), %w(), nil],
1951
+ 'image/vnd.zbrush.dcx' => [%w(dcx), %w(), 'ZSoft Multi-Page Paintbrush'],
1952
+ 'image/vnd.zbrush.pcx' => [%w(pcx), %w(), 'ZSoft Paintbrush PiCture eXchange'],
1953
+ 'image/webp' => [%w(webp), %w(), nil],
1954
+ 'image/wmf' => [%w(wmf), %w(), 'Windows Metafile'],
1955
+ 'image/x-bpg' => [%w(bpg), %w(), 'Better Portable Graphics'],
1956
+ 'image/x-cmu-raster' => [%w(ras), %w(), nil],
1957
+ 'image/x-cmx' => [%w(cmx), %w(), nil],
1958
+ 'image/x-dpx' => [%w(dpx), %w(), 'Digital Picture Exchange from SMPTE'],
1959
+ 'image/x-emf-compressed' => [%w(emz), %w(application/gzip), 'Compressed Enhanced Metafile'],
1960
+ 'image/x-freehand' => [%w(fh fhc fh4 fh40 fh5 fh50 fh7 fh8 fh9 fh10 fh11 fh12 ft7 ft8 ft9 ft10 ft11 ft12), %w(), 'FreeHand image'],
1961
+ 'image/x-jbig2' => [%w(jb2 jbig2), %w(), "\n A lossless image compression standard from the\n Joint Bi-level Image Experts Group.\n "],
1962
+ 'image/x-jp2-codestream' => [%w(j2c), %w(), 'JPEG 2000 Codestream'],
1963
+ 'image/x-pict' => [%w(pic pct pict), %w(), 'Apple Macintosh QuickDraw/PICT Format'],
1964
+ 'image/x-portable-anymap' => [%w(pnm), %w(), 'Portable Any Map'],
1965
+ 'image/x-portable-bitmap' => [%w(pbm), %w(image/x-portable-anymap), 'Portable Bit Map'],
1966
+ 'image/x-portable-graymap' => [%w(pgm), %w(image/x-portable-anymap), 'Portable Graymap Graphic'],
1967
+ 'image/x-portable-pixmap' => [%w(ppm), %w(image/x-portable-anymap), 'UNIX Portable Bitmap Graphic'],
1968
+ 'image/x-raw-adobe' => [%w(dng), %w(), 'Adobe Digital Negative'],
1969
+ 'image/x-raw-canon' => [%w(crw cr2), %w(), 'Canon raw image'],
1970
+ 'image/x-raw-casio' => [%w(bay), %w(), 'Casio raw image'],
1971
+ 'image/x-raw-epson' => [%w(erf), %w(), 'Epson raw image'],
1972
+ 'image/x-raw-fuji' => [%w(raf), %w(), 'Fuji raw image'],
1973
+ 'image/x-raw-hasselblad' => [%w(3fr), %w(), 'Hasselblad raw image'],
1974
+ 'image/x-raw-imacon' => [%w(fff), %w(), 'Imacon raw image'],
1975
+ 'image/x-raw-kodak' => [%w(k25 kdc dcs drf), %w(), 'Kodak raw image'],
1976
+ 'image/x-raw-leaf' => [%w(mos), %w(), 'Leaf raw image'],
1977
+ 'image/x-raw-logitech' => [%w(pxn), %w(), 'Logitech raw image'],
1978
+ 'image/x-raw-mamiya' => [%w(mef), %w(), 'Mamiya raw image'],
1979
+ 'image/x-raw-minolta' => [%w(mrw), %w(), 'Minolta raw image'],
1980
+ 'image/x-raw-nikon' => [%w(nef nrw), %w(), 'Nikon raw image'],
1981
+ 'image/x-raw-olympus' => [%w(orf), %w(), 'Olympus raw image'],
1982
+ 'image/x-raw-panasonic' => [%w(raw rw2), %w(), 'Panasonic raw image'],
1983
+ 'image/x-raw-pentax' => [%w(ptx pef), %w(), 'Pentax raw image'],
1984
+ 'image/x-raw-phaseone' => [%w(iiq), %w(), 'Phase One raw image'],
1985
+ 'image/x-raw-rawzor' => [%w(rwz), %w(), 'Rawzor raw image'],
1986
+ 'image/x-raw-red' => [%w(r3d), %w(), 'Red raw image'],
1987
+ 'image/x-raw-sigma' => [%w(x3f), %w(), 'Sigma raw image'],
1988
+ 'image/x-raw-sony' => [%w(arw srf sr2), %w(), 'Sony raw image'],
1989
+ 'image/x-rgb' => [%w(rgb), %w(), 'Silicon Graphics RGB Bitmap'],
1990
+ 'image/x-tga' => [%w(tga icb vda), %w(), 'Targa image data'],
1991
+ 'image/x-xbitmap' => [%w(xbm), %w(text/x-c), nil],
1992
+ 'image/x-xcf' => [%w(xcf), %w(), 'GIMP Image File'],
1993
+ 'image/x-xpixmap' => [%w(xpm), %w(), nil],
1994
+ 'image/x-xwindowdump' => [%w(xwd), %w(), 'X Windows Dump'],
1995
+ 'message/rfc822' => [%w(eml mime), %w(text/x-tika-text-based-message), nil],
1996
+ 'message/x-emlx' => [%w(emlx), %w(text/x-tika-text-based-message), nil],
1997
+ 'model/iges' => [%w(igs iges), %w(), 'Initial Graphics Exchange Specification Format'],
1998
+ 'model/mesh' => [%w(msh mesh silo), %w(), nil],
1999
+ 'model/vnd.dwf' => [%w(dwf), %w(), 'AutoCAD Design Web Format'],
2000
+ 'model/vnd.dwfx+xps' => [%w(dwfx), %w(application/x-tika-ooxml), 'AutoCAD Design Web Format'],
2001
+ 'model/vnd.gdl' => [%w(gdl), %w(), nil],
2002
+ 'model/vnd.gtw' => [%w(gtw), %w(), nil],
2003
+ 'model/vnd.mts' => [%w(mts), %w(), nil],
2004
+ 'model/vnd.vtu' => [%w(vtu), %w(), nil],
2005
+ 'model/vrml' => [%w(wrl vrml), %w(), nil],
2006
+ 'multipart/related' => [%w(mht mhtml), %w(message/rfc822), 'MIME Encapsulation of Aggregate HTML Documents'],
2007
+ 'text/asp' => [%w(asp), %w(text/plain), 'Active Server Page'],
2008
+ 'text/aspdotnet' => [%w(aspx), %w(text/plain), 'ASP .NET'],
2009
+ 'text/calendar' => [%w(ics ifb), %w(text/plain), nil],
2010
+ 'text/css' => [%w(css), %w(text/plain), 'Cascading Style Sheet'],
2011
+ 'text/csv' => [%w(csv), %w(text/plain), nil],
2012
+ 'text/html' => [%w(html htm), %w(), 'HyperText Markup Language'],
2013
+ 'text/iso19139+xml' => [%w(iso19139), %w(application/xml), nil],
2014
+ 'text/plain' => [%w(txt text def list in aart ac am apt bsh classpath cnd cwiki data dcl dsp dsw egrm ent ft fn fv grm g handlers htc ihtml jmx junit jx manifest m4 mf mf meta mdo n3 pen pod pom project rng rnx roles schemas tld types vm vsl wsdd xargs xcat xegrm xgrm xlex xlog xmap xroles xsamples xsp xtest xweb xwelcome), %w(), nil],
2015
+ 'text/prs.lines.tag' => [%w(dsc), %w(), nil],
2016
+ 'text/richtext' => [%w(rtx), %w(), nil],
2017
+ 'text/sgml' => [%w(sgml sgm), %w(), nil],
2018
+ 'text/tab-separated-values' => [%w(tsv), %w(), nil],
2019
+ 'text/troff' => [%w(t tr roff nroff man me ms), %w(), 'Roff/nroff/troff/groff Unformatted Manual Page (UNIX)'],
2020
+ 'text/uri-list' => [%w(uri uris urls), %w(), nil],
2021
+ 'text/vnd.curl' => [%w(curl), %w(), nil],
2022
+ 'text/vnd.curl.dcurl' => [%w(dcurl), %w(), nil],
2023
+ 'text/vnd.curl.mcurl' => [%w(mcurl), %w(), nil],
2024
+ 'text/vnd.curl.scurl' => [%w(scurl), %w(), nil],
2025
+ 'text/vnd.fly' => [%w(fly), %w(), nil],
2026
+ 'text/vnd.fmi.flexstor' => [%w(flx), %w(), nil],
2027
+ 'text/vnd.graphviz' => [%w(gv), %w(text/plain), 'Graphviz Graph Visualization Software'],
2028
+ 'text/vnd.in3d.3dml' => [%w(3dml), %w(), nil],
2029
+ 'text/vnd.in3d.spot' => [%w(spot), %w(), nil],
2030
+ 'text/vnd.iptc.anpa' => [%w(anpa), %w(), 'American Newspaper Publishers Association Wire Feeds'],
2031
+ 'text/vnd.sun.j2me.app-descriptor' => [%w(jad), %w(), nil],
2032
+ 'text/vnd.wap.wml' => [%w(wml), %w(), nil],
2033
+ 'text/vnd.wap.wmlscript' => [%w(wmls), %w(), 'WML Script'],
2034
+ 'text/vtt' => [%w(vtt), %w(text/plain), 'Web Video Text Tracks Format'],
2035
+ 'text/x-actionscript' => [%w(as), %w(text/plain), 'ActionScript source code'],
2036
+ 'text/x-ada' => [%w(ada adb ads), %w(text/plain), 'Ada source code'],
2037
+ 'text/x-applescript' => [%w(applescript), %w(text/plain), 'AppleScript source code'],
2038
+ 'text/x-asciidoc' => [%w(asciidoc adoc ad ad.txt adoc.txt), %w(text/plain), 'Asciidoc source code'],
2039
+ 'text/x-aspectj' => [%w(aj), %w(text/plain), 'AspectJ source code'],
2040
+ 'text/x-assembly' => [%w(s s asm), %w(text/plain), 'Assembler source code'],
2041
+ 'text/x-awk' => [%w(awk), %w(text/plain), 'AWK script'],
2042
+ 'text/x-basic' => [%w(bas bas bas), %w(text/plain), 'Basic source code'],
2043
+ 'text/x-c++hdr' => [%w(hpp hxx hh h h++ hp hpp), %w(text/plain), 'C++ source code header'],
2044
+ 'text/x-c++src' => [%w(cpp cxx cc c c++ cpp), %w(text/plain), 'C++ source code'],
2045
+ 'text/x-cgi' => [%w(cgi), %w(text/plain), 'CGI script'],
2046
+ 'text/x-chdr' => [%w(h), %w(text/plain), 'C source code header'],
2047
+ 'text/x-clojure' => [%w(clj), %w(text/plain), 'Clojure source code'],
2048
+ 'text/x-cobol' => [%w(cbl cbl cbl cob cob cob), %w(text/plain), 'COBOL source code'],
2049
+ 'text/x-coffeescript' => [%w(coffee), %w(text/plain), 'CoffeeScript source code'],
2050
+ 'text/x-coldfusion' => [%w(cfm cfml cfc), %w(text/plain), 'ColdFusion source code'],
2051
+ 'text/x-common-lisp' => [%w(cl jl lisp lsp), %w(text/plain), 'Common Lisp source code'],
2052
+ 'text/x-config' => [%w(config conf cfg xconf), %w(text/plain), nil],
2053
+ 'text/x-csharp' => [%w(cs), %w(text/plain), 'C# source code'],
2054
+ 'text/x-csrc' => [%w(c), %w(text/plain), 'C source code'],
2055
+ 'text/x-d' => [%w(d), %w(text/plain), 'D source code'],
2056
+ 'text/x-diff' => [%w(diff patch), %w(text/plain), nil],
2057
+ 'text/x-eiffel' => [%w(e), %w(text/plain), 'Eiffel source code'],
2058
+ 'text/x-emacs-lisp' => [%w(el), %w(text/plain), 'Emacs Lisp source code'],
2059
+ 'text/x-erlang' => [%w(erl), %w(text/plain), 'Erlang source code'],
2060
+ 'text/x-expect' => [%w(exp), %w(text/plain), 'Expect Script'],
2061
+ 'text/x-forth' => [%w(4th), %w(text/plain), 'Forth source code'],
2062
+ 'text/x-fortran' => [%w(f f for f77 f90), %w(text/plain), 'Fortran source code'],
2063
+ 'text/x-go' => [%w(go), %w(text/plain), 'Go source code'],
2064
+ 'text/x-groovy' => [%w(groovy), %w(text/plain), 'Groovy source code'],
2065
+ 'text/x-haml' => [%w(haml), %w(text/plain), 'HAML source code'],
2066
+ 'text/x-haskell' => [%w(hs lhs), %w(text/plain), 'Haskell source code'],
2067
+ 'text/x-haxe' => [%w(hx), %w(text/plain), 'Haxe source code'],
2068
+ 'text/x-idl' => [%w(idl), %w(text/plain), 'Inteface Definition Language'],
2069
+ 'text/x-ini' => [%w(ini), %w(text/plain), 'Configuration file'],
2070
+ 'text/x-java-properties' => [%w(properties), %w(text/plain), 'Java Properties'],
2071
+ 'text/x-java-source' => [%w(java), %w(text/plain), 'Java source code'],
2072
+ 'text/x-jsp' => [%w(jsp), %w(text/plain), 'Java Server Page'],
2073
+ 'text/x-less' => [%w(less), %w(text/plain), 'LESS source code'],
2074
+ 'text/x-lex' => [%w(l), %w(text/plain), 'Lex/Flex source code'],
2075
+ 'text/x-log' => [%w(log), %w(text/plain), 'application log'],
2076
+ 'text/x-lua' => [%w(lua), %w(text/plain), 'Lua source code'],
2077
+ 'text/x-ml' => [%w(ml), %w(text/plain), 'ML source code'],
2078
+ 'text/x-modula' => [%w(m3 i3 mg ig), %w(text/plain), 'Modula source code'],
2079
+ 'text/x-objcsrc' => [%w(m), %w(text/plain), 'Objective-C source code'],
2080
+ 'text/x-ocaml' => [%w(ocaml mli), %w(text/plain), 'Ocaml source code'],
2081
+ 'text/x-pascal' => [%w(p pp pas pas dpr), %w(text/plain), 'Pascal source code'],
2082
+ 'text/x-perl' => [%w(pl pm al perl), %w(text/plain), 'Perl script'],
2083
+ 'text/x-php' => [%w(php php3 php4), %w(text/plain), 'PHP script'],
2084
+ 'text/x-prolog' => [%w(pro), %w(text/plain), 'Prolog source code'],
2085
+ 'text/x-python' => [%w(py), %w(text/plain), 'Python script'],
2086
+ 'text/x-rexx' => [%w(rexx), %w(text/plain), 'Rexx source code'],
2087
+ 'text/x-rsrc' => [%w(r), %w(text/plain), 'R source code'],
2088
+ 'text/x-rst' => [%w(rest rst restx), %w(text/plain), 'reStructuredText source code'],
2089
+ 'text/x-ruby' => [%w(rb), %w(text/plain), 'Ruby source code'],
2090
+ 'text/x-scala' => [%w(scala), %w(text/plain), 'Scala source code'],
2091
+ 'text/x-scheme' => [%w(scm), %w(text/plain), 'Scheme source code'],
2092
+ 'text/x-sed' => [%w(sed), %w(text/plain), 'Sed code'],
2093
+ 'text/x-setext' => [%w(etx), %w(text/plain), nil],
2094
+ 'text/x-sql' => [%w(sql), %w(text/plain), 'SQL code'],
2095
+ 'text/x-stsrc' => [%w(st), %w(text/plain), 'Smalltalk source code'],
2096
+ 'text/x-tcl' => [%w(itk tcl tk), %w(text/plain), 'Tcl script'],
2097
+ 'text/x-uuencode' => [%w(uu), %w(), nil],
2098
+ 'text/x-vbasic' => [%w(cls cls cls frm frm frm), %w(text/x-basic), 'Visual basic source code'],
2099
+ 'text/x-vbdotnet' => [%w(vb), %w(text/x-vbasic), 'VB.NET source code'],
2100
+ 'text/x-vbscript' => [%w(vbs), %w(text/x-vbasic), 'VBScript source code'],
2101
+ 'text/x-vcalendar' => [%w(vcs), %w(text/plain), nil],
2102
+ 'text/x-vcard' => [%w(vcf), %w(text/plain), nil],
2103
+ 'text/x-verilog' => [%w(v), %w(text/plain), 'Verilog source code'],
2104
+ 'text/x-vhdl' => [%w(vhd vhdl), %w(text/plain), 'VHDL source code'],
2105
+ 'text/x-web-markdown' => [%w(md mdtext mkd markdown), %w(text/plain), 'Markdown source code'],
2106
+ 'text/x-yacc' => [%w(y), %w(text/plain), 'Yacc/Bison source code'],
2107
+ 'text/x-yaml' => [%w(yaml), %w(text/plain), 'YAML source code'],
2108
+ 'video/3gpp' => [%w(3gp), %w(), nil],
2109
+ 'video/3gpp2' => [%w(3g2), %w(), nil],
2110
+ 'video/h261' => [%w(h261), %w(), nil],
2111
+ 'video/h263' => [%w(h263), %w(), nil],
2112
+ 'video/h264' => [%w(h264), %w(), nil],
2113
+ 'video/iso.segment' => [%w(m4s), %w(video/quicktime), nil],
2114
+ 'video/jpeg' => [%w(jpgv), %w(), nil],
2115
+ 'video/mj2' => [%w(mj2 mjp2), %w(image/x-jp2-container), 'JPEG 2000 Part 3 (Motion JPEG, MJ2)'],
2116
+ 'video/mp4' => [%w(mp4 mp4v mpg4), %w(video/quicktime), nil],
2117
+ 'video/mpeg' => [%w(mpeg mpg mpe m1v m2v), %w(), 'MPEG Movie Clip'],
2118
+ 'video/ogg' => [%w(ogv), %w(application/ogg), 'Ogg Vorbis Video'],
2119
+ 'video/quicktime' => [%w(qt mov), %w(application/quicktime), 'QuickTime Video'],
2120
+ 'video/vnd.fvt' => [%w(fvt), %w(), nil],
2121
+ 'video/vnd.mpegurl' => [%w(mxu m4u), %w(), nil],
2122
+ 'video/vnd.ms-playready.media.pyv' => [%w(pyv), %w(), nil],
2123
+ 'video/vnd.vivo' => [%w(viv), %w(), nil],
2124
+ 'video/webm' => [%w(webm), %w(application/x-matroska), nil],
2125
+ 'video/x-dirac' => [%w(drc), %w(video/ogg), 'Ogg Packaged Dirac Video'],
2126
+ 'video/x-f4v' => [%w(f4v), %w(), nil],
2127
+ 'video/x-flc' => [%w(flc), %w(), nil],
2128
+ 'video/x-fli' => [%w(fli), %w(), nil],
2129
+ 'video/x-flv' => [%w(flv), %w(), nil],
2130
+ 'video/x-jng' => [%w(jng), %w(), nil],
2131
+ 'video/x-m4v' => [%w(m4v), %w(video/mp4), nil],
2132
+ 'video/x-matroska' => [%w(mkv), %w(application/x-matroska), nil],
2133
+ 'video/x-mng' => [%w(mng), %w(), nil],
2134
+ 'video/x-ms-asf' => [%w(asf), %w(), nil],
2135
+ 'video/x-ms-wm' => [%w(wm), %w(), nil],
2136
+ 'video/x-ms-wmv' => [%w(wmv), %w(video/x-ms-asf), nil],
2137
+ 'video/x-ms-wmx' => [%w(wmx), %w(), nil],
2138
+ 'video/x-ms-wvx' => [%w(wvx), %w(), nil],
2139
+ 'video/x-msvideo' => [%w(avi), %w(), 'Audio Video Interleave File'],
2140
+ 'video/x-ogm' => [%w(ogm), %w(video/ogg), 'Ogg Packaged OGM Video'],
2141
+ 'video/x-sgi-movie' => [%w(movie), %w(), nil],
2142
+ 'x-conference/x-cooltalk' => [%w(ice), %w(), 'Cooltalk Audio'],
2143
+ }
2144
+ # @private
2145
+ # :nodoc:
2146
+ MAGIC = [
2147
+ ['image/jpeg', [[0, "\377\330\377"]]],
2148
+ ['image/png', [[0, "\211PNG\r\n\032\n"]]],
2149
+ ['image/gif', [[0, 'GIF87a'], [0, 'GIF89a']]],
2150
+ ['image/tiff', [[0, "MM\000*"], [0, "II*\000"], [0, "MM\000+"]]],
2151
+ ['image/bmp', [[0, 'BM', [[26, "\001\000", [[28, "\000\000"], [28, "\001\000"], [28, "\004\000"], [28, "\b\000"], [28, "\020\000"], [28, "\030\000"], [28, " \000"]]]]]]],
2152
+ ['image/vnd.adobe.photoshop', [[0, "8BPS\000\001"], [0, "8BPS\000\002"]]],
2153
+ ['image/webp', [[0, 'RIFF', [[8, 'WEBP']]]]],
2154
+ ['image/svg+xml', [[0..4096, '<svg']]],
2155
+ ['video/x-msvideo', [[0, 'RIFF', [[8, 'AVI ']]], [8, 'AVI ']]],
2156
+ ['video/x-ms-wmv', [[0..8192, 'Windows Media Video'], [0..8192, 'VC-1 Advanced Profile'], [0..8192, 'wmv2']]],
2157
+ ['video/mp4', [[4, 'ftypmp41'], [4, 'ftypmp42']]],
2158
+ ['audio/mp4', [[4, 'ftypM4A '], [4, 'ftypM4B '], [4, 'ftypF4A '], [4, 'ftypF4B ']]],
2159
+ ['video/quicktime', [[4, "moov\000"], [4, "mdat\000"], [4, "free\000"], [4, "skip\000"], [4, "pnot\000"], [4, 'ftyp'], [0, "\000\000\000\bwide"]]],
2160
+ ['video/mpeg', [[0, "\000\000\001\263"], [0, "\000\000\001\272"]]],
2161
+ ['video/webm', [[0, "\032E\337\243", [[4..4096, "B\202", [[4..4096, 'webm']]]]]]],
2162
+ ['video/x-matroska', [[0, "\032E\337\243\223B\202\210matroska"]]],
2163
+ ['video/x-flv', [[0, 'FLV']]],
2164
+ ['audio/mpeg', [[0, "\377\362"], [0, "\377\363"], [0, "\377\364"], [0, "\377\365"], [0, "\377\366"], [0, "\377\367"], [0, "\377\372"], [0, "\377\373"], [0, "\377\374"], [0, "\377\375"], [0, "\377\377"], [0, 'ID3']]],
2165
+ ['application/pdf', [[0, '%PDF-'], [0, "\357\273\277%PDF-"]]],
2166
+ ['application/msword', [[0..8, "\320\317\021\340\241\261\032\341", [[546, 'jbjb'], [546, 'bjbj']]]]],
2167
+ ['application/vnd.openxmlformats-officedocument.wordprocessingml.document', [[0, "PK\003\004", [[30..65536, '[Content_Types].xml', [[0..4096, 'word/']]], [30, '_rels/.rels', [[0..4096, 'word/']]]]]]],
2168
+ ['application/vnd.ms-powerpoint', [[0..8, "\320\317\021\340\241\261\032\341", [[1152..4096, "P\000o\000w\000e\000r\000P\000o\000i\000n\000t\000 D\000o\000c\000u\000m\000e\000n\000t"]]]]],
2169
+ ['application/vnd.openxmlformats-officedocument.presentationml.presentation', [[0, "PK\003\004", [[30..65536, '[Content_Types].xml', [[0..4096, 'ppt/']]], [30, '_rels/.rels', [[0..4096, 'ppt/']]]]]]],
2170
+ ['application/vnd.ms-excel', [[2080, 'Microsoft Excel 5.0 Worksheet'], [2080, 'Foglio di lavoro Microsoft Exce'], [2114, 'Biff5'], [2121, 'Biff5'], [0..8, "\320\317\021\340\241\261\032\341", [[1152..4096, "W\000o\000r\000k\000b\000o\000o\000k"]]]]],
2171
+ ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', [[0, "PK\003\004", [[30..65536, '[Content_Types].xml', [[0..4096, 'xl/']]], [30, '_rels/.rels', [[0..4096, 'xl/']]]]]]],
2172
+ ['application/x-dbf', [[0, "(?s)^[\\\\002\\\\003\\\\060\\\\061\\\\062\\\\103\\\\143\\\\203\\\\213\\\\313\\\\365\\\\345\\\\373].[\\\\001-\\\\014][\\\\001-\\\\037].{4}(?:.[^\\\\000]|[\\\\101-\\\\377].)(?:[^\\\\000\\\\001].|.[^\\\\000]).{31}(?<=[\\\\000][^\\\\000]{0,10})[A-Z@+]"]]],
2173
+ ['image/x-tga', [[1, "\001\001\000\000", [[8, ".*[\\\\124\\\\122\\\\125\\\\105\\\\126\\\\111\\\\123\\\\111\\\\117\\\\116\\\\055\\\\130\\\\106\\\\111\\\\114\\\\105\\\\056\\\\000]"]]], [1, "\000\002\000\000", [[8, ".*[\\\\124\\\\122\\\\125\\\\105\\\\126\\\\111\\\\123\\\\111\\\\117\\\\116\\\\055\\\\130\\\\106\\\\111\\\\114\\\\105\\\\056\\\\000]"]]], [1, "\000\003\000\000", [[8, ".*[\\\\124\\\\122\\\\125\\\\105\\\\126\\\\111\\\\123\\\\111\\\\117\\\\116\\\\055\\\\130\\\\106\\\\111\\\\114\\\\105\\\\056\\\\000]"]]]]],
2174
+ ['application/x-endnote-refer', [[0..50, '%A ', [[0..1000, "\n%D ", [[0..1000, "\n%T "]]]]]]],
2175
+ ['application/x-ms-owner', [[0, "(?s)^([\\\\005-\\\\017])[\\\\000\\\\040-\\\\176]{10}.{43}\\\\1\\000"]]],
2176
+ ['application/mbox', [[0, 'From ', [[32..256, "\nFrom: "], [32..256, "\nDate: "], [32..256, "\nSubject: "], [32..256, "\nDelivered-To: "], [32..256, "\nReceived: by "], [32..256, "\nReceived: via "], [32..256, "\nReceived: from "], [32..256, "\nMime-Version: "], [32..256, "\nX-", [[32..8192, "\nFrom: "], [32..8192, "\nDate: "], [32..8192, "\nSubject: "], [32..8192, "\nDelivered-To: "], [32..8192, "\nReceived: by "], [32..8192, "\nReceived: via "], [32..8192, "\nReceived: from "], [32..8192, "\nMime-Version: "]]]]]]],
2177
+ ['application/x-bplist', [[0, "bplist\000\000"], [0, "bplist\000\001"], [0, "bplist@\000"], [0, 'bplist00'], [0, 'bplist01'], [0, 'bplist10'], [0, 'bplist15'], [0, 'bplist16']]],
2178
+ ['application/x-ms-nls', [[0, "(?s)^\\\\015.{51}\\\\014\\\\000\\\\015\\\\000\\\\016"], [0, "(?s)^\\\\104\\\\103.\\\\001"]]],
2179
+ ['message/x-emlx', [[2..9, "\nRelay-Version:"], [2..9, "\n#! rnews"], [2..9, "\nN#! rnews"], [2..9, "\nForward to"], [2..9, "\nPipe to"], [2..9, "\nReturn-Path:"], [2..9, "\nFrom:"], [2..9, "\nReceived:"], [2..9, "\nMessage-ID:"], [2..9, "\nDate:"]]],
2180
+ ['application/cbor', [[0, "\331\331\367"]]],
2181
+ ['application/coreldraw', [[0, 'RIFF', [[8, 'CDR'], [8, 'cdr'], [8, 'DES'], [8, 'des']]]]],
2182
+ ['application/vnd.etsi.asic-e+zip', [[0, "PK\003\004", [[30, 'mimetypeapplication/vnd.etsi.asic-e+zip']]]]],
2183
+ ['application/vnd.etsi.asic-s+zip', [[0, "PK\003\004", [[30, 'mimetypeapplication/vnd.etsi.asic-s+zip']]]]],
2184
+ ['application/vnd.ms-excel.sheet.2', [[0, "\t\000\004\000", [[4, "\000\000\020\000"], [4, "\000\000 \000"], [4, "\000\000@\000"]]]]],
2185
+ ['application/vnd.ms-excel.sheet.3', [[0, "\t\002\006\000", [[4, "\000\000\020\000"], [4, "\000\000 \000"], [4, "\000\000@\000"]]]]],
2186
+ ['application/vnd.ms-excel.sheet.4', [[0, "\t\004\006\000", [[4, "\000\000\020\000"], [4, "\000\000 \000"], [4, "\000\000@\000"]]]]],
2187
+ ['application/vnd.ms-excel.workspace.3', [[0, "\t\002\006\000", [[4, "\000\000\000\001"]]]]],
2188
+ ['application/vnd.ms-excel.workspace.4', [[0, "\t\004\006\000", [[4, "\000\000\000\001"]]]]],
2189
+ ['application/x-axcrypt', [[0, "\300\271\a.O\223\361F\240\025y,\241\331\350!", [[17, "\000\000\000\002"]]]]],
2190
+ ['application/x-berkeley-db;format=btree;version=2', [[12, "b1\005\000", [[16, "\006\000\000\000"]]], [12, "\000\0051b", [[16, "\000\000\000\006"]]], [12, "b1\005\000", [[16, "\006\000\000\000"]]]]],
2191
+ ['application/x-berkeley-db;format=btree;version=3', [[12, "b1\005\000", [[16, "\b\000\000\000"]]], [12, "\000\0051b", [[16, "\000\000\000\b"]]], [12, "b1\005\000", [[16, "\b\000\000\000"]]]]],
2192
+ ['application/x-berkeley-db;format=btree;version=4', [[12, "b1\005\000", [[16, "\t\000\000\000"]]], [12, "\000\0051b", [[16, "\000\000\000\t"]]], [12, "b1\005\000", [[16, "\t\000\000\000"]]]]],
2193
+ ['application/x-berkeley-db;format=hash;version=2', [[12, "a\025\006\000", [[16, "\005\000\000\000"]]], [12, "\000\006\025a", [[16, "\000\000\000\005"]]], [12, "a\025\006\000", [[16, "\005\000\000\000"]]]]],
2194
+ ['application/x-berkeley-db;format=hash;version=3', [[12, "a\025\006\000", [[16, "\a\000\000\000"]]], [12, "\000\006\025a", [[16, "\000\000\000\a"]]], [12, "a\025\006\000", [[16, "\a\000\000\000"]]]]],
2195
+ ['application/x-berkeley-db;format=hash;version=4', [[12, "a\025\006\000", [[16, "\b\000\000\000"]]], [12, "\000\006\025a", [[16, "\000\000\000\b"]]], [12, "a\025\006\000", [[16, "\b\000\000\000"]]]]],
2196
+ ['application/x-berkeley-db;format=hash;version=5', [[12, "a\025\006\000", [[16, "\t\000\000\000"]]], [12, "\000\006\025a", [[16, "\000\000\000\t"]]], [12, "a\025\006\000", [[16, "\t\000\000\000"]]]]],
2197
+ ['application/x-bplist', [[0, 'bplist']]],
2198
+ ['application/x-debian-package', [[0, "!<arch>\ndebian-binary"], [0, "!<arch>\ndebian-split"]]],
2199
+ ['application/x-font-type1', [[0, "\200\001", [[4, "\000\000%!PS-AdobeFont"]]], [0, '%!PS-AdobeFont-1.0']]],
2200
+ ['application/x-internet-archive', [[0, 'filedesc://']]],
2201
+ ['application/x-lz4', [[0, "\004\"M\030"], [0, "\002!L\030"]]],
2202
+ ['application/x-mobipocket-ebook', [[0..60, 'BOOKMOBI']]],
2203
+ ['application/x-msaccess', [[0, "\000\001\000\000Stan"]]],
2204
+ ['application/x-msdownload;format=pe-arm7', [[128, "pe\000\000", [[132, "\304\001"]]], [240, "pe\000\000", [[244, "\304\001"]]]]],
2205
+ ['application/x-msdownload;format=pe-armLE', [[128, "pe\000\000", [[132, "\300\001"]]], [240, "pe\000\000", [[244, "\300\001"]]]]],
2206
+ ['application/x-msdownload;format=pe-itanium', [[128, "PE\000\000", [[132, "\000\002"]]], [240, "PE\000\000", [[244, "\000\002"]]]]],
2207
+ ['application/x-msdownload;format=pe32', [[128, "PE\000\000", [[132, "L\001"]]], [240, "PE\000\000", [[244, "L\001"]]]]],
2208
+ ['application/x-msdownload;format=pe64', [[128, "PE\000\000", [[132, "d\206"]]], [240, "PE\000\000", [[244, "d\206"]]]]],
2209
+ ['application/x-msmoney', [[0, "\000\001\000\000MSISAM Database"]]],
2210
+ ['application/x-rar-compressed;version=4', [[0, "Rar!\032\a\000"]]],
2211
+ ['application/x-rar-compressed;version=5', [[0, "Rar!\032\a\001\000"]]],
2212
+ ['application/x-shapefile', [[0, "\000\000'\n"]]],
2213
+ ['application/x-stata-dta;version=10', [[0, '<stata_dta><header><release>114</release>']]],
2214
+ ['application/x-stata-dta;version=12', [[0, '<stata_dta><header><release>115</release>']]],
2215
+ ['application/x-stata-dta;version=13', [[0, '<stata_dta><header><release>117</release>']]],
2216
+ ['application/x-stata-dta;version=14', [[0, '<stata_dta><header><release>118</release>']]],
2217
+ ['application/x-stata-dta;version=8', [[0, '<stata_dta><header><release>113</release>']]],
2218
+ ['application/x-tika-msworks-spreadsheet', [[0..8, "\320\317\021\340\241\261\032\341", [[1152..4096, "W\000k\000s\000S\000S\000W\000o\000r\000k\000B\000o\000o\000k"]]]]],
2219
+ ['audio/opus', [[0, 'OggS', [[29, 'pusHead']]]]],
2220
+ ['audio/speex', [[0, 'OggS', [[29, 'peex ']]]]],
2221
+ ['audio/vorbis', [[0, 'OggS', [[29, 'vorbis']]]]],
2222
+ ['audio/x-caf', [[0, "caff\000\000"], [0, "caff\000\001"], [0, "caff\000\002"], [0, "caff@\000"], [0, "caff\200\000"]]],
2223
+ ['audio/x-oggflac', [[0, 'OggS', [[29, 'LAC']]]]],
2224
+ ['audio/x-oggpcm', [[0, 'OggS', [[29, 'CM ']]]]],
2225
+ ['image/avif', [[4, 'ftypavif']]],
2226
+ ['image/heic', [[4, 'ftypheic'], [4, 'ftypheix']]],
2227
+ ['image/heic-sequence', [[4, 'ftyphevc'], [4, 'ftyphevx']]],
2228
+ ['image/heif', [[4, 'ftypmif1']]],
2229
+ ['image/heif-sequence', [[4, 'ftypmsf1']]],
2230
+ ['message/news', [[0, 'Path:'], [0, 'Xref:']]],
2231
+ ['model/vnd.dwf;version=2', [[0, '(DWF V00.22)']]],
2232
+ ['model/vnd.dwf;version=5', [[0, '(DWF V00.55)']]],
2233
+ ['model/vnd.dwf;version=6', [[0, '(DWF V06.', [[11, ')PK']]]]],
2234
+ ['multipart/related', [[0, 'From: <Saved by Windows Internet Explorer 8>'], [0, "From: \"Saved by Internet Explorer 11\""], [0, 'MIME-Version: 1.0', [[16..512, "\nContent-Type: multipart/related"]]]]],
2235
+ ['video/3gpp', [[4, 'ftyp3ge6'], [4, 'ftyp3ge7'], [4, 'ftyp3gg6'], [4, 'ftyp3gp1'], [4, 'ftyp3gp2'], [4, 'ftyp3gp3'], [4, 'ftyp3gp4'], [4, 'ftyp3gp5'], [4, 'ftyp3gp6'], [4, 'ftyp3gs7']]],
2236
+ ['video/3gpp2', [[4, 'ftyp3g2a'], [4, 'ftyp3g2b'], [4, 'ftyp3g2c']]],
2237
+ ['video/daala', [[0, 'OggS', [[29, 'daala']]]]],
2238
+ ['video/theora', [[0, 'OggS', [[29, 'theora']]]]],
2239
+ ['video/x-dirac', [[0, 'OggS', [[29, 'BCD']]]]],
2240
+ ['video/x-m4v', [[4, 'ftypM4V '], [4, 'ftypM4VH'], [4, 'ftypM4VP']]],
2241
+ ['video/x-oggrgb', [[0, 'OggS', [[29, 'RGB']]]]],
2242
+ ['video/x-ogguvs', [[0, 'OggS', [[29, 'VS ']]]]],
2243
+ ['video/x-oggyuv', [[0, 'OggS', [[29, 'YUV']]]]],
2244
+ ['video/x-ogm', [[0, 'OggS', [[29, 'ideo']]]]],
2245
+ ['application/x-msdownload;format=pe', [[0, 'MZ', [[128, "PE\000\000"], [176, "PE\000\000"], [208, "PE\000\000"], [240, "PE\000\000"]]]]],
2246
+ ['application/applefile', [[0, "\000\005\026\000"]]],
2247
+ ['application/dash+xml', [[0, '<MPD']]],
2248
+ ['application/dicom', [[128, 'DICM']]],
2249
+ ['application/epub+zip', [[0, "PK\003\004", [[30, 'mimetypeapplication/epub+zip']]]]],
2250
+ ['application/fits', [[0, 'SIMPLE = T'], [0, 'SIMPLE = T']]],
2251
+ ['application/javascript', [[0, '/* jQuery '], [0, '/*! jQuery '], [0, '/*!', [[4..8, '* jQuery ']]], [0, '(function(e,undefined){'], [0, '!function(window,undefined){'], [0, '/* Prototype JavaScript '], [0, 'var Prototype={'], [0, 'function $w(t){'], [0, '/** @license React'], [0, '/**', [[4..8, '* React ']]]]],
2252
+ ['application/mac-binhex40', [[11, 'must be converted with BinHex']]],
2253
+ ['application/mathematica', [[0, '(**'], [0, '(* ']]],
2254
+ ['application/msword', [[2080, 'Microsoft Word 6.0 Document'], [2080, 'Documento Microsoft Word 6'], [2112, 'MSWordDoc'], [0, "1\276\000\000"], [0, 'PO^Q`'], [0, "\3767\000#"], [0, "\333\245-\000\000\000"], [0, "\224\246."], [0..8, "\320\317\021\340\241\261\032\341", [[1152..4096, "W\000o\000r\000d\000D\000o\000c\000u\000m\000e\000n\000t"]]]]],
2255
+ ['application/msword2', [[0, "\233\245"], [0, "\333\245"]]],
2256
+ ['application/msword5', [[0, "\3767"]]],
2257
+ ['application/octet-stream', [[10, '# This is a shell archive'], [0, "\037\036"], [0, "\037\037"], [0, "\377\037"], [0, "\377\037"], [0, "\005\313"]]],
2258
+ ['application/ogg', [[0, 'OggS']]],
2259
+ ['application/onenote;format=one', [[0, "\344R\\{", [[4, "\214\330", [[6, "\247M", [[8, '0xAEB15378D02996D3']]]]]]]]],
2260
+ ['application/onenote;format=onetoc2', [[0, "\241/\377C", [[4, "\331\357", [[6, 'vL', [[8, '0x9EE210EA5722765F']]]]]]]]],
2261
+ ['application/pkcs7-signature', [[0, '-----BEGIN PKCS7'], [0, '0x3080', [[0, "\006\t*\206H\206\367\r\001\a", [[11, "\240"]]]]], [0, '0x3081', [[0, "\006\t*\206H\206\367\r\001\a", [[11, "\240"]]]]], [0, '0x3082', [[0, "\006\t*\206H\206\367\r\001\a", [[11, "\240"]]]]], [0, '0x3083', [[0, "\006\t*\206H\206\367\r\001\a", [[11, "\240"]]]]], [0, '0x3084', [[0, "\006\t*\206H\206\367\r\001\a", [[11, "\240"]]]]]]],
2262
+ ['application/postscript', [[0, '%!'], [0, "\004%!"], [0, "\305\320\323\306"], [0, '%!PS-Adobe-3.0 EPSF-3.0']]],
2263
+ ['application/rtf', [[0, "{\\rtf"]]],
2264
+ ['application/sereal;version=1', [[0, '=srl']]],
2265
+ ['application/sereal;version=2', [[0, '=srl']]],
2266
+ ['application/sereal;version=3', [[0, "=\363rl"]]],
2267
+ ['application/timestamped-data', [[0, "0\200\006\v*\206H\206\367"]]],
2268
+ ['application/vnd.apple.mpegurl', [[0, '#EXTM3U']]],
2269
+ ['application/vnd.digilite.prolights', [[0, "\177\fD+"]]],
2270
+ ['application/vnd.fdf', [[0, '%FDF-']]],
2271
+ ['application/vnd.java.hprof ', [[0, "JAVA PROFILE \\\\d\\\\.\\\\d\\\\.\\\\d\\\\u0000"]]],
2272
+ ['application/vnd.java.hprof.text', [[0, "JAVA PROFILE \\\\d\\\\.\\\\d\\\\.\\\\d,"]]],
2273
+ ['application/vnd.lotus-1-2-3;version=1', [[0, "\000\000\002\000\004\004"]]],
2274
+ ['application/vnd.lotus-1-2-3;version=2', [[0, "\000\000\002\000\006\004\006\000\b\000"]]],
2275
+ ['application/vnd.lotus-1-2-3;version=3', [[0, "\000\000\032\000\000\020\004\000"]]],
2276
+ ['application/vnd.lotus-1-2-3;version=4', [[0, "\000\000\032\000\002\020\004\000"]]],
2277
+ ['application/vnd.lotus-1-2-3;version=97+9.x', [[0, "\000\000\032\000\003\020\004\000"]]],
2278
+ ['application/vnd.lotus-wordpro', [[0, "WordPro\000"], [0, "WordPro\r\373"]]],
2279
+ ['application/vnd.mif', [[0, '<MakerFile'], [0, '<MIFFile'], [0, '<MakerDictionary'], [0, '<MakerScreenFont'], [0, '<MML'], [0, '<Book'], [0, '<Maker']]],
2280
+ ['application/vnd.ms-cab-compressed', [[0, "MSCF\000\000\000\000"]]],
2281
+ ['application/vnd.ms-cab-compressed', [[0, 'MSCF']]],
2282
+ ['application/vnd.ms-htmlhelp', [[0, 'ITSF']]],
2283
+ ['application/vnd.ms-outlook-pst', [[0, '!BDN', [[8, 'SM']]]]],
2284
+ ['application/vnd.ms-tnef', [[0, "x\237>\""]]],
2285
+ ['application/vnd.ms-works', [[0..8, "\320\317\021\340\241\261\032\341", [[1152..4096, "M\000a\000t\000O\000S\000T"]]]]],
2286
+ ['application/vnd.oasis.opendocument.chart', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.chart']]]]],
2287
+ ['application/vnd.oasis.opendocument.chart-template', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.chart-template']]]]],
2288
+ ['application/vnd.oasis.opendocument.formula', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.formula']]]]],
2289
+ ['application/vnd.oasis.opendocument.formula-template', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.formula-template']]]]],
2290
+ ['application/vnd.oasis.opendocument.graphics', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.graphics']]]]],
2291
+ ['application/vnd.oasis.opendocument.graphics-template', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.graphics-template']]]]],
2292
+ ['application/vnd.oasis.opendocument.image', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.image']]]]],
2293
+ ['application/vnd.oasis.opendocument.image-template', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.image-template']]]]],
2294
+ ['application/vnd.oasis.opendocument.presentation', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.presentation']]]]],
2295
+ ['application/vnd.oasis.opendocument.presentation-template', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.presentation-template']]]]],
2296
+ ['application/vnd.oasis.opendocument.spreadsheet', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.spreadsheet']]]]],
2297
+ ['application/vnd.oasis.opendocument.spreadsheet-template', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.spreadsheet-template']]]]],
2298
+ ['application/vnd.oasis.opendocument.text', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.text']]]]],
2299
+ ['application/vnd.oasis.opendocument.text-master', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.text-master']]]]],
2300
+ ['application/vnd.oasis.opendocument.text-template', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.text-template']]]]],
2301
+ ['application/vnd.oasis.opendocument.text-web', [[0, 'PK', [[30, 'mimetypeapplication/vnd.oasis.opendocument.text-web']]]]],
2302
+ ['application/vnd.rn-realmedia', [[0, '.RMF']]],
2303
+ ['application/vnd.stardivision.calc', [[0..8, "\320\317\021\340\241\261\032\341", [[2048..2207, 'StarCalc']]]]],
2304
+ ['application/vnd.stardivision.draw', [[0..8, "\320\317\021\340\241\261\032\341", [[2048..2207, 'StarDraw']]]]],
2305
+ ['application/vnd.stardivision.impress', [[0..8, "\320\317\021\340\241\261\032\341", [[2048..2207, 'StarImpress']]]]],
2306
+ ['application/vnd.stardivision.writer', [[0..8, "\320\317\021\340\241\261\032\341", [[2048..2207, 'StarWriter']]]]],
2307
+ ['application/vnd.sun.xml.writer', [[0, 'PK', [[30, 'mimetypeapplication/vnd.sun.xml.writer']]]]],
2308
+ ['application/vnd.symbian.install', [[8, "\031\004\000\020"]]],
2309
+ ['application/vnd.tcpdump.pcap', [[0, "\241\262\303\324"], [0, "\324\303\262\241"]]],
2310
+ ['application/vnd.wolfram.wl', [[0, '#!/usr/bin/env wolframscript']]],
2311
+ ['application/vnd.wordperfect', [[0, 'application/vnd.wordperfect;']]],
2312
+ ['application/vnd.wordperfect;version=4.2', [[0, "\313\n\001", [[5, "\313"]]]]],
2313
+ ['application/vnd.wordperfect;version=5.0', [[0, "\377WPC", [[10, "\000\000"]]]]],
2314
+ ['application/vnd.wordperfect;version=5.1', [[0, "\377WPC", [[10, "\000\001"]]]]],
2315
+ ['application/vnd.wordperfect;version=6.x', [[0, "\377WPC", [[10, "\002\001"]]]]],
2316
+ ['application/vnd.xara', [[0, 'xar!']]],
2317
+ ['application/warc', [[0, 'WARC/']]],
2318
+ ['application/wasm', [[0, "\000asm"], [0, "msa\000"]]],
2319
+ ['application/x-7z-compressed', [[0..1, '7z', [[2..5, "\274\257'\034"]]]]],
2320
+ ['application/x-adobe-indesign', [[0, "\006\006\355\365\330\035F\345\2751\357\347\376t\267\035"]]],
2321
+ ['application/x-adobe-indesign-interchange', [[0..100, '<?aid']]],
2322
+ ['application/x-archive', [[0, '=<ar>'], [0, "!<arch>\n"]]],
2323
+ ['application/x-arj', [[0, "`\352"]]],
2324
+ ['application/x-bat', [[0, '@echo off'], [0, 'rem ']]],
2325
+ ['application/x-berkeley-db;format=btree', [[0, "b1\005\000"], [0, "\000\0051b"], [0, "b1\005\000"], [12, "b1\005\000"], [12, "\000\0051b"], [12, "b1\005\000"]]],
2326
+ ['application/x-berkeley-db;format=hash', [[0, "a\025\006\000"], [0, "\000\006\025a"], [0, "a\025\006\000"], [12, "a\025\006\000"], [12, "\000\006\025a"], [12, "a\025\006\000"]]],
2327
+ ['application/x-berkeley-db;format=log', [[12, "\210\t\004\000"], [12, "\210\t\004\000"], [12, "\000\004\t\210"]]],
2328
+ ['application/x-berkeley-db;format=queue', [[12, "S\"\004\000"], [12, "\000\004\"S"], [12, "S\"\004\000"]]],
2329
+ ['application/x-bibtex-text-file', [[0, '% BibTeX `'], [73, '%%% '], [0, '% BibTeX standard bibliography '], [73, '%%% @BibTeX-style-file{'], [0, '@article{'], [0, '@book{'], [0, '@inbook{'], [0, '@incollection{'], [0, '@inproceedings{'], [0, '@manual{'], [0, '@misc{'], [0, '@preamble{'], [0, '@phdthesis{'], [0, '@string{'], [0, '@techreport{'], [0, '@unpublished{']]],
2330
+ ['application/x-bittorrent', [[0, 'd8:announce']]],
2331
+ ['application/x-chrome-package', [[0, 'Cr24']]],
2332
+ ['application/x-compress', [[0, "\037\235"]]],
2333
+ ['application/x-coredump', [[0, "\177ELF", [[16, "\004\000"], [16, "\000\004"]]]]],
2334
+ ['application/x-cpio', [[0, "\307q"], [0, "q\307"], [0, '070707'], [0, '070701'], [0, '070702']]],
2335
+ ['application/x-dex', [[0, "dex\n", [[7, "\000"]]]]],
2336
+ ['application/x-dvi', [[0, "\367\002"], [0, "\367\002"], [14, "\e TeX output "]]],
2337
+ ['application/x-elc', [[0, "\n("], [0, ";ELC\023\000\000\000"]]],
2338
+ ['application/x-elf', [[0, "\177ELF"]]],
2339
+ ['application/x-erdas-hfa', [[0, 'EHFA_HEADER_TAG']]],
2340
+ ['application/x-executable', [[0, "\177ELF", [[16, "\002\000"], [16, "\000\002"]]]]],
2341
+ ['application/x-filemaker', [[14, "\300HBAM7", [[525, "HBAM2101OCT99\301\002H\aPro 7.0\300\300"]]]]],
2342
+ ['application/x-foxmail', [[0, "\020\020\020\020\020\020\020\021\021\021\021\021\021S"]]],
2343
+ ['application/x-gnumeric', [[39, '=<gmr:Workbook']]],
2344
+ ['application/x-grib', [[0, 'GRIB']]],
2345
+ ['application/x-gtar', [[257, "ustar \000"]]],
2346
+ ['application/x-hdf', [[0, "\016\003\023\001"], [0, "\211HDF\r\n\032"]]],
2347
+ ['application/x-hwp', [[0, 'HWP Document File V']]],
2348
+ ['application/x-ibooks+zip', [[0, "PK\003\004", [[30, 'mimetypeapplication/x-ibooks+zip']]]]],
2349
+ ['application/x-isatab', [[1, 'Source Name']]],
2350
+ ['application/x-isatab-assay', [[1, 'Sample Name']]],
2351
+ ['application/x-isatab-investigation', [[0, 'ONTOLOGY SOURCE REFERENCE']]],
2352
+ ['application/x-iso9660-image', [[32769, 'CD001'], [34817, 'CD001'], [36865, 'CD001']]],
2353
+ ['application/x-java-jnilib', [[0, "\312\376\272\276", [[4096, "\376\355\372\316"], [4096, "\376\355\372\317"], [4096, "\316\372\355\376"], [4096, "\317\372\355\376"]]]]],
2354
+ ['application/x-kdelnk', [[0, '[KDE Desktop Entry]'], [0, '# KDE Config File']]],
2355
+ ['application/x-latex', [[0, '% -*-latex-*-']]],
2356
+ ['application/x-lha', [[2, '-lzs-'], [2, '-lh -'], [2, '-lhd-'], [2, '-lh2-'], [2, '-lh3-'], [2, '-lh4-'], [2, '-lh5-'], [2, '-lh6-'], [2, '-lh7-']]],
2357
+ ['application/x-lharc', [[2, '-lh0-'], [2, '-lh1-'], [2, '-lz4-'], [2, '-lz5-']]],
2358
+ ['application/x-lzip', [[0, 'LZIP']]],
2359
+ ['application/x-matlab-data', [[0, 'MATLAB']]],
2360
+ ['application/x-msdownload', [[0, 'MZ']]],
2361
+ ['application/x-mswrite', [[0, "1\276\000\000"], [0, "2\276\000\000"]]],
2362
+ ['application/x-netcdf', [[0, "CDF\001"], [0, "CDF\002"], [0, "CDF\001"]]],
2363
+ ['application/x-object', [[0, "\177ELF", [[16, "\001\000"], [16, "\000\001"]]]]],
2364
+ ['application/x-parquet', [[0, 'PAR1']]],
2365
+ ['application/x-project', [[0, 'MPX,Microsoft Project for Windows,']]],
2366
+ ['application/x-prt', [[8, '0M3C']]],
2367
+ ['application/x-quattro-pro;version=1+5', [[0, "\000\000\002\000\001\020"]]],
2368
+ ['application/x-quattro-pro;version=1-4', [[0, "\000\000\002\000 Q"]]],
2369
+ ['application/x-quattro-pro;version=5', [[0, "\000\000\002\000!Q"]]],
2370
+ ['application/x-quattro-pro;version=6', [[0, "\000\000\002\000\002\020"]]],
2371
+ ['application/x-rar-compressed', [[0, 'Rar!'], [0, "Rar!\032"]]],
2372
+ ['application/x-rpm', [[0, "\355\253\356\333"]]],
2373
+ ['application/x-sc', [[38, 'Spreadsheet']]],
2374
+ ['application/x-sh', [[0, '#!/'], [0, '#! /'], [0, "#!\t/"], [0, "eval \"exec"]]],
2375
+ ['application/x-sharedlib', [[0, "\177ELF", [[16, "\003\000"], [16, "\000\003"]]]]],
2376
+ ['application/x-shockwave-flash', [[0, 'FWS'], [0, 'CWS']]],
2377
+ ['application/x-snappy-framed', [[0, 'sNaPpY']]],
2378
+ ['application/x-sqlite3', [[0, "SQLite format 3\000"]]],
2379
+ ['application/x-stata-dta', [[0, '<stata_dta><header><release>']]],
2380
+ ['application/x-stuffit', [[0, 'StuffIt']]],
2381
+ ['application/x-tex', [[0, "\\input"], [0, "\\section"], [0, "\\setlength"], [0, "\\documentstyle"], [0, "\\chapter"], [0, "\\documentclass"], [0, "\\relax"], [0, "\\contentsline"]]],
2382
+ ['application/x-texinfo', [[0, "\\input texinfo"]]],
2383
+ ['application/x-tika-ooxml', [[0, "PK\003\004", [[30, '[Content_Types].xml'], [30, '_rels/.rels']]]]],
2384
+ ['application/x-uc2-compressed', [[0, "UC2\032"]]],
2385
+ ['application/x-vhd', [[0, 'conectix']]],
2386
+ ['application/x-x509-cert;format=der', []],
2387
+ ['application/x-x509-cert;format=pem', [[0, '-----BEGIN CERTIFICATE-----']]],
2388
+ ['application/x-x509-dsa-parameters', [[0, '-----BEGIN DSA PARAMETERS-----']]],
2389
+ ['application/x-x509-ec-parameters', [[0, '-----BEGIN EC PARAMETERS-----']]],
2390
+ ['application/x-x509-key;format=pem', [[0, '-----BEGIN PRIVATE KEY-----'], [0, '-----BEGIN PUBLIC KEY-----'], [0, '-----BEGIN KEY-----'], [0, '-----BEGIN RSA KEY-----'], [0, '-----BEGIN RSA PRIVATE KEY-----'], [0, '-----BEGIN DSA KEY-----'], [0, '-----BEGIN DSA PRIVATE KEY-----']]],
2391
+ ['application/x-xz', [[0, "\3757zXZ\000"]]],
2392
+ ['application/x-zoo', [[20, "\334\247\304\375"]]],
2393
+ ['application/xml', [[0, '<?xml'], [0, '<?XML'], [0, "\357\273\277<?xml"], [0, "\377\376<\000?\000x\000m\000l\000"], [0, "\376\377\000<\000?\000x\000m\000l"]]],
2394
+ ['application/zip', [[0, "PK\003\004"], [0, "PK\005\006"], [0, "PK\a\b"]]],
2395
+ ['application/zstd', [[0, "(\265/\375"]]],
2396
+ ['audio/ac3', [[0, "\vw"]]],
2397
+ ['audio/amr-wb', [[0, "#!AMR-WB\n"]]],
2398
+ ['audio/eac3', [[0, "\vw"]]],
2399
+ ['audio/prs.sid', [[0, 'PSID']]],
2400
+ ['audio/x-flac', [[0, 'fLaC']]],
2401
+ ['audio/x-mod', [[0, 'Extended Module:'], [21, 'BMOD2STM'], [1080, 'M.K.'], [1080, 'M!K!'], [1080, 'FLT4'], [1080, 'FLT8'], [1080, '4CHN'], [1080, '6CHN'], [1080, '8CHN'], [1080, 'CD81'], [1080, 'OKTA'], [1080, '16CN'], [1080, '32CN'], [0, 'IMPM']]],
2402
+ ['audio/x-mpegurl', [[0, "#EXTM3U\r\n"]]],
2403
+ ['audio/x-ms-wma', [[0..8192, 'Windows Media Audio']]],
2404
+ ['audio/x-pn-realaudio', [[0, ".ra\375"]]],
2405
+ ['chemical/x-cdx', [[0, 'VjCD0100']]],
2406
+ ['font/woff', [[0, 'wOFF']]],
2407
+ ['font/woff2', [[0, 'wOF2']]],
2408
+ ['image/aces', [[0, "v/1\001\002\000\000\000"], [0, "v/1\001\002\004\000\000"]]],
2409
+ ['image/cgm', [[0, 'BEGMF']]],
2410
+ ['image/emf', [[0, "\001\000\000\000", [[40, ' EMF']]]]],
2411
+ ['image/fits', [[0, 'SIMPLE = ']]],
2412
+ ['image/heic', [[4, 'ftypheic'], [4, 'ftypheix']]],
2413
+ ['image/heic-sequence', [[4, 'ftyphevc'], [4, 'ftyphevx']]],
2414
+ ['image/heif', [[4, 'ftypmif1']]],
2415
+ ['image/heif-sequence', [[4, 'ftypmsf1']]],
2416
+ ['image/icns', [[0, 'icns']]],
2417
+ ['image/jp2', [[0, "\000\000\000\fjP \r\n\207\n", [[20, 'jp2 ']]]]],
2418
+ ['image/jpm', [[0, "\000\000\000\fjP \r\n\207\n", [[20, 'jpm ']]]]],
2419
+ ['image/jpx', [[0, "\000\000\000\fjP \r\n\207\n", [[20, 'jpx ']]]]],
2420
+ ['image/nitf', [[0, 'NITF01.10'], [0, 'NITF02.000'], [0, 'NITF02.100']]],
2421
+ ['image/vnd.djvu', [[0, 'AT&TFORM']]],
2422
+ ['image/vnd.dwg', [[0, 'MC0.0'], [0, 'AC1.2'], [0, 'AC1.40'], [0, 'AC1.50'], [0, 'AC2.10'], [0, 'AC2.21'], [0, 'AC2.22']]],
2423
+ ['image/vnd.dxb', [[0, "AutoCAD DXB 1.0\r\n0x1A00"]]],
2424
+ ['image/vnd.dxf;format=ascii', [[0..3, "0\\r\\nSECTION\\r\\n", [[12..18, "2\\r\\nHEADER\\r\\n"]]]]],
2425
+ ['image/vnd.dxf;format=binary', [[0, "AutoCAD Binary DXF\r\n0x1A00"]]],
2426
+ ['image/vnd.microsoft.icon', [[0, "BA(\000\000\000.\000\000\000\000\000\000\000"], [0, "\000\000\001\000"]]],
2427
+ ['image/vnd.ms-modi', [[0, "EP*\000"]]],
2428
+ ['image/vnd.zbrush.dcx', [[0, "\261h\336:"]]],
2429
+ ['image/wmf', [[0, "\327\315\306\232\000\000"], [0, "\001\000\t\000\000\003"]]],
2430
+ ['image/x-bpg', [[0, "BPG\373"]]],
2431
+ ['image/x-dpx', [[0, 'SDPX'], [0, 'XPDS']]],
2432
+ ['image/x-freehand', [[0, 'AGD2'], [0, 'AGD3'], [0, 'AGD4'], [0..24, 'FreeHand10'], [0..24, 'FreeHand11'], [0..24, 'FreeHand12']]],
2433
+ ['image/x-jbig2', [[0, "\227JB2\r\n\032\n"]]],
2434
+ ['image/x-jp2-container', [[0, "\000\000\000\fjP \r\n\207\n"]]],
2435
+ ['image/x-niff', [[0, 'IIN1']]],
2436
+ ['image/x-pict', [[522, "\000\021\002\377\f\000"]]],
2437
+ ['image/x-portable-bitmap', [[0, 'P1'], [0, 'P4']]],
2438
+ ['image/x-portable-graymap', [[0, 'P2'], [0, 'P5'], [0, "P5\n"]]],
2439
+ ['image/x-portable-pixmap', [[0, 'P3'], [0, 'P6'], [0, 'P7'], [0, "P4\n"]]],
2440
+ ['image/x-raw-olympus', [[0, 'IIRO']]],
2441
+ ['image/x-rgb', [[0, "\001\332\001\001\000\003"]]],
2442
+ ['image/x-xbitmap', [[0, '/* XPM']]],
2443
+ ['image/x-xcf', [[0, 'gimp xcf ']]],
2444
+ ['message/news', [[0, 'Article']]],
2445
+ ['message/rfc822', [[0, 'Relay-Version:'], [0, '#! rnews'], [0, 'N#! rnews'], [0, 'Forward to'], [0, 'Pipe to'], [0, 'Return-Path:'], [0, 'Message-ID:'], [0, 'X-Mailer:'], [0, 'X-Notes-Item:', [[0..8192, 'Message-ID:']]], [0, nil, [[0, 'Date:'], [0, 'Delivered-To:'], [0, 'From:'], [0, 'Message-ID:'], [0, 'MIME-Version:'], [0, 'Received:'], [0, 'Relay-Version:'], [0, 'Return-Path:'], [0, 'Sent:'], [0, 'Status:'], [0, 'User-Agent:'], [0, 'X-Mailer:'], [0, 'X-Originating-IP:'], [0..1024, "\nDate:"], [0..1024, "\nDelivered-To:"], [0..1024, "\nFrom:"], [0..1024, "\nMIME-Version:"], [0..1024, "\nReceived:"], [0..1024, "\nRelay-Version:"], [0..1024, "\nReturn-Path:"], [0..1024, "\nSent:"], [0..1024, "\nStatus:"], [0..1024, "\nSubject:"], [0..1024, "\nTo:"], [0..1024, "\nUser-Agent:"], [0..1024, "\nX-Mailer:"], [0..1024, "\nX-Originating-IP:"]]], [0, '(X|DKIM|ARC)-', [[0..8192, "\nDate:"], [0..8192, "\nDelivered-To:"], [0..8192, "\nFrom:"], [0..8192, "\nMessage-ID:"], [0..8192, "\nMIME-Version:"], [0..8192, "\nReceived:"], [0..8192, "\nRelay-Version:"], [0..8192, "\nReturn-Path:"], [0..8192, "\nStatus:"], [0..8192, "\nUser-Agent:"], [0..8192, "\nX-Mailer:"], [0..8192, "\nX-Originating-IP:"]]]]],
2446
+ ['model/vnd.dwf', [[0, '(DWF V', [[8, '.', [[11, ')']]]]]]],
2447
+ ['multipart/appledouble', [[0, "\000\005\026\a"]]],
2448
+ ['text/calendar', [[0, 'BEGIN:VCALENDAR', [[15..30, 'VERSION:2.0']]]]],
2449
+ ['text/troff', [[0, ".\\\""], [0, "'\\\""], [0, "'.\\\""], [0, "\\\""], [0, "'''"]]],
2450
+ ['text/vnd.graphviz', [[0, "(?s)^\\\\s*(?:strict\\\\s+)?(?:di)?graph\\\\b"], [0, "(?s)^(?:\\\\s*//[^\\\\n]*\\n){1,10}\\\\s*(?:strict\\\\s+)?(?:di)?graph\\\\b"], [0, "(?s)^\\\\s*/\\\\*.{0,1024}?\\\\*/\\\\s*(?:strict\\\\s+)?(?:di)?graph\\\\b"]]],
2451
+ ['text/vnd.iptc.anpa', [[0, "\026\026\001"]]],
2452
+ ['text/x-awk', [[0, '#!/bin/gawk'], [0, '#! /bin/gawk'], [0, '#!/usr/bin/gawk'], [0, '#! /usr/bin/gawk'], [0, '#!/usr/local/bin/gawk'], [0, '#! /usr/local/bin/gawk'], [0, '#!/bin/awk'], [0, '#! /bin/awk'], [0, '#!/usr/bin/awk'], [0, '#! /usr/bin/awk']]],
2453
+ ['text/x-diff', [[0, 'diff '], [0, '*** '], [0, 'Only in '], [0, 'Common subdirectories: '], [0, 'Index:']]],
2454
+ ['text/x-jsp', [[0, '<%@'], [0, '<%--']]],
2455
+ ['text/x-matlab', [[0, 'function [']]],
2456
+ ['text/x-perl', [[0, "eval \"exec /usr/local/bin/perl"], [0, '#!/bin/perl'], [0, '#!/bin/env perl'], [0, '#!/usr/bin/perl'], [0, '#!/usr/local/bin/perl']]],
2457
+ ['text/x-php', [[0, '<?php']]],
2458
+ ['text/x-python', [[0, '#!/bin/python'], [0, '#! /bin/python'], [0, "eval \"exec /bin/python"], [0, '#!/usr/bin/python'], [0, '#! /usr/bin/python'], [0, "eval \"exec /usr/bin/python"], [0, '#!/usr/local/bin/python'], [0, '#! /usr/local/bin/python'], [0, "eval \"exec /usr/local/bin/python"], [1, '/bin/env python']]],
2459
+ ['text/x-vcalendar', [[0, 'BEGIN:VCALENDAR', [[15..30, 'VERSION:1.0']]]]],
2460
+ ['text/x-vcard', [[0, 'BEGIN:VCARD']]],
2461
+ ['video/mj2', [[0, "\000\000\000\fjP \r\n\207\n", [[20, 'mjp2']]]]],
2462
+ ['video/x-jng', [[0, "\213JNG"]]],
2463
+ ['video/x-mng', [[0, "\212MNG"]]],
2464
+ ['video/x-ms-asf', [[0, "0&\262u"]]],
2465
+ ['video/x-sgi-movie', [[0, "MOVI\000"], [0, "MOVI\001"], [0, "MOVI\002"], [0, "MOVI\376"], [0, "MOVI\377"]]],
2466
+ ['application/gzip', [[0, "\037\213"], [0, "\037\213"]]],
2467
+ ['application/zlib', [[0, "x\001"], [0, 'x^'], [0, "x\234"], [0, "x\332"]]],
2468
+ ['application/java-vm', [[0, "\312\376\272\276"]]],
2469
+ ['application/vnd.wordperfect', [[0, "\377WPC"]]],
2470
+ ['application/x-bzip', [[0, 'BZh']]],
2471
+ ['application/x-bzip2', [[0, 'BZh91']]],
2472
+ ['application/x-font-adobe-metric', [[0, 'StartFontMetrics']]],
2473
+ ['application/x-font-printer-metric', [[0, "\000\001", [[4, "\000\000Copyr"]]]]],
2474
+ ['application/x-font-ttf', [[0, "\000\001\000\000"]]],
2475
+ ['application/x-matroska', [[0, "\032E\337\243"]]],
2476
+ ['application/x-mysql-misam-compressed-index', [[0, "\376\376\006"], [0, "\376\376\a"]]],
2477
+ ['application/x-mysql-misam-index', [[0, "\376\376\003"], [0, "\376\376\005"]]],
2478
+ ['application/x-mysql-table-definition', [[0, "\376\001\a"], [0, "\376\001\b"], [0, "\376\001\t"], [0, "\376\001\n"], [0, "\376\001\v"], [0, "\376\001\f"]]],
2479
+ ['application/x-sas-data', [[84, 'SAS FILE']]],
2480
+ ['application/x-sas-data-v6', [[0, 'SAS 6.'], [0, 'SAS 7.'], [0, 'SAS 8.0'], [0, 'SAS 9.0']]],
2481
+ ['application/x-sas-xport', [[0, 'HEADER RECORD*******LIBRARY HEADER RECORD!!!!!!!']]],
2482
+ ['application/x-stata-dta', [[0, '<stata_dta>']]],
2483
+ ['application/x-tar', [[257, "ustar\000"]]],
2484
+ ['application/x-tika-msoffice', [[0..8, "\320\317\021\340\241\261\032\341"]]],
2485
+ ['application/x-x509-key;format=der', []],
2486
+ ['application/xhtml+xml', [[0..8192, '<html xmlns=']]],
2487
+ ['audio/ac3', [[0, "\vw"]]],
2488
+ ['audio/amr', [[0, "#!AMR\n"], [0, '#!AMR']]],
2489
+ ['image/vnd.zbrush.pcx', [[0, "\n", [[1, "\000"], [1, "\002"], [1, "\003"], [1, "\004"], [1, "\005"]]]]],
2490
+ ['message/rfc822', [[0..1000, "\nMessage-ID:"]]],
2491
+ ['text/html', [[0..64, '<!DOCTYPE HTML'], [0..64, '<!DOCTYPE html'], [0..64, '<!doctype HTML'], [0..64, '<!doctype html'], [0..64, '<HEAD'], [0..64, '<head'], [0..64, '<TITLE'], [0..64, '<title'], [0..64, '<HTML'], [0, '<BODY'], [0, '<body'], [0, '<DIV'], [0, '<div'], [0, '<TITLE'], [0, '<title'], [0, '<h1'], [0, '<H1'], [0..128, '<html']]],
2492
+ ['text/vtt', [[0, "WEBVTT\r"], [0, "WEBVTT\n"], [0, '0xfeff', [[2, "WEBVTT\r"]]], [0, '0xfeff', [[2, "WEBVTT\n"]]], [0, "WEBVTT FILE\r"], [0, "WEBVTT FILE\n"]]],
2493
+ ['text/x-matlab', [[0, "function [a-zA-Z][A-Za-z0-9_]{0,62}\\\\s*="]]],
2494
+ ['text/x-matlab', [[0, "function [a-zA-Z][A-Za-z0-9_]{0,62}[\\\\r\\\\n]"]]],
2495
+ ['application/inf', [[0, '[version]'], [0, '[strings]']]],
2496
+ ['application/x-bibtex-text-file', [[0, '%', [[2..128, "\n@article{"], [2..128, "\n@book{"], [2..128, "\n@inbook{"], [2..128, "\n@incollection{"], [2..128, "\n@inproceedings{"], [2..128, "\n@manual{"], [2..128, "\n@misc{"], [2..128, "\n@preamble{"], [2..128, "\n@phdthesis{"], [2..128, "\n@string{"], [2..128, "\n@techreport{"], [2..128, "\n@unpublished{"]]]]],
2497
+ ['application/xml', [[0, '<!--']]],
2498
+ ['text/vtt', [[0, 'WEBVTT ', [[10..50, "\n\n"]]], [0, 'WEBVTT ', [[10..50, "\r\r"]]], [0, 'WEBVTT ', [[10..50, "\r\n\r\n"]]]]],
2499
+ ['text/x-chdr', [[0, '#ifndef ']]],
2500
+ ['text/x-csrc', [[0, '#include ']]],
2501
+ ['image/x-jp2-codestream', [[0, "\377O\377Q"]]],
2502
+ ['text/x-matlab', [[0, '%', [[2..120, "\n%"]]], [0, '%', [[2..120, "\r%"]]], [0, '%%']]],
2503
+ ['application/pdf', [[1..512, '%PDF-1.'], [1..512, '%PDF-2.']]],
2504
+ ['audio/basic', [[0, '.snd', [[12, "\000\000\000\001"], [12, "\000\000\000\002"], [12, "\000\000\000\003"], [12, "\000\000\000\004"], [12, "\000\000\000\005"], [12, "\000\000\000\006"], [12, "\000\000\000\a"]]], [0, ".snd\000\000\000"]]],
2505
+ ['audio/midi', [[0, 'MThd']]],
2506
+ ['audio/vnd.wave', [[0, 'RIFF', [[8, 'WAVE']]]]],
2507
+ ['audio/x-adpcm', [[0, '.snd', [[12, "\000\000\000\027"]]]]],
2508
+ ['audio/x-aiff', [[0, 'FORM', [[8, 'AIFF']]], [0, 'FORM', [[8, 'AIFC']]], [0, 'FORM', [[8, '8SVX']]], [0, "FORM\000"]]],
2509
+ ['audio/x-dec-adpcm', [[0, "\000ds.", [[12, "\000\000\000\027"]]]]],
2510
+ ['audio/x-dec-basic', [[0, "\000ds.", [[12, "\000\000\000\001"], [12, "\000\000\000\002"], [12, "\000\000\000\003"], [12, "\000\000\000\004"], [12, "\000\000\000\005"], [12, "\000\000\000\006"], [12, "\000\000\000\a"]]]]],
2511
+ ['text/html', [[128..8192, '<html']]],
2512
+ ['text/plain', [[0, 'This is TeX,'], [0, 'This is METAFONT,'], [0, '/*'], [0, '//'], [0, ';;'], [0, "\376\377"], [0, "\377\376"], [0, "\357\273\277"]]],
2513
+ ['text/x-makefile', [[0, '# Makefile.in generated by'], [0, '#!make'], [0, '#!/usr/bin/make'], [0, '#!/usr/local/bin/make'], [0, '#!/usr/bin/env make']]],
2514
+ ]
2515
+ end