| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package Plack::MIME; |
|
2
|
11
|
|
|
11
|
|
9389
|
use strict; |
|
|
11
|
|
|
|
|
27
|
|
|
|
11
|
|
|
|
|
20493
|
|
|
3
|
|
|
|
|
|
|
|
|
4
|
|
|
|
|
|
|
# stolen from rack.mime.rb |
|
5
|
|
|
|
|
|
|
our $MIME_TYPES = { |
|
6
|
|
|
|
|
|
|
".123" => "application/vnd.lotus-1-2-3", |
|
7
|
|
|
|
|
|
|
".3dml" => "text/vnd.in3d.3dml", |
|
8
|
|
|
|
|
|
|
".3g2" => "video/3gpp2", |
|
9
|
|
|
|
|
|
|
".3gp" => "video/3gpp", |
|
10
|
|
|
|
|
|
|
".a" => "application/octet-stream", |
|
11
|
|
|
|
|
|
|
".acc" => "application/vnd.americandynamics.acc", |
|
12
|
|
|
|
|
|
|
".ace" => "application/x-ace-compressed", |
|
13
|
|
|
|
|
|
|
".acu" => "application/vnd.acucobol", |
|
14
|
|
|
|
|
|
|
".aep" => "application/vnd.audiograph", |
|
15
|
|
|
|
|
|
|
".afp" => "application/vnd.ibm.modcap", |
|
16
|
|
|
|
|
|
|
".ai" => "application/postscript", |
|
17
|
|
|
|
|
|
|
".aif" => "audio/x-aiff", |
|
18
|
|
|
|
|
|
|
".aiff" => "audio/x-aiff", |
|
19
|
|
|
|
|
|
|
".ami" => "application/vnd.amiga.ami", |
|
20
|
|
|
|
|
|
|
".apng" => "image/apng", |
|
21
|
|
|
|
|
|
|
".appcache" => "text/cache-manifest", |
|
22
|
|
|
|
|
|
|
".apr" => "application/vnd.lotus-approach", |
|
23
|
|
|
|
|
|
|
".asc" => "application/pgp-signature", |
|
24
|
|
|
|
|
|
|
".asf" => "video/x-ms-asf", |
|
25
|
|
|
|
|
|
|
".asm" => "text/x-asm", |
|
26
|
|
|
|
|
|
|
".aso" => "application/vnd.accpac.simply.aso", |
|
27
|
|
|
|
|
|
|
".asx" => "video/x-ms-asf", |
|
28
|
|
|
|
|
|
|
".atc" => "application/vnd.acucorp", |
|
29
|
|
|
|
|
|
|
".atom" => "application/atom+xml", |
|
30
|
|
|
|
|
|
|
".atomcat" => "application/atomcat+xml", |
|
31
|
|
|
|
|
|
|
".atomsvc" => "application/atomsvc+xml", |
|
32
|
|
|
|
|
|
|
".atx" => "application/vnd.antix.game-component", |
|
33
|
|
|
|
|
|
|
".au" => "audio/basic", |
|
34
|
|
|
|
|
|
|
".avi" => "video/x-msvideo", |
|
35
|
|
|
|
|
|
|
".avif" => "image/avif", |
|
36
|
|
|
|
|
|
|
".bat" => "application/x-msdownload", |
|
37
|
|
|
|
|
|
|
".bcpio" => "application/x-bcpio", |
|
38
|
|
|
|
|
|
|
".bdm" => "application/vnd.syncml.dm+wbxml", |
|
39
|
|
|
|
|
|
|
".bh2" => "application/vnd.fujitsu.oasysprs", |
|
40
|
|
|
|
|
|
|
".bin" => "application/octet-stream", |
|
41
|
|
|
|
|
|
|
".bmi" => "application/vnd.bmi", |
|
42
|
|
|
|
|
|
|
".bmp" => "image/bmp", |
|
43
|
|
|
|
|
|
|
".box" => "application/vnd.previewsystems.box", |
|
44
|
|
|
|
|
|
|
".btif" => "image/prs.btif", |
|
45
|
|
|
|
|
|
|
".bz" => "application/x-bzip", |
|
46
|
|
|
|
|
|
|
".bz2" => "application/x-bzip2", |
|
47
|
|
|
|
|
|
|
".c" => "text/x-c", |
|
48
|
|
|
|
|
|
|
".c4g" => "application/vnd.clonk.c4group", |
|
49
|
|
|
|
|
|
|
".cab" => "application/vnd.ms-cab-compressed", |
|
50
|
|
|
|
|
|
|
".cc" => "text/x-c", |
|
51
|
|
|
|
|
|
|
".ccxml" => "application/ccxml+xml", |
|
52
|
|
|
|
|
|
|
".cdbcmsg" => "application/vnd.contact.cmsg", |
|
53
|
|
|
|
|
|
|
".cdkey" => "application/vnd.mediastation.cdkey", |
|
54
|
|
|
|
|
|
|
".cdx" => "chemical/x-cdx", |
|
55
|
|
|
|
|
|
|
".cdxml" => "application/vnd.chemdraw+xml", |
|
56
|
|
|
|
|
|
|
".cdy" => "application/vnd.cinderella", |
|
57
|
|
|
|
|
|
|
".cer" => "application/pkix-cert", |
|
58
|
|
|
|
|
|
|
".cgm" => "image/cgm", |
|
59
|
|
|
|
|
|
|
".chat" => "application/x-chat", |
|
60
|
|
|
|
|
|
|
".chm" => "application/vnd.ms-htmlhelp", |
|
61
|
|
|
|
|
|
|
".chrt" => "application/vnd.kde.kchart", |
|
62
|
|
|
|
|
|
|
".cif" => "chemical/x-cif", |
|
63
|
|
|
|
|
|
|
".cii" => "application/vnd.anser-web-certificate-issue-initiation", |
|
64
|
|
|
|
|
|
|
".cil" => "application/vnd.ms-artgalry", |
|
65
|
|
|
|
|
|
|
".cla" => "application/vnd.claymore", |
|
66
|
|
|
|
|
|
|
".class" => "application/octet-stream", |
|
67
|
|
|
|
|
|
|
".clkk" => "application/vnd.crick.clicker.keyboard", |
|
68
|
|
|
|
|
|
|
".clkp" => "application/vnd.crick.clicker.palette", |
|
69
|
|
|
|
|
|
|
".clkt" => "application/vnd.crick.clicker.template", |
|
70
|
|
|
|
|
|
|
".clkw" => "application/vnd.crick.clicker.wordbank", |
|
71
|
|
|
|
|
|
|
".clkx" => "application/vnd.crick.clicker", |
|
72
|
|
|
|
|
|
|
".clp" => "application/x-msclip", |
|
73
|
|
|
|
|
|
|
".cmc" => "application/vnd.cosmocaller", |
|
74
|
|
|
|
|
|
|
".cmdf" => "chemical/x-cmdf", |
|
75
|
|
|
|
|
|
|
".cml" => "chemical/x-cml", |
|
76
|
|
|
|
|
|
|
".cmp" => "application/vnd.yellowriver-custom-menu", |
|
77
|
|
|
|
|
|
|
".cmx" => "image/x-cmx", |
|
78
|
|
|
|
|
|
|
".com" => "application/x-msdownload", |
|
79
|
|
|
|
|
|
|
".conf" => "text/plain", |
|
80
|
|
|
|
|
|
|
".cpio" => "application/x-cpio", |
|
81
|
|
|
|
|
|
|
".cpp" => "text/x-c", |
|
82
|
|
|
|
|
|
|
".cpt" => "application/mac-compactpro", |
|
83
|
|
|
|
|
|
|
".crd" => "application/x-mscardfile", |
|
84
|
|
|
|
|
|
|
".crl" => "application/pkix-crl", |
|
85
|
|
|
|
|
|
|
".crt" => "application/x-x509-ca-cert", |
|
86
|
|
|
|
|
|
|
".csh" => "application/x-csh", |
|
87
|
|
|
|
|
|
|
".csml" => "chemical/x-csml", |
|
88
|
|
|
|
|
|
|
".csp" => "application/vnd.commonspace", |
|
89
|
|
|
|
|
|
|
".css" => "text/css", |
|
90
|
|
|
|
|
|
|
".csv" => "text/csv", |
|
91
|
|
|
|
|
|
|
".curl" => "application/vnd.curl", |
|
92
|
|
|
|
|
|
|
".cww" => "application/prs.cww", |
|
93
|
|
|
|
|
|
|
".cxx" => "text/x-c", |
|
94
|
|
|
|
|
|
|
".daf" => "application/vnd.mobius.daf", |
|
95
|
|
|
|
|
|
|
".davmount" => "application/davmount+xml", |
|
96
|
|
|
|
|
|
|
".dcr" => "application/x-director", |
|
97
|
|
|
|
|
|
|
".dd2" => "application/vnd.oma.dd2+xml", |
|
98
|
|
|
|
|
|
|
".ddd" => "application/vnd.fujixerox.ddd", |
|
99
|
|
|
|
|
|
|
".deb" => "application/x-debian-package", |
|
100
|
|
|
|
|
|
|
".der" => "application/x-x509-ca-cert", |
|
101
|
|
|
|
|
|
|
".dfac" => "application/vnd.dreamfactory", |
|
102
|
|
|
|
|
|
|
".diff" => "text/x-diff", |
|
103
|
|
|
|
|
|
|
".dis" => "application/vnd.mobius.dis", |
|
104
|
|
|
|
|
|
|
".djv" => "image/vnd.djvu", |
|
105
|
|
|
|
|
|
|
".djvu" => "image/vnd.djvu", |
|
106
|
|
|
|
|
|
|
".dll" => "application/x-msdownload", |
|
107
|
|
|
|
|
|
|
".dmg" => "application/octet-stream", |
|
108
|
|
|
|
|
|
|
".dna" => "application/vnd.dna", |
|
109
|
|
|
|
|
|
|
".doc" => "application/msword", |
|
110
|
|
|
|
|
|
|
".docm" => "application/vnd.ms-word.document.macroEnabled.12", |
|
111
|
|
|
|
|
|
|
".docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document", |
|
112
|
|
|
|
|
|
|
".dot" => "application/msword", |
|
113
|
|
|
|
|
|
|
".dotm" => "application/vnd.ms-word.template.macroEnabled.12", |
|
114
|
|
|
|
|
|
|
".dotx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template", |
|
115
|
|
|
|
|
|
|
".dp" => "application/vnd.osgi.dp", |
|
116
|
|
|
|
|
|
|
".dpg" => "application/vnd.dpgraph", |
|
117
|
|
|
|
|
|
|
".dsc" => "text/prs.lines.tag", |
|
118
|
|
|
|
|
|
|
".dtd" => "application/xml-dtd", |
|
119
|
|
|
|
|
|
|
".dts" => "audio/vnd.dts", |
|
120
|
|
|
|
|
|
|
".dtshd" => "audio/vnd.dts.hd", |
|
121
|
|
|
|
|
|
|
".dv" => "video/x-dv", |
|
122
|
|
|
|
|
|
|
".dvi" => "application/x-dvi", |
|
123
|
|
|
|
|
|
|
".dwf" => "model/vnd.dwf", |
|
124
|
|
|
|
|
|
|
".dwg" => "image/vnd.dwg", |
|
125
|
|
|
|
|
|
|
".dxf" => "image/vnd.dxf", |
|
126
|
|
|
|
|
|
|
".dxp" => "application/vnd.spotfire.dxp", |
|
127
|
|
|
|
|
|
|
".ear" => "application/java-archive", |
|
128
|
|
|
|
|
|
|
".ecelp4800" => "audio/vnd.nuera.ecelp4800", |
|
129
|
|
|
|
|
|
|
".ecelp7470" => "audio/vnd.nuera.ecelp7470", |
|
130
|
|
|
|
|
|
|
".ecelp9600" => "audio/vnd.nuera.ecelp9600", |
|
131
|
|
|
|
|
|
|
".ecma" => "application/ecmascript", |
|
132
|
|
|
|
|
|
|
".edm" => "application/vnd.novadigm.edm", |
|
133
|
|
|
|
|
|
|
".edx" => "application/vnd.novadigm.edx", |
|
134
|
|
|
|
|
|
|
".efif" => "application/vnd.picsel", |
|
135
|
|
|
|
|
|
|
".ei6" => "application/vnd.pg.osasli", |
|
136
|
|
|
|
|
|
|
".eml" => "message/rfc822", |
|
137
|
|
|
|
|
|
|
".eol" => "audio/vnd.digital-winds", |
|
138
|
|
|
|
|
|
|
".eot" => "application/vnd.ms-fontobject", |
|
139
|
|
|
|
|
|
|
".eps" => "application/postscript", |
|
140
|
|
|
|
|
|
|
".es3" => "application/vnd.eszigno3+xml", |
|
141
|
|
|
|
|
|
|
".esf" => "application/vnd.epson.esf", |
|
142
|
|
|
|
|
|
|
".etx" => "text/x-setext", |
|
143
|
|
|
|
|
|
|
".exe" => "application/x-msdownload", |
|
144
|
|
|
|
|
|
|
".ext" => "application/vnd.novadigm.ext", |
|
145
|
|
|
|
|
|
|
".ez" => "application/andrew-inset", |
|
146
|
|
|
|
|
|
|
".ez2" => "application/vnd.ezpix-album", |
|
147
|
|
|
|
|
|
|
".ez3" => "application/vnd.ezpix-package", |
|
148
|
|
|
|
|
|
|
".f" => "text/x-fortran", |
|
149
|
|
|
|
|
|
|
".f77" => "text/x-fortran", |
|
150
|
|
|
|
|
|
|
".f90" => "text/x-fortran", |
|
151
|
|
|
|
|
|
|
".fbs" => "image/vnd.fastbidsheet", |
|
152
|
|
|
|
|
|
|
".fdf" => "application/vnd.fdf", |
|
153
|
|
|
|
|
|
|
".fe_launch" => "application/vnd.denovo.fcselayout-link", |
|
154
|
|
|
|
|
|
|
".fg5" => "application/vnd.fujitsu.oasysgp", |
|
155
|
|
|
|
|
|
|
".fli" => "video/x-fli", |
|
156
|
|
|
|
|
|
|
".flif" => "image/flif", |
|
157
|
|
|
|
|
|
|
".flo" => "application/vnd.micrografx.flo", |
|
158
|
|
|
|
|
|
|
".flv" => "video/x-flv", |
|
159
|
|
|
|
|
|
|
".flw" => "application/vnd.kde.kivio", |
|
160
|
|
|
|
|
|
|
".flx" => "text/vnd.fmi.flexstor", |
|
161
|
|
|
|
|
|
|
".fly" => "text/vnd.fly", |
|
162
|
|
|
|
|
|
|
".fm" => "application/vnd.framemaker", |
|
163
|
|
|
|
|
|
|
".fnc" => "application/vnd.frogans.fnc", |
|
164
|
|
|
|
|
|
|
".for" => "text/x-fortran", |
|
165
|
|
|
|
|
|
|
".fpx" => "image/vnd.fpx", |
|
166
|
|
|
|
|
|
|
".fsc" => "application/vnd.fsc.weblaunch", |
|
167
|
|
|
|
|
|
|
".fst" => "image/vnd.fst", |
|
168
|
|
|
|
|
|
|
".ftc" => "application/vnd.fluxtime.clip", |
|
169
|
|
|
|
|
|
|
".fti" => "application/vnd.anser-web-funds-transfer-initiation", |
|
170
|
|
|
|
|
|
|
".fvt" => "video/vnd.fvt", |
|
171
|
|
|
|
|
|
|
".fzs" => "application/vnd.fuzzysheet", |
|
172
|
|
|
|
|
|
|
".g3" => "image/g3fax", |
|
173
|
|
|
|
|
|
|
".gac" => "application/vnd.groove-account", |
|
174
|
|
|
|
|
|
|
".gdl" => "model/vnd.gdl", |
|
175
|
|
|
|
|
|
|
".gem" => "application/octet-stream", |
|
176
|
|
|
|
|
|
|
".gemspec" => "text/x-script.ruby", |
|
177
|
|
|
|
|
|
|
".ghf" => "application/vnd.groove-help", |
|
178
|
|
|
|
|
|
|
".gif" => "image/gif", |
|
179
|
|
|
|
|
|
|
".gim" => "application/vnd.groove-identity-message", |
|
180
|
|
|
|
|
|
|
".gmx" => "application/vnd.gmx", |
|
181
|
|
|
|
|
|
|
".gph" => "application/vnd.flographit", |
|
182
|
|
|
|
|
|
|
".gqf" => "application/vnd.grafeq", |
|
183
|
|
|
|
|
|
|
".gram" => "application/srgs", |
|
184
|
|
|
|
|
|
|
".grv" => "application/vnd.groove-injector", |
|
185
|
|
|
|
|
|
|
".grxml" => "application/srgs+xml", |
|
186
|
|
|
|
|
|
|
".gtar" => "application/x-gtar", |
|
187
|
|
|
|
|
|
|
".gtm" => "application/vnd.groove-tool-message", |
|
188
|
|
|
|
|
|
|
".gtw" => "model/vnd.gtw", |
|
189
|
|
|
|
|
|
|
".gv" => "text/vnd.graphviz", |
|
190
|
|
|
|
|
|
|
".gz" => "application/x-gzip", |
|
191
|
|
|
|
|
|
|
".h" => "text/x-c", |
|
192
|
|
|
|
|
|
|
".h261" => "video/h261", |
|
193
|
|
|
|
|
|
|
".h263" => "video/h263", |
|
194
|
|
|
|
|
|
|
".h264" => "video/h264", |
|
195
|
|
|
|
|
|
|
".hbci" => "application/vnd.hbci", |
|
196
|
|
|
|
|
|
|
".hdf" => "application/x-hdf", |
|
197
|
|
|
|
|
|
|
".heic" => "image/heic", |
|
198
|
|
|
|
|
|
|
".heics" => "image/heic-sequence", |
|
199
|
|
|
|
|
|
|
".heif" => "image/heif", |
|
200
|
|
|
|
|
|
|
".heifs" => "image/heif-sequence", |
|
201
|
|
|
|
|
|
|
".hh" => "text/x-c", |
|
202
|
|
|
|
|
|
|
".hlp" => "application/winhlp", |
|
203
|
|
|
|
|
|
|
".hpgl" => "application/vnd.hp-hpgl", |
|
204
|
|
|
|
|
|
|
".hpid" => "application/vnd.hp-hpid", |
|
205
|
|
|
|
|
|
|
".hps" => "application/vnd.hp-hps", |
|
206
|
|
|
|
|
|
|
".hqx" => "application/mac-binhex40", |
|
207
|
|
|
|
|
|
|
".htc" => "text/x-component", |
|
208
|
|
|
|
|
|
|
".htke" => "application/vnd.kenameaapp", |
|
209
|
|
|
|
|
|
|
".htm" => "text/html", |
|
210
|
|
|
|
|
|
|
".html" => "text/html", |
|
211
|
|
|
|
|
|
|
".hvd" => "application/vnd.yamaha.hv-dic", |
|
212
|
|
|
|
|
|
|
".hvp" => "application/vnd.yamaha.hv-voice", |
|
213
|
|
|
|
|
|
|
".hvs" => "application/vnd.yamaha.hv-script", |
|
214
|
|
|
|
|
|
|
".icc" => "application/vnd.iccprofile", |
|
215
|
|
|
|
|
|
|
".ice" => "x-conference/x-cooltalk", |
|
216
|
|
|
|
|
|
|
".ico" => "image/vnd.microsoft.icon", |
|
217
|
|
|
|
|
|
|
".ics" => "text/calendar", |
|
218
|
|
|
|
|
|
|
".ief" => "image/ief", |
|
219
|
|
|
|
|
|
|
".ifb" => "text/calendar", |
|
220
|
|
|
|
|
|
|
".ifm" => "application/vnd.shana.informed.formdata", |
|
221
|
|
|
|
|
|
|
".igl" => "application/vnd.igloader", |
|
222
|
|
|
|
|
|
|
".igs" => "model/iges", |
|
223
|
|
|
|
|
|
|
".igx" => "application/vnd.micrografx.igx", |
|
224
|
|
|
|
|
|
|
".iif" => "application/vnd.shana.informed.interchange", |
|
225
|
|
|
|
|
|
|
".imp" => "application/vnd.accpac.simply.imp", |
|
226
|
|
|
|
|
|
|
".ims" => "application/vnd.ms-ims", |
|
227
|
|
|
|
|
|
|
".ipk" => "application/vnd.shana.informed.package", |
|
228
|
|
|
|
|
|
|
".irm" => "application/vnd.ibm.rights-management", |
|
229
|
|
|
|
|
|
|
".irp" => "application/vnd.irepository.package+xml", |
|
230
|
|
|
|
|
|
|
".iso" => "application/octet-stream", |
|
231
|
|
|
|
|
|
|
".itp" => "application/vnd.shana.informed.formtemplate", |
|
232
|
|
|
|
|
|
|
".ivp" => "application/vnd.immervision-ivp", |
|
233
|
|
|
|
|
|
|
".ivu" => "application/vnd.immervision-ivu", |
|
234
|
|
|
|
|
|
|
".jad" => "text/vnd.sun.j2me.app-descriptor", |
|
235
|
|
|
|
|
|
|
".jam" => "application/vnd.jam", |
|
236
|
|
|
|
|
|
|
".jar" => "application/java-archive", |
|
237
|
|
|
|
|
|
|
".java" => "text/x-java-source", |
|
238
|
|
|
|
|
|
|
".jisp" => "application/vnd.jisp", |
|
239
|
|
|
|
|
|
|
".jlt" => "application/vnd.hp-jlyt", |
|
240
|
|
|
|
|
|
|
".jnlp" => "application/x-java-jnlp-file", |
|
241
|
|
|
|
|
|
|
".joda" => "application/vnd.joost.joda-archive", |
|
242
|
|
|
|
|
|
|
".jp2" => "image/jp2", |
|
243
|
|
|
|
|
|
|
".jpeg" => "image/jpeg", |
|
244
|
|
|
|
|
|
|
".jpg" => "image/jpeg", |
|
245
|
|
|
|
|
|
|
".jpgv" => "video/jpeg", |
|
246
|
|
|
|
|
|
|
".jpm" => "video/jpm", |
|
247
|
|
|
|
|
|
|
".js" => "text/javascript", |
|
248
|
|
|
|
|
|
|
".json" => "application/json", |
|
249
|
|
|
|
|
|
|
".karbon" => "application/vnd.kde.karbon", |
|
250
|
|
|
|
|
|
|
".kfo" => "application/vnd.kde.kformula", |
|
251
|
|
|
|
|
|
|
".kia" => "application/vnd.kidspiration", |
|
252
|
|
|
|
|
|
|
".kml" => "application/vnd.google-earth.kml+xml", |
|
253
|
|
|
|
|
|
|
".kmz" => "application/vnd.google-earth.kmz", |
|
254
|
|
|
|
|
|
|
".kne" => "application/vnd.kinar", |
|
255
|
|
|
|
|
|
|
".kon" => "application/vnd.kde.kontour", |
|
256
|
|
|
|
|
|
|
".kpr" => "application/vnd.kde.kpresenter", |
|
257
|
|
|
|
|
|
|
".ksp" => "application/vnd.kde.kspread", |
|
258
|
|
|
|
|
|
|
".ktz" => "application/vnd.kahootz", |
|
259
|
|
|
|
|
|
|
".kwd" => "application/vnd.kde.kword", |
|
260
|
|
|
|
|
|
|
".latex" => "application/x-latex", |
|
261
|
|
|
|
|
|
|
".lbd" => "application/vnd.llamagraphics.life-balance.desktop", |
|
262
|
|
|
|
|
|
|
".lbe" => "application/vnd.llamagraphics.life-balance.exchange+xml", |
|
263
|
|
|
|
|
|
|
".les" => "application/vnd.hhe.lesson-player", |
|
264
|
|
|
|
|
|
|
".link66" => "application/vnd.route66.link66+xml", |
|
265
|
|
|
|
|
|
|
".log" => "text/plain", |
|
266
|
|
|
|
|
|
|
".lostxml" => "application/lost+xml", |
|
267
|
|
|
|
|
|
|
".lrm" => "application/vnd.ms-lrm", |
|
268
|
|
|
|
|
|
|
".ltf" => "application/vnd.frogans.ltf", |
|
269
|
|
|
|
|
|
|
".lvp" => "audio/vnd.lucent.voice", |
|
270
|
|
|
|
|
|
|
".lwp" => "application/vnd.lotus-wordpro", |
|
271
|
|
|
|
|
|
|
".m3u" => "audio/x-mpegurl", |
|
272
|
|
|
|
|
|
|
".m3u8" => "application/x-mpegurl", |
|
273
|
|
|
|
|
|
|
".m4a" => "audio/mp4a-latm", |
|
274
|
|
|
|
|
|
|
".m4v" => "video/mp4", |
|
275
|
|
|
|
|
|
|
".ma" => "application/mathematica", |
|
276
|
|
|
|
|
|
|
".mag" => "application/vnd.ecowin.chart", |
|
277
|
|
|
|
|
|
|
".man" => "text/troff", |
|
278
|
|
|
|
|
|
|
".manifest" => "text/cache-manifest", |
|
279
|
|
|
|
|
|
|
".mathml" => "application/mathml+xml", |
|
280
|
|
|
|
|
|
|
".mbk" => "application/vnd.mobius.mbk", |
|
281
|
|
|
|
|
|
|
".mbox" => "application/mbox", |
|
282
|
|
|
|
|
|
|
".mc1" => "application/vnd.medcalcdata", |
|
283
|
|
|
|
|
|
|
".mcd" => "application/vnd.mcd", |
|
284
|
|
|
|
|
|
|
".mdb" => "application/x-msaccess", |
|
285
|
|
|
|
|
|
|
".mdi" => "image/vnd.ms-modi", |
|
286
|
|
|
|
|
|
|
".mdoc" => "text/troff", |
|
287
|
|
|
|
|
|
|
".me" => "text/troff", |
|
288
|
|
|
|
|
|
|
".mfm" => "application/vnd.mfmp", |
|
289
|
|
|
|
|
|
|
".mgz" => "application/vnd.proteus.magazine", |
|
290
|
|
|
|
|
|
|
".mid" => "audio/midi", |
|
291
|
|
|
|
|
|
|
".midi" => "audio/midi", |
|
292
|
|
|
|
|
|
|
".mif" => "application/vnd.mif", |
|
293
|
|
|
|
|
|
|
".mime" => "message/rfc822", |
|
294
|
|
|
|
|
|
|
".mj2" => "video/mj2", |
|
295
|
|
|
|
|
|
|
".mjs" => "text/javascript", |
|
296
|
|
|
|
|
|
|
".mlp" => "application/vnd.dolby.mlp", |
|
297
|
|
|
|
|
|
|
".mmd" => "application/vnd.chipnuts.karaoke-mmd", |
|
298
|
|
|
|
|
|
|
".mmf" => "application/vnd.smaf", |
|
299
|
|
|
|
|
|
|
".mml" => "application/mathml+xml", |
|
300
|
|
|
|
|
|
|
".mmr" => "image/vnd.fujixerox.edmics-mmr", |
|
301
|
|
|
|
|
|
|
".mng" => "video/x-mng", |
|
302
|
|
|
|
|
|
|
".mny" => "application/x-msmoney", |
|
303
|
|
|
|
|
|
|
".mov" => "video/quicktime", |
|
304
|
|
|
|
|
|
|
".movie" => "video/x-sgi-movie", |
|
305
|
|
|
|
|
|
|
".mp3" => "audio/mpeg", |
|
306
|
|
|
|
|
|
|
".mp4" => "video/mp4", |
|
307
|
|
|
|
|
|
|
".mp4a" => "audio/mp4", |
|
308
|
|
|
|
|
|
|
".mp4s" => "application/mp4", |
|
309
|
|
|
|
|
|
|
".mp4v" => "video/mp4", |
|
310
|
|
|
|
|
|
|
".mpc" => "application/vnd.mophun.certificate", |
|
311
|
|
|
|
|
|
|
".mpd" => "application/dash+xml", |
|
312
|
|
|
|
|
|
|
".mpeg" => "video/mpeg", |
|
313
|
|
|
|
|
|
|
".mpg" => "video/mpeg", |
|
314
|
|
|
|
|
|
|
".mpga" => "audio/mpeg", |
|
315
|
|
|
|
|
|
|
".mpkg" => "application/vnd.apple.installer+xml", |
|
316
|
|
|
|
|
|
|
".mpm" => "application/vnd.blueice.multipass", |
|
317
|
|
|
|
|
|
|
".mpn" => "application/vnd.mophun.application", |
|
318
|
|
|
|
|
|
|
".mpp" => "application/vnd.ms-project", |
|
319
|
|
|
|
|
|
|
".mpy" => "application/vnd.ibm.minipay", |
|
320
|
|
|
|
|
|
|
".mqy" => "application/vnd.mobius.mqy", |
|
321
|
|
|
|
|
|
|
".mrc" => "application/marc", |
|
322
|
|
|
|
|
|
|
".ms" => "text/troff", |
|
323
|
|
|
|
|
|
|
".mscml" => "application/mediaservercontrol+xml", |
|
324
|
|
|
|
|
|
|
".mseq" => "application/vnd.mseq", |
|
325
|
|
|
|
|
|
|
".msf" => "application/vnd.epson.msf", |
|
326
|
|
|
|
|
|
|
".msh" => "model/mesh", |
|
327
|
|
|
|
|
|
|
".msi" => "application/x-msdownload", |
|
328
|
|
|
|
|
|
|
".msl" => "application/vnd.mobius.msl", |
|
329
|
|
|
|
|
|
|
".msty" => "application/vnd.muvee.style", |
|
330
|
|
|
|
|
|
|
".mts" => "model/vnd.mts", |
|
331
|
|
|
|
|
|
|
".mus" => "application/vnd.musician", |
|
332
|
|
|
|
|
|
|
".mvb" => "application/x-msmediaview", |
|
333
|
|
|
|
|
|
|
".mwf" => "application/vnd.mfer", |
|
334
|
|
|
|
|
|
|
".mxf" => "application/mxf", |
|
335
|
|
|
|
|
|
|
".mxl" => "application/vnd.recordare.musicxml", |
|
336
|
|
|
|
|
|
|
".mxml" => "application/xv+xml", |
|
337
|
|
|
|
|
|
|
".mxs" => "application/vnd.triscape.mxs", |
|
338
|
|
|
|
|
|
|
".mxu" => "video/vnd.mpegurl", |
|
339
|
|
|
|
|
|
|
".n" => "application/vnd.nokia.n-gage.symbian.install", |
|
340
|
|
|
|
|
|
|
".nc" => "application/x-netcdf", |
|
341
|
|
|
|
|
|
|
".ngdat" => "application/vnd.nokia.n-gage.data", |
|
342
|
|
|
|
|
|
|
".nlu" => "application/vnd.neurolanguage.nlu", |
|
343
|
|
|
|
|
|
|
".nml" => "application/vnd.enliven", |
|
344
|
|
|
|
|
|
|
".nnd" => "application/vnd.noblenet-directory", |
|
345
|
|
|
|
|
|
|
".nns" => "application/vnd.noblenet-sealer", |
|
346
|
|
|
|
|
|
|
".nnw" => "application/vnd.noblenet-web", |
|
347
|
|
|
|
|
|
|
".npx" => "image/vnd.net-fpx", |
|
348
|
|
|
|
|
|
|
".nsf" => "application/vnd.lotus-notes", |
|
349
|
|
|
|
|
|
|
".oa2" => "application/vnd.fujitsu.oasys2", |
|
350
|
|
|
|
|
|
|
".oa3" => "application/vnd.fujitsu.oasys3", |
|
351
|
|
|
|
|
|
|
".oas" => "application/vnd.fujitsu.oasys", |
|
352
|
|
|
|
|
|
|
".obd" => "application/x-msbinder", |
|
353
|
|
|
|
|
|
|
".oda" => "application/oda", |
|
354
|
|
|
|
|
|
|
".odc" => "application/vnd.oasis.opendocument.chart", |
|
355
|
|
|
|
|
|
|
".odf" => "application/vnd.oasis.opendocument.formula", |
|
356
|
|
|
|
|
|
|
".odg" => "application/vnd.oasis.opendocument.graphics", |
|
357
|
|
|
|
|
|
|
".odi" => "application/vnd.oasis.opendocument.image", |
|
358
|
|
|
|
|
|
|
".odp" => "application/vnd.oasis.opendocument.presentation", |
|
359
|
|
|
|
|
|
|
".ods" => "application/vnd.oasis.opendocument.spreadsheet", |
|
360
|
|
|
|
|
|
|
".odt" => "application/vnd.oasis.opendocument.text", |
|
361
|
|
|
|
|
|
|
".oga" => "audio/ogg", |
|
362
|
|
|
|
|
|
|
".ogg" => "application/ogg", |
|
363
|
|
|
|
|
|
|
".ogv" => "video/ogg", |
|
364
|
|
|
|
|
|
|
".ogx" => "application/ogg", |
|
365
|
|
|
|
|
|
|
".org" => "application/vnd.lotus-organizer", |
|
366
|
|
|
|
|
|
|
".otc" => "application/vnd.oasis.opendocument.chart-template", |
|
367
|
|
|
|
|
|
|
".otf" => "font/otf", |
|
368
|
|
|
|
|
|
|
".otg" => "application/vnd.oasis.opendocument.graphics-template", |
|
369
|
|
|
|
|
|
|
".oth" => "application/vnd.oasis.opendocument.text-web", |
|
370
|
|
|
|
|
|
|
".oti" => "application/vnd.oasis.opendocument.image-template", |
|
371
|
|
|
|
|
|
|
".otm" => "application/vnd.oasis.opendocument.text-master", |
|
372
|
|
|
|
|
|
|
".ots" => "application/vnd.oasis.opendocument.spreadsheet-template", |
|
373
|
|
|
|
|
|
|
".ott" => "application/vnd.oasis.opendocument.text-template", |
|
374
|
|
|
|
|
|
|
".oxt" => "application/vnd.openofficeorg.extension", |
|
375
|
|
|
|
|
|
|
".p" => "text/x-pascal", |
|
376
|
|
|
|
|
|
|
".p10" => "application/pkcs10", |
|
377
|
|
|
|
|
|
|
".p12" => "application/x-pkcs12", |
|
378
|
|
|
|
|
|
|
".p7b" => "application/x-pkcs7-certificates", |
|
379
|
|
|
|
|
|
|
".p7m" => "application/pkcs7-mime", |
|
380
|
|
|
|
|
|
|
".p7r" => "application/x-pkcs7-certreqresp", |
|
381
|
|
|
|
|
|
|
".p7s" => "application/pkcs7-signature", |
|
382
|
|
|
|
|
|
|
".pas" => "text/x-pascal", |
|
383
|
|
|
|
|
|
|
".pbd" => "application/vnd.powerbuilder6", |
|
384
|
|
|
|
|
|
|
".pbm" => "image/x-portable-bitmap", |
|
385
|
|
|
|
|
|
|
".pcl" => "application/vnd.hp-pcl", |
|
386
|
|
|
|
|
|
|
".pclxl" => "application/vnd.hp-pclxl", |
|
387
|
|
|
|
|
|
|
".pcx" => "image/x-pcx", |
|
388
|
|
|
|
|
|
|
".pdb" => "chemical/x-pdb", |
|
389
|
|
|
|
|
|
|
".pdf" => "application/pdf", |
|
390
|
|
|
|
|
|
|
".pem" => "application/x-x509-ca-cert", |
|
391
|
|
|
|
|
|
|
".pfr" => "application/font-tdpfr", |
|
392
|
|
|
|
|
|
|
".pgm" => "image/x-portable-graymap", |
|
393
|
|
|
|
|
|
|
".pgn" => "application/x-chess-pgn", |
|
394
|
|
|
|
|
|
|
".pgp" => "application/pgp-encrypted", |
|
395
|
|
|
|
|
|
|
".pic" => "image/x-pict", |
|
396
|
|
|
|
|
|
|
".pict" => "image/pict", |
|
397
|
|
|
|
|
|
|
".pkg" => "application/octet-stream", |
|
398
|
|
|
|
|
|
|
".pki" => "application/pkixcmp", |
|
399
|
|
|
|
|
|
|
".pkipath" => "application/pkix-pkipath", |
|
400
|
|
|
|
|
|
|
".pl" => "text/x-script.perl", |
|
401
|
|
|
|
|
|
|
".plb" => "application/vnd.3gpp.pic-bw-large", |
|
402
|
|
|
|
|
|
|
".plc" => "application/vnd.mobius.plc", |
|
403
|
|
|
|
|
|
|
".plf" => "application/vnd.pocketlearn", |
|
404
|
|
|
|
|
|
|
".pls" => "application/pls+xml", |
|
405
|
|
|
|
|
|
|
".pm" => "text/x-script.perl-module", |
|
406
|
|
|
|
|
|
|
".pml" => "application/vnd.ctc-posml", |
|
407
|
|
|
|
|
|
|
".png" => "image/png", |
|
408
|
|
|
|
|
|
|
".pnm" => "image/x-portable-anymap", |
|
409
|
|
|
|
|
|
|
".pntg" => "image/x-macpaint", |
|
410
|
|
|
|
|
|
|
".portpkg" => "application/vnd.macports.portpkg", |
|
411
|
|
|
|
|
|
|
".pot" => "application/vnd.ms-powerpoint", |
|
412
|
|
|
|
|
|
|
".potm" => "application/vnd.ms-powerpoint.template.macroEnabled.12", |
|
413
|
|
|
|
|
|
|
".potx" => "application/vnd.openxmlformats-officedocument.presentationml.template", |
|
414
|
|
|
|
|
|
|
".ppa" => "application/vnd.ms-powerpoint", |
|
415
|
|
|
|
|
|
|
".ppam" => "application/vnd.ms-powerpoint.addin.macroEnabled.12", |
|
416
|
|
|
|
|
|
|
".ppd" => "application/vnd.cups-ppd", |
|
417
|
|
|
|
|
|
|
".ppm" => "image/x-portable-pixmap", |
|
418
|
|
|
|
|
|
|
".pps" => "application/vnd.ms-powerpoint", |
|
419
|
|
|
|
|
|
|
".ppsm" => "application/vnd.ms-powerpoint.slideshow.macroEnabled.12", |
|
420
|
|
|
|
|
|
|
".ppsx" => "application/vnd.openxmlformats-officedocument.presentationml.slideshow", |
|
421
|
|
|
|
|
|
|
".ppt" => "application/vnd.ms-powerpoint", |
|
422
|
|
|
|
|
|
|
".pptm" => "application/vnd.ms-powerpoint.presentation.macroEnabled.12", |
|
423
|
|
|
|
|
|
|
".pptx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation", |
|
424
|
|
|
|
|
|
|
".prc" => "application/vnd.palm", |
|
425
|
|
|
|
|
|
|
".pre" => "application/vnd.lotus-freelance", |
|
426
|
|
|
|
|
|
|
".prf" => "application/pics-rules", |
|
427
|
|
|
|
|
|
|
".ps" => "application/postscript", |
|
428
|
|
|
|
|
|
|
".psb" => "application/vnd.3gpp.pic-bw-small", |
|
429
|
|
|
|
|
|
|
".psd" => "image/vnd.adobe.photoshop", |
|
430
|
|
|
|
|
|
|
".ptid" => "application/vnd.pvi.ptid1", |
|
431
|
|
|
|
|
|
|
".pub" => "application/x-mspublisher", |
|
432
|
|
|
|
|
|
|
".pvb" => "application/vnd.3gpp.pic-bw-var", |
|
433
|
|
|
|
|
|
|
".pwn" => "application/vnd.3m.post-it-notes", |
|
434
|
|
|
|
|
|
|
".py" => "text/x-script.python", |
|
435
|
|
|
|
|
|
|
".pya" => "audio/vnd.ms-playready.media.pya", |
|
436
|
|
|
|
|
|
|
".pyv" => "video/vnd.ms-playready.media.pyv", |
|
437
|
|
|
|
|
|
|
".qam" => "application/vnd.epson.quickanime", |
|
438
|
|
|
|
|
|
|
".qbo" => "application/vnd.intu.qbo", |
|
439
|
|
|
|
|
|
|
".qfx" => "application/vnd.intu.qfx", |
|
440
|
|
|
|
|
|
|
".qps" => "application/vnd.publishare-delta-tree", |
|
441
|
|
|
|
|
|
|
".qt" => "video/quicktime", |
|
442
|
|
|
|
|
|
|
".qtif" => "image/x-quicktime", |
|
443
|
|
|
|
|
|
|
".qxd" => "application/vnd.quark.quarkxpress", |
|
444
|
|
|
|
|
|
|
".ra" => "audio/x-pn-realaudio", |
|
445
|
|
|
|
|
|
|
".rake" => "text/x-script.ruby", |
|
446
|
|
|
|
|
|
|
".ram" => "audio/x-pn-realaudio", |
|
447
|
|
|
|
|
|
|
".rar" => "application/x-rar-compressed", |
|
448
|
|
|
|
|
|
|
".ras" => "image/x-cmu-raster", |
|
449
|
|
|
|
|
|
|
".rb" => "text/x-script.ruby", |
|
450
|
|
|
|
|
|
|
".rcprofile" => "application/vnd.ipunplugged.rcprofile", |
|
451
|
|
|
|
|
|
|
".rdf" => "application/rdf+xml", |
|
452
|
|
|
|
|
|
|
".rdz" => "application/vnd.data-vision.rdz", |
|
453
|
|
|
|
|
|
|
".rep" => "application/vnd.businessobjects", |
|
454
|
|
|
|
|
|
|
".rgb" => "image/x-rgb", |
|
455
|
|
|
|
|
|
|
".rif" => "application/reginfo+xml", |
|
456
|
|
|
|
|
|
|
".rl" => "application/resource-lists+xml", |
|
457
|
|
|
|
|
|
|
".rlc" => "image/vnd.fujixerox.edmics-rlc", |
|
458
|
|
|
|
|
|
|
".rld" => "application/resource-lists-diff+xml", |
|
459
|
|
|
|
|
|
|
".rm" => "application/vnd.rn-realmedia", |
|
460
|
|
|
|
|
|
|
".rmp" => "audio/x-pn-realaudio-plugin", |
|
461
|
|
|
|
|
|
|
".rms" => "application/vnd.jcp.javame.midlet-rms", |
|
462
|
|
|
|
|
|
|
".rnc" => "application/relax-ng-compact-syntax", |
|
463
|
|
|
|
|
|
|
".roff" => "text/troff", |
|
464
|
|
|
|
|
|
|
".rpm" => "application/x-redhat-package-manager", |
|
465
|
|
|
|
|
|
|
".rpss" => "application/vnd.nokia.radio-presets", |
|
466
|
|
|
|
|
|
|
".rpst" => "application/vnd.nokia.radio-preset", |
|
467
|
|
|
|
|
|
|
".rq" => "application/sparql-query", |
|
468
|
|
|
|
|
|
|
".rs" => "application/rls-services+xml", |
|
469
|
|
|
|
|
|
|
".rsd" => "application/rsd+xml", |
|
470
|
|
|
|
|
|
|
".rss" => "application/rss+xml", |
|
471
|
|
|
|
|
|
|
".rtf" => "application/rtf", |
|
472
|
|
|
|
|
|
|
".rtx" => "text/richtext", |
|
473
|
|
|
|
|
|
|
".ru" => "text/x-script.ruby", |
|
474
|
|
|
|
|
|
|
".s" => "text/x-asm", |
|
475
|
|
|
|
|
|
|
".saf" => "application/vnd.yamaha.smaf-audio", |
|
476
|
|
|
|
|
|
|
".sbml" => "application/sbml+xml", |
|
477
|
|
|
|
|
|
|
".sc" => "application/vnd.ibm.secure-container", |
|
478
|
|
|
|
|
|
|
".scd" => "application/x-msschedule", |
|
479
|
|
|
|
|
|
|
".scm" => "application/vnd.lotus-screencam", |
|
480
|
|
|
|
|
|
|
".scq" => "application/scvp-cv-request", |
|
481
|
|
|
|
|
|
|
".scs" => "application/scvp-cv-response", |
|
482
|
|
|
|
|
|
|
".sdkm" => "application/vnd.solent.sdkm+xml", |
|
483
|
|
|
|
|
|
|
".sdp" => "application/sdp", |
|
484
|
|
|
|
|
|
|
".see" => "application/vnd.seemail", |
|
485
|
|
|
|
|
|
|
".sema" => "application/vnd.sema", |
|
486
|
|
|
|
|
|
|
".semd" => "application/vnd.semd", |
|
487
|
|
|
|
|
|
|
".semf" => "application/vnd.semf", |
|
488
|
|
|
|
|
|
|
".setpay" => "application/set-payment-initiation", |
|
489
|
|
|
|
|
|
|
".setreg" => "application/set-registration-initiation", |
|
490
|
|
|
|
|
|
|
".sfd" => "application/vnd.hydrostatix.sof-data", |
|
491
|
|
|
|
|
|
|
".sfs" => "application/vnd.spotfire.sfs", |
|
492
|
|
|
|
|
|
|
".sgm" => "text/sgml", |
|
493
|
|
|
|
|
|
|
".sgml" => "text/sgml", |
|
494
|
|
|
|
|
|
|
".sh" => "application/x-sh", |
|
495
|
|
|
|
|
|
|
".shar" => "application/x-shar", |
|
496
|
|
|
|
|
|
|
".shf" => "application/shf+xml", |
|
497
|
|
|
|
|
|
|
".sig" => "application/pgp-signature", |
|
498
|
|
|
|
|
|
|
".sit" => "application/x-stuffit", |
|
499
|
|
|
|
|
|
|
".sitx" => "application/x-stuffitx", |
|
500
|
|
|
|
|
|
|
".skp" => "application/vnd.koan", |
|
501
|
|
|
|
|
|
|
".slt" => "application/vnd.epson.salt", |
|
502
|
|
|
|
|
|
|
".smi" => "application/smil+xml", |
|
503
|
|
|
|
|
|
|
".snd" => "audio/basic", |
|
504
|
|
|
|
|
|
|
".so" => "application/octet-stream", |
|
505
|
|
|
|
|
|
|
".spf" => "application/vnd.yamaha.smaf-phrase", |
|
506
|
|
|
|
|
|
|
".spl" => "application/x-futuresplash", |
|
507
|
|
|
|
|
|
|
".spot" => "text/vnd.in3d.spot", |
|
508
|
|
|
|
|
|
|
".spp" => "application/scvp-vp-response", |
|
509
|
|
|
|
|
|
|
".spq" => "application/scvp-vp-request", |
|
510
|
|
|
|
|
|
|
".src" => "application/x-wais-source", |
|
511
|
|
|
|
|
|
|
".srt" => "text/srt", |
|
512
|
|
|
|
|
|
|
".srx" => "application/sparql-results+xml", |
|
513
|
|
|
|
|
|
|
".sse" => "application/vnd.kodak-descriptor", |
|
514
|
|
|
|
|
|
|
".ssf" => "application/vnd.epson.ssf", |
|
515
|
|
|
|
|
|
|
".ssml" => "application/ssml+xml", |
|
516
|
|
|
|
|
|
|
".stf" => "application/vnd.wt.stf", |
|
517
|
|
|
|
|
|
|
".stk" => "application/hyperstudio", |
|
518
|
|
|
|
|
|
|
".str" => "application/vnd.pg.format", |
|
519
|
|
|
|
|
|
|
".sus" => "application/vnd.sus-calendar", |
|
520
|
|
|
|
|
|
|
".sv4cpio" => "application/x-sv4cpio", |
|
521
|
|
|
|
|
|
|
".sv4crc" => "application/x-sv4crc", |
|
522
|
|
|
|
|
|
|
".svd" => "application/vnd.svd", |
|
523
|
|
|
|
|
|
|
".svg" => "image/svg+xml", |
|
524
|
|
|
|
|
|
|
".svgz" => "image/svg+xml", |
|
525
|
|
|
|
|
|
|
".swf" => "application/x-shockwave-flash", |
|
526
|
|
|
|
|
|
|
".swi" => "application/vnd.arastra.swi", |
|
527
|
|
|
|
|
|
|
".t" => "text/troff", |
|
528
|
|
|
|
|
|
|
".tao" => "application/vnd.tao.intent-module-archive", |
|
529
|
|
|
|
|
|
|
".tar" => "application/x-tar", |
|
530
|
|
|
|
|
|
|
".tbz" => "application/x-bzip-compressed-tar", |
|
531
|
|
|
|
|
|
|
".tcap" => "application/vnd.3gpp2.tcap", |
|
532
|
|
|
|
|
|
|
".tcl" => "application/x-tcl", |
|
533
|
|
|
|
|
|
|
".tex" => "application/x-tex", |
|
534
|
|
|
|
|
|
|
".texi" => "application/x-texinfo", |
|
535
|
|
|
|
|
|
|
".texinfo" => "application/x-texinfo", |
|
536
|
|
|
|
|
|
|
".text" => "text/plain", |
|
537
|
|
|
|
|
|
|
".tif" => "image/tiff", |
|
538
|
|
|
|
|
|
|
".tiff" => "image/tiff", |
|
539
|
|
|
|
|
|
|
".tmo" => "application/vnd.tmobile-livetv", |
|
540
|
|
|
|
|
|
|
".torrent" => "application/x-bittorrent", |
|
541
|
|
|
|
|
|
|
".tpl" => "application/vnd.groove-tool-template", |
|
542
|
|
|
|
|
|
|
".tpt" => "application/vnd.trid.tpt", |
|
543
|
|
|
|
|
|
|
".tr" => "text/troff", |
|
544
|
|
|
|
|
|
|
".tra" => "application/vnd.trueapp", |
|
545
|
|
|
|
|
|
|
".trm" => "application/x-msterminal", |
|
546
|
|
|
|
|
|
|
".ts" => "video/mp2t", |
|
547
|
|
|
|
|
|
|
".tsv" => "text/tab-separated-values", |
|
548
|
|
|
|
|
|
|
".ttf" => "font/ttf", |
|
549
|
|
|
|
|
|
|
".twd" => "application/vnd.simtech-mindmapper", |
|
550
|
|
|
|
|
|
|
".txd" => "application/vnd.genomatix.tuxedo", |
|
551
|
|
|
|
|
|
|
".txf" => "application/vnd.mobius.txf", |
|
552
|
|
|
|
|
|
|
".txt" => "text/plain", |
|
553
|
|
|
|
|
|
|
".ufd" => "application/vnd.ufdl", |
|
554
|
|
|
|
|
|
|
".umj" => "application/vnd.umajin", |
|
555
|
|
|
|
|
|
|
".unityweb" => "application/vnd.unity", |
|
556
|
|
|
|
|
|
|
".uoml" => "application/vnd.uoml+xml", |
|
557
|
|
|
|
|
|
|
".uri" => "text/uri-list", |
|
558
|
|
|
|
|
|
|
".ustar" => "application/x-ustar", |
|
559
|
|
|
|
|
|
|
".utz" => "application/vnd.uiq.theme", |
|
560
|
|
|
|
|
|
|
".uu" => "text/x-uuencode", |
|
561
|
|
|
|
|
|
|
".vcd" => "application/x-cdlink", |
|
562
|
|
|
|
|
|
|
".vcf" => "text/x-vcard", |
|
563
|
|
|
|
|
|
|
".vcg" => "application/vnd.groove-vcard", |
|
564
|
|
|
|
|
|
|
".vcs" => "text/x-vcalendar", |
|
565
|
|
|
|
|
|
|
".vcx" => "application/vnd.vcx", |
|
566
|
|
|
|
|
|
|
".vis" => "application/vnd.visionary", |
|
567
|
|
|
|
|
|
|
".viv" => "video/vnd.vivo", |
|
568
|
|
|
|
|
|
|
".vrml" => "model/vrml", |
|
569
|
|
|
|
|
|
|
".vsd" => "application/vnd.visio", |
|
570
|
|
|
|
|
|
|
".vsf" => "application/vnd.vsf", |
|
571
|
|
|
|
|
|
|
".vtt" => "text/vtt", |
|
572
|
|
|
|
|
|
|
".vtu" => "model/vnd.vtu", |
|
573
|
|
|
|
|
|
|
".vxml" => "application/voicexml+xml", |
|
574
|
|
|
|
|
|
|
".war" => "application/java-archive", |
|
575
|
|
|
|
|
|
|
".wasm" => "application/wasm", |
|
576
|
|
|
|
|
|
|
".wav" => "audio/x-wav", |
|
577
|
|
|
|
|
|
|
".wax" => "audio/x-ms-wax", |
|
578
|
|
|
|
|
|
|
".wbmp" => "image/vnd.wap.wbmp", |
|
579
|
|
|
|
|
|
|
".wbs" => "application/vnd.criticaltools.wbs+xml", |
|
580
|
|
|
|
|
|
|
".wbxml" => "application/vnd.wap.wbxml", |
|
581
|
|
|
|
|
|
|
".webm" => "video/webm", |
|
582
|
|
|
|
|
|
|
".webp" => "image/webp", |
|
583
|
|
|
|
|
|
|
".wm" => "video/x-ms-wm", |
|
584
|
|
|
|
|
|
|
".wma" => "audio/x-ms-wma", |
|
585
|
|
|
|
|
|
|
".wmd" => "application/x-ms-wmd", |
|
586
|
|
|
|
|
|
|
".wmf" => "application/x-msmetafile", |
|
587
|
|
|
|
|
|
|
".wml" => "text/vnd.wap.wml", |
|
588
|
|
|
|
|
|
|
".wmlc" => "application/vnd.wap.wmlc", |
|
589
|
|
|
|
|
|
|
".wmls" => "text/vnd.wap.wmlscript", |
|
590
|
|
|
|
|
|
|
".wmlsc" => "application/vnd.wap.wmlscriptc", |
|
591
|
|
|
|
|
|
|
".wmv" => "video/x-ms-wmv", |
|
592
|
|
|
|
|
|
|
".wmx" => "video/x-ms-wmx", |
|
593
|
|
|
|
|
|
|
".wmz" => "application/x-ms-wmz", |
|
594
|
|
|
|
|
|
|
".woff" => "font/woff", |
|
595
|
|
|
|
|
|
|
".woff2" => "font/woff2", |
|
596
|
|
|
|
|
|
|
".wpd" => "application/vnd.wordperfect", |
|
597
|
|
|
|
|
|
|
".wpl" => "application/vnd.ms-wpl", |
|
598
|
|
|
|
|
|
|
".wps" => "application/vnd.ms-works", |
|
599
|
|
|
|
|
|
|
".wqd" => "application/vnd.wqd", |
|
600
|
|
|
|
|
|
|
".wri" => "application/x-mswrite", |
|
601
|
|
|
|
|
|
|
".wrl" => "model/vrml", |
|
602
|
|
|
|
|
|
|
".wsdl" => "application/wsdl+xml", |
|
603
|
|
|
|
|
|
|
".wspolicy" => "application/wspolicy+xml", |
|
604
|
|
|
|
|
|
|
".wtb" => "application/vnd.webturbo", |
|
605
|
|
|
|
|
|
|
".wvx" => "video/x-ms-wvx", |
|
606
|
|
|
|
|
|
|
".x3d" => "application/vnd.hzn-3d-crossword", |
|
607
|
|
|
|
|
|
|
".xar" => "application/vnd.xara", |
|
608
|
|
|
|
|
|
|
".xbd" => "application/vnd.fujixerox.docuworks.binder", |
|
609
|
|
|
|
|
|
|
".xbm" => "image/x-xbitmap", |
|
610
|
|
|
|
|
|
|
".xdm" => "application/vnd.syncml.dm+xml", |
|
611
|
|
|
|
|
|
|
".xdp" => "application/vnd.adobe.xdp+xml", |
|
612
|
|
|
|
|
|
|
".xdw" => "application/vnd.fujixerox.docuworks", |
|
613
|
|
|
|
|
|
|
".xenc" => "application/xenc+xml", |
|
614
|
|
|
|
|
|
|
".xer" => "application/patch-ops-error+xml", |
|
615
|
|
|
|
|
|
|
".xfdf" => "application/vnd.adobe.xfdf", |
|
616
|
|
|
|
|
|
|
".xfdl" => "application/vnd.xfdl", |
|
617
|
|
|
|
|
|
|
".xhtml" => "application/xhtml+xml", |
|
618
|
|
|
|
|
|
|
".xif" => "image/vnd.xiff", |
|
619
|
|
|
|
|
|
|
".xla" => "application/vnd.ms-excel", |
|
620
|
|
|
|
|
|
|
".xlam" => "application/vnd.ms-excel.addin.macroEnabled.12", |
|
621
|
|
|
|
|
|
|
".xls" => "application/vnd.ms-excel", |
|
622
|
|
|
|
|
|
|
".xlsb" => "application/vnd.ms-excel.sheet.binary.macroEnabled.12", |
|
623
|
|
|
|
|
|
|
".xlsx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", |
|
624
|
|
|
|
|
|
|
".xlsm" => "application/vnd.ms-excel.sheet.macroEnabled.12", |
|
625
|
|
|
|
|
|
|
".xlt" => "application/vnd.ms-excel", |
|
626
|
|
|
|
|
|
|
".xltx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.template", |
|
627
|
|
|
|
|
|
|
".xml" => "application/xml", |
|
628
|
|
|
|
|
|
|
".xo" => "application/vnd.olpc-sugar", |
|
629
|
|
|
|
|
|
|
".xop" => "application/xop+xml", |
|
630
|
|
|
|
|
|
|
".xpm" => "image/x-xpixmap", |
|
631
|
|
|
|
|
|
|
".xpr" => "application/vnd.is-xpr", |
|
632
|
|
|
|
|
|
|
".xps" => "application/vnd.ms-xpsdocument", |
|
633
|
|
|
|
|
|
|
".xpw" => "application/vnd.intercon.formnet", |
|
634
|
|
|
|
|
|
|
".xsl" => "application/xml", |
|
635
|
|
|
|
|
|
|
".xslt" => "application/xslt+xml", |
|
636
|
|
|
|
|
|
|
".xsm" => "application/vnd.syncml+xml", |
|
637
|
|
|
|
|
|
|
".xspf" => "application/xspf+xml", |
|
638
|
|
|
|
|
|
|
".xul" => "application/vnd.mozilla.xul+xml", |
|
639
|
|
|
|
|
|
|
".xwd" => "image/x-xwindowdump", |
|
640
|
|
|
|
|
|
|
".xyz" => "chemical/x-xyz", |
|
641
|
|
|
|
|
|
|
".yaml" => "text/yaml", |
|
642
|
|
|
|
|
|
|
".yml" => "text/yaml", |
|
643
|
|
|
|
|
|
|
".zaz" => "application/vnd.zzazz.deck+xml", |
|
644
|
|
|
|
|
|
|
".zip" => "application/zip", |
|
645
|
|
|
|
|
|
|
".zmm" => "application/vnd.handheld-entertainment+xml", |
|
646
|
|
|
|
|
|
|
}; |
|
647
|
|
|
|
|
|
|
|
|
648
|
|
|
|
|
|
|
my $fallback = sub { }; |
|
649
|
|
|
|
|
|
|
|
|
650
|
|
|
|
|
|
|
sub mime_type { |
|
651
|
30
|
|
|
30
|
0
|
291570
|
my($class, $file) = @_; |
|
652
|
30
|
100
|
|
|
|
247
|
$file =~ /(\.[a-zA-Z0-9\-]+)$/ or return; |
|
653
|
26
|
100
|
|
|
|
238
|
$MIME_TYPES->{lc $1} || $fallback->(lc $1); |
|
654
|
|
|
|
|
|
|
} |
|
655
|
|
|
|
|
|
|
|
|
656
|
|
|
|
|
|
|
sub add_type { |
|
657
|
4
|
|
|
4
|
0
|
489572
|
my $class = shift; |
|
658
|
4
|
|
|
|
|
50
|
while (my($ext, $type) = splice @_, 0, 2) { |
|
659
|
4
|
|
|
|
|
48
|
$MIME_TYPES->{lc $ext} = $type; |
|
660
|
|
|
|
|
|
|
} |
|
661
|
|
|
|
|
|
|
} |
|
662
|
|
|
|
|
|
|
|
|
663
|
|
|
|
|
|
|
sub set_fallback { |
|
664
|
0
|
|
|
0
|
0
|
|
my($class, $cb) = @_; |
|
665
|
0
|
|
|
|
|
|
$fallback = $cb; |
|
666
|
|
|
|
|
|
|
} |
|
667
|
|
|
|
|
|
|
|
|
668
|
|
|
|
|
|
|
1; |
|
669
|
|
|
|
|
|
|
|
|
670
|
|
|
|
|
|
|
__END__ |