Skip to content

Instantly share code, notes, and snippets.

@bamthomas
Created April 30, 2019 12:11
Show Gist options
  • Save bamthomas/000fd73decb0bedf79770ae45264ae79 to your computer and use it in GitHub Desktop.
Save bamthomas/000fd73decb0bedf79770ae45264ae79 to your computer and use it in GitHub Desktop.
Class to get a file extension with its mime type
package org.icij.datashare;
import java.util.HashMap;
import java.util.Map;
import static java.util.Arrays.stream;
import static java.util.Collections.unmodifiableMap;
public class FileExtension {
private static final Map<String, String> mimeTypesExtensions;
public static String get(final String mimeType) {
return mimeTypesExtensions.getOrDefault(mimeType, "bin");
}
static {
mimeTypesExtensions = unmodifiableMap(createMap());
}
private static void putList(Map<String, String> map, String extension, String... mimeTypes) {
stream(mimeTypes).forEach(mt -> map.put(mt, extension));
}
private static Map<String, String> createMap() {
Map<String, String> map = new HashMap<>();
map.put("x-world/x-3dmf", "3dm");
map.put("text/vnd.in3d.3dml", "3dml");
map.put("image/x-3ds", "3ds");
map.put("video/3gpp2", "3g2");
map.put("video/3gpp", "3gp");
map.put("application/x-7z-compressed", "7z");
map.put("application/x-authorware-bin", "aab");
map.put("audio/x-aac", "aac");
map.put("application/x-authorware-map", "aam");
map.put("application/x-authorware-seg", "aas");
map.put("text/vnd.abc", "abc");
map.put("application/x-abiword", "abw");
map.put("application/pkix-attr-cert", "ac");
map.put("application/vnd.americandynamics.acc", "acc");
map.put("application/x-ace-compressed", "ace");
map.put("text/html", "acgi");
map.put("application/vnd.acucobol", "acu");
map.put("application/vnd.acucorp", "acutc");
map.put("audio/adpcm", "adp");
map.put("application/vnd.audiograph", "aep");
map.put("video/animaflex", "afl");
map.put("application/x-font-type1", "afm");
map.put("application/vnd.ibm.modcap", "afp");
map.put("application/vnd.ahead.space", "ahead");
map.put("application/postscript", "ai");
map.put("audio/aiff", "aif");
map.put("application/x-aim", "aim");
map.put("text/x-audiosoft-intra", "aip");
map.put("application/vnd.adobe.air-application-installer-package+zip", "air");
map.put("application/vnd.dvb.ait", "ait");
map.put("application/vnd.amiga.ami", "ami");
map.put("application/x-navi-animation", "ani");
map.put("application/x-nokia-9000-communicator-add-on-software", "aos");
map.put("application/vnd.android.package-archive", "apk");
map.put("text/cache-manifest", "appcache");
map.put("application/x-ms-application", "application");
map.put("application/vnd.lotus-approach", "apr");
map.put("application/mime", "aps");
map.put("application/x-freearc", "arc");
map.put("application/arj", "arj");
map.put("image/x-jg", "art");
map.put("application/pgp-signature", "asc");
map.put("video/x-ms-asf", "asf");
map.put("text/x-asm", "asm");
map.put("application/vnd.accpac.simply.aso", "aso");
map.put("text/asp", "asp");
map.put("application/x-mplayer2", "asx");
map.put("video/x-ms-asf", "asx");
map.put("video/x-ms-asf-plugin", "asx");
map.put("application/vnd.acucorp", "atc");
map.put("application/atom+xml", "atom");
map.put("application/atomcat+xml", "atomcat");
map.put("application/atomsvc+xml", "atomsvc");
map.put("application/vnd.antix.game-component", "atx");
map.put("audio/basic", "au");
putList(map, "avi", "application/x-troff-msvideo", "video/avi", "video/msvideo", "video/x-msvideo");
map.put("video/avs-video", "avs");
map.put("application/applixware", "aw");
map.put("application/vnd.airzip.filesecure.azf", "azf");
map.put("application/vnd.airzip.filesecure.azs", "azs");
map.put("application/vnd.amazon.ebook", "azw");
map.put("application/x-msdownload", "bat");
map.put("application/x-bcpio", "bcpio");
map.put("application/x-font-bdf", "bdf");
map.put("application/vnd.syncml.dm+wbxml", "bdm");
map.put("application/vnd.realvnc.bed", "bed");
map.put("application/vnd.fujitsu.oasysprs", "bh2");
putList(map, "bin", "application/mac-binary", "application/macbinary", "application/x-binary", "application/x-macbinary");
map.put("application/x-blorb", "blb");
map.put("application/x-blorb", "blorb");
map.put("image/bmp", "bm");
map.put("application/vnd.bmi", "bmi");
putList(map, "bmp", "image/bmp", "image/x-windows-bmp");
map.put("application/book", "boo");
map.put("application/vnd.framemaker", "book");
map.put("application/vnd.previewsystems.box", "box");
map.put("application/x-bzip2", "boz");
map.put("application/x-bsh", "bsh");
map.put("image/prs.btif", "btif");
map.put("application/x-bzip", "bz");
map.put("application/x-bzip2", "bz2");
map.put("text/x-c", "c");
map.put("text/plain", "c++");
map.put("application/vnd.cluetrust.cartomobile-config", "c11amc");
map.put("application/vnd.cluetrust.cartomobile-config-pkg", "c11amz");
map.put("application/vnd.clonk.c4group", "c4d");
map.put("application/vnd.clonk.c4group", "c4f");
map.put("application/vnd.clonk.c4group", "c4g");
map.put("application/vnd.clonk.c4group", "c4p");
map.put("application/vnd.clonk.c4group", "c4u");
map.put("application/vnd.ms-cab-compressed", "cab");
map.put("audio/x-caf", "caf");
map.put("application/vnd.tcpdump.pcap", "cap");
map.put("application/vnd.curl.car", "car");
map.put("application/vnd.ms-pki.seccat", "cat");
map.put("application/x-cbr", "cb7");
map.put("application/x-cbr", "cba");
map.put("application/x-cbr", "cbr");
map.put("application/x-cbr", "cbt");
map.put("application/x-cbr", "cbz");
putList(map, "cc", "text/plain", "text/x-c");
map.put("application/clariscad", "ccad");
map.put("application/x-cocoa", "cco");
map.put("application/x-director", "cct");
map.put("application/ccxml+xml", "ccxml");
map.put("application/vnd.contact.cmsg", "cdbcmsg");
putList(map, "cdf", "application/cdf", "application/x-cdf", "application/x-netcdf");
map.put("application/vnd.mediastation.cdkey", "cdkey");
map.put("application/cdmi-capability", "cdmia");
map.put("application/cdmi-container", "cdmic");
map.put("application/cdmi-domain", "cdmid");
map.put("application/cdmi-object", "cdmio");
map.put("application/cdmi-queue", "cdmiq");
map.put("chemical/x-cdx", "cdx");
map.put("application/vnd.chemdraw+xml", "cdxml");
map.put("application/vnd.cinderella", "cdy");
putList(map, "cer", "application/pkix-cert", "application/x-x509-ca-cert");
map.put("application/x-cfs-compressed", "cfs");
map.put("image/cgm", "cgm");
map.put("application/x-chat", "cha");
map.put("application/x-chat", "chat");
map.put("application/vnd.ms-htmlhelp", "chm");
map.put("application/vnd.kde.kchart", "chrt");
map.put("chemical/x-cif", "cif");
map.put("application/vnd.anser-web-certificate-issue-initiation", "cii");
map.put("application/vnd.ms-artgalry", "cil");
map.put("application/vnd.claymore", "cla");
putList(map, "class", "application/java", "application/java-byte-code", "application/x-java-class");
map.put("application/vnd.crick.clicker.keyboard", "clkk");
map.put("application/vnd.crick.clicker.palette", "clkp");
map.put("application/vnd.crick.clicker.template", "clkt");
map.put("application/vnd.crick.clicker.wordbank", "clkw");
map.put("application/vnd.crick.clicker", "clkx");
map.put("application/x-msclip", "clp");
map.put("application/vnd.cosmocaller", "cmc");
map.put("chemical/x-cmdf", "cmdf");
map.put("chemical/x-cml", "cml");
map.put("application/vnd.yellowriver-custom-menu", "cmp");
map.put("image/x-cmx", "cmx");
map.put("application/vnd.rim.cod", "cod");
putList(map, "com", "text/plain");
map.put("text/plain", "conf");
map.put("application/x-cpio", "cpio");
map.put("text/x-c", "cpp");
putList(map, "cpt", "application/x-compactpro", "application/x-cpt");
map.put("application/x-mscardfile", "crd");
putList(map, "crl", "application/pkcs-crl", "application/pkix-crl");
putList(map, "crt", "application/pkix-cert", "application/x-x509-ca-cert", "application/x-x509-user-cert");
map.put("application/x-chrome-extension", "crx");
map.put("application/vnd.rig.cryptonote", "cryptonote");
putList(map, "csh", "application/x-csh", "text/x-script.csh");
map.put("chemical/x-csml", "csml");
map.put("application/vnd.commonspace", "csp");
putList(map, "css", "application/x-pointplus", "text/css");
map.put("application/x-director", "cst");
map.put("text/csv", "csv");
map.put("application/cu-seeme", "cu");
map.put("text/vnd.curl", "curl");
map.put("application/prs.cww", "cww");
map.put("application/x-director", "cxt");
map.put("text/x-c", "cxx");
map.put("model/vnd.collada+xml", "dae");
map.put("application/vnd.mobius.daf", "daf");
map.put("application/vnd.dart", "dart");
map.put("application/vnd.fdsn.seed", "dataless");
map.put("application/davmount+xml", "davmount");
map.put("application/docbook+xml", "dbk");
map.put("application/x-director", "dcr");
map.put("text/vnd.curl.dcurl", "dcurl");
map.put("application/vnd.oma.dd2+xml", "dd2");
map.put("application/vnd.fujixerox.ddd", "ddd");
map.put("application/x-debian-package", "deb");
map.put("application/x-deepv", "deepv");
map.put("text/plain", "def");
map.put("application/x-x509-ca-cert", "der");
map.put("application/vnd.dreamfactory", "dfac");
map.put("application/x-dgc-compressed", "dgc");
map.put("text/x-c", "dic");
map.put("video/x-dv", "dif");
map.put("text/plain", "diff");
map.put("application/x-director", "dir");
map.put("application/vnd.mobius.dis", "dis");
map.put("image/vnd.djvu", "djv");
map.put("image/vnd.djvu", "djvu");
putList(map, "dl", "video/dl", "video/x-dl");
map.put("application/x-msdownload", "dll");
map.put("application/x-apple-diskimage", "dmg");
map.put("application/vnd.tcpdump.pcap", "dmp");
map.put("application/vnd.dna", "dna");
map.put("application/msword", "doc");
map.put("application/vnd.ms-word.document.macroenabled.12", "docm");
map.put("application/vnd.openxmlformats-officedocument.wordprocessingml.document", "docx");
map.put("application/msword", "dot");
map.put("application/vnd.ms-word.template.macroenabled.12", "dotm");
map.put("application/vnd.openxmlformats-officedocument.wordprocessingml.template", "dotx");
map.put("application/vnd.osgi.dp", "dp");
map.put("application/vnd.dpgraph", "dpg");
map.put("audio/vnd.dra", "dra");
map.put("application/drafting", "drw");
map.put("text/prs.lines.tag", "dsc");
map.put("application/dssc+der", "dssc");
map.put("application/x-dtbook+xml", "dtb");
map.put("application/xml-dtd", "dtd");
map.put("audio/vnd.dts", "dts");
map.put("audio/vnd.dts.hd", "dtshd");
map.put("video/x-dv", "dv");
map.put("video/vnd.dvb.file", "dvb");
map.put("application/x-dvi", "dvi");
putList(map, "dwf" ,"drawing/x-dwf (old)", "model/vnd.dwf");
putList(map, "dwg", "application/acad", "image/vnd.dwg", "image/x-dwg");
map.put("image/vnd.dxf", "dxf");
map.put("application/vnd.spotfire.dxp", "dxp");
map.put("application/x-director", "dxr");
map.put("audio/vnd.nuera.ecelp4800", "ecelp4800");
map.put("audio/vnd.nuera.ecelp7470", "ecelp7470");
map.put("audio/vnd.nuera.ecelp9600", "ecelp9600");
map.put("application/ecmascript", "ecma");
map.put("application/vnd.novadigm.edm", "edm");
map.put("application/vnd.novadigm.edx", "edx");
map.put("application/vnd.picsel", "efif");
map.put("application/vnd.pg.osasli", "ei6");
map.put("text/x-script.elisp", "el");
putList(map, "elc", "application/x-bytecode.elisp (compiled elisp)", "application/x-elc");
map.put("application/x-msmetafile", "emf");
map.put("message/rfc822", "eml");
map.put("application/emma+xml", "emma");
map.put("application/x-msmetafile", "emz");
map.put("application/x-envoy", "env");
map.put("audio/vnd.digital-winds", "eol");
map.put("application/vnd.ms-fontobject", "eot");
map.put("application/postscript", "eps");
map.put("application/epub+zip", "epub");
map.put("application/x-esrehber", "es");
map.put("application/vnd.eszigno3+xml", "es3");
map.put("application/vnd.osgi.subsystem", "esa");
map.put("application/vnd.epson.esf", "esf");
map.put("application/vnd.eszigno3+xml", "et3");
map.put("text/x-setext", "etx");
map.put("application/x-eva", "eva");
map.put("text/event-stream", "event-stream");
putList(map, "evy", "application/envoy", "application/x-envoy");
map.put("application/x-msdownload", "exe");
map.put("application/exi", "exi");
map.put("application/vnd.novadigm.ext", "ext");
map.put("application/andrew-inset", "ez");
map.put("application/vnd.ezpix-album", "ez2");
map.put("application/vnd.ezpix-package", "ez3");
putList(map, "f", "text/plain", "text/x-fortran");
map.put("video/x-f4v", "f4v");
map.put("text/x-fortran", "f77");
putList(map, "f90", "text/plain", "text/x-fortran");
map.put("image/vnd.fastbidsheet", "fbs");
map.put("application/vnd.adobe.formscentral.fcdt", "fcdt");
map.put("application/vnd.isac.fcs", "fcs");
map.put("application/vnd.fdf", "fdf");
putList(map, "fe_launch","application/vnd.denovo.fcselayout-link");
map.put("application/vnd.fujitsu.oasysgp", "fg5");
map.put("application/x-director", "fgd");
map.put("image/x-freehand", "fh");
map.put("image/x-freehand", "fh4");
map.put("image/x-freehand", "fh5");
map.put("image/x-freehand", "fh7");
map.put("image/x-freehand", "fhc");
putList(map, "fif", "application/fractals", "image/fif");
map.put("application/x-xfig", "fig");
map.put("audio/flac", "flac");
putList(map, "fli", "video/fli", "video/x-fli");
map.put("application/vnd.micrografx.flo", "flo");
map.put("video/x-flv", "flv");
map.put("application/vnd.kde.kivio", "flw");
map.put("text/vnd.fmi.flexstor", "flx");
map.put("text/vnd.fly", "fly");
map.put("application/vnd.framemaker", "fm");
map.put("video/x-atomic3d-feature", "fmf");
map.put("application/vnd.frogans.fnc", "fnc");
putList(map, "for", "text/plain", "text/x-fortran");
putList(map, "fpx", "image/vnd.fpx", "image/vnd.net-fpx");
map.put("application/vnd.framemaker", "frame");
map.put("application/freeloader", "frl");
map.put("application/vnd.fsc.weblaunch", "fsc");
map.put("image/vnd.fst", "fst");
map.put("application/vnd.fluxtime.clip", "ftc");
map.put("application/vnd.anser-web-funds-transfer-initiation", "fti");
map.put("audio/make", "funk");
map.put("video/vnd.fvt", "fvt");
map.put("application/vnd.adobe.fxp", "fxp");
map.put("application/vnd.adobe.fxp", "fxpl");
map.put("application/vnd.fuzzysheet", "fzs");
map.put("text/plain", "g");
map.put("application/vnd.geoplan", "g2w");
map.put("image/g3fax", "g3");
map.put("application/vnd.geospace", "g3w");
map.put("application/vnd.groove-account", "gac");
map.put("application/x-tads", "gam");
map.put("application/rpki-ghostbusters", "gbr");
map.put("application/x-gca-compressed", "gca");
map.put("model/vnd.gdl", "gdl");
map.put("application/vnd.dynageo", "geo");
map.put("application/vnd.geometry-explorer", "gex");
map.put("application/vnd.geogebra.file", "ggb");
map.put("application/vnd.geogebra.tool", "ggt");
map.put("application/vnd.groove-help", "ghf");
map.put("image/gif", "gif");
map.put("application/vnd.groove-identity-message", "gim");
putList(map, "gl", "video/gl", "video/x-gl");
map.put("application/gml+xml", "gml");
map.put("application/vnd.gmx", "gmx");
map.put("application/x-gnumeric", "gnumeric");
map.put("application/vnd.flographit", "gph");
map.put("application/gpx+xml", "gpx");
map.put("application/vnd.grafeq", "gqf");
map.put("application/vnd.grafeq", "gqs");
map.put("application/srgs", "gram");
map.put("application/x-gramps-xml", "gramps");
map.put("application/vnd.geometry-explorer", "gre");
map.put("application/vnd.groove-injector", "grv");
map.put("application/srgs+xml", "grxml");
map.put("audio/x-gsm", "gsd");
map.put("application/x-font-ghostscript", "gsf");
map.put("audio/x-gsm", "gsm");
map.put("application/x-gsp", "gsp");
map.put("application/x-gss", "gss");
map.put("application/x-gtar", "gtar");
map.put("application/vnd.groove-tool-message", "gtm");
map.put("model/vnd.gtw", "gtw");
map.put("text/vnd.graphviz", "gv");
map.put("application/gxf", "gxf");
map.put("application/vnd.geonext", "gxt");
putList(map, "gz", "application/x-compressed", "application/x-gzip");
putList(map, "gzip", "application/x-gzip", "multipart/x-gzip");
putList(map, "h", "text/plain", "text/x-h");
map.put("video/h261", "h261");
map.put("video/h263", "h263");
map.put("video/h264", "h264");
map.put("application/vnd.hal+xml", "hal");
map.put("application/vnd.hbci", "hbci");
map.put("application/x-hdf", "hdf");
map.put("application/x-helpfile", "help");
map.put("application/vnd.hp-hpgl", "hgl");
putList(map, "hh", "text/plain", "text/x-h");
map.put("text/x-script", "hlb");
putList(map, "hlp", "application/hlp", "application/x-helpfile", "application/x-winhelp");
map.put("application/vnd.hp-hpgl", "hpg");
map.put("application/vnd.hp-hpgl", "hpgl");
map.put("application/vnd.hp-hpid", "hpid");
map.put("application/vnd.hp-hps", "hps");
putList(map, "hqx", "application/binhex", "application/binhex4", "application/mac-binhex", "application/mac-binhex40", "application/x-binhex40", "application/x-mac-binhex40");
map.put("application/hta", "hta");
map.put("text/x-component", "htc");
map.put("application/vnd.kenameaapp", "htke");
map.put("text/html", "htm");
map.put("text/html", "html");
map.put("text/html", "htmls");
map.put("text/webviewhtml", "htt");
map.put("text/html", "htx");
map.put("application/vnd.yamaha.hv-dic", "hvd");
map.put("application/vnd.yamaha.hv-voice", "hvp");
map.put("application/vnd.yamaha.hv-script", "hvs");
map.put("application/vnd.intergeo", "i2g");
map.put("application/vnd.iccprofile", "icc");
map.put("x-conference/x-cooltalk", "ice");
map.put("application/vnd.iccprofile", "icm");
map.put("image/x-icon", "ico");
map.put("text/calendar", "ics");
map.put("text/plain", "idc");
map.put("image/ief", "ief");
map.put("image/ief", "iefs");
map.put("text/calendar", "ifb");
map.put("application/vnd.shana.informed.formdata", "ifm");
putList(map, "iges", "application/iges", "model/iges");
map.put("application/vnd.igloader", "igl");
map.put("application/vnd.insors.igm", "igm");
putList(map, "igs", "application/iges", "model/iges");
map.put("application/vnd.micrografx.igx", "igx");
map.put("application/vnd.shana.informed.interchange", "iif");
map.put("application/x-ima", "ima");
map.put("application/x-httpd-imap", "imap");
map.put("application/vnd.accpac.simply.imp", "imp");
map.put("application/vnd.ms-ims", "ims");
map.put("text/plain", "in");
map.put("application/inf", "inf");
map.put("application/inkml+xml", "ink");
map.put("application/inkml+xml", "inkml");
map.put("application/x-internett-signup", "ins");
map.put("application/x-install-instructions", "install");
map.put("application/vnd.astraea-software.iota", "iota");
map.put("application/x-ip2", "ip");
map.put("application/ipfix", "ipfix");
map.put("application/vnd.shana.informed.package", "ipk");
map.put("application/vnd.ibm.rights-management", "irm");
map.put("application/vnd.irepository.package+xml", "irp");
map.put("application/x-iso9660-image", "iso");
map.put("video/x-isvideo", "isu");
map.put("audio/it", "it");
map.put("application/vnd.shana.informed.formtemplate", "itp");
map.put("application/x-inventor", "iv");
map.put("application/vnd.immervision-ivp", "ivp");
map.put("i-world/i-vrml", "ivr");
map.put("application/vnd.immervision-ivu", "ivu");
map.put("application/x-livescreen", "ivy");
map.put("text/vnd.sun.j2me.app-descriptor", "jad");
map.put("application/vnd.jam", "jam");
map.put("application/java-archive", "jar");
putList(map, "jav", "text/plain", "text/x-java-source");
putList(map, "java", "text/plain", "text/x-java-source");
map.put("application/x-java-commerce", "jcm");
putList(map, "jfif", "image/jpeg", "image/pjpeg");
map.put("image/jpeg", "jfif-tbnl");
map.put("application/vnd.jisp", "jisp");
map.put("application/vnd.hp-jlyt", "jlt");
map.put("application/x-java-jnlp-file", "jnlp");
map.put("application/vnd.joost.joda-archive", "joda");
putList(map, "jpe", "image/jpeg", "image/pjpeg");
putList(map, "jpeg", "image/jpeg", "image/pjpeg");
putList(map, "jpg", "image/jpeg", "image/pjpeg");
map.put("video/jpm", "jpgm");
map.put("video/jpeg", "jpgv");
map.put("video/jpm", "jpm");
map.put("image/x-jps", "jps");
map.put("application/javascript", "js");
putList(map, "json", "application/json", "text/plain");
map.put("application/jsonml+json", "jsonml");
map.put("image/jutvision", "jut");
putList(map, "kar", "audio/midi", "music/x-karaoke");
map.put("application/vnd.kde.karbon", "karbon");
map.put("application/vnd.kde.kformula", "kfo");
map.put("application/vnd.kidspiration", "kia");
map.put("application/x-killustrator", "kil");
map.put("application/vnd.google-earth.kml+xml", "kml");
map.put("application/vnd.google-earth.kmz", "kmz");
map.put("application/vnd.kinar", "kne");
map.put("application/vnd.kinar", "knp");
map.put("application/vnd.kde.kontour", "kon");
map.put("application/vnd.kde.kpresenter", "kpr");
map.put("application/vnd.kde.kpresenter", "kpt");
map.put("application/vnd.ds-keypoint", "kpxx");
putList(map, "ksh", "application/x-ksh", "text/x-script.ksh");
map.put("application/vnd.kde.kspread", "ksp");
map.put("application/vnd.kahootz", "ktr");
map.put("image/ktx", "ktx");
map.put("application/vnd.kahootz", "ktz");
map.put("application/vnd.kde.kword", "kwd");
map.put("application/vnd.kde.kword", "kwt");
putList(map, "la", "audio/nspaudio", "audio/x-nspaudio");
map.put("audio/x-liveaudio", "lam");
map.put("application/vnd.las.las+xml", "lasxml");
map.put("application/x-latex", "latex");
map.put("application/vnd.llamagraphics.life-balance.desktop", "lbd");
map.put("application/vnd.llamagraphics.life-balance.exchange+xml", "lbe");
map.put("application/vnd.hhe.lesson-player", "les");
putList(map, "lha", "application/lha", "application/x-lha");
map.put("application/vnd.route66.link66+xml", "link66");
map.put("text/plain", "list");
map.put("application/vnd.ibm.modcap", "list3820");
map.put("application/vnd.ibm.modcap", "listafp");
putList(map, "lma", "audio/nspaudio", "audio/x-nspaudio");
map.put("application/x-ms-shortcut", "lnk");
map.put("text/plain", "log");
map.put("application/lost+xml", "lostxml");
map.put("application/vnd.ms-lrm", "lrm");
putList(map, "lsp", "application/x-lisp", "text/x-script.lisp");
map.put("text/plain", "lst");
map.put("text/x-la-asf", "lsx");
map.put("application/vnd.frogans.ltf", "ltf");
map.put("application/x-latex", "ltx");
map.put("text/x-lua", "lua");
map.put("application/x-lua-bytecode", "luac");
map.put("audio/vnd.lucent.voice", "lvp");
map.put("application/vnd.lotus-wordpro", "lwp");
putList(map, "lzh", "application/x-lzh");
putList(map, "lzx", "application/lzx", "application/x-lzx");
putList(map, "m", "text/plain", "text/x-m");
map.put("application/x-msmediaview", "m13");
map.put("application/x-msmediaview", "m14");
map.put("video/mpeg", "m1v");
map.put("application/mp21", "m21");
map.put("audio/mpeg", "m2a");
map.put("video/mpeg", "m2v");
map.put("audio/mpeg", "m3a");
map.put("audio/x-mpegurl", "m3u");
map.put("application/x-mpegURL", "m3u8");
map.put("audio/mp4", "m4a");
map.put("application/mp4", "m4p");
map.put("video/vnd.mpegurl", "m4u");
map.put("video/x-m4v", "m4v");
map.put("application/mathematica", "ma");
map.put("application/mads+xml", "mads");
map.put("application/vnd.ecowin.chart", "mag");
map.put("application/vnd.framemaker", "maker");
map.put("text/troff", "man");
map.put("text/cache-manifest", "manifest");
map.put("application/x-navimap", "map");
map.put("text/x-markdown", "markdown");
map.put("application/mathml+xml", "mathml");
map.put("application/mathematica", "mb");
map.put("application/mbedlet", "mbd");
map.put("application/vnd.mobius.mbk", "mbk");
map.put("application/mbox", "mbox");
map.put("application/x-magic-cap-package-1.0", "mc");
map.put("application/vnd.medcalcdata", "mc1");
putList(map, "mcd", "application/mcad", "application/x-mathcad");
putList(map, "mcf", "image/vasa", "text/mcf");
map.put("application/netmc", "mcp");
map.put("text/vnd.curl.mcurl", "mcurl");
map.put("text/x-markdown", "md");
map.put("application/x-msaccess", "mdb");
map.put("image/vnd.ms-modi", "mdi");
map.put("text/troff", "me");
map.put("model/mesh", "mesh");
map.put("application/metalink4+xml", "meta4");
map.put("application/metalink+xml", "metalink");
map.put("application/mets+xml", "mets");
map.put("application/vnd.mfmp", "mfm");
map.put("application/rpki-manifest", "mft");
map.put("application/vnd.osgeo.mapguide.package", "mgp");
map.put("application/vnd.proteus.magazine", "mgz");
map.put("message/rfc822", "mht");
map.put("message/rfc822", "mhtml");
putList(map, "mid", "application/x-midi", "audio/midi", "audio/x-mid", "audio/x-midi", "music/crescendo", "x-music/x-midi");
putList(map, "midi", "application/x-midi", "audio/midi", "audio/x-mid", "audio/x-midi", "music/crescendo", "x-music/x-midi");
map.put("application/x-mie", "mie");
putList(map, "mif", "application/x-frame", "application/x-mif");
putList(map, "mime", "message/rfc822", "www/mime");
map.put("video/mj2", "mj2");
map.put("audio/x-vnd.audioexplosion.mjuicemediafile", "mjf");
map.put("video/mj2", "mjp2");
map.put("video/x-motion-jpeg", "mjpg");
map.put("video/x-matroska", "mk3d");
map.put("audio/x-matroska", "mka");
map.put("text/x-markdown", "mkd");
map.put("video/x-matroska", "mks");
map.put("video/x-matroska", "mkv");
map.put("application/vnd.dolby.mlp", "mlp");
putList(map, "mm", "application/base64", "application/x-meme");
map.put("application/vnd.chipnuts.karaoke-mmd", "mmd");
map.put("application/base64", "mme");
map.put("application/vnd.smaf", "mmf");
map.put("image/vnd.fujixerox.edmics-mmr", "mmr");
map.put("video/x-mng", "mng");
map.put("application/x-msmoney", "mny");
map.put("application/x-mobipocket-ebook", "mobi");
putList(map, "mod", "audio/mod", "audio/x-mod");
map.put("application/mods+xml", "mods");
map.put("video/quicktime", "moov");
map.put("video/quicktime", "mov");
map.put("video/x-sgi-movie", "movie");
putList(map, "mp2", "audio/mpeg", "audio/x-mpeg", "video/mpeg", "video/x-mpeg", "video/x-mpeq2a");
map.put("application/mp21", "mp21");
map.put("audio/mpeg", "mp2a");
putList(map, "mp3", "audio/mpeg3", "audio/x-mpeg-3", "video/mpeg", "video/x-mpeg");
map.put("video/mp4", "mp4");
map.put("audio/mp4", "mp4a");
map.put("application/mp4", "mp4s");
map.put("video/mp4", "mp4v");
putList(map, "mpa", "audio/mpeg", "video/mpeg");
map.put("application/vnd.mophun.certificate", "mpc");
map.put("video/mpeg", "mpe");
map.put("video/mpeg", "mpeg");
putList(map, "mpg", "audio/mpeg", "video/mpeg");
map.put("video/mp4", "mpg4");
map.put("audio/mpeg", "mpga");
map.put("application/vnd.apple.installer+xml", "mpkg");
map.put("application/vnd.blueice.multipass", "mpm");
map.put("application/vnd.mophun.application", "mpn");
map.put("application/vnd.ms-project", "mpp");
map.put("application/vnd.ms-project", "mpt");
map.put("application/x-project", "mpv");
map.put("application/x-project", "mpx");
map.put("application/vnd.ibm.minipay", "mpy");
map.put("application/vnd.mobius.mqy", "mqy");
map.put("application/marc", "mrc");
map.put("application/marcxml+xml", "mrcx");
map.put("text/troff", "ms");
map.put("application/mediaservercontrol+xml", "mscml");
map.put("application/vnd.fdsn.mseed", "mseed");
map.put("application/vnd.mseq", "mseq");
map.put("application/vnd.epson.msf", "msf");
map.put("model/mesh", "msh");
map.put("application/x-msdownload", "msi");
map.put("application/vnd.mobius.msl", "msl");
map.put("application/vnd.muvee.style", "msty");
map.put("model/vnd.mts", "mts");
map.put("application/vnd.musician", "mus");
map.put("application/vnd.recordare.musicxml+xml", "musicxml");
map.put("video/x-sgi-movie", "mv");
map.put("application/x-msmediaview", "mvb");
map.put("application/vnd.mfer", "mwf");
map.put("application/mxf", "mxf");
map.put("application/vnd.recordare.musicxml", "mxl");
map.put("application/xv+xml", "mxml");
map.put("application/vnd.triscape.mxs", "mxs");
map.put("video/vnd.mpegurl", "mxu");
map.put("audio/make", "my");
map.put("application/x-vnd.audioexplosion.mzz", "mzz");
map.put("application/vnd.nokia.n-gage.symbian.install", "n-gage");
map.put("text/n3", "n3");
map.put("image/naplps", "nap");
map.put("image/naplps", "naplps");
map.put("application/mathematica", "nb");
map.put("application/vnd.wolfram.player", "nbp");
map.put("application/x-netcdf", "nc");
map.put("application/vnd.nokia.configuration-message", "ncm");
map.put("application/x-dtbncx+xml", "ncx");
map.put("text/x-nfo", "nfo");
map.put("application/vnd.nokia.n-gage.data", "ngdat");
map.put("image/x-niff", "nif");
map.put("image/x-niff", "niff");
map.put("application/vnd.nitf", "nitf");
map.put("application/x-mix-transfer", "nix");
map.put("application/vnd.neurolanguage.nlu", "nlu");
map.put("application/vnd.enliven", "nml");
map.put("application/vnd.noblenet-directory", "nnd");
map.put("application/vnd.noblenet-sealer", "nns");
map.put("application/vnd.noblenet-web", "nnw");
map.put("image/vnd.net-fpx", "npx");
map.put("application/x-conference", "nsc");
map.put("application/vnd.lotus-notes", "nsf");
map.put("application/vnd.nitf", "ntf");
map.put("application/x-navidoc", "nvd");
map.put("message/rfc822", "nws");
map.put("application/x-nzb", "nzb");
map.put("application/vnd.fujitsu.oasys2", "oa2");
map.put("application/vnd.fujitsu.oasys3", "oa3");
map.put("application/vnd.fujitsu.oasys", "oas");
map.put("application/x-msbinder", "obd");
map.put("application/x-tgif", "obj");
map.put("application/oda", "oda");
map.put("application/vnd.oasis.opendocument.database", "odb");
map.put("application/vnd.oasis.opendocument.chart", "odc");
map.put("application/vnd.oasis.opendocument.formula", "odf");
map.put("application/vnd.oasis.opendocument.formula-template", "odft");
map.put("application/vnd.oasis.opendocument.graphics", "odg");
map.put("application/vnd.oasis.opendocument.image", "odi");
map.put("application/vnd.oasis.opendocument.text-master", "odm");
map.put("application/vnd.oasis.opendocument.presentation", "odp");
map.put("application/vnd.oasis.opendocument.spreadsheet", "ods");
map.put("application/vnd.oasis.opendocument.text", "odt");
map.put("audio/ogg", "oga");
map.put("audio/ogg", "ogg");
map.put("video/ogg", "ogv");
map.put("application/ogg", "ogx");
map.put("application/x-omc", "omc");
map.put("application/x-omcdatamaker", "omcd");
map.put("application/x-omcregerator", "omcr");
map.put("application/omdoc+xml", "omdoc");
map.put("application/onenote", "onepkg");
map.put("application/onenote", "onetmp");
map.put("application/onenote", "onetoc");
map.put("application/onenote", "onetoc2");
map.put("application/oebps-package+xml", "opf");
map.put("text/x-opml", "opml");
map.put("application/vnd.palm", "oprc");
map.put("application/vnd.lotus-organizer", "org");
map.put("application/vnd.yamaha.openscoreformat", "osf");
map.put("application/vnd.yamaha.openscoreformat.osfpvg+xml", "osfpvg");
map.put("application/vnd.oasis.opendocument.chart-template", "otc");
map.put("font/opentype", "otf");
map.put("application/vnd.oasis.opendocument.graphics-template", "otg");
map.put("application/vnd.oasis.opendocument.text-web", "oth");
map.put("application/vnd.oasis.opendocument.image-template", "oti");
map.put("application/vnd.oasis.opendocument.text-master", "otm");
map.put("application/vnd.oasis.opendocument.presentation-template", "otp");
map.put("application/vnd.oasis.opendocument.spreadsheet-template", "ots");
map.put("application/vnd.oasis.opendocument.text-template", "ott");
map.put("application/oxps", "oxps");
map.put("application/vnd.openofficeorg.extension", "oxt");
map.put("text/x-pascal", "p");
putList(map, "p10", "application/pkcs10", "application/x-pkcs10");
putList(map, "p12", "application/pkcs-12", "application/x-pkcs12");
map.put("application/x-pkcs7-signature", "p7a");
map.put("application/x-pkcs7-certificates", "p7b");
putList(map, "p7c", "application/pkcs7-mime", "application/x-pkcs7-mime");
putList(map, "p7m", "application/pkcs7-mime", "application/x-pkcs7-mime");
map.put("application/x-pkcs7-certreqresp", "p7r");
map.put("application/pkcs7-signature", "p7s");
map.put("application/pkcs8", "p8");
map.put("application/pro_eng", "part");
map.put("text/x-pascal", "pas");
map.put("application/vnd.pawaafile", "paw");
map.put("application/vnd.powerbuilder6", "pbd");
map.put("image/x-portable-bitmap", "pbm");
map.put("application/vnd.tcpdump.pcap", "pcap");
map.put("application/x-font-pcf", "pcf");
putList(map, "pcl", "application/vnd.hp-pcl", "application/x-pcl");
map.put("application/vnd.hp-pclxl", "pclxl");
map.put("image/x-pict", "pct");
map.put("application/vnd.curl.pcurl", "pcurl");
map.put("image/x-pcx", "pcx");
map.put("application/vnd.palm", "pdb");
map.put("application/pdf", "pdf");
map.put("application/x-font-type1", "pfa");
map.put("application/x-font-type1", "pfb");
map.put("application/x-font-type1", "pfm");
map.put("application/font-tdpfr", "pfr");
map.put("audio/make", "pfunk");
map.put("application/x-pkcs12", "pfx");
map.put("image/x-portable-graymap", "pgm");
map.put("application/x-chess-pgn", "pgn");
map.put("application/pgp-encrypted", "pgp");
map.put("text/x-php", "php");
map.put("image/x-pict", "pic");
map.put("image/pict", "pict");
map.put("application/pkixcmp", "pki");
map.put("application/pkix-pkipath", "pkipath");
map.put("application/vnd.ms-pki.pko", "pko");
putList(map, "pl", "text/plain", "text/x-script.perl");
map.put("application/vnd.3gpp.pic-bw-large", "plb");
map.put("application/vnd.mobius.plc", "plc");
map.put("application/vnd.pocketlearn", "plf");
map.put("application/pls+xml", "pls");
map.put("application/x-pixclscript", "plx");
putList(map, "pm", "image/x-xpixmap", "text/x-script.perl-module");
map.put("application/x-pagemaker", "pm4");
map.put("application/x-pagemaker", "pm5");
map.put("application/vnd.ctc-posml", "pml");
map.put("image/png", "png");
putList(map, "pnm", "application/x-portable-anymap", "image/x-portable-anymap");
map.put("application/vnd.macports.portpkg", "portpkg");
putList(map, "pot", "application/mspowerpoint", "application/vnd.ms-powerpoint");
map.put("application/vnd.ms-powerpoint.template.macroenabled.12", "potm");
map.put("application/vnd.openxmlformats-officedocument.presentationml.template", "potx");
map.put("model/x-pov", "pov");
map.put("application/vnd.ms-powerpoint", "ppa");
map.put("application/vnd.ms-powerpoint.addin.macroenabled.12", "ppam");
map.put("application/vnd.cups-ppd", "ppd");
map.put("image/x-portable-pixmap", "ppm");
putList(map, "pps", "application/mspowerpoint", "application/vnd.ms-powerpoint");
map.put("application/vnd.ms-powerpoint.slideshow.macroenabled.12", "ppsm");
map.put("application/vnd.openxmlformats-officedocument.presentationml.slideshow", "ppsx");
putList(map, "ppt", "application/mspowerpoint", "application/powerpoint", "application/vnd.ms-powerpoint", "application/x-mspowerpoint");
map.put("application/vnd.ms-powerpoint.presentation.macroenabled.12", "pptm");
map.put("application/vnd.openxmlformats-officedocument.presentationml.presentation", "pptx");
map.put("application/mspowerpoint", "ppz");
map.put("application/vnd.palm", "pqa");
map.put("application/x-mobipocket-ebook", "prc");
map.put("application/vnd.lotus-freelance", "pre");
map.put("application/pics-rules", "prf");
map.put("application/pro_eng", "prt");
map.put("application/postscript", "ps");
map.put("application/vnd.3gpp.pic-bw-small", "psb");
map.put("image/vnd.adobe.photoshop", "psd");
map.put("application/x-font-linux-psf", "psf");
map.put("application/pskc+xml", "pskcxml");
map.put("application/vnd.pvi.ptid1", "ptid");
map.put("application/x-mspublisher", "pub");
map.put("application/vnd.3gpp.pic-bw-var", "pvb");
map.put("paleovu/x-pv", "pvu");
map.put("application/vnd.3m.post-it-notes", "pwn");
map.put("application/vnd.ms-powerpoint", "pwz");
map.put("text/x-script.phyton", "py");
map.put("audio/vnd.ms-playready.media.pya", "pya");
map.put("applicaiton/x-bytecode.python", "pyc");
map.put("application/x-python-code", "pyo");
map.put("video/vnd.ms-playready.media.pyv", "pyv");
map.put("application/vnd.epson.quickanime", "qam");
map.put("application/vnd.intu.qbo", "qbo");
map.put("audio/vnd.qcelp", "qcp");
map.put("x-world/x-3dmf", "qd3");
map.put("x-world/x-3dmf", "qd3d");
map.put("application/vnd.intu.qfx", "qfx");
map.put("image/x-quicktime", "qif");
map.put("application/vnd.publishare-delta-tree", "qps");
map.put("video/quicktime", "qt");
map.put("video/x-qtc", "qtc");
map.put("image/x-quicktime", "qti");
map.put("image/x-quicktime", "qtif");
map.put("application/vnd.quark.quarkxpress", "qwd");
map.put("application/vnd.quark.quarkxpress", "qwt");
map.put("application/vnd.quark.quarkxpress", "qxb");
map.put("application/vnd.quark.quarkxpress", "qxd");
map.put("application/vnd.quark.quarkxpress", "qxl");
map.put("application/vnd.quark.quarkxpress", "qxt");
putList(map, "ra", "audio/x-pn-realaudio", "audio/x-pn-realaudio-plugin", "audio/x-realaudio");
map.put("audio/x-pn-realaudio", "ram");
map.put("application/x-rar-compressed", "rar");
putList(map, "ras", "application/x-cmu-raster", "image/cmu-raster", "image/x-cmu-raster");
map.put("image/cmu-raster", "rast");
map.put("application/vnd.ipunplugged.rcprofile", "rcprofile");
map.put("application/rdf+xml", "rdf");
map.put("application/vnd.data-vision.rdz", "rdz");
map.put("application/vnd.businessobjects", "rep");
map.put("application/x-dtbresource+xml", "res");
map.put("text/x-script.rexx", "rexx");
map.put("image/vnd.rn-realflash", "rf");
map.put("image/x-rgb", "rgb");
map.put("application/reginfo+xml", "rif");
map.put("audio/vnd.rip", "rip");
map.put("application/x-research-info-systems", "ris");
map.put("application/resource-lists+xml", "rl");
map.put("image/vnd.fujixerox.edmics-rlc", "rlc");
map.put("application/resource-lists-diff+xml", "rld");
putList(map, "rm", "application/vnd.rn-realmedia", "audio/x-pn-realaudio");
map.put("audio/midi", "rmi");
map.put("audio/x-pn-realaudio", "rmm");
putList(map, "rmp", "audio/x-pn-realaudio", "audio/x-pn-realaudio-plugin");
map.put("application/vnd.jcp.javame.midlet-rms", "rms");
map.put("application/vnd.rn-realmedia-vbr", "rmvb");
map.put("application/relax-ng-compact-syntax", "rnc");
putList(map, "rng", "application/ringing-tones", "application/vnd.nokia.ringing-tone");
map.put("application/vnd.rn-realplayer", "rnx");
map.put("application/rpki-roa", "roa");
map.put("text/troff", "roff");
map.put("image/vnd.rn-realpix", "rp");
map.put("application/vnd.cloanto.rp9", "rp9");
map.put("audio/x-pn-realaudio-plugin", "rpm");
map.put("application/vnd.nokia.radio-presets", "rpss");
map.put("application/vnd.nokia.radio-preset", "rpst");
map.put("application/sparql-query", "rq");
map.put("application/rls-services+xml", "rs");
map.put("application/rsd+xml", "rsd");
map.put("application/rss+xml", "rss");
putList(map, "rt", "text/richtext", "text/vnd.rn-realtext");
putList(map, "rtf", "application/rtf", "application/x-rtf", "text/richtext");
putList(map, "rtx", "application/rtf", "text/richtext");
map.put("video/vnd.rn-realvideo", "rv");
map.put("text/x-asm", "s");
map.put("audio/s3m", "s3m");
map.put("application/vnd.yamaha.smaf-audio", "saf");
map.put("application/x-tbook", "sbk");
map.put("application/sbml+xml", "sbml");
map.put("application/vnd.ibm.secure-container", "sc");
map.put("application/x-msschedule", "scd");
putList(map, "scm", "application/x-lotusscreencam", "text/x-script.guile", "text/x-script.scheme", "video/x-scm");
map.put("application/scvp-cv-request", "scq");
map.put("application/scvp-cv-response", "scs");
map.put("text/vnd.curl.scurl", "scurl");
map.put("application/vnd.stardivision.draw", "sda");
map.put("application/vnd.stardivision.calc", "sdc");
map.put("application/vnd.stardivision.impress", "sdd");
map.put("application/vnd.solent.sdkm+xml", "sdkd");
map.put("application/vnd.solent.sdkm+xml", "sdkm");
map.put("text/plain", "sdml");
putList(map, "sdp", "application/sdp", "application/x-sdp");
map.put("application/sounder", "sdr");
map.put("application/vnd.stardivision.writer", "sdw");
putList(map, "sea", "application/sea", "application/x-sea");
map.put("application/vnd.seemail", "see");
map.put("application/vnd.fdsn.seed", "seed");
map.put("application/vnd.sema", "sema");
map.put("application/vnd.semd", "semd");
map.put("application/vnd.semf", "semf");
map.put("application/java-serialized-object", "ser");
map.put("application/set", "set");
map.put("application/set-payment-initiation", "setpay");
map.put("application/set-registration-initiation", "setreg");
map.put("application/vnd.hydrostatix.sof-data", "sfd-hdstx");
map.put("application/vnd.spotfire.sfs", "sfs");
map.put("text/x-sfv", "sfv");
map.put("image/sgi", "sgi");
map.put("application/vnd.stardivision.writer-global", "sgl");
putList(map, "sgm", "text/sgml", "text/x-sgml");
putList(map, "sgml", "text/sgml", "text/x-sgml");
putList(map, "sh", "application/x-bsh", "application/x-sh", "application/x-shar", "text/x-script.sh");
putList(map, "shar", "application/x-bsh", "application/x-shar");
map.put("application/shf+xml", "shf");
putList(map, "shtml", "text/html", "text/x-server-parsed-html");
map.put("text/vnd.wap.si", "si");
map.put("application/vnd.wap.sic", "sic");
map.put("image/x-mrsid-image", "sid");
map.put("application/pgp-signature", "sig");
map.put("audio/silk", "sil");
map.put("model/mesh", "silo");
map.put("application/vnd.symbian.install", "sis");
map.put("application/vnd.symbian.install", "sisx");
putList(map, "sit", "application/x-sit", "application/x-stuffit");
map.put("application/x-stuffitx", "sitx");
map.put("application/vnd.koan", "skd");
map.put("application/vnd.koan", "skm");
map.put("application/vnd.koan", "skp");
map.put("application/vnd.koan", "skt");
map.put("application/x-seelogo", "sl");
map.put("application/vnd.wap.slc", "slc");
map.put("application/vnd.ms-powerpoint.slide.macroenabled.12", "sldm");
map.put("application/vnd.openxmlformats-officedocument.presentationml.slide", "sldx");
map.put("application/vnd.epson.salt", "slt");
map.put("application/vnd.stepmania.stepchart", "sm");
map.put("application/vnd.stardivision.math", "smf");
map.put("application/smil+xml", "smi");
map.put("application/smil+xml", "smil");
map.put("video/x-smv", "smv");
map.put("application/vnd.stepmania.package", "smzip");
putList(map, "snd", "audio/basic", "audio/x-adpcm");
map.put("application/x-font-snf", "snf");
map.put("application/solids", "sol");
putList(map, "spc", "application/x-pkcs7-certificates", "text/x-speech");
map.put("application/vnd.yamaha.smaf-phrase", "spf");
map.put("application/x-futuresplash", "spl");
map.put("text/vnd.in3d.spot", "spot");
map.put("application/scvp-vp-response", "spp");
map.put("application/scvp-vp-request", "spq");
map.put("application/x-sprite", "spr");
map.put("application/x-sprite", "sprite");
map.put("audio/ogg", "spx");
map.put("application/x-sql", "sql");
map.put("application/x-wais-source", "src");
map.put("application/x-subrip", "srt");
map.put("application/sru+xml", "sru");
map.put("application/sparql-results+xml", "srx");
map.put("application/ssdl+xml", "ssdl");
map.put("application/vnd.kodak-descriptor", "sse");
map.put("application/vnd.epson.ssf", "ssf");
map.put("text/x-server-parsed-html", "ssi");
map.put("application/streamingmedia", "ssm");
map.put("application/ssml+xml", "ssml");
map.put("application/vnd.ms-pki.certstore", "sst");
map.put("application/vnd.sailingtracker.track", "st");
map.put("application/vnd.sun.xml.calc.template", "stc");
map.put("application/vnd.sun.xml.draw.template", "std");
map.put("application/step", "step");
map.put("application/vnd.wt.stf", "stf");
map.put("application/vnd.sun.xml.impress.template", "sti");
map.put("application/hyperstudio", "stk");
putList(map, "stl", "application/sla", "application/vnd.ms-pki.stl", "application/x-navistyle");
map.put("application/step", "stp");
map.put("application/vnd.pg.format", "str");
map.put("application/vnd.sun.xml.writer.template", "stw");
map.put("text/vnd.dvb.subtitle", "sub");
map.put("application/vnd.sus-calendar", "sus");
map.put("application/vnd.sus-calendar", "susp");
map.put("application/x-sv4cpio", "sv4cpio");
map.put("application/x-sv4crc", "sv4crc");
map.put("application/vnd.dvb.service", "svc");
map.put("application/vnd.svd", "svd");
putList(map, "svf", "image/vnd.dwg", "image/x-dwg");
map.put("image/svg+xml", "svg");
map.put("image/svg+xml", "svgz");
putList(map, "svr", "application/x-world", "x-world/x-svr");
map.put("application/x-director", "swa");
map.put("application/x-shockwave-flash", "swf");
map.put("application/vnd.aristanetworks.swi", "swi");
map.put("application/vnd.sun.xml.calc", "sxc");
map.put("application/vnd.sun.xml.draw", "sxd");
map.put("application/vnd.sun.xml.writer.global", "sxg");
map.put("application/vnd.sun.xml.impress", "sxi");
map.put("application/vnd.sun.xml.math", "sxm");
map.put("application/vnd.sun.xml.writer", "sxw");
map.put("text/troff", "t");
map.put("application/x-t3vm-image", "t3");
map.put("application/vnd.mynfc", "taglet");
map.put("text/x-speech", "talk");
map.put("application/vnd.tao.intent-module-archive", "tao");
map.put("application/x-tar", "tar");
putList(map, "tbk", "application/toolbook", "application/x-tbook");
map.put("application/vnd.3gpp2.tcap", "tcap");
putList(map, "tcl", "application/x-tcl", "text/x-script.tcl");
map.put("text/x-script.tcsh", "tcsh");
map.put("application/vnd.smart.teacher", "teacher");
map.put("application/tei+xml", "tei");
map.put("application/tei+xml", "teicorpus");
map.put("application/x-tex", "tex");
map.put("application/x-texinfo", "texi");
map.put("application/x-texinfo", "texinfo");
putList(map, "text", "application/plain", "text/plain");
map.put("application/thraud+xml", "tfi");
map.put("application/x-tex-tfm", "tfm");
map.put("image/x-tga", "tga");
putList(map, "tgz", "application/gnutar", "application/x-compressed");
map.put("application/vnd.ms-officetheme", "thmx");
putList(map, "tif", "image/tiff", "image/x-tiff");
putList(map, "tiff", "image/tiff", "image/x-tiff");
map.put("application/vnd.tmobile-livetv", "tmo");
map.put("application/x-bittorrent", "torrent");
map.put("application/vnd.groove-tool-template", "tpl");
map.put("application/vnd.trid.tpt", "tpt");
map.put("text/troff", "tr");
map.put("application/vnd.trueapp", "tra");
map.put("application/x-msterminal", "trm");
map.put("video/MP2T", "ts");
map.put("application/timestamped-data", "tsd");
map.put("audio/tsp-audio", "tsi");
putList(map, "tsp", "application/dsptype", "audio/tsplayer");
map.put("text/tab-separated-values", "tsv");
map.put("application/x-font-ttf", "ttc");
map.put("application/x-font-ttf", "ttf");
map.put("text/turtle", "ttl");
map.put("image/florian", "turbot");
map.put("application/vnd.simtech-mindmapper", "twd");
map.put("application/vnd.simtech-mindmapper", "twds");
map.put("application/vnd.genomatix.tuxedo", "txd");
map.put("application/vnd.mobius.txf", "txf");
map.put("text/plain", "txt");
map.put("application/x-authorware-bin", "u32");
map.put("application/x-debian-package", "udeb");
map.put("application/vnd.ufdl", "ufd");
map.put("application/vnd.ufdl", "ufdl");
map.put("text/x-uil", "uil");
map.put("application/x-glulx", "ulx");
map.put("application/vnd.umajin", "umj");
map.put("text/uri-list", "uni");
map.put("text/uri-list", "unis");
map.put("application/vnd.unity", "unityweb");
map.put("application/i-deas", "unv");
map.put("application/vnd.uoml+xml", "uoml");
map.put("text/uri-list", "uri");
map.put("text/uri-list", "uris");
map.put("text/uri-list", "urls");
putList(map, "ustar", "application/x-ustar", "multipart/x-ustar");
map.put("application/vnd.uiq.theme", "utz");
putList(map, "uu", "text/x-uuencode");
map.put("text/x-uuencode", "uue");
map.put("audio/vnd.dece.audio", "uva");
map.put("application/vnd.dece.data", "uvd");
map.put("application/vnd.dece.data", "uvf");
map.put("image/vnd.dece.graphic", "uvg");
map.put("video/vnd.dece.hd", "uvh");
map.put("image/vnd.dece.graphic", "uvi");
map.put("video/vnd.dece.mobile", "uvm");
map.put("video/vnd.dece.pd", "uvp");
map.put("video/vnd.dece.sd", "uvs");
map.put("application/vnd.dece.ttml+xml", "uvt");
map.put("video/vnd.uvvu.mp4", "uvu");
map.put("video/vnd.dece.video", "uvv");
map.put("audio/vnd.dece.audio", "uvva");
map.put("application/vnd.dece.data", "uvvd");
map.put("application/vnd.dece.data", "uvvf");
map.put("image/vnd.dece.graphic", "uvvg");
map.put("video/vnd.dece.hd", "uvvh");
map.put("image/vnd.dece.graphic", "uvvi");
map.put("video/vnd.dece.mobile", "uvvm");
map.put("video/vnd.dece.pd", "uvvp");
map.put("video/vnd.dece.sd", "uvvs");
map.put("application/vnd.dece.ttml+xml", "uvvt");
map.put("video/vnd.uvvu.mp4", "uvvu");
map.put("video/vnd.dece.video", "uvvv");
map.put("application/vnd.dece.unspecified", "uvvx");
map.put("application/vnd.dece.zip", "uvvz");
map.put("application/vnd.dece.unspecified", "uvx");
map.put("application/vnd.dece.zip", "uvz");
map.put("text/vcard", "vcard");
map.put("application/x-cdlink", "vcd");
map.put("text/x-vcard", "vcf");
map.put("application/vnd.groove-vcard", "vcg");
map.put("text/x-vcalendar", "vcs");
map.put("application/vnd.vcx", "vcx");
map.put("application/vda", "vda");
map.put("video/vdo", "vdo");
map.put("application/groupwise", "vew");
map.put("application/vnd.visionary", "vis");
putList(map, "viv", "video/vivo", "video/vnd.vivo");
putList(map, "vivo", "video/vivo", "video/vnd.vivo");
map.put("application/vocaltec-media-desc", "vmd");
map.put("application/vocaltec-media-file", "vmf");
map.put("video/x-ms-vob", "vob");
putList(map, "voc", "audio/voc", "audio/x-voc");
map.put("application/vnd.stardivision.writer", "vor");
map.put("video/vosaic", "vos");
map.put("application/x-authorware-bin", "vox");
map.put("audio/x-twinvq-plugin", "vqe");
map.put("audio/x-twinvq", "vqf");
map.put("audio/x-twinvq-plugin", "vql");
putList(map, "vrml", "application/x-vrml", "model/vrml", "x-world/x-vrml");
map.put("x-world/x-vrt", "vrt");
map.put("application/vnd.visio", "vsd");
map.put("application/vnd.vsf", "vsf");
map.put("application/vnd.visio", "vss");
map.put("application/vnd.visio", "vst");
map.put("application/vnd.visio", "vsw");
map.put("text/vtt", "vtt");
map.put("model/vnd.vtu", "vtu");
map.put("application/voicexml+xml", "vxml");
map.put("application/x-director", "w3d");
map.put("application/wordperfect6.0", "w60");
map.put("application/wordperfect6.1", "w61");
map.put("application/msword", "w6w");
map.put("application/x-doom", "wad");
putList(map, "wav", "audio/wav", "audio/x-wav");
map.put("audio/x-ms-wax", "wax");
map.put("application/x-qpro", "wb1");
map.put("image/vnd.wap.wbmp", "wbmp");
map.put("application/vnd.criticaltools.wbs+xml", "wbs");
map.put("application/vnd.wap.wbxml", "wbxml");
map.put("application/vnd.ms-works", "wcm");
map.put("application/vnd.ms-works", "wdb");
map.put("image/vnd.ms-photo", "wdp");
map.put("application/vnd.xara", "web");
map.put("audio/webm", "weba");
map.put("application/x-web-app-manifest+json", "webapp");
map.put("video/webm", "webm");
map.put("image/webp", "webp");
map.put("application/vnd.pmi.widget", "wg");
map.put("application/widget", "wgt");
map.put("application/msword", "wiz");
map.put("application/x-123", "wk1");
map.put("application/vnd.ms-works", "wks");
map.put("video/x-ms-wm", "wm");
map.put("audio/x-ms-wma", "wma");
map.put("application/x-ms-wmd", "wmd");
map.put("application/x-msmetafile", "wmf");
map.put("text/vnd.wap.wml", "wml");
map.put("application/vnd.wap.wmlc", "wmlc");
map.put("text/vnd.wap.wmlscript", "wmls");
map.put("application/vnd.wap.wmlscriptc", "wmlsc");
map.put("video/x-ms-wmv", "wmv");
map.put("video/x-ms-wmx", "wmx");
map.put("application/x-msmetafile", "wmz");
map.put("application/x-font-woff", "woff");
map.put("application/msword", "word");
map.put("application/wordperfect", "wp");
putList(map, "wp5", "application/wordperfect", "application/wordperfect6.0");
map.put("application/wordperfect", "wp6");
putList(map, "wpd", "application/wordperfect", "application/x-wpwin");
map.put("application/vnd.ms-wpl", "wpl");
map.put("application/vnd.ms-works", "wps");
map.put("application/x-lotus", "wq1");
map.put("application/vnd.wqd", "wqd");
putList(map, "wri", "application/mswrite", "application/x-wri");
putList(map, "wrl", "application/x-world", "model/vrml", "x-world/x-vrml");
putList(map, "wrz", "model/vrml", "x-world/x-vrml");
map.put("text/scriplet", "wsc");
map.put("application/wsdl+xml", "wsdl");
map.put("application/wspolicy+xml", "wspolicy");
map.put("application/x-wais-source", "wsrc");
map.put("application/vnd.webturbo", "wtb");
map.put("application/x-wintalk", "wtk");
map.put("video/x-ms-wvx", "wvx");
map.put("image/png", "x-png");
map.put("application/x-authorware-bin", "x32");
map.put("model/x3d+xml", "x3d");
map.put("model/x3d+binary", "x3db");
map.put("model/x3d+binary", "x3dbz");
map.put("model/x3d+vrml", "x3dv");
map.put("model/x3d+vrml", "x3dvz");
map.put("model/x3d+xml", "x3dz");
map.put("application/xaml+xml", "xaml");
map.put("application/x-silverlight-app", "xap");
map.put("application/vnd.xara", "xar");
map.put("application/x-ms-xbap", "xbap");
map.put("application/vnd.fujixerox.docuworks.binder", "xbd");
putList(map, "xbm", "image/x-xbitmap", "image/x-xbm", "image/xbm");
map.put("application/xcap-diff+xml", "xdf");
map.put("application/vnd.syncml.dm+xml", "xdm");
map.put("application/vnd.adobe.xdp+xml", "xdp");
map.put("video/x-amt-demorun", "xdr");
map.put("application/dssc+xml", "xdssc");
map.put("application/vnd.fujixerox.docuworks", "xdw");
map.put("application/xenc+xml", "xenc");
map.put("application/patch-ops-error+xml", "xer");
map.put("application/vnd.adobe.xfdf", "xfdf");
map.put("application/vnd.xfdl", "xfdl");
map.put("xgl/drawing", "xgz");
map.put("application/xhtml+xml", "xht");
map.put("application/xhtml+xml", "xhtml");
map.put("application/xv+xml", "xhvml");
map.put("image/vnd.xiff", "xif");
map.put("application/excel", "xl");
putList(map, "xla", "application/excel", "application/x-excel", "application/x-msexcel");
map.put("application/vnd.ms-excel.addin.macroenabled.12", "xlam");
putList(map, "xlb", "application/excel", "application/vnd.ms-excel", "application/x-excel");
putList(map, "xlc", "application/excel", "application/vnd.ms-excel", "application/x-excel");
putList(map, "xld", "application/excel", "application/x-excel");
map.put("application/x-xliff+xml", "xlf");
putList(map, "xlk", "application/excel", "application/x-excel");
putList(map, "xll", "application/excel", "application/vnd.ms-excel", "application/x-excel");
putList(map, "xlm", "application/excel", "application/vnd.ms-excel", "application/x-excel");
putList(map, "xls", "application/excel", "application/vnd.ms-excel", "application/x-excel", "application/x-msexcel");
map.put("application/vnd.ms-excel.sheet.binary.macroenabled.12", "xlsb");
map.put("application/vnd.ms-excel.sheet.macroenabled.12", "xlsm");
map.put("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlsx");
putList(map, "xlt", "application/excel", "application/x-excel");
map.put("application/vnd.ms-excel.template.macroenabled.12", "xltm");
map.put("application/vnd.openxmlformats-officedocument.spreadsheetml.template", "xltx");
putList(map, "xlv", "application/excel", "application/x-excel");
putList(map, "xlw", "application/excel", "application/vnd.ms-excel", "application/x-excel", "application/x-msexcel");
map.put("audio/xm", "xm");
putList(map, "xml", "application/xml", "text/xml");
map.put("xgl/movie", "xmz");
map.put("application/vnd.olpc-sugar", "xo");
map.put("application/xop+xml", "xop");
map.put("application/xml", "xpdl");
map.put("application/x-xpinstall", "xpi");
map.put("application/x-vnd.ls-xpix", "xpix");
map.put("application/xproc+xml", "xpl");
putList(map, "xpm", "image/x-xpixmap", "image/xpm");
map.put("application/vnd.is-xpr", "xpr");
map.put("application/vnd.ms-xpsdocument", "xps");
map.put("application/vnd.intercon.formnet", "xpw");
map.put("application/vnd.intercon.formnet", "xpx");
map.put("application/xml", "xsl");
map.put("application/xslt+xml", "xslt");
map.put("application/vnd.syncml+xml", "xsm");
map.put("application/xspf+xml", "xspf");
map.put("video/x-amt-showrun", "xsr");
map.put("application/vnd.mozilla.xul+xml", "xul");
map.put("application/xv+xml", "xvm");
map.put("application/xv+xml", "xvml");
putList(map, "xwd", "image/x-xwd", "image/x-xwindowdump");
map.put("chemical/x-xyz", "xyz");
map.put("application/x-xz", "xz");
map.put("application/yang", "yang");
map.put("application/yin+xml", "yin");
putList(map, "z", "application/x-compress", "application/x-compressed");
map.put("application/x-zmachine", "z1");
map.put("application/x-zmachine", "z2");
map.put("application/x-zmachine", "z3");
map.put("application/x-zmachine", "z4");
map.put("application/x-zmachine", "z5");
map.put("application/x-zmachine", "z6");
map.put("application/x-zmachine", "z7");
map.put("application/x-zmachine", "z8");
map.put("application/vnd.zzazz.deck+xml", "zaz");
putList(map, "zip", "application/x-compressed", "application/x-zip-compressed", "application/zip", "multipart/x-zip");
map.put("application/vnd.zul", "zir");
map.put("application/vnd.zul", "zirz");
map.put("application/vnd.handheld-entertainment+xml", "zmm");
map.put("text/x-script.zsh", "zsh");
map.put("application/vnd.lotus-1-2-3", "123");
return map;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment