{-|
Module: IHP.FileStorage.MimeTypes
Description: Mime Type helpers
Copyright: (c) digitally induced GmbH, 2021
-}
module IHP.FileStorage.MimeTypes
( guessMimeType
, extensionToMimeTypeMapping
) where

import IHP.Prelude
import qualified Data.Text as Text

-- | Returns the mime type based on a file extension
--
-- >>> guessMimeType "test.jpg"
-- "image/jpeg"
--
-- Returns @application/octet-stream@ if no extension is given or it's unknown:
--
-- >>> guessMimeType "unknown"
-- "application/octet-stream"
--
guessMimeType :: Text -> Text
guessMimeType :: Text -> Text
guessMimeType Text
file =
        Text
file
        Text -> (Text -> (Text, Text)) -> (Text, Text)
forall t1 t2. t1 -> (t1 -> t2) -> t2
|> Text -> Text -> (Text, Text)
Text.breakOnEnd Text
"."
        (Text, Text) -> ((Text, Text) -> Text) -> Text
forall t1 t2. t1 -> (t1 -> t2) -> t2
|> \case
            (Text
_, Text
"") -> Text
defaultMimeType
            (Text
_, Text
extension) -> Text -> Text
guessMimeTypeByExtension Text
extension
    where
        defaultMimeType :: Text
defaultMimeType = Text
"application/octet-stream"
        guessMimeTypeByExtension :: Text -> Text
guessMimeTypeByExtension Text
extension =
            [(Text, Text)]
extensionToMimeTypeMapping
            [(Text, Text)] -> ([(Text, Text)] -> Maybe Text) -> Maybe Text
forall t1 t2. t1 -> (t1 -> t2) -> t2
|> Text -> [(Text, Text)] -> Maybe Text
forall a b. Eq a => a -> [(a, b)] -> Maybe b
lookup Text
extension
            Maybe Text -> (Maybe Text -> Text) -> Text
forall t1 t2. t1 -> (t1 -> t2) -> t2
|> Text -> Maybe Text -> Text
forall a. a -> Maybe a -> a
fromMaybe Text
defaultMimeType

-- | List of mime types
--
-- Generated using:
--
-- >>>  wget -qO- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types | egrep -v ^# | awk '{ for (i=2; i<=NF; i++) {print "(\""$i"\", \""$1"\")"}}' | sort
extensionToMimeTypeMapping :: [(Text, Text)]
extensionToMimeTypeMapping =
    [ (Text
"123", Text
"application/vnd.lotus-1-2-3")
    , (Text
"3dml", Text
"text/vnd.in3d.3dml")
    , (Text
"3ds", Text
"image/x-3ds")
    , (Text
"3g2", Text
"video/3gpp2")
    , (Text
"3gp", Text
"video/3gpp")
    , (Text
"7z", Text
"application/x-7z-compressed")
    , (Text
"aab", Text
"application/x-authorware-bin")
    , (Text
"aac", Text
"audio/x-aac")
    , (Text
"aam", Text
"application/x-authorware-map")
    , (Text
"aas", Text
"application/x-authorware-seg")
    , (Text
"abw", Text
"application/x-abiword")
    , (Text
"ac", Text
"application/pkix-attr-cert")
    , (Text
"acc", Text
"application/vnd.americandynamics.acc")
    , (Text
"ace", Text
"application/x-ace-compressed")
    , (Text
"acu", Text
"application/vnd.acucobol")
    , (Text
"acutc", Text
"application/vnd.acucorp")
    , (Text
"adp", Text
"audio/adpcm")
    , (Text
"aep", Text
"application/vnd.audiograph")
    , (Text
"afm", Text
"application/x-font-type1")
    , (Text
"afp", Text
"application/vnd.ibm.modcap")
    , (Text
"ahead", Text
"application/vnd.ahead.space")
    , (Text
"ai", Text
"application/postscript")
    , (Text
"aif", Text
"audio/x-aiff")
    , (Text
"aifc", Text
"audio/x-aiff")
    , (Text
"aiff", Text
"audio/x-aiff")
    , (Text
"air", Text
"application/vnd.adobe.air-application-installer-package+zip")
    , (Text
"ait", Text
"application/vnd.dvb.ait")
    , (Text
"ami", Text
"application/vnd.amiga.ami")
    , (Text
"apk", Text
"application/vnd.android.package-archive")
    , (Text
"appcache", Text
"text/cache-manifest")
    , (Text
"application", Text
"application/x-ms-application")
    , (Text
"apr", Text
"application/vnd.lotus-approach")
    , (Text
"arc", Text
"application/x-freearc")
    , (Text
"asc", Text
"application/pgp-signature")
    , (Text
"asf", Text
"video/x-ms-asf")
    , (Text
"asm", Text
"text/x-asm")
    , (Text
"aso", Text
"application/vnd.accpac.simply.aso")
    , (Text
"asx", Text
"video/x-ms-asf")
    , (Text
"atc", Text
"application/vnd.acucorp")
    , (Text
"atom", Text
"application/atom+xml")
    , (Text
"atomcat", Text
"application/atomcat+xml")
    , (Text
"atomsvc", Text
"application/atomsvc+xml")
    , (Text
"atx", Text
"application/vnd.antix.game-component")
    , (Text
"au", Text
"audio/basic")
    , (Text
"avi", Text
"video/x-msvideo")
    , (Text
"aw", Text
"application/applixware")
    , (Text
"azf", Text
"application/vnd.airzip.filesecure.azf")
    , (Text
"azs", Text
"application/vnd.airzip.filesecure.azs")
    , (Text
"azw", Text
"application/vnd.amazon.ebook")
    , (Text
"bat", Text
"application/x-msdownload")
    , (Text
"bcpio", Text
"application/x-bcpio")
    , (Text
"bdf", Text
"application/x-font-bdf")
    , (Text
"bdm", Text
"application/vnd.syncml.dm+wbxml")
    , (Text
"bed", Text
"application/vnd.realvnc.bed")
    , (Text
"bh2", Text
"application/vnd.fujitsu.oasysprs")
    , (Text
"bin", Text
"application/octet-stream")
    , (Text
"blb", Text
"application/x-blorb")
    , (Text
"blorb", Text
"application/x-blorb")
    , (Text
"bmi", Text
"application/vnd.bmi")
    , (Text
"bmp", Text
"image/bmp")
    , (Text
"book", Text
"application/vnd.framemaker")
    , (Text
"box", Text
"application/vnd.previewsystems.box")
    , (Text
"boz", Text
"application/x-bzip2")
    , (Text
"bpk", Text
"application/octet-stream")
    , (Text
"btif", Text
"image/prs.btif")
    , (Text
"bz", Text
"application/x-bzip")
    , (Text
"bz2", Text
"application/x-bzip2")
    , (Text
"c", Text
"text/x-c")
    , (Text
"c11amc", Text
"application/vnd.cluetrust.cartomobile-config")
    , (Text
"c11amz", Text
"application/vnd.cluetrust.cartomobile-config-pkg")
    , (Text
"c4d", Text
"application/vnd.clonk.c4group")
    , (Text
"c4f", Text
"application/vnd.clonk.c4group")
    , (Text
"c4g", Text
"application/vnd.clonk.c4group")
    , (Text
"c4p", Text
"application/vnd.clonk.c4group")
    , (Text
"c4u", Text
"application/vnd.clonk.c4group")
    , (Text
"cab", Text
"application/vnd.ms-cab-compressed")
    , (Text
"caf", Text
"audio/x-caf")
    , (Text
"cap", Text
"application/vnd.tcpdump.pcap")
    , (Text
"car", Text
"application/vnd.curl.car")
    , (Text
"cat", Text
"application/vnd.ms-pki.seccat")
    , (Text
"cb7", Text
"application/x-cbr")
    , (Text
"cba", Text
"application/x-cbr")
    , (Text
"cbr", Text
"application/x-cbr")
    , (Text
"cbt", Text
"application/x-cbr")
    , (Text
"cbz", Text
"application/x-cbr")
    , (Text
"cc", Text
"text/x-c")
    , (Text
"cct", Text
"application/x-director")
    , (Text
"ccxml", Text
"application/ccxml+xml")
    , (Text
"cdbcmsg", Text
"application/vnd.contact.cmsg")
    , (Text
"cdf", Text
"application/x-netcdf")
    , (Text
"cdkey", Text
"application/vnd.mediastation.cdkey")
    , (Text
"cdmia", Text
"application/cdmi-capability")
    , (Text
"cdmic", Text
"application/cdmi-container")
    , (Text
"cdmid", Text
"application/cdmi-domain")
    , (Text
"cdmio", Text
"application/cdmi-object")
    , (Text
"cdmiq", Text
"application/cdmi-queue")
    , (Text
"cdx", Text
"chemical/x-cdx")
    , (Text
"cdxml", Text
"application/vnd.chemdraw+xml")
    , (Text
"cdy", Text
"application/vnd.cinderella")
    , (Text
"cer", Text
"application/pkix-cert")
    , (Text
"cfs", Text
"application/x-cfs-compressed")
    , (Text
"cgm", Text
"image/cgm")
    , (Text
"chat", Text
"application/x-chat")
    , (Text
"chm", Text
"application/vnd.ms-htmlhelp")
    , (Text
"chrt", Text
"application/vnd.kde.kchart")
    , (Text
"cif", Text
"chemical/x-cif")
    , (Text
"cii", Text
"application/vnd.anser-web-certificate-issue-initiation")
    , (Text
"cil", Text
"application/vnd.ms-artgalry")
    , (Text
"cla", Text
"application/vnd.claymore")
    , (Text
"class", Text
"application/java-vm")
    , (Text
"clkk", Text
"application/vnd.crick.clicker.keyboard")
    , (Text
"clkp", Text
"application/vnd.crick.clicker.palette")
    , (Text
"clkt", Text
"application/vnd.crick.clicker.template")
    , (Text
"clkw", Text
"application/vnd.crick.clicker.wordbank")
    , (Text
"clkx", Text
"application/vnd.crick.clicker")
    , (Text
"clp", Text
"application/x-msclip")
    , (Text
"cmc", Text
"application/vnd.cosmocaller")
    , (Text
"cmdf", Text
"chemical/x-cmdf")
    , (Text
"cml", Text
"chemical/x-cml")
    , (Text
"cmp", Text
"application/vnd.yellowriver-custom-menu")
    , (Text
"cmx", Text
"image/x-cmx")
    , (Text
"cod", Text
"application/vnd.rim.cod")
    , (Text
"com", Text
"application/x-msdownload")
    , (Text
"conf", Text
"text/plain")
    , (Text
"cpio", Text
"application/x-cpio")
    , (Text
"cpp", Text
"text/x-c")
    , (Text
"cpt", Text
"application/mac-compactpro")
    , (Text
"crd", Text
"application/x-mscardfile")
    , (Text
"crl", Text
"application/pkix-crl")
    , (Text
"crt", Text
"application/x-x509-ca-cert")
    , (Text
"cryptonote", Text
"application/vnd.rig.cryptonote")
    , (Text
"csh", Text
"application/x-csh")
    , (Text
"csml", Text
"chemical/x-csml")
    , (Text
"csp", Text
"application/vnd.commonspace")
    , (Text
"css", Text
"text/css")
    , (Text
"cst", Text
"application/x-director")
    , (Text
"csv", Text
"text/csv")
    , (Text
"cu", Text
"application/cu-seeme")
    , (Text
"curl", Text
"text/vnd.curl")
    , (Text
"cww", Text
"application/prs.cww")
    , (Text
"cxt", Text
"application/x-director")
    , (Text
"cxx", Text
"text/x-c")
    , (Text
"dae", Text
"model/vnd.collada+xml")
    , (Text
"daf", Text
"application/vnd.mobius.daf")
    , (Text
"dart", Text
"application/vnd.dart")
    , (Text
"dataless", Text
"application/vnd.fdsn.seed")
    , (Text
"davmount", Text
"application/davmount+xml")
    , (Text
"dbk", Text
"application/docbook+xml")
    , (Text
"dcr", Text
"application/x-director")
    , (Text
"dcurl", Text
"text/vnd.curl.dcurl")
    , (Text
"dd2", Text
"application/vnd.oma.dd2+xml")
    , (Text
"ddd", Text
"application/vnd.fujixerox.ddd")
    , (Text
"deb", Text
"application/x-debian-package")
    , (Text
"def", Text
"text/plain")
    , (Text
"deploy", Text
"application/octet-stream")
    , (Text
"der", Text
"application/x-x509-ca-cert")
    , (Text
"dfac", Text
"application/vnd.dreamfactory")
    , (Text
"dgc", Text
"application/x-dgc-compressed")
    , (Text
"dic", Text
"text/x-c")
    , (Text
"dir", Text
"application/x-director")
    , (Text
"dis", Text
"application/vnd.mobius.dis")
    , (Text
"dist", Text
"application/octet-stream")
    , (Text
"distz", Text
"application/octet-stream")
    , (Text
"djv", Text
"image/vnd.djvu")
    , (Text
"djvu", Text
"image/vnd.djvu")
    , (Text
"dll", Text
"application/x-msdownload")
    , (Text
"dmg", Text
"application/x-apple-diskimage")
    , (Text
"dmp", Text
"application/vnd.tcpdump.pcap")
    , (Text
"dms", Text
"application/octet-stream")
    , (Text
"dna", Text
"application/vnd.dna")
    , (Text
"doc", Text
"application/msword")
    , (Text
"docm", Text
"application/vnd.ms-word.document.macroenabled.12")
    , (Text
"docx", Text
"application/vnd.openxmlformats-officedocument.wordprocessingml.document")
    , (Text
"dot", Text
"application/msword")
    , (Text
"dotm", Text
"application/vnd.ms-word.template.macroenabled.12")
    , (Text
"dotx", Text
"application/vnd.openxmlformats-officedocument.wordprocessingml.template")
    , (Text
"dp", Text
"application/vnd.osgi.dp")
    , (Text
"dpg", Text
"application/vnd.dpgraph")
    , (Text
"dra", Text
"audio/vnd.dra")
    , (Text
"dsc", Text
"text/prs.lines.tag")
    , (Text
"dssc", Text
"application/dssc+der")
    , (Text
"dtb", Text
"application/x-dtbook+xml")
    , (Text
"dtd", Text
"application/xml-dtd")
    , (Text
"dts", Text
"audio/vnd.dts")
    , (Text
"dtshd", Text
"audio/vnd.dts.hd")
    , (Text
"dump", Text
"application/octet-stream")
    , (Text
"dvb", Text
"video/vnd.dvb.file")
    , (Text
"dvi", Text
"application/x-dvi")
    , (Text
"dwf", Text
"model/vnd.dwf")
    , (Text
"dwg", Text
"image/vnd.dwg")
    , (Text
"dxf", Text
"image/vnd.dxf")
    , (Text
"dxp", Text
"application/vnd.spotfire.dxp")
    , (Text
"dxr", Text
"application/x-director")
    , (Text
"ecelp4800", Text
"audio/vnd.nuera.ecelp4800")
    , (Text
"ecelp7470", Text
"audio/vnd.nuera.ecelp7470")
    , (Text
"ecelp9600", Text
"audio/vnd.nuera.ecelp9600")
    , (Text
"ecma", Text
"application/ecmascript")
    , (Text
"edm", Text
"application/vnd.novadigm.edm")
    , (Text
"edx", Text
"application/vnd.novadigm.edx")
    , (Text
"efif", Text
"application/vnd.picsel")
    , (Text
"ei6", Text
"application/vnd.pg.osasli")
    , (Text
"elc", Text
"application/octet-stream")
    , (Text
"emf", Text
"application/x-msmetafile")
    , (Text
"eml", Text
"message/rfc822")
    , (Text
"emma", Text
"application/emma+xml")
    , (Text
"emz", Text
"application/x-msmetafile")
    , (Text
"eol", Text
"audio/vnd.digital-winds")
    , (Text
"eot", Text
"application/vnd.ms-fontobject")
    , (Text
"eps", Text
"application/postscript")
    , (Text
"epub", Text
"application/epub+zip")
    , (Text
"es3", Text
"application/vnd.eszigno3+xml")
    , (Text
"esa", Text
"application/vnd.osgi.subsystem")
    , (Text
"esf", Text
"application/vnd.epson.esf")
    , (Text
"et3", Text
"application/vnd.eszigno3+xml")
    , (Text
"etx", Text
"text/x-setext")
    , (Text
"eva", Text
"application/x-eva")
    , (Text
"evy", Text
"application/x-envoy")
    , (Text
"exe", Text
"application/x-msdownload")
    , (Text
"exi", Text
"application/exi")
    , (Text
"ext", Text
"application/vnd.novadigm.ext")
    , (Text
"ez", Text
"application/andrew-inset")
    , (Text
"ez2", Text
"application/vnd.ezpix-album")
    , (Text
"ez3", Text
"application/vnd.ezpix-package")
    , (Text
"f", Text
"text/x-fortran")
    , (Text
"f4v", Text
"video/x-f4v")
    , (Text
"f77", Text
"text/x-fortran")
    , (Text
"f90", Text
"text/x-fortran")
    , (Text
"fbs", Text
"image/vnd.fastbidsheet")
    , (Text
"fcdt", Text
"application/vnd.adobe.formscentral.fcdt")
    , (Text
"fcs", Text
"application/vnd.isac.fcs")
    , (Text
"fdf", Text
"application/vnd.fdf")
    , (Text
"fe_launch", Text
"application/vnd.denovo.fcselayout-link")
    , (Text
"fg5", Text
"application/vnd.fujitsu.oasysgp")
    , (Text
"fgd", Text
"application/x-director")
    , (Text
"fh", Text
"image/x-freehand")
    , (Text
"fh4", Text
"image/x-freehand")
    , (Text
"fh5", Text
"image/x-freehand")
    , (Text
"fh7", Text
"image/x-freehand")
    , (Text
"fhc", Text
"image/x-freehand")
    , (Text
"fig", Text
"application/x-xfig")
    , (Text
"flac", Text
"audio/x-flac")
    , (Text
"fli", Text
"video/x-fli")
    , (Text
"flo", Text
"application/vnd.micrografx.flo")
    , (Text
"flv", Text
"video/x-flv")
    , (Text
"flw", Text
"application/vnd.kde.kivio")
    , (Text
"flx", Text
"text/vnd.fmi.flexstor")
    , (Text
"fly", Text
"text/vnd.fly")
    , (Text
"fm", Text
"application/vnd.framemaker")
    , (Text
"fnc", Text
"application/vnd.frogans.fnc")
    , (Text
"for", Text
"text/x-fortran")
    , (Text
"fpx", Text
"image/vnd.fpx")
    , (Text
"frame", Text
"application/vnd.framemaker")
    , (Text
"fsc", Text
"application/vnd.fsc.weblaunch")
    , (Text
"fst", Text
"image/vnd.fst")
    , (Text
"ftc", Text
"application/vnd.fluxtime.clip")
    , (Text
"fti", Text
"application/vnd.anser-web-funds-transfer-initiation")
    , (Text
"fvt", Text
"video/vnd.fvt")
    , (Text
"fxp", Text
"application/vnd.adobe.fxp")
    , (Text
"fxpl", Text
"application/vnd.adobe.fxp")
    , (Text
"fzs", Text
"application/vnd.fuzzysheet")
    , (Text
"g2w", Text
"application/vnd.geoplan")
    , (Text
"g3", Text
"image/g3fax")
    , (Text
"g3w", Text
"application/vnd.geospace")
    , (Text
"gac", Text
"application/vnd.groove-account")
    , (Text
"gam", Text
"application/x-tads")
    , (Text
"gbr", Text
"application/rpki-ghostbusters")
    , (Text
"gca", Text
"application/x-gca-compressed")
    , (Text
"gdl", Text
"model/vnd.gdl")
    , (Text
"geo", Text
"application/vnd.dynageo")
    , (Text
"gex", Text
"application/vnd.geometry-explorer")
    , (Text
"ggb", Text
"application/vnd.geogebra.file")
    , (Text
"ggt", Text
"application/vnd.geogebra.tool")
    , (Text
"ghf", Text
"application/vnd.groove-help")
    , (Text
"gif", Text
"image/gif")
    , (Text
"gim", Text
"application/vnd.groove-identity-message")
    , (Text
"gml", Text
"application/gml+xml")
    , (Text
"gmx", Text
"application/vnd.gmx")
    , (Text
"gnumeric", Text
"application/x-gnumeric")
    , (Text
"gph", Text
"application/vnd.flographit")
    , (Text
"gpx", Text
"application/gpx+xml")
    , (Text
"gqf", Text
"application/vnd.grafeq")
    , (Text
"gqs", Text
"application/vnd.grafeq")
    , (Text
"gram", Text
"application/srgs")
    , (Text
"gramps", Text
"application/x-gramps-xml")
    , (Text
"gre", Text
"application/vnd.geometry-explorer")
    , (Text
"grv", Text
"application/vnd.groove-injector")
    , (Text
"grxml", Text
"application/srgs+xml")
    , (Text
"gsf", Text
"application/x-font-ghostscript")
    , (Text
"gtar", Text
"application/x-gtar")
    , (Text
"gtm", Text
"application/vnd.groove-tool-message")
    , (Text
"gtw", Text
"model/vnd.gtw")
    , (Text
"gv", Text
"text/vnd.graphviz")
    , (Text
"gxf", Text
"application/gxf")
    , (Text
"gxt", Text
"application/vnd.geonext")
    , (Text
"h", Text
"text/x-c")
    , (Text
"h261", Text
"video/h261")
    , (Text
"h263", Text
"video/h263")
    , (Text
"h264", Text
"video/h264")
    , (Text
"hal", Text
"application/vnd.hal+xml")
    , (Text
"hbci", Text
"application/vnd.hbci")
    , (Text
"hdf", Text
"application/x-hdf")
    , (Text
"hh", Text
"text/x-c")
    , (Text
"hlp", Text
"application/winhlp")
    , (Text
"hpgl", Text
"application/vnd.hp-hpgl")
    , (Text
"hpid", Text
"application/vnd.hp-hpid")
    , (Text
"hps", Text
"application/vnd.hp-hps")
    , (Text
"hqx", Text
"application/mac-binhex40")
    , (Text
"htke", Text
"application/vnd.kenameaapp")
    , (Text
"htm", Text
"text/html")
    , (Text
"html", Text
"text/html")
    , (Text
"hvd", Text
"application/vnd.yamaha.hv-dic")
    , (Text
"hvp", Text
"application/vnd.yamaha.hv-voice")
    , (Text
"hvs", Text
"application/vnd.yamaha.hv-script")
    , (Text
"i2g", Text
"application/vnd.intergeo")
    , (Text
"icc", Text
"application/vnd.iccprofile")
    , (Text
"ice", Text
"x-conference/x-cooltalk")
    , (Text
"icm", Text
"application/vnd.iccprofile")
    , (Text
"ico", Text
"image/x-icon")
    , (Text
"ics", Text
"text/calendar")
    , (Text
"ief", Text
"image/ief")
    , (Text
"ifb", Text
"text/calendar")
    , (Text
"ifm", Text
"application/vnd.shana.informed.formdata")
    , (Text
"iges", Text
"model/iges")
    , (Text
"igl", Text
"application/vnd.igloader")
    , (Text
"igm", Text
"application/vnd.insors.igm")
    , (Text
"igs", Text
"model/iges")
    , (Text
"igx", Text
"application/vnd.micrografx.igx")
    , (Text
"iif", Text
"application/vnd.shana.informed.interchange")
    , (Text
"imp", Text
"application/vnd.accpac.simply.imp")
    , (Text
"ims", Text
"application/vnd.ms-ims")
    , (Text
"in", Text
"text/plain")
    , (Text
"ink", Text
"application/inkml+xml")
    , (Text
"inkml", Text
"application/inkml+xml")
    , (Text
"install", Text
"application/x-install-instructions")
    , (Text
"iota", Text
"application/vnd.astraea-software.iota")
    , (Text
"ipfix", Text
"application/ipfix")
    , (Text
"ipk", Text
"application/vnd.shana.informed.package")
    , (Text
"irm", Text
"application/vnd.ibm.rights-management")
    , (Text
"irp", Text
"application/vnd.irepository.package+xml")
    , (Text
"iso", Text
"application/x-iso9660-image")
    , (Text
"itp", Text
"application/vnd.shana.informed.formtemplate")
    , (Text
"ivp", Text
"application/vnd.immervision-ivp")
    , (Text
"ivu", Text
"application/vnd.immervision-ivu")
    , (Text
"jad", Text
"text/vnd.sun.j2me.app-descriptor")
    , (Text
"jam", Text
"application/vnd.jam")
    , (Text
"jar", Text
"application/java-archive")
    , (Text
"java", Text
"text/x-java-source")
    , (Text
"jisp", Text
"application/vnd.jisp")
    , (Text
"jlt", Text
"application/vnd.hp-jlyt")
    , (Text
"jnlp", Text
"application/x-java-jnlp-file")
    , (Text
"joda", Text
"application/vnd.joost.joda-archive")
    , (Text
"jpe", Text
"image/jpeg")
    , (Text
"jpeg", Text
"image/jpeg")
    , (Text
"jpg", Text
"image/jpeg")
    , (Text
"jpgm", Text
"video/jpm")
    , (Text
"jpgv", Text
"video/jpeg")
    , (Text
"jpm", Text
"video/jpm")
    , (Text
"js", Text
"application/javascript")
    , (Text
"json", Text
"application/json")
    , (Text
"jsonml", Text
"application/jsonml+json")
    , (Text
"kar", Text
"audio/midi")
    , (Text
"karbon", Text
"application/vnd.kde.karbon")
    , (Text
"kfo", Text
"application/vnd.kde.kformula")
    , (Text
"kia", Text
"application/vnd.kidspiration")
    , (Text
"kml", Text
"application/vnd.google-earth.kml+xml")
    , (Text
"kmz", Text
"application/vnd.google-earth.kmz")
    , (Text
"kne", Text
"application/vnd.kinar")
    , (Text
"knp", Text
"application/vnd.kinar")
    , (Text
"kon", Text
"application/vnd.kde.kontour")
    , (Text
"kpr", Text
"application/vnd.kde.kpresenter")
    , (Text
"kpt", Text
"application/vnd.kde.kpresenter")
    , (Text
"kpxx", Text
"application/vnd.ds-keypoint")
    , (Text
"ksp", Text
"application/vnd.kde.kspread")
    , (Text
"ktr", Text
"application/vnd.kahootz")
    , (Text
"ktx", Text
"image/ktx")
    , (Text
"ktz", Text
"application/vnd.kahootz")
    , (Text
"kwd", Text
"application/vnd.kde.kword")
    , (Text
"kwt", Text
"application/vnd.kde.kword")
    , (Text
"lasxml", Text
"application/vnd.las.las+xml")
    , (Text
"latex", Text
"application/x-latex")
    , (Text
"lbd", Text
"application/vnd.llamagraphics.life-balance.desktop")
    , (Text
"lbe", Text
"application/vnd.llamagraphics.life-balance.exchange+xml")
    , (Text
"les", Text
"application/vnd.hhe.lesson-player")
    , (Text
"lha", Text
"application/x-lzh-compressed")
    , (Text
"link66", Text
"application/vnd.route66.link66+xml")
    , (Text
"list", Text
"text/plain")
    , (Text
"list3820", Text
"application/vnd.ibm.modcap")
    , (Text
"listafp", Text
"application/vnd.ibm.modcap")
    , (Text
"lnk", Text
"application/x-ms-shortcut")
    , (Text
"log", Text
"text/plain")
    , (Text
"lostxml", Text
"application/lost+xml")
    , (Text
"lrf", Text
"application/octet-stream")
    , (Text
"lrm", Text
"application/vnd.ms-lrm")
    , (Text
"ltf", Text
"application/vnd.frogans.ltf")
    , (Text
"lvp", Text
"audio/vnd.lucent.voice")
    , (Text
"lwp", Text
"application/vnd.lotus-wordpro")
    , (Text
"lzh", Text
"application/x-lzh-compressed")
    , (Text
"m13", Text
"application/x-msmediaview")
    , (Text
"m14", Text
"application/x-msmediaview")
    , (Text
"m1v", Text
"video/mpeg")
    , (Text
"m21", Text
"application/mp21")
    , (Text
"m2a", Text
"audio/mpeg")
    , (Text
"m2v", Text
"video/mpeg")
    , (Text
"m3a", Text
"audio/mpeg")
    , (Text
"m3u", Text
"audio/x-mpegurl")
    , (Text
"m3u8", Text
"application/vnd.apple.mpegurl")
    , (Text
"m4a", Text
"audio/mp4")
    , (Text
"m4u", Text
"video/vnd.mpegurl")
    , (Text
"m4v", Text
"video/x-m4v")
    , (Text
"ma", Text
"application/mathematica")
    , (Text
"mads", Text
"application/mads+xml")
    , (Text
"mag", Text
"application/vnd.ecowin.chart")
    , (Text
"maker", Text
"application/vnd.framemaker")
    , (Text
"man", Text
"text/troff")
    , (Text
"mar", Text
"application/octet-stream")
    , (Text
"mathml", Text
"application/mathml+xml")
    , (Text
"mb", Text
"application/mathematica")
    , (Text
"mbk", Text
"application/vnd.mobius.mbk")
    , (Text
"mbox", Text
"application/mbox")
    , (Text
"mc1", Text
"application/vnd.medcalcdata")
    , (Text
"mcd", Text
"application/vnd.mcd")
    , (Text
"mcurl", Text
"text/vnd.curl.mcurl")
    , (Text
"mdb", Text
"application/x-msaccess")
    , (Text
"mdi", Text
"image/vnd.ms-modi")
    , (Text
"me", Text
"text/troff")
    , (Text
"mesh", Text
"model/mesh")
    , (Text
"meta4", Text
"application/metalink4+xml")
    , (Text
"metalink", Text
"application/metalink+xml")
    , (Text
"mets", Text
"application/mets+xml")
    , (Text
"mfm", Text
"application/vnd.mfmp")
    , (Text
"mft", Text
"application/rpki-manifest")
    , (Text
"mgp", Text
"application/vnd.osgeo.mapguide.package")
    , (Text
"mgz", Text
"application/vnd.proteus.magazine")
    , (Text
"mid", Text
"audio/midi")
    , (Text
"midi", Text
"audio/midi")
    , (Text
"mie", Text
"application/x-mie")
    , (Text
"mif", Text
"application/vnd.mif")
    , (Text
"mime", Text
"message/rfc822")
    , (Text
"mj2", Text
"video/mj2")
    , (Text
"mjp2", Text
"video/mj2")
    , (Text
"mk3d", Text
"video/x-matroska")
    , (Text
"mka", Text
"audio/x-matroska")
    , (Text
"mks", Text
"video/x-matroska")
    , (Text
"mkv", Text
"video/x-matroska")
    , (Text
"mlp", Text
"application/vnd.dolby.mlp")
    , (Text
"mmd", Text
"application/vnd.chipnuts.karaoke-mmd")
    , (Text
"mmf", Text
"application/vnd.smaf")
    , (Text
"mmr", Text
"image/vnd.fujixerox.edmics-mmr")
    , (Text
"mng", Text
"video/x-mng")
    , (Text
"mny", Text
"application/x-msmoney")
    , (Text
"mobi", Text
"application/x-mobipocket-ebook")
    , (Text
"mods", Text
"application/mods+xml")
    , (Text
"mov", Text
"video/quicktime")
    , (Text
"movie", Text
"video/x-sgi-movie")
    , (Text
"mp2", Text
"audio/mpeg")
    , (Text
"mp21", Text
"application/mp21")
    , (Text
"mp2a", Text
"audio/mpeg")
    , (Text
"mp3", Text
"audio/mpeg")
    , (Text
"mp4", Text
"video/mp4")
    , (Text
"mp4a", Text
"audio/mp4")
    , (Text
"mp4s", Text
"application/mp4")
    , (Text
"mp4v", Text
"video/mp4")
    , (Text
"mpc", Text
"application/vnd.mophun.certificate")
    , (Text
"mpe", Text
"video/mpeg")
    , (Text
"mpeg", Text
"video/mpeg")
    , (Text
"mpg", Text
"video/mpeg")
    , (Text
"mpg4", Text
"video/mp4")
    , (Text
"mpga", Text
"audio/mpeg")
    , (Text
"mpkg", Text
"application/vnd.apple.installer+xml")
    , (Text
"mpm", Text
"application/vnd.blueice.multipass")
    , (Text
"mpn", Text
"application/vnd.mophun.application")
    , (Text
"mpp", Text
"application/vnd.ms-project")
    , (Text
"mpt", Text
"application/vnd.ms-project")
    , (Text
"mpy", Text
"application/vnd.ibm.minipay")
    , (Text
"mqy", Text
"application/vnd.mobius.mqy")
    , (Text
"mrc", Text
"application/marc")
    , (Text
"mrcx", Text
"application/marcxml+xml")
    , (Text
"ms", Text
"text/troff")
    , (Text
"mscml", Text
"application/mediaservercontrol+xml")
    , (Text
"mseed", Text
"application/vnd.fdsn.mseed")
    , (Text
"mseq", Text
"application/vnd.mseq")
    , (Text
"msf", Text
"application/vnd.epson.msf")
    , (Text
"msh", Text
"model/mesh")
    , (Text
"msi", Text
"application/x-msdownload")
    , (Text
"msl", Text
"application/vnd.mobius.msl")
    , (Text
"msty", Text
"application/vnd.muvee.style")
    , (Text
"mts", Text
"model/vnd.mts")
    , (Text
"mus", Text
"application/vnd.musician")
    , (Text
"musicxml", Text
"application/vnd.recordare.musicxml+xml")
    , (Text
"mvb", Text
"application/x-msmediaview")
    , (Text
"mwf", Text
"application/vnd.mfer")
    , (Text
"mxf", Text
"application/mxf")
    , (Text
"mxl", Text
"application/vnd.recordare.musicxml")
    , (Text
"mxml", Text
"application/xv+xml")
    , (Text
"mxs", Text
"application/vnd.triscape.mxs")
    , (Text
"mxu", Text
"video/vnd.mpegurl")
    , (Text
"n-gage", Text
"application/vnd.nokia.n-gage.symbian.install")
    , (Text
"n3", Text
"text/n3")
    , (Text
"nb", Text
"application/mathematica")
    , (Text
"nbp", Text
"application/vnd.wolfram.player")
    , (Text
"nc", Text
"application/x-netcdf")
    , (Text
"ncx", Text
"application/x-dtbncx+xml")
    , (Text
"nfo", Text
"text/x-nfo")
    , (Text
"ngdat", Text
"application/vnd.nokia.n-gage.data")
    , (Text
"nitf", Text
"application/vnd.nitf")
    , (Text
"nlu", Text
"application/vnd.neurolanguage.nlu")
    , (Text
"nml", Text
"application/vnd.enliven")
    , (Text
"nnd", Text
"application/vnd.noblenet-directory")
    , (Text
"nns", Text
"application/vnd.noblenet-sealer")
    , (Text
"nnw", Text
"application/vnd.noblenet-web")
    , (Text
"npx", Text
"image/vnd.net-fpx")
    , (Text
"nsc", Text
"application/x-conference")
    , (Text
"nsf", Text
"application/vnd.lotus-notes")
    , (Text
"ntf", Text
"application/vnd.nitf")
    , (Text
"nzb", Text
"application/x-nzb")
    , (Text
"oa2", Text
"application/vnd.fujitsu.oasys2")
    , (Text
"oa3", Text
"application/vnd.fujitsu.oasys3")
    , (Text
"oas", Text
"application/vnd.fujitsu.oasys")
    , (Text
"obd", Text
"application/x-msbinder")
    , (Text
"obj", Text
"application/x-tgif")
    , (Text
"oda", Text
"application/oda")
    , (Text
"odb", Text
"application/vnd.oasis.opendocument.database")
    , (Text
"odc", Text
"application/vnd.oasis.opendocument.chart")
    , (Text
"odf", Text
"application/vnd.oasis.opendocument.formula")
    , (Text
"odft", Text
"application/vnd.oasis.opendocument.formula-template")
    , (Text
"odg", Text
"application/vnd.oasis.opendocument.graphics")
    , (Text
"odi", Text
"application/vnd.oasis.opendocument.image")
    , (Text
"odm", Text
"application/vnd.oasis.opendocument.text-master")
    , (Text
"odp", Text
"application/vnd.oasis.opendocument.presentation")
    , (Text
"ods", Text
"application/vnd.oasis.opendocument.spreadsheet")
    , (Text
"odt", Text
"application/vnd.oasis.opendocument.text")
    , (Text
"oga", Text
"audio/ogg")
    , (Text
"ogg", Text
"audio/ogg")
    , (Text
"ogv", Text
"video/ogg")
    , (Text
"ogx", Text
"application/ogg")
    , (Text
"omdoc", Text
"application/omdoc+xml")
    , (Text
"onepkg", Text
"application/onenote")
    , (Text
"onetmp", Text
"application/onenote")
    , (Text
"onetoc", Text
"application/onenote")
    , (Text
"onetoc2", Text
"application/onenote")
    , (Text
"opf", Text
"application/oebps-package+xml")
    , (Text
"opml", Text
"text/x-opml")
    , (Text
"oprc", Text
"application/vnd.palm")
    , (Text
"opus", Text
"audio/ogg")
    , (Text
"org", Text
"application/vnd.lotus-organizer")
    , (Text
"osf", Text
"application/vnd.yamaha.openscoreformat")
    , (Text
"osfpvg", Text
"application/vnd.yamaha.openscoreformat.osfpvg+xml")
    , (Text
"otc", Text
"application/vnd.oasis.opendocument.chart-template")
    , (Text
"otf", Text
"font/otf")
    , (Text
"otg", Text
"application/vnd.oasis.opendocument.graphics-template")
    , (Text
"oth", Text
"application/vnd.oasis.opendocument.text-web")
    , (Text
"oti", Text
"application/vnd.oasis.opendocument.image-template")
    , (Text
"otp", Text
"application/vnd.oasis.opendocument.presentation-template")
    , (Text
"ots", Text
"application/vnd.oasis.opendocument.spreadsheet-template")
    , (Text
"ott", Text
"application/vnd.oasis.opendocument.text-template")
    , (Text
"oxps", Text
"application/oxps")
    , (Text
"oxt", Text
"application/vnd.openofficeorg.extension")
    , (Text
"p", Text
"text/x-pascal")
    , (Text
"p10", Text
"application/pkcs10")
    , (Text
"p12", Text
"application/x-pkcs12")
    , (Text
"p7b", Text
"application/x-pkcs7-certificates")
    , (Text
"p7c", Text
"application/pkcs7-mime")
    , (Text
"p7m", Text
"application/pkcs7-mime")
    , (Text
"p7r", Text
"application/x-pkcs7-certreqresp")
    , (Text
"p7s", Text
"application/pkcs7-signature")
    , (Text
"p8", Text
"application/pkcs8")
    , (Text
"pas", Text
"text/x-pascal")
    , (Text
"paw", Text
"application/vnd.pawaafile")
    , (Text
"pbd", Text
"application/vnd.powerbuilder6")
    , (Text
"pbm", Text
"image/x-portable-bitmap")
    , (Text
"pcap", Text
"application/vnd.tcpdump.pcap")
    , (Text
"pcf", Text
"application/x-font-pcf")
    , (Text
"pcl", Text
"application/vnd.hp-pcl")
    , (Text
"pclxl", Text
"application/vnd.hp-pclxl")
    , (Text
"pct", Text
"image/x-pict")
    , (Text
"pcurl", Text
"application/vnd.curl.pcurl")
    , (Text
"pcx", Text
"image/x-pcx")
    , (Text
"pdb", Text
"application/vnd.palm")
    , (Text
"pdf", Text
"application/pdf")
    , (Text
"pfa", Text
"application/x-font-type1")
    , (Text
"pfb", Text
"application/x-font-type1")
    , (Text
"pfm", Text
"application/x-font-type1")
    , (Text
"pfr", Text
"application/font-tdpfr")
    , (Text
"pfx", Text
"application/x-pkcs12")
    , (Text
"pgm", Text
"image/x-portable-graymap")
    , (Text
"pgn", Text
"application/x-chess-pgn")
    , (Text
"pgp", Text
"application/pgp-encrypted")
    , (Text
"pic", Text
"image/x-pict")
    , (Text
"pkg", Text
"application/octet-stream")
    , (Text
"pki", Text
"application/pkixcmp")
    , (Text
"pkipath", Text
"application/pkix-pkipath")
    , (Text
"plb", Text
"application/vnd.3gpp.pic-bw-large")
    , (Text
"plc", Text
"application/vnd.mobius.plc")
    , (Text
"plf", Text
"application/vnd.pocketlearn")
    , (Text
"pls", Text
"application/pls+xml")
    , (Text
"pml", Text
"application/vnd.ctc-posml")
    , (Text
"png", Text
"image/png")
    , (Text
"pnm", Text
"image/x-portable-anymap")
    , (Text
"portpkg", Text
"application/vnd.macports.portpkg")
    , (Text
"pot", Text
"application/vnd.ms-powerpoint")
    , (Text
"potm", Text
"application/vnd.ms-powerpoint.template.macroenabled.12")
    , (Text
"potx", Text
"application/vnd.openxmlformats-officedocument.presentationml.template")
    , (Text
"ppam", Text
"application/vnd.ms-powerpoint.addin.macroenabled.12")
    , (Text
"ppd", Text
"application/vnd.cups-ppd")
    , (Text
"ppm", Text
"image/x-portable-pixmap")
    , (Text
"pps", Text
"application/vnd.ms-powerpoint")
    , (Text
"ppsm", Text
"application/vnd.ms-powerpoint.slideshow.macroenabled.12")
    , (Text
"ppsx", Text
"application/vnd.openxmlformats-officedocument.presentationml.slideshow")
    , (Text
"ppt", Text
"application/vnd.ms-powerpoint")
    , (Text
"pptm", Text
"application/vnd.ms-powerpoint.presentation.macroenabled.12")
    , (Text
"pptx", Text
"application/vnd.openxmlformats-officedocument.presentationml.presentation")
    , (Text
"pqa", Text
"application/vnd.palm")
    , (Text
"prc", Text
"application/x-mobipocket-ebook")
    , (Text
"pre", Text
"application/vnd.lotus-freelance")
    , (Text
"prf", Text
"application/pics-rules")
    , (Text
"ps", Text
"application/postscript")
    , (Text
"psb", Text
"application/vnd.3gpp.pic-bw-small")
    , (Text
"psd", Text
"image/vnd.adobe.photoshop")
    , (Text
"psf", Text
"application/x-font-linux-psf")
    , (Text
"pskcxml", Text
"application/pskc+xml")
    , (Text
"ptid", Text
"application/vnd.pvi.ptid1")
    , (Text
"pub", Text
"application/x-mspublisher")
    , (Text
"pvb", Text
"application/vnd.3gpp.pic-bw-var")
    , (Text
"pwn", Text
"application/vnd.3m.post-it-notes")
    , (Text
"pya", Text
"audio/vnd.ms-playready.media.pya")
    , (Text
"pyv", Text
"video/vnd.ms-playready.media.pyv")
    , (Text
"qam", Text
"application/vnd.epson.quickanime")
    , (Text
"qbo", Text
"application/vnd.intu.qbo")
    , (Text
"qfx", Text
"application/vnd.intu.qfx")
    , (Text
"qps", Text
"application/vnd.publishare-delta-tree")
    , (Text
"qt", Text
"video/quicktime")
    , (Text
"qwd", Text
"application/vnd.quark.quarkxpress")
    , (Text
"qwt", Text
"application/vnd.quark.quarkxpress")
    , (Text
"qxb", Text
"application/vnd.quark.quarkxpress")
    , (Text
"qxd", Text
"application/vnd.quark.quarkxpress")
    , (Text
"qxl", Text
"application/vnd.quark.quarkxpress")
    , (Text
"qxt", Text
"application/vnd.quark.quarkxpress")
    , (Text
"ra", Text
"audio/x-pn-realaudio")
    , (Text
"ram", Text
"audio/x-pn-realaudio")
    , (Text
"rar", Text
"application/x-rar-compressed")
    , (Text
"ras", Text
"image/x-cmu-raster")
    , (Text
"rcprofile", Text
"application/vnd.ipunplugged.rcprofile")
    , (Text
"rdf", Text
"application/rdf+xml")
    , (Text
"rdz", Text
"application/vnd.data-vision.rdz")
    , (Text
"rep", Text
"application/vnd.businessobjects")
    , (Text
"res", Text
"application/x-dtbresource+xml")
    , (Text
"rgb", Text
"image/x-rgb")
    , (Text
"rif", Text
"application/reginfo+xml")
    , (Text
"rip", Text
"audio/vnd.rip")
    , (Text
"ris", Text
"application/x-research-info-systems")
    , (Text
"rl", Text
"application/resource-lists+xml")
    , (Text
"rlc", Text
"image/vnd.fujixerox.edmics-rlc")
    , (Text
"rld", Text
"application/resource-lists-diff+xml")
    , (Text
"rm", Text
"application/vnd.rn-realmedia")
    , (Text
"rmi", Text
"audio/midi")
    , (Text
"rmp", Text
"audio/x-pn-realaudio-plugin")
    , (Text
"rms", Text
"application/vnd.jcp.javame.midlet-rms")
    , (Text
"rmvb", Text
"application/vnd.rn-realmedia-vbr")
    , (Text
"rnc", Text
"application/relax-ng-compact-syntax")
    , (Text
"roa", Text
"application/rpki-roa")
    , (Text
"roff", Text
"text/troff")
    , (Text
"rp9", Text
"application/vnd.cloanto.rp9")
    , (Text
"rpss", Text
"application/vnd.nokia.radio-presets")
    , (Text
"rpst", Text
"application/vnd.nokia.radio-preset")
    , (Text
"rq", Text
"application/sparql-query")
    , (Text
"rs", Text
"application/rls-services+xml")
    , (Text
"rsd", Text
"application/rsd+xml")
    , (Text
"rss", Text
"application/rss+xml")
    , (Text
"rtf", Text
"application/rtf")
    , (Text
"rtx", Text
"text/richtext")
    , (Text
"s", Text
"text/x-asm")
    , (Text
"s3m", Text
"audio/s3m")
    , (Text
"saf", Text
"application/vnd.yamaha.smaf-audio")
    , (Text
"sbml", Text
"application/sbml+xml")
    , (Text
"sc", Text
"application/vnd.ibm.secure-container")
    , (Text
"scd", Text
"application/x-msschedule")
    , (Text
"scm", Text
"application/vnd.lotus-screencam")
    , (Text
"scq", Text
"application/scvp-cv-request")
    , (Text
"scs", Text
"application/scvp-cv-response")
    , (Text
"scurl", Text
"text/vnd.curl.scurl")
    , (Text
"sda", Text
"application/vnd.stardivision.draw")
    , (Text
"sdc", Text
"application/vnd.stardivision.calc")
    , (Text
"sdd", Text
"application/vnd.stardivision.impress")
    , (Text
"sdkd", Text
"application/vnd.solent.sdkm+xml")
    , (Text
"sdkm", Text
"application/vnd.solent.sdkm+xml")
    , (Text
"sdp", Text
"application/sdp")
    , (Text
"sdw", Text
"application/vnd.stardivision.writer")
    , (Text
"see", Text
"application/vnd.seemail")
    , (Text
"seed", Text
"application/vnd.fdsn.seed")
    , (Text
"sema", Text
"application/vnd.sema")
    , (Text
"semd", Text
"application/vnd.semd")
    , (Text
"semf", Text
"application/vnd.semf")
    , (Text
"ser", Text
"application/java-serialized-object")
    , (Text
"setpay", Text
"application/set-payment-initiation")
    , (Text
"setreg", Text
"application/set-registration-initiation")
    , (Text
"sfd-hdstx", Text
"application/vnd.hydrostatix.sof-data")
    , (Text
"sfs", Text
"application/vnd.spotfire.sfs")
    , (Text
"sfv", Text
"text/x-sfv")
    , (Text
"sgi", Text
"image/sgi")
    , (Text
"sgl", Text
"application/vnd.stardivision.writer-global")
    , (Text
"sgm", Text
"text/sgml")
    , (Text
"sgml", Text
"text/sgml")
    , (Text
"sh", Text
"application/x-sh")
    , (Text
"shar", Text
"application/x-shar")
    , (Text
"shf", Text
"application/shf+xml")
    , (Text
"sid", Text
"image/x-mrsid-image")
    , (Text
"sig", Text
"application/pgp-signature")
    , (Text
"sil", Text
"audio/silk")
    , (Text
"silo", Text
"model/mesh")
    , (Text
"sis", Text
"application/vnd.symbian.install")
    , (Text
"sisx", Text
"application/vnd.symbian.install")
    , (Text
"sit", Text
"application/x-stuffit")
    , (Text
"sitx", Text
"application/x-stuffitx")
    , (Text
"skd", Text
"application/vnd.koan")
    , (Text
"skm", Text
"application/vnd.koan")
    , (Text
"skp", Text
"application/vnd.koan")
    , (Text
"skt", Text
"application/vnd.koan")
    , (Text
"sldm", Text
"application/vnd.ms-powerpoint.slide.macroenabled.12")
    , (Text
"sldx", Text
"application/vnd.openxmlformats-officedocument.presentationml.slide")
    , (Text
"slt", Text
"application/vnd.epson.salt")
    , (Text
"sm", Text
"application/vnd.stepmania.stepchart")
    , (Text
"smf", Text
"application/vnd.stardivision.math")
    , (Text
"smi", Text
"application/smil+xml")
    , (Text
"smil", Text
"application/smil+xml")
    , (Text
"smv", Text
"video/x-smv")
    , (Text
"smzip", Text
"application/vnd.stepmania.package")
    , (Text
"snd", Text
"audio/basic")
    , (Text
"snf", Text
"application/x-font-snf")
    , (Text
"so", Text
"application/octet-stream")
    , (Text
"spc", Text
"application/x-pkcs7-certificates")
    , (Text
"spf", Text
"application/vnd.yamaha.smaf-phrase")
    , (Text
"spl", Text
"application/x-futuresplash")
    , (Text
"spot", Text
"text/vnd.in3d.spot")
    , (Text
"spp", Text
"application/scvp-vp-response")
    , (Text
"spq", Text
"application/scvp-vp-request")
    , (Text
"spx", Text
"audio/ogg")
    , (Text
"sql", Text
"application/x-sql")
    , (Text
"src", Text
"application/x-wais-source")
    , (Text
"srt", Text
"application/x-subrip")
    , (Text
"sru", Text
"application/sru+xml")
    , (Text
"srx", Text
"application/sparql-results+xml")
    , (Text
"ssdl", Text
"application/ssdl+xml")
    , (Text
"sse", Text
"application/vnd.kodak-descriptor")
    , (Text
"ssf", Text
"application/vnd.epson.ssf")
    , (Text
"ssml", Text
"application/ssml+xml")
    , (Text
"st", Text
"application/vnd.sailingtracker.track")
    , (Text
"stc", Text
"application/vnd.sun.xml.calc.template")
    , (Text
"std", Text
"application/vnd.sun.xml.draw.template")
    , (Text
"stf", Text
"application/vnd.wt.stf")
    , (Text
"sti", Text
"application/vnd.sun.xml.impress.template")
    , (Text
"stk", Text
"application/hyperstudio")
    , (Text
"stl", Text
"application/vnd.ms-pki.stl")
    , (Text
"str", Text
"application/vnd.pg.format")
    , (Text
"stw", Text
"application/vnd.sun.xml.writer.template")
    , (Text
"sub", Text
"image/vnd.dvb.subtitle")
    , (Text
"sub", Text
"text/vnd.dvb.subtitle")
    , (Text
"sus", Text
"application/vnd.sus-calendar")
    , (Text
"susp", Text
"application/vnd.sus-calendar")
    , (Text
"sv4cpio", Text
"application/x-sv4cpio")
    , (Text
"sv4crc", Text
"application/x-sv4crc")
    , (Text
"svc", Text
"application/vnd.dvb.service")
    , (Text
"svd", Text
"application/vnd.svd")
    , (Text
"svg", Text
"image/svg+xml")
    , (Text
"svgz", Text
"image/svg+xml")
    , (Text
"swa", Text
"application/x-director")
    , (Text
"swf", Text
"application/x-shockwave-flash")
    , (Text
"swi", Text
"application/vnd.aristanetworks.swi")
    , (Text
"sxc", Text
"application/vnd.sun.xml.calc")
    , (Text
"sxd", Text
"application/vnd.sun.xml.draw")
    , (Text
"sxg", Text
"application/vnd.sun.xml.writer.global")
    , (Text
"sxi", Text
"application/vnd.sun.xml.impress")
    , (Text
"sxm", Text
"application/vnd.sun.xml.math")
    , (Text
"sxw", Text
"application/vnd.sun.xml.writer")
    , (Text
"t", Text
"text/troff")
    , (Text
"t3", Text
"application/x-t3vm-image")
    , (Text
"taglet", Text
"application/vnd.mynfc")
    , (Text
"tao", Text
"application/vnd.tao.intent-module-archive")
    , (Text
"tar", Text
"application/x-tar")
    , (Text
"tcap", Text
"application/vnd.3gpp2.tcap")
    , (Text
"tcl", Text
"application/x-tcl")
    , (Text
"teacher", Text
"application/vnd.smart.teacher")
    , (Text
"tei", Text
"application/tei+xml")
    , (Text
"teicorpus", Text
"application/tei+xml")
    , (Text
"tex", Text
"application/x-tex")
    , (Text
"texi", Text
"application/x-texinfo")
    , (Text
"texinfo", Text
"application/x-texinfo")
    , (Text
"text", Text
"text/plain")
    , (Text
"tfi", Text
"application/thraud+xml")
    , (Text
"tfm", Text
"application/x-tex-tfm")
    , (Text
"tga", Text
"image/x-tga")
    , (Text
"thmx", Text
"application/vnd.ms-officetheme")
    , (Text
"tif", Text
"image/tiff")
    , (Text
"tiff", Text
"image/tiff")
    , (Text
"tmo", Text
"application/vnd.tmobile-livetv")
    , (Text
"torrent", Text
"application/x-bittorrent")
    , (Text
"tpl", Text
"application/vnd.groove-tool-template")
    , (Text
"tpt", Text
"application/vnd.trid.tpt")
    , (Text
"tr", Text
"text/troff")
    , (Text
"tra", Text
"application/vnd.trueapp")
    , (Text
"trm", Text
"application/x-msterminal")
    , (Text
"tsd", Text
"application/timestamped-data")
    , (Text
"tsv", Text
"text/tab-separated-values")
    , (Text
"ttc", Text
"font/collection")
    , (Text
"ttf", Text
"font/ttf")
    , (Text
"ttl", Text
"text/turtle")
    , (Text
"twd", Text
"application/vnd.simtech-mindmapper")
    , (Text
"twds", Text
"application/vnd.simtech-mindmapper")
    , (Text
"txd", Text
"application/vnd.genomatix.tuxedo")
    , (Text
"txf", Text
"application/vnd.mobius.txf")
    , (Text
"txt", Text
"text/plain")
    , (Text
"u32", Text
"application/x-authorware-bin")
    , (Text
"udeb", Text
"application/x-debian-package")
    , (Text
"ufd", Text
"application/vnd.ufdl")
    , (Text
"ufdl", Text
"application/vnd.ufdl")
    , (Text
"ulx", Text
"application/x-glulx")
    , (Text
"umj", Text
"application/vnd.umajin")
    , (Text
"unityweb", Text
"application/vnd.unity")
    , (Text
"uoml", Text
"application/vnd.uoml+xml")
    , (Text
"uri", Text
"text/uri-list")
    , (Text
"uris", Text
"text/uri-list")
    , (Text
"urls", Text
"text/uri-list")
    , (Text
"ustar", Text
"application/x-ustar")
    , (Text
"utz", Text
"application/vnd.uiq.theme")
    , (Text
"uu", Text
"text/x-uuencode")
    , (Text
"uva", Text
"audio/vnd.dece.audio")
    , (Text
"uvd", Text
"application/vnd.dece.data")
    , (Text
"uvf", Text
"application/vnd.dece.data")
    , (Text
"uvg", Text
"image/vnd.dece.graphic")
    , (Text
"uvh", Text
"video/vnd.dece.hd")
    , (Text
"uvi", Text
"image/vnd.dece.graphic")
    , (Text
"uvm", Text
"video/vnd.dece.mobile")
    , (Text
"uvp", Text
"video/vnd.dece.pd")
    , (Text
"uvs", Text
"video/vnd.dece.sd")
    , (Text
"uvt", Text
"application/vnd.dece.ttml+xml")
    , (Text
"uvu", Text
"video/vnd.uvvu.mp4")
    , (Text
"uvv", Text
"video/vnd.dece.video")
    , (Text
"uvva", Text
"audio/vnd.dece.audio")
    , (Text
"uvvd", Text
"application/vnd.dece.data")
    , (Text
"uvvf", Text
"application/vnd.dece.data")
    , (Text
"uvvg", Text
"image/vnd.dece.graphic")
    , (Text
"uvvh", Text
"video/vnd.dece.hd")
    , (Text
"uvvi", Text
"image/vnd.dece.graphic")
    , (Text
"uvvm", Text
"video/vnd.dece.mobile")
    , (Text
"uvvp", Text
"video/vnd.dece.pd")
    , (Text
"uvvs", Text
"video/vnd.dece.sd")
    , (Text
"uvvt", Text
"application/vnd.dece.ttml+xml")
    , (Text
"uvvu", Text
"video/vnd.uvvu.mp4")
    , (Text
"uvvv", Text
"video/vnd.dece.video")
    , (Text
"uvvx", Text
"application/vnd.dece.unspecified")
    , (Text
"uvvz", Text
"application/vnd.dece.zip")
    , (Text
"uvx", Text
"application/vnd.dece.unspecified")
    , (Text
"uvz", Text
"application/vnd.dece.zip")
    , (Text
"vcard", Text
"text/vcard")
    , (Text
"vcd", Text
"application/x-cdlink")
    , (Text
"vcf", Text
"text/x-vcard")
    , (Text
"vcg", Text
"application/vnd.groove-vcard")
    , (Text
"vcs", Text
"text/x-vcalendar")
    , (Text
"vcx", Text
"application/vnd.vcx")
    , (Text
"vis", Text
"application/vnd.visionary")
    , (Text
"viv", Text
"video/vnd.vivo")
    , (Text
"vob", Text
"video/x-ms-vob")
    , (Text
"vor", Text
"application/vnd.stardivision.writer")
    , (Text
"vox", Text
"application/x-authorware-bin")
    , (Text
"vrml", Text
"model/vrml")
    , (Text
"vsd", Text
"application/vnd.visio")
    , (Text
"vsf", Text
"application/vnd.vsf")
    , (Text
"vss", Text
"application/vnd.visio")
    , (Text
"vst", Text
"application/vnd.visio")
    , (Text
"vsw", Text
"application/vnd.visio")
    , (Text
"vtu", Text
"model/vnd.vtu")
    , (Text
"vxml", Text
"application/voicexml+xml")
    , (Text
"w3d", Text
"application/x-director")
    , (Text
"wad", Text
"application/x-doom")
    , (Text
"wav", Text
"audio/x-wav")
    , (Text
"wax", Text
"audio/x-ms-wax")
    , (Text
"wbmp", Text
"image/vnd.wap.wbmp")
    , (Text
"wbs", Text
"application/vnd.criticaltools.wbs+xml")
    , (Text
"wbxml", Text
"application/vnd.wap.wbxml")
    , (Text
"wcm", Text
"application/vnd.ms-works")
    , (Text
"wdb", Text
"application/vnd.ms-works")
    , (Text
"wdp", Text
"image/vnd.ms-photo")
    , (Text
"weba", Text
"audio/webm")
    , (Text
"webm", Text
"video/webm")
    , (Text
"webp", Text
"image/webp")
    , (Text
"wg", Text
"application/vnd.pmi.widget")
    , (Text
"wgt", Text
"application/widget")
    , (Text
"wks", Text
"application/vnd.ms-works")
    , (Text
"wm", Text
"video/x-ms-wm")
    , (Text
"wma", Text
"audio/x-ms-wma")
    , (Text
"wmd", Text
"application/x-ms-wmd")
    , (Text
"wmf", Text
"application/x-msmetafile")
    , (Text
"wml", Text
"text/vnd.wap.wml")
    , (Text
"wmlc", Text
"application/vnd.wap.wmlc")
    , (Text
"wmls", Text
"text/vnd.wap.wmlscript")
    , (Text
"wmlsc", Text
"application/vnd.wap.wmlscriptc")
    , (Text
"wmv", Text
"video/x-ms-wmv")
    , (Text
"wmx", Text
"video/x-ms-wmx")
    , (Text
"wmz", Text
"application/x-ms-wmz")
    , (Text
"wmz", Text
"application/x-msmetafile")
    , (Text
"woff", Text
"font/woff")
    , (Text
"woff2", Text
"font/woff2")
    , (Text
"wpd", Text
"application/vnd.wordperfect")
    , (Text
"wpl", Text
"application/vnd.ms-wpl")
    , (Text
"wps", Text
"application/vnd.ms-works")
    , (Text
"wqd", Text
"application/vnd.wqd")
    , (Text
"wri", Text
"application/x-mswrite")
    , (Text
"wrl", Text
"model/vrml")
    , (Text
"wsdl", Text
"application/wsdl+xml")
    , (Text
"wspolicy", Text
"application/wspolicy+xml")
    , (Text
"wtb", Text
"application/vnd.webturbo")
    , (Text
"wvx", Text
"video/x-ms-wvx")
    , (Text
"x32", Text
"application/x-authorware-bin")
    , (Text
"x3d", Text
"model/x3d+xml")
    , (Text
"x3db", Text
"model/x3d+binary")
    , (Text
"x3dbz", Text
"model/x3d+binary")
    , (Text
"x3dv", Text
"model/x3d+vrml")
    , (Text
"x3dvz", Text
"model/x3d+vrml")
    , (Text
"x3dz", Text
"model/x3d+xml")
    , (Text
"xaml", Text
"application/xaml+xml")
    , (Text
"xap", Text
"application/x-silverlight-app")
    , (Text
"xar", Text
"application/vnd.xara")
    , (Text
"xbap", Text
"application/x-ms-xbap")
    , (Text
"xbd", Text
"application/vnd.fujixerox.docuworks.binder")
    , (Text
"xbm", Text
"image/x-xbitmap")
    , (Text
"xdf", Text
"application/xcap-diff+xml")
    , (Text
"xdm", Text
"application/vnd.syncml.dm+xml")
    , (Text
"xdp", Text
"application/vnd.adobe.xdp+xml")
    , (Text
"xdssc", Text
"application/dssc+xml")
    , (Text
"xdw", Text
"application/vnd.fujixerox.docuworks")
    , (Text
"xenc", Text
"application/xenc+xml")
    , (Text
"xer", Text
"application/patch-ops-error+xml")
    , (Text
"xfdf", Text
"application/vnd.adobe.xfdf")
    , (Text
"xfdl", Text
"application/vnd.xfdl")
    , (Text
"xht", Text
"application/xhtml+xml")
    , (Text
"xhtml", Text
"application/xhtml+xml")
    , (Text
"xhvml", Text
"application/xv+xml")
    , (Text
"xif", Text
"image/vnd.xiff")
    , (Text
"xla", Text
"application/vnd.ms-excel")
    , (Text
"xlam", Text
"application/vnd.ms-excel.addin.macroenabled.12")
    , (Text
"xlc", Text
"application/vnd.ms-excel")
    , (Text
"xlf", Text
"application/x-xliff+xml")
    , (Text
"xlm", Text
"application/vnd.ms-excel")
    , (Text
"xls", Text
"application/vnd.ms-excel")
    , (Text
"xlsb", Text
"application/vnd.ms-excel.sheet.binary.macroenabled.12")
    , (Text
"xlsm", Text
"application/vnd.ms-excel.sheet.macroenabled.12")
    , (Text
"xlsx", Text
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
    , (Text
"xlt", Text
"application/vnd.ms-excel")
    , (Text
"xltm", Text
"application/vnd.ms-excel.template.macroenabled.12")
    , (Text
"xltx", Text
"application/vnd.openxmlformats-officedocument.spreadsheetml.template")
    , (Text
"xlw", Text
"application/vnd.ms-excel")
    , (Text
"xm", Text
"audio/xm")
    , (Text
"xml", Text
"application/xml")
    , (Text
"xo", Text
"application/vnd.olpc-sugar")
    , (Text
"xop", Text
"application/xop+xml")
    , (Text
"xpi", Text
"application/x-xpinstall")
    , (Text
"xpl", Text
"application/xproc+xml")
    , (Text
"xpm", Text
"image/x-xpixmap")
    , (Text
"xpr", Text
"application/vnd.is-xpr")
    , (Text
"xps", Text
"application/vnd.ms-xpsdocument")
    , (Text
"xpw", Text
"application/vnd.intercon.formnet")
    , (Text
"xpx", Text
"application/vnd.intercon.formnet")
    , (Text
"xsl", Text
"application/xml")
    , (Text
"xslt", Text
"application/xslt+xml")
    , (Text
"xsm", Text
"application/vnd.syncml+xml")
    , (Text
"xspf", Text
"application/xspf+xml")
    , (Text
"xul", Text
"application/vnd.mozilla.xul+xml")
    , (Text
"xvm", Text
"application/xv+xml")
    , (Text
"xvml", Text
"application/xv+xml")
    , (Text
"xwd", Text
"image/x-xwindowdump")
    , (Text
"xyz", Text
"chemical/x-xyz")
    , (Text
"xz", Text
"application/x-xz")
    , (Text
"yang", Text
"application/yang")
    , (Text
"yin", Text
"application/yin+xml")
    , (Text
"z1", Text
"application/x-zmachine")
    , (Text
"z2", Text
"application/x-zmachine")
    , (Text
"z3", Text
"application/x-zmachine")
    , (Text
"z4", Text
"application/x-zmachine")
    , (Text
"z5", Text
"application/x-zmachine")
    , (Text
"z6", Text
"application/x-zmachine")
    , (Text
"z7", Text
"application/x-zmachine")
    , (Text
"z8", Text
"application/x-zmachine")
    , (Text
"zaz", Text
"application/vnd.zzazz.deck+xml")
    , (Text
"zip", Text
"application/zip")
    , (Text
"zir", Text
"application/vnd.zul")
    , (Text
"zirz", Text
"application/vnd.zul")
    , (Text
"zmm", Text
"application/vnd.handheld-entertainment+xml")
    ]