mimetypes.nim 67 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942
  1. #
  2. #
  3. # Nim's Runtime Library
  4. # (c) Copyright 2012 Dominik Picheta
  5. #
  6. # See the file "copying.txt", included in this
  7. # distribution, for details about the copyright.
  8. #
  9. ## This module implements a mimetypes database
  10. runnableExamples:
  11. var m = newMimetypes()
  12. doAssert m.getMimetype("mp4") == "video/mp4"
  13. doAssert m.getExt("text/html") == "html"
  14. ## Values can be uppercase too.
  15. doAssert m.getMimetype("MP4") == "video/mp4"
  16. doAssert m.getExt("TEXT/HTML") == "html"
  17. ## If values are invalid then `default` is returned.
  18. doAssert m.getMimetype("INVALID") == "text/plain"
  19. doAssert m.getExt("INVALID/NONEXISTENT") == "txt"
  20. doAssert m.getMimetype("") == "text/plain"
  21. doAssert m.getExt("") == "txt"
  22. ## Register new Mimetypes.
  23. m.register(ext = "fakext", mimetype = "text/fakelang")
  24. doAssert m.getMimetype("fakext") == "text/fakelang"
  25. doAssert m.getMimetype("FaKeXT") == "text/fakelang"
  26. import tables
  27. from strutils import startsWith, toLowerAscii, strip
  28. when defined(nimPreviewSlimSystem):
  29. import std/assertions
  30. type
  31. MimeDB* = object
  32. mimes: OrderedTable[string, string]
  33. const mimes* = {
  34. "123": "application/vnd.lotus-1-2-3",
  35. "1km": "application/vnd.1000minds.decision-model+xml",
  36. "323": "text/h323",
  37. "3dm": "text/vnd.in3d.3dml",
  38. "3dmf": "x-world/x-3dmf",
  39. "3dml": "text/vnd.in3d.3dml",
  40. "3ds": "image/x-3ds",
  41. "3g2": "video/3gpp2",
  42. "3gp": "video/3gpp",
  43. "3gpp": "audio/3gpp",
  44. "3gpp2": "video/3gpp2",
  45. "3mf": "application/vnd.ms-3mfdocument",
  46. "669": "audio/x-mod",
  47. "726": "audio/32kadpcm",
  48. "7z": "application/x-7z-compressed",
  49. "a": "text/plain",
  50. "a2l": "application/a2l",
  51. "aa3": "audio/atrac3",
  52. "aab": "application/x-authorware-bin",
  53. "aac": "audio/x-aac",
  54. "aal": "audio/atrac-advanced-lossless",
  55. "aam": "application/x-authorware-map",
  56. "aas": "application/x-authorware-seg",
  57. "abc": "text/vnd.abc",
  58. "abw": "application/x-abiword",
  59. "ac": "application/pkix-attr-cert",
  60. "ac3": "audio/ac3",
  61. "acc": "application/vnd.americandynamics.acc",
  62. "ace": "application/x-ace-compressed",
  63. "acn": "audio/asc",
  64. "acu": "application/vnd.acucobol",
  65. "acutc": "application/vnd.acucorp",
  66. "acx": "application/internet-property-stream",
  67. "adp": "audio/adpcm",
  68. "aep": "application/vnd.audiograph",
  69. "afl": "video/animaflex",
  70. "afm": "application/x-font-type1",
  71. "afp": "application/vnd.ibm.modcap",
  72. "ahead": "application/vnd.ahead.space",
  73. "ai": "application/postscript",
  74. "aif": "audio/x-aiff",
  75. "aifc": "audio/x-aiff",
  76. "aiff": "audio/x-aiff",
  77. "aim": "application/x-aim",
  78. "aip": "text/x-audiosoft-intra",
  79. "air": "application/vnd.adobe.air-application-installer-package+zip",
  80. "ait": "application/vnd.dvb.ait",
  81. "alc": "chemical/x-alchemy",
  82. "ami": "application/vnd.amiga.ami",
  83. "aml": "application/aml",
  84. "amr": "audio/amr",
  85. "ani": "application/x-navi-animation",
  86. "anx": "application/x-annodex",
  87. "aos": "application/x-nokia-9000-communicator-add-on-software",
  88. "apinotes": "text/apinotes",
  89. "apk": "application/vnd.android.package-archive",
  90. "apkg": "application/vnd.anki",
  91. "apng": "image/apng",
  92. "appcache": "text/cache-manifest",
  93. "appimage": "application/appimage",
  94. "application": "application/x-ms-application",
  95. "apr": "application/vnd.lotus-approach",
  96. "aps": "application/mime",
  97. "apxml": "application/auth-policy+xml",
  98. "arc": "application/x-freearc",
  99. "arj": "application/x-arj",
  100. "art": "message/rfc822",
  101. "asar": "binary/asar",
  102. "asc": "text/plain",
  103. "ascii": "text/vnd.ascii-art",
  104. "asf": "application/vnd.ms-asf",
  105. "asice": "application/vnd.etsi.asic-e+zip",
  106. "asics": "application/vnd.etsi.asic-s+zip",
  107. "asm": "text/x-asm",
  108. "asn": "chemical/x-ncbi-asn1-spec",
  109. "aso": "application/vnd.accpac.simply.aso",
  110. "asp": "text/asp",
  111. "asr": "video/x-ms-asf",
  112. "asx": "video/x-ms-asf",
  113. "at3": "audio/atrac3",
  114. "atc": "application/vnd.acucorp",
  115. "atf": "application/atf",
  116. "atfx": "application/atfx",
  117. "atom": "application/atom+xml",
  118. "atomcat": "application/atomcat+xml",
  119. "atomdeleted": "application/atomdeleted+xml",
  120. "atomsrv": "application/atomserv+xml",
  121. "atomsvc": "application/atomsvc+xml",
  122. "atx": "application/vnd.antix.game-component",
  123. "atxml": "application/atxml",
  124. "au": "audio/basic",
  125. "auc": "application/tamp-apex-update-confirm",
  126. "avi": "video/x-msvideo",
  127. "avs": "video/avs-video",
  128. "aw": "application/applixware",
  129. "awb": "audio/amr-wb",
  130. "axa": "audio/x-annodex",
  131. "axs": "application/olescript",
  132. "axv": "video/x-annodex",
  133. "azf": "application/vnd.airzip.filesecure.azf",
  134. "azs": "application/vnd.airzip.filesecure.azs",
  135. "azv": "image/vnd.airzip.accelerator.azv",
  136. "azw": "application/vnd.amazon.ebook",
  137. "azw3": "application/vnd.amazon.mobi8-ebook",
  138. "b": "chemical/x-molconn-Z",
  139. "bak": "application/x-trash",
  140. "bar": "application/vnd.qualcomm.brew-app-res",
  141. "bas": "text/plain",
  142. "bash": "text/shell",
  143. "bat": "application/x-msdos-program",
  144. "bcpio": "application/x-bcpio",
  145. "bdf": "application/x-font-bdf",
  146. "bdm": "application/vnd.syncml.dm+wbxml",
  147. "bdoc": "application/bdoc",
  148. "bed": "application/vnd.realvnc.bed",
  149. "bh2": "application/vnd.fujitsu.oasysprs",
  150. "bib": "text/x-bibtex",
  151. "bik": "video/vnd.radgamettools.bink",
  152. "bin": "application/octet-stream",
  153. "bk2": "video/vnd.radgamettools.bink",
  154. "bkm": "application/vnd.nervana",
  155. "blb": "application/x-blorb",
  156. "blend": "binary/blender",
  157. "blorb": "application/x-blorb",
  158. "bm": "image/bmp",
  159. "bmed": "multipart/vnd.bint.med-plus",
  160. "bmi": "application/vnd.bmi",
  161. "bmml": "application/vnd.balsamiq.bmml+xml",
  162. "bmp": "image/bmp",
  163. "bmpr": "application/vnd.balsamiq.bmpr",
  164. "boo": "application/book",
  165. "book": "application/book",
  166. "box": "application/vnd.previewsystems.box",
  167. "boz": "application/x-bzip2",
  168. "bpd": "application/vnd.hbci",
  169. "bpk": "application/octet-stream",
  170. "brf": "text/plain",
  171. "bsd": "chemical/x-crossfire",
  172. "bsh": "application/x-bsh",
  173. "bsp": "model/vnd.valve.source.compiled-map",
  174. "btf": "image/prs.btif",
  175. "btif": "image/prs.btif",
  176. "bz": "application/x-bzip",
  177. "bz2": "application/x-bzip2",
  178. "c": "text/x-csrc",
  179. "c++": "text/x-c++src",
  180. "c11amc": "application/vnd.cluetrust.cartomobile-config",
  181. "c11amz": "application/vnd.cluetrust.cartomobile-config-pkg",
  182. "c3d": "chemical/x-chem3d",
  183. "c3ex": "application/cccex",
  184. "c4d": "application/vnd.clonk.c4group",
  185. "c4f": "application/vnd.clonk.c4group",
  186. "c4g": "application/vnd.clonk.c4group",
  187. "c4p": "application/vnd.clonk.c4group",
  188. "c4u": "application/vnd.clonk.c4group",
  189. "cab": "application/vnd.ms-cab-compressed",
  190. "cac": "chemical/x-cache",
  191. "cache": "application/x-cache",
  192. "caf": "audio/x-caf",
  193. "cap": "application/vnd.tcpdump.pcap",
  194. "car": "application/vnd.curl.car",
  195. "cascii": "chemical/x-cactvs-binary",
  196. "cat": "application/vnd.ms-pki.seccat",
  197. "cb7": "application/x-cbr",
  198. "cba": "application/x-cbr",
  199. "cbin": "chemical/x-cactvs-binary",
  200. "cbor": "application/cbor",
  201. "cbr": "application/x-cbr",
  202. "cbt": "application/x-cbr",
  203. "cbz": "application/vnd.comicbook+zip",
  204. "cc": "text/plain",
  205. "ccad": "application/clariscad",
  206. "ccc": "text/vnd.net2phone.commcenter.command",
  207. "ccmp": "application/ccmp+xml",
  208. "cco": "application/x-cocoa",
  209. "cct": "application/x-director",
  210. "ccxml": "application/ccxml+xml",
  211. "cda": "application/x-cdf",
  212. "cdbcmsg": "application/vnd.contact.cmsg",
  213. "cdf": "application/x-netcdf",
  214. "cdfx": "application/cdfx+xml",
  215. "cdkey": "application/vnd.mediastation.cdkey",
  216. "cdmia": "application/cdmi-capability",
  217. "cdmic": "application/cdmi-container",
  218. "cdmid": "application/cdmi-domain",
  219. "cdmio": "application/cdmi-object",
  220. "cdmiq": "application/cdmi-queue",
  221. "cdr": "image/x-coreldraw",
  222. "cdt": "image/x-coreldrawtemplate",
  223. "cdx": "chemical/x-cdx",
  224. "cdxml": "application/vnd.chemdraw+xml",
  225. "cdy": "application/vnd.cinderella",
  226. "cea": "application/cea",
  227. "cef": "chemical/x-cxf",
  228. "cellml": "application/cellml+xml",
  229. "cer": "application/pkix-cert",
  230. "cfg": "text/cfg",
  231. "cfs": "application/x-cfs-compressed",
  232. "cgm": "image/cgm",
  233. "cha": "application/x-chat",
  234. "chat": "application/x-chat",
  235. "chm": "application/vnd.ms-htmlhelp",
  236. "chrt": "application/vnd.kde.kchart",
  237. "cif": "chemical/x-cif",
  238. "cii": "application/vnd.anser-web-certificate-issue-initiation",
  239. "cil": "application/vnd.ms-artgalry",
  240. "cl": "application/simple-filter+xml",
  241. "cla": "application/vnd.claymore",
  242. "class": "application/java-vm",
  243. "clkk": "application/vnd.crick.clicker.keyboard",
  244. "clkp": "application/vnd.crick.clicker.palette",
  245. "clkt": "application/vnd.crick.clicker.template",
  246. "clkw": "application/vnd.crick.clicker.wordbank",
  247. "clkx": "application/vnd.crick.clicker",
  248. "clp": "application/x-msclip",
  249. "cls": "text/x-tex",
  250. "clue": "application/clue_info+xml",
  251. "cmake": "text/cmake",
  252. "cmc": "application/vnd.cosmocaller",
  253. "cmdf": "chemical/x-cmdf",
  254. "cml": "chemical/x-cml",
  255. "cmp": "application/vnd.yellowriver-custom-menu",
  256. "cmsc": "application/cms",
  257. "cmx": "image/x-cmx",
  258. "cnd": "text/jcr-cnd",
  259. "cnf": "text/cnf",
  260. "cod": "application/vnd.rim.cod",
  261. "coffee": "application/vnd.coffeescript",
  262. "com": "application/x-msdos-program",
  263. "conf": "text/plain",
  264. "copyright": "text/vnd.debian.copyright",
  265. "cpa": "chemical/x-compass",
  266. "cpio": "application/x-cpio",
  267. "cpkg": "application/vnd.xmpie.cpkg",
  268. "cpl": "application/cpl+xml",
  269. "cpp": "text/x-c++src",
  270. "cpt": "application/mac-compactpro",
  271. "cr2": "image/x-canon-cr2",
  272. "crd": "application/x-mscardfile",
  273. "crl": "application/pkix-crl",
  274. "crt": "application/x-x509-ca-cert",
  275. "crtr": "application/vnd.multiad.creator",
  276. "crw": "image/x-canon-crw",
  277. "crx": "application/x-chrome-extension",
  278. "cryptonote": "application/vnd.rig.cryptonote",
  279. "cs": "text/c#",
  280. "csf": "chemical/x-cache-csf",
  281. "csh": "application/x-csh",
  282. "csl": "application/vnd.citationstyles.style+xml",
  283. "csm": "chemical/x-csml",
  284. "csml": "chemical/x-csml",
  285. "cson": "text/cson",
  286. "csp": "application/vnd.commonspace",
  287. "csrattrs": "application/csrattrs",
  288. "css": "text/css",
  289. "cst": "application/vnd.commonspace",
  290. "csv": "text/csv",
  291. "csvs": "text/csv-schema",
  292. "ctab": "chemical/x-cactvs-binary",
  293. "ctx": "chemical/x-ctx",
  294. "cu": "application/cu-seeme",
  295. "cub": "chemical/x-gaussian-cube",
  296. "cuc": "application/tamp-community-update-confirm",
  297. "curl": "text/vnd.curl",
  298. "cw": "application/prs.cww",
  299. "cww": "application/prs.cww",
  300. "cxf": "chemical/x-cxf",
  301. "cxt": "application/x-director",
  302. "cxx": "text/plain",
  303. "d": "text/x-dsrc",
  304. "dae": "model/vnd.collada+xml",
  305. "daf": "application/vnd.mobius.daf",
  306. "dart": "application/vnd.dart",
  307. "dat": "application/x-ns-proxy-autoconfig",
  308. "dataless": "application/vnd.fdsn.seed",
  309. "davmount": "application/davmount+xml",
  310. "dbk": "application/docbook+xml",
  311. "dcd": "application/dcd",
  312. "dcf": "application/vnd.oma.drm.content",
  313. "dcm": "application/dicom",
  314. "dcr": "application/x-director",
  315. "dcurl": "text/vnd.curl.dcurl",
  316. "dd": "application/vnd.oma.dd+xml",
  317. "dd2": "application/vnd.oma.dd2+xml",
  318. "ddd": "application/vnd.fujixerox.ddd",
  319. "ddf": "application/vnd.syncml.dmddf+xml",
  320. "deb": "application/vnd.debian.binary-package",
  321. "deepv": "application/x-deepv",
  322. "def": "text/plain",
  323. "deploy": "application/octet-stream",
  324. "der": "application/x-x509-ca-cert",
  325. "dfac": "application/vnd.dreamfactory",
  326. "dgc": "application/x-dgc-compressed",
  327. "dib": "image/bmp",
  328. "dic": "text/x-c",
  329. "dif": "video/x-dv",
  330. "diff": "text/x-diff",
  331. "dii": "application/dii",
  332. "dim": "application/vnd.fastcopy-disk-image",
  333. "dir": "application/x-director",
  334. "dis": "application/vnd.mobius.dis",
  335. "disposition-notification": "message/disposition-notification",
  336. "dist": "application/vnd.apple.installer+xml",
  337. "distz": "application/vnd.apple.installer+xml",
  338. "dit": "application/dit",
  339. "djv": "image/vnd.djvu",
  340. "djvu": "image/vnd.djvu",
  341. "dl": "video/dl",
  342. "dll": "application/x-msdos-program",
  343. "dls": "audio/dls",
  344. "dm": "application/vnd.oma.drm.message",
  345. "dmg": "application/x-apple-diskimage",
  346. "dmp": "application/vnd.tcpdump.pcap",
  347. "dms": "text/vnd.dmclientscript",
  348. "dna": "application/vnd.dna",
  349. "doc": "application/msword",
  350. "docjson": "application/vnd.document+json",
  351. "docm": "application/vnd.ms-word.document.macroenabled.12",
  352. "docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
  353. "dor": "model/vnd.gdl",
  354. "dot": "text/vnd.graphviz",
  355. "dotm": "application/vnd.ms-word.template.macroenabled.12",
  356. "dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
  357. "dp": "application/vnd.osgi.dp",
  358. "dpg": "application/vnd.dpgraph",
  359. "dpgraph": "application/vnd.dpgraph",
  360. "dpkg": "application/vnd.xmpie.dpkg",
  361. "dr": "application/vnd.oma.drm.rights+xml",
  362. "dra": "audio/vnd.dra",
  363. "drc": "application/vnd.oma.drm.rights+wbxml",
  364. "drle": "image/dicom-rle",
  365. "drw": "application/drafting",
  366. "dsc": "text/prs.lines.tag",
  367. "dsm": "application/vnd.desmume.movie",
  368. "dssc": "application/dssc+der",
  369. "dtb": "application/x-dtbook+xml",
  370. "dtd": "application/xml-dtd",
  371. "dts": "audio/vnd.dts",
  372. "dtshd": "audio/vnd.dts.hd",
  373. "dump": "application/octet-stream",
  374. "dv": "video/x-dv",
  375. "dvb": "video/vnd.dvb.file",
  376. "dvc": "application/dvcs",
  377. "dvi": "application/x-dvi",
  378. "dwf": "model/vnd.dwf",
  379. "dwg": "image/vnd.dwg",
  380. "dx": "chemical/x-jcamp-dx",
  381. "dxf": "image/vnd.dxf",
  382. "dxp": "application/vnd.spotfire.dxp",
  383. "dxr": "application/x-director",
  384. "dzr": "application/vnd.dzr",
  385. "ear": "binary/zip",
  386. "ecelp4800": "audio/vnd.nuera.ecelp4800",
  387. "ecelp7470": "audio/vnd.nuera.ecelp7470",
  388. "ecelp9600": "audio/vnd.nuera.ecelp9600",
  389. "ecig": "application/vnd.evolv.ecig.settings",
  390. "ecigprofile": "application/vnd.evolv.ecig.profile",
  391. "ecigtheme": "application/vnd.evolv.ecig.theme",
  392. "ecma": "application/ecmascript",
  393. "edm": "application/vnd.novadigm.edm",
  394. "edx": "application/vnd.novadigm.edx",
  395. "efi": "application/efi",
  396. "efif": "application/vnd.picsel",
  397. "ei6": "application/vnd.pg.osasli",
  398. "ejs": "text/ejs",
  399. "el": "text/plain",
  400. "elc": "application/x-bytecode.elisp",
  401. "emb": "chemical/x-embl-dl-nucleotide",
  402. "embl": "chemical/x-embl-dl-nucleotide",
  403. "emf": "image/emf",
  404. "eml": "message/rfc822",
  405. "emm": "application/vnd.ibm.electronic-media",
  406. "emma": "application/emma+xml",
  407. "emotionml": "application/emotionml+xml",
  408. "emz": "application/x-msmetafile",
  409. "ent": "text/xml-external-parsed-entity",
  410. "entity": "application/vnd.nervana",
  411. "env": "application/x-envoy",
  412. "enw": "audio/evrcnw",
  413. "eol": "audio/vnd.digital-winds",
  414. "eot": "application/vnd.ms-fontobject",
  415. "ep": "application/vnd.bluetooth.ep.oob",
  416. "eps": "application/postscript",
  417. "eps2": "application/postscript",
  418. "eps3": "application/postscript",
  419. "epsf": "application/postscript",
  420. "epsi": "application/postscript",
  421. "epub": "application/epub+zip",
  422. "erb": "text/erb",
  423. "erf": "image/x-epson-erf",
  424. "es": "application/ecmascript",
  425. "es3": "application/vnd.eszigno3+xml",
  426. "esa": "application/vnd.osgi.subsystem",
  427. "escn": "text/godot",
  428. "esf": "application/vnd.epson.esf",
  429. "espass": "application/vnd.espass-espass+zip",
  430. "et3": "application/vnd.eszigno3+xml",
  431. "etx": "text/x-setext",
  432. "eva": "application/x-eva",
  433. "evb": "audio/evrcb",
  434. "evc": "audio/evrc",
  435. "evw": "audio/evrcwb",
  436. "evy": "application/x-envoy",
  437. "exe": "application/x-msdos-program",
  438. "exi": "application/exi",
  439. "exr": "image/aces",
  440. "ext": "application/vnd.novadigm.ext",
  441. "eyaml": "text/yaml",
  442. "ez": "application/andrew-inset",
  443. "ez2": "application/vnd.ezpix-album",
  444. "ez3": "application/vnd.ezpix-package",
  445. "f": "text/x-fortran",
  446. "f4v": "video/x-f4v",
  447. "f77": "text/x-fortran",
  448. "f90": "text/plain",
  449. "fb": "application/x-maker",
  450. "fbdoc": "application/x-maker",
  451. "fbs": "image/vnd.fastbidsheet",
  452. "fbx": "model/filmbox",
  453. "fcdt": "application/vnd.adobe.formscentral.fcdt",
  454. "fch": "chemical/x-gaussian-checkpoint",
  455. "fchk": "chemical/x-gaussian-checkpoint",
  456. "fcs": "application/vnd.isac.fcs",
  457. "fdf": "application/vnd.fdf",
  458. "fdt": "application/fdt+xml",
  459. "fe_launch": "application/vnd.denovo.fcselayout-link",
  460. "feature": "text/gherkin",
  461. "fg5": "application/vnd.fujitsu.oasysgp",
  462. "fgd": "application/x-director",
  463. "fh": "image/x-freehand",
  464. "fh4": "image/x-freehand",
  465. "fh5": "image/x-freehand",
  466. "fh7": "image/x-freehand",
  467. "fhc": "image/x-freehand",
  468. "fif": "image/fif",
  469. "fig": "application/x-xfig",
  470. "finf": "application/fastinfoset",
  471. "fish": "text/fish",
  472. "fit": "image/fits",
  473. "fits": "image/fits",
  474. "fla": "application/vnd.dtg.local.flash",
  475. "flac": "audio/x-flac",
  476. "fli": "video/x-fli",
  477. "flo": "application/vnd.micrografx.flo",
  478. "flr": "x-world/x-vrml",
  479. "flv": "video/x-flv",
  480. "flw": "application/vnd.kde.kivio",
  481. "flx": "text/vnd.fmi.flexstor",
  482. "fly": "text/vnd.fly",
  483. "fm": "application/vnd.framemaker",
  484. "fmf": "video/x-atomic3d-feature",
  485. "fnc": "application/vnd.frogans.fnc",
  486. "fo": "application/vnd.software602.filler.form+xml",
  487. "for": "text/x-fortran",
  488. "fpx": "image/vnd.fpx",
  489. "frame": "application/vnd.framemaker",
  490. "frl": "application/freeloader",
  491. "frm": "application/vnd.ufdl",
  492. "fsc": "application/vnd.fsc.weblaunch",
  493. "fst": "image/vnd.fst",
  494. "ftc": "application/vnd.fluxtime.clip",
  495. "fti": "application/vnd.anser-web-funds-transfer-initiation",
  496. "fts": "image/fits",
  497. "funk": "audio/make",
  498. "fvt": "video/vnd.fvt",
  499. "fxm": "video/x-javafx",
  500. "fxp": "application/vnd.adobe.fxp",
  501. "fxpl": "application/vnd.adobe.fxp",
  502. "fzs": "application/vnd.fuzzysheet",
  503. "g": "text/plain",
  504. "g2w": "application/vnd.geoplan",
  505. "g3": "image/g3fax",
  506. "g3w": "application/vnd.geospace",
  507. "gac": "application/vnd.groove-account",
  508. "gal": "chemical/x-gaussian-log",
  509. "gam": "application/x-tads",
  510. "gamin": "chemical/x-gamess-input",
  511. "gau": "chemical/x-gaussian-input",
  512. "gbr": "application/rpki-ghostbusters",
  513. "gca": "application/x-gca-compressed",
  514. "gcd": "text/x-pcs-gcd",
  515. "gcf": "application/x-graphing-calculator",
  516. "gcg": "chemical/x-gcg8-sequence",
  517. "gdl": "model/vnd.gdl",
  518. "gdoc": "application/vnd.google-apps.document",
  519. "gemspec": "text/ruby",
  520. "gen": "chemical/x-genbank",
  521. "geo": "application/vnd.dynageo",
  522. "geojson": "application/geo+json",
  523. "gex": "application/vnd.geometry-explorer",
  524. "gf": "application/x-tex-gf",
  525. "ggb": "application/vnd.geogebra.file",
  526. "ggt": "application/vnd.geogebra.tool",
  527. "ghf": "application/vnd.groove-help",
  528. "gif": "image/gif",
  529. "gim": "application/vnd.groove-identity-message",
  530. "gjc": "chemical/x-gaussian-input",
  531. "gjf": "chemical/x-gaussian-input",
  532. "gl": "video/gl",
  533. "glb": "model/gltf-binary",
  534. "gltf": "model/gltf+json",
  535. "gml": "application/gml+xml",
  536. "gmx": "application/vnd.gmx",
  537. "gnumeric": "application/x-gnumeric",
  538. "go": "text/go",
  539. "gotmpl": "text/gotmpl",
  540. "gph": "application/vnd.flographit",
  541. "gpt": "chemical/x-mopac-graph",
  542. "gpx": "application/gpx+xml",
  543. "gqf": "application/vnd.grafeq",
  544. "gqs": "application/vnd.grafeq",
  545. "gradle": "text/groovy",
  546. "gram": "application/srgs",
  547. "gramps": "application/x-gramps-xml",
  548. "gre": "application/vnd.geometry-explorer",
  549. "groovy": "text/groovy",
  550. "grv": "application/vnd.groove-injector",
  551. "grxml": "application/srgs+xml",
  552. "gsd": "audio/x-gsm",
  553. "gsf": "application/x-font-ghostscript",
  554. "gsheet": "application/vnd.google-apps.spreadsheet",
  555. "gslides": "application/vnd.google-apps.presentation",
  556. "gsm": "model/vnd.gdl",
  557. "gsp": "application/x-gsp",
  558. "gss": "application/x-gss",
  559. "gtar": "application/x-gtar",
  560. "gtm": "application/vnd.groove-tool-message",
  561. "gtw": "model/vnd.gtw",
  562. "gv": "text/vnd.graphviz",
  563. "gxf": "application/gxf",
  564. "gxt": "application/vnd.geonext",
  565. "gyb": "text/gyb",
  566. "gyp": "text/gyp",
  567. "gypi": "text/gyp",
  568. "gz": "application/gzip",
  569. "h": "text/x-chdr",
  570. "h++": "text/x-c++hdr",
  571. "h261": "video/h261",
  572. "h263": "video/h263",
  573. "h264": "video/h264",
  574. "hal": "application/vnd.hal+xml",
  575. "hbc": "application/vnd.hbci",
  576. "hbci": "application/vnd.hbci",
  577. "hbs": "text/x-handlebars-template",
  578. "hdd": "application/x-virtualbox-hdd",
  579. "hdf": "application/x-hdf",
  580. "hdr": "image/vnd.radiance",
  581. "hdt": "application/vnd.hdt",
  582. "heic": "image/heic",
  583. "heics": "image/heic-sequence",
  584. "heif": "image/heif",
  585. "heifs": "image/heif-sequence",
  586. "help": "application/x-helpfile",
  587. "hgl": "application/vnd.hp-hpgl",
  588. "hh": "text/plain",
  589. "hin": "chemical/x-hin",
  590. "hjson": "application/hjson",
  591. "hlb": "text/x-script",
  592. "hlp": "application/winhlp",
  593. "hpg": "application/vnd.hp-hpgl",
  594. "hpgl": "application/vnd.hp-hpgl",
  595. "hpi": "application/vnd.hp-hpid",
  596. "hpid": "application/vnd.hp-hpid",
  597. "hpp": "text/x-c++hdr",
  598. "hps": "application/vnd.hp-hps",
  599. "hpub": "application/prs.hpub+zip",
  600. "hqx": "application/mac-binhex40",
  601. "hs": "text/x-haskell",
  602. "hta": "application/hta",
  603. "htc": "text/x-component",
  604. "htke": "application/vnd.kenameaapp",
  605. "html": "text/html",
  606. "htt": "text/webviewhtml",
  607. "hvd": "application/vnd.yamaha.hv-dic",
  608. "hvp": "application/vnd.yamaha.hv-voice",
  609. "hvs": "application/vnd.yamaha.hv-script",
  610. "hx": "text/haxe",
  611. "hxml": "text/haxe",
  612. "hxx": "text/plain",
  613. "i2g": "application/vnd.intergeo",
  614. "ic0": "application/vnd.commerce-battelle",
  615. "ic1": "application/vnd.commerce-battelle",
  616. "ic2": "application/vnd.commerce-battelle",
  617. "ic3": "application/vnd.commerce-battelle",
  618. "ic4": "application/vnd.commerce-battelle",
  619. "ic5": "application/vnd.commerce-battelle",
  620. "ic6": "application/vnd.commerce-battelle",
  621. "ic7": "application/vnd.commerce-battelle",
  622. "ic8": "application/vnd.commerce-battelle",
  623. "ica": "application/vnd.commerce-battelle",
  624. "icc": "application/vnd.iccprofile",
  625. "icd": "application/vnd.commerce-battelle",
  626. "ice": "x-conference/x-cooltalk",
  627. "icf": "application/vnd.commerce-battelle",
  628. "icm": "application/vnd.iccprofile",
  629. "icns": "binary/icns",
  630. "ico": "image/x-icon",
  631. "ics": "text/calendar",
  632. "icz": "text/calendar",
  633. "idc": "text/plain",
  634. "idl": "text/idl",
  635. "ief": "image/ief",
  636. "iefs": "image/ief",
  637. "ifb": "text/calendar",
  638. "ifm": "application/vnd.shana.informed.formdata",
  639. "iges": "model/iges",
  640. "igl": "application/vnd.igloader",
  641. "igm": "application/vnd.insors.igm",
  642. "ign": "application/vnd.coreos.ignition+json",
  643. "ignition": "application/vnd.coreos.ignition+json",
  644. "igs": "model/iges",
  645. "igx": "application/vnd.micrografx.igx",
  646. "iif": "application/vnd.shana.informed.interchange",
  647. "iii": "application/x-iphone",
  648. "ima": "application/x-ima",
  649. "imap": "application/x-httpd-imap",
  650. "imf": "application/vnd.imagemeter.folder+zip",
  651. "img": "application/octet-stream",
  652. "imgcal": "application/vnd.3lightssoftware.imagescal",
  653. "imi": "application/vnd.imagemeter.image+zip",
  654. "imp": "application/vnd.accpac.simply.imp",
  655. "ims": "application/vnd.ms-ims",
  656. "imscc": "application/vnd.ims.imsccv1p1",
  657. "in": "text/plain",
  658. "inc": "text/inc",
  659. "inf": "application/inf",
  660. "info": "application/x-info",
  661. "ini": "text/ini",
  662. "ink": "application/inkml+xml",
  663. "inkml": "application/inkml+xml",
  664. "inp": "chemical/x-gamess-input",
  665. "ins": "application/x-internet-signup",
  666. "install": "application/x-install-instructions",
  667. "iota": "application/vnd.astraea-software.iota",
  668. "ip": "application/x-ip2",
  669. "ipfix": "application/ipfix",
  670. "ipk": "application/vnd.shana.informed.package",
  671. "irm": "application/vnd.ibm.rights-management",
  672. "irp": "application/vnd.irepository.package+xml",
  673. "ism": "model/vnd.gdl",
  674. "iso": "application/x-iso9660-image",
  675. "isp": "application/x-internet-signup",
  676. "ist": "chemical/x-isostar",
  677. "istr": "chemical/x-isostar",
  678. "isu": "video/x-isvideo",
  679. "it": "audio/it",
  680. "itp": "application/vnd.shana.informed.formtemplate",
  681. "its": "application/its+xml",
  682. "iv": "application/x-inventor",
  683. "ivp": "application/vnd.immervision-ivp",
  684. "ivr": "i-world/i-vrml",
  685. "ivu": "application/vnd.immervision-ivu",
  686. "ivy": "application/x-livescreen",
  687. "j2": "text/jinja",
  688. "jad": "text/vnd.sun.j2me.app-descriptor",
  689. "jade": "text/jade",
  690. "jam": "application/vnd.jam",
  691. "jar": "application/x-java-archive",
  692. "jardiff": "application/x-java-archive-diff",
  693. "java": "text/x-java-source",
  694. "jcm": "application/x-java-commerce",
  695. "jdx": "chemical/x-jcamp-dx",
  696. "jenkinsfile": "text/groovy",
  697. "jfif": "image/jpeg",
  698. "jinja": "text/jinja",
  699. "jinja2": "text/jinja",
  700. "jisp": "application/vnd.jisp",
  701. "jls": "image/jls",
  702. "jlt": "application/vnd.hp-jlyt",
  703. "jl": "text/julia",
  704. "jmz": "application/x-jmol",
  705. "jng": "image/x-jng",
  706. "jnlp": "application/x-java-jnlp-file",
  707. "joda": "application/vnd.joost.joda-archive",
  708. "jp2": "image/jp2",
  709. "jpe": "image/jpeg",
  710. "jpeg": "image/jpeg",
  711. "jpf": "image/jpx",
  712. "jpg": "image/jpeg",
  713. "jpg2": "image/jp2",
  714. "jpgm": "image/jpm",
  715. "jpgv": "video/jpeg",
  716. "jpm": "image/jpm",
  717. "jps": "image/x-jps",
  718. "jpx": "image/jpx",
  719. "jrd": "application/jrd+json",
  720. "js": "application/javascript",
  721. "json": "application/json",
  722. "json-patch": "application/json-patch+json",
  723. "json5": "application/json5",
  724. "jsonld": "application/ld+json",
  725. "jsonml": "application/jsonml+json",
  726. "jsx": "text/jsx",
  727. "jtd": "text/vnd.esmertec.theme-descriptor",
  728. "jut": "image/jutvision",
  729. "kar": "audio/midi",
  730. "karbon": "application/vnd.kde.karbon",
  731. "kcm": "application/vnd.nervana",
  732. "key": "application/pgp-keys",
  733. "keynote": "application/vnd.apple.keynote",
  734. "kfo": "application/vnd.kde.kformula",
  735. "kia": "application/vnd.kidspiration",
  736. "kil": "application/x-killustrator",
  737. "kin": "chemical/x-kinemage",
  738. "kml": "application/vnd.google-earth.kml+xml",
  739. "kmz": "application/vnd.google-earth.kmz",
  740. "kne": "application/vnd.kinar",
  741. "knp": "application/vnd.kinar",
  742. "kom": "application/vnd.hbci",
  743. "kon": "application/vnd.kde.kontour",
  744. "koz": "audio/vnd.audikoz",
  745. "kpr": "application/vnd.kde.kpresenter",
  746. "kpt": "application/vnd.kde.kpresenter",
  747. "kpxx": "application/vnd.ds-keypoint",
  748. "ksh": "application/x-ksh",
  749. "ksp": "application/vnd.kde.kspread",
  750. "kt": "text/kotlin",
  751. "ktr": "application/vnd.kahootz",
  752. "ktx": "image/ktx",
  753. "ktz": "application/vnd.kahootz",
  754. "kwd": "application/vnd.kde.kword",
  755. "kwt": "application/vnd.kde.kword",
  756. "l16": "audio/l16",
  757. "la": "audio/nspaudio",
  758. "lam": "audio/x-liveaudio",
  759. "lasjson": "application/vnd.las.las+json",
  760. "lasxml": "application/vnd.las.las+xml",
  761. "latex": "application/x-latex",
  762. "lbc": "audio/ilbc",
  763. "lbd": "application/vnd.llamagraphics.life-balance.desktop",
  764. "lbe": "application/vnd.llamagraphics.life-balance.exchange+xml",
  765. "le": "application/vnd.bluetooth.le.oob",
  766. "les": "application/vnd.hhe.lesson-player",
  767. "less": "text/less",
  768. "lgr": "application/lgr+xml",
  769. "lha": "application/octet-stream",
  770. "lhs": "text/x-literate-haskell",
  771. "lhx": "application/octet-stream",
  772. "lin": "application/bbolin",
  773. "link66": "application/vnd.route66.link66+xml",
  774. "list": "text/plain",
  775. "list3820": "application/vnd.ibm.modcap",
  776. "listafp": "application/vnd.ibm.modcap",
  777. "lmp": "model/vnd.gdl",
  778. "lnk": "application/x-ms-shortcut",
  779. "log": "text/plain",
  780. "lostsyncxml": "application/lostsync+xml",
  781. "lostxml": "application/lost+xml",
  782. "lrf": "application/octet-stream",
  783. "lrm": "application/vnd.ms-lrm",
  784. "lsf": "video/x-la-asf",
  785. "lsp": "text/x-script.lisp",
  786. "lst": "text/plain",
  787. "lsx": "video/x-la-asf",
  788. "ltf": "application/vnd.frogans.ltf",
  789. "ltx": "application/x-latex",
  790. "lua": "text/x-lua",
  791. "luac": "application/x-lua-bytecode",
  792. "lvp": "audio/vnd.lucent.voice",
  793. "lwp": "application/vnd.lotus-wordpro",
  794. "lxf": "application/lxf",
  795. "lyx": "application/x-lyx",
  796. "lzh": "application/octet-stream",
  797. "lzx": "application/x-lzx",
  798. "m": "application/vnd.wolfram.mathematica.package",
  799. "m13": "application/x-msmediaview",
  800. "m14": "application/x-msmediaview",
  801. "m15": "audio/x-mod",
  802. "m1v": "video/mpeg",
  803. "m21": "application/mp21",
  804. "m2a": "audio/mpeg",
  805. "m2v": "video/mpeg",
  806. "m3a": "audio/mpeg",
  807. "m3g": "application/m3g",
  808. "m3u": "audio/x-mpegurl",
  809. "m3u8": "application/vnd.apple.mpegurl",
  810. "m4a": "audio/x-m4a",
  811. "m4s": "video/iso.segment",
  812. "m4u": "video/vnd.mpegurl",
  813. "m4v": "video/x-m4v",
  814. "ma": "application/mathematica",
  815. "mads": "application/mads+xml",
  816. "mag": "application/vnd.ecowin.chart",
  817. "mail": "message/rfc822",
  818. "maker": "application/vnd.framemaker",
  819. "man": "application/x-troff-man",
  820. "manifest": "text/cache-manifest",
  821. "map": "application/x-navimap",
  822. "mar": "text/plain",
  823. "markdown": "text/markdown",
  824. "mathml": "application/mathml+xml",
  825. "mb": "application/mathematica",
  826. "mbd": "application/mbedlet",
  827. "mbk": "application/vnd.mobius.mbk",
  828. "mbox": "application/mbox",
  829. "mc$": "application/x-magic-cap-package-1.0",
  830. "mc1": "application/vnd.medcalcdata",
  831. "mcd": "application/vnd.mcd",
  832. "mcf": "image/vasa",
  833. "mcif": "chemical/x-mmcif",
  834. "mcm": "chemical/x-macmolecule",
  835. "mcp": "application/netmc",
  836. "mcurl": "text/vnd.curl.mcurl",
  837. "md": "text/markdown",
  838. "mdb": "application/x-msaccess",
  839. "mdc": "application/vnd.marlin.drm.mdcf",
  840. "mdi": "image/vnd.ms-modi",
  841. "me": "application/x-troff-me",
  842. "med": "audio/x-mod",
  843. "mesh": "model/mesh",
  844. "meta4": "application/metalink4+xml",
  845. "metalink": "application/metalink+xml",
  846. "mets": "application/mets+xml",
  847. "mf4": "application/mf4",
  848. "mfm": "application/vnd.mfmp",
  849. "mft": "application/rpki-manifest",
  850. "mgp": "application/vnd.osgeo.mapguide.package",
  851. "mgz": "application/vnd.proteus.magazine",
  852. "mht": "message/rfc822",
  853. "mhtml": "message/rfc822",
  854. "mib": "text/mib",
  855. "mid": "audio/midi",
  856. "midi": "audio/midi",
  857. "mie": "application/x-mie",
  858. "mif": "application/x-mif",
  859. "mime": "message/rfc822",
  860. "miz": "text/mizar",
  861. "mj2": "video/mj2",
  862. "mjf": "audio/x-vnd.audioexplosion.mjuicemediafile",
  863. "mjp2": "video/mj2",
  864. "mjpg": "video/x-motion-jpeg",
  865. "mjs": "application/javascript",
  866. "mk": "text/makefile",
  867. "mk3d": "video/x-matroska-3d",
  868. "mka": "audio/x-matroska",
  869. "mkd": "text/x-markdown",
  870. "mks": "video/x-matroska",
  871. "mkv": "video/x-matroska",
  872. "mlp": "application/vnd.dolby.mlp",
  873. "mm": "application/x-freemind",
  874. "mmd": "application/vnd.chipnuts.karaoke-mmd",
  875. "mmdb": "application/vnd.maxmind.maxmind-db",
  876. "mme": "application/base64",
  877. "mmf": "application/vnd.smaf",
  878. "mml": "text/mathml",
  879. "mmod": "chemical/x-macromodel-input",
  880. "mmr": "image/vnd.fujixerox.edmics-mmr",
  881. "mms": "application/vnd.wap.mms-message",
  882. "mng": "video/x-mng",
  883. "mny": "application/x-msmoney",
  884. "mobi": "application/x-mobipocket-ebook",
  885. "moc": "text/x-moc",
  886. "mod": "audio/x-mod",
  887. "model-inter": "application/vnd.vd-study",
  888. "mods": "application/mods+xml",
  889. "modulemap": "text/modulemap",
  890. "mol": "chemical/x-mdl-molfile",
  891. "mol2": "chemical/x-mol2",
  892. "moml": "model/vnd.moml+xml",
  893. "moo": "chemical/x-mopac-out",
  894. "moov": "video/quicktime",
  895. "mop": "chemical/x-mopac-input",
  896. "mopcrt": "chemical/x-mopac-input",
  897. "mov": "video/quicktime",
  898. "movie": "video/x-sgi-movie",
  899. "mp1": "audio/mpeg",
  900. "mp2": "audio/mpeg",
  901. "mp21": "application/mp21",
  902. "mp2a": "audio/mpeg",
  903. "mp3": "audio/mp3",
  904. "mp4": "video/mp4",
  905. "mp4a": "audio/mp4",
  906. "mp4s": "application/mp4",
  907. "mp4v": "video/mp4",
  908. "mpa": "video/mpeg",
  909. "mpc": "application/vnd.mophun.certificate",
  910. "mpd": "application/dash+xml",
  911. "mpdd": "application/dashdelta",
  912. "mpe": "video/mpeg",
  913. "mpeg": "video/mpeg",
  914. "mpega": "audio/mpeg",
  915. "mpf": "text/vnd.ms-mediapackage",
  916. "mpg": "video/mpeg",
  917. "mpg4": "video/mp4",
  918. "mpga": "audio/mpeg",
  919. "mpkg": "application/vnd.apple.installer+xml",
  920. "mpm": "application/vnd.blueice.multipass",
  921. "mpn": "application/vnd.mophun.application",
  922. "mpp": "application/vnd.ms-project",
  923. "mpt": "application/vnd.ms-project",
  924. "mpv": "application/x-project",
  925. "mpv2": "video/mpeg",
  926. "mpx": "application/x-project",
  927. "mpy": "application/vnd.ibm.minipay",
  928. "mqy": "application/vnd.mobius.mqy",
  929. "mrc": "application/marc",
  930. "mrcx": "application/marcxml+xml",
  931. "ms": "application/x-troff-ms",
  932. "msa": "application/vnd.msa-disk-image",
  933. "mscml": "application/mediaservercontrol+xml",
  934. "msd": "application/vnd.fdsn.mseed",
  935. "mseed": "application/vnd.fdsn.mseed",
  936. "mseq": "application/vnd.mseq",
  937. "msf": "application/vnd.epson.msf",
  938. "msg": "application/vnd.ms-outlook",
  939. "msh": "model/mesh",
  940. "msi": "application/x-msi",
  941. "msl": "application/vnd.mobius.msl",
  942. "msm": "model/vnd.gdl",
  943. "msty": "application/vnd.muvee.style",
  944. "mtm": "audio/x-mod",
  945. "mts": "model/vnd.mts",
  946. "multitrack": "audio/vnd.presonus.multitrack",
  947. "mus": "application/vnd.musician",
  948. "musd": "application/mmt-usd+xml",
  949. "musicxml": "application/vnd.recordare.musicxml+xml",
  950. "mv": "video/x-sgi-movie",
  951. "mvb": "application/x-msmediaview",
  952. "mvt": "application/vnd.mapbox-vector-tile",
  953. "mwc": "application/vnd.dpgraph",
  954. "mwf": "application/vnd.mfer",
  955. "mxf": "application/mxf",
  956. "mxi": "application/vnd.vd-study",
  957. "mxl": "application/vnd.recordare.musicxml",
  958. "mxmf": "audio/mobile-xmf",
  959. "mxml": "application/xv+xml",
  960. "mxs": "application/vnd.triscape.mxs",
  961. "mxu": "video/vnd.mpegurl",
  962. "my": "audio/make",
  963. "mzz": "application/x-vnd.audioexplosion.mzz",
  964. "n-gage": "application/vnd.nokia.n-gage.symbian.install",
  965. "n3": "text/n3",
  966. "nap": "image/naplps",
  967. "naplps": "image/naplps",
  968. "nb": "application/mathematica",
  969. "nbp": "application/vnd.wolfram.player",
  970. "nc": "application/x-netcdf",
  971. "ncm": "application/vnd.nokia.configuration-message",
  972. "ncx": "application/x-dtbncx+xml",
  973. "ndc": "application/vnd.osa.netdeploy",
  974. "ndjson": "application/json",
  975. "ndl": "application/vnd.lotus-notes",
  976. "nds": "application/vnd.nintendo.nitro.rom",
  977. "nef": "image/x-nikon-nef",
  978. "nfo": "text/x-nfo",
  979. "ngdat": "application/vnd.nokia.n-gage.data",
  980. "ngdoc": "text/ngdoc",
  981. "nif": "image/x-niff",
  982. "niff": "image/x-niff",
  983. "nim": "text/nim",
  984. "nimble": "text/nimble",
  985. "nimf": "text/nim",
  986. "nims": "text/nim",
  987. "nitf": "application/vnd.nitf",
  988. "nix": "application/x-mix-transfer",
  989. "nlu": "application/vnd.neurolanguage.nlu",
  990. "nml": "application/vnd.enliven",
  991. "nnd": "application/vnd.noblenet-directory",
  992. "nns": "application/vnd.noblenet-sealer",
  993. "nnw": "application/vnd.noblenet-web",
  994. "notebook": "application/vnd.smart.notebook",
  995. "npx": "image/vnd.net-fpx",
  996. "nq": "application/n-quads",
  997. "ns2": "application/vnd.lotus-notes",
  998. "ns3": "application/vnd.lotus-notes",
  999. "ns4": "application/vnd.lotus-notes",
  1000. "nsc": "application/x-conference",
  1001. "nsf": "application/vnd.lotus-notes",
  1002. "nsg": "application/vnd.lotus-notes",
  1003. "nsh": "application/vnd.lotus-notes",
  1004. "nt": "application/n-triples",
  1005. "ntf": "application/vnd.lotus-notes",
  1006. "numbers": "application/vnd.apple.numbers",
  1007. "nvd": "application/x-navidoc",
  1008. "nwc": "application/x-nwc",
  1009. "nws": "message/rfc822",
  1010. "nzb": "application/x-nzb",
  1011. "o": "application/x-object",
  1012. "o4a": "application/vnd.oma.drm.dcf",
  1013. "o4v": "application/vnd.oma.drm.dcf",
  1014. "oa2": "application/vnd.fujitsu.oasys2",
  1015. "oa3": "application/vnd.fujitsu.oasys3",
  1016. "oas": "application/vnd.fujitsu.oasys",
  1017. "obd": "application/x-msbinder",
  1018. "obg": "application/vnd.openblox.game-binary",
  1019. "obgx": "application/vnd.openblox.game+xml",
  1020. "obj": "application/x-tgif",
  1021. "oda": "application/oda",
  1022. "odb": "application/vnd.oasis.opendocument.database",
  1023. "odc": "application/vnd.oasis.opendocument.chart",
  1024. "odd": "application/tei+xml",
  1025. "odf": "application/vnd.oasis.opendocument.formula",
  1026. "odft": "application/vnd.oasis.opendocument.formula-template",
  1027. "odg": "application/vnd.oasis.opendocument.graphics",
  1028. "odi": "application/vnd.oasis.opendocument.image",
  1029. "odm": "application/vnd.oasis.opendocument.text-master",
  1030. "odp": "application/vnd.oasis.opendocument.presentation",
  1031. "ods": "application/vnd.oasis.opendocument.spreadsheet",
  1032. "odt": "application/vnd.oasis.opendocument.text",
  1033. "odx": "application/odx",
  1034. "oeb": "application/vnd.openeye.oeb",
  1035. "oga": "audio/ogg",
  1036. "ogex": "model/vnd.opengex",
  1037. "ogg": "audio/ogg",
  1038. "ogv": "video/ogg",
  1039. "ogx": "application/ogg",
  1040. "old": "application/x-trash",
  1041. "omc": "application/x-omc",
  1042. "omcd": "application/x-omcdatamaker",
  1043. "omcr": "application/x-omcregerator",
  1044. "omdoc": "application/omdoc+xml",
  1045. "omg": "audio/atrac3",
  1046. "onepkg": "application/onenote",
  1047. "onetmp": "application/onenote",
  1048. "onetoc": "application/onenote",
  1049. "onetoc2": "application/onenote",
  1050. "opf": "application/oebps-package+xml",
  1051. "opml": "text/x-opml",
  1052. "oprc": "application/vnd.palm",
  1053. "opus": "audio/ogg",
  1054. "or2": "application/vnd.lotus-organizer",
  1055. "or3": "application/vnd.lotus-organizer",
  1056. "orf": "image/x-olympus-orf",
  1057. "org": "text/x-org",
  1058. "orq": "application/ocsp-request",
  1059. "ors": "application/ocsp-response",
  1060. "osf": "application/vnd.yamaha.openscoreformat",
  1061. "osfpvg": "application/vnd.yamaha.openscoreformat.osfpvg+xml",
  1062. "osm": "application/vnd.openstreetmap.data+xml",
  1063. "otc": "application/vnd.oasis.opendocument.chart-template",
  1064. "otf": "font/otf",
  1065. "otg": "application/vnd.oasis.opendocument.graphics-template",
  1066. "oth": "application/vnd.oasis.opendocument.text-web",
  1067. "oti": "application/vnd.oasis.opendocument.image-template",
  1068. "otp": "application/vnd.oasis.opendocument.presentation-template",
  1069. "ots": "application/vnd.oasis.opendocument.spreadsheet-template",
  1070. "ott": "application/vnd.oasis.opendocument.text-template",
  1071. "ova": "application/x-virtualbox-ova",
  1072. "ovf": "application/x-virtualbox-ovf",
  1073. "owx": "application/owl+xml",
  1074. "oxlicg": "application/vnd.oxli.countgraph",
  1075. "oxps": "application/oxps",
  1076. "oxt": "application/vnd.openofficeorg.extension",
  1077. "oza": "application/x-oz-application",
  1078. "p": "text/x-pascal",
  1079. "p10": "application/pkcs10",
  1080. "p12": "application/pkcs12",
  1081. "p2p": "application/vnd.wfa.p2p",
  1082. "p7a": "application/x-pkcs7-signature",
  1083. "p7b": "application/x-pkcs7-certificates",
  1084. "p7c": "application/pkcs7-mime",
  1085. "p7m": "application/pkcs7-mime",
  1086. "p7r": "application/x-pkcs7-certreqresp",
  1087. "p7s": "application/pkcs7-signature",
  1088. "p8": "application/pkcs8",
  1089. "pac": "application/x-ns-proxy-autoconfig",
  1090. "pack": "application/x-java-pack200",
  1091. "package": "application/vnd.autopackage",
  1092. "pages": "application/vnd.apple.pages",
  1093. "par": "text/plain-bas",
  1094. "part": "application/pro_eng",
  1095. "pas": "text/pascal",
  1096. "pat": "image/x-coreldrawpattern",
  1097. "patch": "text/x-diff",
  1098. "paw": "application/vnd.pawaafile",
  1099. "pbd": "application/vnd.powerbuilder6",
  1100. "pbm": "image/x-portable-bitmap",
  1101. "pcap": "application/vnd.tcpdump.pcap",
  1102. "pcf": "application/x-font-pcf",
  1103. "pcl": "application/vnd.hp-pcl",
  1104. "pclxl": "application/vnd.hp-pclxl",
  1105. "pct": "image/x-pict",
  1106. "pcurl": "application/vnd.curl.pcurl",
  1107. "pcx": "image/x-pcx",
  1108. "pdb": "application/vnd.palm",
  1109. "pde": "text/x-processing",
  1110. "pdf": "application/pdf",
  1111. "pdx": "application/pdx",
  1112. "pem": "text/pem",
  1113. "pfa": "application/x-font-type1",
  1114. "pfb": "application/x-font-type1",
  1115. "pfm": "application/x-font-type1",
  1116. "pfr": "application/font-tdpfr",
  1117. "pfunk": "audio/make",
  1118. "pfx": "application/pkcs12",
  1119. "pgb": "image/vnd.globalgraphics.pgb",
  1120. "pgm": "image/x-portable-graymap",
  1121. "pgn": "application/x-chess-pgn",
  1122. "pgp": "application/pgp-encrypted",
  1123. "php": "application/x-httpd-php",
  1124. "php3": "application/x-httpd-php3",
  1125. "php3p": "application/x-httpd-php3-preprocessed",
  1126. "php4": "application/x-httpd-php4",
  1127. "php5": "application/x-httpd-php5",
  1128. "phps": "application/x-httpd-php-source",
  1129. "pht": "application/x-httpd-php",
  1130. "phtml": "application/x-httpd-php",
  1131. "pic": "image/pict",
  1132. "pict": "image/pict",
  1133. "pil": "application/vnd.piaccess.application-license",
  1134. "pk": "application/x-tex-pk",
  1135. "pkd": "application/vnd.hbci",
  1136. "pkg": "application/vnd.apple.installer+xml",
  1137. "pki": "application/pkixcmp",
  1138. "pkipath": "application/pkix-pkipath",
  1139. "pko": "application/ynd.ms-pkipko",
  1140. "pkpass": "application/vnd.apple.pkpass",
  1141. "pl": "application/x-perl",
  1142. "plantuml": "text/plantuml",
  1143. "plb": "application/vnd.3gpp.pic-bw-large",
  1144. "plc": "application/vnd.mobius.plc",
  1145. "plf": "application/vnd.pocketlearn",
  1146. "plj": "audio/vnd.everad.plj",
  1147. "plp": "application/vnd.panoply",
  1148. "pls": "application/pls+xml",
  1149. "plx": "application/x-pixclscript",
  1150. "ply": "model/stanford",
  1151. "pm": "text/plain",
  1152. "pm4": "application/x-pagemaker",
  1153. "pm5": "application/x-pagemaker",
  1154. "pma": "application/x-perfmon",
  1155. "pmc": "application/x-perfmon",
  1156. "pml": "application/vnd.ctc-posml",
  1157. "pmr": "application/x-perfmon",
  1158. "pmw": "application/x-perfmon",
  1159. "png": "image/png",
  1160. "pnm": "image/x-portable-anymap",
  1161. "po": "text/pofile",
  1162. "pod": "text/x-pod",
  1163. "portpkg": "application/vnd.macports.portpkg",
  1164. "pot": "application/vnd.ms-powerpoint",
  1165. "potm": "application/vnd.ms-powerpoint.template.macroenabled.12",
  1166. "potx": "application/vnd.openxmlformats-officedocument.presentationml.template",
  1167. "pov": "model/x-pov",
  1168. "pp": "text/puppet",
  1169. "ppa": "application/vnd.ms-powerpoint",
  1170. "ppam": "application/vnd.ms-powerpoint.addin.macroenabled.12",
  1171. "ppd": "application/vnd.cups-ppd",
  1172. "ppkg": "application/vnd.xmpie.ppkg",
  1173. "ppm": "image/x-portable-pixmap",
  1174. "pps": "application/vnd.ms-powerpoint",
  1175. "ppsm": "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
  1176. "ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
  1177. "ppt": "application/vnd.ms-powerpoint",
  1178. "pptm": "application/vnd.ms-powerpoint.presentation.macroenabled.12",
  1179. "pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
  1180. "ppz": "application/mspowerpoint",
  1181. "pqa": "application/vnd.palm",
  1182. "prc": "application/vnd.palm",
  1183. "pre": "application/vnd.lotus-freelance",
  1184. "preminet": "application/vnd.preminet",
  1185. "prf": "application/pics-rules",
  1186. "proto": "text/proto",
  1187. "provn": "text/provenance-notation",
  1188. "provx": "application/provenance+xml",
  1189. "prt": "application/pro_eng",
  1190. "prz": "application/vnd.lotus-freelance",
  1191. "ps": "application/postscript",
  1192. "psb": "application/vnd.3gpp.pic-bw-small",
  1193. "psd": "image/vnd.adobe.photoshop",
  1194. "pseg3820": "application/vnd.ibm.modcap",
  1195. "psf": "application/x-font-linux-psf",
  1196. "psid": "audio/prs.sid",
  1197. "pskcxml": "application/pskc+xml",
  1198. "pti": "image/prs.pti",
  1199. "ptid": "application/vnd.pvi.ptid1",
  1200. "pub": "application/x-mspublisher",
  1201. "purs": "text/purescript",
  1202. "pvb": "application/vnd.3gpp.pic-bw-var",
  1203. "pvu": "paleovu/x-pv",
  1204. "pwn": "application/vnd.3m.post-it-notes",
  1205. "pwz": "application/vnd.ms-powerpoint",
  1206. "pxd": "text/cython",
  1207. "pxi": "text/cython",
  1208. "py": "text/x-script.phyton",
  1209. "pya": "audio/vnd.ms-playready.media.pya",
  1210. "pyc": "application/x-python-code",
  1211. "pyi": "text/pyi",
  1212. "pyo": "application/x-python-code",
  1213. "pyv": "video/vnd.ms-playready.media.pyv",
  1214. "pyx": "text/cython",
  1215. "qam": "application/vnd.epson.quickanime",
  1216. "qbo": "application/vnd.intu.qbo",
  1217. "qca": "application/vnd.ericsson.quickcall",
  1218. "qcall": "application/vnd.ericsson.quickcall",
  1219. "qcp": "audio/qcelp",
  1220. "qd3": "x-world/x-3dmf",
  1221. "qd3d": "x-world/x-3dmf",
  1222. "qfx": "application/vnd.intu.qfx",
  1223. "qgs": "application/x-qgis",
  1224. "qif": "image/x-quicktime",
  1225. "qps": "application/vnd.publishare-delta-tree",
  1226. "qt": "video/quicktime",
  1227. "qtc": "video/x-qtc",
  1228. "qti": "image/x-quicktime",
  1229. "qtif": "image/x-quicktime",
  1230. "qtl": "application/x-quicktimeplayer",
  1231. "quiz": "application/vnd.quobject-quoxdocument",
  1232. "quox": "application/vnd.quobject-quoxdocument",
  1233. "qvd": "application/vnd.theqvd",
  1234. "qwd": "application/vnd.quark.quarkxpress",
  1235. "qwt": "application/vnd.quark.quarkxpress",
  1236. "qxb": "application/vnd.quark.quarkxpress",
  1237. "qxd": "application/vnd.quark.quarkxpress",
  1238. "qxl": "application/vnd.quark.quarkxpress",
  1239. "qxt": "application/vnd.quark.quarkxpress",
  1240. "r": "text/r",
  1241. "ra": "audio/x-realaudio",
  1242. "ram": "audio/x-pn-realaudio",
  1243. "raml": "application/raml+yaml",
  1244. "rapd": "application/route-apd+xml",
  1245. "rar": "application/x-rar-compressed",
  1246. "ras": "image/x-cmu-raster",
  1247. "rast": "image/cmu-raster",
  1248. "rb": "application/x-ruby",
  1249. "rcprofile": "application/vnd.ipunplugged.rcprofile",
  1250. "rct": "application/prs.nprend",
  1251. "rd": "chemical/x-mdl-rdfile",
  1252. "rda": "text/r",
  1253. "rdata": "text/r",
  1254. "rds": "text/r",
  1255. "rdf": "application/rdf+xml",
  1256. "rdf-crypt": "application/prs.rdf-xml-crypt",
  1257. "rdz": "application/vnd.data-vision.rdz",
  1258. "relo": "application/p2p-overlay+xml",
  1259. "rep": "application/vnd.businessobjects",
  1260. "request": "application/vnd.nervana",
  1261. "res": "application/x-dtbresource+xml",
  1262. "rexx": "text/x-script.rexx",
  1263. "rf": "image/vnd.rn-realflash",
  1264. "rfcxml": "application/rfc+xml",
  1265. "rgb": "image/x-rgb",
  1266. "rgbe": "image/vnd.radiance",
  1267. "rhtml": "application/x-httpd-eruby",
  1268. "rif": "application/reginfo+xml",
  1269. "rip": "audio/vnd.rip",
  1270. "ris": "application/x-research-info-systems",
  1271. "rl": "application/resource-lists+xml",
  1272. "rlc": "image/vnd.fujixerox.edmics-rlc",
  1273. "rld": "application/resource-lists-diff+xml",
  1274. "rlib": "text/rust",
  1275. "rm": "application/vnd.rn-realmedia",
  1276. "rmi": "audio/mid",
  1277. "rmm": "audio/x-pn-realaudio",
  1278. "rmp": "audio/x-pn-realaudio-plugin",
  1279. "rms": "application/vnd.jcp.javame.midlet-rms",
  1280. "rmvb": "application/vnd.rn-realmedia-vbr",
  1281. "rnc": "application/relax-ng-compact-syntax",
  1282. "rnd": "application/prs.nprend",
  1283. "rng": "text/xml",
  1284. "rnx": "application/vnd.rn-realplayer",
  1285. "roa": "application/rpki-roa",
  1286. "roff": "text/troff",
  1287. "ros": "chemical/x-rosdal",
  1288. "rp": "image/vnd.rn-realpix",
  1289. "rp9": "application/vnd.cloanto.rp9",
  1290. "rpm": "application/x-redhat-package-manager",
  1291. "rpss": "application/vnd.nokia.radio-presets",
  1292. "rpst": "application/vnd.nokia.radio-preset",
  1293. "rq": "application/sparql-query",
  1294. "rs": "application/rls-services+xml",
  1295. "rsd": "application/rsd+xml",
  1296. "rsheet": "application/urc-ressheet+xml",
  1297. "rsm": "model/vnd.gdl",
  1298. "rss": "application/rss+xml",
  1299. "rst": "text/prs.fallenstein.rst",
  1300. "rt": "text/richtext",
  1301. "rtf": "text/rtf",
  1302. "rtx": "text/richtext",
  1303. "run": "application/x-makeself",
  1304. "rusd": "application/route-usd+xml",
  1305. "rv": "video/vnd.rn-realvideo",
  1306. "rxn": "chemical/x-mdl-rxnfile",
  1307. "s": "text/x-asm",
  1308. "s11": "video/vnd.sealed.mpeg1",
  1309. "s14": "video/vnd.sealed.mpeg4",
  1310. "s1a": "application/vnd.sealedmedia.softseal.pdf",
  1311. "s1e": "application/vnd.sealed.xls",
  1312. "s1g": "image/vnd.sealedmedia.softseal.gif",
  1313. "s1h": "application/vnd.sealedmedia.softseal.html",
  1314. "s1j": "image/vnd.sealedmedia.softseal.jpg",
  1315. "s1m": "audio/vnd.sealedmedia.softseal.mpeg",
  1316. "s1n": "image/vnd.sealed.png",
  1317. "s1p": "application/vnd.sealed.ppt",
  1318. "s1q": "video/vnd.sealedmedia.softseal.mov",
  1319. "s1w": "application/vnd.sealed.doc",
  1320. "s3df": "application/vnd.sealed.3df",
  1321. "s3m": "audio/s3m",
  1322. "sac": "application/tamp-sequence-adjust-confirm",
  1323. "saf": "application/vnd.yamaha.smaf-audio",
  1324. "sam": "application/vnd.lotus-wordpro",
  1325. "sandboxed": "text/html-sandboxed",
  1326. "sass": "text/x-sass",
  1327. "saveme": "application/octet-stream",
  1328. "sbk": "application/x-tbook",
  1329. "sbml": "application/sbml+xml",
  1330. "sc": "application/vnd.ibm.secure-container",
  1331. "scala": "text/x-scala",
  1332. "scd": "application/x-msschedule",
  1333. "sce": "application/vnd.etsi.asic-e+zip",
  1334. "scim": "application/scim+json",
  1335. "scld": "application/vnd.doremir.scorecloud-binary-document",
  1336. "scm": "application/vnd.lotus-screencam",
  1337. "scq": "application/scvp-cv-request",
  1338. "scr": "application/x-silverlight",
  1339. "scs": "application/scvp-cv-response",
  1340. "scsf": "application/vnd.sealed.csf",
  1341. "scss": "text/x-scss",
  1342. "sct": "text/scriptlet",
  1343. "scurl": "text/vnd.curl.scurl",
  1344. "sd": "chemical/x-mdl-sdfile",
  1345. "sd2": "audio/x-sd2",
  1346. "sda": "application/vnd.stardivision.draw",
  1347. "sdc": "application/vnd.stardivision.calc",
  1348. "sdd": "application/vnd.stardivision.impress",
  1349. "sdf": "application/vnd.kinar",
  1350. "sdkd": "application/vnd.solent.sdkm+xml",
  1351. "sdkm": "application/vnd.solent.sdkm+xml",
  1352. "sdml": "text/plain",
  1353. "sdo": "application/vnd.sealed.doc",
  1354. "sdoc": "application/vnd.sealed.doc",
  1355. "sdp": "application/sdp",
  1356. "sdr": "application/sounder",
  1357. "sdw": "application/vnd.stardivision.writer",
  1358. "sea": "application/x-sea",
  1359. "see": "application/vnd.seemail",
  1360. "seed": "application/vnd.fdsn.seed",
  1361. "sem": "application/vnd.sealed.eml",
  1362. "sema": "application/vnd.sema",
  1363. "semd": "application/vnd.semd",
  1364. "semf": "application/vnd.semf",
  1365. "seml": "application/vnd.sealed.eml",
  1366. "ser": "application/java-serialized-object",
  1367. "set": "application/set",
  1368. "setpay": "application/set-payment-initiation",
  1369. "setreg": "application/set-registration-initiation",
  1370. "sfc": "application/vnd.nintendo.snes.rom",
  1371. "sfd": "application/vnd.font-fontforge-sfd",
  1372. "sfd-hdstx": "application/vnd.hydrostatix.sof-data",
  1373. "sfs": "application/vnd.spotfire.sfs",
  1374. "sfv": "text/x-sfv",
  1375. "sgf": "application/x-go-sgf",
  1376. "sgi": "image/sgi",
  1377. "sgif": "image/vnd.sealedmedia.softseal.gif",
  1378. "sgl": "application/vnd.stardivision.writer-global",
  1379. "sgm": "text/sgml",
  1380. "sgml": "text/sgml",
  1381. "sh": "application/x-sh",
  1382. "shar": "application/x-shar",
  1383. "shex": "text/shex",
  1384. "shf": "application/shf+xml",
  1385. "shp": "application/x-qgis",
  1386. "shx": "application/x-qgis",
  1387. "si": "text/vnd.wap.si",
  1388. "sic": "application/vnd.wap.sic",
  1389. "sid": "image/x-mrsid-image",
  1390. "sieve": "application/sieve",
  1391. "sig": "application/pgp-signature",
  1392. "sik": "application/x-trash",
  1393. "sil": "audio/silk",
  1394. "silo": "model/mesh",
  1395. "sis": "application/vnd.symbian.install",
  1396. "sisx": "x-epoc/x-sisx-app",
  1397. "sit": "application/x-stuffit",
  1398. "sitx": "application/x-stuffitx",
  1399. "siv": "application/sieve",
  1400. "sjp": "image/vnd.sealedmedia.softseal.jpg",
  1401. "sjpg": "image/vnd.sealedmedia.softseal.jpg",
  1402. "skd": "application/vnd.koan",
  1403. "skm": "application/vnd.koan",
  1404. "skp": "application/vnd.koan",
  1405. "skt": "application/vnd.koan",
  1406. "sl": "text/vnd.wap.sl",
  1407. "sla": "application/vnd.scribus",
  1408. "slaz": "application/vnd.scribus",
  1409. "slc": "application/vnd.wap.slc",
  1410. "sldm": "application/vnd.ms-powerpoint.slide.macroenabled.12",
  1411. "sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide",
  1412. "sls": "application/route-s-tsid+xml",
  1413. "slt": "application/vnd.epson.salt",
  1414. "sm": "application/vnd.stepmania.stepchart",
  1415. "smc": "application/vnd.nintendo.snes.rom",
  1416. "smf": "application/vnd.stardivision.math",
  1417. "smh": "application/vnd.sealed.mht",
  1418. "smht": "application/vnd.sealed.mht",
  1419. "smi": "application/smil+xml",
  1420. "smil": "application/smil+xml",
  1421. "smk": "video/vnd.radgamettools.smacker",
  1422. "sml": "application/smil+xml",
  1423. "smo": "video/vnd.sealedmedia.softseal.mov",
  1424. "smov": "video/vnd.sealedmedia.softseal.mov",
  1425. "smp": "audio/vnd.sealedmedia.softseal.mpeg",
  1426. "smp3": "audio/vnd.sealedmedia.softseal.mpeg",
  1427. "smpg": "video/vnd.sealed.mpeg1",
  1428. "sms": "application/vnd.3gpp2.sms",
  1429. "smv": "video/x-smv",
  1430. "smzip": "application/vnd.stepmania.package",
  1431. "snd": "audio/basic",
  1432. "snf": "application/x-font-snf",
  1433. "so": "application/octet-stream",
  1434. "soa": "text/dns",
  1435. "soc": "application/sgml-open-catalog",
  1436. "sol": "application/solids",
  1437. "spc": "text/x-speech",
  1438. "spd": "application/vnd.sealedmedia.softseal.pdf",
  1439. "spdf": "application/vnd.sealedmedia.softseal.pdf",
  1440. "spec": "text/spec",
  1441. "spf": "application/vnd.yamaha.smaf-phrase",
  1442. "spl": "application/x-futuresplash",
  1443. "spn": "image/vnd.sealed.png",
  1444. "spng": "image/vnd.sealed.png",
  1445. "spo": "text/vnd.in3d.spot",
  1446. "spot": "text/vnd.in3d.spot",
  1447. "spp": "application/scvp-vp-response",
  1448. "sppt": "application/vnd.sealed.ppt",
  1449. "spq": "application/scvp-vp-request",
  1450. "spr": "application/x-sprite",
  1451. "sprite": "application/x-sprite",
  1452. "spx": "audio/ogg",
  1453. "sql": "application/x-sql",
  1454. "sr": "application/vnd.sigrok.session",
  1455. "src": "application/x-wais-source",
  1456. "srt": "application/x-subrip",
  1457. "sru": "application/sru+xml",
  1458. "srx": "application/sparql-results+xml",
  1459. "ssdl": "application/ssdl+xml",
  1460. "sse": "application/vnd.kodak-descriptor",
  1461. "ssf": "application/vnd.epson.ssf",
  1462. "ssi": "text/x-server-parsed-html",
  1463. "ssm": "application/streamingmedia",
  1464. "ssml": "application/ssml+xml",
  1465. "sst": "application/vnd.ms-pki.certstore",
  1466. "ssw": "video/vnd.sealed.swf",
  1467. "sswf": "video/vnd.sealed.swf",
  1468. "st": "application/vnd.sailingtracker.track",
  1469. "stc": "application/vnd.sun.xml.calc.template",
  1470. "std": "application/vnd.sun.xml.draw.template",
  1471. "step": "application/step",
  1472. "stf": "application/vnd.wt.stf",
  1473. "sti": "application/vnd.sun.xml.impress.template",
  1474. "stif": "application/vnd.sealed.tiff",
  1475. "stk": "application/hyperstudio",
  1476. "stl": "application/vnd.ms-pki.stl",
  1477. "stm": "audio/x-stm",
  1478. "stml": "application/vnd.sealedmedia.softseal.html",
  1479. "stp": "application/step",
  1480. "str": "application/vnd.pg.format",
  1481. "study-inter": "application/vnd.vd-study",
  1482. "stw": "application/vnd.sun.xml.writer.template",
  1483. "sty": "text/x-tex",
  1484. "styl": "text/stylus",
  1485. "sub": "text/vnd.dvb.subtitle",
  1486. "sus": "application/vnd.sus-calendar",
  1487. "susp": "application/vnd.sus-calendar",
  1488. "sv4cpio": "application/x-sv4cpio",
  1489. "sv4crc": "application/x-sv4crc",
  1490. "svc": "application/vnd.dvb.service",
  1491. "svd": "application/vnd.svd",
  1492. "svf": "image/x-dwg",
  1493. "svg": "image/svg+xml",
  1494. "svgz": "image/svg+xml",
  1495. "sw": "chemical/x-swissprot",
  1496. "swa": "application/x-director",
  1497. "swf": "application/x-shockwave-flash",
  1498. "swfl": "application/x-shockwave-flash",
  1499. "swi": "application/vnd.aristanetworks.swi",
  1500. "swift": "text/swift",
  1501. "swiftdeps": "text/swiftdeps",
  1502. "sxc": "application/vnd.sun.xml.calc",
  1503. "sxd": "application/vnd.sun.xml.draw",
  1504. "sxg": "application/vnd.sun.xml.writer.global",
  1505. "sxi": "application/vnd.sun.xml.impress",
  1506. "sxl": "application/vnd.sealed.xls",
  1507. "sxls": "application/vnd.sealed.xls",
  1508. "sxm": "application/vnd.sun.xml.math",
  1509. "sxw": "application/vnd.sun.xml.writer",
  1510. "t": "text/troff",
  1511. "t3": "application/x-t3vm-image",
  1512. "t38": "image/t38",
  1513. "tac": "text/twisted",
  1514. "tag": "text/prs.lines.tag",
  1515. "taglet": "application/vnd.mynfc",
  1516. "talk": "text/x-speech",
  1517. "tam": "application/vnd.onepager",
  1518. "tamp": "application/vnd.onepagertamp",
  1519. "tamx": "application/vnd.onepagertamx",
  1520. "tao": "application/vnd.tao.intent-module-archive",
  1521. "tap": "image/vnd.tencent.tap",
  1522. "tar": "application/x-tar",
  1523. "tat": "application/vnd.onepagertat",
  1524. "tatp": "application/vnd.onepagertatp",
  1525. "tatx": "application/vnd.onepagertatx",
  1526. "tau": "application/tamp-apex-update",
  1527. "taz": "application/x-gtar",
  1528. "tbk": "application/toolbook",
  1529. "tcap": "application/vnd.3gpp2.tcap",
  1530. "tcl": "application/x-tcl",
  1531. "tcsh": "text/x-script.tcsh",
  1532. "tcu": "application/tamp-community-update",
  1533. "td": "application/urc-targetdesc+xml",
  1534. "teacher": "application/vnd.smart.teacher",
  1535. "tei": "application/tei+xml",
  1536. "teicorpus": "application/tei+xml",
  1537. "ter": "application/tamp-error",
  1538. "tex": "application/x-tex",
  1539. "texi": "application/x-texinfo",
  1540. "texinfo": "application/x-texinfo",
  1541. "text": "text/plain",
  1542. "tf": "text/terraform",
  1543. "tfi": "application/thraud+xml",
  1544. "tfm": "application/x-tex-tfm",
  1545. "tfx": "image/tiff-fx",
  1546. "tga": "image/x-tga",
  1547. "tgf": "chemical/x-mdl-tgf",
  1548. "tgz": "application/gzip",
  1549. "thmx": "application/vnd.ms-officetheme",
  1550. "thrift": "text/thrift",
  1551. "tif": "image/tiff",
  1552. "tiff": "image/tiff",
  1553. "tk": "text/x-tcl",
  1554. "tlclient": "application/vnd.cendio.thinlinc.clientconf",
  1555. "tm": "text/texmacs",
  1556. "tmo": "application/vnd.tmobile-livetv",
  1557. "tnef": "application/vnd.ms-tnef",
  1558. "tnf": "application/vnd.ms-tnef",
  1559. "toml": "text/toml",
  1560. "torrent": "application/x-bittorrent",
  1561. "tpl": "application/vnd.groove-tool-template",
  1562. "tpt": "application/vnd.trid.tpt",
  1563. "tr": "text/troff",
  1564. "tra": "application/vnd.trueapp",
  1565. "tree": "application/vnd.rainstor.data",
  1566. "trig": "application/trig",
  1567. "trm": "application/x-msterminal",
  1568. "ts": "video/mp2t",
  1569. "tsa": "application/tamp-sequence-adjust",
  1570. "tscn": "text/godot",
  1571. "tsd": "application/timestamped-data",
  1572. "tsi": "audio/tsp-audio",
  1573. "tsp": "audio/tsplayer",
  1574. "tsq": "application/timestamp-query",
  1575. "tsr": "application/timestamp-reply",
  1576. "tst": "application/vnd.etsi.timestamp-token",
  1577. "tsv": "text/tab-separated-values",
  1578. "tsx": "text/tsx",
  1579. "ttc": "font/collection",
  1580. "ttf": "font/ttf",
  1581. "ttl": "text/turtle",
  1582. "ttml": "application/ttml+xml",
  1583. "tuc": "application/tamp-update-confirm",
  1584. "tur": "application/tamp-update",
  1585. "turbot": "image/florian",
  1586. "twd": "application/vnd.simtech-mindmapper",
  1587. "twds": "application/vnd.simtech-mindmapper",
  1588. "txd": "application/vnd.genomatix.tuxedo",
  1589. "txf": "application/vnd.mobius.txf",
  1590. "txt": "text/plain",
  1591. "u32": "application/x-authorware-bin",
  1592. "u8dsn": "message/global-delivery-status",
  1593. "u8hdr": "message/global-headers",
  1594. "u8mdn": "message/global-disposition-notification",
  1595. "u8msg": "message/global",
  1596. "udeb": "application/vnd.debian.binary-package",
  1597. "ufd": "application/vnd.ufdl",
  1598. "ufdl": "application/vnd.ufdl",
  1599. "uil": "text/x-uil",
  1600. "uis": "application/urc-uisocketdesc+xml",
  1601. "uls": "text/iuls",
  1602. "ult": "audio/x-mod",
  1603. "ulx": "application/x-glulx",
  1604. "umj": "application/vnd.umajin",
  1605. "uni": "audio/x-mod",
  1606. "unis": "text/uri-list",
  1607. "unityweb": "application/vnd.unity",
  1608. "unv": "application/i-deas",
  1609. "uo": "application/vnd.uoml+xml",
  1610. "uoml": "application/vnd.uoml+xml",
  1611. "upa": "application/vnd.hbci",
  1612. "uri": "text/uri-list",
  1613. "uric": "text/vnd.si.uricatalogue",
  1614. "urim": "application/vnd.uri-map",
  1615. "urimap": "application/vnd.uri-map",
  1616. "uris": "text/uri-list",
  1617. "urls": "text/uri-list",
  1618. "ustar": "application/x-ustar",
  1619. "utz": "application/vnd.uiq.theme",
  1620. "uu": "text/x-uuencode",
  1621. "uue": "text/x-uuencode",
  1622. "uva": "audio/vnd.dece.audio",
  1623. "uvd": "application/vnd.dece.data",
  1624. "uvf": "application/vnd.dece.data",
  1625. "uvg": "image/vnd.dece.graphic",
  1626. "uvh": "video/vnd.dece.hd",
  1627. "uvi": "image/vnd.dece.graphic",
  1628. "uvm": "video/vnd.dece.mobile",
  1629. "uvp": "video/vnd.dece.pd",
  1630. "uvs": "video/vnd.dece.sd",
  1631. "uvt": "application/vnd.dece.ttml+xml",
  1632. "uvu": "video/vnd.dece.mp4",
  1633. "uvv": "video/vnd.dece.video",
  1634. "uvva": "audio/vnd.dece.audio",
  1635. "uvvd": "application/vnd.dece.data",
  1636. "uvvf": "application/vnd.dece.data",
  1637. "uvvg": "image/vnd.dece.graphic",
  1638. "uvvh": "video/vnd.dece.hd",
  1639. "uvvi": "image/vnd.dece.graphic",
  1640. "uvvm": "video/vnd.dece.mobile",
  1641. "uvvp": "video/vnd.dece.pd",
  1642. "uvvs": "video/vnd.dece.sd",
  1643. "uvvt": "application/vnd.dece.ttml+xml",
  1644. "uvvu": "video/vnd.dece.mp4",
  1645. "uvvv": "video/vnd.dece.video",
  1646. "uvvx": "application/vnd.dece.unspecified",
  1647. "uvvz": "application/vnd.dece.zip",
  1648. "uvx": "application/vnd.dece.unspecified",
  1649. "uvz": "application/vnd.dece.zip",
  1650. "val": "chemical/x-ncbi-asn1-binary",
  1651. "vbk": "audio/vnd.nortel.vbk",
  1652. "vbox": "application/x-virtualbox-vbox",
  1653. "vbox-extpack": "application/x-virtualbox-vbox-extpack",
  1654. "vcard": "text/vcard",
  1655. "vcd": "application/x-cdlink",
  1656. "vcf": "text/x-vcard",
  1657. "vcg": "application/vnd.groove-vcard",
  1658. "vcs": "text/x-vcalendar",
  1659. "vcx": "application/vnd.vcx",
  1660. "vda": "application/vda",
  1661. "vdi": "application/x-virtualbox-vdi",
  1662. "vdo": "video/vdo",
  1663. "vdx": "text/vdx",
  1664. "vew": "application/vnd.lotus-approach",
  1665. "vfr": "application/vnd.tml",
  1666. "vhd": "application/x-virtualbox-vhd",
  1667. "viaframe": "application/vnd.tml",
  1668. "vim": "text/vim",
  1669. "vis": "application/vnd.visionary",
  1670. "viv": "video/vnd.vivo",
  1671. "vivo": "video/vivo",
  1672. "vmd": "application/vocaltec-media-desc",
  1673. "vmdk": "application/x-virtualbox-vmdk",
  1674. "vmf": "application/vocaltec-media-file",
  1675. "vms": "chemical/x-vamas-iso14976",
  1676. "vmt": "application/vnd.valve.source.material",
  1677. "vob": "video/x-ms-vob",
  1678. "voc": "audio/voc",
  1679. "vor": "application/vnd.stardivision.writer",
  1680. "vos": "video/vosaic",
  1681. "vox": "audio/voxware",
  1682. "vpm": "multipart/voice-message",
  1683. "vqe": "audio/x-twinvq-plugin",
  1684. "vqf": "audio/x-twinvq",
  1685. "vql": "audio/x-twinvq-plugin",
  1686. "vrm": "x-world/x-vrml",
  1687. "vrml": "model/vrml",
  1688. "vrt": "x-world/x-vrt",
  1689. "vsc": "application/vnd.vidsoft.vidconference",
  1690. "vsd": "application/vnd.visio",
  1691. "vsf": "application/vnd.vsf",
  1692. "vss": "application/vnd.visio",
  1693. "vst": "application/vnd.visio",
  1694. "vsw": "application/vnd.visio",
  1695. "vtf": "image/vnd.valve.source.texture",
  1696. "vtt": "text/vtt",
  1697. "vtu": "model/vnd.vtu",
  1698. "vue": "text/vue",
  1699. "vwx": "application/vnd.vectorworks",
  1700. "vxml": "application/voicexml+xml",
  1701. "w3d": "application/x-director",
  1702. "w60": "application/wordperfect6.0",
  1703. "w61": "application/wordperfect6.1",
  1704. "w6w": "application/msword",
  1705. "wad": "application/x-doom",
  1706. "wadl": "application/vnd.sun.wadl+xml",
  1707. "war": "binary/zip",
  1708. "wasm": "application/wasm",
  1709. "wav": "audio/wave",
  1710. "wax": "audio/x-ms-wax",
  1711. "wb1": "application/x-qpro",
  1712. "wbmp": "image/vnd.wap.wbmp",
  1713. "wbs": "application/vnd.criticaltools.wbs+xml",
  1714. "wbxml": "application/vnd.wap.wbxml",
  1715. "wcm": "application/vnd.ms-works",
  1716. "wdb": "application/vnd.ms-works",
  1717. "wdp": "image/vnd.ms-photo",
  1718. "web": "application/vnd.xara",
  1719. "weba": "audio/webm",
  1720. "webapp": "application/x-web-app-manifest+json",
  1721. "webm": "video/webm",
  1722. "webmanifest": "application/manifest+json",
  1723. "webp": "image/webp",
  1724. "wg": "application/vnd.pmi.widget",
  1725. "wgt": "application/widget",
  1726. "whl": "binary/wheel",
  1727. "wif": "application/watcherinfo+xml",
  1728. "win": "model/vnd.gdl",
  1729. "wiz": "application/msword",
  1730. "wk": "application/x-123",
  1731. "wk1": "application/vnd.lotus-1-2-3",
  1732. "wk3": "application/vnd.lotus-1-2-3",
  1733. "wk4": "application/vnd.lotus-1-2-3",
  1734. "wks": "application/vnd.ms-works",
  1735. "wkt": "text/wkt",
  1736. "wlnk": "application/link-format",
  1737. "wm": "video/x-ms-wm",
  1738. "wma": "audio/x-ms-wma",
  1739. "wmc": "application/vnd.wmc",
  1740. "wmd": "application/x-ms-wmd",
  1741. "wmf": "image/wmf",
  1742. "wml": "text/vnd.wap.wml",
  1743. "wmlc": "application/vnd.wap.wmlc",
  1744. "wmls": "text/vnd.wap.wmlscript",
  1745. "wmlsc": "application/vnd.wap.wmlscriptc",
  1746. "wmv": "video/x-ms-wmv",
  1747. "wmx": "video/x-ms-wmx",
  1748. "wmz": "application/x-ms-wmz",
  1749. "woff": "font/woff",
  1750. "woff2": "font/woff2",
  1751. "word": "application/msword",
  1752. "wp": "application/wordperfect",
  1753. "wp5": "application/wordperfect",
  1754. "wp6": "application/wordperfect",
  1755. "wpd": "application/vnd.wordperfect",
  1756. "wpl": "application/vnd.ms-wpl",
  1757. "wps": "application/vnd.ms-works",
  1758. "wq1": "application/x-lotus",
  1759. "wqd": "application/vnd.wqd",
  1760. "wri": "application/x-mswrite",
  1761. "wrl": "model/vrml",
  1762. "wrz": "model/vrml",
  1763. "wsc": "message/vnd.wfa.wsc",
  1764. "wsdl": "application/wsdl+xml",
  1765. "wsgi": "text/wsgi",
  1766. "wspolicy": "application/wspolicy+xml",
  1767. "wsrc": "application/x-wais-source",
  1768. "wtb": "application/vnd.webturbo",
  1769. "wtk": "application/x-wintalk",
  1770. "wv": "application/vnd.wv.csp+wbxml",
  1771. "wvx": "video/x-ms-wvx",
  1772. "wz": "application/x-wingz",
  1773. "x-png": "image/png",
  1774. "x32": "application/x-authorware-bin",
  1775. "x3d": "application/vnd.hzn-3d-crossword",
  1776. "x3db": "model/x3d+xml",
  1777. "x3dbz": "model/x3d+binary",
  1778. "x3dv": "model/x3d-vrml",
  1779. "x3dvz": "model/x3d-vrml",
  1780. "x3dz": "model/x3d+xml",
  1781. "x_b": "model/vnd.parasolid.transmit.binary",
  1782. "x_t": "model/vnd.parasolid.transmit.text",
  1783. "xaf": "x-world/x-vrml",
  1784. "xaml": "application/xaml+xml",
  1785. "xap": "application/x-silverlight-app",
  1786. "xar": "application/vnd.xara",
  1787. "xav": "application/xcap-att+xml",
  1788. "xbap": "application/x-ms-xbap",
  1789. "xbd": "application/vnd.fujixerox.docuworks.binder",
  1790. "xbm": "image/x-xbitmap",
  1791. "xca": "application/xcap-caps+xml",
  1792. "xcf": "application/x-xcf",
  1793. "xcs": "application/calendar+xml",
  1794. "xct": "application/vnd.fujixerox.docuworks.container",
  1795. "xdd": "application/bacnet-xdd+zip",
  1796. "xdf": "application/xcap-diff+xml",
  1797. "xdm": "application/vnd.syncml.dm+xml",
  1798. "xdp": "application/vnd.adobe.xdp+xml",
  1799. "xdr": "video/x-amt-demorun",
  1800. "xdssc": "application/dssc+xml",
  1801. "xdw": "application/vnd.fujixerox.docuworks",
  1802. "xel": "application/xcap-el+xml",
  1803. "xenc": "application/xenc+xml",
  1804. "xer": "application/patch-ops-error+xml",
  1805. "xfd": "application/vnd.xfdl",
  1806. "xfdf": "application/vnd.adobe.xfdf",
  1807. "xfdl": "application/vnd.xfdl",
  1808. "xgz": "xgl/drawing",
  1809. "xht": "application/xhtml+xml",
  1810. "xhtm": "application/xhtml+xml",
  1811. "xhtml": "application/xhtml+xml",
  1812. "xhvml": "application/xv+xml",
  1813. "xif": "image/vnd.xiff",
  1814. "xl": "application/excel",
  1815. "xla": "application/vnd.ms-excel",
  1816. "xlam": "application/vnd.ms-excel.addin.macroenabled.12",
  1817. "xlb": "application/vndms-excel",
  1818. "xlc": "application/vnd.ms-excel",
  1819. "xlf": "application/x-xliff+xml",
  1820. "xlim": "application/vnd.xmpie.xlim",
  1821. "xlm": "application/vnd.ms-excel",
  1822. "xls": "application/vnd.ms-excel",
  1823. "xlsb": "application/vnd.ms-excel.sheet.binary.macroenabled.12",
  1824. "xlsm": "application/vnd.ms-excel.sheet.macroenabled.12",
  1825. "xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
  1826. "xlt": "application/vnd.ms-excel",
  1827. "xltm": "application/vnd.ms-excel.template.macroenabled.12",
  1828. "xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
  1829. "xlw": "application/vnd.ms-excel",
  1830. "xm": "audio/xm",
  1831. "xml": "text/xml",
  1832. "xmls": "application/dskpp+xml",
  1833. "xmt_bin": "model/vnd.parasolid.transmit.binary",
  1834. "xmt_txt": "model/vnd.parasolid.transmit.text",
  1835. "xmz": "xgl/movie",
  1836. "xns": "application/xcap-ns+xml",
  1837. "xo": "application/vnd.olpc-sugar",
  1838. "xof": "x-world/x-vrml",
  1839. "xop": "application/xop+xml",
  1840. "xpdl": "application/xml",
  1841. "xpi": "application/x-xpinstall",
  1842. "xpix": "application/x-vnd.ls-xpix",
  1843. "xpl": "application/xproc+xml",
  1844. "xpm": "image/x-xpixmap",
  1845. "xpr": "application/vnd.is-xpr",
  1846. "xps": "application/vnd.ms-xpsdocument",
  1847. "xpw": "application/vnd.intercon.formnet",
  1848. "xpx": "application/vnd.intercon.formnet",
  1849. "xq": "text/xquery",
  1850. "xql": "text/xquery",
  1851. "xqm": "text/xquery",
  1852. "xqu": "text/xquery",
  1853. "xquery": "text/xquery",
  1854. "xqy": "text/xquery",
  1855. "xsd": "text/xml",
  1856. "xsf": "application/prs.xsf+xml",
  1857. "xsl": "application/xslt+xml",
  1858. "xslt": "application/xslt+xml",
  1859. "xsm": "application/vnd.syncml+xml",
  1860. "xspf": "application/xspf+xml",
  1861. "xsr": "video/x-amt-showrun",
  1862. "xtel": "chemical/x-xtel",
  1863. "xul": "application/vnd.mozilla.xul+xml",
  1864. "xvm": "application/xv+xml",
  1865. "xvml": "application/xv+xml",
  1866. "xwd": "image/x-xwindowdump",
  1867. "xyz": "chemical/x-xyz",
  1868. "xyze": "image/vnd.radiance",
  1869. "xz": "application/x-xz",
  1870. "yaml": "text/yaml",
  1871. "yang": "application/yang",
  1872. "yin": "application/yin+xml",
  1873. "yme": "application/vnd.yaoweme",
  1874. "yml": "text/yaml",
  1875. "ymp": "text/x-suse-ymp",
  1876. "z1": "application/x-zmachine",
  1877. "z2": "application/x-zmachine",
  1878. "z3": "application/x-zmachine",
  1879. "z4": "application/x-zmachine",
  1880. "z5": "application/x-zmachine",
  1881. "z6": "application/x-zmachine",
  1882. "z7": "application/x-zmachine",
  1883. "z8": "application/x-zmachine",
  1884. "zaz": "application/vnd.zzazz.deck+xml",
  1885. "zfc": "application/vnd.filmit.zfc",
  1886. "zfo": "application/vnd.software602.filler.form-xml-zip",
  1887. "zig": "text/zig",
  1888. "zip": "application/zip",
  1889. "zir": "application/vnd.zul",
  1890. "zirz": "application/vnd.zul",
  1891. "zmm": "application/vnd.handheld-entertainment+xml",
  1892. "zmt": "chemical/x-mopac-input",
  1893. "zone": "text/dns",
  1894. "zoo": "application/octet-stream",
  1895. "zsh": "text/x-script.zsh",
  1896. "~": "application/x-trash"
  1897. }
  1898. func newMimetypes*(): MimeDB =
  1899. ## Creates a new Mimetypes database. The database will contain the most
  1900. ## common mimetypes.
  1901. {.cast(noSideEffect).}:
  1902. result.mimes = mimes.toOrderedTable()
  1903. func getMimetype*(mimedb: MimeDB, ext: string, default = "text/plain"): string =
  1904. ## Gets mimetype which corresponds to `ext`. Returns `default` if `ext`
  1905. ## could not be found. `ext` can start with an optional dot which is ignored.
  1906. ## `ext` is lowercased before querying `mimedb`.
  1907. if ext.startsWith("."):
  1908. result = mimedb.mimes.getOrDefault(ext.toLowerAscii.substr(1))
  1909. else:
  1910. result = mimedb.mimes.getOrDefault(ext.toLowerAscii())
  1911. if result == "":
  1912. return default
  1913. func getExt*(mimedb: MimeDB, mimetype: string, default = "txt"): string =
  1914. ## Gets extension which corresponds to `mimetype`. Returns `default` if
  1915. ## `mimetype` could not be found. Extensions are returned without the
  1916. ## leading dot. `mimetype` is lowercased before querying `mimedb`.
  1917. result = default
  1918. let mimeLowered = mimetype.toLowerAscii()
  1919. for e, m in mimedb.mimes:
  1920. if m == mimeLowered:
  1921. result = e
  1922. break
  1923. func register*(mimedb: var MimeDB, ext: string, mimetype: string) =
  1924. ## Adds `mimetype` to the `mimedb`.
  1925. ## `mimetype` and `ext` are lowercased before registering on `mimedb`.
  1926. assert ext.strip.len > 0, "ext argument can not be empty string"
  1927. assert mimetype.strip.len > 0, "mimetype argument can not be empty string"
  1928. {.noSideEffect.}:
  1929. mimedb.mimes[ext.toLowerAscii()] = mimetype.toLowerAscii()