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