???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5d                     @   sb  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	m
Z
 ddddddd	d
ddddddddddgZdZdZdZdZdZdZe ejj dd ejj D ZdZdZedjZed jZed!Zed"Z d#d$d%hZ!dAd'd(Z"G d)d* d*ej#j$Z%d+d, Z&e%fd-d.Z'G d/d dej(Z)G d0d dZ*zd dl+Z+W n e,k
r\   Y nX G d1d2 d2e*Z-e.d2 G d3d de/Z0G d4d de0Z1G d5d de0Z2G d6d de0Z3G d7d de0Z4G d8d	 d	e0Z5G d9d
 d
e0Z6G d:d de0Z7G d;d de7Z8G d<d de7Z9G d=d de7Z:G d>d de0Z;G d?d de0Z<G d@d de=e;Z>e0Z?dS )B    N)urlsplitHTTPResponseHTTPConnectionHTTPExceptionNotConnectedUnknownProtocolUnknownTransferEncodingUnimplementedFileModeIncompleteRead
InvalidURLImproperConnectionStateCannotSendRequestCannotSendHeaderResponseNotReadyBadStatusLineLineTooLongRemoteDisconnectederror	responsesP   i  ZUNKNOWNZIdlezRequest-startedzRequest-sentc                 C   s   i | ]}||j qS  )phrase).0vr   r   #/usr/lib64/python3.8/http/client.py
<dictcomp>j   s      r   i   d   s   [^:\s][^:\r\n]*s   \n(?![ \t])|\r(?![ \t\n])z[ - ]z[ -]ZPATCHZPOSTZPUTdatac                 C   sh   z|  dW S  tk
rb } z8t|j|j|j|jd| | |j|j |f d W 5 d }~X Y nX d S )Nlatin-1z`%s (%.20r) is not valid Latin-1. Use %s.encode('utf-8') if you want to send it encoded in UTF-8.)encodeUnicodeEncodeErrorencodingobjectstartendtitle)r   nameerrr   r   r   _encode   s    r(   c                   @   s   e Zd Zdd ZdS )HTTPMessagec                 C   sj   |  d }t|}g }d}|  D ]@}|d |   |krBd}n|d d  sVd}|r$|| q$|S )N:r      )lowerlenkeysisspaceappend)selfr&   nZlstZhitliner   r   r   getallmatchingheaders   s    
z!HTTPMessage.getallmatchingheadersN)__name__
__module____qualname__r4   r   r   r   r   r)      s   r)   c                 C   sX   g }|  td }t|tkr&td|| t|tkrHtdt |dkrqTq|S )Nr+   header linezgot more than %d headers   
   
    )readline_MAXLINEr-   r   r0   _MAXHEADERSr   )fpheadersr3   r   r   r   _read_headers   s    
rB   c                 C   s,   t | }d|d}tjj|d|S )Nr<   
iso-8859-1)_class)rB   joindecodeemailparserZParserZparsestr)r@   rD   rA   Zhstringr   r   r   parse_headers   s    
rI   c                       s  e Zd Zd@ddZdd Zdd Zd	d
 Zdd Z fddZ fddZ	dd Z
dd ZdAddZdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& ZdBd(d)ZdCd*d+ZdD fd,d-	Zd.d/ Zd0d1 Zd2d3 ZdEd4d5Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Z   Z!S )Fr   r   Nc                 C   sR   | d| _|| _|| _d  | _| _t| _t| _t| _	t| _
t| _t| _t| _d S )Nrb)Zmakefiler@   
debuglevel_methodrA   msg_UNKNOWNversionstatusreasonchunked
chunk_leftlength
will_close)r1   sockrK   methodurlr   r   r   __init__   s    zHTTPResponse.__init__c                 C   s  t | jtd d}t|tkr*td| jdkrBtdt| |sNt	dz|
d d\}}}W nF tk
r   z|
d d\}}d}W n tk
r   d}Y nX Y nX |d	s|   t|z$t|}|d
k s|dkrt|W n tk
r   t|Y nX |||fS )Nr+   rC   zstatus liner   zreply:z-Remote end closed connection without response    zHTTP/r   i  )strr@   r=   r>   r-   r   rK   printreprr   split
ValueError
startswith_close_connr   int)r1   r3   rO   rP   rQ   r   r   r   _read_status  s2    

zHTTPResponse._read_statusc           	      C   s  | j d k	rd S |  \}}}|tkr&qHt| j}| jdkrDtd| ~q| | _| _|	 | _
|dkrnd| _n|drd| _nt|t| j | _ | _| jdkr| j  D ]\}}td|d | q| j d	}|r| d
krd| _d | _nd| _|  | _d | _| j d}|rb| jsbzt|| _W n tk
rL   d | _Y nX | jdk rhd | _nd | _|tks|tksd|  krdk sn | jdkrd| _| js| js| jd krd| _d S )Nr   zheaders:)zHTTP/1.0zHTTP/0.9
   zHTTP/1.   header:r*   transfer-encodingrR   TFcontent-lengthr      HEAD)rA   rd   ZCONTINUErB   r@   rK   r]   coderP   striprQ   rO   ra   r   rI   rM   itemsgetr,   rR   rS   _check_closerU   rT   rc   r`   Z
NO_CONTENTZNOT_MODIFIEDrL   )	r1   rO   rP   rQ   Zskipped_headershdrvalZtr_encrT   r   r   r   begin5  sf    







 

zHTTPResponse.beginc                 C   sv   | j d}| jdkr.|r*d| kr*dS dS | j dr>dS |rRd| krRdS | j d}|rrd| krrdS dS )NZ
connectionrf   closeTFz
keep-alivezproxy-connection)rA   ro   rO   r,   )r1   ZconnZpconnr   r   r   rp   }  s    
zHTTPResponse._check_closec                 C   s   | j }d | _ |  d S N)r@   rt   )r1   r@   r   r   r   rb     s    zHTTPResponse._close_connc                    s$   zt   W 5 | j r|   X d S ru   )r@   rb   superrt   r1   	__class__r   r   rt     s    zHTTPResponse.closec                    s   t    | jr| j  d S ru   )rv   flushr@   rw   rx   r   r   rz     s    
zHTTPResponse.flushc                 C   s   dS )NTr   rw   r   r   r   readable  s    zHTTPResponse.readablec                 C   s
   | j d kS ru   )r@   rw   r   r   r   isclosed  s    zHTTPResponse.isclosedc                 C   s   | j d krdS | jdkr$|   dS |d k	rRt|}| |}t|d |  S | jr`|  S | j	d krv| j 
 }n6z| | j	}W n tk
r   |    Y nX d| _	|   |S d S )Nr<   rk   r   )r@   rL   rb   	bytearrayreadinto
memoryviewtobytesrR   _readall_chunkedrT   read
_safe_readr
   )r1   amtbr2   sr   r   r   r     s*    



zHTTPResponse.readc                 C   s   | j d krdS | jdkr$|   dS | jr4| |S | jd k	r^t|| jkr^t|d| j }| j |}|s||r||   n&| jd k	r|  j|8  _| js|   |S )Nr   rk   )	r@   rL   rb   rR   _readinto_chunkedrT   r-   r   r~   )r1   r   r2   r   r   r   r~     s$    





zHTTPResponse.readintoc                 C   sr   | j td }t|tkr$td|d}|dkrB|d | }zt|dW S  tk
rl   |    Y nX d S )Nr+   z
chunk size   ;r      )	r@   r=   r>   r-   r   findrc   r`   rb   )r1   r3   ir   r   r   _read_next_chunk_size  s    
z"HTTPResponse._read_next_chunk_sizec                 C   s:   | j td }t|tkr$td|s*q6|dkr q6q d S )Nr+   ztrailer liner9   )r@   r=   r>   r-   r   r1   r3   r   r   r   _read_and_discard_trailer  s    z&HTTPResponse._read_and_discard_trailerc                 C   sl   | j }|sh|d k	r| d z|  }W n tk
rD   tdY nX |dkrb|   |   d }|| _ |S )NrZ   r<   r   )rS   r   r   r`   r
   r   rb   )r1   rS   r   r   r   _get_chunk_left   s    
zHTTPResponse._get_chunk_leftc                 C   sb   g }z6|   }|d krq0|| | d| _qd|W S  tk
r\   td|Y nX d S Nr   r<   )r   r0   r   rS   rE   r
   )r1   valuerS   r   r   r   r   8  s    zHTTPResponse._readall_chunkedc                 C   s   d}t |}zv|  }|d kr$|W S t||krN| |}|| | _|| W S |d | }| |}||d  }||7 }d| _qW n( tk
r   tt|d| Y nX d S )Nr   )r   r   r-   _safe_readintorS   r
   bytes)r1   r   Ztotal_bytesZmvbrS   r2   Ztemp_mvbr   r   r   r   F  s"    



zHTTPResponse._readinto_chunkedc                 C   s.   | j |}t||k r*t||t| |S ru   )r@   r   r-   r
   )r1   r   r   r   r   r   r   ^  s    zHTTPResponse._safe_readc                 C   s:   t |}| j|}||k r6tt|d | || |S ru   )r-   r@   r~   r
   r   )r1   r   r   r2   r   r   r   r   j  s
    zHTTPResponse._safe_readintoc                 C   s   | j d ks| jdkrdS | jr(| |S | jd k	rJ|dk sD|| jkrJ| j}| j |}|sh|rh|   n| jd k	r|  jt|8  _|S Nrk   r<   r   )r@   rL   rR   _read1_chunkedrT   read1rb   r-   )r1   r2   resultr   r   r   r   r  s    


zHTTPResponse.read1c                 C   s4   | j d ks| jdkrdS | jr(| |S | j |S )Nrk   r<   )r@   rL   rR   _peek_chunkedpeek)r1   r2   r   r   r   r     s
    
zHTTPResponse.peekc                    s   | j d ks| jdkrdS | jr*t |S | jd k	rL|dk sF|| jkrL| j}| j |}|sj|rj|   n| jd k	r|  jt|8  _|S r   )r@   rL   rR   rv   r=   rT   rb   r-   )r1   limitr   rx   r   r   r=     s    

zHTTPResponse.readlinec                 C   sd   |   }|d ks|dkrdS d|  kr0|ks6n |}| j|}|  jt|8  _|s`td|S r   )r   r@   r   rS   r-   r
   )r1   r2   rS   r   r   r   r   r     s    zHTTPResponse._read1_chunkedc                 C   sD   z|   }W n tk
r"   Y dS X |d kr0dS | j|d | S )Nr<   )r   r
   r@   r   )r1   r2   rS   r   r   r   r     s    zHTTPResponse._peek_chunkedc                 C   s
   | j  S ru   )r@   filenorw   r   r   r   r     s    zHTTPResponse.filenoc                 C   sF   | j d krt | j |p|}t|ts4t|ds8|S d|S d S )N__iter__z, )rA   r   Zget_all
isinstancer\   hasattrrE   )r1   r&   defaultrA   r   r   r   	getheader  s    
zHTTPResponse.getheaderc                 C   s   | j d krt t| j  S ru   )rA   r   listrn   rw   r   r   r   
getheaders  s    
zHTTPResponse.getheadersc                 C   s   | S ru   r   rw   r   r   r   r     s    zHTTPResponse.__iter__c                 C   s   | j S ru   )rA   rw   r   r   r   info  s    zHTTPResponse.infoc                 C   s   | j S ru   )rX   rw   r   r   r   geturl  s    
zHTTPResponse.geturlc                 C   s   | j S ru   )rP   rw   r   r   r   getcode  s    zHTTPResponse.getcode)r   NN)N)r   )r   )r   )N)"r5   r6   r7   rY   rd   rs   rp   rb   rt   rz   r{   r|   r   r~   r   r   r   r   r   r   r   r   r   r=   r   r   r   r   r   r   r   r   r   __classcell__r   r   rx   r   r      s<   	
!H

 "

	
c                   @   s
  e Zd ZdZdZeZeZdZ	dZ
edd Zedd Zd	ejd	d
fddZd7ddZdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd8d d!Zd9d"d#Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Z d:dd.d/d0Z!d	i fdd.d1d2Z"d3d4 Z#d5d6 Z$d	S );r   rf   zHTTP/1.1r+   r   c                 C   s   t | tjS ru   )r   io
TextIOBase)streamr   r   r   
_is_textIO  s    zHTTPConnection._is_textIOc                 C   sf   | d kr|  tkrdS d S t| dr*d S zt| }|jW S  tk
rN   Y nX t| trbt| S d S )Nr   r   )	upper_METHODS_EXPECTING_BODYr   r   nbytes	TypeErrorr   r\   r-   )bodyrW   Zmvr   r   r   _get_content_length  s    

z"HTTPConnection._get_content_lengthN    c                 C   sn   || _ || _|| _d | _g | _d | _t| _d | _d | _	d | _
i | _| ||\| _| _| | j tj| _d S ru   )timeoutsource_address	blocksizerV   _buffer_HTTPConnection__response_CS_IDLE_HTTPConnection__staterL   _tunnel_host_tunnel_port_tunnel_headers_get_hostporthostport_validate_hostsocketZcreate_connection_create_connection)r1   r   r   r   r   r   r   r   r   rY   4  s    zHTTPConnection.__init__c                 C   s<   | j rtd| ||\| _| _|r.|| _n
| j  d S )Nz.Can't set up tunnel for established connection)rV   RuntimeErrorr   r   r   r   clear)r1   r   r   rA   r   r   r   
set_tunnelJ  s    zHTTPConnection.set_tunnelc                 C   s   |d kr| d}| d}||krzt||d d  }W nH tk
r   ||d d  dkrh| j}ntd||d d   Y nX |d | }n| j}|r|d dkr|d dkr|dd }||fS )	Nr*   ]r+   r[   znonnumeric port: '%s'r   [r   )rfindrc   r`   default_portr   )r1   r   r   r   jr   r   r   r   b  s    

zHTTPConnection._get_hostportc                 C   s
   || _ d S ru   )rK   )r1   levelr   r   r   set_debuglevelv  s    zHTTPConnection.set_debuglevelc                 C   s   d| j | jf }|d}| | | j D ](\}}d||f }|d}| | q.| d | j| j| jd}|	 \}}	}
|	t
jjkr|   td|	|
 f |jtd }t|tkrtd	|sq|d
krq| jdkrtd|  qd S )NzCONNECT %s:%d HTTP/1.0
asciiz%s: %s
r   r:   rW   zTunnel connection failed: %d %sr+   r8   r9   r   rg   )r   r   r   sendr   rn   response_classrV   rL   rd   http
HTTPStatusZOKrt   OSErrorrm   r@   r=   r>   r-   r   rK   r]   rF   )r1   Zconnect_strZconnect_bytesheaderr   Z
header_strZheader_bytesresponserO   rl   messager3   r   r   r   _tunnely  s4    




zHTTPConnection._tunnelc                 C   sB   |  | j| jf| j| j| _| jtjtj	d | j
r>|   d S )Nr+   )r   r   r   r   r   rV   Z
setsockoptr   ZIPPROTO_TCPZTCP_NODELAYr   r   rw   r   r   r   connect  s    
  zHTTPConnection.connectc                 C   sB   t | _z| j}|r d | _|  W 5 | j}|r<d | _|  X d S ru   )r   r   r   rt   rV   )r1   r   rV   r   r   r   rt     s    zHTTPConnection.closec                 C   s  | j d kr | jr|   nt | jdkr8tdt| t|dr| jdkrTtd | |}|rt| jdkrttd |	| j
}|sq|r|d}| j | qtd S z| j | W nL tk
r   t|tjjr|D ]}| j | qntdt| Y nX d S )Nr   zsend:r   sendIng a read()ableencoding file using iso-8859-1rC   z9data should be a bytes-like object or an iterable, got %r)rV   	auto_openr   r   rK   r]   r^   r   r   r   r   r   Zsendallr   r   collectionsabcIterabletype)r1   r   r   	datablockdr   r   r   r     s8    






zHTTPConnection.sendc                 C   s   | j | d S ru   )r   r0   )r1   r   r   r   r   _output  s    zHTTPConnection._outputc                 c   s^   | j dkrtd | |}|r2| j dkr2td || j}|sDqZ|rR|d}|V  q2d S )Nr   r   r   rC   )rK   r]   r   r   r   r   )r1   r{   r   r   r   r   r   _read_readable  s    


zHTTPConnection._read_readableFc                 C   s   | j d d| j }| j d d = | | |d k	rt|drN| |}nZzt| W nF tk
r   zt|}W n$ tk
r   tdt	| Y nX Y nX |f}|D ]R}|s| j
dkrtd q|r| jdkrt|dd	d
| d }| | q|r| jdkr| d d S )N)r<   r<   r:   r   zAmessage_body should be a bytes-like object or an iterable, got %rr   zZero length chunk ignoredrf   Xz
r   s   0

)r   extendrE   r   r   r   r   r   iterr   rK   r]   	_http_vsnr-   r   )r1   message_bodyencode_chunkedrM   Zchunkschunkr   r   r   _send_output  s:    



zHTTPConnection._send_outputc                 C   s  | j r| j  rd | _ | jtkr(t| _n
t| j| | || _|pHd}| | d||| j	f }| 
| | | jdkr|sd}|drt|\}}}}}|rz|d}W n tk
r   |d}Y nX | d| n| jr| j}	| j}
n| j}	| j}
z|	d}W n  tk
r4   |	d}Y nX |	d	d
krRd| d }|
| jkrl| d| n|d}| dd||
f  |s| dd n d S )N/z%s %s %srf   r[   r   r   ZidnaZHostr*   r      [   ]z%s:%szAccept-EncodingZidentity)r   r|   r   r   _CS_REQ_STARTEDr   _validate_methodrL   _validate_path_http_vsn_strr   _encode_requestr   ra   r   r   r    	putheaderr   r   r   r   r   r   rF   )r1   rW   rX   	skip_hostskip_accept_encodingrequestZnetlocZnilZ
netloc_encr   r   Zhost_encr   r   r   
putrequest   sP    






zHTTPConnection.putrequestc                 C   s
   | dS )Nr   )r   )r1   r   r   r   r   r     s    zHTTPConnection._encode_requestc                 C   s,   t |}|r(td|d| dd S )Nz)method can't contain control characters.  (found at least ))$_contains_disallowed_method_pchar_researchr`   group)r1   rW   matchr   r   r   r     s
    
zHTTPConnection._validate_methodc                 C   s,   t |}|r(td|d| dd S Nz&URL can't contain control characters. r   r   !_contains_disallowed_url_pchar_rer   r   r   )r1   rX   r   r   r   r   r     s    
zHTTPConnection._validate_pathc                 C   s,   t |}|r(td|d| dd S r   r   )r1   r   r   r   r   r   r     s    
zHTTPConnection._validate_hostc                 G   s   | j tkrt t|dr$|d}t|s:td|f t|}t|D ]\\}}t|drl|d||< nt	|t
rt|d||< t|| rJtd|| f qJd|}|d | }| | d S )Nr   r   zInvalid header name %rr   zInvalid header value %rs   
	s   : )r   r   r   r   r   _is_legal_header_namer`   r   	enumerater   rc   r\   _is_illegal_header_valuerE   r   )r1   r   valuesr   Z	one_valuer   r   r   r   r     s"    





zHTTPConnection.putheaderr   c                C   s*   | j tkrt| _ nt | j||d d S )Nr  )r   r   _CS_REQ_SENTr   r   )r1   r   r   r   r   r   
endheaders  s    
zHTTPConnection.endheadersc                C   s   |  ||||| d S ru   )_send_request)r1   rW   rX   r   rA   r   r   r   r   r     s    zHTTPConnection.requestc                 C   s   t dd |D }i }d|kr&d|d< d|kr6d|d< | j||f| d|krd	|krd
}| ||}|d kr|d k	r| jdkrtd|  d}| dd q| dt| nd
}| D ]\}	}
| |	|
 qt|trt	|d}| j
||d d S )Nc                 s   s   | ]}|  V  qd S ru   )r,   )r   kr   r   r   	<genexpr>  s     z/HTTPConnection._send_request.<locals>.<genexpr>r   r+   r   zaccept-encodingr   ri   rh   Fr   zUnable to determine size of %rTzTransfer-EncodingrR   zContent-Lengthr   r  )	frozensetr   r   rK   r]   r   r\   rn   r   r(   r  )r1   rW   rX   r   rA   r   Zheader_namesZskipsZcontent_lengthrq   r   r   r   r   r	    s0    	


zHTTPConnection._send_requestc                 C   s   | j r| j  rd | _ | jtks&| j r0t| j| jdkrR| j| j| j| jd}n| j| j| jd}zNz|	  W n t
k
r   |    Y nX t| _|jr|   n|| _ |W S    |   Y nX d S )Nr   r   )r   r|   r   r  r   rK   r   rV   rL   rs   ConnectionErrorrt   r   rU   )r1   r   r   r   r   getresponse  s.    


zHTTPConnection.getresponse)NN)NF)FF)N)%r5   r6   r7   r   r   r   r   	HTTP_PORTr   r   rK   staticmethodr   r   r   _GLOBAL_DEFAULT_TIMEOUTrY   r   r   r   r   r   rt   r   r   r   r   r   r   r   r   r   r   r  r   r	  r  r   r   r   r   r     sL   

 

	&
6  
	.c                       sD   e Zd ZeZdddejdfdddd fddZ fddZ  Z	S )HTTPSConnectionNr   )contextcheck_hostnamer   c                   s   t t| j|||||	d |d k	s2|d k	s2|d k	rHdd l}
|
dtd || _|| _|d krtt	 }|j
d k	rtd|_
|jtjk}|d kr|j}|r|std|s|r||| |j
d k	rd|_
|| _|d k	r|| j_d S )N)r   r   zTkey_file, cert_file and check_hostname are deprecated, use a custom context instead.rZ   TzMcheck_hostname needs a SSL context with either CERT_OPTIONAL or CERT_REQUIRED)rv   r  rY   warningswarnDeprecationWarningkey_file	cert_filesslZ_create_default_https_contextZpost_handshake_authZverify_modeZ	CERT_NONEr  r`   Zload_cert_chain_context)r1   r   r   r  r  r   r   r  r  r   r  Zwill_verifyrx   r   r   rY   c  s<     

zHTTPSConnection.__init__c                    s6   t    | jr| j}n| j}| jj| j|d| _d S )N)server_hostname)rv   r   r   r   r  Zwrap_socketrV   )r1   r  rx   r   r   r     s    

zHTTPSConnection.connect)
r5   r6   r7   
HTTPS_PORTr   r   r  rY   r   r   r   r   rx   r   r  \  s    $r  c                   @   s   e Zd ZdS )r   Nr5   r6   r7   r   r   r   r   r     s   c                   @   s   e Zd ZdS )r   Nr  r   r   r   r   r     s   c                   @   s   e Zd ZdS )r   Nr  r   r   r   r   r     s   c                   @   s   e Zd Zdd ZdS )r   c                 C   s   |f| _ || _d S ru   )argsrO   )r1   rO   r   r   r   rY     s    zUnknownProtocol.__init__Nr5   r6   r7   rY   r   r   r   r   r     s   c                   @   s   e Zd ZdS )r   Nr  r   r   r   r   r     s   c                   @   s   e Zd ZdS )r	   Nr  r   r   r   r   r	     s   c                   @   s$   e Zd ZdddZdd ZejZdS )r
   Nc                 C   s   |f| _ || _|| _d S ru   )r  partialexpected)r1   r!  r"  r   r   r   rY     s    zIncompleteRead.__init__c                 C   s2   | j d k	rd| j  }nd}d| jjt| j|f S )Nz, %i more expectedr[   z%s(%i bytes read%s))r"  ry   r5   r-   r!  )r1   er   r   r   __repr__  s    
 zIncompleteRead.__repr__)N)r5   r6   r7   rY   r$  r"   __str__r   r   r   r   r
     s   
c                   @   s   e Zd ZdS )r   Nr  r   r   r   r   r     s   c                   @   s   e Zd ZdS )r   Nr  r   r   r   r   r     s   c                   @   s   e Zd ZdS )r   Nr  r   r   r   r   r     s   c                   @   s   e Zd ZdS )r   Nr  r   r   r   r   r     s   c                   @   s   e Zd Zdd ZdS )r   c                 C   s   |st |}|f| _|| _d S ru   )r^   r  r3   r   r   r   r   rY     s    zBadStatusLine.__init__Nr   r   r   r   r   r     s   c                   @   s   e Zd Zdd ZdS )r   c                 C   s   t | dt|f  d S )Nz&got more than %d bytes when reading %s)r   rY   r>   )r1   Z	line_typer   r   r   rY     s    zLineTooLong.__init__Nr   r   r   r   r   r     s   c                   @   s   e Zd Zdd ZdS )r   c                 O   s"   t | d tj| f|| d S )Nr[   )r   rY   ConnectionResetError)r1   poskwr   r   r   rY     s    zRemoteDisconnected.__init__Nr   r   r   r   r   r     s   )r   )@Zemail.parserrG   Zemail.messager   r   rer   Zcollections.abcr   Zurllib.parser   __all__r  r  rN   r   r   r  globalsupdater   __members__r  r   r>   r?   compile	fullmatchr  r   r  r  r   r   r(   r   ZMessager)   rB   rI   BufferedIOBaser   r   r  ImportErrorr  r0   	Exceptionr   r   r   r   r   r	   r
   r   r   r   r   r   r   r&  r   r   r   r   r   r   <module>G   s             



        W8
