???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................B
    YI~dP                 @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZddddgZd\Z	Z
ZZZd\ZZdZd	Zd
ZdddZdd ZG dd dZG dd dejZG dd dejZdddZdd Zdd Zedkre  dS )    NGzipFileopencompress
decompress)               )r   r   r      	   rbc             C   s   d|kr d|krPt d|f n0|d k	r0t d|d k	r@t d|d k	rPt d|dd}t| tttjfr|t| ||}n,t| dst| d	rtd ||| }nt	d
d|krt
||||S |S d S )NtbzInvalid mode: %rz0Argument 'encoding' not supported in binary modez.Argument 'errors' not supported in binary modez/Argument 'newline' not supported in binary mode readwritez1filename must be a str or bytes object, or a file)
ValueErrorreplace
isinstancestrbytesosPathLiker   hasattr	TypeErrorioTextIOWrapper)filenamemodecompresslevelencodingerrorsnewlineZgz_modeZbinary_file r$   )/opt/alt/python37/lib64/python3.7/gzip.pyr      s$    c             C   s   |  td| d S )Nz<L)r   structpack)outputvaluer$   r$   r%   write32uE   s    r*   c               @   s8   e Zd ZdddZdd ZdddZdd	 Zd
d ZdS )_PaddedFile    c             C   s    || _ t|| _|| _d| _d S )Nr   )_bufferlen_lengthfile_read)selffprependr$   r$   r%   __init__O   s    
z_PaddedFile.__init__c             C   s~   | j d kr| j|S | j | | jkrJ| j }|  j |7  _ | j|| j  S | j }d | _ | j|d  | j|| j |  S d S )N)r1   r0   r   r/   r-   )r2   sizer   r$   r$   r%   r   U   s    
z_PaddedFile.readc             C   s>   | j d kr|| _n|  j t|8  _ d S t| j| _d| _ d S )Nr   )r1   r-   r.   r/   )r2   r4   r$   r$   r%   r4   b   s    
z_PaddedFile.prependc             C   s   d | _ d | _| j|S )N)r1   r-   r0   seek)r2   Zoffr$   r$   r%   r7   k   s    z_PaddedFile.seekc             C   s   dS )NTr$   )r2   r$   r$   r%   seekablep   s    z_PaddedFile.seekableN)r,   )r,   )__name__
__module____qualname__r5   r   r4   r7   r8   r$   r$   r$   r%   r+   J   s
   

	r+   c               @   s   e Zd ZdZd,ddZedd Zedd Zd	d
 Zdd Z	dd Z
dd Zd-ddZd.ddZdd Zedd Zdd ZejfddZdd Zd d! Zd"d# Zd$d% Zd&d' Zejfd(d)Zd/d*d+ZdS )0r   Nr   c             C   s4  |r"d|ksd|kr"t d||r6d|kr6|d7 }|d krTt||pJd }| _|d kr|t|dd}t|ttfsd}n
t	
|}|d krt|dd}|d	rt| _t|}t|| _|| _nN|d
rt| _| | t|tjtj tjd| _|| _nt d||| _| jtkr0| | d S )Nr   UzInvalid mode: {!r}r   r   namer   r   r)waxr   )r   formatbuiltinsr   	myfileobjgetattrr   r   r   r   fspath
startswithREADr   _GzipReaderr   BufferedReaderr-   r=   WRITE_init_writezlibZcompressobjZDEFLATED	MAX_WBITSZDEF_MEM_LEVELr   _write_mtimefileobj_write_gzip_header)r2   r   r   r    rP   mtimerawr$   r$   r%   r5      s>    #


zGzipFile.__init__c             C   sB   dd l }|dtd | jtkr<| jdd  dkr<| jd S | jS )Nr   zuse the name attributer   z.gz)warningswarnDeprecationWarningr   rK   r=   )r2   rU   r$   r$   r%   r      s
    
zGzipFile.filenamec             C   s
   | j jjS )N)r-   rS   _last_mtime)r2   r$   r$   r%   rR      s    zGzipFile.mtimec             C   s.   t | j}d|dd  d tt|  d S )Nz<gzip r    >)reprrP   hexid)r2   sr$   r$   r%   __repr__   s    
zGzipFile.__repr__c             C   s.   || _ td| _d| _g | _d| _d| _d S )Nr,   r   )r=   rM   crc32crcr6   Zwritebufbufsizeoffset)r2   r   r$   r$   r%   rL      s    zGzipFile._init_writec             C   s  | j d | j d y<tj| j}t|ts<|d}|	drR|d d }W n t
k
rl   d}Y nX d}|rzt}| j t|d | j}|d krt }t| j t| |tkrd}n|tkrd	}nd
}| j | | j d |r| j |d
  d S )Ns      zlatin-1s   .gzrT   r,   r                )rP   r   r   pathbasenamer=   r   r   encodeendswithUnicodeEncodeErrorFNAMEchrrO   timer*   int_COMPRESS_LEVEL_BEST_COMPRESS_LEVEL_FAST)r2   r    ZfnameflagsrR   Zxflr$   r$   r%   rQ      s6    



zGzipFile._write_gzip_headerc             C   s   |    | jtkr&dd l}t|jd| jd kr8tdt|t	rLt
|}nt|}|j}|dkr| j| j| |  j|7  _t|| j| _|  j|7  _|S )Nr   z$write() on read-only GzipFile objectz!write() on closed GzipFile object)_check_not_closedr   rK   errnoOSErrorEBADFrP   r   r   r   r.   
memoryviewnbytesr   r   r6   rM   ra   rb   rd   )r2   datarw   lengthr$   r$   r%   r     s     



zGzipFile.writerY   c             C   s2   |    | jtkr&dd l}t|jd| j|S )Nr   z$read() on write-only GzipFile object)rv   r   rH   rw   rx   ry   r-   r   )r2   r6   rw   r$   r$   r%   r     s
    
zGzipFile.readc             C   s@   |    | jtkr&dd l}t|jd|dk r4tj}| j	|S )Nr   z%read1() on write-only GzipFile object)
rv   r   rH   rw   rx   ry   r   DEFAULT_BUFFER_SIZEr-   read1)r2   r6   rw   r$   r$   r%   r   !  s    
zGzipFile.read1c             C   s2   |    | jtkr&dd l}t|jd| j|S )Nr   z$peek() on write-only GzipFile object)rv   r   rH   rw   rx   ry   r-   peek)r2   nrw   r$   r$   r%   r   .  s
    
zGzipFile.peekc             C   s
   | j d kS )N)rP   )r2   r$   r$   r%   closed5  s    zGzipFile.closedc             C   s   | j }|d krd S d | _ zP| jtkrR|| j  t|| j t|| jd@  n| jt	krf| j
  W d | j}|rd | _|  X d S )Nl    )rP   r   rK   r   r   flushr*   rb   r6   rH   r-   closerD   )r2   rP   rD   r$   r$   r%   r   9  s    

zGzipFile.closec             C   s4   |    | jtkr0| j| j| | j  d S )N)rv   r   rK   rP   r   r   r   )r2   Z	zlib_moder$   r$   r%   r   L  s    
zGzipFile.flushc             C   s
   | j  S )N)rP   fileno)r2   r$   r$   r%   r   S  s    zGzipFile.filenoc             C   s"   | j tkrtd| jd d S )NzCan't rewind in write moder   )r   rH   rx   r-   r7   )r2   r$   r$   r%   rewind[  s    
zGzipFile.rewindc             C   s
   | j tkS )N)r   rH   )r2   r$   r$   r%   readableb  s    zGzipFile.readablec             C   s
   | j tkS )N)r   rK   )r2   r$   r$   r%   writablee  s    zGzipFile.writablec             C   s   dS )NTr$   )r2   r$   r$   r%   r8   h  s    zGzipFile.seekablec             C   s   | j tkr|tjkr2|tjkr*| j| }ntd|| jk rDtd|| j }d}xt|d D ]}| 	| q`W | 	d|d   n | j t
kr|   | j||S | jS )NzSeek from end not supportedzNegative seek in write modes                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   i   rh   )r   rK   r   SEEK_SETSEEK_CURrd   r   rx   ranger   rH   rv   r-   r7   )r2   rd   whencecountchunkir$   r$   r%   r7   k  s     





zGzipFile.seekc             C   s   |    | j|S )N)rv   r-   readline)r2   r6   r$   r$   r%   r     s    zGzipFile.readline)NNr   NN)rY   )rY   )rY   )r9   r:   r;   rD   r5   propertyr   rR   r`   rL   rQ   r   r   r   r   r   r   rM   ZZ_SYNC_FLUSHr   r   r   r   r   r8   r   r   r7   r   r$   r$   r$   r%   r   s   s,    
H 

c                   sZ   e Zd Z fddZdd Zdd Zdd Zdd
dZdd Zdd Z	 fddZ
  ZS )rI   c                s,   t  jt|tjtj d d| _d | _d S )N)ZwbitsT)superr5   r+   rM   ZdecompressobjrN   _new_memberrX   )r2   fp)	__class__r$   r%   r5     s    z_GzipReader.__init__c             C   s   t d| _d| _d S )Nr,   r   )rM   ra   _crc_stream_size)r2   r$   r$   r%   
_init_read  s    z_GzipReader._init_readc             C   sJ   | j |}x8t||k rD| j |t| }|s:td||7 }qW |S )NzACompressed file ended before the end-of-stream marker was reached)_fpr   r.   EOFError)r2   r   r|   r   r$   r$   r%   _read_exact  s    z_GzipReader._read_exactc             C   s   | j d}|dkrdS |dkr,td| td| d\}}| _|dkrVtd|t@ r|td	| d\}| | |t@ rx| j d
}|r|dkrP qW |t	@ rx| j d
}|r|dkrP qW |t
@ r| d dS )Nr   r,   Fs   zNot a gzipped file (%r)z<BBIxxr	   zUnknown compression methodz<Hr   rh   T)r   r   rx   r&   unpackr   rX   FEXTRAro   FCOMMENTFHCRC)r2   magicmethodflagZ	extra_lenr_   r$   r$   r%   _read_gzip_header  s0    

z_GzipReader._read_gzip_headerrY   c             C   s   |dk r|   S |sdS x| jjr@|   d| _| jf | j| _| jrh|   |  sb| j	| _
dS d| _| jtj}| j||}| jjdkr| j| jj n| jjdkr| j| jj |dkrP |dkrtdqW | | |  j	t|7  _	|S )Nr   r,   TFzACompressed file ended before the end-of-stream marker was reached)readallZ_decompressoreof	_read_eofr   Z_decomp_factoryZ_decomp_argsr   r   Z_posZ_sizer   r   r   r~   r   Zunconsumed_tailr4   Zunused_datar   _add_read_datar.   )r2   r6   bufZ
uncompressr$   r$   r%   r     s:    

z_GzipReader.readc             C   s$   t || j| _| jt| | _d S )N)rM   ra   r   r   r.   )r2   r|   r$   r$   r%   r     s    z_GzipReader._add_read_datac             C   s   t d| d\}}|| jkr<tdt|t| jf n|| jd@ krRtdd}x|dkrn| jd}qXW |r| j	| d S )Nz<IIr	   zCRC check failed %s != %sl    z!Incorrect length of data producedrh   r   )
r&   r   r   r   rx   r]   r   r   r   r4   )r2   ra   Zisizecr$   r$   r%   r     s    


z_GzipReader._read_eofc                s   t    d| _d S )NT)r   _rewindr   )r2   )r   r$   r%   r     s    
z_GzipReader._rewind)rY   )r9   r:   r;   r5   r   r   r   r   r   r   r   __classcell__r$   r$   )r   r%   rI     s   !
3rI   c          	   C   s4   t  }t|d|d}||  W d Q R X | S )Nwb)rP   r   r    )r   BytesIOr   r   getvalue)r|   r    r   r3   r$   r$   r%   r     s    c          	   C   s$   t t| d
}| S Q R X d S )N)rP   )r   r   r   r   )r|   r3   r$   r$   r%   r     s    c              C   s:  t jdd  } | o| d dk}|r.| dd  } | s8dg} x| D ]}|r|dkrjtddt jjd}t jj}q|dd  d	krtd
t| q>t|d}t	|d d d}n>|dkrt jj}tddt jjd}nt	|d}t|d	 d}x|
d}|sP || qW |t jjk	r|  |t jjk	r>|  q>W d S )Nr   r   z-d-r   r   )r   r   rP   rT   z.gzzfilename doesn't end in .gz:r   i   )sysargvr   stdinbufferstdoutprintr\   r   rC   r   r   r   )argsr   argr3   gr   r$   r$   r%   _test"  s<    



r   __main__)r   r   NNN)r   )r&   r   rq   r   rM   rC   r   Z_compression__all__ZFTEXTr   r   ro   r   rH   rK   rt   Z_COMPRESS_LEVEL_TRADEOFFrs   r   r*   r+   Z
BaseStreamr   ZDecompressReaderrI   r   r   r   r9   r$   r$   r$   r%   <module>   s0     
+)   
	&