???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3

  \2R                 @   s  d dl Z d dlZd dlZd dlZyd dlZW n ek
rD   dZY nX dddddddd	d
ddddgZdddddddddg	Z	da
daG dd dZd5ddZd6ddZd7ddZd8ddZd9dd	Zdd
 Zd d! Ze  ed"krd dlZd#Zd:d%d&Zy&ejejd'd d(d)d*d+g\ZZW n0 ejk
rN Z zed'e W Y ddZ[X nX d'Zd ZxDeD ]<\ZZ ed;krzed  ned<krd Zned=kr^d'Zq^W xheD ]`Z!eree!eZ"e"se#d2e! ne#e" n.ee!e\Z"Z$e"se#d2e! ne#d3e"d4e$ qW dS )>    N
knownfilesinited	MimeTypes
guess_typeguess_all_extensionsguess_extensionadd_typeinitread_mime_types
suffix_mapencodings_map	types_mapcommon_typesz/etc/mime.typesz/etc/httpd/mime.typesz/etc/httpd/conf/mime.typesz/etc/apache/mime.typesz/etc/apache2/mime.typesz$/usr/local/etc/httpd/conf/mime.typesz"/usr/local/lib/netscape/mime.typesz/usr/local/etc/mime.typesFc               @   s`   e Zd Zf dfddZdddZdddZddd	Zdd
dZdddZdddZ	dddZ
dS )r   Tc             C   s   t s
t  tj | _tj | _i i f| _i i f| _x"tj D ]\}}| j||d q<W x"t	j D ]\}}| j||d q`W x|D ]}| j
|| qW d S )NTF)r   r	   r   copyr   r   types_map_invitemsr   r   read)self	filenamesstrictexttypename r   !/usr/lib64/python3.6/mimetypes.py__init__B   s    




zMimeTypes.__init__c             C   s6   || j | |< | j| j|g }||kr2|j| d S )N)r   r   
setdefaultappend)r   r   r   r   Zextsr   r   r   r   P   s    zMimeTypes.add_typec             C   sl  t jj|\}}|dkrz|jd}|dk r.d
S |jdd|}|dkrR|d | }n|d | }d|ksnd|krrd}|d fS tj|\}}x&|| jkrtj|| j|  \}}qW || jkr| j| }	tj|\}}nd }	| jd }
||
kr|
| |	fS |j	 |
kr|
|j	  |	fS |r"d |	fS | jd	 }
||
krB|
| |	fS |j	 |
kr`|
|j	  |	fS d |	fS d S )Ndata,r   ;=/z
text/plainTF)NN)
urllibparseZ	splittypefind	posixpathsplitextr   r   r   lower)r   urlr   schemeZcommaZsemir   baser   encodingr   r   r   r   r   a   s@    





zMimeTypes.guess_typec             C   sP   |j  }| jd j|g }|sLx,| jd j|g D ]}||kr2|j| q2W |S )NTF)r(   r   getr   )r   r   r   
extensionsr   r   r   r   r      s    zMimeTypes.guess_all_extensionsc             C   s   | j ||}|sd S |d S )Nr   )r   )r   r   r   r.   r   r   r   r      s    zMimeTypes.guess_extensionc          
   C   s(   t |dd}| j|| W d Q R X d S )Nzutf-8)r,   )openreadfp)r   filenamer   fpr   r   r   r      s    zMimeTypes.readc       	      C   s   x|j  }|sP |j }x0tt|D ] }|| d dkr&||d = P q&W |sPq|d |dd   }}x|D ]}| j|d| | qlW qW d S )Nr   #   .)readlinesplitrangelenr   )	r   r2   r   lineZwordsir   suffixesZsuffr   r   r   r0      s    

zMimeTypes.readfpc             C   s   t sd S dd }t jt jd}xz||D ]n}yRt j||<}|jdsJw*t j|d\}}|t jkrfw*| j||| W d Q R X W q* tk
r   w*Y q*X q*W W d Q R X d S )Nc             s   sL   d}xByt j| |}W n tk
r,   P Y nX d|kr<|V  |d7 }qW d S )Nr    r4   )_winregZEnumKeyEnvironmentError)Zmimedbr;   Zctyper   r   r   
enum_types   s    z3MimeTypes.read_windows_registry.<locals>.enum_types r5   zContent Type)r>   OpenKeyZHKEY_CLASSES_ROOT
startswithZQueryValueExZREG_SZr   r?   )r   r   r@   ZhkcrZ
subkeynameZsubkeyZmimetypeZdatatyper   r   r   read_windows_registry   s     


zMimeTypes.read_windows_registryN)T)T)T)T)T)T)T)__name__
__module____qualname__r   r   r   r   r   r   r0   rD   r   r   r   r   r   :   s   

>



Tc             C   s   t d krt  t j| |S )N)_dbr	   r   )r)   r   r   r   r   r     s    c             C   s   t d krt  t j| |S )N)rH   r	   r   )r   r   r   r   r   r   &  s    c             C   s   t d krt  t j| |S )N)rH   r	   r   )r   r   r   r   r   r   7  s    c             C   s   t d krt  t j| ||S )N)rH   r	   r   )r   r   r   r   r   r   r   G  s    c             C   sn   da t }| d kr"tr|j  t} x"| D ]}tjj|r(|j| q(W |j	a	|j
a
|jd a|jd a|ad S )NTF)r   r   r>   rD   r   ospathisfiler   r   r   r   r   rH   )filesdbfiler   r   r   r	   X  s    


c             C   sN   yt | }W n tk
r    d S X | t }|j|d |jd S Q R X d S )NT)r/   OSErrorr   r0   r   )rN   frM   r   r   r   r
   l  s    c               C   sD  ddddddda dddd	d
addddddddddddddddddddddddddddddd d d!d"d#d#d#d$d%dd&d'd(d(d)d*ddd+d$d,d-d.d.d/d'd'd'd'd0ddddd1d2d3d4d5d2d6dd7d8d9d9d:d9d9dd9d;d<d<d,d=d>d?d@dAdBdCdDdDdEdFdddGdHdIdJdKdBdLdMdNdOdOdPdPdBdQddRdSdTdUdd@dVdWdXdWdYd@dZd@d[d\d]ad^d_d_d`d`d`dadbdcad S )dNz.svg.gzz.tar.gzz.tar.bz2z.tar.xz)z.svgzz.tgzz.tazz.tzz.tbz2z.txzZgzipcompressZbzip2Zxz)z.gzz.Zz.bz2z.xzzapplication/octet-streamzapplication/postscriptzaudio/x-aiffzaudio/basiczvideo/x-msvideoz
text/plainzapplication/x-bcpiozimage/x-ms-bmpzapplication/x-cdfzapplication/x-netcdfzapplication/x-cpiozapplication/x-cshztext/cssztext/csvzapplication/mswordzapplication/x-dvizmessage/rfc822ztext/x-setextz	image/gifzapplication/x-gtarzapplication/x-hdfz	text/htmlzimage/vnd.microsoft.iconz	image/iefz
image/jpegzapplication/javascriptzapplication/jsonzapplication/x-latexz
video/mpegzapplication/vnd.apple.mpegurlzapplication/x-troff-manzapplication/x-troff-mezapplication/x-mifzvideo/quicktimezvideo/x-sgi-moviez
audio/mpegz	video/mp4zapplication/x-troff-mszapplication/odazapplication/x-pkcs12zapplication/pkcs7-mimezimage/x-portable-bitmapzapplication/pdfzimage/x-portable-graymapz	image/pngzimage/x-portable-anymapzapplication/vnd.ms-powerpointzimage/x-portable-pixmapztext/x-pythonzapplication/x-python-codezaudio/x-pn-realaudiozapplication/x-pn-realaudiozimage/x-cmu-rasterzapplication/xmlzimage/x-rgbzapplication/x-troffztext/richtextztext/x-sgmlzapplication/x-shzapplication/x-sharzapplication/x-wais-sourcezapplication/x-sv4cpiozapplication/x-sv4crczimage/svg+xmlzapplication/x-shockwave-flashzapplication/x-tarzapplication/x-tclzapplication/x-texzapplication/x-texinfoz
image/tiffztext/tab-separated-valueszapplication/x-ustarztext/x-vcardzaudio/x-wavz
video/webmzimage/x-xbitmapzapplication/vnd.ms-excelzapplication/excelztext/xmlzimage/x-xpixmapzimage/x-xwindowdumpzapplication/zip)z.az.aiz.aifz.aifcz.aiffz.auz.aviz.batz.bcpioz.binz.bmpz.cz.cdfz.cdfz.cpioz.cshz.cssz.csvz.dllz.docz.dotz.dviz.emlz.epsz.etxz.exez.gifz.gtarz.hz.hdfz.htmz.htmlz.icoz.iefz.jpez.jpegz.jpgz.jsz.jsonz.kshz.latexz.m1vz.m3uz.m3u8z.manz.mez.mhtz.mhtmlz.mifz.mjsz.movz.moviez.mp2z.mp3z.mp4z.mpaz.mpez.mpegz.mpgz.msz.ncz.nwsz.oz.objz.odaz.p12z.p7cz.pbmz.pdfz.pfxz.pgmz.plz.pngz.pnmz.potz.ppaz.ppmz.ppsz.pptz.psz.pwzz.pyz.pycz.pyoz.qtz.raz.ramz.rasz.rdfz.rgbz.roffz.rtxz.sgmz.sgmlz.shz.sharz.sndz.soz.srcz.sv4cpioz.sv4crcz.svgz.swfz.tz.tarz.tclz.texz.texiz.texinfoz.tifz.tiffz.trz.tsvz.txtz.ustarz.vcfz.wavz.webmz.wizz.wsdlz.xbmz.xlbz.xlsz.xlsz.xmlz.xpdlz.xpmz.xslz.xwdz.zipz	image/jpgz
audio/midiz
image/pictzapplication/rtfztext/xul)z.jpgz.midz.midiz.pctz.picz.pictz.rtfz.xul)r   r   r   r   r   r   r   r   _default_mime_typesw  s(   	rR   __main__a4  Usage: mimetypes.py [options] type

Options:
    --help / -h       -- print this message and exit
    --lenient / -l    -- additionally search of some common, but non-standard
                         types.
    --extension / -e  -- guess extension instead of type

More than one type argument may be given.
rA   c             C   s"   t t |rt | tj|  d S )N)printUSAGEsysexit)codemsgr   r   r   usage;  s     rZ   r4   ZhlehelpZlenient	extension-h--help-l	--lenient-e--extensionz I don't know anything about typeztype:z	encoding:)T)T)T)T)N)rA   )r]   r^   )r_   r`   )ra   rb   )%rI   rV   r&   Zurllib.parser#   winregr>   ImportError__all__r   r   rH   r   r   r   r   r   r	   r
   rR   rE   ZgetoptrU   rZ   argvZoptsargserrorrY   r   r\   optargZgtypeZguessrT   r,   r   r   r   r   <module>   sz   
 V




 3








 
 