From f5f6a1e1438b98189aefe90ff606b8b48fb669e1 Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Wed, 29 Jul 2026 13:24:36 +0200 Subject: [PATCH] ja --- README.md | 15 +- info.rkt | 31 +- main.rkt | 4 +- mimetypes.rkt | 912 ++++++----------------------------- private/fallback.rkt | 733 ++++++++++++++++++++++++++++ private/mime-types.rkt | 63 +++ scrbl/racket-mimetypes.scrbl | 94 ++-- tests/mimetypes.rkt | 77 +-- 8 files changed, 1041 insertions(+), 888 deletions(-) create mode 100644 private/fallback.rkt create mode 100644 private/mime-types.rkt diff --git a/README.md b/README.md index 1c7deaa..4d6037b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ # racket-mimetypes -Gives a mimetype for an extension \ No newline at end of file +Returns the MIME type for a file extension, file name, or path. + +The package uses a bundled fallback table and silently checks Apache's +`mime.types` in a background thread. A successful update is checked again +after seven days. A failed update is retried after one day. The validated +table is cached below Racket's user cache directory. + +```racket +(require racket-mimetypes) + +(mimetype-for-ext "music.opus") +(mimetype-for-ext 'png) +(mimetype-for-ext "unknown" #:default "application/octet-stream") +``` diff --git a/info.rkt b/info.rkt index 99ebeab..98d28e9 100644 --- a/info.rkt +++ b/info.rkt @@ -1,34 +1,21 @@ #lang info (define pkg-authors '(hnmdijkema)) -(define version "0.1.1") -(define license 'MIT) +(define version "0.2.2") +(define license 'MIT) (define collection "racket-mimetypes") -(define pkg-desc "Mimetypes for al kinds of file extensions.") +(define pkg-desc + "MIME types for file extensions, updated from Apache mime.types.") (define scribblings - '( - ("scrbl/racket-mimetypes.scrbl" () (library 0)) - ) - ) + '(("scrbl/racket-mimetypes.scrbl" () (library 0)))) (define deps - '("racket/base" - ) - ) + '("base" + "net-lib" + "simple-log")) (define build-deps '("racket-doc" - "draw-doc" "rackunit-lib" - "scribble-lib" - )) - -(define test-omit-paths 'all) - -(define test-ignore-stderrs - '( - (all "could not be loaded") - (all "download site could not be resolved") - ) - ) \ No newline at end of file + "scribble-lib")) diff --git a/main.rkt b/main.rkt index 005c939..ecc782a 100644 --- a/main.rkt +++ b/main.rkt @@ -1,5 +1,5 @@ -#lang racket +#lang racket/base (require "mimetypes.rkt") -(provide (all-from-out "mimetypes.rkt")) \ No newline at end of file +(provide (all-from-out "mimetypes.rkt")) diff --git a/mimetypes.rkt b/mimetypes.rkt index 715c7f3..cd2f371 100644 --- a/mimetypes.rkt +++ b/mimetypes.rkt @@ -1,778 +1,152 @@ #lang racket/base -(require racket/contract - racket/string) +(require net/url + (only-in net/url-connect current-https-protocol) + racket/contract + racket/file + racket/port + racket/string + simple-log + "private/mime-types.rkt" + (rename-in "private/fallback.rkt" + [mimetypes fallback-mimetypes])) -(provide mimetype-for-ext) +(provide + (contract-out + [mimetype-for-ext + (->* ((or/c path? string? symbol?)) + (#:default string?) + string?)])) -(define mimetype-context/c - (or/c #f - 'application - 'audio - 'example - 'font - 'haptics - 'image - 'message - 'model - 'multipart - 'text - 'video)) +(sl-def-log racket-mimetypes) -(define/contract (mimetype-for-ext ext - #:default [default "application/octet-stream"] - #:context [context #f]) - (->* ((or/c path-string? symbol?)) - (#:default string? #:context mimetype-context/c) - string?) - (let* ((extension (normalize-extension ext)) - (types (hash-ref mimetypes extension '()))) - (cond - ((null? types) default) - ((not context) (car types)) - (else - (let ((prefix (string-append (symbol->string context) "/"))) - (or (for/first ((type (in-list types)) - #:when (string-prefix? type prefix)) - type) - default)))))) +(define apache-mime-types-url + "https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types") -(define (normalize-extension ext) - (let* ((str (cond - ((symbol? ext) (symbol->string ext)) - ((path? ext) (path->string ext)) - (else ext))) - (name (regexp-replace #px"^.*[/\\\\]" str "")) - (match (regexp-match #px"[.]([^.]+)$" name)) - (extension (if match (cadr match) name))) - (string->symbol (string-downcase extension)))) +(define cache-directory + (build-path (find-system-path 'cache-dir) "racket-mimetypes")) -(define mimetypes (make-hash)) +(define cache-file + (build-path cache-directory "mime.types")) -(define-syntax addMimeType - (syntax-rules () - ((_ description http-mimetype extensions description2) - (for-each (λ (extension) - (let* ((key (string->symbol - (string-downcase (format "~a" extension)))) - (types (hash-ref mimetypes key '()))) - (unless (member http-mimetype types) - (hash-set! mimetypes - key - (append types (list http-mimetype)))))) - extensions)))) +(define failure-file + (build-path cache-directory "last-failure")) -(addMimeType "3D Crossword Plugin" "application/vnd.hzn-3d-crossword" '(x3d) "IANA: 3D Crossword Plugin") -(addMimeType "3GP" "video/3gpp" '(3gp) "Wikipedia: 3GP") -(addMimeType "3GP2" "video/3gpp2" '(3g2) "Wikipedia: 3G2") -(addMimeType "3GPP MSEQ File" "application/vnd.mseq" '(mseq) "IANA: 3GPP MSEQ File") -(addMimeType "3M Post It Notes" "application/vnd.3m.post-it-notes" '(pwn) "IANA: 3M Post It Notes") -(addMimeType "3rd Generation Partnership Project - Pic Large" "application/vnd.3gpp.pic-bw-large" '(plb) "3GPP") -(addMimeType "3rd Generation Partnership Project - Pic Small" "application/vnd.3gpp.pic-bw-small" '(psb) "3GPP") -(addMimeType "3rd Generation Partnership Project - Pic Var" "application/vnd.3gpp.pic-bw-var" '(pvb) "3GPP") -(addMimeType "3rd Generation Partnership Project - Transaction Capabilities Application Part" "application/vnd.3gpp2.tcap" '(tcap) "3GPP") -(addMimeType "7-Zip" "application/x-7z-compressed" '(7z) "Wikipedia: 7-Zip") -(addMimeType "AbiWord" "application/x-abiword" '(abw) "Wikipedia: AbiWord") -(addMimeType "Ace Archive" "application/x-ace-compressed" '(ace) "Wikipedia: ACE") -(addMimeType "Active Content Compression" "application/vnd.americandynamics.acc" '(acc) "IANA: Active Content Compression") -(addMimeType "ACU Cobol" "application/vnd.acucobol" '(acu) "IANA: ACU Cobol") -(addMimeType "ACU Cobol" "application/vnd.acucorp" '(atc) "IANA: ACU Cobol") -(addMimeType "Adaptive differential pulse-code modulation" "audio/adpcm" '(adp) "Wikipedia: ADPCM") -(addMimeType "Adobe (Macropedia) Authorware - Binary File" "application/x-authorware-bin" '(aab) "Wikipedia: Authorware") -(addMimeType "Adobe (Macropedia) Authorware - Map" "application/x-authorware-map" '(aam) "Wikipedia: Authorware") -(addMimeType "Adobe (Macropedia) Authorware - Segment File" "application/x-authorware-seg" '(aas) "Wikipedia: Authorware") -(addMimeType "Adobe AIR Application" "application/vnd.adobe.air-application-installer-package+zip" '(air) "Building AIR Applications") -(addMimeType "Adobe Flash" "application/x-shockwave-flash" '(swf) "Wikipedia: Adobe Flash") -(addMimeType "Adobe Flex Project" "application/vnd.adobe.fxp" '(fxp) "IANA: Adobe Flex Project") -(addMimeType "Adobe Portable Document Format" "application/pdf" '(pdf) "Adobe PDF") -(addMimeType "Adobe PostScript Printer Description File Format" "application/vnd.cups-ppd" '(ppd) "IANA: Cups") -(addMimeType "Adobe Shockwave Player" "application/x-director" '(dir) "Wikipedia: Adobe Shockwave Player") -(addMimeType "Adobe XML Data Package" "application/vnd.adobe.xdp+xml" '(xdp) "Wikipedia: XML Data Package") -(addMimeType "Adobe XML Forms Data Format" "application/vnd.adobe.xfdf" '(xfdf) "Wikipedia: XML Portable Document Format") -(addMimeType "Advanced Audio Coding (AAC)" "audio/aac" '(aac adts loas) "IANA: AAC") -(addMimeType "Ahead AIR Application" "application/vnd.ahead.space" '(ahead) "IANA: Ahead AIR Application") -(addMimeType "AirZip FileSECURE" "application/vnd.airzip.filesecure.azf" '(azf) "IANA: AirZip") -(addMimeType "AirZip FileSECURE" "application/vnd.airzip.filesecure.azs" '(azs) "IANA: AirZip") -(addMimeType "Amazon Kindle eBook format" "application/vnd.amazon.ebook" '(azw) "Kindle Direct Publishing") -(addMimeType "AmigaDE" "application/vnd.amiga.ami" '(ami) "IANA: Amiga") -(addMimeType "Andrew Toolkit" "application/andrew-inset" '() "IANA - Andrew Inset") -(addMimeType "Android Package Archive" "application/vnd.android.package-archive" '(apk) "Wikipedia: APK File Format") -(addMimeType "ANSER-WEB Terminal Client - Certificate Issue" "application/vnd.anser-web-certificate-issue-initiation" '(cii) "IANA: ANSWER-WEB") -(addMimeType "ANSER-WEB Terminal Client - Web Funds Transfer" "application/vnd.anser-web-funds-transfer-initiation" '(fti) "IANA: ANSWER-WEB") -(addMimeType "Antix Game Player" "application/vnd.antix.game-component" '(atx) "IANA: Antix Game Component") -(addMimeType "Apple Disk Image" "application/x-apple-diskimage" '(dmg) "Apple Disk Image") -(addMimeType "Apple Installer Package" "application/vnd.apple.installer+xml" '(mpkg) "IANA: Apple Installer") -(addMimeType "Applixware" "application/applixware" '(aw) "Vistasource") -(addMimeType "Archipelago Lesson Player" "application/vnd.hhe.lesson-player" '(les) "IANA: Archipelago Lesson Player") -(addMimeType "Archive document - Multiple Fils Embedded" "application/x-freearc" '(arc) "FreeArc") -(addMimeType "Arista Networks Software Image" "application/vnd.aristanetworks.swi" '(swi) "IANA: Arista Networks Software Image") -(addMimeType "Assembler Source File" "text/x-asm" '(s) "Wikipedia: Assembly") -(addMimeType "Atom Publishing Protocol" "application/atomcat+xml" '(atomcat) "RFC 5023") -(addMimeType "Atom Publishing Protocol Service Document" "application/atomsvc+xml" '(atomsvc) "RFC 5023") -(addMimeType "Atom Syndication Format" "application/atom+xml" '(atom) "RFC 4287") -(addMimeType "Attribute Certificate" "application/pkix-attr-cert" '(ac) "RFC 5877") -(addMimeType "Audio Interchange File Format" "audio/x-aiff" '(aif aiff aifc) "Wikipedia: Audio Interchange File Format") -(addMimeType "Audio Video Interleave (AVI)" "video/x-msvideo" '(avi) "Wikipedia: AVI") -(addMimeType "Audiograph" "application/vnd.audiograph" '(aep) "IANA: Audiograph") -(addMimeType "AutoCAD DXF" "image/vnd.dxf" '(dxf) "Wikipedia: AutoCAD DXF") -(addMimeType "Autodesk Design Web Format (DWF)" "model/vnd.dwf" '(dwf) "Wikipedia: Design Web Format") -(addMimeType "AV1 Image File" "image/avif" '(avif) "AV1 Image File Format") -(addMimeType "BAS Partitur Format" "text/plain-bas" '(par) "Phonetik BAS") -(addMimeType "Binary CPIO Archive" "application/x-bcpio" '(bcpio) "Wikipedia: cpio") -(addMimeType "Binary Data" "application/octet-stream" '(bin) "") -(addMimeType "Bitmap Image File" "image/bmp" '(bmp) "Wikipedia: BMP File Format") -(addMimeType "BitTorrent" "application/x-bittorrent" '(torrent) "Wikipedia: BitTorrent") -(addMimeType "Blackberry COD File" "application/vnd.rim.cod" '(cod) "") -(addMimeType "Blueice Research Multipass" "application/vnd.blueice.multipass" '(mpm) "IANA: Multipass") -(addMimeType "BMI Drawing Data Interchange" "application/vnd.bmi" '(bmi) "IANA: BMI") -(addMimeType "Bourne Shell Script" "application/x-sh" '(sh) "Wikipedia: Bourne Shell") -(addMimeType "BTIF" "image/prs.btif" '(btif) "IANA: BTIF") -(addMimeType "BusinessObjects" "application/vnd.businessobjects" '(rep) "IANA: BusinessObjects") -(addMimeType "Bzip Archive" "application/x-bzip" '(bz) "Wikipedia: Bzip") -(addMimeType "Bzip2 Archive" "application/x-bzip2" '(bz2) "Wikipedia: Bzip") -(addMimeType "C Shell Script" "application/x-csh" '(csh) "Wikipedia: C Shell") -(addMimeType "C Source File" "text/x-c" '(c) "Wikipedia: C Programming Language") -(addMimeType "CambridgeSoft Chem Draw" "application/vnd.chemdraw+xml" '(cdxml) "IANA: Chem Draw") -(addMimeType "Cascading Style Sheets (CSS)" "text/css" '(css) "Wikipedia: CSS") -(addMimeType "CD Audio" "application/x-cdf" '(cda) "Wikipedia: CDA File") -(addMimeType "ChemDraw eXchange file" "chemical/x-cdx" '(cdx) "ChemDraw eXchange file") -(addMimeType "Chemical Markup Language" "chemical/x-cml" '(cml) "Wikipedia: Chemical Markup Language") -(addMimeType "Chemical Style Markup Language" "chemical/x-csml" '(csml) "Wikipedia: Chemical Style Markup Language") -(addMimeType "CIM Database" "application/vnd.contact.cmsg" '(cdbcmsg) "IANA: CIM Database") -(addMimeType "Claymore Data Files" "application/vnd.claymore" '(cla) "IANA: Claymore") -(addMimeType "Clonk Game" "application/vnd.clonk.c4group" '(c4g) "IANA: Clonk") -(addMimeType "Close Captioning - Subtitle" "image/vnd.dvb.subtitle" '(sub) "Wikipedia: Closed Captioning") -(addMimeType "Cloud Data Management Interface (CDMI) - Capability" "application/cdmi-capability" '(cdmia) "RFC 6208") -(addMimeType "Cloud Data Management Interface (CDMI) - Contaimer" "application/cdmi-container" '(cdmic) "RFC 6209") -(addMimeType "Cloud Data Management Interface (CDMI) - Domain" "application/cdmi-domain" '(cdmid) "RFC 6210") -(addMimeType "Cloud Data Management Interface (CDMI) - Object" "application/cdmi-object" '(cdmio) "RFC 6211") -(addMimeType "Cloud Data Management Interface (CDMI) - Queue" "application/cdmi-queue" '(cdmiq) "RFC 6212") -(addMimeType "ClueTrust CartoMobile - Config" "application/vnd.cluetrust.cartomobile-config" '(c11amc) "IANA: CartoMobile") -(addMimeType "ClueTrust CartoMobile - Config Package" "application/vnd.cluetrust.cartomobile-config-pkg" '(c11amz) "IANA: CartoMobile") -(addMimeType "CMU Image" "image/x-cmu-raster" '(ras) "") -(addMimeType "COLLADA" "model/vnd.collada+xml" '(dae) "IANA: COLLADA") -(addMimeType "Comma-Seperated Values" "text/csv" '(csv) "Wikipedia: CSV") -(addMimeType "Compact Pro" "application/mac-compactpro" '(cpt) "Compact Pro") -(addMimeType "Compiled Wireless Markup Language (WMLC)" "application/vnd.wap.wmlc" '(wmlc) "IANA: WMLC") -(addMimeType "Computer Graphics Metafile" "image/cgm" '(cgm) "Wikipedia: Computer Graphics Metafile") -(addMimeType "CoolTalk" "x-conference/x-cooltalk" '(ice) "Wikipedia: CoolTalk") -(addMimeType "Corel Metafile Exchange (CMX)" "image/x-cmx" '(cmx) "Wikipedia: CorelDRAW") -(addMimeType "CorelXARA" "application/vnd.xara" '(xar) "IANA: CorelXARA") -(addMimeType "CosmoCaller" "application/vnd.cosmocaller" '(cmc) "IANA: CosmoCaller") -(addMimeType "CPIO Archive" "application/x-cpio" '(cpio) "Wikipedia: cpio") -(addMimeType "CrickSoftware - Clicker" "application/vnd.crick.clicker" '(clkx) "IANA: Clicker") -(addMimeType "CrickSoftware - Clicker - Keyboard" "application/vnd.crick.clicker.keyboard" '(clkk) "IANA: Clicker") -(addMimeType "CrickSoftware - Clicker - Palette" "application/vnd.crick.clicker.palette" '(clkp) "IANA: Clicker") -(addMimeType "CrickSoftware - Clicker - Template" "application/vnd.crick.clicker.template" '(clkt) "IANA: Clicker") -(addMimeType "CrickSoftware - Clicker - Wordbank" "application/vnd.crick.clicker.wordbank" '(clkw) "IANA: Clicker") -(addMimeType "Critical Tools - PERT Chart EXPERT" "application/vnd.criticaltools.wbs+xml" '(wbs) "IANA: Critical Tools") -(addMimeType "CryptoNote" "application/vnd.rig.cryptonote" '(cryptonote) "IANA: CryptoNote") -(addMimeType "Crystallographic Interchange Format" "chemical/x-cif" '(cif) "Crystallographic Interchange Format") -(addMimeType "CrystalMaker Data Format" "chemical/x-cmdf" '(cmdf) "CrystalMaker Data Format") -(addMimeType "CU-SeeMe" "application/cu-seeme" '(cu) "White Pine") -(addMimeType "CU-Writer" "application/prs.cww" '(cww) "") -(addMimeType "Curl - Applet" "text/vnd.curl" '(curl) "Curl Applet") -(addMimeType "Curl - Detached Applet" "text/vnd.curl.dcurl" '(dcurl) "Curl Detached Applet") -(addMimeType "Curl - Manifest File" "text/vnd.curl.mcurl" '(mcurl) "Curl Manifest File") -(addMimeType "Curl - Source Code" "text/vnd.curl.scurl" '(scurl) "Curl Source Code") -(addMimeType "CURL Applet" "application/vnd.curl.car" '(car) "IANA: CURL Applet") -(addMimeType "CURL Applet" "application/vnd.curl.pcurl" '(pcurl) "IANA: CURL Applet") -(addMimeType "CustomMenu" "application/vnd.yellowriver-custom-menu" '(cmp) "IANA: CustomMenu") -(addMimeType "Data Structure for the Security Suitability of Cryptographic Algorithms" "application/dssc+der" '(dssc) "RFC 5698") -(addMimeType "Data Structure for the Security Suitability of Cryptographic Algorithms" "application/dssc+xml" '(xdssc) "RFC 5698") -(addMimeType "Debian Package" "application/x-debian-package" '(deb) "Wikipedia: Debian Package") -(addMimeType "DECE Audio" "audio/vnd.dece.audio" '(uva) "IANA: Dece Audio") -(addMimeType "DECE Graphic" "image/vnd.dece.graphic" '(uvi) "IANA: DECE Graphic") -(addMimeType "DECE High Definition Video" "video/vnd.dece.hd" '(uvh) "IANA: DECE HD Video") -(addMimeType "DECE Mobile Video" "video/vnd.dece.mobile" '(uvm) "IANA: DECE Mobile Video") -(addMimeType "DECE MP4" "video/vnd.uvvu.mp4" '(uvu) "IANA: DECE MP4") -(addMimeType "DECE PD Video" "video/vnd.dece.pd" '(uvp) "IANA: DECE PD Video") -(addMimeType "DECE SD Video" "video/vnd.dece.sd" '(uvs) "IANA: DECE SD Video") -(addMimeType "DECE Video" "video/vnd.dece.video" '(uvv) "IANA: DECE Video") -(addMimeType "Device Independent File Format (DVI)" "application/x-dvi" '(dvi) "Wikipedia: DVI") -(addMimeType "Digital Siesmograph Networks - SEED Datafiles" "application/vnd.fdsn.seed" '(seed) "IANA: SEED") -(addMimeType "Digital Talking Book" "application/x-dtbook+xml" '(dtb) "Wikipedia: EPUB") -(addMimeType "Digital Talking Book - Resource File" "application/x-dtbresource+xml" '(res) "Digital Talking Book") -(addMimeType "Digital Video Broadcasting" "application/vnd.dvb.ait" '(ait) "IANA: Digital Video Broadcasting") -(addMimeType "Digital Video Broadcasting" "application/vnd.dvb.service" '(svc) "IANA: Digital Video Broadcasting") -(addMimeType "Digital Winds Music" "audio/vnd.digital-winds" '(eol) "IANA: Digital Winds") -(addMimeType "DjVu" "image/vnd.djvu" '(djvu) "Wikipedia: DjVu") -(addMimeType "Document Type Definition" "application/xml-dtd" '(dtd) "W3C DTD") -(addMimeType "Dolby Meridian Lossless Packing" "application/vnd.dolby.mlp" '(mlp) "IANA: Dolby Meridian Lossless Packing") -(addMimeType "Doom Video Game" "application/x-doom" '(wad) "Wikipedia: Doom WAD") -(addMimeType "DPGraph" "application/vnd.dpgraph" '(dpg) "IANA: DPGraph") -(addMimeType "DRA Audio" "audio/vnd.dra" '(dra) "IANA: DRA") -(addMimeType "DreamFactory" "application/vnd.dreamfactory" '(dfac) "IANA: DreamFactory") -(addMimeType "DTS Audio" "audio/vnd.dts" '(dts) "IANA: DTS") -(addMimeType "DTS High Definition Audio" "audio/vnd.dts.hd" '(dtshd) "IANA: DTS HD") -(addMimeType "DWG Drawing" "image/vnd.dwg" '(dwg) "Wikipedia: DWG") -(addMimeType "DynaGeo" "application/vnd.dynageo" '(geo) "IANA: DynaGeo") -(addMimeType "ECMAScript" "application/ecmascript" '(es) "ECMA-357") -(addMimeType "EcoWin Chart" "application/vnd.ecowin.chart" '(mag) "IANA: EcoWin Chart") -(addMimeType "EDMICS 2000" "image/vnd.fujixerox.edmics-mmr" '(mmr) "IANA: EDMICS 2000") -(addMimeType "EDMICS 2000" "image/vnd.fujixerox.edmics-rlc" '(rlc) "IANA: EDMICS 2000") -(addMimeType "Efficient XML Interchange" "application/exi" '(exi) "Efficient XML Interchange (EXI) Best Practices") -(addMimeType "EFI Proteus" "application/vnd.proteus.magazine" '(mgz) "IANA: EFI Proteus") -(addMimeType "Electronic Publication" "application/epub+zip" '(epub) "Wikipedia: EPUB") -(addMimeType "Email Message" "message/rfc822" '(eml) "RFC 2822") -(addMimeType "Enliven Viewer" "application/vnd.enliven" '(nml) "IANA: Enliven Viewer") -(addMimeType "Express by Infoseek" "application/vnd.is-xpr" '(xpr) "IANA: Express by Infoseek") -(addMimeType "eXtended Image File Format (XIFF)" "image/vnd.xiff" '(xif) "IANA: XIFF") -(addMimeType "Extensible Forms Description Language" "application/vnd.xfdl" '(xfdl) "IANA: Extensible Forms Description Language") -(addMimeType "Extensible MultiModal Annotation" "application/emma+xml" '(emma) "EMMA: Extensible MultiModal Annotation markup language") -(addMimeType "EZPix Secure Photo Album" "application/vnd.ezpix-album" '(ez2) "IANA: EZPix Secure Photo Album") -(addMimeType "EZPix Secure Photo Album" "application/vnd.ezpix-package" '(ez3) "IANA: EZPix Secure Photo Album") -(addMimeType "FAST Search & Transfer ASA" "image/vnd.fst" '(fst) "IANA: FAST Search & Transfer ASA") -(addMimeType "FAST Search & Transfer ASA" "video/vnd.fvt" '(fvt) "IANA: FVT") -(addMimeType "FastBid Sheet" "image/vnd.fastbidsheet" '(fbs) "IANA: FastBid Sheet") -(addMimeType "FCS Express Layout Link" "application/vnd.denovo.fcselayout-link" '(fe_launch) "IANA: FCS Express Layout Link") -(addMimeType "Flash Video" "video/x-f4v" '(f4v) "Wikipedia: Flash Video") -(addMimeType "Flash Video" "video/x-flv" '(flv) "Wikipedia: Flash Video") -(addMimeType "FlashPix" "image/vnd.fpx" '(fpx) "IANA: FPX") -(addMimeType "FlashPix" "image/vnd.net-fpx" '(npx) "IANA: FPX") -(addMimeType "FLEXSTOR" "text/vnd.fmi.flexstor" '(flx) "IANA: FLEXSTOR") -(addMimeType "FLI/FLC Animation Format" "video/x-fli" '(fli) "FLI/FLC Animation Format") -(addMimeType "Free Lossless Audio Codec (FLAC)" "audio/flac" '(flac) "IANA: FLAC") -(addMimeType "FluxTime Clip" "application/vnd.fluxtime.clip" '(ftc) "IANA: FluxTime Clip") -(addMimeType "Forms Data Format" "application/vnd.fdf" '(fdf) "IANA: Forms Data Format") -(addMimeType "Fortran Source File" "text/x-fortran" '(f) "Wikipedia: Fortran") -(addMimeType "FrameMaker Interchange Format" "application/vnd.mif" '(mif) "IANA: FrameMaker Interchange Format") -(addMimeType "FrameMaker Normal Format" "application/vnd.framemaker" '(fm) "IANA: FrameMaker") -(addMimeType "FreeHand MX" "image/x-freehand" '(fh) "Wikipedia: Macromedia Freehand") -(addMimeType "Friendly Software Corporation" "application/vnd.fsc.weblaunch" '(fsc) "IANA: Friendly Software Corporation") -(addMimeType "Frogans Player" "application/vnd.frogans.fnc" '(fnc) "IANA: Frogans Player") -(addMimeType "Frogans Player" "application/vnd.frogans.ltf" '(ltf) "IANA: Frogans Player") -(addMimeType "Fujitsu - Xerox 2D CAD Data" "application/vnd.fujixerox.ddd" '(ddd) "IANA: Fujitsu DDD") -(addMimeType "Fujitsu - Xerox DocuWorks" "application/vnd.fujixerox.docuworks" '(xdw) "IANA: Docuworks") -(addMimeType "Fujitsu - Xerox DocuWorks Binder" "application/vnd.fujixerox.docuworks.binder" '(xbd) "IANA: Docuworks Binder") -(addMimeType "Fujitsu Oasys" "application/vnd.fujitsu.oasys" '(oas) "IANA: Fujitsu Oasys") -(addMimeType "Fujitsu Oasys" "application/vnd.fujitsu.oasys2" '(oa2) "IANA: Fujitsu Oasys") -(addMimeType "Fujitsu Oasys" "application/vnd.fujitsu.oasys3" '(oa3) "IANA: Fujitsu Oasys") -(addMimeType "Fujitsu Oasys" "application/vnd.fujitsu.oasysgp" '(fg5) "IANA: Fujitsu Oasys") -(addMimeType "Fujitsu Oasys" "application/vnd.fujitsu.oasysprs" '(bh2) "IANA: Fujitsu Oasys") -(addMimeType "FutureSplash Animator" "application/x-futuresplash" '(spl) "Wikipedia: FutureSplash Animator") -(addMimeType "FuzzySheet" "application/vnd.fuzzysheet" '(fzs) "IANA: FuzySheet") -(addMimeType "G3 Fax Image" "image/g3fax" '(g3) "Wikipedia: G3 Fax Image") -(addMimeType "GameMaker ActiveX" "application/vnd.gmx" '(gmx) "IANA: GameMaker ActiveX") -(addMimeType "Gen-Trix Studio" "model/vnd.gtw" '(gtw) "IANA: GTW") -(addMimeType "Genomatix Tuxedo Framework" "application/vnd.genomatix.tuxedo" '(txd) "IANA: Genomatix Tuxedo Framework") -(addMimeType "GeoGebra" "application/vnd.geogebra.file" '(ggb) "IANA: GeoGebra") -(addMimeType "GeoGebra" "application/vnd.geogebra.tool" '(ggt) "IANA: GeoGebra") -(addMimeType "Geometric Description Language (GDL)" "model/vnd.gdl" '(gdl) "IANA: GDL") -(addMimeType "GeoMetry Explorer" "application/vnd.geometry-explorer" '(gex) "IANA: GeoMetry Explorer") -(addMimeType "GEONExT and JSXGraph" "application/vnd.geonext" '(gxt) "IANA: GEONExT and JSXGraph") -(addMimeType "GeoplanW" "application/vnd.geoplan" '(g2w) "IANA: GeoplanW") -(addMimeType "GeospacW" "application/vnd.geospace" '(g3w) "IANA: GeospacW") -(addMimeType "Ghostscript Font" "application/x-font-ghostscript" '(gsf) "Wikipedia: Ghostscript") -(addMimeType "Glyph Bitmap Distribution Format" "application/x-font-bdf" '(bdf) "Wikipedia: Glyph Bitmap Distribution Format") -(addMimeType "GNU Tar Files" "application/x-gtar" '(gtar) "GNU Tar") -(addMimeType "GNU Texinfo Document" "application/x-texinfo" '(texinfo) "Wikipedia: Texinfo") -(addMimeType "Gnumeric" "application/x-gnumeric" '(gnumeric) "Wikipedia: Gnumeric") -(addMimeType "Google Earth - KML" "application/vnd.google-earth.kml+xml" '(kml) "IANA: Google Earth") -(addMimeType "Google Earth - Zipped KML" "application/vnd.google-earth.kmz" '(kmz) "IANA: Google Earth") -(addMimeType "GPS eXchange Format" "application/gpx+xml" '(gpx) "GPS eXchange Format") -(addMimeType "GrafEq" "application/vnd.grafeq" '(gqf) "IANA: GrafEq") -(addMimeType "Graphics Interchange Format" "image/gif" '(gif) "Wikipedia: Graphics Interchange Format") -(addMimeType "Graphviz" "text/vnd.graphviz" '(gv) "IANA: Graphviz") -(addMimeType "Groove - Account" "application/vnd.groove-account" '(gac) "IANA: Groove") -(addMimeType "Groove - Help" "application/vnd.groove-help" '(ghf) "IANA: Groove") -(addMimeType "Groove - Identity Message" "application/vnd.groove-identity-message" '(gim) "IANA: Groove") -(addMimeType "Groove - Injector" "application/vnd.groove-injector" '(grv) "IANA: Groove") -(addMimeType "Groove - Tool Message" "application/vnd.groove-tool-message" '(gtm) "IANA: Groove") -(addMimeType "Groove - Tool Template" "application/vnd.groove-tool-template" '(tpl) "IANA: Groove") -(addMimeType "Groove - Vcard" "application/vnd.groove-vcard" '(vcg) "IANA: Groove") -(addMimeType "GZip" "application/gzip" '(gz) "Wikipedia: GZip") -(addMimeType "H.261" "video/h261" '(h261) "Wikipedia: H.261") -(addMimeType "H.263" "video/h263" '(h263) "Wikipedia: H.263") -(addMimeType "H.264" "video/h264" '(h264) "Wikipedia: H.264") -(addMimeType "HEIC Image" "image/heic" '(heic) "IANA: HEIC") -(addMimeType "HEIC Image Sequence" "image/heic-sequence" '(heics) "IANA: HEIC Sequence") -(addMimeType "HEIF Image" "image/heif" '(heif hif) "IANA: HEIF") -(addMimeType "HEIF Image Sequence" "image/heif-sequence" '(heifs) "IANA: HEIF Sequence") -(addMimeType "Hewlett Packard Instant Delivery" "application/vnd.hp-hpid" '(hpid) "IANA: Hewlett Packard Instant Delivery") -(addMimeType "Hewlett-Packard's WebPrintSmart" "application/vnd.hp-hps" '(hps) "IANA: Hewlett-Packard's WebPrintSmart") -(addMimeType "Hierarchical Data Format" "application/x-hdf" '(hdf) "Wikipedia: Hierarchical Data Format") -(addMimeType "Hit'n'Mix" "audio/vnd.rip" '(rip) "IANA: Hit'n'Mix") -(addMimeType "Homebanking Computer Interface (HBCI)" "application/vnd.hbci" '(hbci) "IANA: HBCI") -(addMimeType "HP Indigo Digital Press - Job Layout Languate" "application/vnd.hp-jlyt" '(jlt) "IANA: HP Job Layout Language") -(addMimeType "HP Printer Command Language" "application/vnd.hp-pcl" '(pcl) "IANA: HP Printer Command Language") -(addMimeType "HP-GL/2 and HP RTL" "application/vnd.hp-hpgl" '(hpgl) "IANA: HP-GL/2 and HP RTL") -(addMimeType "HV Script" "application/vnd.yamaha.hv-script" '(hvs) "IANA: HV Script") -(addMimeType "HV Voice Dictionary" "application/vnd.yamaha.hv-dic" '(hvd) "IANA: HV Voice Dictionary") -(addMimeType "HV Voice Parameter" "application/vnd.yamaha.hv-voice" '(hvp) "IANA: HV Voice Parameter") -(addMimeType "Hydrostatix Master Suite" "application/vnd.hydrostatix.sof-data" '(sfd-hdstx) "IANA: Hydrostatix Master Suite") -(addMimeType "Hyperstudio" "application/hyperstudio" '(stk) "IANA - Hyperstudio") -(addMimeType "Hypertext Application Language" "application/vnd.hal+xml" '(hal) "IANA: HAL") -(addMimeType "HyperText Markup Language (HTML)" "text/html" '(html htm shtml) "IANA: HTML") -(addMimeType "IBM DB2 Rights Manager" "application/vnd.ibm.rights-management" '(irm) "IANA: IBM DB2 Rights Manager") -(addMimeType "IBM Electronic Media Management System - Secure Container" "application/vnd.ibm.secure-container" '(sc) "IANA: EMMS") -(addMimeType "iCalendar" "text/calendar" '(ics) "Wikipedia: iCalendar") -(addMimeType "ICC profile" "application/vnd.iccprofile" '(icc) "IANA: ICC profile") -(addMimeType "Icon Image" "image/x-icon" '(ico) "Wikipedia: ICO File Format") -(addMimeType "igLoader" "application/vnd.igloader" '(igl) "IANA: igLoader") -(addMimeType "Image Exchange Format" "image/ief" '(ief) "RFC 1314") -(addMimeType "ImmerVision PURE Players" "application/vnd.immervision-ivp" '(ivp) "IANA: ImmerVision PURE Players") -(addMimeType "ImmerVision PURE Players" "application/vnd.immervision-ivu" '(ivu) "IANA: ImmerVision PURE Players") -(addMimeType "IMS Networks" "application/reginfo+xml" '(rif) "") -(addMimeType "In3D - 3DML" "text/vnd.in3d.3dml" '(3dml) "IANA: In3D") -(addMimeType "In3D - 3DML" "text/vnd.in3d.spot" '(spot) "IANA: In3D") -(addMimeType "Initial Graphics Exchange Specification (IGES)" "model/iges" '(igs) "Wikipedia: IGES") -(addMimeType "Interactive Geometry Software" "application/vnd.intergeo" '(i2g) "IANA: Interactive Geometry Software") -(addMimeType "Interactive Geometry Software Cinderella" "application/vnd.cinderella" '(cdy) "IANA: Cinderella") -(addMimeType "Intercon FormNet" "application/vnd.intercon.formnet" '(xpw) "IANA: Intercon FormNet") -(addMimeType "International Society for Advancement of Cytometry" "application/vnd.isac.fcs" '(fcs) "IANA: International Society for Advancement of Cytometry") -(addMimeType "Internet Protocol Flow Information Export" "application/ipfix" '(ipfix) "RFC 3917") -(addMimeType "Internet Public Key Infrastructure - Certificate" "application/pkix-cert" '(cer) "RFC 2585") -(addMimeType "Internet Public Key Infrastructure - Certificate Management Protocole" "application/pkixcmp" '(pki) "RFC 2585") -(addMimeType "Internet Public Key Infrastructure - Certificate Revocation Lists" "application/pkix-crl" '(crl) "RFC 2585") -(addMimeType "Internet Public Key Infrastructure - Certification Path" "application/pkix-pkipath" '(pkipath) "RFC 2585") -(addMimeType "IOCOM Visimeet" "application/vnd.insors.igm" '(igm) "IANA: IOCOM Visimeet") -(addMimeType "IP Unplugged Roaming Client" "application/vnd.ipunplugged.rcprofile" '(rcprofile) "IANA: IP Unplugged Roaming Client") -(addMimeType "iRepository / Lucidoc Editor" "application/vnd.irepository.package+xml" '(irp) "IANA: iRepository / Lucidoc Editor") -(addMimeType "J2ME App Descriptor" "text/vnd.sun.j2me.app-descriptor" '(jad) "IANA: J2ME App Descriptor") -(addMimeType "Java Archive" "application/java-archive" '(jar) "Wikipedia: JAR file format") -(addMimeType "Java Bytecode File" "application/java-vm" '(class) "Wikipedia: Java Bytecode") -(addMimeType "Java Network Launching Protocol" "application/x-java-jnlp-file" '(jnlp) "Wikipedia: Java Web Start") -(addMimeType "Java Serialized Object" "application/java-serialized-object" '(ser) "Java Serialization API") -(addMimeType "Java Source File" "text/x-java-source" '(java) "Apache: Java Source") -(addMimeType "JavaScript" "text/javascript" '(js mjs) "IANA: JavaScript") -(addMimeType "JavaScript Object Notation (JSON)" "application/json" '(json) "Wikipedia: JSON") -(addMimeType "Joda Archive" "application/vnd.joost.joda-archive" '(joda) "IANA: Joda Archive") -(addMimeType "JPEG Image" "image/jpeg" '(jpeg jpg jpe jfif) "IANA: JPEG") -(addMimeType "JPEG 2000 Compound Image File Format" "video/jpm" '(jpm) "IANA: JPM") -(addMimeType "JPEG Image (Citrix client)" "image/x-citrix-jpeg" '(jpeg jpg) "RFC 1314") -(addMimeType "JPEG Image (Progressive)" "image/pjpeg" '(pjpeg) "JPEG image compression FAQ") -(addMimeType "JPEG XL Image" "image/jxl" '(jxl) "IANA: JPEG XL") -(addMimeType "JPGVideo" "video/jpeg" '(jpgv) "RFC 3555") -(addMimeType "JSON - Linked Data" "application/ld+json" '(jsonld) "Wikipedia: JSON-LD") -(addMimeType "Kahootz" "application/vnd.kahootz" '(ktz) "IANA: Kahootz") -(addMimeType "Karaoke on Chipnuts Chipsets" "application/vnd.chipnuts.karaoke-mmd" '(mmd) "IANA: Chipnuts Karaoke") -(addMimeType "KDE KOffice Office Suite - Karbon" "application/vnd.kde.karbon" '(karbon) "IANA: KDE KOffice Office Suite") -(addMimeType "KDE KOffice Office Suite - KChart" "application/vnd.kde.kchart" '(chrt) "IANA: KDE KOffice Office Suite") -(addMimeType "KDE KOffice Office Suite - Kformula" "application/vnd.kde.kformula" '(kfo) "IANA: KDE KOffice Office Suite") -(addMimeType "KDE KOffice Office Suite - Kivio" "application/vnd.kde.kivio" '(flw) "IANA: KDE KOffice Office Suite") -(addMimeType "KDE KOffice Office Suite - Kontour" "application/vnd.kde.kontour" '(kon) "IANA: KDE KOffice Office Suite") -(addMimeType "KDE KOffice Office Suite - Kpresenter" "application/vnd.kde.kpresenter" '(kpr) "IANA: KDE KOffice Office Suite") -(addMimeType "KDE KOffice Office Suite - Kspread" "application/vnd.kde.kspread" '(ksp) "IANA: KDE KOffice Office Suite") -(addMimeType "KDE KOffice Office Suite - Kword" "application/vnd.kde.kword" '(kwd) "IANA: KDE KOffice Office Suite") -(addMimeType "Kenamea App" "application/vnd.kenameaapp" '(htke) "IANA: Kenamea App") -(addMimeType "Kidspiration" "application/vnd.kidspiration" '(kia) "IANA: Kidspiration") -(addMimeType "Kinar Applications" "application/vnd.kinar" '(kne) "IANA: Kina Applications") -(addMimeType "Kodak Storyshare" "application/vnd.kodak-descriptor" '(sse) "IANA: Kodak Storyshare") -(addMimeType "Laser App Enterprise" "application/vnd.las.las+xml" '(lasxml) "IANA: Laser App Enterprise") -(addMimeType "LaTeX" "application/x-latex" '(latex) "Wikipedia: LaTeX") -(addMimeType "Life Balance - Desktop Edition" "application/vnd.llamagraphics.life-balance.desktop" '(lbd) "IANA: Life Balance") -(addMimeType "Life Balance - Exchange Format" "application/vnd.llamagraphics.life-balance.exchange+xml" '(lbe) "IANA: Life Balance") -(addMimeType "Lightspeed Audio Lab" "application/vnd.jam" '(jam) "IANA: Lightspeed Audio Lab") -(addMimeType "Lotus 1-2-3" "application/vnd.lotus-1-2-3" '(123) "IANA: Lotus 1-2-3") -(addMimeType "Lotus Approach" "application/vnd.lotus-approach" '(apr) "IANA: Lotus Approach") -(addMimeType "Lotus Freelance" "application/vnd.lotus-freelance" '(pre) "IANA: Lotus Freelance") -(addMimeType "Lotus Notes" "application/vnd.lotus-notes" '(nsf) "IANA: Lotus Notes") -(addMimeType "Lotus Organizer" "application/vnd.lotus-organizer" '(org) "IANA: Lotus Organizer") -(addMimeType "Lotus Screencam" "application/vnd.lotus-screencam" '(scm) "IANA: Lotus Screencam") -(addMimeType "Lotus Wordpro" "application/vnd.lotus-wordpro" '(lwp) "IANA: Lotus Wordpro") -(addMimeType "Lucent Voice" "audio/vnd.lucent.voice" '(lvp) "IANA: Lucent Voice") -(addMimeType "M3U (Multimedia Playlist)" "audio/x-mpegurl" '(m3u) "Wikipedia: M3U") -(addMimeType "M4v" "video/x-m4v" '(m4v) "Wikipedia: M4v") -(addMimeType "Markdown" "text/markdown" '(md markdown) "IANA: Markdown") -(addMimeType "Matroska Audio" "audio/matroska" '(mka) "IANA: Matroska") -(addMimeType "Matroska Video" "video/matroska" '(mkv) "IANA: Matroska") -(addMimeType "Macintosh BinHex 4.0" "application/mac-binhex40" '(hqx) "MacMIME") -(addMimeType "MacPorts Port System" "application/vnd.macports.portpkg" '(portpkg) "IANA: MacPorts Port System") -(addMimeType "MapGuide DBXML" "application/vnd.osgeo.mapguide.package" '(mgp) "IANA: MapGuide DBXML") -(addMimeType "MARC Formats" "application/marc" '(mrc) "RFC 2220") -(addMimeType "MARC21 XML Schema" "application/marcxml+xml" '(mrcx) "RFC 6207") -(addMimeType "Material Exchange Format" "application/mxf" '(mxf) "RFC 4539") -(addMimeType "Mathematica Notebook Player" "application/vnd.wolfram.player" '(nbp) "IANA: Mathematica Notebook Player") -(addMimeType "Mathematica Notebooks" "application/mathematica" '(ma) "IANA - Mathematica") -(addMimeType "Mathematical Markup Language" "application/mathml+xml" '(mathml) "W3C Math Home") -(addMimeType "Mbox database files" "application/mbox" '(mbox) "RFC 4155") -(addMimeType "MedCalc" "application/vnd.medcalcdata" '(mc1) "IANA: MedCalc") -(addMimeType "Media Server Control Markup Language" "application/mediaservercontrol+xml" '(mscml) "RFC 5022") -(addMimeType "MediaRemote" "application/vnd.mediastation.cdkey" '(cdkey) "IANA: MediaRemote") -(addMimeType "Medical Waveform Encoding Format" "application/vnd.mfer" '(mwf) "IANA: Medical Waveform Encoding Format") -(addMimeType "Melody Format for Mobile Platform" "application/vnd.mfmp" '(mfm) "IANA: Melody Format for Mobile Platform") -(addMimeType "Mesh Data Type" "model/mesh" '(msh) "RFC 2077") -(addMimeType "Metadata Authority Description Schema" "application/mads+xml" '(mads) "RFC 6207") -(addMimeType "Metadata Encoding and Transmission Standard" "application/mets+xml" '(mets) "RFC 6207") -(addMimeType "Metadata Object Description Schema" "application/mods+xml" '(mods) "RFC 6207") -(addMimeType "Metalink" "application/metalink4+xml" '(meta4) "Wikipedia: Metalink") -(addMimeType "Micro CADAM Helix D&D" "application/vnd.mcd" '(mcd) "IANA: Micro CADAM Helix D&D") -(addMimeType "Micrografx" "application/vnd.micrografx.flo" '(flo) "IANA: Micrografx") -(addMimeType "Micrografx iGrafx Professional" "application/vnd.micrografx.igx" '(igx) "IANA: Micrografx") -(addMimeType "MICROSEC e-Szign?" "application/vnd.eszigno3+xml" '(es3) "IANA: MICROSEC e-Szign?") -(addMimeType "Microsoft Access" "application/x-msaccess" '(mdb) "Wikipedia: Microsoft Access") -(addMimeType "Microsoft Advanced Systems Format (ASF)" "video/x-ms-asf" '(asf) "Wikipedia: Advanced Systems Format (ASF)") -(addMimeType "Microsoft Application" "application/x-msdownload" '(exe) "Wikipedia: EXE") -(addMimeType "Microsoft Artgalry" "application/vnd.ms-artgalry" '(cil) "IANA: MS Artgalry") -(addMimeType "Microsoft Cabinet File" "application/vnd.ms-cab-compressed" '(cab) "IANA: MS Cabinet File") -(addMimeType "Microsoft Class Server" "application/vnd.ms-ims" '(ims) "IANA: MS Class Server") -(addMimeType "Microsoft ClickOnce" "application/x-ms-application" '(application) "Wikipedia: ClickOnce") -(addMimeType "Microsoft Clipboard Clip" "application/x-msclip" '(clp) "Wikipedia: Clipboard") -(addMimeType "Microsoft Document Imaging Format" "image/vnd.ms-modi" '(mdi) "Wikipedia: Microsoft Document Image Format") -(addMimeType "Microsoft Embedded OpenType" "application/vnd.ms-fontobject" '(eot) "IANA: MS Embedded OpenType") -(addMimeType "Microsoft Excel" "application/vnd.ms-excel" '(xls) "IANA: MS Excel") -(addMimeType "Microsoft Excel - Add-In File" "application/vnd.ms-excel.addin.macroenabled.12" '(xlam) "IANA: MS Excel") -(addMimeType "Microsoft Excel - Binary Workbook" "application/vnd.ms-excel.sheet.binary.macroenabled.12" '(xlsb) "IANA: MS Excel") -(addMimeType "Microsoft Excel - Macro-Enabled Template File" "application/vnd.ms-excel.template.macroenabled.12" '(xltm) "IANA: MS Excel") -(addMimeType "Microsoft Excel - Macro-Enabled Workbook" "application/vnd.ms-excel.sheet.macroenabled.12" '(xlsm) "IANA: MS Excel") -(addMimeType "Microsoft Html Help File" "application/vnd.ms-htmlhelp" '(chm) "IANA:MS Html Help File") -(addMimeType "Microsoft Information Card" "application/x-mscardfile" '(crd) "Wikipedia: Information Card") -(addMimeType "Microsoft Learning Resource Module" "application/vnd.ms-lrm" '(lrm) "IANA: MS Learning Resource Module") -(addMimeType "Microsoft MediaView" "application/x-msmediaview" '(mvb) "Windows Help") -(addMimeType "Microsoft Money" "application/x-msmoney" '(mny) "Wikipedia: Microsoft Money") -(addMimeType "Microsoft Office - OOXML - Presentation" "application/vnd.openxmlformats-officedocument.presentationml.presentation" '(pptx) "IANA: OOXML - Presentation") -(addMimeType "Microsoft Office - OOXML - Presentation (Slide)" "application/vnd.openxmlformats-officedocument.presentationml.slide" '(sldx) "IANA: OOXML - Presentation") -(addMimeType "Microsoft Office - OOXML - Presentation (Slideshow)" "application/vnd.openxmlformats-officedocument.presentationml.slideshow" '(ppsx) "IANA: OOXML - Presentation") -(addMimeType "Microsoft Office - OOXML - Presentation Template" "application/vnd.openxmlformats-officedocument.presentationml.template" '(potx) "IANA: OOXML - Presentation Template") -(addMimeType "Microsoft Office - OOXML - Spreadsheet" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" '(xlsx) "IANA: OOXML - Spreadsheet") -(addMimeType "Microsoft Office - OOXML - Spreadsheet Template" "application/vnd.openxmlformats-officedocument.spreadsheetml.template" '(xltx) "IANA: OOXML - Spreadsheet Template") -(addMimeType "Microsoft Office - OOXML - Word Document" "application/vnd.openxmlformats-officedocument.wordprocessingml.document" '(docx) "IANA: OOXML - Word Document") -(addMimeType "Microsoft Office - OOXML - Word Document Template" "application/vnd.openxmlformats-officedocument.wordprocessingml.template" '(dotx) "IANA: OOXML - Word Document Template") -(addMimeType "Microsoft Office Binder" "application/x-msbinder" '(obd) "Wikipedia: Microsoft Shared Tools") -(addMimeType "Microsoft Office System Release Theme" "application/vnd.ms-officetheme" '(thmx) "IANA: MS Office System Release Theme") -(addMimeType "Microsoft OneNote" "application/onenote" '(onetoc) "MS OneNote 2010") -(addMimeType "Microsoft PlayReady Ecosystem" "audio/vnd.ms-playready.media.pya" '(pya) "IANA: Microsoft PlayReady Ecosystem") -(addMimeType "Microsoft PlayReady Ecosystem Video" "video/vnd.ms-playready.media.pyv" '(pyv) "IANA: Microsoft PlayReady Ecosystem") -(addMimeType "Microsoft PowerPoint" "application/vnd.ms-powerpoint" '(ppt) "IANA: MS PowerPoint") -(addMimeType "Microsoft PowerPoint - Add-in file" "application/vnd.ms-powerpoint.addin.macroenabled.12" '(ppam) "IANA: MS PowerPoint") -(addMimeType "Microsoft PowerPoint - Macro-Enabled Open XML Slide" "application/vnd.ms-powerpoint.slide.macroenabled.12" '(sldm) "IANA: MS PowerPoint") -(addMimeType "Microsoft PowerPoint - Macro-Enabled Presentation File" "application/vnd.ms-powerpoint.presentation.macroenabled.12" '(pptm) "IANA: MS PowerPoint") -(addMimeType "Microsoft PowerPoint - Macro-Enabled Slide Show File" "application/vnd.ms-powerpoint.slideshow.macroenabled.12" '(ppsm) "IANA: MS PowerPoint") -(addMimeType "Microsoft PowerPoint - Macro-Enabled Template File" "application/vnd.ms-powerpoint.template.macroenabled.12" '(potm) "IANA: MS PowerPoint") -(addMimeType "Microsoft Project" "application/vnd.ms-project" '(mpp) "IANA: MS PowerPoint") -(addMimeType "Microsoft Publisher" "application/x-mspublisher" '(pub) "Wikipedia: Microsoft Publisher") -(addMimeType "Microsoft Schedule+" "application/x-msschedule" '(scd) "Wikipedia: Microsoft Schedule Plus") -(addMimeType "Microsoft Silverlight" "application/x-silverlight-app" '(xap) "Wikipedia: Silverlight") -(addMimeType "Microsoft Trust UI Provider - Certificate Trust Link" "application/vnd.ms-pki.stl" '(stl) "IANA: MS Trust UI Provider") -(addMimeType "Microsoft Trust UI Provider - Security Catalog" "application/vnd.ms-pki.seccat" '(cat) "IANA: MS Trust UI Provider") -(addMimeType "Microsoft Visio" "application/vnd.visio" '(vsd) "IANA: Visio") -(addMimeType "Microsoft Visio 2013" "application/vnd.visio2013" '(vsdx) "IANA: Visio") -(addMimeType "Microsoft Windows Media" "video/x-ms-wm" '(wm) "Wikipedia: Advanced Systems Format (ASF)") -(addMimeType "Microsoft Windows Media Audio" "audio/x-ms-wma" '(wma) "Wikipedia: Windows Media Audio") -(addMimeType "Microsoft Windows Media Audio Redirector" "audio/x-ms-wax" '(wax) "Windows Media Metafiles") -(addMimeType "Microsoft Windows Media Audio/Video Playlist" "video/x-ms-wmx" '(wmx) "Wikipedia: Advanced Systems Format (ASF)") -(addMimeType "Microsoft Windows Media Player Download Package" "application/x-ms-wmd" '(wmd) "Wikipedia: Windows Media Player") -(addMimeType "Microsoft Windows Media Player Playlist" "application/vnd.ms-wpl" '(wpl) "IANA: MS Windows Media Player Playlist") -(addMimeType "Microsoft Windows Media Player Skin Package" "application/x-ms-wmz" '(wmz) "Wikipedia: Windows Media Player") -(addMimeType "Microsoft Windows Media Video" "video/x-ms-wmv" '(wmv) "Wikipedia: Advanced Systems Format (ASF)") -(addMimeType "Microsoft Windows Media Video Playlist" "video/x-ms-wvx" '(wvx) "Wikipedia: Advanced Systems Format (ASF)") -(addMimeType "Microsoft Windows Metafile" "application/x-msmetafile" '(wmf) "Wikipedia: Windows Metafile") -(addMimeType "Microsoft Windows Terminal Services" "application/x-msterminal" '(trm) "Wikipedia: Terminal Server") -(addMimeType "Microsoft Word" "application/msword" '(doc) "Wikipedia: Microsoft Word") -(addMimeType "Microsoft Word - Macro-Enabled Document" "application/vnd.ms-word.document.macroenabled.12" '(docm) "IANA: MS Word") -(addMimeType "Microsoft Word - Macro-Enabled Template" "application/vnd.ms-word.template.macroenabled.12" '(dotm) "IANA: MS Word") -(addMimeType "Microsoft Wordpad" "application/x-mswrite" '(wri) "Wikipedia: Wordpad") -(addMimeType "Microsoft Works" "application/vnd.ms-works" '(wps) "IANA: MS Works") -(addMimeType "Microsoft XAML Browser Application" "application/x-ms-xbap" '(xbap) "Wikipedia: XAML Browser") -(addMimeType "Microsoft XML Paper Specification" "application/vnd.ms-xpsdocument" '(xps) "IANA: MS XML Paper Specification") -(addMimeType "MIDI" "audio/midi" '(midi) "Wikipedia: MIDI") -(addMimeType "MIDI - Musical Instrument Digital Interface" "audio/midi" '(mid) "Wikipedia: MIDI") -(addMimeType "MiniPay" "application/vnd.ibm.minipay" '(mpy) "IANA: MiniPay") -(addMimeType "MO:DCA-P" "application/vnd.ibm.modcap" '(afp) "IANA: MO:DCA-P") -(addMimeType "Mobile Information Device Profile" "application/vnd.jcp.javame.midlet-rms" '(rms) "IANA: Mobile Information Device Profile") -(addMimeType "MobileTV" "application/vnd.tmobile-livetv" '(tmo) "IANA: MobileTV") -(addMimeType "Mobipocket" "application/x-mobipocket-ebook" '(prc) "Wikipedia: Mobipocket") -(addMimeType "Mobius Management Systems - Basket file" "application/vnd.mobius.mbk" '(mbk) "IANA: Mobius Management Systems") -(addMimeType "Mobius Management Systems - Distribution Database" "application/vnd.mobius.dis" '(dis) "IANA: Mobius Management Systems") -(addMimeType "Mobius Management Systems - Policy Definition Language File" "application/vnd.mobius.plc" '(plc) "IANA: Mobius Management Systems") -(addMimeType "Mobius Management Systems - Query File" "application/vnd.mobius.mqy" '(mqy) "IANA: Mobius Management Systems") -(addMimeType "Mobius Management Systems - Script Language" "application/vnd.mobius.msl" '(msl) "IANA: Mobius Management Systems") -(addMimeType "Mobius Management Systems - Topic Index File" "application/vnd.mobius.txf" '(txf) "IANA: Mobius Management Systems") -(addMimeType "Mobius Management Systems - UniversalArchive" "application/vnd.mobius.daf" '(daf) "IANA: Mobius Management Systems") -(addMimeType "mod_fly / fly.cgi" "text/vnd.fly" '(fly) "IANA: Fly") -(addMimeType "Mophun Certificate" "application/vnd.mophun.certificate" '(mpc) "IANA: Mophun Certificate") -(addMimeType "Mophun VM" "application/vnd.mophun.application" '(mpn) "IANA: Mophun VM") -(addMimeType "Motion JPEG 2000" "video/mj2" '(mj2) "IANA: MJ2") -(addMimeType "MPEG Audio" "audio/mpeg" '(mpga mp2 mp2a mp3 m2a m3a) "IANA: MPEG Audio") -(addMimeType "MPEG Transport Stream" "video/mp2t" '(ts m2t m2ts mts) "IANA: MPEG Transport Stream") -(addMimeType "MPEG Url" "video/vnd.mpegurl" '(mxu) "IANA: MPEG Url") -(addMimeType "MPEG Video" "video/mpeg" '(mpeg mpg mpe m1v m2v) "IANA: MPEG Video") -(addMimeType "MPEG-21" "application/mp21" '(m21) "Wikipedia: MPEG-21") -(addMimeType "MPEG-4 Video" "video/mp4" '(mp4 mp4v mpg4) "IANA: MPEG-4 Video") -(addMimeType "MPEG-4 Audio" "audio/mp4" '(m4a mp4a mp4) "IANA: MPEG-4 Audio") -(addMimeType "MPEG4" "application/mp4" '(mp4) "RFC 4337") -(addMimeType "Multimedia Playlist Unicode" "application/vnd.apple.mpegurl" '(m3u8) "Wikipedia: M3U") -(addMimeType "MUsical Score Interpreted Code Invented for the ASCII designation of Notation" "application/vnd.musician" '(mus) "IANA: MUSICIAN") -(addMimeType "Muvee Automatic Video Editing" "application/vnd.muvee.style" '(msty) "IANA: Muvee") -(addMimeType "MXML" "application/xv+xml" '(mxml) "Wikipedia: MXML") -(addMimeType "N-Gage Game Data" "application/vnd.nokia.n-gage.data" '(ngdat) "IANA: N-Gage Game Data") -(addMimeType "N-Gage Game Installer" "application/vnd.nokia.n-gage.symbian.install" '(n-gage) "IANA: N-Gage Game Installer") -(addMimeType "Navigation Control file for XML (for ePub)" "application/x-dtbncx+xml" '(ncx) "Wikipedia: EPUB") -(addMimeType "Network Common Data Form (NetCDF)" "application/x-netcdf" '(nc) "Wikipedia: NetCDF") -(addMimeType "neuroLanguage" "application/vnd.neurolanguage.nlu" '(nlu) "IANA: neuroLanguage") -(addMimeType "New Moon Liftoff/DNA" "application/vnd.dna" '(dna) "IANA: New Moon Liftoff/DNA") -(addMimeType "NobleNet Directory" "application/vnd.noblenet-directory" '(nnd) "IANA: NobleNet Directory") -(addMimeType "NobleNet Sealer" "application/vnd.noblenet-sealer" '(nns) "IANA: NobleNet Sealer") -(addMimeType "NobleNet Web" "application/vnd.noblenet-web" '(nnw) "IANA: NobleNet Web") -(addMimeType "Nokia Radio Application - Preset" "application/vnd.nokia.radio-preset" '(rpst) "IANA: Nokia Radio Application") -(addMimeType "Nokia Radio Application - Preset" "application/vnd.nokia.radio-presets" '(rpss) "IANA: Nokia Radio Application") -(addMimeType "Notation3" "text/n3" '(n3) "Wikipedia: Notation3") -(addMimeType "Novadigm's RADIA and EDM products" "application/vnd.novadigm.edm" '(edm) "IANA: Novadigm's RADIA and EDM products") -(addMimeType "Novadigm's RADIA and EDM products" "application/vnd.novadigm.edx" '(edx) "IANA: Novadigm's RADIA and EDM products") -(addMimeType "Novadigm's RADIA and EDM products" "application/vnd.novadigm.ext" '(ext) "IANA: Novadigm's RADIA and EDM products") -(addMimeType "NpGraphIt" "application/vnd.flographit" '(gph) "IANA: FloGraphIt") -(addMimeType "Nuera ECELP 4800" "audio/vnd.nuera.ecelp4800" '(ecelp4800) "IANA: ECELP 4800") -(addMimeType "Nuera ECELP 7470" "audio/vnd.nuera.ecelp7470" '(ecelp7470) "IANA: ECELP 7470") -(addMimeType "Nuera ECELP 9600" "audio/vnd.nuera.ecelp9600" '(ecelp9600) "IANA: ECELP 9600") -(addMimeType "Office Document Architecture" "application/oda" '(oda) "RFC 2161") -(addMimeType "Ogg" "application/ogg" '(ogx) "Wikipedia: Ogg") -(addMimeType "Ogg Audio" "audio/ogg" '(oga ogg opus spx) "RFC 5334") -(addMimeType "Ogg Video" "video/ogg" '(ogv) "Wikipedia: Ogg") -(addMimeType "OMA Download Agents" "application/vnd.oma.dd2+xml" '(dd2) "IANA: OMA Download Agents") -(addMimeType "Open Document Text Web" "application/vnd.oasis.opendocument.text-web" '(oth) "IANA: OpenDocument Text Web") -(addMimeType "Open eBook Publication Structure" "application/oebps-package+xml" '(opf) "Wikipedia: Open eBook") -(addMimeType "Open Financial Exchange" "application/vnd.intu.qbo" '(qbo) "IANA: Open Financial Exchange") -(addMimeType "Open Office Extension" "application/vnd.openofficeorg.extension" '(oxt) "IANA: Open Office Extension") -(addMimeType "Open Score Format" "application/vnd.yamaha.openscoreformat" '(osf) "IANA: Open Score Format") -(addMimeType "Open Web Media Project - Audio" "audio/webm" '(weba) "WebM Project") -(addMimeType "Open Web Media Project - Video" "video/webm" '(webm) "WebM Project") -(addMimeType "OpenDocument Chart" "application/vnd.oasis.opendocument.chart" '(odc) "IANA: OpenDocument Chart") -(addMimeType "OpenDocument Chart Template" "application/vnd.oasis.opendocument.chart-template" '(otc) "IANA: OpenDocument Chart Template") -(addMimeType "OpenDocument Database" "application/vnd.oasis.opendocument.database" '(odb) "IANA: OpenDocument Database") -(addMimeType "OpenDocument Formula" "application/vnd.oasis.opendocument.formula" '(odf) "IANA: OpenDocument Formula") -(addMimeType "OpenDocument Formula Template" "application/vnd.oasis.opendocument.formula-template" '(odft) "IANA: OpenDocument Formula Template") -(addMimeType "OpenDocument Graphics" "application/vnd.oasis.opendocument.graphics" '(odg) "IANA: OpenDocument Graphics") -(addMimeType "OpenDocument Graphics Template" "application/vnd.oasis.opendocument.graphics-template" '(otg) "IANA: OpenDocument Graphics Template") -(addMimeType "OpenDocument Image" "application/vnd.oasis.opendocument.image" '(odi) "IANA: OpenDocument Image") -(addMimeType "OpenDocument Image Template" "application/vnd.oasis.opendocument.image-template" '(oti) "IANA: OpenDocument Image Template") -(addMimeType "OpenDocument Presentation" "application/vnd.oasis.opendocument.presentation" '(odp) "IANA: OpenDocument Presentation") -(addMimeType "OpenDocument Presentation Template" "application/vnd.oasis.opendocument.presentation-template" '(otp) "IANA: OpenDocument Presentation Template") -(addMimeType "OpenDocument Spreadsheet" "application/vnd.oasis.opendocument.spreadsheet" '(ods) "IANA: OpenDocument Spreadsheet") -(addMimeType "OpenDocument Spreadsheet Template" "application/vnd.oasis.opendocument.spreadsheet-template" '(ots) "IANA: OpenDocument Spreadsheet Template") -(addMimeType "OpenDocument Text" "application/vnd.oasis.opendocument.text" '(odt) "IANA: OpenDocument Text") -(addMimeType "OpenDocument Text Master" "application/vnd.oasis.opendocument.text-master" '(odm) "IANA: OpenDocument Text Master") -(addMimeType "OpenDocument Text Template" "application/vnd.oasis.opendocument.text-template" '(ott) "IANA: OpenDocument Text Template") -(addMimeType "OpenGL Textures (KTX)" "image/ktx" '(ktx) "KTX File Format") -(addMimeType "OpenOffice - Calc (Spreadsheet)" "application/vnd.sun.xml.calc" '(sxc) "Wikipedia: OpenOffice") -(addMimeType "OpenOffice - Calc Template (Spreadsheet)" "application/vnd.sun.xml.calc.template" '(stc) "Wikipedia: OpenOffice") -(addMimeType "OpenOffice - Draw (Graphics)" "application/vnd.sun.xml.draw" '(sxd) "Wikipedia: OpenOffice") -(addMimeType "OpenOffice - Draw Template (Graphics)" "application/vnd.sun.xml.draw.template" '(std) "Wikipedia: OpenOffice") -(addMimeType "OpenOffice - Impress (Presentation)" "application/vnd.sun.xml.impress" '(sxi) "Wikipedia: OpenOffice") -(addMimeType "OpenOffice - Impress Template (Presentation)" "application/vnd.sun.xml.impress.template" '(sti) "Wikipedia: OpenOffice") -(addMimeType "OpenOffice - Math (Formula)" "application/vnd.sun.xml.math" '(sxm) "Wikipedia: OpenOffice") -(addMimeType "OpenOffice - Writer (Text - HTML)" "application/vnd.sun.xml.writer" '(sxw) "Wikipedia: OpenOffice") -(addMimeType "OpenOffice - Writer (Text - HTML)" "application/vnd.sun.xml.writer.global" '(sxg) "Wikipedia: OpenOffice") -(addMimeType "OpenOffice - Writer Template (Text - HTML)" "application/vnd.sun.xml.writer.template" '(stw) "Wikipedia: OpenOffice") -(addMimeType "OpenType Font File" "font/otf" '(otf) "IANA: OpenType") -(addMimeType "Opus Audio" "audio/opus" '(opus) "Wikipedia: Opus Audio") -(addMimeType "OSFPVG" "application/vnd.yamaha.openscoreformat.osfpvg+xml" '(osfpvg) "IANA: OSFPVG") -(addMimeType "OSGi Deployment Package" "application/vnd.osgi.dp" '(dp) "IANA: OSGi Deployment Package") -(addMimeType "PalmOS Data" "application/vnd.palm" '(pdb) "IANA: PalmOS Data") -(addMimeType "Pascal Source File" "text/x-pascal" '(p) "Wikipedia: Pascal") -(addMimeType "PawaaFILE" "application/vnd.pawaafile" '(paw) "IANA: PawaaFILE") -(addMimeType "PCL 6 Enhanced (Formely PCL XL)" "application/vnd.hp-pclxl" '(pclxl) "IANA: HP PCL XL") -(addMimeType "Pcsel eFIF File" "application/vnd.picsel" '(efif) "IANA: Picsel eFIF File") -(addMimeType "PCX Image" "image/x-pcx" '(pcx) "Wikipedia: PCX") -(addMimeType "Photoshop Document" "image/vnd.adobe.photoshop" '(psd) "Wikipedia: Photoshop Document") -(addMimeType "PICSRules" "application/pics-rules" '(prf) "W3C PICSRules") -(addMimeType "PICT Image" "image/x-pict" '(pic) "Wikipedia: PICT") -(addMimeType "pIRCh" "application/x-chat" '(chat) "Wikipedia: pIRCh") -(addMimeType "PKCS #10 - Certification Request Standard" "application/pkcs10" '(p10) "RFC 2986") -(addMimeType "PKCS #12 - Personal Information Exchange Syntax Standard" "application/x-pkcs12" '(p12) "RFC 2986") -(addMimeType "PKCS #7 - Cryptographic Message Syntax Standard" "application/pkcs7-mime" '(p7m) "RFC 2315") -(addMimeType "PKCS #7 - Cryptographic Message Syntax Standard" "application/pkcs7-signature" '(p7s) "RFC 2315") -(addMimeType "PKCS #7 - Cryptographic Message Syntax Standard (Certificate Request Response)" "application/x-pkcs7-certreqresp" '(p7r) "RFC 2986") -(addMimeType "PKCS #7 - Cryptographic Message Syntax Standard (Certificates)" "application/x-pkcs7-certificates" '(p7b) "RFC 2986") -(addMimeType "PKCS #8 - Private-Key Information Syntax Standard" "application/pkcs8" '(p8) "RFC 5208") -(addMimeType "PocketLearn Viewers" "application/vnd.pocketlearn" '(plf) "IANA: PocketLearn Viewers") -(addMimeType "Portable Anymap Image" "image/x-portable-anymap" '(pnm) "Wikipedia: Netpbm Format") -(addMimeType "Portable Bitmap Format" "image/x-portable-bitmap" '(pbm) "Wikipedia: Netpbm Format") -(addMimeType "Portable Compiled Format" "application/x-font-pcf" '(pcf) "Wikipedia: Portable Compiled Format") -(addMimeType "Portable Font Resource" "application/font-tdpfr" '(pfr) "RFC 3073") -(addMimeType "Portable Game Notation (Chess Games)" "application/x-chess-pgn" '(pgn) "Wikipedia: Portable Game Notationb") -(addMimeType "Portable Graymap Format" "image/x-portable-graymap" '(pgm) "Wikipedia: Netpbm Format") -(addMimeType "Portable Network Graphics (PNG)" "image/png" '(png) "RFC 2083") -(addMimeType "Portable Network Graphics (PNG) (Citrix client)" "image/x-citrix-png" '(png) "RFC 2083") -(addMimeType "Portable Network Graphics (PNG) (x-token)" "image/x-png" '(png) "RFC 2083") -(addMimeType "Portable Pixmap Format" "image/x-portable-pixmap" '(ppm) "Wikipedia: Netpbm Format") -(addMimeType "Portable Symmetric Key Container" "application/pskc+xml" '(pskcxml) "RFC 6030") -(addMimeType "PosML" "application/vnd.ctc-posml" '(pml) "IANA: PosML") -(addMimeType "PostScript" "application/postscript" '(ai) "Wikipedia: PostScript") -(addMimeType "PostScript Fonts" "application/x-font-type1" '(pfa) "Wikipedia: PostScript Fonts") -(addMimeType "PowerBuilder" "application/vnd.powerbuilder6" '(pbd) "IANA: PowerBuilder") -(addMimeType "Pretty Good Privacy" "application/pgp-encrypted" '(pgp) "RFC 2015") -(addMimeType "Pretty Good Privacy - Signature" "application/pgp-signature" '(pgp) "RFC 2015") -(addMimeType "Preview Systems ZipLock/VBox" "application/vnd.previewsystems.box" '(box) "IANA: Preview Systems ZipLock/Vbox") -(addMimeType "Princeton Video Image" "application/vnd.pvi.ptid1" '(ptid) "IANA: Princeton Video Image") -(addMimeType "Pronunciation Lexicon Specification" "application/pls+xml" '(pls) "RFC 4267") -(addMimeType "Proprietary P&G Standard Reporting System" "application/vnd.pg.format" '(str) "IANA: Proprietary P&G Standard Reporting System") -(addMimeType "Proprietary P&G Standard Reporting System" "application/vnd.pg.osasli" '(ei6) "IANA: Proprietary P&G Standard Reporting System") -(addMimeType "PRS Lines Tag" "text/prs.lines.tag" '(dsc) "IANA: PRS Lines Tag") -(addMimeType "PSF Fonts" "application/x-font-linux-psf" '(psf) "PSF Fonts") -(addMimeType "PubliShare Objects" "application/vnd.publishare-delta-tree" '(qps) "IANA: PubliShare Objects") -(addMimeType "Qualcomm's Plaza Mobile Internet" "application/vnd.pmi.widget" '(wg) "IANA: Qualcomm's Plaza Mobile Internet") -(addMimeType "QuarkXpress" "application/vnd.quark.quarkxpress" '(qxd) "IANA: QuarkXPress") -(addMimeType "QUASS Stream Player" "application/vnd.epson.esf" '(esf) "IANA: QUASS Stream Player") -(addMimeType "QUASS Stream Player" "application/vnd.epson.msf" '(msf) "IANA: QUASS Stream Player") -(addMimeType "QUASS Stream Player" "application/vnd.epson.ssf" '(ssf) "IANA: QUASS Stream Player") -(addMimeType "QuickAnime Player" "application/vnd.epson.quickanime" '(qam) "IANA: QuickAnime Player") -(addMimeType "Quicken" "application/vnd.intu.qfx" '(qfx) "IANA: Quicken") -(addMimeType "Quicktime Video" "video/quicktime" '(qt mov) "IANA: QuickTime") -(addMimeType "RAR Archive" "application/vnd.rar" '(rar) "IANA: RAR") -(addMimeType "Real Audio Sound" "audio/x-pn-realaudio" '(ram) "Wikipedia: RealPlayer") -(addMimeType "Real Audio Sound" "audio/x-pn-realaudio-plugin" '(rmp) "Wikipedia: RealPlayer") -(addMimeType "Really Simple Discovery" "application/rsd+xml" '(rsd) "Wikipedia: Really Simple Discovery") -(addMimeType "RealMedia" "application/vnd.rn-realmedia" '(rm) "") -(addMimeType "RealVNC" "application/vnd.realvnc.bed" '(bed) "IANA: RealVNC") -(addMimeType "Recordare Applications" "application/vnd.recordare.musicxml" '(mxl) "IANA: Recordare Apps") -(addMimeType "Recordare Applications" "application/vnd.recordare.musicxml+xml" '(musicxml) "IANA: Recordare Apps") -(addMimeType "Relax NG Compact Syntax" "application/relax-ng-compact-syntax" '(rnc) "Relax NG") -(addMimeType "RemoteDocs R-Viewer" "application/vnd.data-vision.rdz" '(rdz) "IANA: Data-Vision") -(addMimeType "Resource Description Framework" "application/rdf+xml" '(rdf) "RFC 3870") -(addMimeType "RetroPlatform Player" "application/vnd.cloanto.rp9" '(rp9) "IANA: RetroPlatform Player") -(addMimeType "RhymBox" "application/vnd.jisp" '(jisp) "IANA: RhymBox") -(addMimeType "Rich Text Format" "application/rtf" '(rtf) "Wikipedia: Rich Text Format") -(addMimeType "Rich Text Format (RTF)" "text/richtext" '(rtx) "Wikipedia: Rich Text Format") -(addMimeType "ROUTE 66 Location Based Services" "application/vnd.route66.link66+xml" '(link66) "IANA: ROUTE 66") -(addMimeType "RSS - Really Simple Syndication" "application/rss+xml" '(rss) "Wikipedia: RSS") -(addMimeType "S Hexdump Format" "application/shf+xml" '(shf) "RFC 4194") -(addMimeType "SailingTracker" "application/vnd.sailingtracker.track" '(st) "IANA: SailingTracker") -(addMimeType "Scalable Vector Graphics (SVG)" "image/svg+xml" '(svg svgz) "IANA: SVG") -(addMimeType "ScheduleUs" "application/vnd.sus-calendar" '(sus) "IANA: ScheduleUs") -(addMimeType "Search/Retrieve via URL Response Format" "application/sru+xml" '(sru) "RFC 6207") -(addMimeType "Secure Electronic Transaction - Payment" "application/set-payment-initiation" '(setpay) "IANA: SET Payment") -(addMimeType "Secure Electronic Transaction - Registration" "application/set-registration-initiation" '(setreg) "IANA: SET Registration") -(addMimeType "Secured eMail" "application/vnd.sema" '(sema) "IANA: Secured eMail") -(addMimeType "Secured eMail" "application/vnd.semd" '(semd) "IANA: Secured eMail") -(addMimeType "Secured eMail" "application/vnd.semf" '(semf) "IANA: Secured eMail") -(addMimeType "SeeMail" "application/vnd.seemail" '(see) "IANA: SeeMail") -(addMimeType "Server Normal Format" "application/x-font-snf" '(snf) "Wikipedia: Server Normal Format") -(addMimeType "Server-Based Certificate Validation Protocol - Validation Policies - Request" "application/scvp-vp-request" '(spq) "RFC 5055") -(addMimeType "Server-Based Certificate Validation Protocol - Validation Policies - Response" "application/scvp-vp-response" '(spp) "RFC 5055") -(addMimeType "Server-Based Certificate Validation Protocol - Validation Request" "application/scvp-cv-request" '(scq) "RFC 5055") -(addMimeType "Server-Based Certificate Validation Protocol - Validation Response" "application/scvp-cv-response" '(scs) "RFC 5055") -(addMimeType "Session Description Protocol" "application/sdp" '(sdp) "RFC 2327") -(addMimeType "Setext" "text/x-setext" '(etx) "Wikipedia: Setext") -(addMimeType "SGI Movie" "video/x-sgi-movie" '(movie) "SGI Facts") -(addMimeType "Shana Informed Filler" "application/vnd.shana.informed.formdata" '(ifm) "IANA: Shana Informed Filler") -(addMimeType "Shana Informed Filler" "application/vnd.shana.informed.formtemplate" '(itp) "IANA: Shana Informed Filler") -(addMimeType "Shana Informed Filler" "application/vnd.shana.informed.interchange" '(iif) "IANA: Shana Informed Filler") -(addMimeType "Shana Informed Filler" "application/vnd.shana.informed.package" '(ipk) "IANA: Shana Informed Filler") -(addMimeType "Sharing Transaction Fraud Data" "application/thraud+xml" '(tfi) "RFC 5941") -(addMimeType "Shell Archive" "application/x-shar" '(shar) "Wikipedia: Shell Archie") -(addMimeType "Silicon Graphics RGB Bitmap" "image/x-rgb" '(rgb) "RGB Image Format") -(addMimeType "SimpleAnimeLite Player" "application/vnd.epson.salt" '(slt) "IANA: SimpleAnimeLite Player") -(addMimeType "Simply Accounting" "application/vnd.accpac.simply.aso" '(aso) "IANA: Simply Accounting") -(addMimeType "Simply Accounting - Data Import" "application/vnd.accpac.simply.imp" '(imp) "IANA: Simply Accounting") -(addMimeType "SimTech MindMapper" "application/vnd.simtech-mindmapper" '(twd) "IANA: SimTech MindMapper") -(addMimeType "Sixth Floor Media - CommonSpace" "application/vnd.commonspace" '(csp) "IANA: CommonSpace") -(addMimeType "SMAF Audio" "application/vnd.yamaha.smaf-audio" '(saf) "IANA: SMAF Audio") -(addMimeType "SMAF File" "application/vnd.smaf" '(mmf) "IANA: SMAF File") -(addMimeType "SMAF Phrase" "application/vnd.yamaha.smaf-phrase" '(spf) "IANA: SMAF Phrase") -(addMimeType "SMART Technologies Apps" "application/vnd.smart.teacher" '(teacher) "IANA: SMART Technologies Apps") -(addMimeType "SourceView Document" "application/vnd.svd" '(svd) "IANA: SourceView Document") -(addMimeType "SPARQL - Query" "application/sparql-query" '(rq) "W3C SPARQL") -(addMimeType "SPARQL - Results" "application/sparql-results+xml" '(srx) "W3C SPARQL") -(addMimeType "Speech Recognition Grammar Specification" "application/srgs" '(gram) "W3C Speech Grammar") -(addMimeType "Speech Recognition Grammar Specification - XML" "application/srgs+xml" '(grxml) "W3C Speech Grammar") -(addMimeType "Speech Synthesis Markup Language" "application/ssml+xml" '(ssml) "W3C Speech Synthesis") -(addMimeType "SSEYO Koan Play File" "application/vnd.koan" '(skp) "IANA: SSEYO Koan Play File") -(addMimeType "Standard Generalized Markup Language (SGML)" "text/sgml" '(sgml) "Wikipedia: SGML") -(addMimeType "StarOffice - Calc" "application/vnd.stardivision.calc" '(sdc) "") -(addMimeType "StarOffice - Draw" "application/vnd.stardivision.draw" '(sda) "") -(addMimeType "StarOffice - Impress" "application/vnd.stardivision.impress" '(sdd) "") -(addMimeType "StarOffice - Math" "application/vnd.stardivision.math" '(smf) "") -(addMimeType "StarOffice - Writer" "application/vnd.stardivision.writer" '(sdw) "") -(addMimeType "StarOffice - Writer (Global)" "application/vnd.stardivision.writer-global" '(sgl) "") -(addMimeType "StepMania" "application/vnd.stepmania.stepchart" '(sm) "IANA: StepMania") -(addMimeType "Stuffit Archive" "application/x-stuffit" '(sit) "Wikipedia: Stuffit") -(addMimeType "Stuffit Archive" "application/x-stuffitx" '(sitx) "Wikipedia: Stuffit") -(addMimeType "SudokuMagic" "application/vnd.solent.sdkm+xml" '(sdkm) "IANA: SudokuMagic") -(addMimeType "Sugar Linux Application Bundle" "application/vnd.olpc-sugar" '(xo) "IANA: Sugar Linux App Bundle") -(addMimeType "Sun Audio - Au file format" "audio/basic" '(au) "Wikipedia: Sun audio") -(addMimeType "SundaHus WQ" "application/vnd.wqd" '(wqd) "IANA: SundaHus WQ") -(addMimeType "Symbian Install Package" "application/vnd.symbian.install" '(sis) "IANA: Symbian Install") -(addMimeType "Synchronized Multimedia Integration Language" "application/smil+xml" '(smi) "RFC 4536") -(addMimeType "SyncML" "application/vnd.syncml+xml" '(xsm) "IANA: SyncML") -(addMimeType "SyncML - Device Management" "application/vnd.syncml.dm+wbxml" '(bdm) "IANA: SyncML") -(addMimeType "SyncML - Device Management" "application/vnd.syncml.dm+xml" '(xdm) "IANA: SyncML") -(addMimeType "System V Release 4 CPIO Archive" "application/x-sv4cpio" '(sv4cpio) "Wikipedia: pax") -(addMimeType "System V Release 4 CPIO Checksum Data" "application/x-sv4crc" '(sv4crc) "Wikipedia: pax") -(addMimeType "Systems Biology Markup Language" "application/sbml+xml" '(sbml) "RFC 3823") -(addMimeType "Tab Seperated Values" "text/tab-separated-values" '(tsv) "Wikipedia: TSV") -(addMimeType "Tagged Image File Format" "image/tiff" '(tiff tif) "IANA: TIFF") -(addMimeType "Tao Intent" "application/vnd.tao.intent-module-archive" '(tao) "IANA: Tao Intent") -(addMimeType "Tar File (Tape Archive)" "application/x-tar" '(tar) "Wikipedia: Tar") -(addMimeType "Tcl Script" "application/x-tcl" '(tcl) "Wikipedia: Tcl") -(addMimeType "TeX" "application/x-tex" '(tex) "Wikipedia: TeX") -(addMimeType "TeX Font Metric" "application/x-tex-tfm" '(tfm) "Wikipedia: TeX Font Metric") -(addMimeType "Text Encoding and Interchange" "application/tei+xml" '(tei) "RFC 6129") -(addMimeType "Text File" "text/plain" '(txt text conf log) "IANA: Plain Text") -(addMimeType "TIBCO Spotfire" "application/vnd.spotfire.dxp" '(dxp) "IANA: TIBCO Spotfire") -(addMimeType "TIBCO Spotfire" "application/vnd.spotfire.sfs" '(sfs) "IANA: TIBCO Spotfire") -(addMimeType "Time Stamped Data Envelope" "application/timestamped-data" '(tsd) "RFC 5955") -(addMimeType "TRI Systems Config" "application/vnd.trid.tpt" '(tpt) "IANA: TRI Systems") -(addMimeType "Triscape Map Explorer" "application/vnd.triscape.mxs" '(mxs) "IANA: Triscape Map Explorer") -(addMimeType "troff" "text/troff" '(t) "Wikipedia: troff") -(addMimeType "True BASIC" "application/vnd.trueapp" '(tra) "IANA: True BASIC") -(addMimeType "TrueType Font" "font/ttf" '(ttf) "IANA: TrueType") -(addMimeType "TrueType Font Collection" "font/collection" '(ttc) "IANA: Font Collection") -(addMimeType "Turtle (Terse RDF Triple Language)" "text/turtle" '(ttl) "Wikipedia: Turtle") -(addMimeType "UMAJIN" "application/vnd.umajin" '(umj) "IANA: UMAJIN") -(addMimeType "Unique Object Markup Language" "application/vnd.uoml+xml" '(uoml) "IANA: UOML") -(addMimeType "Unity 3d" "application/vnd.unity" '(unityweb) "IANA: Unity 3d") -(addMimeType "Universal Forms Description Language" "application/vnd.ufdl" '(ufd) "IANA: Universal Forms Description Language") -(addMimeType "URI Resolution Services" "text/uri-list" '(uri) "RFC 2483") -(addMimeType "User Interface Quartz - Theme (Symbian)" "application/vnd.uiq.theme" '(utz) "IANA: User Interface Quartz") -(addMimeType "Ustar (Uniform Standard Tape Archive)" "application/x-ustar" '(ustar) "Wikipedia: Ustar") -(addMimeType "UUEncode" "text/x-uuencode" '(uu) "Wikipedia: UUEncode") -(addMimeType "vCalendar" "text/x-vcalendar" '(vcs) "Wikipedia: vCalendar") -(addMimeType "vCard" "text/x-vcard" '(vcf) "Wikipedia: vCard") -(addMimeType "Video CD" "application/x-cdlink" '(vcd) "Wikipedia: Video CD") -(addMimeType "Viewport+" "application/vnd.vsf" '(vsf) "IANA: Viewport+") -(addMimeType "Virtual Reality Modeling Language" "model/vrml" '(wrl) "Wikipedia: VRML") -(addMimeType "VirtualCatalog" "application/vnd.vcx" '(vcx) "IANA: VirtualCatalog") -(addMimeType "Virtue MTS" "model/vnd.mts" '(mts) "IANA: MTS") -(addMimeType "Virtue VTU" "model/vnd.vtu" '(vtu) "IANA: VTU") -(addMimeType "Visionary" "application/vnd.visionary" '(vis) "IANA: Visionary") -(addMimeType "Vivo" "video/vnd.vivo" '(viv) "IANA: Vivo") -(addMimeType "Voice Browser Call Control" "application/ccxml+xml" '(ccxml) "Voice Browser Call Control: CCXML Version 1.0") -(addMimeType "VoiceXML" "application/voicexml+xml" '(vxml) "RFC 4267") -(addMimeType "WAIS Source" "application/x-wais-source" '(src) "YoLinux") -(addMimeType "WAP Binary XML (WBXML)" "application/vnd.wap.wbxml" '(wbxml) "IANA: WBXML") -(addMimeType "WAP Bitamp (WBMP)" "image/vnd.wap.wbmp" '(wbmp) "IANA: WBMP") -(addMimeType "Waveform Audio File Format (WAV)" "audio/x-wav" '(wav) "Wikipedia: WAV") -(addMimeType "Web Distributed Authoring and Versioning" "application/davmount+xml" '(davmount) "RFC 4918") -(addMimeType "Web Open Font Format" "font/woff" '(woff) "IANA: WOFF") -(addMimeType "Web Open Font Format 2" "font/woff2" '(woff2) "IANA: WOFF2") -(addMimeType "Web Services Policy" "application/wspolicy+xml" '(wspolicy) "W3C Web Services Policy") -(addMimeType "WebP Image" "image/webp" '(webp) "Wikipedia: WebP") -(addMimeType "WebTurbo" "application/vnd.webturbo" '(wtb) "IANA: WebTurbo") -(addMimeType "Widget Packaging and XML Configuration" "application/widget" '(wgt) "W3C Widget Packaging and XML Configuration") -(addMimeType "WinHelp" "application/winhlp" '(hlp) "Wikipedia: WinHelp") -(addMimeType "Wireless Markup Language (WML)" "text/vnd.wap.wml" '(wml) "Wikipedia: WML") -(addMimeType "Wireless Markup Language Script (WMLScript)" "text/vnd.wap.wmlscript" '(wmls) "Wikipedia: WMLScript") -(addMimeType "WMLScript" "application/vnd.wap.wmlscriptc" '(wmlsc) "IANA: WMLScript") -(addMimeType "Wordperfect" "application/vnd.wordperfect" '(wpd) "IANA: Wordperfect") -(addMimeType "Worldtalk" "application/vnd.wt.stf" '(stf) "IANA: Worldtalk") -(addMimeType "WSDL - Web Services Description Language" "application/wsdl+xml" '(wsdl) "W3C Web Service Description Language") -(addMimeType "X BitMap" "image/x-xbitmap" '(xbm) "Wikipedia: X BitMap") -(addMimeType "X PixMap" "image/x-xpixmap" '(xpm) "Wikipedia: X PixMap") -(addMimeType "X Window Dump" "image/x-xwindowdump" '(xwd) "Wikipedia: X Window Dump") -(addMimeType "X.509 Certificate" "application/x-x509-ca-cert" '(der) "Wikipedia: X.509") -(addMimeType "Xfig" "application/x-xfig" '(fig) "Wikipedia: Xfig") -(addMimeType "XHTML - The Extensible HyperText Markup Language" "application/xhtml+xml" '(xhtml) "W3C XHTML") -(addMimeType "WebAssembly" "application/wasm" '(wasm) "IANA: WebAssembly") -(addMimeType "XML - Extensible Markup Language" "application/xml" '(xml xsl) "IANA: XML") -(addMimeType "XML Configuration Access Protocol - XCAP Diff" "application/xcap-diff+xml" '(xdf) "Wikipedia: XCAP") -(addMimeType "XML Encryption Syntax and Processing" "application/xenc+xml" '(xenc) "W3C XML Encryption Syntax and Processing") -(addMimeType "XML Patch Framework" "application/patch-ops-error+xml" '(xer) "RFC 5261") -(addMimeType "XML Resource Lists" "application/resource-lists+xml" '(rl) "RFC 4826") -(addMimeType "XML Resource Lists" "application/rls-services+xml" '(rs) "RFC 4826") -(addMimeType "XML Resource Lists Diff" "application/resource-lists-diff+xml" '(rld) "RFC 4826") -(addMimeType "XML Transformations" "application/xslt+xml" '(xslt) "W3C XSLT") -(addMimeType "XML-Binary Optimized Packaging" "application/xop+xml" '(xop) "W3C XOP") -(addMimeType "XZ Archive" "application/x-xz" '(xz) "Apache: XZ") -(addMimeType "XPInstall - Mozilla" "application/x-xpinstall" '(xpi) "Wikipedia: XPI") -(addMimeType "XSPF - XML Shareable Playlist Format" "application/xspf+xml" '(xspf) "XML Shareable Playlist Format") -(addMimeType "XUL - XML User Interface Language" "application/vnd.mozilla.xul+xml" '(xul) "IANA: XUL") -(addMimeType "XYZ File Format" "chemical/x-xyz" '(xyz) "Wikipedia: XYZ File Format") -(addMimeType "YAML Ain't Markup Language / Yet Another Markup Language" "text/yaml" '(yaml yml) "IANA: YAML") -(addMimeType "YANG Data Modeling Language" "application/yang" '(yang) "Wikipedia: YANG") -(addMimeType "YIN (YANG - XML)" "application/yin+xml" '(yin) "Wikipedia: YANG") -(addMimeType "Z.U.L. Geometry" "application/vnd.zul" '(zir) "IANA: Z.U.L.") -(addMimeType "Zip Archive" "application/zip" '(zip) "Wikipedia: Zip") -(addMimeType "Zstandard Archive" "application/zstd" '(zst) "IANA: Zstandard") -(addMimeType "ZVUE Media Manager" "application/vnd.handheld-entertainment+xml" '(zmm) "IANA: ZVUE Media Manager") -(addMimeType "Zzazz Deck" "application/vnd.zzazz.deck+xml" '(zaz) "IANA: Zzazz") +(define update-running? #f) +(define update-guard (make-semaphore 1)) + +(define (read-cache) + (with-handlers ([exn:fail? + (λ (exn) + (dbg-racket-mimetypes + "Could not read cached mime.types: ~a" + (exn-message exn)) + (values fallback-mimetypes #f))]) + (if (file-exists? cache-file) + (let ([types (call-with-input-file cache-file parse-mime-types)]) + (if (valid-apache-types? types) + (values types #t) + (begin + (dbg-racket-mimetypes + "Cached mime.types did not pass validation") + (values fallback-mimetypes #f)))) + (values fallback-mimetypes #f)))) + +(define-values (mimetypes cache-valid?) (read-cache)) + +(define (file-time path) + (and (file-exists? path) + (file-or-directory-modify-seconds path))) + +(define (update-due?) + (update-due?/times (current-seconds) + (and cache-valid? (file-time cache-file)) + (file-time failure-file))) + +(define (mark-update-failure!) + (make-directory* cache-directory) + (call-with-output-file failure-file + (λ (out) + (displayln (current-seconds) out)) + #:exists 'truncate/replace)) + +(define (download-apache-types) + (parameterize ([current-https-protocol 'secure]) + (let-values ([(in headers) + (get-pure-port/headers + (string->url apache-mime-types-url) + null + #:redirections 5 + #:status? #t)]) + (dynamic-wind + void + (λ () + (unless (regexp-match? #rx"^HTTP/[^ ]+ 200" headers) + (error 'download-apache-types + "HTTP request failed: ~a" + (car (string-split headers "\n")))) + (let* ([contents (port->bytes in)] + [types + (call-with-input-bytes contents parse-mime-types)]) + (unless (valid-apache-types? types) + (error 'download-apache-types + "downloaded mime.types did not pass validation")) + (values contents types))) + (λ () + (close-input-port in)))))) + +(define (save-cache! contents) + (make-directory* cache-directory) + (call-with-atomic-output-file cache-file + (λ (out temporary-file) + (write-bytes contents out) + (void)))) + +(define (update-mimetypes!) + (with-handlers ([exn:fail? + (λ (exn) + (dbg-racket-mimetypes + "Could not update Apache mime.types: ~a" + (exn-message exn)) + (with-handlers + ([exn:fail? + (λ (mark-exn) + (dbg-racket-mimetypes + "Could not record mime.types update failure: ~a" + (exn-message mark-exn)))]) + (mark-update-failure!)))]) + (let-values ([(contents types) (download-apache-types)]) + (save-cache! contents) + (set! mimetypes types) + (set! cache-valid? #t) + (dbg-racket-mimetypes + "Apache mime.types updated: ~a extensions" + (hash-count types))))) + +(define (run-update!) + (dynamic-wind + void + update-mimetypes! + (λ () + (call-with-semaphore update-guard + (λ () + (set! update-running? #f)))))) + +(define (maybe-start-update!) + (when (updates-enabled?) + (with-handlers ([exn:fail? + (λ (exn) + (dbg-racket-mimetypes + "Could not check Apache mime.types cache: ~a" + (exn-message exn)))]) + (call-with-semaphore update-guard + (λ () + (when (and (not update-running?) + (update-due?)) + (set! update-running? #t) + (thread run-update!))))))) + +(define (mimetype-for-ext ext + #:default [default "application/octet-stream"]) + (maybe-start-update!) + (hash-ref mimetypes (extension-symbol ext) default)) diff --git a/private/fallback.rkt b/private/fallback.rkt new file mode 100644 index 0000000..354bc19 --- /dev/null +++ b/private/fallback.rkt @@ -0,0 +1,733 @@ +#lang racket/base + +(provide mimetypes) + +(define mimetypes (make-hash)) + +(define-syntax addMimeType + (syntax-rules () + ((_ description http-mimetype extensions description2) + (for-each (λ (mimetype) + (unless (hash-has-key? mimetypes mimetype) + (hash-set! mimetypes mimetype http-mimetype))) + extensions)))) + +(addMimeType "3D Crossword Plugin" "application/vnd.hzn-3d-crossword" '(x3d) "IANA: 3D Crossword Plugin") +(addMimeType "3GP" "video/3gpp" '(3gp) "Wikipedia: 3GP") +(addMimeType "3GP2" "video/3gpp2" '(3g2) "Wikipedia: 3G2") +(addMimeType "3GPP MSEQ File" "application/vnd.mseq" '(mseq) "IANA: 3GPP MSEQ File") +(addMimeType "3M Post It Notes" "application/vnd.3m.post-it-notes" '(pwn) "IANA: 3M Post It Notes") +(addMimeType "3rd Generation Partnership Project - Pic Large" "application/vnd.3gpp.pic-bw-large" '(plb) "3GPP") +(addMimeType "3rd Generation Partnership Project - Pic Small" "application/vnd.3gpp.pic-bw-small" '(psb) "3GPP") +(addMimeType "3rd Generation Partnership Project - Pic Var" "application/vnd.3gpp.pic-bw-var" '(pvb) "3GPP") +(addMimeType "3rd Generation Partnership Project - Transaction Capabilities Application Part" "application/vnd.3gpp2.tcap" '(tcap) "3GPP") +(addMimeType "7-Zip" "application/x-7z-compressed" '(7z) "Wikipedia: 7-Zip") +(addMimeType "AbiWord" "application/x-abiword" '(abw) "Wikipedia: AbiWord") +(addMimeType "Ace Archive" "application/x-ace-compressed" '(ace) "Wikipedia: ACE") +(addMimeType "Active Content Compression" "application/vnd.americandynamics.acc" '(acc) "IANA: Active Content Compression") +(addMimeType "ACU Cobol" "application/vnd.acucobol" '(acu) "IANA: ACU Cobol") +(addMimeType "ACU Cobol" "application/vnd.acucorp" '(atc) "IANA: ACU Cobol") +(addMimeType "Adaptive differential pulse-code modulation" "audio/adpcm" '(adp) "Wikipedia: ADPCM") +(addMimeType "Adobe (Macropedia) Authorware - Binary File" "application/x-authorware-bin" '(aab) "Wikipedia: Authorware") +(addMimeType "Adobe (Macropedia) Authorware - Map" "application/x-authorware-map" '(aam) "Wikipedia: Authorware") +(addMimeType "Adobe (Macropedia) Authorware - Segment File" "application/x-authorware-seg" '(aas) "Wikipedia: Authorware") +(addMimeType "Adobe AIR Application" "application/vnd.adobe.air-application-installer-package+zip" '(air) "Building AIR Applications") +(addMimeType "Adobe Flash" "application/x-shockwave-flash" '(swf) "Wikipedia: Adobe Flash") +(addMimeType "Adobe Flex Project" "application/vnd.adobe.fxp" '(fxp) "IANA: Adobe Flex Project") +(addMimeType "Adobe Portable Document Format" "application/pdf" '(pdf) "Adobe PDF") +(addMimeType "Adobe PostScript Printer Description File Format" "application/vnd.cups-ppd" '(ppd) "IANA: Cups") +(addMimeType "Adobe Shockwave Player" "application/x-director" '(dir) "Wikipedia: Adobe Shockwave Player") +(addMimeType "Adobe XML Data Package" "application/vnd.adobe.xdp+xml" '(xdp) "Wikipedia: XML Data Package") +(addMimeType "Adobe XML Forms Data Format" "application/vnd.adobe.xfdf" '(xfdf) "Wikipedia: XML Portable Document Format") +(addMimeType "Advanced Audio Coding (AAC)" "audio/x-aac" '(aac) "Wikipedia: AAC") +(addMimeType "Ahead AIR Application" "application/vnd.ahead.space" '(ahead) "IANA: Ahead AIR Application") +(addMimeType "AirZip FileSECURE" "application/vnd.airzip.filesecure.azf" '(azf) "IANA: AirZip") +(addMimeType "AirZip FileSECURE" "application/vnd.airzip.filesecure.azs" '(azs) "IANA: AirZip") +(addMimeType "Amazon Kindle eBook format" "application/vnd.amazon.ebook" '(azw) "Kindle Direct Publishing") +(addMimeType "AmigaDE" "application/vnd.amiga.ami" '(ami) "IANA: Amiga") +(addMimeType "Andrew Toolkit" "application/andrew-inset" '(N/A) "IANA - Andrew Inset") +(addMimeType "Android Package Archive" "application/vnd.android.package-archive" '(apk) "Wikipedia: APK File Format") +(addMimeType "ANSER-WEB Terminal Client - Certificate Issue" "application/vnd.anser-web-certificate-issue-initiation" '(cii) "IANA: ANSWER-WEB") +(addMimeType "ANSER-WEB Terminal Client - Web Funds Transfer" "application/vnd.anser-web-funds-transfer-initiation" '(fti) "IANA: ANSWER-WEB") +(addMimeType "Antix Game Player" "application/vnd.antix.game-component" '(atx) "IANA: Antix Game Component") +(addMimeType "Apple Disk Image" "application/x-apple-diskimage" '(dmg) "Apple Disk Image") +(addMimeType "Apple Installer Package" "application/vnd.apple.installer+xml" '(mpkg) "IANA: Apple Installer") +(addMimeType "Applixware" "application/applixware" '(aw) "Vistasource") +(addMimeType "Archipelago Lesson Player" "application/vnd.hhe.lesson-player" '(les) "IANA: Archipelago Lesson Player") +(addMimeType "Archive document - Multiple Fils Embedded" "application/x-freearc" '(arc) "FreeArc") +(addMimeType "Arista Networks Software Image" "application/vnd.aristanetworks.swi" '(swi) "IANA: Arista Networks Software Image") +(addMimeType "Assembler Source File" "text/x-asm" '(s) "Wikipedia: Assembly") +(addMimeType "Atom Publishing Protocol" "application/atomcat+xml" '(atomcat) "RFC 5023") +(addMimeType "Atom Publishing Protocol Service Document" "application/atomsvc+xml" '(atomsvc) "RFC 5023") +(addMimeType "Atom Syndication Format" "application/atom+xml" '(atom xml) "RFC 4287") +(addMimeType "Attribute Certificate" "application/pkix-attr-cert" '(ac) "RFC 5877") +(addMimeType "Audio Interchange File Format" "audio/x-aiff" '(aif) "Wikipedia: Audio Interchange File Format") +(addMimeType "Audio Video Interleave (AVI)" "video/x-msvideo" '(avi) "Wikipedia: AVI") +(addMimeType "Audiograph" "application/vnd.audiograph" '(aep) "IANA: Audiograph") +(addMimeType "AutoCAD DXF" "image/vnd.dxf" '(dxf) "Wikipedia: AutoCAD DXF") +(addMimeType "Autodesk Design Web Format (DWF)" "model/vnd.dwf" '(dwf) "Wikipedia: Design Web Format") +(addMimeType "AV1 Image File" "image/avif" '(avif) "AV1 Image File Format") +(addMimeType "BAS Partitur Format" "text/plain-bas" '(par) "Phonetik BAS") +(addMimeType "Binary CPIO Archive" "application/x-bcpio" '(bcpio) "Wikipedia: cpio") +(addMimeType "Binary Data" "application/octet-stream" '(bin) "") +(addMimeType "Bitmap Image File" "image/bmp" '(bmp) "Wikipedia: BMP File Format") +(addMimeType "BitTorrent" "application/x-bittorrent" '(torrent) "Wikipedia: BitTorrent") +(addMimeType "Blackberry COD File" "application/vnd.rim.cod" '(cod) "") +(addMimeType "Blueice Research Multipass" "application/vnd.blueice.multipass" '(mpm) "IANA: Multipass") +(addMimeType "BMI Drawing Data Interchange" "application/vnd.bmi" '(bmi) "IANA: BMI") +(addMimeType "Bourne Shell Script" "application/x-sh" '(sh) "Wikipedia: Bourne Shell") +(addMimeType "BTIF" "image/prs.btif" '(btif) "IANA: BTIF") +(addMimeType "BusinessObjects" "application/vnd.businessobjects" '(rep) "IANA: BusinessObjects") +(addMimeType "Bzip Archive" "application/x-bzip" '(bz) "Wikipedia: Bzip") +(addMimeType "Bzip2 Archive" "application/x-bzip2" '(bz2) "Wikipedia: Bzip") +(addMimeType "C Shell Script" "application/x-csh" '(csh) "Wikipedia: C Shell") +(addMimeType "C Source File" "text/x-c" '(c) "Wikipedia: C Programming Language") +(addMimeType "CambridgeSoft Chem Draw" "application/vnd.chemdraw+xml" '(cdxml) "IANA: Chem Draw") +(addMimeType "Cascading Style Sheets (CSS)" "text/css" '(css) "Wikipedia: CSS") +(addMimeType "CD Audio" "application/x-cdf" '(cda) "Wikipedia: CDA File") +(addMimeType "ChemDraw eXchange file" "chemical/x-cdx" '(cdx) "ChemDraw eXchange file") +(addMimeType "Chemical Markup Language" "chemical/x-cml" '(cml) "Wikipedia: Chemical Markup Language") +(addMimeType "Chemical Style Markup Language" "chemical/x-csml" '(csml) "Wikipedia: Chemical Style Markup Language") +(addMimeType "CIM Database" "application/vnd.contact.cmsg" '(cdbcmsg) "IANA: CIM Database") +(addMimeType "Claymore Data Files" "application/vnd.claymore" '(cla) "IANA: Claymore") +(addMimeType "Clonk Game" "application/vnd.clonk.c4group" '(c4g) "IANA: Clonk") +(addMimeType "Close Captioning - Subtitle" "image/vnd.dvb.subtitle" '(sub) "Wikipedia: Closed Captioning") +(addMimeType "Cloud Data Management Interface (CDMI) - Capability" "application/cdmi-capability" '(cdmia) "RFC 6208") +(addMimeType "Cloud Data Management Interface (CDMI) - Contaimer" "application/cdmi-container" '(cdmic) "RFC 6209") +(addMimeType "Cloud Data Management Interface (CDMI) - Domain" "application/cdmi-domain" '(cdmid) "RFC 6210") +(addMimeType "Cloud Data Management Interface (CDMI) - Object" "application/cdmi-object" '(cdmio) "RFC 6211") +(addMimeType "Cloud Data Management Interface (CDMI) - Queue" "application/cdmi-queue" '(cdmiq) "RFC 6212") +(addMimeType "ClueTrust CartoMobile - Config" "application/vnd.cluetrust.cartomobile-config" '(c11amc) "IANA: CartoMobile") +(addMimeType "ClueTrust CartoMobile - Config Package" "application/vnd.cluetrust.cartomobile-config-pkg" '(c11amz) "IANA: CartoMobile") +(addMimeType "CMU Image" "image/x-cmu-raster" '(ras) "") +(addMimeType "COLLADA" "model/vnd.collada+xml" '(dae) "IANA: COLLADA") +(addMimeType "Comma-Seperated Values" "text/csv" '(csv) "Wikipedia: CSV") +(addMimeType "Compact Pro" "application/mac-compactpro" '(cpt) "Compact Pro") +(addMimeType "Compiled Wireless Markup Language (WMLC)" "application/vnd.wap.wmlc" '(wmlc) "IANA: WMLC") +(addMimeType "Computer Graphics Metafile" "image/cgm" '(cgm) "Wikipedia: Computer Graphics Metafile") +(addMimeType "CoolTalk" "x-conference/x-cooltalk" '(ice) "Wikipedia: CoolTalk") +(addMimeType "Corel Metafile Exchange (CMX)" "image/x-cmx" '(cmx) "Wikipedia: CorelDRAW") +(addMimeType "CorelXARA" "application/vnd.xara" '(xar) "IANA: CorelXARA") +(addMimeType "CosmoCaller" "application/vnd.cosmocaller" '(cmc) "IANA: CosmoCaller") +(addMimeType "CPIO Archive" "application/x-cpio" '(cpio) "Wikipedia: cpio") +(addMimeType "CrickSoftware - Clicker" "application/vnd.crick.clicker" '(clkx) "IANA: Clicker") +(addMimeType "CrickSoftware - Clicker - Keyboard" "application/vnd.crick.clicker.keyboard" '(clkk) "IANA: Clicker") +(addMimeType "CrickSoftware - Clicker - Palette" "application/vnd.crick.clicker.palette" '(clkp) "IANA: Clicker") +(addMimeType "CrickSoftware - Clicker - Template" "application/vnd.crick.clicker.template" '(clkt) "IANA: Clicker") +(addMimeType "CrickSoftware - Clicker - Wordbank" "application/vnd.crick.clicker.wordbank" '(clkw) "IANA: Clicker") +(addMimeType "Critical Tools - PERT Chart EXPERT" "application/vnd.criticaltools.wbs+xml" '(wbs) "IANA: Critical Tools") +(addMimeType "CryptoNote" "application/vnd.rig.cryptonote" '(cryptonote) "IANA: CryptoNote") +(addMimeType "Crystallographic Interchange Format" "chemical/x-cif" '(cif) "Crystallographic Interchange Format") +(addMimeType "CrystalMaker Data Format" "chemical/x-cmdf" '(cmdf) "CrystalMaker Data Format") +(addMimeType "CU-SeeMe" "application/cu-seeme" '(cu) "White Pine") +(addMimeType "CU-Writer" "application/prs.cww" '(cww) "") +(addMimeType "Curl - Applet" "text/vnd.curl" '(curl) "Curl Applet") +(addMimeType "Curl - Detached Applet" "text/vnd.curl.dcurl" '(dcurl) "Curl Detached Applet") +(addMimeType "Curl - Manifest File" "text/vnd.curl.mcurl" '(mcurl) "Curl Manifest File") +(addMimeType "Curl - Source Code" "text/vnd.curl.scurl" '(scurl) "Curl Source Code") +(addMimeType "CURL Applet" "application/vnd.curl.car" '(car) "IANA: CURL Applet") +(addMimeType "CURL Applet" "application/vnd.curl.pcurl" '(pcurl) "IANA: CURL Applet") +(addMimeType "CustomMenu" "application/vnd.yellowriver-custom-menu" '(cmp) "IANA: CustomMenu") +(addMimeType "Data Structure for the Security Suitability of Cryptographic Algorithms" "application/dssc+der" '(dssc) "RFC 5698") +(addMimeType "Data Structure for the Security Suitability of Cryptographic Algorithms" "application/dssc+xml" '(xdssc) "RFC 5698") +(addMimeType "Debian Package" "application/x-debian-package" '(deb) "Wikipedia: Debian Package") +(addMimeType "DECE Audio" "audio/vnd.dece.audio" '(uva) "IANA: Dece Audio") +(addMimeType "DECE Graphic" "image/vnd.dece.graphic" '(uvi) "IANA: DECE Graphic") +(addMimeType "DECE High Definition Video" "video/vnd.dece.hd" '(uvh) "IANA: DECE HD Video") +(addMimeType "DECE Mobile Video" "video/vnd.dece.mobile" '(uvm) "IANA: DECE Mobile Video") +(addMimeType "DECE MP4" "video/vnd.uvvu.mp4" '(uvu) "IANA: DECE MP4") +(addMimeType "DECE PD Video" "video/vnd.dece.pd" '(uvp) "IANA: DECE PD Video") +(addMimeType "DECE SD Video" "video/vnd.dece.sd" '(uvs) "IANA: DECE SD Video") +(addMimeType "DECE Video" "video/vnd.dece.video" '(uvv) "IANA: DECE Video") +(addMimeType "Device Independent File Format (DVI)" "application/x-dvi" '(dvi) "Wikipedia: DVI") +(addMimeType "Digital Siesmograph Networks - SEED Datafiles" "application/vnd.fdsn.seed" '(seed) "IANA: SEED") +(addMimeType "Digital Talking Book" "application/x-dtbook+xml" '(dtb) "Wikipedia: EPUB") +(addMimeType "Digital Talking Book - Resource File" "application/x-dtbresource+xml" '(res) "Digital Talking Book") +(addMimeType "Digital Video Broadcasting" "application/vnd.dvb.ait" '(ait) "IANA: Digital Video Broadcasting") +(addMimeType "Digital Video Broadcasting" "application/vnd.dvb.service" '(svc) "IANA: Digital Video Broadcasting") +(addMimeType "Digital Winds Music" "audio/vnd.digital-winds" '(eol) "IANA: Digital Winds") +(addMimeType "DjVu" "image/vnd.djvu" '(djvu) "Wikipedia: DjVu") +(addMimeType "Document Type Definition" "application/xml-dtd" '(dtd) "W3C DTD") +(addMimeType "Dolby Meridian Lossless Packing" "application/vnd.dolby.mlp" '(mlp) "IANA: Dolby Meridian Lossless Packing") +(addMimeType "Doom Video Game" "application/x-doom" '(wad) "Wikipedia: Doom WAD") +(addMimeType "DPGraph" "application/vnd.dpgraph" '(dpg) "IANA: DPGraph") +(addMimeType "DRA Audio" "audio/vnd.dra" '(dra) "IANA: DRA") +(addMimeType "DreamFactory" "application/vnd.dreamfactory" '(dfac) "IANA: DreamFactory") +(addMimeType "DTS Audio" "audio/vnd.dts" '(dts) "IANA: DTS") +(addMimeType "DTS High Definition Audio" "audio/vnd.dts.hd" '(dtshd) "IANA: DTS HD") +(addMimeType "DWG Drawing" "image/vnd.dwg" '(dwg) "Wikipedia: DWG") +(addMimeType "DynaGeo" "application/vnd.dynageo" '(geo) "IANA: DynaGeo") +(addMimeType "ECMAScript" "application/ecmascript" '(es) "ECMA-357") +(addMimeType "EcoWin Chart" "application/vnd.ecowin.chart" '(mag) "IANA: EcoWin Chart") +(addMimeType "EDMICS 2000" "image/vnd.fujixerox.edmics-mmr" '(mmr) "IANA: EDMICS 2000") +(addMimeType "EDMICS 2000" "image/vnd.fujixerox.edmics-rlc" '(rlc) "IANA: EDMICS 2000") +(addMimeType "Efficient XML Interchange" "application/exi" '(exi) "Efficient XML Interchange (EXI) Best Practices") +(addMimeType "EFI Proteus" "application/vnd.proteus.magazine" '(mgz) "IANA: EFI Proteus") +(addMimeType "Electronic Publication" "application/epub+zip" '(epub) "Wikipedia: EPUB") +(addMimeType "Email Message" "message/rfc822" '(eml) "RFC 2822") +(addMimeType "Enliven Viewer" "application/vnd.enliven" '(nml) "IANA: Enliven Viewer") +(addMimeType "Express by Infoseek" "application/vnd.is-xpr" '(xpr) "IANA: Express by Infoseek") +(addMimeType "eXtended Image File Format (XIFF)" "image/vnd.xiff" '(xif) "IANA: XIFF") +(addMimeType "Extensible Forms Description Language" "application/vnd.xfdl" '(xfdl) "IANA: Extensible Forms Description Language") +(addMimeType "Extensible MultiModal Annotation" "application/emma+xml" '(emma) "EMMA: Extensible MultiModal Annotation markup language") +(addMimeType "EZPix Secure Photo Album" "application/vnd.ezpix-album" '(ez2) "IANA: EZPix Secure Photo Album") +(addMimeType "EZPix Secure Photo Album" "application/vnd.ezpix-package" '(ez3) "IANA: EZPix Secure Photo Album") +(addMimeType "FAST Search & Transfer ASA" "image/vnd.fst" '(fst) "IANA: FAST Search & Transfer ASA") +(addMimeType "FAST Search & Transfer ASA" "video/vnd.fvt" '(fvt) "IANA: FVT") +(addMimeType "FastBid Sheet" "image/vnd.fastbidsheet" '(fbs) "IANA: FastBid Sheet") +(addMimeType "FCS Express Layout Link" "application/vnd.denovo.fcselayout-link" '(fe_launch) "IANA: FCS Express Layout Link") +(addMimeType "Flash Video" "video/x-f4v" '(f4v) "Wikipedia: Flash Video") +(addMimeType "Flash Video" "video/x-flv" '(flv) "Wikipedia: Flash Video") +(addMimeType "FlashPix" "image/vnd.fpx" '(fpx) "IANA: FPX") +(addMimeType "FlashPix" "image/vnd.net-fpx" '(npx) "IANA: FPX") +(addMimeType "FLEXSTOR" "text/vnd.fmi.flexstor" '(flx) "IANA: FLEXSTOR") +(addMimeType "FLI/FLC Animation Format" "video/x-fli" '(fli) "FLI/FLC Animation Format") +(addMimeType "FluxTime Clip" "application/vnd.fluxtime.clip" '(ftc) "IANA: FluxTime Clip") +(addMimeType "Forms Data Format" "application/vnd.fdf" '(fdf) "IANA: Forms Data Format") +(addMimeType "Fortran Source File" "text/x-fortran" '(f) "Wikipedia: Fortran") +(addMimeType "FrameMaker Interchange Format" "application/vnd.mif" '(mif) "IANA: FrameMaker Interchange Format") +(addMimeType "FrameMaker Normal Format" "application/vnd.framemaker" '(fm) "IANA: FrameMaker") +(addMimeType "FreeHand MX" "image/x-freehand" '(fh) "Wikipedia: Macromedia Freehand") +(addMimeType "Friendly Software Corporation" "application/vnd.fsc.weblaunch" '(fsc) "IANA: Friendly Software Corporation") +(addMimeType "Frogans Player" "application/vnd.frogans.fnc" '(fnc) "IANA: Frogans Player") +(addMimeType "Frogans Player" "application/vnd.frogans.ltf" '(ltf) "IANA: Frogans Player") +(addMimeType "Fujitsu - Xerox 2D CAD Data" "application/vnd.fujixerox.ddd" '(ddd) "IANA: Fujitsu DDD") +(addMimeType "Fujitsu - Xerox DocuWorks" "application/vnd.fujixerox.docuworks" '(xdw) "IANA: Docuworks") +(addMimeType "Fujitsu - Xerox DocuWorks Binder" "application/vnd.fujixerox.docuworks.binder" '(xbd) "IANA: Docuworks Binder") +(addMimeType "Fujitsu Oasys" "application/vnd.fujitsu.oasys" '(oas) "IANA: Fujitsu Oasys") +(addMimeType "Fujitsu Oasys" "application/vnd.fujitsu.oasys2" '(oa2) "IANA: Fujitsu Oasys") +(addMimeType "Fujitsu Oasys" "application/vnd.fujitsu.oasys3" '(oa3) "IANA: Fujitsu Oasys") +(addMimeType "Fujitsu Oasys" "application/vnd.fujitsu.oasysgp" '(fg5) "IANA: Fujitsu Oasys") +(addMimeType "Fujitsu Oasys" "application/vnd.fujitsu.oasysprs" '(bh2) "IANA: Fujitsu Oasys") +(addMimeType "FutureSplash Animator" "application/x-futuresplash" '(spl) "Wikipedia: FutureSplash Animator") +(addMimeType "FuzzySheet" "application/vnd.fuzzysheet" '(fzs) "IANA: FuzySheet") +(addMimeType "G3 Fax Image" "image/g3fax" '(g3) "Wikipedia: G3 Fax Image") +(addMimeType "GameMaker ActiveX" "application/vnd.gmx" '(gmx) "IANA: GameMaker ActiveX") +(addMimeType "Gen-Trix Studio" "model/vnd.gtw" '(gtw) "IANA: GTW") +(addMimeType "Genomatix Tuxedo Framework" "application/vnd.genomatix.tuxedo" '(txd) "IANA: Genomatix Tuxedo Framework") +(addMimeType "GeoGebra" "application/vnd.geogebra.file" '(ggb) "IANA: GeoGebra") +(addMimeType "GeoGebra" "application/vnd.geogebra.tool" '(ggt) "IANA: GeoGebra") +(addMimeType "Geometric Description Language (GDL)" "model/vnd.gdl" '(gdl) "IANA: GDL") +(addMimeType "GeoMetry Explorer" "application/vnd.geometry-explorer" '(gex) "IANA: GeoMetry Explorer") +(addMimeType "GEONExT and JSXGraph" "application/vnd.geonext" '(gxt) "IANA: GEONExT and JSXGraph") +(addMimeType "GeoplanW" "application/vnd.geoplan" '(g2w) "IANA: GeoplanW") +(addMimeType "GeospacW" "application/vnd.geospace" '(g3w) "IANA: GeospacW") +(addMimeType "Ghostscript Font" "application/x-font-ghostscript" '(gsf) "Wikipedia: Ghostscript") +(addMimeType "Glyph Bitmap Distribution Format" "application/x-font-bdf" '(bdf) "Wikipedia: Glyph Bitmap Distribution Format") +(addMimeType "GNU Tar Files" "application/x-gtar" '(gtar) "GNU Tar") +(addMimeType "GNU Texinfo Document" "application/x-texinfo" '(texinfo) "Wikipedia: Texinfo") +(addMimeType "Gnumeric" "application/x-gnumeric" '(gnumeric) "Wikipedia: Gnumeric") +(addMimeType "Google Earth - KML" "application/vnd.google-earth.kml+xml" '(kml) "IANA: Google Earth") +(addMimeType "Google Earth - Zipped KML" "application/vnd.google-earth.kmz" '(kmz) "IANA: Google Earth") +(addMimeType "GPS eXchange Format" "application/gpx+xml" '(gpx) "GPS eXchange Format") +(addMimeType "GrafEq" "application/vnd.grafeq" '(gqf) "IANA: GrafEq") +(addMimeType "Graphics Interchange Format" "image/gif" '(gif) "Wikipedia: Graphics Interchange Format") +(addMimeType "Graphviz" "text/vnd.graphviz" '(gv) "IANA: Graphviz") +(addMimeType "Groove - Account" "application/vnd.groove-account" '(gac) "IANA: Groove") +(addMimeType "Groove - Help" "application/vnd.groove-help" '(ghf) "IANA: Groove") +(addMimeType "Groove - Identity Message" "application/vnd.groove-identity-message" '(gim) "IANA: Groove") +(addMimeType "Groove - Injector" "application/vnd.groove-injector" '(grv) "IANA: Groove") +(addMimeType "Groove - Tool Message" "application/vnd.groove-tool-message" '(gtm) "IANA: Groove") +(addMimeType "Groove - Tool Template" "application/vnd.groove-tool-template" '(tpl) "IANA: Groove") +(addMimeType "Groove - Vcard" "application/vnd.groove-vcard" '(vcg) "IANA: Groove") +(addMimeType "GZip" "application/gzip" '(gz) "Wikipedia: GZip") +(addMimeType "H.261" "video/h261" '(h261) "Wikipedia: H.261") +(addMimeType "H.263" "video/h263" '(h263) "Wikipedia: H.263") +(addMimeType "H.264" "video/h264" '(h264) "Wikipedia: H.264") +(addMimeType "Hewlett Packard Instant Delivery" "application/vnd.hp-hpid" '(hpid) "IANA: Hewlett Packard Instant Delivery") +(addMimeType "Hewlett-Packard's WebPrintSmart" "application/vnd.hp-hps" '(hps) "IANA: Hewlett-Packard's WebPrintSmart") +(addMimeType "Hierarchical Data Format" "application/x-hdf" '(hdf) "Wikipedia: Hierarchical Data Format") +(addMimeType "Hit'n'Mix" "audio/vnd.rip" '(rip) "IANA: Hit'n'Mix") +(addMimeType "Homebanking Computer Interface (HBCI)" "application/vnd.hbci" '(hbci) "IANA: HBCI") +(addMimeType "HP Indigo Digital Press - Job Layout Languate" "application/vnd.hp-jlyt" '(jlt) "IANA: HP Job Layout Language") +(addMimeType "HP Printer Command Language" "application/vnd.hp-pcl" '(pcl) "IANA: HP Printer Command Language") +(addMimeType "HP-GL/2 and HP RTL" "application/vnd.hp-hpgl" '(hpgl) "IANA: HP-GL/2 and HP RTL") +(addMimeType "HV Script" "application/vnd.yamaha.hv-script" '(hvs) "IANA: HV Script") +(addMimeType "HV Voice Dictionary" "application/vnd.yamaha.hv-dic" '(hvd) "IANA: HV Voice Dictionary") +(addMimeType "HV Voice Parameter" "application/vnd.yamaha.hv-voice" '(hvp) "IANA: HV Voice Parameter") +(addMimeType "Hydrostatix Master Suite" "application/vnd.hydrostatix.sof-data" '(sfd-hdstx) "IANA: Hydrostatix Master Suite") +(addMimeType "Hyperstudio" "application/hyperstudio" '(stk) "IANA - Hyperstudio") +(addMimeType "Hypertext Application Language" "application/vnd.hal+xml" '(hal) "IANA: HAL") +(addMimeType "HyperText Markup Language (HTML)" "text/html" '(html) "Wikipedia: HTML") +(addMimeType "IBM DB2 Rights Manager" "application/vnd.ibm.rights-management" '(irm) "IANA: IBM DB2 Rights Manager") +(addMimeType "IBM Electronic Media Management System - Secure Container" "application/vnd.ibm.secure-container" '(sc) "IANA: EMMS") +(addMimeType "iCalendar" "text/calendar" '(ics) "Wikipedia: iCalendar") +(addMimeType "ICC profile" "application/vnd.iccprofile" '(icc) "IANA: ICC profile") +(addMimeType "Icon Image" "image/x-icon" '(ico) "Wikipedia: ICO File Format") +(addMimeType "igLoader" "application/vnd.igloader" '(igl) "IANA: igLoader") +(addMimeType "Image Exchange Format" "image/ief" '(ief) "RFC 1314") +(addMimeType "ImmerVision PURE Players" "application/vnd.immervision-ivp" '(ivp) "IANA: ImmerVision PURE Players") +(addMimeType "ImmerVision PURE Players" "application/vnd.immervision-ivu" '(ivu) "IANA: ImmerVision PURE Players") +(addMimeType "IMS Networks" "application/reginfo+xml" '(rif) "") +(addMimeType "In3D - 3DML" "text/vnd.in3d.3dml" '(3dml) "IANA: In3D") +(addMimeType "In3D - 3DML" "text/vnd.in3d.spot" '(spot) "IANA: In3D") +(addMimeType "Initial Graphics Exchange Specification (IGES)" "model/iges" '(igs) "Wikipedia: IGES") +(addMimeType "Interactive Geometry Software" "application/vnd.intergeo" '(i2g) "IANA: Interactive Geometry Software") +(addMimeType "Interactive Geometry Software Cinderella" "application/vnd.cinderella" '(cdy) "IANA: Cinderella") +(addMimeType "Intercon FormNet" "application/vnd.intercon.formnet" '(xpw) "IANA: Intercon FormNet") +(addMimeType "International Society for Advancement of Cytometry" "application/vnd.isac.fcs" '(fcs) "IANA: International Society for Advancement of Cytometry") +(addMimeType "Internet Protocol Flow Information Export" "application/ipfix" '(ipfix) "RFC 3917") +(addMimeType "Internet Public Key Infrastructure - Certificate" "application/pkix-cert" '(cer) "RFC 2585") +(addMimeType "Internet Public Key Infrastructure - Certificate Management Protocole" "application/pkixcmp" '(pki) "RFC 2585") +(addMimeType "Internet Public Key Infrastructure - Certificate Revocation Lists" "application/pkix-crl" '(crl) "RFC 2585") +(addMimeType "Internet Public Key Infrastructure - Certification Path" "application/pkix-pkipath" '(pkipath) "RFC 2585") +(addMimeType "IOCOM Visimeet" "application/vnd.insors.igm" '(igm) "IANA: IOCOM Visimeet") +(addMimeType "IP Unplugged Roaming Client" "application/vnd.ipunplugged.rcprofile" '(rcprofile) "IANA: IP Unplugged Roaming Client") +(addMimeType "iRepository / Lucidoc Editor" "application/vnd.irepository.package+xml" '(irp) "IANA: iRepository / Lucidoc Editor") +(addMimeType "J2ME App Descriptor" "text/vnd.sun.j2me.app-descriptor" '(jad) "IANA: J2ME App Descriptor") +(addMimeType "Java Archive" "application/java-archive" '(jar) "Wikipedia: JAR file format") +(addMimeType "Java Bytecode File" "application/java-vm" '(class) "Wikipedia: Java Bytecode") +(addMimeType "Java Network Launching Protocol" "application/x-java-jnlp-file" '(jnlp) "Wikipedia: Java Web Start") +(addMimeType "Java Serialized Object" "application/java-serialized-object" '(ser) "Java Serialization API") +(addMimeType "Java Source File" "text/x-java-source,java" '(java) "Wikipedia: Java") +(addMimeType "JavaScript" "application/javascript" '(js) "JavaScript") +(addMimeType "JavaScript Module" "text/javascript" '(mjs) "Wikipedia: Javascript") +(addMimeType "JavaScript Module" "text/javascript" '(mjs) "ECMAScript modules") +(addMimeType "JavaScript Object Notation (JSON)" "application/json" '(json) "Wikipedia: JSON") +(addMimeType "Joda Archive" "application/vnd.joost.joda-archive" '(joda) "IANA: Joda Archive") +(addMimeType "JPEG Image" "image/jpeg" '(jpeg jpg) "RFC 1314") +(addMimeType "JPEG 2000 Compound Image File Format" "video/jpm" '(jpm) "IANA: JPM") +(addMimeType "JPEG Image (Citrix client)" "image/x-citrix-jpeg" '(jpeg jpg) "RFC 1314") +(addMimeType "JPEG Image (Progressive)" "image/pjpeg" '(pjpeg) "JPEG image compression FAQ") +(addMimeType "JPGVideo" "video/jpeg" '(jpgv) "RFC 3555") +(addMimeType "JSON - Linked Data" "application/ld+json" '(jsonld) "Wikipedia: JSON-LD") +(addMimeType "Kahootz" "application/vnd.kahootz" '(ktz) "IANA: Kahootz") +(addMimeType "Karaoke on Chipnuts Chipsets" "application/vnd.chipnuts.karaoke-mmd" '(mmd) "IANA: Chipnuts Karaoke") +(addMimeType "KDE KOffice Office Suite - Karbon" "application/vnd.kde.karbon" '(karbon) "IANA: KDE KOffice Office Suite") +(addMimeType "KDE KOffice Office Suite - KChart" "application/vnd.kde.kchart" '(chrt) "IANA: KDE KOffice Office Suite") +(addMimeType "KDE KOffice Office Suite - Kformula" "application/vnd.kde.kformula" '(kfo) "IANA: KDE KOffice Office Suite") +(addMimeType "KDE KOffice Office Suite - Kivio" "application/vnd.kde.kivio" '(flw) "IANA: KDE KOffice Office Suite") +(addMimeType "KDE KOffice Office Suite - Kontour" "application/vnd.kde.kontour" '(kon) "IANA: KDE KOffice Office Suite") +(addMimeType "KDE KOffice Office Suite - Kpresenter" "application/vnd.kde.kpresenter" '(kpr) "IANA: KDE KOffice Office Suite") +(addMimeType "KDE KOffice Office Suite - Kspread" "application/vnd.kde.kspread" '(ksp) "IANA: KDE KOffice Office Suite") +(addMimeType "KDE KOffice Office Suite - Kword" "application/vnd.kde.kword" '(kwd) "IANA: KDE KOffice Office Suite") +(addMimeType "Kenamea App" "application/vnd.kenameaapp" '(htke) "IANA: Kenamea App") +(addMimeType "Kidspiration" "application/vnd.kidspiration" '(kia) "IANA: Kidspiration") +(addMimeType "Kinar Applications" "application/vnd.kinar" '(kne) "IANA: Kina Applications") +(addMimeType "Kodak Storyshare" "application/vnd.kodak-descriptor" '(sse) "IANA: Kodak Storyshare") +(addMimeType "Laser App Enterprise" "application/vnd.las.las+xml" '(lasxml) "IANA: Laser App Enterprise") +(addMimeType "LaTeX" "application/x-latex" '(latex) "Wikipedia: LaTeX") +(addMimeType "Life Balance - Desktop Edition" "application/vnd.llamagraphics.life-balance.desktop" '(lbd) "IANA: Life Balance") +(addMimeType "Life Balance - Exchange Format" "application/vnd.llamagraphics.life-balance.exchange+xml" '(lbe) "IANA: Life Balance") +(addMimeType "Lightspeed Audio Lab" "application/vnd.jam" '(jam) "IANA: Lightspeed Audio Lab") +(addMimeType "Lotus 1-2-3" "application/vnd.lotus-1-2-3" '(123) "IANA: Lotus 1-2-3") +(addMimeType "Lotus Approach" "application/vnd.lotus-approach" '(apr) "IANA: Lotus Approach") +(addMimeType "Lotus Freelance" "application/vnd.lotus-freelance" '(pre) "IANA: Lotus Freelance") +(addMimeType "Lotus Notes" "application/vnd.lotus-notes" '(nsf) "IANA: Lotus Notes") +(addMimeType "Lotus Organizer" "application/vnd.lotus-organizer" '(org) "IANA: Lotus Organizer") +(addMimeType "Lotus Screencam" "application/vnd.lotus-screencam" '(scm) "IANA: Lotus Screencam") +(addMimeType "Lotus Wordpro" "application/vnd.lotus-wordpro" '(lwp) "IANA: Lotus Wordpro") +(addMimeType "Lucent Voice" "audio/vnd.lucent.voice" '(lvp) "IANA: Lucent Voice") +(addMimeType "M3U (Multimedia Playlist)" "audio/x-mpegurl" '(m3u) "Wikipedia: M3U") +(addMimeType "M4v" "video/x-m4v" '(m4v) "Wikipedia: M4v") +(addMimeType "Macintosh BinHex 4.0" "application/mac-binhex40" '(hqx) "MacMIME") +(addMimeType "MacPorts Port System" "application/vnd.macports.portpkg" '(portpkg) "IANA: MacPorts Port System") +(addMimeType "MapGuide DBXML" "application/vnd.osgeo.mapguide.package" '(mgp) "IANA: MapGuide DBXML") +(addMimeType "MARC Formats" "application/marc" '(mrc) "RFC 2220") +(addMimeType "MARC21 XML Schema" "application/marcxml+xml" '(mrcx) "RFC 6207") +(addMimeType "Material Exchange Format" "application/mxf" '(mxf) "RFC 4539") +(addMimeType "Mathematica Notebook Player" "application/vnd.wolfram.player" '(nbp) "IANA: Mathematica Notebook Player") +(addMimeType "Mathematica Notebooks" "application/mathematica" '(ma) "IANA - Mathematica") +(addMimeType "Mathematical Markup Language" "application/mathml+xml" '(mathml) "W3C Math Home") +(addMimeType "Mbox database files" "application/mbox" '(mbox) "RFC 4155") +(addMimeType "MedCalc" "application/vnd.medcalcdata" '(mc1) "IANA: MedCalc") +(addMimeType "Media Server Control Markup Language" "application/mediaservercontrol+xml" '(mscml) "RFC 5022") +(addMimeType "MediaRemote" "application/vnd.mediastation.cdkey" '(cdkey) "IANA: MediaRemote") +(addMimeType "Medical Waveform Encoding Format" "application/vnd.mfer" '(mwf) "IANA: Medical Waveform Encoding Format") +(addMimeType "Melody Format for Mobile Platform" "application/vnd.mfmp" '(mfm) "IANA: Melody Format for Mobile Platform") +(addMimeType "Mesh Data Type" "model/mesh" '(msh) "RFC 2077") +(addMimeType "Metadata Authority Description Schema" "application/mads+xml" '(mads) "RFC 6207") +(addMimeType "Metadata Encoding and Transmission Standard" "application/mets+xml" '(mets) "RFC 6207") +(addMimeType "Metadata Object Description Schema" "application/mods+xml" '(mods) "RFC 6207") +(addMimeType "Metalink" "application/metalink4+xml" '(meta4) "Wikipedia: Metalink") +(addMimeType "Micro CADAM Helix D&D" "application/vnd.mcd" '(mcd) "IANA: Micro CADAM Helix D&D") +(addMimeType "Micrografx" "application/vnd.micrografx.flo" '(flo) "IANA: Micrografx") +(addMimeType "Micrografx iGrafx Professional" "application/vnd.micrografx.igx" '(igx) "IANA: Micrografx") +(addMimeType "MICROSEC e-Szign?" "application/vnd.eszigno3+xml" '(es3) "IANA: MICROSEC e-Szign?") +(addMimeType "Microsoft Access" "application/x-msaccess" '(mdb) "Wikipedia: Microsoft Access") +(addMimeType "Microsoft Advanced Systems Format (ASF)" "video/x-ms-asf" '(asf) "Wikipedia: Advanced Systems Format (ASF)") +(addMimeType "Microsoft Application" "application/x-msdownload" '(exe) "Wikipedia: EXE") +(addMimeType "Microsoft Artgalry" "application/vnd.ms-artgalry" '(cil) "IANA: MS Artgalry") +(addMimeType "Microsoft Cabinet File" "application/vnd.ms-cab-compressed" '(cab) "IANA: MS Cabinet File") +(addMimeType "Microsoft Class Server" "application/vnd.ms-ims" '(ims) "IANA: MS Class Server") +(addMimeType "Microsoft ClickOnce" "application/x-ms-application" '(application) "Wikipedia: ClickOnce") +(addMimeType "Microsoft Clipboard Clip" "application/x-msclip" '(clp) "Wikipedia: Clipboard") +(addMimeType "Microsoft Document Imaging Format" "image/vnd.ms-modi" '(mdi) "Wikipedia: Microsoft Document Image Format") +(addMimeType "Microsoft Embedded OpenType" "application/vnd.ms-fontobject" '(eot) "IANA: MS Embedded OpenType") +(addMimeType "Microsoft Excel" "application/vnd.ms-excel" '(xls) "IANA: MS Excel") +(addMimeType "Microsoft Excel - Add-In File" "application/vnd.ms-excel.addin.macroenabled.12" '(xlam) "IANA: MS Excel") +(addMimeType "Microsoft Excel - Binary Workbook" "application/vnd.ms-excel.sheet.binary.macroenabled.12" '(xlsb) "IANA: MS Excel") +(addMimeType "Microsoft Excel - Macro-Enabled Template File" "application/vnd.ms-excel.template.macroenabled.12" '(xltm) "IANA: MS Excel") +(addMimeType "Microsoft Excel - Macro-Enabled Workbook" "application/vnd.ms-excel.sheet.macroenabled.12" '(xlsm) "IANA: MS Excel") +(addMimeType "Microsoft Html Help File" "application/vnd.ms-htmlhelp" '(chm) "IANA:MS Html Help File") +(addMimeType "Microsoft Information Card" "application/x-mscardfile" '(crd) "Wikipedia: Information Card") +(addMimeType "Microsoft Learning Resource Module" "application/vnd.ms-lrm" '(lrm) "IANA: MS Learning Resource Module") +(addMimeType "Microsoft MediaView" "application/x-msmediaview" '(mvb) "Windows Help") +(addMimeType "Microsoft Money" "application/x-msmoney" '(mny) "Wikipedia: Microsoft Money") +(addMimeType "Microsoft Office - OOXML - Presentation" "application/vnd.openxmlformats-officedocument.presentationml.presentation" '(pptx) "IANA: OOXML - Presentation") +(addMimeType "Microsoft Office - OOXML - Presentation (Slide)" "application/vnd.openxmlformats-officedocument.presentationml.slide" '(sldx) "IANA: OOXML - Presentation") +(addMimeType "Microsoft Office - OOXML - Presentation (Slideshow)" "application/vnd.openxmlformats-officedocument.presentationml.slideshow" '(ppsx) "IANA: OOXML - Presentation") +(addMimeType "Microsoft Office - OOXML - Presentation Template" "application/vnd.openxmlformats-officedocument.presentationml.template" '(potx) "IANA: OOXML - Presentation Template") +(addMimeType "Microsoft Office - OOXML - Spreadsheet" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" '(xlsx) "IANA: OOXML - Spreadsheet") +(addMimeType "Microsoft Office - OOXML - Spreadsheet Template" "application/vnd.openxmlformats-officedocument.spreadsheetml.template" '(xltx) "IANA: OOXML - Spreadsheet Template") +(addMimeType "Microsoft Office - OOXML - Word Document" "application/vnd.openxmlformats-officedocument.wordprocessingml.document" '(docx) "IANA: OOXML - Word Document") +(addMimeType "Microsoft Office - OOXML - Word Document Template" "application/vnd.openxmlformats-officedocument.wordprocessingml.template" '(dotx) "IANA: OOXML - Word Document Template") +(addMimeType "Microsoft Office Binder" "application/x-msbinder" '(obd) "Wikipedia: Microsoft Shared Tools") +(addMimeType "Microsoft Office System Release Theme" "application/vnd.ms-officetheme" '(thmx) "IANA: MS Office System Release Theme") +(addMimeType "Microsoft OneNote" "application/onenote" '(onetoc) "MS OneNote 2010") +(addMimeType "Microsoft PlayReady Ecosystem" "audio/vnd.ms-playready.media.pya" '(pya) "IANA: Microsoft PlayReady Ecosystem") +(addMimeType "Microsoft PlayReady Ecosystem Video" "video/vnd.ms-playready.media.pyv" '(pyv) "IANA: Microsoft PlayReady Ecosystem") +(addMimeType "Microsoft PowerPoint" "application/vnd.ms-powerpoint" '(ppt) "IANA: MS PowerPoint") +(addMimeType "Microsoft PowerPoint - Add-in file" "application/vnd.ms-powerpoint.addin.macroenabled.12" '(ppam) "IANA: MS PowerPoint") +(addMimeType "Microsoft PowerPoint - Macro-Enabled Open XML Slide" "application/vnd.ms-powerpoint.slide.macroenabled.12" '(sldm) "IANA: MS PowerPoint") +(addMimeType "Microsoft PowerPoint - Macro-Enabled Presentation File" "application/vnd.ms-powerpoint.presentation.macroenabled.12" '(pptm) "IANA: MS PowerPoint") +(addMimeType "Microsoft PowerPoint - Macro-Enabled Slide Show File" "application/vnd.ms-powerpoint.slideshow.macroenabled.12" '(ppsm) "IANA: MS PowerPoint") +(addMimeType "Microsoft PowerPoint - Macro-Enabled Template File" "application/vnd.ms-powerpoint.template.macroenabled.12" '(potm) "IANA: MS PowerPoint") +(addMimeType "Microsoft Project" "application/vnd.ms-project" '(mpp) "IANA: MS PowerPoint") +(addMimeType "Microsoft Publisher" "application/x-mspublisher" '(pub) "Wikipedia: Microsoft Publisher") +(addMimeType "Microsoft Schedule+" "application/x-msschedule" '(scd) "Wikipedia: Microsoft Schedule Plus") +(addMimeType "Microsoft Silverlight" "application/x-silverlight-app" '(xap) "Wikipedia: Silverlight") +(addMimeType "Microsoft Trust UI Provider - Certificate Trust Link" "application/vnd.ms-pki.stl" '(stl) "IANA: MS Trust UI Provider") +(addMimeType "Microsoft Trust UI Provider - Security Catalog" "application/vnd.ms-pki.seccat" '(cat) "IANA: MS Trust UI Provider") +(addMimeType "Microsoft Visio" "application/vnd.visio" '(vsd) "IANA: Visio") +(addMimeType "Microsoft Visio 2013" "application/vnd.visio2013" '(vsdx) "IANA: Visio") +(addMimeType "Microsoft Windows Media" "video/x-ms-wm" '(wm) "Wikipedia: Advanced Systems Format (ASF)") +(addMimeType "Microsoft Windows Media Audio" "audio/x-ms-wma" '(wma) "Wikipedia: Windows Media Audio") +(addMimeType "Microsoft Windows Media Audio Redirector" "audio/x-ms-wax" '(wax) "Windows Media Metafiles") +(addMimeType "Microsoft Windows Media Audio/Video Playlist" "video/x-ms-wmx" '(wmx) "Wikipedia: Advanced Systems Format (ASF)") +(addMimeType "Microsoft Windows Media Player Download Package" "application/x-ms-wmd" '(wmd) "Wikipedia: Windows Media Player") +(addMimeType "Microsoft Windows Media Player Playlist" "application/vnd.ms-wpl" '(wpl) "IANA: MS Windows Media Player Playlist") +(addMimeType "Microsoft Windows Media Player Skin Package" "application/x-ms-wmz" '(wmz) "Wikipedia: Windows Media Player") +(addMimeType "Microsoft Windows Media Video" "video/x-ms-wmv" '(wmv) "Wikipedia: Advanced Systems Format (ASF)") +(addMimeType "Microsoft Windows Media Video Playlist" "video/x-ms-wvx" '(wvx) "Wikipedia: Advanced Systems Format (ASF)") +(addMimeType "Microsoft Windows Metafile" "application/x-msmetafile" '(wmf) "Wikipedia: Windows Metafile") +(addMimeType "Microsoft Windows Terminal Services" "application/x-msterminal" '(trm) "Wikipedia: Terminal Server") +(addMimeType "Microsoft Word" "application/msword" '(doc) "Wikipedia: Microsoft Word") +(addMimeType "Microsoft Word - Macro-Enabled Document" "application/vnd.ms-word.document.macroenabled.12" '(docm) "IANA: MS Word") +(addMimeType "Microsoft Word - Macro-Enabled Template" "application/vnd.ms-word.template.macroenabled.12" '(dotm) "IANA: MS Word") +(addMimeType "Microsoft Wordpad" "application/x-mswrite" '(wri) "Wikipedia: Wordpad") +(addMimeType "Microsoft Works" "application/vnd.ms-works" '(wps) "IANA: MS Works") +(addMimeType "Microsoft XAML Browser Application" "application/x-ms-xbap" '(xbap) "Wikipedia: XAML Browser") +(addMimeType "Microsoft XML Paper Specification" "application/vnd.ms-xpsdocument" '(xps) "IANA: MS XML Paper Specification") +(addMimeType "MIDI" "audio/midi" '(midi) "Wikipedia: MIDI") +(addMimeType "MIDI - Musical Instrument Digital Interface" "audio/midi" '(mid) "Wikipedia: MIDI") +(addMimeType "MiniPay" "application/vnd.ibm.minipay" '(mpy) "IANA: MiniPay") +(addMimeType "MO:DCA-P" "application/vnd.ibm.modcap" '(afp) "IANA: MO:DCA-P") +(addMimeType "Mobile Information Device Profile" "application/vnd.jcp.javame.midlet-rms" '(rms) "IANA: Mobile Information Device Profile") +(addMimeType "MobileTV" "application/vnd.tmobile-livetv" '(tmo) "IANA: MobileTV") +(addMimeType "Mobipocket" "application/x-mobipocket-ebook" '(prc) "Wikipedia: Mobipocket") +(addMimeType "Mobius Management Systems - Basket file" "application/vnd.mobius.mbk" '(mbk) "IANA: Mobius Management Systems") +(addMimeType "Mobius Management Systems - Distribution Database" "application/vnd.mobius.dis" '(dis) "IANA: Mobius Management Systems") +(addMimeType "Mobius Management Systems - Policy Definition Language File" "application/vnd.mobius.plc" '(plc) "IANA: Mobius Management Systems") +(addMimeType "Mobius Management Systems - Query File" "application/vnd.mobius.mqy" '(mqy) "IANA: Mobius Management Systems") +(addMimeType "Mobius Management Systems - Script Language" "application/vnd.mobius.msl" '(msl) "IANA: Mobius Management Systems") +(addMimeType "Mobius Management Systems - Topic Index File" "application/vnd.mobius.txf" '(txf) "IANA: Mobius Management Systems") +(addMimeType "Mobius Management Systems - UniversalArchive" "application/vnd.mobius.daf" '(daf) "IANA: Mobius Management Systems") +(addMimeType "mod_fly / fly.cgi" "text/vnd.fly" '(fly) "IANA: Fly") +(addMimeType "Mophun Certificate" "application/vnd.mophun.certificate" '(mpc) "IANA: Mophun Certificate") +(addMimeType "Mophun VM" "application/vnd.mophun.application" '(mpn) "IANA: Mophun VM") +(addMimeType "Motion JPEG 2000" "video/mj2" '(mj2) "IANA: MJ2") +(addMimeType "MPEG Audio" "audio/mpeg" '(mpga) "Wikipedia: MPGA") +(addMimeType "MPEG Transport Stream" "video/mp2t" '(ts) "Wikipedia: MPEG Transport Stream") +(addMimeType "MPEG Url" "video/vnd.mpegurl" '(mxu) "IANA: MPEG Url") +(addMimeType "MPEG Video" "video/mpeg" '(mpeg) "Wikipedia: MPEG") +(addMimeType "MPEG-21" "application/mp21" '(m21) "Wikipedia: MPEG-21") +(addMimeType "MPEG-4 Audio" "audio/mp4" '(mp4a) "Wikipedia: MP4A") +(addMimeType "MPEG-4 Video" "video/mp4" '(mp4) "Wikipedia: MP4") +(addMimeType "MPEG4" "application/mp4" '(mp4) "RFC 4337") +(addMimeType "Multimedia Playlist Unicode" "application/vnd.apple.mpegurl" '(m3u8) "Wikipedia: M3U") +(addMimeType "MUsical Score Interpreted Code Invented for the ASCII designation of Notation" "application/vnd.musician" '(mus) "IANA: MUSICIAN") +(addMimeType "Muvee Automatic Video Editing" "application/vnd.muvee.style" '(msty) "IANA: Muvee") +(addMimeType "MXML" "application/xv+xml" '(mxml) "Wikipedia: MXML") +(addMimeType "N-Gage Game Data" "application/vnd.nokia.n-gage.data" '(ngdat) "IANA: N-Gage Game Data") +(addMimeType "N-Gage Game Installer" "application/vnd.nokia.n-gage.symbian.install" '(n-gage) "IANA: N-Gage Game Installer") +(addMimeType "Navigation Control file for XML (for ePub)" "application/x-dtbncx+xml" '(ncx) "Wikipedia: EPUB") +(addMimeType "Network Common Data Form (NetCDF)" "application/x-netcdf" '(nc) "Wikipedia: NetCDF") +(addMimeType "neuroLanguage" "application/vnd.neurolanguage.nlu" '(nlu) "IANA: neuroLanguage") +(addMimeType "New Moon Liftoff/DNA" "application/vnd.dna" '(dna) "IANA: New Moon Liftoff/DNA") +(addMimeType "NobleNet Directory" "application/vnd.noblenet-directory" '(nnd) "IANA: NobleNet Directory") +(addMimeType "NobleNet Sealer" "application/vnd.noblenet-sealer" '(nns) "IANA: NobleNet Sealer") +(addMimeType "NobleNet Web" "application/vnd.noblenet-web" '(nnw) "IANA: NobleNet Web") +(addMimeType "Nokia Radio Application - Preset" "application/vnd.nokia.radio-preset" '(rpst) "IANA: Nokia Radio Application") +(addMimeType "Nokia Radio Application - Preset" "application/vnd.nokia.radio-presets" '(rpss) "IANA: Nokia Radio Application") +(addMimeType "Notation3" "text/n3" '(n3) "Wikipedia: Notation3") +(addMimeType "Novadigm's RADIA and EDM products" "application/vnd.novadigm.edm" '(edm) "IANA: Novadigm's RADIA and EDM products") +(addMimeType "Novadigm's RADIA and EDM products" "application/vnd.novadigm.edx" '(edx) "IANA: Novadigm's RADIA and EDM products") +(addMimeType "Novadigm's RADIA and EDM products" "application/vnd.novadigm.ext" '(ext) "IANA: Novadigm's RADIA and EDM products") +(addMimeType "NpGraphIt" "application/vnd.flographit" '(gph) "IANA: FloGraphIt") +(addMimeType "Nuera ECELP 4800" "audio/vnd.nuera.ecelp4800" '(ecelp4800) "IANA: ECELP 4800") +(addMimeType "Nuera ECELP 7470" "audio/vnd.nuera.ecelp7470" '(ecelp7470) "IANA: ECELP 7470") +(addMimeType "Nuera ECELP 9600" "audio/vnd.nuera.ecelp9600" '(ecelp9600) "IANA: ECELP 9600") +(addMimeType "Office Document Architecture" "application/oda" '(oda) "RFC 2161") +(addMimeType "Ogg" "application/ogg" '(ogx) "Wikipedia: Ogg") +(addMimeType "Ogg Audio" "audio/ogg" '(oga) "Wikipedia: Ogg") +(addMimeType "Ogg Video" "video/ogg" '(ogv) "Wikipedia: Ogg") +(addMimeType "OMA Download Agents" "application/vnd.oma.dd2+xml" '(dd2) "IANA: OMA Download Agents") +(addMimeType "Open Document Text Web" "application/vnd.oasis.opendocument.text-web" '(oth) "IANA: OpenDocument Text Web") +(addMimeType "Open eBook Publication Structure" "application/oebps-package+xml" '(opf) "Wikipedia: Open eBook") +(addMimeType "Open Financial Exchange" "application/vnd.intu.qbo" '(qbo) "IANA: Open Financial Exchange") +(addMimeType "Open Office Extension" "application/vnd.openofficeorg.extension" '(oxt) "IANA: Open Office Extension") +(addMimeType "Open Score Format" "application/vnd.yamaha.openscoreformat" '(osf) "IANA: Open Score Format") +(addMimeType "Open Web Media Project - Audio" "audio/webm" '(weba) "WebM Project") +(addMimeType "Open Web Media Project - Video" "video/webm" '(webm) "WebM Project") +(addMimeType "OpenDocument Chart" "application/vnd.oasis.opendocument.chart" '(odc) "IANA: OpenDocument Chart") +(addMimeType "OpenDocument Chart Template" "application/vnd.oasis.opendocument.chart-template" '(otc) "IANA: OpenDocument Chart Template") +(addMimeType "OpenDocument Database" "application/vnd.oasis.opendocument.database" '(odb) "IANA: OpenDocument Database") +(addMimeType "OpenDocument Formula" "application/vnd.oasis.opendocument.formula" '(odf) "IANA: OpenDocument Formula") +(addMimeType "OpenDocument Formula Template" "application/vnd.oasis.opendocument.formula-template" '(odft) "IANA: OpenDocument Formula Template") +(addMimeType "OpenDocument Graphics" "application/vnd.oasis.opendocument.graphics" '(odg) "IANA: OpenDocument Graphics") +(addMimeType "OpenDocument Graphics Template" "application/vnd.oasis.opendocument.graphics-template" '(otg) "IANA: OpenDocument Graphics Template") +(addMimeType "OpenDocument Image" "application/vnd.oasis.opendocument.image" '(odi) "IANA: OpenDocument Image") +(addMimeType "OpenDocument Image Template" "application/vnd.oasis.opendocument.image-template" '(oti) "IANA: OpenDocument Image Template") +(addMimeType "OpenDocument Presentation" "application/vnd.oasis.opendocument.presentation" '(odp) "IANA: OpenDocument Presentation") +(addMimeType "OpenDocument Presentation Template" "application/vnd.oasis.opendocument.presentation-template" '(otp) "IANA: OpenDocument Presentation Template") +(addMimeType "OpenDocument Spreadsheet" "application/vnd.oasis.opendocument.spreadsheet" '(ods) "IANA: OpenDocument Spreadsheet") +(addMimeType "OpenDocument Spreadsheet Template" "application/vnd.oasis.opendocument.spreadsheet-template" '(ots) "IANA: OpenDocument Spreadsheet Template") +(addMimeType "OpenDocument Text" "application/vnd.oasis.opendocument.text" '(odt) "IANA: OpenDocument Text") +(addMimeType "OpenDocument Text Master" "application/vnd.oasis.opendocument.text-master" '(odm) "IANA: OpenDocument Text Master") +(addMimeType "OpenDocument Text Template" "application/vnd.oasis.opendocument.text-template" '(ott) "IANA: OpenDocument Text Template") +(addMimeType "OpenGL Textures (KTX)" "image/ktx" '(ktx) "KTX File Format") +(addMimeType "OpenOffice - Calc (Spreadsheet)" "application/vnd.sun.xml.calc" '(sxc) "Wikipedia: OpenOffice") +(addMimeType "OpenOffice - Calc Template (Spreadsheet)" "application/vnd.sun.xml.calc.template" '(stc) "Wikipedia: OpenOffice") +(addMimeType "OpenOffice - Draw (Graphics)" "application/vnd.sun.xml.draw" '(sxd) "Wikipedia: OpenOffice") +(addMimeType "OpenOffice - Draw Template (Graphics)" "application/vnd.sun.xml.draw.template" '(std) "Wikipedia: OpenOffice") +(addMimeType "OpenOffice - Impress (Presentation)" "application/vnd.sun.xml.impress" '(sxi) "Wikipedia: OpenOffice") +(addMimeType "OpenOffice - Impress Template (Presentation)" "application/vnd.sun.xml.impress.template" '(sti) "Wikipedia: OpenOffice") +(addMimeType "OpenOffice - Math (Formula)" "application/vnd.sun.xml.math" '(sxm) "Wikipedia: OpenOffice") +(addMimeType "OpenOffice - Writer (Text - HTML)" "application/vnd.sun.xml.writer" '(sxw) "Wikipedia: OpenOffice") +(addMimeType "OpenOffice - Writer (Text - HTML)" "application/vnd.sun.xml.writer.global" '(sxg) "Wikipedia: OpenOffice") +(addMimeType "OpenOffice - Writer Template (Text - HTML)" "application/vnd.sun.xml.writer.template" '(stw) "Wikipedia: OpenOffice") +(addMimeType "OpenType Font File" "application/x-font-otf" '(otf) "OpenType Font File") +(addMimeType "Opus Audio" "audio/opus" '(opus) "Wikipedia: Opus Audio") +(addMimeType "OSFPVG" "application/vnd.yamaha.openscoreformat.osfpvg+xml" '(osfpvg) "IANA: OSFPVG") +(addMimeType "OSGi Deployment Package" "application/vnd.osgi.dp" '(dp) "IANA: OSGi Deployment Package") +(addMimeType "PalmOS Data" "application/vnd.palm" '(pdb) "IANA: PalmOS Data") +(addMimeType "Pascal Source File" "text/x-pascal" '(p) "Wikipedia: Pascal") +(addMimeType "PawaaFILE" "application/vnd.pawaafile" '(paw) "IANA: PawaaFILE") +(addMimeType "PCL 6 Enhanced (Formely PCL XL)" "application/vnd.hp-pclxl" '(pclxl) "IANA: HP PCL XL") +(addMimeType "Pcsel eFIF File" "application/vnd.picsel" '(efif) "IANA: Picsel eFIF File") +(addMimeType "PCX Image" "image/x-pcx" '(pcx) "Wikipedia: PCX") +(addMimeType "Photoshop Document" "image/vnd.adobe.photoshop" '(psd) "Wikipedia: Photoshop Document") +(addMimeType "PICSRules" "application/pics-rules" '(prf) "W3C PICSRules") +(addMimeType "PICT Image" "image/x-pict" '(pic) "Wikipedia: PICT") +(addMimeType "pIRCh" "application/x-chat" '(chat) "Wikipedia: pIRCh") +(addMimeType "PKCS #10 - Certification Request Standard" "application/pkcs10" '(p10) "RFC 2986") +(addMimeType "PKCS #12 - Personal Information Exchange Syntax Standard" "application/x-pkcs12" '(p12) "RFC 2986") +(addMimeType "PKCS #7 - Cryptographic Message Syntax Standard" "application/pkcs7-mime" '(p7m) "RFC 2315") +(addMimeType "PKCS #7 - Cryptographic Message Syntax Standard" "application/pkcs7-signature" '(p7s) "RFC 2315") +(addMimeType "PKCS #7 - Cryptographic Message Syntax Standard (Certificate Request Response)" "application/x-pkcs7-certreqresp" '(p7r) "RFC 2986") +(addMimeType "PKCS #7 - Cryptographic Message Syntax Standard (Certificates)" "application/x-pkcs7-certificates" '(p7b) "RFC 2986") +(addMimeType "PKCS #8 - Private-Key Information Syntax Standard" "application/pkcs8" '(p8) "RFC 5208") +(addMimeType "PocketLearn Viewers" "application/vnd.pocketlearn" '(plf) "IANA: PocketLearn Viewers") +(addMimeType "Portable Anymap Image" "image/x-portable-anymap" '(pnm) "Wikipedia: Netpbm Format") +(addMimeType "Portable Bitmap Format" "image/x-portable-bitmap" '(pbm) "Wikipedia: Netpbm Format") +(addMimeType "Portable Compiled Format" "application/x-font-pcf" '(pcf) "Wikipedia: Portable Compiled Format") +(addMimeType "Portable Font Resource" "application/font-tdpfr" '(pfr) "RFC 3073") +(addMimeType "Portable Game Notation (Chess Games)" "application/x-chess-pgn" '(pgn) "Wikipedia: Portable Game Notationb") +(addMimeType "Portable Graymap Format" "image/x-portable-graymap" '(pgm) "Wikipedia: Netpbm Format") +(addMimeType "Portable Network Graphics (PNG)" "image/png" '(png) "RFC 2083") +(addMimeType "Portable Network Graphics (PNG) (Citrix client)" "image/x-citrix-png" '(png) "RFC 2083") +(addMimeType "Portable Network Graphics (PNG) (x-token)" "image/x-png" '(png) "RFC 2083") +(addMimeType "Portable Pixmap Format" "image/x-portable-pixmap" '(ppm) "Wikipedia: Netpbm Format") +(addMimeType "Portable Symmetric Key Container" "application/pskc+xml" '(pskcxml) "RFC 6030") +(addMimeType "PosML" "application/vnd.ctc-posml" '(pml) "IANA: PosML") +(addMimeType "PostScript" "application/postscript" '(ai) "Wikipedia: PostScript") +(addMimeType "PostScript Fonts" "application/x-font-type1" '(pfa) "Wikipedia: PostScript Fonts") +(addMimeType "PowerBuilder" "application/vnd.powerbuilder6" '(pbd) "IANA: PowerBuilder") +(addMimeType "Pretty Good Privacy" "application/pgp-encrypted" '(pgp) "RFC 2015") +(addMimeType "Pretty Good Privacy - Signature" "application/pgp-signature" '(pgp) "RFC 2015") +(addMimeType "Preview Systems ZipLock/VBox" "application/vnd.previewsystems.box" '(box) "IANA: Preview Systems ZipLock/Vbox") +(addMimeType "Princeton Video Image" "application/vnd.pvi.ptid1" '(ptid) "IANA: Princeton Video Image") +(addMimeType "Pronunciation Lexicon Specification" "application/pls+xml" '(pls) "RFC 4267") +(addMimeType "Proprietary P&G Standard Reporting System" "application/vnd.pg.format" '(str) "IANA: Proprietary P&G Standard Reporting System") +(addMimeType "Proprietary P&G Standard Reporting System" "application/vnd.pg.osasli" '(ei6) "IANA: Proprietary P&G Standard Reporting System") +(addMimeType "PRS Lines Tag" "text/prs.lines.tag" '(dsc) "IANA: PRS Lines Tag") +(addMimeType "PSF Fonts" "application/x-font-linux-psf" '(psf) "PSF Fonts") +(addMimeType "PubliShare Objects" "application/vnd.publishare-delta-tree" '(qps) "IANA: PubliShare Objects") +(addMimeType "Qualcomm's Plaza Mobile Internet" "application/vnd.pmi.widget" '(wg) "IANA: Qualcomm's Plaza Mobile Internet") +(addMimeType "QuarkXpress" "application/vnd.quark.quarkxpress" '(qxd) "IANA: QuarkXPress") +(addMimeType "QUASS Stream Player" "application/vnd.epson.esf" '(esf) "IANA: QUASS Stream Player") +(addMimeType "QUASS Stream Player" "application/vnd.epson.msf" '(msf) "IANA: QUASS Stream Player") +(addMimeType "QUASS Stream Player" "application/vnd.epson.ssf" '(ssf) "IANA: QUASS Stream Player") +(addMimeType "QuickAnime Player" "application/vnd.epson.quickanime" '(qam) "IANA: QuickAnime Player") +(addMimeType "Quicken" "application/vnd.intu.qfx" '(qfx) "IANA: Quicken") +(addMimeType "Quicktime Video" "video/quicktime" '(qt) "Wikipedia: Quicktime") +(addMimeType "RAR Archive" "application/x-rar-compressed" '(rar) "Wikipedia: RAR") +(addMimeType "Real Audio Sound" "audio/x-pn-realaudio" '(ram) "Wikipedia: RealPlayer") +(addMimeType "Real Audio Sound" "audio/x-pn-realaudio-plugin" '(rmp) "Wikipedia: RealPlayer") +(addMimeType "Really Simple Discovery" "application/rsd+xml" '(rsd) "Wikipedia: Really Simple Discovery") +(addMimeType "RealMedia" "application/vnd.rn-realmedia" '(rm) "") +(addMimeType "RealVNC" "application/vnd.realvnc.bed" '(bed) "IANA: RealVNC") +(addMimeType "Recordare Applications" "application/vnd.recordare.musicxml" '(mxl) "IANA: Recordare Apps") +(addMimeType "Recordare Applications" "application/vnd.recordare.musicxml+xml" '(musicxml) "IANA: Recordare Apps") +(addMimeType "Relax NG Compact Syntax" "application/relax-ng-compact-syntax" '(rnc) "Relax NG") +(addMimeType "RemoteDocs R-Viewer" "application/vnd.data-vision.rdz" '(rdz) "IANA: Data-Vision") +(addMimeType "Resource Description Framework" "application/rdf+xml" '(rdf) "RFC 3870") +(addMimeType "RetroPlatform Player" "application/vnd.cloanto.rp9" '(rp9) "IANA: RetroPlatform Player") +(addMimeType "RhymBox" "application/vnd.jisp" '(jisp) "IANA: RhymBox") +(addMimeType "Rich Text Format" "application/rtf" '(rtf) "Wikipedia: Rich Text Format") +(addMimeType "Rich Text Format (RTF)" "text/richtext" '(rtx) "Wikipedia: Rich Text Format") +(addMimeType "ROUTE 66 Location Based Services" "application/vnd.route66.link66+xml" '(link66) "IANA: ROUTE 66") +(addMimeType "RSS - Really Simple Syndication" "application/rss+xml" '(rss xml) "Wikipedia: RSS") +(addMimeType "S Hexdump Format" "application/shf+xml" '(shf) "RFC 4194") +(addMimeType "SailingTracker" "application/vnd.sailingtracker.track" '(st) "IANA: SailingTracker") +(addMimeType "Scalable Vector Graphics (SVG)" "image/svg+xml" '(svg) "Wikipedia: SVG") +(addMimeType "ScheduleUs" "application/vnd.sus-calendar" '(sus) "IANA: ScheduleUs") +(addMimeType "Search/Retrieve via URL Response Format" "application/sru+xml" '(sru) "RFC 6207") +(addMimeType "Secure Electronic Transaction - Payment" "application/set-payment-initiation" '(setpay) "IANA: SET Payment") +(addMimeType "Secure Electronic Transaction - Registration" "application/set-registration-initiation" '(setreg) "IANA: SET Registration") +(addMimeType "Secured eMail" "application/vnd.sema" '(sema) "IANA: Secured eMail") +(addMimeType "Secured eMail" "application/vnd.semd" '(semd) "IANA: Secured eMail") +(addMimeType "Secured eMail" "application/vnd.semf" '(semf) "IANA: Secured eMail") +(addMimeType "SeeMail" "application/vnd.seemail" '(see) "IANA: SeeMail") +(addMimeType "Server Normal Format" "application/x-font-snf" '(snf) "Wikipedia: Server Normal Format") +(addMimeType "Server-Based Certificate Validation Protocol - Validation Policies - Request" "application/scvp-vp-request" '(spq) "RFC 5055") +(addMimeType "Server-Based Certificate Validation Protocol - Validation Policies - Response" "application/scvp-vp-response" '(spp) "RFC 5055") +(addMimeType "Server-Based Certificate Validation Protocol - Validation Request" "application/scvp-cv-request" '(scq) "RFC 5055") +(addMimeType "Server-Based Certificate Validation Protocol - Validation Response" "application/scvp-cv-response" '(scs) "RFC 5055") +(addMimeType "Session Description Protocol" "application/sdp" '(sdp) "RFC 2327") +(addMimeType "Setext" "text/x-setext" '(etx) "Wikipedia: Setext") +(addMimeType "SGI Movie" "video/x-sgi-movie" '(movie) "SGI Facts") +(addMimeType "Shana Informed Filler" "application/vnd.shana.informed.formdata" '(ifm) "IANA: Shana Informed Filler") +(addMimeType "Shana Informed Filler" "application/vnd.shana.informed.formtemplate" '(itp) "IANA: Shana Informed Filler") +(addMimeType "Shana Informed Filler" "application/vnd.shana.informed.interchange" '(iif) "IANA: Shana Informed Filler") +(addMimeType "Shana Informed Filler" "application/vnd.shana.informed.package" '(ipk) "IANA: Shana Informed Filler") +(addMimeType "Sharing Transaction Fraud Data" "application/thraud+xml" '(tfi) "RFC 5941") +(addMimeType "Shell Archive" "application/x-shar" '(shar) "Wikipedia: Shell Archie") +(addMimeType "Silicon Graphics RGB Bitmap" "image/x-rgb" '(rgb) "RGB Image Format") +(addMimeType "SimpleAnimeLite Player" "application/vnd.epson.salt" '(slt) "IANA: SimpleAnimeLite Player") +(addMimeType "Simply Accounting" "application/vnd.accpac.simply.aso" '(aso) "IANA: Simply Accounting") +(addMimeType "Simply Accounting - Data Import" "application/vnd.accpac.simply.imp" '(imp) "IANA: Simply Accounting") +(addMimeType "SimTech MindMapper" "application/vnd.simtech-mindmapper" '(twd) "IANA: SimTech MindMapper") +(addMimeType "Sixth Floor Media - CommonSpace" "application/vnd.commonspace" '(csp) "IANA: CommonSpace") +(addMimeType "SMAF Audio" "application/vnd.yamaha.smaf-audio" '(saf) "IANA: SMAF Audio") +(addMimeType "SMAF File" "application/vnd.smaf" '(mmf) "IANA: SMAF File") +(addMimeType "SMAF Phrase" "application/vnd.yamaha.smaf-phrase" '(spf) "IANA: SMAF Phrase") +(addMimeType "SMART Technologies Apps" "application/vnd.smart.teacher" '(teacher) "IANA: SMART Technologies Apps") +(addMimeType "SourceView Document" "application/vnd.svd" '(svd) "IANA: SourceView Document") +(addMimeType "SPARQL - Query" "application/sparql-query" '(rq) "W3C SPARQL") +(addMimeType "SPARQL - Results" "application/sparql-results+xml" '(srx) "W3C SPARQL") +(addMimeType "Speech Recognition Grammar Specification" "application/srgs" '(gram) "W3C Speech Grammar") +(addMimeType "Speech Recognition Grammar Specification - XML" "application/srgs+xml" '(grxml) "W3C Speech Grammar") +(addMimeType "Speech Synthesis Markup Language" "application/ssml+xml" '(ssml) "W3C Speech Synthesis") +(addMimeType "SSEYO Koan Play File" "application/vnd.koan" '(skp) "IANA: SSEYO Koan Play File") +(addMimeType "Standard Generalized Markup Language (SGML)" "text/sgml" '(sgml) "Wikipedia: SGML") +(addMimeType "StarOffice - Calc" "application/vnd.stardivision.calc" '(sdc) "") +(addMimeType "StarOffice - Draw" "application/vnd.stardivision.draw" '(sda) "") +(addMimeType "StarOffice - Impress" "application/vnd.stardivision.impress" '(sdd) "") +(addMimeType "StarOffice - Math" "application/vnd.stardivision.math" '(smf) "") +(addMimeType "StarOffice - Writer" "application/vnd.stardivision.writer" '(sdw) "") +(addMimeType "StarOffice - Writer (Global)" "application/vnd.stardivision.writer-global" '(sgl) "") +(addMimeType "StepMania" "application/vnd.stepmania.stepchart" '(sm) "IANA: StepMania") +(addMimeType "Stuffit Archive" "application/x-stuffit" '(sit) "Wikipedia: Stuffit") +(addMimeType "Stuffit Archive" "application/x-stuffitx" '(sitx) "Wikipedia: Stuffit") +(addMimeType "SudokuMagic" "application/vnd.solent.sdkm+xml" '(sdkm) "IANA: SudokuMagic") +(addMimeType "Sugar Linux Application Bundle" "application/vnd.olpc-sugar" '(xo) "IANA: Sugar Linux App Bundle") +(addMimeType "Sun Audio - Au file format" "audio/basic" '(au) "Wikipedia: Sun audio") +(addMimeType "SundaHus WQ" "application/vnd.wqd" '(wqd) "IANA: SundaHus WQ") +(addMimeType "Symbian Install Package" "application/vnd.symbian.install" '(sis) "IANA: Symbian Install") +(addMimeType "Synchronized Multimedia Integration Language" "application/smil+xml" '(smi) "RFC 4536") +(addMimeType "SyncML" "application/vnd.syncml+xml" '(xsm) "IANA: SyncML") +(addMimeType "SyncML - Device Management" "application/vnd.syncml.dm+wbxml" '(bdm) "IANA: SyncML") +(addMimeType "SyncML - Device Management" "application/vnd.syncml.dm+xml" '(xdm) "IANA: SyncML") +(addMimeType "System V Release 4 CPIO Archive" "application/x-sv4cpio" '(sv4cpio) "Wikipedia: pax") +(addMimeType "System V Release 4 CPIO Checksum Data" "application/x-sv4crc" '(sv4crc) "Wikipedia: pax") +(addMimeType "Systems Biology Markup Language" "application/sbml+xml" '(sbml) "RFC 3823") +(addMimeType "Tab Seperated Values" "text/tab-separated-values" '(tsv) "Wikipedia: TSV") +(addMimeType "Tagged Image File Format" "image/tiff" '(tiff) "Wikipedia: TIFF") +(addMimeType "Tao Intent" "application/vnd.tao.intent-module-archive" '(tao) "IANA: Tao Intent") +(addMimeType "Tar File (Tape Archive)" "application/x-tar" '(tar) "Wikipedia: Tar") +(addMimeType "Tcl Script" "application/x-tcl" '(tcl) "Wikipedia: Tcl") +(addMimeType "TeX" "application/x-tex" '(tex) "Wikipedia: TeX") +(addMimeType "TeX Font Metric" "application/x-tex-tfm" '(tfm) "Wikipedia: TeX Font Metric") +(addMimeType "Text Encoding and Interchange" "application/tei+xml" '(tei) "RFC 6129") +(addMimeType "Text File" "text/plain" '(txt) "Wikipedia: Text File") +(addMimeType "TIBCO Spotfire" "application/vnd.spotfire.dxp" '(dxp) "IANA: TIBCO Spotfire") +(addMimeType "TIBCO Spotfire" "application/vnd.spotfire.sfs" '(sfs) "IANA: TIBCO Spotfire") +(addMimeType "Time Stamped Data Envelope" "application/timestamped-data" '(tsd) "RFC 5955") +(addMimeType "TRI Systems Config" "application/vnd.trid.tpt" '(tpt) "IANA: TRI Systems") +(addMimeType "Triscape Map Explorer" "application/vnd.triscape.mxs" '(mxs) "IANA: Triscape Map Explorer") +(addMimeType "troff" "text/troff" '(t) "Wikipedia: troff") +(addMimeType "True BASIC" "application/vnd.trueapp" '(tra) "IANA: True BASIC") +(addMimeType "TrueType Font" "application/x-font-ttf" '(ttf) "Wikipedia: TrueType") +(addMimeType "Turtle (Terse RDF Triple Language)" "text/turtle" '(ttl) "Wikipedia: Turtle") +(addMimeType "UMAJIN" "application/vnd.umajin" '(umj) "IANA: UMAJIN") +(addMimeType "Unique Object Markup Language" "application/vnd.uoml+xml" '(uoml) "IANA: UOML") +(addMimeType "Unity 3d" "application/vnd.unity" '(unityweb) "IANA: Unity 3d") +(addMimeType "Universal Forms Description Language" "application/vnd.ufdl" '(ufd) "IANA: Universal Forms Description Language") +(addMimeType "URI Resolution Services" "text/uri-list" '(uri) "RFC 2483") +(addMimeType "User Interface Quartz - Theme (Symbian)" "application/vnd.uiq.theme" '(utz) "IANA: User Interface Quartz") +(addMimeType "Ustar (Uniform Standard Tape Archive)" "application/x-ustar" '(ustar) "Wikipedia: Ustar") +(addMimeType "UUEncode" "text/x-uuencode" '(uu) "Wikipedia: UUEncode") +(addMimeType "vCalendar" "text/x-vcalendar" '(vcs) "Wikipedia: vCalendar") +(addMimeType "vCard" "text/x-vcard" '(vcf) "Wikipedia: vCard") +(addMimeType "Video CD" "application/x-cdlink" '(vcd) "Wikipedia: Video CD") +(addMimeType "Viewport+" "application/vnd.vsf" '(vsf) "IANA: Viewport+") +(addMimeType "Virtual Reality Modeling Language" "model/vrml" '(wrl) "Wikipedia: VRML") +(addMimeType "VirtualCatalog" "application/vnd.vcx" '(vcx) "IANA: VirtualCatalog") +(addMimeType "Virtue MTS" "model/vnd.mts" '(mts) "IANA: MTS") +(addMimeType "Virtue VTU" "model/vnd.vtu" '(vtu) "IANA: VTU") +(addMimeType "Visionary" "application/vnd.visionary" '(vis) "IANA: Visionary") +(addMimeType "Vivo" "video/vnd.vivo" '(viv) "IANA: Vivo") +(addMimeType "Voice Browser Call Control" "application/ccxml+xml," '(ccxml) "Voice Browser Call Control: CCXML Version 1.0") +(addMimeType "VoiceXML" "application/voicexml+xml" '(vxml) "RFC 4267") +(addMimeType "WAIS Source" "application/x-wais-source" '(src) "YoLinux") +(addMimeType "WAP Binary XML (WBXML)" "application/vnd.wap.wbxml" '(wbxml) "IANA: WBXML") +(addMimeType "WAP Bitamp (WBMP)" "image/vnd.wap.wbmp" '(wbmp) "IANA: WBMP") +(addMimeType "Waveform Audio File Format (WAV)" "audio/x-wav" '(wav) "Wikipedia: WAV") +(addMimeType "Web Distributed Authoring and Versioning" "application/davmount+xml" '(davmount) "RFC 4918") +(addMimeType "Web Open Font Format" "application/x-font-woff" '(woff) "Wikipedia: Web Open Font Format") +(addMimeType "Web Services Policy" "application/wspolicy+xml" '(wspolicy) "W3C Web Services Policy") +(addMimeType "WebP Image" "image/webp" '(webp) "Wikipedia: WebP") +(addMimeType "WebTurbo" "application/vnd.webturbo" '(wtb) "IANA: WebTurbo") +(addMimeType "Widget Packaging and XML Configuration" "application/widget" '(wgt) "W3C Widget Packaging and XML Configuration") +(addMimeType "WinHelp" "application/winhlp" '(hlp) "Wikipedia: WinHelp") +(addMimeType "Wireless Markup Language (WML)" "text/vnd.wap.wml" '(wml) "Wikipedia: WML") +(addMimeType "Wireless Markup Language Script (WMLScript)" "text/vnd.wap.wmlscript" '(wmls) "Wikipedia: WMLScript") +(addMimeType "WMLScript" "application/vnd.wap.wmlscriptc" '(wmlsc) "IANA: WMLScript") +(addMimeType "Wordperfect" "application/vnd.wordperfect" '(wpd) "IANA: Wordperfect") +(addMimeType "Worldtalk" "application/vnd.wt.stf" '(stf) "IANA: Worldtalk") +(addMimeType "WSDL - Web Services Description Language" "application/wsdl+xml" '(wsdl) "W3C Web Service Description Language") +(addMimeType "X BitMap" "image/x-xbitmap" '(xbm) "Wikipedia: X BitMap") +(addMimeType "X PixMap" "image/x-xpixmap" '(xpm) "Wikipedia: X PixMap") +(addMimeType "X Window Dump" "image/x-xwindowdump" '(xwd) "Wikipedia: X Window Dump") +(addMimeType "X.509 Certificate" "application/x-x509-ca-cert" '(der) "Wikipedia: X.509") +(addMimeType "Xfig" "application/x-xfig" '(fig) "Wikipedia: Xfig") +(addMimeType "XHTML - The Extensible HyperText Markup Language" "application/xhtml+xml" '(xhtml) "W3C XHTML") +(addMimeType "XML - Extensible Markup Language" "application/xml" '(xml) "W3C XML") +(addMimeType "XML Configuration Access Protocol - XCAP Diff" "application/xcap-diff+xml" '(xdf) "Wikipedia: XCAP") +(addMimeType "XML Encryption Syntax and Processing" "application/xenc+xml" '(xenc) "W3C XML Encryption Syntax and Processing") +(addMimeType "XML Patch Framework" "application/patch-ops-error+xml" '(xer) "RFC 5261") +(addMimeType "XML Resource Lists" "application/resource-lists+xml" '(rl) "RFC 4826") +(addMimeType "XML Resource Lists" "application/rls-services+xml" '(rs) "RFC 4826") +(addMimeType "XML Resource Lists Diff" "application/resource-lists-diff+xml" '(rld) "RFC 4826") +(addMimeType "XML Transformations" "application/xslt+xml" '(xslt) "W3C XSLT") +(addMimeType "XML-Binary Optimized Packaging" "application/xop+xml" '(xop) "W3C XOP") +(addMimeType "XPInstall - Mozilla" "application/x-xpinstall" '(xpi) "Wikipedia: XPI") +(addMimeType "XSPF - XML Shareable Playlist Format" "application/xspf+xml" '(xspf) "XML Shareable Playlist Format") +(addMimeType "XUL - XML User Interface Language" "application/vnd.mozilla.xul+xml" '(xul) "IANA: XUL") +(addMimeType "XYZ File Format" "chemical/x-xyz" '(xyz) "Wikipedia: XYZ File Format") +(addMimeType "YAML Ain't Markup Language / Yet Another Markup Language" "text/yaml" '(yaml) "YAML: YAML Ain't Markup Language") +(addMimeType "YANG Data Modeling Language" "application/yang" '(yang) "Wikipedia: YANG") +(addMimeType "YIN (YANG - XML)" "application/yin+xml" '(yin) "Wikipedia: YANG") +(addMimeType "Z.U.L. Geometry" "application/vnd.zul" '(zir) "IANA: Z.U.L.") +(addMimeType "Zip Archive" "application/zip" '(zip) "Wikipedia: Zip") +(addMimeType "ZVUE Media Manager" "application/vnd.handheld-entertainment+xml" '(zmm) "IANA: ZVUE Media Manager") +(addMimeType "Zzazz Deck" "application/vnd.zzazz.deck+xml" '(zaz) "IANA: Zzazz") + +;; Common Apache mappings missing from the original table. +(for-each (λ (extension) + (hash-set! mimetypes extension "audio/mpeg")) + '(mpga mp2 mp2a mp3 m2a m3a)) +(for-each (λ (extension) + (hash-set! mimetypes extension "audio/ogg")) + '(oga ogg spx opus)) +(for-each (λ (extension) + (hash-set! mimetypes extension "audio/mp4")) + '(m4a mp4a)) +(for-each (λ (extension) + (hash-set! mimetypes extension "video/mp4")) + '(mp4 mp4v mpg4)) +(hash-set! mimetypes 'mp4s "application/mp4") +(hash-set! mimetypes 'htm "text/html") +(hash-set! mimetypes 'jpe "image/jpeg") diff --git a/private/mime-types.rkt b/private/mime-types.rkt new file mode 100644 index 0000000..9c0886e --- /dev/null +++ b/private/mime-types.rkt @@ -0,0 +1,63 @@ +#lang racket/base + +(require racket/string) + +(provide extension-symbol + failure-interval + parse-mime-types + success-interval + update-due?/times + updates-enabled? + valid-apache-types?) + +(define success-interval (* 7 24 60 60)) +(define failure-interval (* 24 60 60)) +(define updates-enabled? (make-parameter #t)) + +(define (parse-mime-types in) + (for/fold ([types (hash)]) + ([line (in-lines in)]) + (let ([fields (string-split (string-trim line))]) + (cond + [(or (null? fields) + (string-prefix? (car fields) "#") + (null? (cdr fields))) + types] + [else + (let ([mime-type (car fields)]) + (unless (regexp-match? #px"^[^/[:space:]]+/[^[:space:]]+$" + mime-type) + (error 'parse-mime-types + "invalid MIME type: ~a" + mime-type)) + (for/fold ([result types]) + ([extension (in-list (cdr fields))]) + (let ([key (string->symbol (string-downcase extension))]) + (hash-set result key mime-type))))])))) + +(define (valid-apache-types? types) + (and (> (hash-count types) 500) + (equal? (hash-ref types 'html #f) "text/html") + (equal? (hash-ref types 'mp3 #f) "audio/mpeg") + (equal? (hash-ref types 'mp4 #f) "video/mp4") + (equal? (hash-ref types 'png #f) "image/png"))) + +(define (extension-symbol ext) + (let* ([value (cond + [(path? ext) (path->string ext)] + [(symbol? ext) (symbol->string ext)] + [else ext])] + [name (car (reverse (regexp-split #px"[\\\\/]" value)))] + [parts (regexp-match #px"(?:^|\\.)([^.]*)$" name)] + [extension (if parts (cadr parts) name)]) + (string->symbol (string-downcase extension)))) + +(define (update-due?/times now cache-time failure-time) + (cond + [(and cache-time + (< (- now cache-time) success-interval)) + #f] + [(and failure-time + (< (- now failure-time) failure-interval)) + #f] + [else #t])) diff --git a/scrbl/racket-mimetypes.scrbl b/scrbl/racket-mimetypes.scrbl index 0be4959..ad1d9f0 100644 --- a/scrbl/racket-mimetypes.scrbl +++ b/scrbl/racket-mimetypes.scrbl @@ -4,76 +4,46 @@ racket/contract racket-mimetypes)) -@title{MIME Types} +@title{racket-mimetypes} @author[@author+email["Hans Dijkema" "hans@dijkewijk.nl"]] @defmodule[racket-mimetypes] -The @racketmodname[racket-mimetypes] library maps file extensions to MIME type -strings. It uses a built-in table and does not inspect the contents of a file. +The @racketmodname[racket-mimetypes] library maps file extensions to MIME +types. It uses a built-in fallback table and keeps a validated copy of +Apache's @tt{mime.types} in Racket's user cache directory. +The cache file is stored below @racket[(find-system-path 'cache-dir)] in the +@tt{racket-mimetypes} directory. + +The first lookup that finds an expired cache starts a background update. +Lookups never wait for the download. After a successful update, the next +check is performed after seven days. After a failed update, the next attempt +is made after one day. Both outcomes are written as debug messages through +the @racketmodname[simple-log] logging system. + +The downloaded file is parsed and validated before it replaces the cache. +If downloading, parsing, validation, or replacement fails, the existing +cache remains available. If Apache assigns an extension more than once, the +last assignment in the file is used. @defproc[(mimetype-for-ext - [ext (or/c path-string? symbol?)] - [#:default default string? "application/octet-stream"] - [#:context context - (or/c #f - 'application - 'audio - 'example - 'font - 'haptics - 'image - 'message - 'model - 'multipart - 'text - 'video) - #f]) + [ext (or/c path? string? symbol?)] + [#:default default string? "application/octet-stream"]) string?]{ -Returns the MIME type associated with @racket[ext]. The argument can be an -extension, a path string, or a path. Symbols are accepted for extensions. +Returns the MIME type associated with @racket[ext], or @racket[default] when +the extension is unknown. -The following forms are accepted: +@racket[ext] can be an extension, a file name, or a path. Strings and symbols +can contain an extension with or without a leading dot. For a file name or +path, the text after the last dot in the last path component is used. +Matching is case-insensitive. -@itemlist[ - #:style 'compact - @item{A string containing a bare extension, such as @racket["mp3"] or - @racket[".MP3"].} - @item{A symbol containing a bare extension, such as @racket['mp3].} - @item{A string containing a file name or path, such as - @racket["track.flac"], @racket["/music/track.flac"], or - @racket["c:\\music\\track.flac"].} - @item{A Racket path value, such as - @racket[(string->path "/music/track.flac")].} -] +The procedure does not parse URLs and does not inspect file contents. -The final path component is used and the text following its last dot is taken -as the extension. A leading dot on a bare extension is therefore ignored. -Both slash and backslash are recognized as path separators, independent of the -current operating system. The resulting extension is converted to lowercase -and stored internally as a symbol. - -A string without a dot is treated as a bare extension. Consequently, -@racket["README"] is looked up as the extension @racket['readme]. A name ending -in a dot has no recognized extension and normally produces @racket[default]. - -The procedure accepts file-system paths, not URLs. Query strings and fragments -are not removed. The contents of a file are not inspected. - -An extension can have more than one MIME type. Without @racket[context], the -first and most common type is returned. A context selects a MIME type whose -top-level type matches the context. For example, -@racket[(mimetype-for-ext "track.mp4")] returns @racket["video/mp4"], while -@racket[(mimetype-for-ext "track.mp4" #:context 'audio)] returns -@racket["audio/mp4"]. - -If the extension is unknown, or no type matches the supplied context, -@racket[default] is returned. - -For example, @racket[(mimetype-for-ext "MP3")] returns -@racket["audio/mpeg"], @racket[(mimetype-for-ext ".flac")] returns -@racket["audio/flac"], and -@racket[(mimetype-for-ext "unknown" #:default "text/plain")] -returns @racket["text/plain"]. -} +@racketblock[ + (mimetype-for-ext 'mp3) + (mimetype-for-ext ".PNG") + (mimetype-for-ext "music/track.opus") + (mimetype-for-ext "unknown" #:default "unknown/type") +]} diff --git a/tests/mimetypes.rkt b/tests/mimetypes.rkt index 9f356e7..c1170fe 100644 --- a/tests/mimetypes.rkt +++ b/tests/mimetypes.rkt @@ -1,39 +1,52 @@ #lang racket/base (require rackunit - "../main.rkt") + racket/port + "../mimetypes.rkt" + "../private/mime-types.rkt") -(check-equal? (mimetype-for-ext 'html) "text/html") -(check-equal? (mimetype-for-ext "MP3") "audio/mpeg") -(check-equal? (mimetype-for-ext ".FLAC") "audio/flac") -(check-equal? (mimetype-for-ext "c:/music/track.MP4") "video/mp4") -(check-equal? (mimetype-for-ext "c:\\music\\track.MP4") "video/mp4") -(check-equal? (mimetype-for-ext (string->path "/music/track.opus")) "audio/ogg") +(define sample-types + (string-append + "# comment\n" + "text/plain txt text\n" + "audio/mpeg mp3\n" + "# application/example\n")) -(check-equal? (mimetype-for-ext "track.mp4" #:context 'video) "video/mp4") -(check-equal? (mimetype-for-ext "track.mp4" #:context 'audio) "audio/mp4") -(check-equal? (mimetype-for-ext "track.mp4" #:context 'application) "application/mp4") -(check-equal? (mimetype-for-ext "track.mp4" #:context 'image) - "application/octet-stream") +(define parsed + (call-with-input-string sample-types parse-mime-types)) -(check-equal? (mimetype-for-ext "unknown") "application/octet-stream") -(check-equal? (mimetype-for-ext "unknown" #:default "text/plain") "text/plain") +(check-equal? (hash-ref parsed 'txt) "text/plain") +(check-equal? (hash-ref parsed 'text) "text/plain") +(check-equal? (hash-ref parsed 'mp3) "audio/mpeg") -(check-equal? (mimetype-for-ext "xml") "application/xml") -(check-equal? (mimetype-for-ext "m4a") "audio/mp4") -(check-equal? (mimetype-for-ext "mka") "audio/matroska") -(check-equal? (mimetype-for-ext "mkv") "video/matroska") -(check-equal? (mimetype-for-ext "ogg") "audio/ogg") -(check-equal? (mimetype-for-ext "md") "text/markdown") -(check-equal? (mimetype-for-ext "js") "text/javascript") -(check-equal? (mimetype-for-ext "woff2") "font/woff2") -(check-equal? (mimetype-for-ext "heic") "image/heic") -(check-equal? (mimetype-for-ext "jxl") "image/jxl") -(check-equal? (mimetype-for-ext "zst") "application/zstd") -(check-equal? (mimetype-for-ext "mov") "video/quicktime") -(check-equal? (mimetype-for-ext "tif") "image/tiff") -(check-equal? (mimetype-for-ext "htm") "text/html") -(check-equal? (mimetype-for-ext "m2ts") "video/mp2t") -(check-equal? (mimetype-for-ext "123") "application/vnd.lotus-1-2-3") -(check-equal? (mimetype-for-ext "java") "text/x-java-source") -(check-equal? (mimetype-for-ext "ccxml") "application/ccxml+xml") +(define duplicate-extension + (call-with-input-string + (string-append + "application/x-ms-wmz wmz\n" + "application/x-msmetafile wmf wmz emf emz\n") + parse-mime-types)) + +(check-equal? (hash-ref duplicate-extension 'wmz) + "application/x-msmetafile") + +(parameterize ([updates-enabled? #f]) + (check-equal? (mimetype-for-ext 'MP3) "audio/mpeg") + (check-equal? (mimetype-for-ext ".MP3") "audio/mpeg") + (check-equal? (mimetype-for-ext "track.MP3") "audio/mpeg") + (check-equal? (mimetype-for-ext "/music/track.MP3") "audio/mpeg") + (check-equal? (mimetype-for-ext (string->path "track.MP3")) + "audio/mpeg") + (check-equal? (mimetype-for-ext "track.opus") "audio/ogg") + (check-equal? (mimetype-for-ext "movie.mp4") "video/mp4") + (check-equal? (mimetype-for-ext "unknown" + #:default "unknown/type") + "unknown/type")) + +(check-false + (update-due?/times 1000 (- 1000 success-interval -1) #f)) +(check-true + (update-due?/times 1000 (- 1000 success-interval 1) #f)) +(check-false + (update-due?/times 1000 #f (- 1000 failure-interval -1))) +(check-true + (update-due?/times 1000 #f (- 1000 failure-interval 1)))