Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 1023
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
Mimetypes
0.00% covered (danger)
0.00%
0 / 1023
0.00% covered (danger)
0.00%
0 / 3
42
0.00% covered (danger)
0.00%
0 / 1
 getMimeTypes
0.00% covered (danger)
0.00%
0 / 1020
0.00% covered (danger)
0.00%
0 / 1
2
 getInstance
n/a
0 / 0
n/a
0 / 0
2
 fromExtension
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
6
 fromFilename
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2/*
3 * Copyright (c) 2011-2016 [Ryan Parman](http://ryanparman.com)
4 * Copyright (c) 2011-2012 [Michael Dowling](https://github.com/mtdowling)
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy of
7 * this software and associated documentation files (the "Software"), to deal in
8 * the Software without restriction, including without limitation the rights to
9 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
10 * of the Software, and to permit persons to whom the Software is furnished to do
11 * so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in all
14 * copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 * SOFTWARE.
23 *
24 * <http://opensource.org/licenses/MIT>
25 */
26namespace Skyzyx\Components\Mimetypes;
27/**
28 * Provides mappings of file extensions to mimetypes.
29 * API-compatible with Guzzle\Http\Mimetypes (http://guzzlephp.org).
30 * @link https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x/docs/conf/mime.types
31 */
32class Mimetypes
33{
34    /**
35     * @var self
36     */
37    protected static $instance;
38    /**
39     * Returns an associative array with extension => mimetype mappings.
40     *
41     * Generated from source on 26 Sep 2016, 10:26am UTC.
42     *
43     * @return array An associative array with extension => mimetype mappings.
44     */
45    public function getMimeTypes()
46    {
47        return [
48            '3dml'        => 'text/vnd.in3d.3dml',
49            '3ds'         => 'image/x-3ds',
50            '3g2'         => 'video/3gpp2',
51            '3gp'         => 'video/3gpp',
52            '7z'          => 'application/x-7z-compressed',
53            'aab'         => 'application/x-authorware-bin',
54            'aac'         => 'audio/x-aac',
55            'aam'         => 'application/x-authorware-map',
56            'aas'         => 'application/x-authorware-seg',
57            'abw'         => 'application/x-abiword',
58            'ac'          => 'application/pkix-attr-cert',
59            'acc'         => 'application/vnd.americandynamics.acc',
60            'ace'         => 'application/x-ace-compressed',
61            'acu'         => 'application/vnd.acucobol',
62            'acutc'       => 'application/vnd.acucorp',
63            'adp'         => 'audio/adpcm',
64            'aep'         => 'application/vnd.audiograph',
65            'afm'         => 'application/x-font-type1',
66            'afp'         => 'application/vnd.ibm.modcap',
67            'ahead'       => 'application/vnd.ahead.space',
68            'ai'          => 'application/postscript',
69            'aif'         => 'audio/x-aiff',
70            'aifc'        => 'audio/x-aiff',
71            'aiff'        => 'audio/x-aiff',
72            'air'         => 'application/vnd.adobe.air-application-installer-package+zip',
73            'ait'         => 'application/vnd.dvb.ait',
74            'ami'         => 'application/vnd.amiga.ami',
75            'apk'         => 'application/vnd.android.package-archive',
76            'appcache'    => 'text/cache-manifest',
77            'application' => 'application/x-ms-application',
78            'apr'         => 'application/vnd.lotus-approach',
79            'arc'         => 'application/x-freearc',
80            'asa'         => 'text/plain',
81            'asax'        => 'application/octet-stream',
82            'asc'         => 'application/pgp-signature',
83            'ascx'        => 'text/plain',
84            'asf'         => 'video/x-ms-asf',
85            'ashx'        => 'text/plain',
86            'asm'         => 'text/x-asm',
87            'asmx'        => 'text/plain',
88            'aso'         => 'application/vnd.accpac.simply.aso',
89            'asp'         => 'text/plain',
90            'aspx'        => 'text/plain',
91            'asx'         => 'video/x-ms-asf',
92            'atc'         => 'application/vnd.acucorp',
93            'atom'        => 'application/atom+xml',
94            'atomcat'     => 'application/atomcat+xml',
95            'atomsvc'     => 'application/atomsvc+xml',
96            'atx'         => 'application/vnd.antix.game-component',
97            'au'          => 'audio/basic',
98            'avi'         => 'video/x-msvideo',
99            'aw'          => 'application/applixware',
100            'axd'         => 'text/plain',
101            'azf'         => 'application/vnd.airzip.filesecure.azf',
102            'azs'         => 'application/vnd.airzip.filesecure.azs',
103            'azw'         => 'application/vnd.amazon.ebook',
104            'bat'         => 'application/x-msdownload',
105            'bcpio'       => 'application/x-bcpio',
106            'bdf'         => 'application/x-font-bdf',
107            'bdm'         => 'application/vnd.syncml.dm+wbxml',
108            'bed'         => 'application/vnd.realvnc.bed',
109            'bh2'         => 'application/vnd.fujitsu.oasysprs',
110            'bin'         => 'application/octet-stream',
111            'blb'         => 'application/x-blorb',
112            'blorb'       => 'application/x-blorb',
113            'bmi'         => 'application/vnd.bmi',
114            'bmp'         => 'image/bmp',
115            'book'        => 'application/vnd.framemaker',
116            'box'         => 'application/vnd.previewsystems.box',
117            'boz'         => 'application/x-bzip2',
118            'bpk'         => 'application/octet-stream',
119            'btif'        => 'image/prs.btif',
120            'bz'          => 'application/x-bzip',
121            'bz2'         => 'application/x-bzip2',
122            'c'           => 'text/x-c',
123            'c11amc'      => 'application/vnd.cluetrust.cartomobile-config',
124            'c11amz'      => 'application/vnd.cluetrust.cartomobile-config-pkg',
125            'c4d'         => 'application/vnd.clonk.c4group',
126            'c4f'         => 'application/vnd.clonk.c4group',
127            'c4g'         => 'application/vnd.clonk.c4group',
128            'c4p'         => 'application/vnd.clonk.c4group',
129            'c4u'         => 'application/vnd.clonk.c4group',
130            'cab'         => 'application/vnd.ms-cab-compressed',
131            'caf'         => 'audio/x-caf',
132            'cap'         => 'application/vnd.tcpdump.pcap',
133            'car'         => 'application/vnd.curl.car',
134            'cat'         => 'application/vnd.ms-pki.seccat',
135            'cb7'         => 'application/x-cbr',
136            'cba'         => 'application/x-cbr',
137            'cbr'         => 'application/x-cbr',
138            'cbt'         => 'application/x-cbr',
139            'cbz'         => 'application/x-cbr',
140            'cc'          => 'text/x-c',
141            'cct'         => 'application/x-director',
142            'ccxml'       => 'application/ccxml+xml',
143            'cdbcmsg'     => 'application/vnd.contact.cmsg',
144            'cdf'         => 'application/x-netcdf',
145            'cdkey'       => 'application/vnd.mediastation.cdkey',
146            'cdmia'       => 'application/cdmi-capability',
147            'cdmic'       => 'application/cdmi-container',
148            'cdmid'       => 'application/cdmi-domain',
149            'cdmio'       => 'application/cdmi-object',
150            'cdmiq'       => 'application/cdmi-queue',
151            'cdx'         => 'chemical/x-cdx',
152            'cdxml'       => 'application/vnd.chemdraw+xml',
153            'cdy'         => 'application/vnd.cinderella',
154            'cer'         => 'application/pkix-cert',
155            'cfc'         => 'application/x-coldfusion',
156            'cfm'         => 'application/x-coldfusion',
157            'cfs'         => 'application/x-cfs-compressed',
158            'cgm'         => 'image/cgm',
159            'chat'        => 'application/x-chat',
160            'chm'         => 'application/vnd.ms-htmlhelp',
161            'chrt'        => 'application/vnd.kde.kchart',
162            'cif'         => 'chemical/x-cif',
163            'cii'         => 'application/vnd.anser-web-certificate-issue-initiation',
164            'cil'         => 'application/vnd.ms-artgalry',
165            'cla'         => 'application/vnd.claymore',
166            'class'       => 'application/java-vm',
167            'clkk'        => 'application/vnd.crick.clicker.keyboard',
168            'clkp'        => 'application/vnd.crick.clicker.palette',
169            'clkt'        => 'application/vnd.crick.clicker.template',
170            'clkw'        => 'application/vnd.crick.clicker.wordbank',
171            'clkx'        => 'application/vnd.crick.clicker',
172            'clp'         => 'application/x-msclip',
173            'cmc'         => 'application/vnd.cosmocaller',
174            'cmdf'        => 'chemical/x-cmdf',
175            'cml'         => 'chemical/x-cml',
176            'cmp'         => 'application/vnd.yellowriver-custom-menu',
177            'cmx'         => 'image/x-cmx',
178            'cod'         => 'application/vnd.rim.cod',
179            'com'         => 'application/x-msdownload',
180            'conf'        => 'text/plain',
181            'cpio'        => 'application/x-cpio',
182            'cpp'         => 'text/x-c',
183            'cpt'         => 'application/mac-compactpro',
184            'crd'         => 'application/x-mscardfile',
185            'crl'         => 'application/pkix-crl',
186            'crt'         => 'application/x-x509-ca-cert',
187            'crx'         => 'application/octet-stream',
188            'cryptonote'  => 'application/vnd.rig.cryptonote',
189            'cs'          => 'text/plain',
190            'csh'         => 'application/x-csh',
191            'csml'        => 'chemical/x-csml',
192            'csp'         => 'application/vnd.commonspace',
193            'css'         => 'text/css',
194            'cst'         => 'application/x-director',
195            'csv'         => 'text/csv',
196            'cu'          => 'application/cu-seeme',
197            'curl'        => 'text/vnd.curl',
198            'cww'         => 'application/prs.cww',
199            'cxt'         => 'application/x-director',
200            'cxx'         => 'text/x-c',
201            'dae'         => 'model/vnd.collada+xml',
202            'daf'         => 'application/vnd.mobius.daf',
203            'dart'        => 'application/vnd.dart',
204            'dataless'    => 'application/vnd.fdsn.seed',
205            'davmount'    => 'application/davmount+xml',
206            'dbk'         => 'application/docbook+xml',
207            'dcr'         => 'application/x-director',
208            'dcurl'       => 'text/vnd.curl.dcurl',
209            'dd2'         => 'application/vnd.oma.dd2+xml',
210            'ddd'         => 'application/vnd.fujixerox.ddd',
211            'deb'         => 'application/x-debian-package',
212            'def'         => 'text/plain',
213            'deploy'      => 'application/octet-stream',
214            'der'         => 'application/x-x509-ca-cert',
215            'dfac'        => 'application/vnd.dreamfactory',
216            'dgc'         => 'application/x-dgc-compressed',
217            'dic'         => 'text/x-c',
218            'dir'         => 'application/x-director',
219            'dis'         => 'application/vnd.mobius.dis',
220            'dist'        => 'application/octet-stream',
221            'distz'       => 'application/octet-stream',
222            'djv'         => 'image/vnd.djvu',
223            'djvu'        => 'image/vnd.djvu',
224            'dll'         => 'application/x-msdownload',
225            'dmg'         => 'application/x-apple-diskimage',
226            'dmp'         => 'application/vnd.tcpdump.pcap',
227            'dms'         => 'application/octet-stream',
228            'dna'         => 'application/vnd.dna',
229            'doc'         => 'application/msword',
230            'docm'        => 'application/vnd.ms-word.document.macroenabled.12',
231            'docx'        => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
232            'dot'         => 'application/msword',
233            'dotm'        => 'application/vnd.ms-word.template.macroenabled.12',
234            'dotx'        => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
235            'dp'          => 'application/vnd.osgi.dp',
236            'dpg'         => 'application/vnd.dpgraph',
237            'dra'         => 'audio/vnd.dra',
238            'dsc'         => 'text/prs.lines.tag',
239            'dssc'        => 'application/dssc+der',
240            'dtb'         => 'application/x-dtbook+xml',
241            'dtd'         => 'application/xml-dtd',
242            'dts'         => 'audio/vnd.dts',
243            'dtshd'       => 'audio/vnd.dts.hd',
244            'dump'        => 'application/octet-stream',
245            'dvb'         => 'video/vnd.dvb.file',
246            'dvi'         => 'application/x-dvi',
247            'dwf'         => 'model/vnd.dwf',
248            'dwg'         => 'image/vnd.dwg',
249            'dxf'         => 'image/vnd.dxf',
250            'dxp'         => 'application/vnd.spotfire.dxp',
251            'dxr'         => 'application/x-director',
252            'ecelp4800'   => 'audio/vnd.nuera.ecelp4800',
253            'ecelp7470'   => 'audio/vnd.nuera.ecelp7470',
254            'ecelp9600'   => 'audio/vnd.nuera.ecelp9600',
255            'ecma'        => 'application/ecmascript',
256            'edm'         => 'application/vnd.novadigm.edm',
257            'edx'         => 'application/vnd.novadigm.edx',
258            'efif'        => 'application/vnd.picsel',
259            'ei6'         => 'application/vnd.pg.osasli',
260            'elc'         => 'application/octet-stream',
261            'emf'         => 'application/x-msmetafile',
262            'eml'         => 'message/rfc822',
263            'emma'        => 'application/emma+xml',
264            'emz'         => 'application/x-msmetafile',
265            'eol'         => 'audio/vnd.digital-winds',
266            'eot'         => 'application/vnd.ms-fontobject',
267            'eps'         => 'application/postscript',
268            'epub'        => 'application/epub+zip',
269            'es3'         => 'application/vnd.eszigno3+xml',
270            'esa'         => 'application/vnd.osgi.subsystem',
271            'esf'         => 'application/vnd.epson.esf',
272            'et3'         => 'application/vnd.eszigno3+xml',
273            'etx'         => 'text/x-setext',
274            'eva'         => 'application/x-eva',
275            'evy'         => 'application/x-envoy',
276            'exe'         => 'application/x-msdownload',
277            'exi'         => 'application/exi',
278            'ext'         => 'application/vnd.novadigm.ext',
279            'ez'          => 'application/andrew-inset',
280            'ez2'         => 'application/vnd.ezpix-album',
281            'ez3'         => 'application/vnd.ezpix-package',
282            'f'           => 'text/x-fortran',
283            'f4v'         => 'video/x-f4v',
284            'f77'         => 'text/x-fortran',
285            'f90'         => 'text/x-fortran',
286            'fbs'         => 'image/vnd.fastbidsheet',
287            'fcdt'        => 'application/vnd.adobe.formscentral.fcdt',
288            'fcs'         => 'application/vnd.isac.fcs',
289            'fdf'         => 'application/vnd.fdf',
290            'fe_launch'   => 'application/vnd.denovo.fcselayout-link',
291            'fg5'         => 'application/vnd.fujitsu.oasysgp',
292            'fgd'         => 'application/x-director',
293            'fh'          => 'image/x-freehand',
294            'fh4'         => 'image/x-freehand',
295            'fh5'         => 'image/x-freehand',
296            'fh7'         => 'image/x-freehand',
297            'fhc'         => 'image/x-freehand',
298            'fig'         => 'application/x-xfig',
299            'flac'        => 'audio/x-flac',
300            'fli'         => 'video/x-fli',
301            'flo'         => 'application/vnd.micrografx.flo',
302            'flv'         => 'video/x-flv',
303            'flw'         => 'application/vnd.kde.kivio',
304            'flx'         => 'text/vnd.fmi.flexstor',
305            'fly'         => 'text/vnd.fly',
306            'fm'          => 'application/vnd.framemaker',
307            'fnc'         => 'application/vnd.frogans.fnc',
308            'for'         => 'text/x-fortran',
309            'fpx'         => 'image/vnd.fpx',
310            'frame'       => 'application/vnd.framemaker',
311            'fsc'         => 'application/vnd.fsc.weblaunch',
312            'fst'         => 'image/vnd.fst',
313            'ftc'         => 'application/vnd.fluxtime.clip',
314            'fti'         => 'application/vnd.anser-web-funds-transfer-initiation',
315            'fvt'         => 'video/vnd.fvt',
316            'fxp'         => 'application/vnd.adobe.fxp',
317            'fxpl'        => 'application/vnd.adobe.fxp',
318            'fzs'         => 'application/vnd.fuzzysheet',
319            'g2w'         => 'application/vnd.geoplan',
320            'g3'          => 'image/g3fax',
321            'g3w'         => 'application/vnd.geospace',
322            'gac'         => 'application/vnd.groove-account',
323            'gam'         => 'application/x-tads',
324            'gbr'         => 'application/rpki-ghostbusters',
325            'gca'         => 'application/x-gca-compressed',
326            'gdl'         => 'model/vnd.gdl',
327            'geo'         => 'application/vnd.dynageo',
328            'gex'         => 'application/vnd.geometry-explorer',
329            'ggb'         => 'application/vnd.geogebra.file',
330            'ggt'         => 'application/vnd.geogebra.tool',
331            'ghf'         => 'application/vnd.groove-help',
332            'gif'         => 'image/gif',
333            'gim'         => 'application/vnd.groove-identity-message',
334            'gml'         => 'application/gml+xml',
335            'gmx'         => 'application/vnd.gmx',
336            'gnumeric'    => 'application/x-gnumeric',
337            'gph'         => 'application/vnd.flographit',
338            'gpx'         => 'application/gpx+xml',
339            'gqf'         => 'application/vnd.grafeq',
340            'gqs'         => 'application/vnd.grafeq',
341            'gram'        => 'application/srgs',
342            'gramps'      => 'application/x-gramps-xml',
343            'gre'         => 'application/vnd.geometry-explorer',
344            'grv'         => 'application/vnd.groove-injector',
345            'grxml'       => 'application/srgs+xml',
346            'gsf'         => 'application/x-font-ghostscript',
347            'gtar'        => 'application/x-gtar',
348            'gtm'         => 'application/vnd.groove-tool-message',
349            'gtw'         => 'model/vnd.gtw',
350            'gv'          => 'text/vnd.graphviz',
351            'gxf'         => 'application/gxf',
352            'gxt'         => 'application/vnd.geonext',
353            'gz'          => 'application/x-gzip',
354            'h'           => 'text/x-c',
355            'h261'        => 'video/h261',
356            'h263'        => 'video/h263',
357            'h264'        => 'video/h264',
358            'hal'         => 'application/vnd.hal+xml',
359            'hbci'        => 'application/vnd.hbci',
360            'hdf'         => 'application/x-hdf',
361            'hh'          => 'text/x-c',
362            'hlp'         => 'application/winhlp',
363            'hpgl'        => 'application/vnd.hp-hpgl',
364            'hpid'        => 'application/vnd.hp-hpid',
365            'hps'         => 'application/vnd.hp-hps',
366            'hqx'         => 'application/mac-binhex40',
367            'hta'         => 'application/octet-stream',
368            'htc'         => 'text/html',
369            'htke'        => 'application/vnd.kenameaapp',
370            'htm'         => 'text/html',
371            'html'        => 'text/html',
372            'hvd'         => 'application/vnd.yamaha.hv-dic',
373            'hvp'         => 'application/vnd.yamaha.hv-voice',
374            'hvs'         => 'application/vnd.yamaha.hv-script',
375            'i2g'         => 'application/vnd.intergeo',
376            'icc'         => 'application/vnd.iccprofile',
377            'ice'         => 'x-conference/x-cooltalk',
378            'icm'         => 'application/vnd.iccprofile',
379            'ico'         => 'image/x-icon',
380            'ics'         => 'text/calendar',
381            'ief'         => 'image/ief',
382            'ifb'         => 'text/calendar',
383            'ifm'         => 'application/vnd.shana.informed.formdata',
384            'iges'        => 'model/iges',
385            'igl'         => 'application/vnd.igloader',
386            'igm'         => 'application/vnd.insors.igm',
387            'igs'         => 'model/iges',
388            'igx'         => 'application/vnd.micrografx.igx',
389            'iif'         => 'application/vnd.shana.informed.interchange',
390            'imp'         => 'application/vnd.accpac.simply.imp',
391            'ims'         => 'application/vnd.ms-ims',
392            'in'          => 'text/plain',
393            'ini'         => 'text/plain',
394            'ink'         => 'application/inkml+xml',
395            'inkml'       => 'application/inkml+xml',
396            'install'     => 'application/x-install-instructions',
397            'iota'        => 'application/vnd.astraea-software.iota',
398            'ipa'         => 'application/octet-stream',
399            'ipfix'       => 'application/ipfix',
400            'ipk'         => 'application/vnd.shana.informed.package',
401            'irm'         => 'application/vnd.ibm.rights-management',
402            'irp'         => 'application/vnd.irepository.package+xml',
403            'iso'         => 'application/x-iso9660-image',
404            'itp'         => 'application/vnd.shana.informed.formtemplate',
405            'ivp'         => 'application/vnd.immervision-ivp',
406            'ivu'         => 'application/vnd.immervision-ivu',
407            'jad'         => 'text/vnd.sun.j2me.app-descriptor',
408            'jam'         => 'application/vnd.jam',
409            'jar'         => 'application/java-archive',
410            'java'        => 'text/x-java-source',
411            'jisp'        => 'application/vnd.jisp',
412            'jlt'         => 'application/vnd.hp-jlyt',
413            'jnlp'        => 'application/x-java-jnlp-file',
414            'joda'        => 'application/vnd.joost.joda-archive',
415            'jpe'         => 'image/jpeg',
416            'jpeg'        => 'image/jpeg',
417            'jpg'         => 'image/jpeg',
418            'jpgm'        => 'video/jpm',
419            'jpgv'        => 'video/jpeg',
420            'jpm'         => 'video/jpm',
421            'js'          => 'text/javascript',
422            'json'        => 'application/json',
423            'jsonml'      => 'application/jsonml+json',
424            'kar'         => 'audio/midi',
425            'karbon'      => 'application/vnd.kde.karbon',
426            'kfo'         => 'application/vnd.kde.kformula',
427            'kia'         => 'application/vnd.kidspiration',
428            'kml'         => 'application/vnd.google-earth.kml+xml',
429            'kmz'         => 'application/vnd.google-earth.kmz',
430            'kne'         => 'application/vnd.kinar',
431            'knp'         => 'application/vnd.kinar',
432            'kon'         => 'application/vnd.kde.kontour',
433            'kpr'         => 'application/vnd.kde.kpresenter',
434            'kpt'         => 'application/vnd.kde.kpresenter',
435            'kpxx'        => 'application/vnd.ds-keypoint',
436            'ksp'         => 'application/vnd.kde.kspread',
437            'ktr'         => 'application/vnd.kahootz',
438            'ktx'         => 'image/ktx',
439            'ktz'         => 'application/vnd.kahootz',
440            'kwd'         => 'application/vnd.kde.kword',
441            'kwt'         => 'application/vnd.kde.kword',
442            'lasxml'      => 'application/vnd.las.las+xml',
443            'latex'       => 'application/x-latex',
444            'lbd'         => 'application/vnd.llamagraphics.life-balance.desktop',
445            'lbe'         => 'application/vnd.llamagraphics.life-balance.exchange+xml',
446            'les'         => 'application/vnd.hhe.lesson-player',
447            'lha'         => 'application/x-lzh-compressed',
448            'link66'      => 'application/vnd.route66.link66+xml',
449            'list'        => 'text/plain',
450            'list3820'    => 'application/vnd.ibm.modcap',
451            'listafp'     => 'application/vnd.ibm.modcap',
452            'lnk'         => 'application/x-ms-shortcut',
453            'log'         => 'text/plain',
454            'lostxml'     => 'application/lost+xml',
455            'lrf'         => 'application/octet-stream',
456            'lrm'         => 'application/vnd.ms-lrm',
457            'ltf'         => 'application/vnd.frogans.ltf',
458            'lvp'         => 'audio/vnd.lucent.voice',
459            'lwp'         => 'application/vnd.lotus-wordpro',
460            'lz'          => 'application/x-lzip',
461            'lzh'         => 'application/x-lzh-compressed',
462            'lzma'        => 'application/x-lzma',
463            'lzo'         => 'application/x-lzop',
464            'm13'         => 'application/x-msmediaview',
465            'm14'         => 'application/x-msmediaview',
466            'm1v'         => 'video/mpeg',
467            'm21'         => 'application/mp21',
468            'm2a'         => 'audio/mpeg',
469            'm2v'         => 'video/mpeg',
470            'm3a'         => 'audio/mpeg',
471            'm3u'         => 'audio/x-mpegurl',
472            'm3u8'        => 'application/vnd.apple.mpegurl',
473            'm4a'         => 'audio/mp4',
474            'm4u'         => 'video/vnd.mpegurl',
475            'm4v'         => 'video/mp4',
476            'ma'          => 'application/mathematica',
477            'mads'        => 'application/mads+xml',
478            'mag'         => 'application/vnd.ecowin.chart',
479            'maker'       => 'application/vnd.framemaker',
480            'man'         => 'text/troff',
481            'mar'         => 'application/octet-stream',
482            'mathml'      => 'application/mathml+xml',
483            'mb'          => 'application/mathematica',
484            'mbk'         => 'application/vnd.mobius.mbk',
485            'mbox'        => 'application/mbox',
486            'mc1'         => 'application/vnd.medcalcdata',
487            'mcd'         => 'application/vnd.mcd',
488            'mcurl'       => 'text/vnd.curl.mcurl',
489            'mdb'         => 'application/x-msaccess',
490            'mdi'         => 'image/vnd.ms-modi',
491            'me'          => 'text/troff',
492            'mesh'        => 'model/mesh',
493            'meta4'       => 'application/metalink4+xml',
494            'metalink'    => 'application/metalink+xml',
495            'mets'        => 'application/mets+xml',
496            'mfm'         => 'application/vnd.mfmp',
497            'mft'         => 'application/rpki-manifest',
498            'mgp'         => 'application/vnd.osgeo.mapguide.package',
499            'mgz'         => 'application/vnd.proteus.magazine',
500            'mid'         => 'audio/midi',
501            'midi'        => 'audio/midi',
502            'mie'         => 'application/x-mie',
503            'mif'         => 'application/vnd.mif',
504            'mime'        => 'message/rfc822',
505            'mj2'         => 'video/mj2',
506            'mjp2'        => 'video/mj2',
507            'mk3d'        => 'video/x-matroska',
508            'mka'         => 'audio/x-matroska',
509            'mks'         => 'video/x-matroska',
510            'mkv'         => 'video/x-matroska',
511            'mlp'         => 'application/vnd.dolby.mlp',
512            'mmd'         => 'application/vnd.chipnuts.karaoke-mmd',
513            'mmf'         => 'application/vnd.smaf',
514            'mmr'         => 'image/vnd.fujixerox.edmics-mmr',
515            'mng'         => 'video/x-mng',
516            'mny'         => 'application/x-msmoney',
517            'mobi'        => 'application/x-mobipocket-ebook',
518            'mods'        => 'application/mods+xml',
519            'mov'         => 'video/quicktime',
520            'movie'       => 'video/x-sgi-movie',
521            'mp2'         => 'audio/mpeg',
522            'mp21'        => 'application/mp21',
523            'mp2a'        => 'audio/mpeg',
524            'mp3'         => 'audio/mpeg',
525            'mp4'         => 'video/mp4',
526            'mp4a'        => 'audio/mp4',
527            'mp4s'        => 'application/mp4',
528            'mp4v'        => 'video/mp4',
529            'mpc'         => 'application/vnd.mophun.certificate',
530            'mpe'         => 'video/mpeg',
531            'mpeg'        => 'video/mpeg',
532            'mpg'         => 'video/mpeg',
533            'mpg4'        => 'video/mp4',
534            'mpga'        => 'audio/mpeg',
535            'mpkg'        => 'application/vnd.apple.installer+xml',
536            'mpm'         => 'application/vnd.blueice.multipass',
537            'mpn'         => 'application/vnd.mophun.application',
538            'mpp'         => 'application/vnd.ms-project',
539            'mpt'         => 'application/vnd.ms-project',
540            'mpy'         => 'application/vnd.ibm.minipay',
541            'mqy'         => 'application/vnd.mobius.mqy',
542            'mrc'         => 'application/marc',
543            'mrcx'        => 'application/marcxml+xml',
544            'ms'          => 'text/troff',
545            'mscml'       => 'application/mediaservercontrol+xml',
546            'mseed'       => 'application/vnd.fdsn.mseed',
547            'mseq'        => 'application/vnd.mseq',
548            'msf'         => 'application/vnd.epson.msf',
549            'msh'         => 'model/mesh',
550            'msi'         => 'application/x-msdownload',
551            'msl'         => 'application/vnd.mobius.msl',
552            'msty'        => 'application/vnd.muvee.style',
553            'mts'         => 'model/vnd.mts',
554            'mus'         => 'application/vnd.musician',
555            'musicxml'    => 'application/vnd.recordare.musicxml+xml',
556            'mvb'         => 'application/x-msmediaview',
557            'mwf'         => 'application/vnd.mfer',
558            'mxf'         => 'application/mxf',
559            'mxl'         => 'application/vnd.recordare.musicxml',
560            'mxml'        => 'application/xv+xml',
561            'mxs'         => 'application/vnd.triscape.mxs',
562            'mxu'         => 'video/vnd.mpegurl',
563            'n-gage'      => 'application/vnd.nokia.n-gage.symbian.install',
564            'n3'          => 'text/n3',
565            'nb'          => 'application/mathematica',
566            'nbp'         => 'application/vnd.wolfram.player',
567            'nc'          => 'application/x-netcdf',
568            'ncx'         => 'application/x-dtbncx+xml',
569            'nfo'         => 'text/x-nfo',
570            'ngdat'       => 'application/vnd.nokia.n-gage.data',
571            'nitf'        => 'application/vnd.nitf',
572            'nlu'         => 'application/vnd.neurolanguage.nlu',
573            'nml'         => 'application/vnd.enliven',
574            'nnd'         => 'application/vnd.noblenet-directory',
575            'nns'         => 'application/vnd.noblenet-sealer',
576            'nnw'         => 'application/vnd.noblenet-web',
577            'npx'         => 'image/vnd.net-fpx',
578            'nsc'         => 'application/x-conference',
579            'nsf'         => 'application/vnd.lotus-notes',
580            'ntf'         => 'application/vnd.nitf',
581            'nzb'         => 'application/x-nzb',
582            'oa2'         => 'application/vnd.fujitsu.oasys2',
583            'oa3'         => 'application/vnd.fujitsu.oasys3',
584            'oas'         => 'application/vnd.fujitsu.oasys',
585            'obd'         => 'application/x-msbinder',
586            'obj'         => 'application/x-tgif',
587            'oda'         => 'application/oda',
588            'odb'         => 'application/vnd.oasis.opendocument.database',
589            'odc'         => 'application/vnd.oasis.opendocument.chart',
590            'odf'         => 'application/vnd.oasis.opendocument.formula',
591            'odft'        => 'application/vnd.oasis.opendocument.formula-template',
592            'odg'         => 'application/vnd.oasis.opendocument.graphics',
593            'odi'         => 'application/vnd.oasis.opendocument.image',
594            'odm'         => 'application/vnd.oasis.opendocument.text-master',
595            'odp'         => 'application/vnd.oasis.opendocument.presentation',
596            'ods'         => 'application/vnd.oasis.opendocument.spreadsheet',
597            'odt'         => 'application/vnd.oasis.opendocument.text',
598            'oga'         => 'audio/ogg',
599            'ogg'         => 'audio/ogg',
600            'ogv'         => 'video/ogg',
601            'ogx'         => 'application/ogg',
602            'omdoc'       => 'application/omdoc+xml',
603            'onepkg'      => 'application/onenote',
604            'onetmp'      => 'application/onenote',
605            'onetoc'      => 'application/onenote',
606            'onetoc2'     => 'application/onenote',
607            'opf'         => 'application/oebps-package+xml',
608            'opml'        => 'text/x-opml',
609            'oprc'        => 'application/vnd.palm',
610            'org'         => 'application/vnd.lotus-organizer',
611            'osf'         => 'application/vnd.yamaha.openscoreformat',
612            'osfpvg'      => 'application/vnd.yamaha.openscoreformat.osfpvg+xml',
613            'otc'         => 'application/vnd.oasis.opendocument.chart-template',
614            'otf'         => 'application/x-font-otf',
615            'otg'         => 'application/vnd.oasis.opendocument.graphics-template',
616            'oth'         => 'application/vnd.oasis.opendocument.text-web',
617            'oti'         => 'application/vnd.oasis.opendocument.image-template',
618            'otp'         => 'application/vnd.oasis.opendocument.presentation-template',
619            'ots'         => 'application/vnd.oasis.opendocument.spreadsheet-template',
620            'ott'         => 'application/vnd.oasis.opendocument.text-template',
621            'oxps'        => 'application/oxps',
622            'oxt'         => 'application/vnd.openofficeorg.extension',
623            'p'           => 'text/x-pascal',
624            'p10'         => 'application/pkcs10',
625            'p12'         => 'application/x-pkcs12',
626            'p7b'         => 'application/x-pkcs7-certificates',
627            'p7c'         => 'application/pkcs7-mime',
628            'p7m'         => 'application/pkcs7-mime',
629            'p7r'         => 'application/x-pkcs7-certreqresp',
630            'p7s'         => 'application/pkcs7-signature',
631            'p8'          => 'application/pkcs8',
632            'pas'         => 'text/x-pascal',
633            'paw'         => 'application/vnd.pawaafile',
634            'pbd'         => 'application/vnd.powerbuilder6',
635            'pbm'         => 'image/x-portable-bitmap',
636            'pcap'        => 'application/vnd.tcpdump.pcap',
637            'pcf'         => 'application/x-font-pcf',
638            'pcl'         => 'application/vnd.hp-pcl',
639            'pclxl'       => 'application/vnd.hp-pclxl',
640            'pct'         => 'image/x-pict',
641            'pcurl'       => 'application/vnd.curl.pcurl',
642            'pcx'         => 'image/x-pcx',
643            'pdb'         => 'application/vnd.palm',
644            'pdf'         => 'application/pdf',
645            'pfa'         => 'application/x-font-type1',
646            'pfb'         => 'application/x-font-type1',
647            'pfm'         => 'application/x-font-type1',
648            'pfr'         => 'application/font-tdpfr',
649            'pfx'         => 'application/x-pkcs12',
650            'pgm'         => 'image/x-portable-graymap',
651            'pgn'         => 'application/x-chess-pgn',
652            'pgp'         => 'application/pgp-encrypted',
653            'phar'        => 'application/octet-stream',
654            'php'         => 'text/plain',
655            'phps'        => 'application/x-httpd-phps',
656            'pic'         => 'image/x-pict',
657            'pkg'         => 'application/octet-stream',
658            'pki'         => 'application/pkixcmp',
659            'pkipath'     => 'application/pkix-pkipath',
660            'plb'         => 'application/vnd.3gpp.pic-bw-large',
661            'plc'         => 'application/vnd.mobius.plc',
662            'plf'         => 'application/vnd.pocketlearn',
663            'plist'       => 'application/x-plist',
664            'pls'         => 'application/pls+xml',
665            'pml'         => 'application/vnd.ctc-posml',
666            'png'         => 'image/png',
667            'pnm'         => 'image/x-portable-anymap',
668            'portpkg'     => 'application/vnd.macports.portpkg',
669            'pot'         => 'application/vnd.ms-powerpoint',
670            'potm'        => 'application/vnd.ms-powerpoint.template.macroenabled.12',
671            'potx'        => 'application/vnd.openxmlformats-officedocument.presentationml.template',
672            'ppam'        => 'application/vnd.ms-powerpoint.addin.macroenabled.12',
673            'ppd'         => 'application/vnd.cups-ppd',
674            'ppm'         => 'image/x-portable-pixmap',
675            'pps'         => 'application/vnd.ms-powerpoint',
676            'ppsm'        => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',
677            'ppsx'        => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
678            'ppt'         => 'application/vnd.ms-powerpoint',
679            'pptm'        => 'application/vnd.ms-powerpoint.presentation.macroenabled.12',
680            'pptx'        => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
681            'pqa'         => 'application/vnd.palm',
682            'prc'         => 'application/x-mobipocket-ebook',
683            'pre'         => 'application/vnd.lotus-freelance',
684            'prf'         => 'application/pics-rules',
685            'ps'          => 'application/postscript',
686            'psb'         => 'application/vnd.3gpp.pic-bw-small',
687            'psd'         => 'image/vnd.adobe.photoshop',
688            'psf'         => 'application/x-font-linux-psf',
689            'pskcxml'     => 'application/pskc+xml',
690            'ptid'        => 'application/vnd.pvi.ptid1',
691            'pub'         => 'application/x-mspublisher',
692            'pvb'         => 'application/vnd.3gpp.pic-bw-var',
693            'pwn'         => 'application/vnd.3m.post-it-notes',
694            'pya'         => 'audio/vnd.ms-playready.media.pya',
695            'pyv'         => 'video/vnd.ms-playready.media.pyv',
696            'qam'         => 'application/vnd.epson.quickanime',
697            'qbo'         => 'application/vnd.intu.qbo',
698            'qfx'         => 'application/vnd.intu.qfx',
699            'qps'         => 'application/vnd.publishare-delta-tree',
700            'qt'          => 'video/quicktime',
701            'qwd'         => 'application/vnd.quark.quarkxpress',
702            'qwt'         => 'application/vnd.quark.quarkxpress',
703            'qxb'         => 'application/vnd.quark.quarkxpress',
704            'qxd'         => 'application/vnd.quark.quarkxpress',
705            'qxl'         => 'application/vnd.quark.quarkxpress',
706            'qxt'         => 'application/vnd.quark.quarkxpress',
707            'ra'          => 'audio/x-pn-realaudio',
708            'ram'         => 'audio/x-pn-realaudio',
709            'rar'         => 'application/x-rar-compressed',
710            'ras'         => 'image/x-cmu-raster',
711            'rb'          => 'text/plain',
712            'rcprofile'   => 'application/vnd.ipunplugged.rcprofile',
713            'rdf'         => 'application/rdf+xml',
714            'rdz'         => 'application/vnd.data-vision.rdz',
715            'rep'         => 'application/vnd.businessobjects',
716            'res'         => 'application/x-dtbresource+xml',
717            'resx'        => 'text/xml',
718            'rgb'         => 'image/x-rgb',
719            'rif'         => 'application/reginfo+xml',
720            'rip'         => 'audio/vnd.rip',
721            'ris'         => 'application/x-research-info-systems',
722            'rl'          => 'application/resource-lists+xml',
723            'rlc'         => 'image/vnd.fujixerox.edmics-rlc',
724            'rld'         => 'application/resource-lists-diff+xml',
725            'rm'          => 'application/vnd.rn-realmedia',
726            'rmi'         => 'audio/midi',
727            'rmp'         => 'audio/x-pn-realaudio-plugin',
728            'rms'         => 'application/vnd.jcp.javame.midlet-rms',
729            'rmvb'        => 'application/vnd.rn-realmedia-vbr',
730            'rnc'         => 'application/relax-ng-compact-syntax',
731            'roa'         => 'application/rpki-roa',
732            'roff'        => 'text/troff',
733            'rp9'         => 'application/vnd.cloanto.rp9',
734            'rpm'         => 'application/x-rpm',
735            'rpss'        => 'application/vnd.nokia.radio-presets',
736            'rpst'        => 'application/vnd.nokia.radio-preset',
737            'rq'          => 'application/sparql-query',
738            'rs'          => 'application/rls-services+xml',
739            'rsd'         => 'application/rsd+xml',
740            'rss'         => 'application/rss+xml',
741            'rtf'         => 'application/rtf',
742            'rtx'         => 'text/richtext',
743            's'           => 'text/x-asm',
744            's3m'         => 'audio/s3m',
745            's7z'         => 'application/x-7z-compressed',
746            'saf'         => 'application/vnd.yamaha.smaf-audio',
747            'safariextz'  => 'application/octet-stream',
748            'sass'        => 'text/x-sass',
749            'sbml'        => 'application/sbml+xml',
750            'sc'          => 'application/vnd.ibm.secure-container',
751            'scd'         => 'application/x-msschedule',
752            'scm'         => 'application/vnd.lotus-screencam',
753            'scq'         => 'application/scvp-cv-request',
754            'scs'         => 'application/scvp-cv-response',
755            'scss'        => 'text/x-scss',
756            'scurl'       => 'text/vnd.curl.scurl',
757            'sda'         => 'application/vnd.stardivision.draw',
758            'sdc'         => 'application/vnd.stardivision.calc',
759            'sdd'         => 'application/vnd.stardivision.impress',
760            'sdkd'        => 'application/vnd.solent.sdkm+xml',
761            'sdkm'        => 'application/vnd.solent.sdkm+xml',
762            'sdp'         => 'application/sdp',
763            'sdw'         => 'application/vnd.stardivision.writer',
764            'see'         => 'application/vnd.seemail',
765            'seed'        => 'application/vnd.fdsn.seed',
766            'sema'        => 'application/vnd.sema',
767            'semd'        => 'application/vnd.semd',
768            'semf'        => 'application/vnd.semf',
769            'ser'         => 'application/java-serialized-object',
770            'setpay'      => 'application/set-payment-initiation',
771            'setreg'      => 'application/set-registration-initiation',
772            'sfd-hdstx'   => 'application/vnd.hydrostatix.sof-data',
773            'sfs'         => 'application/vnd.spotfire.sfs',
774            'sfv'         => 'text/x-sfv',
775            'sgi'         => 'image/sgi',
776            'sgl'         => 'application/vnd.stardivision.writer-global',
777            'sgm'         => 'text/sgml',
778            'sgml'        => 'text/sgml',
779            'sh'          => 'application/x-sh',
780            'shar'        => 'application/x-shar',
781            'shf'         => 'application/shf+xml',
782            'sid'         => 'image/x-mrsid-image',
783            'sig'         => 'application/pgp-signature',
784            'sil'         => 'audio/silk',
785            'silo'        => 'model/mesh',
786            'sis'         => 'application/vnd.symbian.install',
787            'sisx'        => 'application/vnd.symbian.install',
788            'sit'         => 'application/x-stuffit',
789            'sitx'        => 'application/x-stuffitx',
790            'skd'         => 'application/vnd.koan',
791            'skm'         => 'application/vnd.koan',
792            'skp'         => 'application/vnd.koan',
793            'skt'         => 'application/vnd.koan',
794            'sldm'        => 'application/vnd.ms-powerpoint.slide.macroenabled.12',
795            'sldx'        => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
796            'slt'         => 'application/vnd.epson.salt',
797            'sm'          => 'application/vnd.stepmania.stepchart',
798            'smf'         => 'application/vnd.stardivision.math',
799            'smi'         => 'application/smil+xml',
800            'smil'        => 'application/smil+xml',
801            'smv'         => 'video/x-smv',
802            'smzip'       => 'application/vnd.stepmania.package',
803            'snd'         => 'audio/basic',
804            'snf'         => 'application/x-font-snf',
805            'so'          => 'application/octet-stream',
806            'spc'         => 'application/x-pkcs7-certificates',
807            'spf'         => 'application/vnd.yamaha.smaf-phrase',
808            'spl'         => 'application/x-futuresplash',
809            'spot'        => 'text/vnd.in3d.spot',
810            'spp'         => 'application/scvp-vp-response',
811            'spq'         => 'application/scvp-vp-request',
812            'spx'         => 'audio/ogg',
813            'sql'         => 'application/x-sql',
814            'src'         => 'application/x-wais-source',
815            'srt'         => 'application/x-subrip',
816            'sru'         => 'application/sru+xml',
817            'srx'         => 'application/sparql-results+xml',
818            'ssdl'        => 'application/ssdl+xml',
819            'sse'         => 'application/vnd.kodak-descriptor',
820            'ssf'         => 'application/vnd.epson.ssf',
821            'ssml'        => 'application/ssml+xml',
822            'st'          => 'application/vnd.sailingtracker.track',
823            'stc'         => 'application/vnd.sun.xml.calc.template',
824            'std'         => 'application/vnd.sun.xml.draw.template',
825            'stf'         => 'application/vnd.wt.stf',
826            'sti'         => 'application/vnd.sun.xml.impress.template',
827            'stk'         => 'application/hyperstudio',
828            'stl'         => 'application/vnd.ms-pki.stl',
829            'str'         => 'application/vnd.pg.format',
830            'stw'         => 'application/vnd.sun.xml.writer.template',
831            'styl'        => 'text/x-styl',
832            'sub'         => 'image/vnd.dvb.subtitle',
833            'sus'         => 'application/vnd.sus-calendar',
834            'susp'        => 'application/vnd.sus-calendar',
835            'sv4cpio'     => 'application/x-sv4cpio',
836            'sv4crc'      => 'application/x-sv4crc',
837            'svc'         => 'application/vnd.dvb.service',
838            'svd'         => 'application/vnd.svd',
839            'svg'         => 'image/svg+xml',
840            'svgz'        => 'image/svg+xml',
841            'swa'         => 'application/x-director',
842            'swf'         => 'application/x-shockwave-flash',
843            'swi'         => 'application/vnd.aristanetworks.swi',
844            'sxc'         => 'application/vnd.sun.xml.calc',
845            'sxd'         => 'application/vnd.sun.xml.draw',
846            'sxg'         => 'application/vnd.sun.xml.writer.global',
847            'sxi'         => 'application/vnd.sun.xml.impress',
848            'sxm'         => 'application/vnd.sun.xml.math',
849            'sxw'         => 'application/vnd.sun.xml.writer',
850            't'           => 'text/troff',
851            't3'          => 'application/x-t3vm-image',
852            'taglet'      => 'application/vnd.mynfc',
853            'tao'         => 'application/vnd.tao.intent-module-archive',
854            'tar'         => 'application/x-tar',
855            'tcap'        => 'application/vnd.3gpp2.tcap',
856            'tcl'         => 'application/x-tcl',
857            'teacher'     => 'application/vnd.smart.teacher',
858            'tei'         => 'application/tei+xml',
859            'teicorpus'   => 'application/tei+xml',
860            'tex'         => 'application/x-tex',
861            'texi'        => 'application/x-texinfo',
862            'texinfo'     => 'application/x-texinfo',
863            'text'        => 'text/plain',
864            'tfi'         => 'application/thraud+xml',
865            'tfm'         => 'application/x-tex-tfm',
866            'tga'         => 'image/x-tga',
867            'tgz'         => 'application/x-gzip',
868            'thmx'        => 'application/vnd.ms-officetheme',
869            'tif'         => 'image/tiff',
870            'tiff'        => 'image/tiff',
871            'tmo'         => 'application/vnd.tmobile-livetv',
872            'torrent'     => 'application/x-bittorrent',
873            'tpl'         => 'application/vnd.groove-tool-template',
874            'tpt'         => 'application/vnd.trid.tpt',
875            'tr'          => 'text/troff',
876            'tra'         => 'application/vnd.trueapp',
877            'trm'         => 'application/x-msterminal',
878            'tsd'         => 'application/timestamped-data',
879            'tsv'         => 'text/tab-separated-values',
880            'ttc'         => 'application/x-font-ttf',
881            'ttf'         => 'application/x-font-ttf',
882            'ttl'         => 'text/turtle',
883            'twd'         => 'application/vnd.simtech-mindmapper',
884            'twds'        => 'application/vnd.simtech-mindmapper',
885            'txd'         => 'application/vnd.genomatix.tuxedo',
886            'txf'         => 'application/vnd.mobius.txf',
887            'txt'         => 'text/plain',
888            'u32'         => 'application/x-authorware-bin',
889            'udeb'        => 'application/x-debian-package',
890            'ufd'         => 'application/vnd.ufdl',
891            'ufdl'        => 'application/vnd.ufdl',
892            'ulx'         => 'application/x-glulx',
893            'umj'         => 'application/vnd.umajin',
894            'unityweb'    => 'application/vnd.unity',
895            'uoml'        => 'application/vnd.uoml+xml',
896            'uri'         => 'text/uri-list',
897            'uris'        => 'text/uri-list',
898            'urls'        => 'text/uri-list',
899            'ustar'       => 'application/x-ustar',
900            'utz'         => 'application/vnd.uiq.theme',
901            'uu'          => 'text/x-uuencode',
902            'uva'         => 'audio/vnd.dece.audio',
903            'uvd'         => 'application/vnd.dece.data',
904            'uvf'         => 'application/vnd.dece.data',
905            'uvg'         => 'image/vnd.dece.graphic',
906            'uvh'         => 'video/vnd.dece.hd',
907            'uvi'         => 'image/vnd.dece.graphic',
908            'uvm'         => 'video/vnd.dece.mobile',
909            'uvp'         => 'video/vnd.dece.pd',
910            'uvs'         => 'video/vnd.dece.sd',
911            'uvt'         => 'application/vnd.dece.ttml+xml',
912            'uvu'         => 'video/vnd.uvvu.mp4',
913            'uvv'         => 'video/vnd.dece.video',
914            'uvva'        => 'audio/vnd.dece.audio',
915            'uvvd'        => 'application/vnd.dece.data',
916            'uvvf'        => 'application/vnd.dece.data',
917            'uvvg'        => 'image/vnd.dece.graphic',
918            'uvvh'        => 'video/vnd.dece.hd',
919            'uvvi'        => 'image/vnd.dece.graphic',
920            'uvvm'        => 'video/vnd.dece.mobile',
921            'uvvp'        => 'video/vnd.dece.pd',
922            'uvvs'        => 'video/vnd.dece.sd',
923            'uvvt'        => 'application/vnd.dece.ttml+xml',
924            'uvvu'        => 'video/vnd.uvvu.mp4',
925            'uvvv'        => 'video/vnd.dece.video',
926            'uvvx'        => 'application/vnd.dece.unspecified',
927            'uvvz'        => 'application/vnd.dece.zip',
928            'uvx'         => 'application/vnd.dece.unspecified',
929            'uvz'         => 'application/vnd.dece.zip',
930            'vcard'       => 'text/vcard',
931            'vcd'         => 'application/x-cdlink',
932            'vcf'         => 'text/x-vcard',
933            'vcg'         => 'application/vnd.groove-vcard',
934            'vcs'         => 'text/x-vcalendar',
935            'vcx'         => 'application/vnd.vcx',
936            'vis'         => 'application/vnd.visionary',
937            'viv'         => 'video/vnd.vivo',
938            'vob'         => 'video/x-ms-vob',
939            'vor'         => 'application/vnd.stardivision.writer',
940            'vox'         => 'application/x-authorware-bin',
941            'vrml'        => 'model/vrml',
942            'vsd'         => 'application/vnd.visio',
943            'vsf'         => 'application/vnd.vsf',
944            'vss'         => 'application/vnd.visio',
945            'vst'         => 'application/vnd.visio',
946            'vsw'         => 'application/vnd.visio',
947            'vtu'         => 'model/vnd.vtu',
948            'vxml'        => 'application/voicexml+xml',
949            'w3d'         => 'application/x-director',
950            'wad'         => 'application/x-doom',
951            'wav'         => 'audio/x-wav',
952            'wax'         => 'audio/x-ms-wax',
953            'wbmp'        => 'image/vnd.wap.wbmp',
954            'wbs'         => 'application/vnd.criticaltools.wbs+xml',
955            'wbxml'       => 'application/vnd.wap.wbxml',
956            'wcm'         => 'application/vnd.ms-works',
957            'wdb'         => 'application/vnd.ms-works',
958            'wdp'         => 'image/vnd.ms-photo',
959            'weba'        => 'audio/webm',
960            'webm'        => 'video/webm',
961            'webp'        => 'image/webp',
962            'wg'          => 'application/vnd.pmi.widget',
963            'wgt'         => 'application/widget',
964            'wks'         => 'application/vnd.ms-works',
965            'wm'          => 'video/x-ms-wm',
966            'wma'         => 'audio/x-ms-wma',
967            'wmd'         => 'application/x-ms-wmd',
968            'wmf'         => 'application/x-msmetafile',
969            'wml'         => 'text/vnd.wap.wml',
970            'wmlc'        => 'application/vnd.wap.wmlc',
971            'wmls'        => 'text/vnd.wap.wmlscript',
972            'wmlsc'       => 'application/vnd.wap.wmlscriptc',
973            'wmv'         => 'video/x-ms-wmv',
974            'wmx'         => 'video/x-ms-wmx',
975            'wmz'         => 'application/x-ms-wmz',
976            'woff'        => 'application/x-font-woff',
977            'wpd'         => 'application/vnd.wordperfect',
978            'wpl'         => 'application/vnd.ms-wpl',
979            'wps'         => 'application/vnd.ms-works',
980            'wqd'         => 'application/vnd.wqd',
981            'wri'         => 'application/x-mswrite',
982            'wrl'         => 'model/vrml',
983            'wsdl'        => 'application/wsdl+xml',
984            'wspolicy'    => 'application/wspolicy+xml',
985            'wtb'         => 'application/vnd.webturbo',
986            'wvx'         => 'video/x-ms-wvx',
987            'x32'         => 'application/x-authorware-bin',
988            'x3d'         => 'model/x3d+xml',
989            'x3db'        => 'model/x3d+binary',
990            'x3dbz'       => 'model/x3d+binary',
991            'x3dv'        => 'model/x3d+vrml',
992            'x3dvz'       => 'model/x3d+vrml',
993            'x3dz'        => 'model/x3d+xml',
994            'xaml'        => 'application/xaml+xml',
995            'xap'         => 'application/x-silverlight-app',
996            'xar'         => 'application/vnd.xara',
997            'xbap'        => 'application/x-ms-xbap',
998            'xbd'         => 'application/vnd.fujixerox.docuworks.binder',
999            'xbm'         => 'image/x-xbitmap',
1000            'xdf'         => 'application/xcap-diff+xml',
1001            'xdm'         => 'application/vnd.syncml.dm+xml',
1002            'xdp'         => 'application/vnd.adobe.xdp+xml',
1003            'xdssc'       => 'application/dssc+xml',
1004            'xdw'         => 'application/vnd.fujixerox.docuworks',
1005            'xenc'        => 'application/xenc+xml',
1006            'xer'         => 'application/patch-ops-error+xml',
1007            'xfdf'        => 'application/vnd.adobe.xfdf',
1008            'xfdl'        => 'application/vnd.xfdl',
1009            'xht'         => 'application/xhtml+xml',
1010            'xhtml'       => 'application/xhtml+xml',
1011            'xhvml'       => 'application/xv+xml',
1012            'xif'         => 'image/vnd.xiff',
1013            'xla'         => 'application/vnd.ms-excel',
1014            'xlam'        => 'application/vnd.ms-excel.addin.macroenabled.12',
1015            'xlc'         => 'application/vnd.ms-excel',
1016            'xlf'         => 'application/x-xliff+xml',
1017            'xlm'         => 'application/vnd.ms-excel',
1018            'xls'         => 'application/vnd.ms-excel',
1019            'xlsb'        => 'application/vnd.ms-excel.sheet.binary.macroenabled.12',
1020            'xlsm'        => 'application/vnd.ms-excel.sheet.macroenabled.12',
1021            'xlsx'        => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
1022            'xlt'         => 'application/vnd.ms-excel',
1023            'xltm'        => 'application/vnd.ms-excel.template.macroenabled.12',
1024            'xltx'        => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
1025            'xlw'         => 'application/vnd.ms-excel',
1026            'xm'          => 'audio/xm',
1027            'xml'         => 'application/xml',
1028            'xo'          => 'application/vnd.olpc-sugar',
1029            'xop'         => 'application/xop+xml',
1030            'xpi'         => 'application/x-xpinstall',
1031            'xpl'         => 'application/xproc+xml',
1032            'xpm'         => 'image/x-xpixmap',
1033            'xpr'         => 'application/vnd.is-xpr',
1034            'xps'         => 'application/vnd.ms-xpsdocument',
1035            'xpw'         => 'application/vnd.intercon.formnet',
1036            'xpx'         => 'application/vnd.intercon.formnet',
1037            'xsl'         => 'application/xml',
1038            'xslt'        => 'application/xslt+xml',
1039            'xsm'         => 'application/vnd.syncml+xml',
1040            'xspf'        => 'application/xspf+xml',
1041            'xul'         => 'application/vnd.mozilla.xul+xml',
1042            'xvm'         => 'application/xv+xml',
1043            'xvml'        => 'application/xv+xml',
1044            'xwd'         => 'image/x-xwindowdump',
1045            'xyz'         => 'chemical/x-xyz',
1046            'xz'          => 'application/x-xz',
1047            'yaml'        => 'text/yaml',
1048            'yang'        => 'application/yang',
1049            'yin'         => 'application/yin+xml',
1050            'yml'         => 'text/yaml',
1051            'z'           => 'application/x-compress',
1052            'z1'          => 'application/x-zmachine',
1053            'z2'          => 'application/x-zmachine',
1054            'z3'          => 'application/x-zmachine',
1055            'z4'          => 'application/x-zmachine',
1056            'z5'          => 'application/x-zmachine',
1057            'z6'          => 'application/x-zmachine',
1058            'z7'          => 'application/x-zmachine',
1059            'z8'          => 'application/x-zmachine',
1060            'zaz'         => 'application/vnd.zzazz.deck+xml',
1061            'zip'         => 'application/zip',
1062            'zir'         => 'application/vnd.zul',
1063            'zirz'        => 'application/vnd.zul',
1064            'zmm'         => 'application/vnd.handheld-entertainment+xml',
1065            '123'         => 'application/vnd.lotus-1-2-3',
1066        ];
1067    }
1068    /**
1069     * Get a singleton instance of the class
1070     *
1071     * @return self
1072     * @codeCoverageIgnore
1073     */
1074    public static function getInstance()
1075    {
1076        if (!self::$instance) {
1077            self::$instance = new self();
1078        }
1079        return self::$instance;
1080    }
1081    /**
1082     * Get a mimetype value from a file extension
1083     *
1084     * @param string $extension File extension
1085     *
1086     * @return string|null
1087     *
1088     */
1089    public function fromExtension($extension)
1090    {
1091        $mimetypes = $this->getMimeTypes();
1092        return isset($mimetypes[$extension]) ? $mimetypes[$extension] : null;
1093    }
1094    /**
1095     * Get a mimetype from a filename
1096     *
1097     * @param string $filename Filename to generate a mimetype from
1098     *
1099     * @return string|null
1100     */
1101    public function fromFilename($filename)
1102    {
1103        return $this->fromExtension(pathinfo($filename, PATHINFO_EXTENSION));
1104    }
1105}