@@ -31,6 +31,79 @@ type FileName = Text
3131-- | Individual mime type for be served over the wire.
3232type MimeType = ByteString
3333
34+-- | The default fallback mime type \"application/octet-stream\".
35+defaultMimeType :: MimeType
36+defaultMimeType = "application/octet-stream"
37+
38+-- | A default mapping from filename extension to mime type.
39+--
40+-- taken from snap-core Snap.Util.FileServer
41+defaultMimeMap :: MimeMap
42+defaultMimeMap = Map.fromList [
43+ ( "apk" , "application/vnd.android.package-archive" ),
44+ ( "asc" , "text/plain" ),
45+ ( "asf" , "video/x-ms-asf" ),
46+ ( "asx" , "video/x-ms-asf" ),
47+ ( "avi" , "video/x-msvideo" ),
48+ ( "bz2" , "application/x-bzip" ),
49+ ( "c" , "text/plain" ),
50+ ( "class" , "application/octet-stream" ),
51+ ( "conf" , "text/plain" ),
52+ ( "cpp" , "text/plain" ),
53+ ( "css" , "text/css" ),
54+ ( "cxx" , "text/plain" ),
55+ ( "dtd" , "text/xml" ),
56+ ( "dvi" , "application/x-dvi" ),
57+ ( "epub" , "application/epub+zip" ),
58+ ( "gif" , "image/gif" ),
59+ ( "gz" , "application/x-gzip" ),
60+ ( "hs" , "text/plain" ),
61+ ( "htm" , "text/html" ),
62+ ( "html" , "text/html" ),
63+ ( "ico" , "image/vnd.microsoft.icon" ),
64+ ( "jar" , "application/x-java-archive" ),
65+ ( "jpeg" , "image/jpeg" ),
66+ ( "jpg" , "image/jpeg" ),
67+ ( "js" , "text/javascript" ),
68+ ( "json" , "application/json" ),
69+ ( "log" , "text/plain" ),
70+ ( "manifest", "text/cache-manifest" ),
71+ ( "m3u" , "audio/x-mpegurl" ),
72+ ( "mov" , "video/quicktime" ),
73+ ( "mp3" , "audio/mpeg" ),
74+ ( "mpeg" , "video/mpeg" ),
75+ ( "mpg" , "video/mpeg" ),
76+ ( "ogg" , "application/ogg" ),
77+ ( "pac" , "application/x-ns-proxy-autoconfig" ),
78+ ( "pdf" , "application/pdf" ),
79+ ( "png" , "image/png" ),
80+ ( "bmp" , "image/bmp" ),
81+ ( "ps" , "application/postscript" ),
82+ ( "qt" , "video/quicktime" ),
83+ ( "sig" , "application/pgp-signature" ),
84+ ( "spl" , "application/futuresplash" ),
85+ ( "svg" , "image/svg+xml" ),
86+ ( "swf" , "application/x-shockwave-flash" ),
87+ ( "tar" , "application/x-tar" ),
88+ ( "tar.bz2" , "application/x-bzip-compressed-tar" ),
89+ ( "tar.gz" , "application/x-tgz" ),
90+ ( "tbz" , "application/x-bzip-compressed-tar" ),
91+ ( "text" , "text/plain" ),
92+ ( "tgz" , "application/x-tgz" ),
93+ ( "torrent" , "application/x-bittorrent" ),
94+ ( "ttf" , "application/x-font-truetype" ),
95+ ( "txt" , "text/plain" ),
96+ ( "wav" , "audio/x-wav" ),
97+ ( "wax" , "audio/x-ms-wax" ),
98+ ( "wma" , "audio/x-ms-wma" ),
99+ ( "wmv" , "video/x-ms-wmv" ),
100+ ( "xbm" , "image/x-xbitmap" ),
101+ ( "xhtml" , "application/xhtml+xml" ),
102+ ( "xml" , "text/xml" ),
103+ ( "xpm" , "image/x-xpixmap" ),
104+ ( "xwd" , "image/x-xwindowdump" ),
105+ ( "zip" , "application/zip" )]
106+
34107-- | Look up a mime type from the given mime map and default mime type.
35108mimeByExt :: MimeMap
36109 -> MimeType -- ^ default mime type
@@ -49,1048 +122,18 @@ mimeByExt mm def =
49122defaultMimeLookup :: FileName -> MimeType
50123defaultMimeLookup = mimeByExt defaultMimeMap defaultMimeType
51124
52−-- | Get a list of all of the file name extensions.
125+-- | Get a list of all of the file name extensions from a piece.
53126--
54−-- > fileNameExtensions "foo.tar.gz" == ["tar.gz", "gz"]
127+-- > pieceExtensions "foo.tar.gz" == ["tar.gz", "gz"]
55128fileNameExtensions :: FileName -> [Extension]
56129fileNameExtensions =
57− go . T.toLower . dropToExt
130+ go
58131 where
59− dropToExt = T.drop 1 . T.dropWhile (/= '.')
60−
61− go e
132+ go t
62133 | T.null e = []
63− | otherwise = e : go next
134+ | otherwise = e : go e
64135 where
65− next = dropToExt e
136+ e = T.drop 1 $ T.dropWhile (/= '.') t
66137
67138-- | Path extension. May include multiple components, e.g. tar.gz
68139type Extension = Text
69−
70−-- | The default fallback mime type \"application/octet-stream\".
71−defaultMimeType :: MimeType
72−defaultMimeType = "application/octet-stream"
73−
74−-- | A default mapping from filename extension to mime type.
75−--
76−-- Generated from the Apache and nginx mime.types files.
77−defaultMimeMap :: MimeMap
78−defaultMimeMap = Map.fromAscList [
79− ("123", "application/vnd.lotus-1-2-3")
80− , ("3dml", "text/vnd.in3d.3dml")
81− , ("3ds", "image/x-3ds")
82− , ("3g2", "video/3gpp2")
83− , ("3gp", "video/3gpp")
84− , ("3gpp", "video/3gpp")
85− , ("7z", "application/x-7z-compressed")
86− , ("aab", "application/x-authorware-bin")
87− , ("aac", "audio/x-aac")
88− , ("aam", "application/x-authorware-map")
89− , ("aas", "application/x-authorware-seg")
90− , ("abw", "application/x-abiword")
91− , ("ac", "application/pkix-attr-cert")
92− , ("acc", "application/vnd.americandynamics.acc")
93− , ("ace", "application/x-ace-compressed")
94− , ("acu", "application/vnd.acucobol")
95− , ("acutc", "application/vnd.acucorp")
96− , ("adp", "audio/adpcm")
97− , ("aep", "application/vnd.audiograph")
98− , ("afm", "application/x-font-type1")
99− , ("afp", "application/vnd.ibm.modcap")
100− , ("ahead", "application/vnd.ahead.space")
101− , ("ai", "application/postscript")
102− , ("aif", "audio/x-aiff")
103− , ("aifc", "audio/x-aiff")
104− , ("aiff", "audio/x-aiff")
105− , ("air", "application/vnd.adobe.air-application-installer-package+zip")
106− , ("ait", "application/vnd.dvb.ait")
107− , ("ami", "application/vnd.amiga.ami")
108− , ("apk", "application/vnd.android.package-archive")
109− , ("appcache", "text/cache-manifest")
110− , ("application", "application/x-ms-application")
111− , ("apr", "application/vnd.lotus-approach")
112− , ("arc", "application/x-freearc")
113− , ("asc", "text/plain")
114− , ("asf", "video/x-ms-asf")
115− , ("asm", "text/x-asm")
116− , ("aso", "application/vnd.accpac.simply.aso")
117− , ("asx", "video/x-ms-asf")
118− , ("atc", "application/vnd.acucorp")
119− , ("atom", "application/atom+xml")
120− , ("atomcat", "application/atomcat+xml")
121− , ("atomsvc", "application/atomsvc+xml")
122− , ("atx", "application/vnd.antix.game-component")
123− , ("au", "audio/basic")
124− , ("avi", "video/x-msvideo")
125− , ("aw", "application/applixware")
126− , ("azf", "application/vnd.airzip.filesecure.azf")
127− , ("azs", "application/vnd.airzip.filesecure.azs")
128− , ("azw", "application/vnd.amazon.ebook")
129− , ("bat", "application/x-msdownload")
130− , ("bcpio", "application/x-bcpio")
131− , ("bdf", "application/x-font-bdf")
132− , ("bdm", "application/vnd.syncml.dm+wbxml")
133− , ("bed", "application/vnd.realvnc.bed")
134− , ("bh2", "application/vnd.fujitsu.oasysprs")
135− , ("bin", "application/octet-stream")
136− , ("blb", "application/x-blorb")
137− , ("blorb", "application/x-blorb")
138− , ("bmi", "application/vnd.bmi")
139− , ("bmp", "image/bmp")
140− , ("book", "application/vnd.framemaker")
141− , ("box", "application/vnd.previewsystems.box")
142− , ("boz", "application/x-bzip2")
143− , ("bpk", "application/octet-stream")
144− , ("btif", "image/prs.btif")
145− , ("bz", "application/x-bzip")
146− , ("bz2", "application/x-bzip")
147− , ("c", "text/plain")
148− , ("c11amc", "application/vnd.cluetrust.cartomobile-config")
149− , ("c11amz", "application/vnd.cluetrust.cartomobile-config-pkg")
150− , ("c4d", "application/vnd.clonk.c4group")
151− , ("c4f", "application/vnd.clonk.c4group")
152− , ("c4g", "application/vnd.clonk.c4group")
153− , ("c4p", "application/vnd.clonk.c4group")
154− , ("c4u", "application/vnd.clonk.c4group")
155− , ("cab", "application/vnd.ms-cab-compressed")
156− , ("caf", "audio/x-caf")
157− , ("cap", "application/vnd.tcpdump.pcap")
158− , ("car", "application/vnd.curl.car")
159− , ("cat", "application/vnd.ms-pki.seccat")
160− , ("cb7", "application/x-cbr")
161− , ("cba", "application/x-cbr")
162− , ("cbr", "application/x-cbr")
163− , ("cbt", "application/x-cbr")
164− , ("cbz", "application/x-cbr")
165− , ("cc", "text/x-c")
166− , ("cco", "application/x-cocoa")
167− , ("cct", "application/x-director")
168− , ("ccxml", "application/ccxml+xml")
169− , ("cdbcmsg", "application/vnd.contact.cmsg")
170− , ("cdf", "application/x-netcdf")
171− , ("cdkey", "application/vnd.mediastation.cdkey")
172− , ("cdmia", "application/cdmi-capability")
173− , ("cdmic", "application/cdmi-container")
174− , ("cdmid", "application/cdmi-domain")
175− , ("cdmio", "application/cdmi-object")
176− , ("cdmiq", "application/cdmi-queue")
177− , ("cdx", "chemical/x-cdx")
178− , ("cdxml", "application/vnd.chemdraw+xml")
179− , ("cdy", "application/vnd.cinderella")
180− , ("cer", "application/pkix-cert")
181− , ("cfs", "application/x-cfs-compressed")
182− , ("cgm", "image/cgm")
183− , ("chat", "application/x-chat")
184− , ("chm", "application/vnd.ms-htmlhelp")
185− , ("chrt", "application/vnd.kde.kchart")
186− , ("cif", "chemical/x-cif")
187− , ("cii", "application/vnd.anser-web-certificate-issue-initiation")
188− , ("cil", "application/vnd.ms-artgalry")
189− , ("cla", "application/vnd.claymore")
190− , ("class", "application/java-vm")
191− , ("clkk", "application/vnd.crick.clicker.keyboard")
192− , ("clkp", "application/vnd.crick.clicker.palette")
193− , ("clkt", "application/vnd.crick.clicker.template")
194− , ("clkw", "application/vnd.crick.clicker.wordbank")
195− , ("clkx", "application/vnd.crick.clicker")
196− , ("clp", "application/x-msclip")
197− , ("cmc", "application/vnd.cosmocaller")
198− , ("cmdf", "chemical/x-cmdf")
199− , ("cml", "chemical/x-cml")
200− , ("cmp", "application/vnd.yellowriver-custom-menu")
201− , ("cmx", "image/x-cmx")
202− , ("cod", "application/vnd.rim.cod")
203− , ("com", "application/x-msdownload")
204− , ("conf", "text/plain")
205− , ("cpio", "application/x-cpio")
206− , ("cpp", "text/plain")
207− , ("cpt", "application/mac-compactpro")
208− , ("crd", "application/x-mscardfile")
209− , ("crl", "application/pkix-crl")
210− , ("crt", "application/x-x509-ca-cert")
211− , ("cryptonote", "application/vnd.rig.cryptonote")
212− , ("csh", "application/x-csh")
213− , ("csml", "chemical/x-csml")
214− , ("csp", "application/vnd.commonspace")
215− , ("css", "text/css")
216− , ("cst", "application/x-director")
217− , ("csv", "text/csv")
218− , ("cu", "application/cu-seeme")
219− , ("curl", "text/vnd.curl")
220− , ("cww", "application/prs.cww")
221− , ("cxt", "application/x-director")
222− , ("cxx", "text/plain")
223− , ("dae", "model/vnd.collada+xml")
224− , ("daf", "application/vnd.mobius.daf")
225− , ("dart", "application/vnd.dart")
226− , ("dataless", "application/vnd.fdsn.seed")
227− , ("davmount", "application/davmount+xml")
228− , ("dbk", "application/docbook+xml")
229− , ("dcr", "application/x-director")
230− , ("dcurl", "text/vnd.curl.dcurl")
231− , ("dd2", "application/vnd.oma.dd2+xml")
232− , ("ddd", "application/vnd.fujixerox.ddd")
233− , ("deb", "application/x-debian-package")
234− , ("def", "text/plain")
235− , ("deploy", "application/octet-stream")
236− , ("der", "application/x-x509-ca-cert")
237− , ("dfac", "application/vnd.dreamfactory")
238− , ("dgc", "application/x-dgc-compressed")
239− , ("dic", "text/x-c")
240− , ("dir", "application/x-director")
241− , ("dis", "application/vnd.mobius.dis")
242− , ("dist", "application/octet-stream")
243− , ("distz", "application/octet-stream")
244− , ("djv", "image/vnd.djvu")
245− , ("djvu", "image/vnd.djvu")
246− , ("dll", "application/x-msdownload")
247− , ("dmg", "application/x-apple-diskimage")
248− , ("dmp", "application/vnd.tcpdump.pcap")
249− , ("dms", "application/octet-stream")
250− , ("dna", "application/vnd.dna")
251− , ("doc", "application/msword")
252− , ("docm", "application/vnd.ms-word.document.macroenabled.12")
253− , ("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
254− , ("dot", "application/msword")
255− , ("dotm", "application/vnd.ms-word.template.macroenabled.12")
256− , ("dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template")
257− , ("dp", "application/vnd.osgi.dp")
258− , ("dpg", "application/vnd.dpgraph")
259− , ("dra", "audio/vnd.dra")
260− , ("dsc", "text/prs.lines.tag")
261− , ("dssc", "application/dssc+der")
262− , ("dtb", "application/x-dtbook+xml")
263− , ("dtd", "application/xml-dtd")
264− , ("dts", "audio/vnd.dts")
265− , ("dtshd", "audio/vnd.dts.hd")
266− , ("dump", "application/octet-stream")
267− , ("dvb", "video/vnd.dvb.file")
268− , ("dvi", "application/x-dvi")
269− , ("dwf", "model/vnd.dwf")
270− , ("dwg", "image/vnd.dwg")
271− , ("dxf", "image/vnd.dxf")
272− , ("dxp", "application/vnd.spotfire.dxp")
273− , ("dxr", "application/x-director")
274− , ("ear", "application/java-archive")
275− , ("ecelp4800", "audio/vnd.nuera.ecelp4800")
276− , ("ecelp7470", "audio/vnd.nuera.ecelp7470")
277− , ("ecelp9600", "audio/vnd.nuera.ecelp9600")
278− , ("ecma", "application/ecmascript")
279− , ("edm", "application/vnd.novadigm.edm")
280− , ("edx", "application/vnd.novadigm.edx")
281− , ("efif", "application/vnd.picsel")
282− , ("ei6", "application/vnd.pg.osasli")
283− , ("elc", "application/octet-stream")
284− , ("emf", "application/x-msmetafile")
285− , ("eml", "message/rfc822")
286− , ("emma", "application/emma+xml")
287− , ("emz", "application/x-msmetafile")
288− , ("eol", "audio/vnd.digital-winds")
289− , ("eot", "application/vnd.ms-fontobject")
290− , ("eps", "application/postscript")
291− , ("epub", "application/epub+zip")
292− , ("es3", "application/vnd.eszigno3+xml")
293− , ("esa", "application/vnd.osgi.subsystem")
294− , ("esf", "application/vnd.epson.esf")
295− , ("et3", "application/vnd.eszigno3+xml")
296− , ("etx", "text/x-setext")
297− , ("eva", "application/x-eva")
298− , ("evy", "application/x-envoy")
299− , ("exe", "application/x-msdownload")
300− , ("exi", "application/exi")
301− , ("ext", "application/vnd.novadigm.ext")
302− , ("ez", "application/andrew-inset")
303− , ("ez2", "application/vnd.ezpix-album")
304− , ("ez3", "application/vnd.ezpix-package")
305− , ("f", "text/x-fortran")
306− , ("f4v", "video/x-f4v")
307− , ("f77", "text/x-fortran")
308− , ("f90", "text/x-fortran")
309− , ("fbs", "image/vnd.fastbidsheet")
310− , ("fcdt", "application/vnd.adobe.formscentral.fcdt")
311− , ("fcs", "application/vnd.isac.fcs")
312− , ("fdf", "application/vnd.fdf")
313− , ("fe_launch", "application/vnd.denovo.fcselayout-link")
314− , ("fg5", "application/vnd.fujitsu.oasysgp")
315− , ("fgd", "application/x-director")
316− , ("fh", "image/x-freehand")
317− , ("fh4", "image/x-freehand")
318− , ("fh5", "image/x-freehand")
319− , ("fh7", "image/x-freehand")
320− , ("fhc", "image/x-freehand")
321− , ("fig", "application/x-xfig")
322− , ("flac", "audio/x-flac")
323− , ("fli", "video/x-fli")
324− , ("flo", "application/vnd.micrografx.flo")
325− , ("flv", "video/x-flv")
326− , ("flw", "application/vnd.kde.kivio")
327− , ("flx", "text/vnd.fmi.flexstor")
328− , ("fly", "text/vnd.fly")
329− , ("fm", "application/vnd.framemaker")
330− , ("fnc", "application/vnd.frogans.fnc")
331− , ("for", "text/x-fortran")
332− , ("fpx", "image/vnd.fpx")
333− , ("frame", "application/vnd.framemaker")
334− , ("fsc", "application/vnd.fsc.weblaunch")
335− , ("fst", "image/vnd.fst")
336− , ("ftc", "application/vnd.fluxtime.clip")
337− , ("fti", "application/vnd.anser-web-funds-transfer-initiation")
338− , ("fvt", "video/vnd.fvt")
339− , ("fxp", "application/vnd.adobe.fxp")
340− , ("fxpl", "application/vnd.adobe.fxp")
341− , ("fzs", "application/vnd.fuzzysheet")
342− , ("g2w", "application/vnd.geoplan")
343− , ("g3", "image/g3fax")
344− , ("g3w", "application/vnd.geospace")
345− , ("gac", "application/vnd.groove-account")
346− , ("gam", "application/x-tads")
347− , ("gbr", "application/rpki-ghostbusters")
348− , ("gca", "application/x-gca-compressed")
349− , ("gdl", "model/vnd.gdl")
350− , ("geo", "application/vnd.dynageo")
351− , ("gex", "application/vnd.geometry-explorer")
352− , ("ggb", "application/vnd.geogebra.file")
353− , ("ggt", "application/vnd.geogebra.tool")
354− , ("ghf", "application/vnd.groove-help")
355− , ("gif", "image/gif")
356− , ("gim", "application/vnd.groove-identity-message")
357− , ("gml", "application/gml+xml")
358− , ("gmx", "application/vnd.gmx")
359− , ("gnumeric", "application/x-gnumeric")
360− , ("gph", "application/vnd.flographit")
361− , ("gpx", "application/gpx+xml")
362− , ("gqf", "application/vnd.grafeq")
363− , ("gqs", "application/vnd.grafeq")
364− , ("gram", "application/srgs")
365− , ("gramps", "application/x-gramps-xml")
366− , ("gre", "application/vnd.geometry-explorer")
367− , ("grv", "application/vnd.groove-injector")
368− , ("grxml", "application/srgs+xml")
369− , ("gsf", "application/x-font-ghostscript")
370− , ("gtar", "application/x-gtar")
371− , ("gtm", "application/vnd.groove-tool-message")
372− , ("gtw", "model/vnd.gtw")
373− , ("gv", "text/vnd.graphviz")
374− , ("gxf", "application/gxf")
375− , ("gxt", "application/vnd.geonext")
376− , ("gz", "application/x-gzip")
377− , ("h", "text/x-c")
378− , ("h261", "video/h261")
379− , ("h263", "video/h263")
380− , ("h264", "video/h264")
381− , ("hal", "application/vnd.hal+xml")
382− , ("hbci", "application/vnd.hbci")
383− , ("hdf", "application/x-hdf")
384− , ("hh", "text/x-c")
385− , ("hlp", "application/winhlp")
386− , ("hpgl", "application/vnd.hp-hpgl")
387− , ("hpid", "application/vnd.hp-hpid")
388− , ("hps", "application/vnd.hp-hps")
389− , ("hqx", "application/mac-binhex40")
390− , ("hs", "text/plain")
391− , ("htc", "text/x-component")
392− , ("htke", "application/vnd.kenameaapp")
393− , ("htm", "text/html")
394− , ("html", "text/html")
395− , ("hvd", "application/vnd.yamaha.hv-dic")
396− , ("hvp", "application/vnd.yamaha.hv-voice")
397− , ("hvs", "application/vnd.yamaha.hv-script")
398− , ("i2g", "application/vnd.intergeo")
399− , ("icc", "application/vnd.iccprofile")
400− , ("ice", "x-conference/x-cooltalk")
401− , ("icm", "application/vnd.iccprofile")
402− , ("ico", "image/vnd.microsoft.icon")
403− , ("ics", "text/calendar")
404− , ("ief", "image/ief")
405− , ("ifb", "text/calendar")
406− , ("ifm", "application/vnd.shana.informed.formdata")
407− , ("iges", "model/iges")
408− , ("igl", "application/vnd.igloader")
409− , ("igm", "application/vnd.insors.igm")
410− , ("igs", "model/iges")
411− , ("igx", "application/vnd.micrografx.igx")
412− , ("iif", "application/vnd.shana.informed.interchange")
413− , ("img", "application/octet-stream")
414− , ("imp", "application/vnd.accpac.simply.imp")
415− , ("ims", "application/vnd.ms-ims")
416− , ("in", "text/plain")
417− , ("ink", "application/inkml+xml")
418− , ("inkml", "application/inkml+xml")
419− , ("install", "application/x-install-instructions")
420− , ("iota", "application/vnd.astraea-software.iota")
421− , ("ipfix", "application/ipfix")
422− , ("ipk", "application/vnd.shana.informed.package")
423− , ("irm", "application/vnd.ibm.rights-management")
424− , ("irp", "application/vnd.irepository.package+xml")
425− , ("iso", "application/x-iso9660-image")
426− , ("itp", "application/vnd.shana.informed.formtemplate")
427− , ("ivp", "application/vnd.immervision-ivp")
428− , ("ivu", "application/vnd.immervision-ivu")
429− , ("jad", "text/vnd.sun.j2me.app-descriptor")
430− , ("jam", "application/vnd.jam")
431− , ("jar", "application/java-archive")
432− , ("jardiff", "application/x-java-archive-diff")
433− , ("java", "text/x-java-source")
434− , ("jisp", "application/vnd.jisp")
435− , ("jlt", "application/vnd.hp-jlyt")
436− , ("jng", "image/x-jng")
437− , ("jnlp", "application/x-java-jnlp-file")
438− , ("joda", "application/vnd.joost.joda-archive")
439− , ("jpe", "image/jpeg")
440− , ("jpeg", "image/jpeg")
441− , ("jpg", "image/jpeg")
442− , ("jpgm", "video/jpm")
443− , ("jpgv", "video/jpeg")
444− , ("jpm", "video/jpm")
445− , ("js", "application/javascript")
446− , ("json", "application/json")
447− , ("jsonml", "application/jsonml+json")
448− , ("kar", "audio/midi")
449− , ("karbon", "application/vnd.kde.karbon")
450− , ("kfo", "application/vnd.kde.kformula")
451− , ("kia", "application/vnd.kidspiration")
452− , ("kml", "application/vnd.google-earth.kml+xml")
453− , ("kmz", "application/vnd.google-earth.kmz")
454− , ("kne", "application/vnd.kinar")
455− , ("knp", "application/vnd.kinar")
456− , ("kon", "application/vnd.kde.kontour")
457− , ("kpr", "application/vnd.kde.kpresenter")
458− , ("kpt", "application/vnd.kde.kpresenter")
459− , ("kpxx", "application/vnd.ds-keypoint")
460− , ("ksp", "application/vnd.kde.kspread")
461− , ("ktr", "application/vnd.kahootz")
462− , ("ktx", "image/ktx")
463− , ("ktz", "application/vnd.kahootz")
464− , ("kwd", "application/vnd.kde.kword")
465− , ("kwt", "application/vnd.kde.kword")
466− , ("lasxml", "application/vnd.las.las+xml")
467− , ("latex", "application/x-latex")
468− , ("lbd", "application/vnd.llamagraphics.life-balance.desktop")
469− , ("lbe", "application/vnd.llamagraphics.life-balance.exchange+xml")
470− , ("les", "application/vnd.hhe.lesson-player")
471−
472− -- Added after deliberation in PR (https://github.com/yesodweb/wai/pull/534)
473− -- Accepted mainly because of StackOverflow (http://stackoverflow.com/questions/7319555/how-to-add-less-to-iis-7-0)
474− , ("less", "text/css")
475−
476− , ("lha", "application/x-lzh-compressed")
477− , ("link66", "application/vnd.route66.link66+xml")
478− , ("list", "text/plain")
479− , ("list3820", "application/vnd.ibm.modcap")
480− , ("listafp", "application/vnd.ibm.modcap")
481− , ("lnk", "application/x-ms-shortcut")
482− , ("log", "text/plain")
483− , ("lostxml", "application/lost+xml")
484− , ("lrf", "application/octet-stream")
485− , ("lrm", "application/vnd.ms-lrm")
486− , ("ltf", "application/vnd.frogans.ltf")
487− , ("lvp", "audio/vnd.lucent.voice")
488− , ("lwp", "application/vnd.lotus-wordpro")
489− , ("lzh", "application/x-lzh-compressed")
490− , ("m13", "application/x-msmediaview")
491− , ("m14", "application/x-msmediaview")
492− , ("m1v", "video/mpeg")
493− , ("m21", "application/mp21")
494− , ("m2a", "audio/mpeg")
495− , ("m2v", "video/mpeg")
496− , ("m3a", "audio/mpeg")
497− , ("m3u", "audio/x-mpegurl")
498− , ("m3u8", "application/vnd.apple.mpegurl")
499− , ("m4a", "audio/x-m4a")
500− , ("m4u", "video/vnd.mpegurl")
501− , ("m4v", "video/x-m4v")
502− , ("ma", "application/mathematica")
503− , ("mads", "application/mads+xml")
504− , ("mag", "application/vnd.ecowin.chart")
505− , ("maker", "application/vnd.framemaker")
506− , ("man", "text/troff")
507− , ("manifest", "text/cache-manifest")
508− , ("mar", "application/octet-stream")
509− , ("mathml", "application/mathml+xml")
510− , ("mb", "application/mathematica")
511− , ("mbk", "application/vnd.mobius.mbk")
512− , ("mbox", "application/mbox")
513− , ("mc1", "application/vnd.medcalcdata")
514− , ("mcd", "application/vnd.mcd")
515− , ("mcurl", "text/vnd.curl.mcurl")
516− , ("mdb", "application/x-msaccess")
517− , ("mdi", "image/vnd.ms-modi")
518− , ("me", "text/troff")
519− , ("mesh", "model/mesh")
520− , ("meta4", "application/metalink4+xml")
521− , ("metalink", "application/metalink+xml")
522− , ("mets", "application/mets+xml")
523− , ("mfm", "application/vnd.mfmp")
524− , ("mft", "application/rpki-manifest")
525− , ("mgp", "application/vnd.osgeo.mapguide.package")
526− , ("mgz", "application/vnd.proteus.magazine")
527− , ("mid", "audio/midi")
528− , ("midi", "audio/midi")
529− , ("mie", "application/x-mie")
530− , ("mif", "application/vnd.mif")
531− , ("mime", "message/rfc822")
532− , ("mj2", "video/mj2")
533− , ("mjp2", "video/mj2")
534− , ("mjs", "application/javascript")
535− , ("mk3d", "video/x-matroska")
536− , ("mka", "audio/x-matroska")
537− , ("mks", "video/x-matroska")
538− , ("mkv", "video/x-matroska")
539− , ("mlp", "application/vnd.dolby.mlp")
540− , ("mmd", "application/vnd.chipnuts.karaoke-mmd")
541− , ("mmf", "application/vnd.smaf")
542− , ("mml", "text/mathml")
543− , ("mmr", "image/vnd.fujixerox.edmics-mmr")
544− , ("mng", "video/x-mng")
545− , ("mny", "application/x-msmoney")
546− , ("mobi", "application/x-mobipocket-ebook")
547− , ("mods", "application/mods+xml")
548− , ("mov", "video/quicktime")
549− , ("movie", "video/x-sgi-movie")
550− , ("mp2", "audio/mpeg")
551− , ("mp21", "application/mp21")
552− , ("mp2a", "audio/mpeg")
553− , ("mp3", "audio/mpeg")
554− , ("mp4", "video/mp4")
555− , ("mp4a", "audio/mp4")
556− , ("mp4s", "application/mp4")
557− , ("mp4v", "video/mp4")
558− , ("mpc", "application/vnd.mophun.certificate")
559− , ("mpe", "video/mpeg")
560− , ("mpeg", "video/mpeg")
561− , ("mpg", "video/mpeg")
562− , ("mpg4", "video/mp4")
563− , ("mpga", "audio/mpeg")
564− , ("mpkg", "application/vnd.apple.installer+xml")
565− , ("mpm", "application/vnd.blueice.multipass")
566− , ("mpn", "application/vnd.mophun.application")
567− , ("mpp", "application/vnd.ms-project")
568− , ("mpt", "application/vnd.ms-project")
569− , ("mpy", "application/vnd.ibm.minipay")
570− , ("mqy", "application/vnd.mobius.mqy")
571− , ("mrc", "application/marc")
572− , ("mrcx", "application/marcxml+xml")
573− , ("ms", "text/troff")
574− , ("mscml", "application/mediaservercontrol+xml")
575− , ("mseed", "application/vnd.fdsn.mseed")
576− , ("mseq", "application/vnd.mseq")
577− , ("msf", "application/vnd.epson.msf")
578− , ("msh", "model/mesh")
579− , ("msi", "application/x-msdownload")
580− , ("msl", "application/vnd.mobius.msl")
581− , ("msm", "application/octet-stream")
582− , ("msp", "application/octet-stream")
583− , ("msty", "application/vnd.muvee.style")
584− , ("mts", "model/vnd.mts")
585− , ("mus", "application/vnd.musician")
586− , ("musicxml", "application/vnd.recordare.musicxml+xml")
587− , ("mvb", "application/x-msmediaview")
588− , ("mwf", "application/vnd.mfer")
589− , ("mxf", "application/mxf")
590− , ("mxl", "application/vnd.recordare.musicxml")
591− , ("mxml", "application/xv+xml")
592− , ("mxs", "application/vnd.triscape.mxs")
593− , ("mxu", "video/vnd.mpegurl")
594− , ("n-gage", "application/vnd.nokia.n-gage.symbian.install")
595− , ("n3", "text/n3")
596− , ("nb", "application/mathematica")
597− , ("nbp", "application/vnd.wolfram.player")
598− , ("nc", "application/x-netcdf")
599− , ("ncx", "application/x-dtbncx+xml")
600− , ("nfo", "text/x-nfo")
601− , ("ngdat", "application/vnd.nokia.n-gage.data")
602− , ("nitf", "application/vnd.nitf")
603− , ("nlu", "application/vnd.neurolanguage.nlu")
604− , ("nml", "application/vnd.enliven")
605− , ("nnd", "application/vnd.noblenet-directory")
606− , ("nns", "application/vnd.noblenet-sealer")
607− , ("nnw", "application/vnd.noblenet-web")
608− , ("npx", "image/vnd.net-fpx")
609− , ("nsc", "application/x-conference")
610− , ("nsf", "application/vnd.lotus-notes")
611− , ("ntf", "application/vnd.nitf")
612− , ("nzb", "application/x-nzb")
613− , ("oa2", "application/vnd.fujitsu.oasys2")
614− , ("oa3", "application/vnd.fujitsu.oasys3")
615− , ("oas", "application/vnd.fujitsu.oasys")
616− , ("obd", "application/x-msbinder")
617− , ("obj", "application/x-tgif")
618− , ("oda", "application/oda")
619− , ("odb", "application/vnd.oasis.opendocument.database")
620− , ("odc", "application/vnd.oasis.opendocument.chart")
621− , ("odf", "application/vnd.oasis.opendocument.formula")
622− , ("odft", "application/vnd.oasis.opendocument.formula-template")
623− , ("odg", "application/vnd.oasis.opendocument.graphics")
624− , ("odi", "application/vnd.oasis.opendocument.image")
625− , ("odm", "application/vnd.oasis.opendocument.text-master")
626− , ("odp", "application/vnd.oasis.opendocument.presentation")
627− , ("ods", "application/vnd.oasis.opendocument.spreadsheet")
628− , ("odt", "application/vnd.oasis.opendocument.text")
629− , ("oga", "audio/ogg")
630− , ("ogg", "audio/ogg")
631− , ("ogv", "video/ogg")
632− , ("ogx", "application/ogg")
633− , ("omdoc", "application/omdoc+xml")
634− , ("onepkg", "application/onenote")
635− , ("onetmp", "application/onenote")
636− , ("onetoc", "application/onenote")
637− , ("onetoc2", "application/onenote")
638− , ("opf", "application/oebps-package+xml")
639− , ("opml", "text/x-opml")
640− , ("oprc", "application/vnd.palm")
641− , ("org", "application/vnd.lotus-organizer")
642− , ("osf", "application/vnd.yamaha.openscoreformat")
643− , ("osfpvg", "application/vnd.yamaha.openscoreformat.osfpvg+xml")
644− , ("otc", "application/vnd.oasis.opendocument.chart-template")
645− , ("otf", "application/x-font-otf")
646− , ("otg", "application/vnd.oasis.opendocument.graphics-template")
647− , ("oth", "application/vnd.oasis.opendocument.text-web")
648− , ("oti", "application/vnd.oasis.opendocument.image-template")
649− , ("otp", "application/vnd.oasis.opendocument.presentation-template")
650− , ("ots", "application/vnd.oasis.opendocument.spreadsheet-template")
651− , ("ott", "application/vnd.oasis.opendocument.text-template")
652− , ("oxps", "application/oxps")
653− , ("oxt", "application/vnd.openofficeorg.extension")
654− , ("p", "text/x-pascal")
655− , ("p10", "application/pkcs10")
656− , ("p12", "application/x-pkcs12")
657− , ("p7b", "application/x-pkcs7-certificates")
658− , ("p7c", "application/pkcs7-mime")
659− , ("p7m", "application/pkcs7-mime")
660− , ("p7r", "application/x-pkcs7-certreqresp")
661− , ("p7s", "application/pkcs7-signature")
662− , ("p8", "application/pkcs8")
663− , ("pac", "application/x-ns-proxy-autoconfig")
664− , ("pas", "text/x-pascal")
665− , ("paw", "application/vnd.pawaafile")
666− , ("pbd", "application/vnd.powerbuilder6")
667− , ("pbm", "image/x-portable-bitmap")
668− , ("pcap", "application/vnd.tcpdump.pcap")
669− , ("pcf", "application/x-font-pcf")
670− , ("pcl", "application/vnd.hp-pcl")
671− , ("pclxl", "application/vnd.hp-pclxl")
672− , ("pct", "image/x-pict")
673− , ("pcurl", "application/vnd.curl.pcurl")
674− , ("pcx", "image/x-pcx")
675− , ("pdb", "application/vnd.palm")
676− , ("pdf", "application/pdf")
677− , ("pem", "application/x-x509-ca-cert")
678− , ("pfa", "application/x-font-type1")
679− , ("pfb", "application/x-font-type1")
680− , ("pfm", "application/x-font-type1")
681− , ("pfr", "application/font-tdpfr")
682− , ("pfx", "application/x-pkcs12")
683− , ("pgm", "image/x-portable-graymap")
684− , ("pgn", "application/x-chess-pgn")
685− , ("pgp", "application/pgp-encrypted")
686− , ("pic", "image/x-pict")
687− , ("pkg", "application/octet-stream")
688− , ("pki", "application/pkixcmp")
689− , ("pkipath", "application/pkix-pkipath")
690− , ("pl", "application/x-perl")
691− , ("plb", "application/vnd.3gpp.pic-bw-large")
692− , ("plc", "application/vnd.mobius.plc")
693− , ("plf", "application/vnd.pocketlearn")
694− , ("pls", "application/pls+xml")
695− , ("pm", "application/x-perl")
696− , ("pml", "application/vnd.ctc-posml")
697− , ("png", "image/png")
698− , ("pnm", "image/x-portable-anymap")
699− , ("portpkg", "application/vnd.macports.portpkg")
700− , ("pot", "application/vnd.ms-powerpoint")
701− , ("potm", "application/vnd.ms-powerpoint.template.macroenabled.12")
702− , ("potx", "application/vnd.openxmlformats-officedocument.presentationml.template")
703− , ("ppam", "application/vnd.ms-powerpoint.addin.macroenabled.12")
704− , ("ppd", "application/vnd.cups-ppd")
705− , ("ppm", "image/x-portable-pixmap")
706− , ("pps", "application/vnd.ms-powerpoint")
707− , ("ppsm", "application/vnd.ms-powerpoint.slideshow.macroenabled.12")
708− , ("ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow")
709− , ("ppt", "application/vnd.ms-powerpoint")
710− , ("pptm", "application/vnd.ms-powerpoint.presentation.macroenabled.12")
711− , ("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation")
712− , ("pqa", "application/vnd.palm")
713− , ("prc", "application/x-mobipocket-ebook")
714− , ("pre", "application/vnd.lotus-freelance")
715− , ("prf", "application/pics-rules")
716− , ("ps", "application/postscript")
717− , ("psb", "application/vnd.3gpp.pic-bw-small")
718− , ("psd", "image/vnd.adobe.photoshop")
719− , ("psf", "application/x-font-linux-psf")
720− , ("pskcxml", "application/pskc+xml")
721− , ("ptid", "application/vnd.pvi.ptid1")
722− , ("pub", "application/x-mspublisher")
723− , ("pvb", "application/vnd.3gpp.pic-bw-var")
724− , ("pwn", "application/vnd.3m.post-it-notes")
725− , ("pya", "audio/vnd.ms-playready.media.pya")
726− , ("pyv", "video/vnd.ms-playready.media.pyv")
727− , ("qam", "application/vnd.epson.quickanime")
728− , ("qbo", "application/vnd.intu.qbo")
729− , ("qfx", "application/vnd.intu.qfx")
730− , ("qps", "application/vnd.publishare-delta-tree")
731− , ("qt", "video/quicktime")
732− , ("qwd", "application/vnd.quark.quarkxpress")
733− , ("qwt", "application/vnd.quark.quarkxpress")
734− , ("qxb", "application/vnd.quark.quarkxpress")
735− , ("qxd", "application/vnd.quark.quarkxpress")
736− , ("qxl", "application/vnd.quark.quarkxpress")
737− , ("qxt", "application/vnd.quark.quarkxpress")
738− , ("ra", "audio/x-pn-realaudio")
739− , ("ram", "audio/x-pn-realaudio")
740− , ("rar", "application/x-rar-compressed")
741− , ("ras", "image/x-cmu-raster")
742− , ("rcprofile", "application/vnd.ipunplugged.rcprofile")
743− , ("rdf", "application/rdf+xml")
744− , ("rdz", "application/vnd.data-vision.rdz")
745− , ("rep", "application/vnd.businessobjects")
746− , ("res", "application/x-dtbresource+xml")
747− , ("rgb", "image/x-rgb")
748− , ("rif", "application/reginfo+xml")
749− , ("rip", "audio/vnd.rip")
750− , ("ris", "application/x-research-info-systems")
751− , ("rl", "application/resource-lists+xml")
752− , ("rlc", "image/vnd.fujixerox.edmics-rlc")
753− , ("rld", "application/resource-lists-diff+xml")
754− , ("rm", "application/vnd.rn-realmedia")
755− , ("rmi", "audio/midi")
756− , ("rmp", "audio/x-pn-realaudio-plugin")
757− , ("rms", "application/vnd.jcp.javame.midlet-rms")
758− , ("rmvb", "application/vnd.rn-realmedia-vbr")
759− , ("rnc", "application/relax-ng-compact-syntax")
760− , ("roa", "application/rpki-roa")
761− , ("roff", "text/troff")
762− , ("rp9", "application/vnd.cloanto.rp9")
763− , ("rpm", "application/x-redhat-package-manager")
764− , ("rpss", "application/vnd.nokia.radio-presets")
765− , ("rpst", "application/vnd.nokia.radio-preset")
766− , ("rq", "application/sparql-query")
767− , ("rs", "application/rls-services+xml")
768− , ("rsd", "application/rsd+xml")
769− , ("rss", "application/rss+xml")
770− , ("rtf", "application/rtf")
771− , ("rtx", "text/richtext")
772− , ("run", "application/x-makeself")
773− , ("s", "text/x-asm")
774− , ("s3m", "audio/s3m")
775− , ("saf", "application/vnd.yamaha.smaf-audio")
776− , ("sbml", "application/sbml+xml")
777− , ("sc", "application/vnd.ibm.secure-container")
778− , ("scd", "application/x-msschedule")
779− , ("scm", "application/vnd.lotus-screencam")
780− , ("scq", "application/scvp-cv-request")
781− , ("scs", "application/scvp-cv-response")
782− , ("scurl", "text/vnd.curl.scurl")
783− , ("sda", "application/vnd.stardivision.draw")
784− , ("sdc", "application/vnd.stardivision.calc")
785− , ("sdd", "application/vnd.stardivision.impress")
786− , ("sdkd", "application/vnd.solent.sdkm+xml")
787− , ("sdkm", "application/vnd.solent.sdkm+xml")
788− , ("sdp", "application/sdp")
789− , ("sdw", "application/vnd.stardivision.writer")
790− , ("sea", "application/x-sea")
791− , ("see", "application/vnd.seemail")
792− , ("seed", "application/vnd.fdsn.seed")
793− , ("sema", "application/vnd.sema")
794− , ("semd", "application/vnd.semd")
795− , ("semf", "application/vnd.semf")
796− , ("ser", "application/java-serialized-object")
797− , ("setpay", "application/set-payment-initiation")
798− , ("setreg", "application/set-registration-initiation")
799− , ("sfd-hdstx", "application/vnd.hydrostatix.sof-data")
800− , ("sfs", "application/vnd.spotfire.sfs")
801− , ("sfv", "text/x-sfv")
802− , ("sgi", "image/sgi")
803− , ("sgl", "application/vnd.stardivision.writer-global")
804− , ("sgm", "text/sgml")
805− , ("sgml", "text/sgml")
806− , ("sh", "application/x-sh")
807− , ("shar", "application/x-shar")
808− , ("shf", "application/shf+xml")
809− , ("shtml", "text/html")
810− , ("sid", "image/x-mrsid-image")
811− , ("sig", "application/pgp-signature")
812− , ("sil", "audio/silk")
813− , ("silo", "model/mesh")
814− , ("sis", "application/vnd.symbian.install")
815− , ("sisx", "application/vnd.symbian.install")
816− , ("sit", "application/x-stuffit")
817− , ("sitx", "application/x-stuffitx")
818− , ("skd", "application/vnd.koan")
819− , ("skm", "application/vnd.koan")
820− , ("skp", "application/vnd.koan")
821− , ("skt", "application/vnd.koan")
822− , ("sldm", "application/vnd.ms-powerpoint.slide.macroenabled.12")
823− , ("sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide")
824− , ("slt", "application/vnd.epson.salt")
825− , ("sm", "application/vnd.stepmania.stepchart")
826− , ("smf", "application/vnd.stardivision.math")
827− , ("smi", "application/smil+xml")
828− , ("smil", "application/smil+xml")
829− , ("smv", "video/x-smv")
830− , ("smzip", "application/vnd.stepmania.package")
831− , ("snd", "audio/basic")
832− , ("snf", "application/x-font-snf")
833− , ("so", "application/octet-stream")
834− , ("spc", "application/x-pkcs7-certificates")
835− , ("spf", "application/vnd.yamaha.smaf-phrase")
836− , ("spl", "application/futuresplash")
837− , ("spot", "text/vnd.in3d.spot")
838− , ("spp", "application/scvp-vp-response")
839− , ("spq", "application/scvp-vp-request")
840− , ("spx", "audio/ogg")
841− , ("sql", "application/x-sql")
842− , ("src", "application/x-wais-source")
843− , ("srt", "application/x-subrip")
844− , ("sru", "application/sru+xml")
845− , ("srx", "application/sparql-results+xml")
846− , ("ssdl", "application/ssdl+xml")
847− , ("sse", "application/vnd.kodak-descriptor")
848− , ("ssf", "application/vnd.epson.ssf")
849− , ("ssml", "application/ssml+xml")
850− , ("st", "application/vnd.sailingtracker.track")
851− , ("stc", "application/vnd.sun.xml.calc.template")
852− , ("std", "application/vnd.sun.xml.draw.template")
853− , ("stf", "application/vnd.wt.stf")
854− , ("sti", "application/vnd.sun.xml.impress.template")
855− , ("stk", "application/hyperstudio")
856− , ("stl", "application/vnd.ms-pki.stl")
857− , ("str", "application/vnd.pg.format")
858− , ("stw", "application/vnd.sun.xml.writer.template")
859− , ("sub", "text/vnd.dvb.subtitle")
860− , ("sus", "application/vnd.sus-calendar")
861− , ("susp", "application/vnd.sus-calendar")
862− , ("sv4cpio", "application/x-sv4cpio")
863− , ("sv4crc", "application/x-sv4crc")
864− , ("svc", "application/vnd.dvb.service")
865− , ("svd", "application/vnd.svd")
866− , ("svg", "image/svg+xml")
867− , ("svgz", "image/svg+xml")
868− , ("swa", "application/x-director")
869− , ("swf", "application/x-shockwave-flash")
870− , ("swi", "application/vnd.aristanetworks.swi")
871− , ("sxc", "application/vnd.sun.xml.calc")
872− , ("sxd", "application/vnd.sun.xml.draw")
873− , ("sxg", "application/vnd.sun.xml.writer.global")
874− , ("sxi", "application/vnd.sun.xml.impress")
875− , ("sxm", "application/vnd.sun.xml.math")
876− , ("sxw", "application/vnd.sun.xml.writer")
877− , ("t", "text/troff")
878− , ("t3", "application/x-t3vm-image")
879− , ("taglet", "application/vnd.mynfc")
880− , ("tao", "application/vnd.tao.intent-module-archive")
881− , ("tar", "application/x-tar")
882− , ("tar.bz2", "application/x-bzip-compressed-tar")
883− , ("tar.gz", "application/x-tgz")
884− , ("tbz", "application/x-bzip-compressed-tar")
885− , ("tcap", "application/vnd.3gpp2.tcap")
886− , ("tcl", "application/x-tcl")
887− , ("teacher", "application/vnd.smart.teacher")
888− , ("tei", "application/tei+xml")
889− , ("teicorpus", "application/tei+xml")
890− , ("tex", "application/x-tex")
891− , ("texi", "application/x-texinfo")
892− , ("texinfo", "application/x-texinfo")
893− , ("text", "text/plain")
894− , ("tfi", "application/thraud+xml")
895− , ("tfm", "application/x-tex-tfm")
896− , ("tga", "image/x-tga")
897− , ("tgz", "application/x-tgz")
898− , ("thmx", "application/vnd.ms-officetheme")
899− , ("tif", "image/tiff")
900− , ("tiff", "image/tiff")
901− , ("tk", "application/x-tcl")
902− , ("tmo", "application/vnd.tmobile-livetv")
903− , ("torrent", "application/x-bittorrent")
904− , ("tpl", "application/vnd.groove-tool-template")
905− , ("tpt", "application/vnd.trid.tpt")
906− , ("tr", "text/troff")
907− , ("tra", "application/vnd.trueapp")
908− , ("trm", "application/x-msterminal")
909− , ("tsd", "application/timestamped-data")
910− , ("tsv", "text/tab-separated-values")
911− , ("ttc", "application/x-font-ttf")
912− , ("ttf", "application/x-font-ttf")
913− , ("ttl", "text/turtle")
914− , ("twd", "application/vnd.simtech-mindmapper")
915− , ("twds", "application/vnd.simtech-mindmapper")
916− , ("txd", "application/vnd.genomatix.tuxedo")
917− , ("txf", "application/vnd.mobius.txf")
918− , ("txt", "text/plain")
919− , ("u32", "application/x-authorware-bin")
920− , ("udeb", "application/x-debian-package")
921− , ("ufd", "application/vnd.ufdl")
922− , ("ufdl", "application/vnd.ufdl")
923− , ("ulx", "application/x-glulx")
924− , ("umj", "application/vnd.umajin")
925− , ("unityweb", "application/vnd.unity")
926− , ("uoml", "application/vnd.uoml+xml")
927− , ("uri", "text/uri-list")
928− , ("uris", "text/uri-list")
929− , ("urls", "text/uri-list")
930− , ("ustar", "application/x-ustar")
931− , ("utz", "application/vnd.uiq.theme")
932− , ("uu", "text/x-uuencode")
933− , ("uva", "audio/vnd.dece.audio")
934− , ("uvd", "application/vnd.dece.data")
935− , ("uvf", "application/vnd.dece.data")
936− , ("uvg", "image/vnd.dece.graphic")
937− , ("uvh", "video/vnd.dece.hd")
938− , ("uvi", "image/vnd.dece.graphic")
939− , ("uvm", "video/vnd.dece.mobile")
940− , ("uvp", "video/vnd.dece.pd")
941− , ("uvs", "video/vnd.dece.sd")
942− , ("uvt", "application/vnd.dece.ttml+xml")
943− , ("uvu", "video/vnd.uvvu.mp4")
944− , ("uvv", "video/vnd.dece.video")
945− , ("uvva", "audio/vnd.dece.audio")
946− , ("uvvd", "application/vnd.dece.data")
947− , ("uvvf", "application/vnd.dece.data")
948− , ("uvvg", "image/vnd.dece.graphic")
949− , ("uvvh", "video/vnd.dece.hd")
950− , ("uvvi", "image/vnd.dece.graphic")
951− , ("uvvm", "video/vnd.dece.mobile")
952− , ("uvvp", "video/vnd.dece.pd")
953− , ("uvvs", "video/vnd.dece.sd")
954− , ("uvvt", "application/vnd.dece.ttml+xml")
955− , ("uvvu", "video/vnd.uvvu.mp4")
956− , ("uvvv", "video/vnd.dece.video")
957− , ("uvvx", "application/vnd.dece.unspecified")
958− , ("uvvz", "application/vnd.dece.zip")
959− , ("uvx", "application/vnd.dece.unspecified")
960− , ("uvz", "application/vnd.dece.zip")
961− , ("vcard", "text/vcard")
962− , ("vcd", "application/x-cdlink")
963− , ("vcf", "text/x-vcard")
964− , ("vcg", "application/vnd.groove-vcard")
965− , ("vcs", "text/x-vcalendar")
966− , ("vcx", "application/vnd.vcx")
967− , ("vis", "application/vnd.visionary")
968− , ("viv", "video/vnd.vivo")
969− , ("vob", "video/x-ms-vob")
970− , ("vor", "application/vnd.stardivision.writer")
971− , ("vox", "application/x-authorware-bin")
972− , ("vrml", "model/vrml")
973− , ("vsd", "application/vnd.visio")
974− , ("vsf", "application/vnd.vsf")
975− , ("vss", "application/vnd.visio")
976− , ("vst", "application/vnd.visio")
977− , ("vsw", "application/vnd.visio")
978− , ("vtu", "model/vnd.vtu")
979− , ("vxml", "application/voicexml+xml")
980− , ("w3d", "application/x-director")
981− , ("wad", "application/x-doom")
982− , ("war", "application/java-archive")
983− , ("wasm", "application/wasm")
984− , ("wav", "audio/x-wav")
985− , ("wax", "audio/x-ms-wax")
986− , ("wbmp", "image/vnd.wap.wbmp")
987− , ("wbs", "application/vnd.criticaltools.wbs+xml")
988− , ("wbxml", "application/vnd.wap.wbxml")
989− , ("wcm", "application/vnd.ms-works")
990− , ("wdb", "application/vnd.ms-works")
991− , ("wdp", "image/vnd.ms-photo")
992− , ("weba", "audio/webm")
993− , ("webm", "video/webm")
994− , ("webp", "image/webp")
995− , ("wg", "application/vnd.pmi.widget")
996− , ("wgt", "application/widget")
997− , ("wks", "application/vnd.ms-works")
998− , ("wm", "video/x-ms-wm")
999− , ("wma", "audio/x-ms-wma")
1000− , ("wmd", "application/x-ms-wmd")
1001− , ("wmf", "application/x-msmetafile")
1002− , ("wml", "text/vnd.wap.wml")
1003− , ("wmlc", "application/vnd.wap.wmlc")
1004− , ("wmls", "text/vnd.wap.wmlscript")
1005− , ("wmlsc", "application/vnd.wap.wmlscriptc")
1006− , ("wmv", "video/x-ms-wmv")
1007− , ("wmx", "video/x-ms-wmx")
1008− , ("wmz", "application/x-msmetafile")
1009− , ("woff", "application/font-woff")
1010− , ("woff2", "application/font-woff2")
1011− , ("wpd", "application/vnd.wordperfect")
1012− , ("wpl", "application/vnd.ms-wpl")
1013− , ("wps", "application/vnd.ms-works")
1014− , ("wqd", "application/vnd.wqd")
1015− , ("wri", "application/x-mswrite")
1016− , ("wrl", "model/vrml")
1017− , ("wsdl", "application/wsdl+xml")
1018− , ("wspolicy", "application/wspolicy+xml")
1019− , ("wtb", "application/vnd.webturbo")
1020− , ("wvx", "video/x-ms-wvx")
1021− , ("x32", "application/x-authorware-bin")
1022− , ("x3d", "model/x3d+xml")
1023− , ("x3db", "model/x3d+binary")
1024− , ("x3dbz", "model/x3d+binary")
1025− , ("x3dv", "model/x3d+vrml")
1026− , ("x3dvz", "model/x3d+vrml")
1027− , ("x3dz", "model/x3d+xml")
1028− , ("xaml", "application/xaml+xml")
1029− , ("xap", "application/x-silverlight-app")
1030− , ("xar", "application/vnd.xara")
1031− , ("xbap", "application/x-ms-xbap")
1032− , ("xbd", "application/vnd.fujixerox.docuworks.binder")
1033− , ("xbm", "image/x-xbitmap")
1034− , ("xdf", "application/xcap-diff+xml")
1035− , ("xdm", "application/vnd.syncml.dm+xml")
1036− , ("xdp", "application/vnd.adobe.xdp+xml")
1037− , ("xdssc", "application/dssc+xml")
1038− , ("xdw", "application/vnd.fujixerox.docuworks")
1039− , ("xenc", "application/xenc+xml")
1040− , ("xer", "application/patch-ops-error+xml")
1041− , ("xfdf", "application/vnd.adobe.xfdf")
1042− , ("xfdl", "application/vnd.xfdl")
1043− , ("xht", "application/xhtml+xml")
1044− , ("xhtml", "application/xhtml+xml")
1045− , ("xhvml", "application/xv+xml")
1046− , ("xif", "image/vnd.xiff")
1047− , ("xla", "application/vnd.ms-excel")
1048− , ("xlam", "application/vnd.ms-excel.addin.macroenabled.12")
1049− , ("xlc", "application/vnd.ms-excel")
1050− , ("xlf", "application/x-xliff+xml")
1051− , ("xlm", "application/vnd.ms-excel")
1052− , ("xls", "application/vnd.ms-excel")
1053− , ("xlsb", "application/vnd.ms-excel.sheet.binary.macroenabled.12")
1054− , ("xlsm", "application/vnd.ms-excel.sheet.macroenabled.12")
1055− , ("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
1056− , ("xlt", "application/vnd.ms-excel")
1057− , ("xltm", "application/vnd.ms-excel.template.macroenabled.12")
1058− , ("xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template")
1059− , ("xlw", "application/vnd.ms-excel")
1060− , ("xm", "audio/xm")
1061− , ("xml", "text/xml")
1062− , ("xo", "application/vnd.olpc-sugar")
1063− , ("xop", "application/xop+xml")
1064− , ("xpi", "application/x-xpinstall")
1065− , ("xpl", "application/xproc+xml")
1066− , ("xpm", "image/x-xpixmap")
1067− , ("xpr", "application/vnd.is-xpr")
1068− , ("xps", "application/vnd.ms-xpsdocument")
1069− , ("xpw", "application/vnd.intercon.formnet")
1070− , ("xpx", "application/vnd.intercon.formnet")
1071− , ("xsl", "application/xml")
1072− , ("xslt", "application/xslt+xml")
1073− , ("xsm", "application/vnd.syncml+xml")
1074− , ("xspf", "application/xspf+xml")
1075− , ("xul", "application/vnd.mozilla.xul+xml")
1076− , ("xvm", "application/xv+xml")
1077− , ("xvml", "application/xv+xml")
1078− , ("xwd", "image/x-xwindowdump")
1079− , ("xyz", "chemical/x-xyz")
1080− , ("xz", "application/x-xz")
1081− , ("yang", "application/yang")
1082− , ("yin", "application/yin+xml")
1083− , ("z1", "application/x-zmachine")
1084− , ("z2", "application/x-zmachine")
1085− , ("z3", "application/x-zmachine")
1086− , ("z4", "application/x-zmachine")
1087− , ("z5", "application/x-zmachine")
1088− , ("z6", "application/x-zmachine")
1089− , ("z7", "application/x-zmachine")
1090− , ("z8", "application/x-zmachine")
1091− , ("zaz", "application/vnd.zzazz.deck+xml")
1092− , ("zip", "application/zip")
1093− , ("zir", "application/vnd.zul")
1094− , ("zirz", "application/vnd.zul")
1095− , ("zmm", "application/vnd.handheld-entertainment+xml")
1096− ]