+
    ~j                    D   ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ]	P*                  '       d   ^RIHt   ^ RIt^RIHt ^R	IHt ^R
IHt ^RI H!t!H"t"H#t# ^RI$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/ ^RI0H1t1H2t2 ^RI3H4t4 ]	P*                  '       d   ^RI5H6t6 ]Pn                  ! ]84      t9 ! R R4      t: ! R R]:4      t; ! R R4      t< ! R R]:4      t=]e    ! R R]:4      t> ]P~                  R)8  d   ^ RI@HAtA M^ RIBHAtA RtC ! R R]:4      tD ! R R ]:4      tER! R" ltF ! R# R$4      tG ! R% R&]P                  4      tI ! R' R(]I4      tR#   ] d	    ^ RIt ELi ; i  ] d    Rt EL.i ; i  ] d    RtC Lji ; i)*    )annotationsN)contextmanager)HTTPMessage)HTTPResponse)timeout)BaseHTTPConnection)util)
_TYPE_BODY)HTTPHeaderDict)BaseSSLErrorHTTPConnectionHTTPException)BodyNotHttplibCompatibleDecodeErrorDependencyWarning	HTTPErrorIncompleteReadInvalidChunkLengthInvalidHeaderProtocolErrorReadTimeoutErrorResponseNotChunkedSSLError)is_fp_closedis_response_to_head)Retry)HTTPConnectionPoolc                  H    ] tR t^6tR	R R llt]R R l4       tR R ltRtR# )
ContentDecoderc               $    V ^8  d   QhRRRRRR/#    databytes
max_lengthintreturn )formats   "e/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/urllib3/response.py__annotate__ContentDecoder.__annotate__7   s!     $ $u $# $u $    c                	    \        4       hNNotImplementedErrorselfr#   r%   s   &&&r*   
decompressContentDecoder.decompress7       !##r-   c                   V ^8  d   QhRR/# r"   r'   boolr(   )r)   s   "r*   r+   r,   ;   s     $ $T $r-   c                	    \        4       hr/   r0   r3   s   &r*   has_unconsumed_tail"ContentDecoder.has_unconsumed_tail:       !##r-   c                   V ^8  d   QhRR/# r"   r'   r$   r(   )r)   s   "r*   r+   r,   >   s     $ $u $r-   c                	    \        4       hr/   r0   r;   s   &r*   flushContentDecoder.flush>   r6   r-   r(   N)	__name__
__module____qualname____firstlineno__r4   propertyr<   rB   __static_attributes__r(   r-   r*   r   r   6   s%    $ $ $$ $r-   r   c                  T    ] tR t^BtR R ltRR R llt]R R l4       tR R ltR	t	R
# )DeflateDecoderc                   V ^8  d   QhRR/# r"   r'   Noner(   )r)   s   "r*   r+   DeflateDecoder.__annotate__C   s     ) )$ )r-   c                	d    R V n         RV n        RV n        \        P                  ! 4       V n        R# )Tr-   N)
_first_try_first_try_data_unfed_datazlibdecompressobj_objr;   s   &r*   __init__DeflateDecoder.__init__C   s)    "&&(	r-   c               $    V ^8  d   QhRRRRRR/# r!   r(   )r)   s   "r*   r+   rQ   I   s!     (+ (+u (+# (+u (+r-   c                	   V P                   V,           pR V n         V'       g   V P                  P                  '       g   V# TpV^ 8  d   ^ pMV^ 8X  d	   Wn         R # V P                  '       g9   V P                  P	                  V P                  P                  V,           VR7      # V ;P
                  V,          un         V P                  P	                  WR7      pV'       d   RV n        R V n        V#   \        P                   df    RT n        \        P                  ! \        P                  ) 4      T n         T P	                  T P
                  TR7      R T n        u #   R T n        i ; ii ; i)r-   r%   F)
rU   rX   unconsumed_tailrS   r4   rT   rV   errorrW   	MAX_WBITS)r3   r#   r%   original_max_lengthdecompresseds   &&&  r*   r4   DeflateDecoder.decompressI   s@   $&DII555K("J A%
  $ 99''		))D0Z (  
 	$	+99///LL"''*$zz 	+#DO**DNN?;DI+((5H '  (+$s$	+s%    3C4 4AE.;E!E.!	E**E.c                   V ^8  d   QhRR/# r8   r(   )r)   s   "r*   r+   rQ   t   s     
 
T 
r-   c                	    \        V P                  4      ;'       g9    \        V P                  P                  4      ;'       d    V P                  '       * # r/   )r9   rU   rX   r^   rS   r;   s   &r*   r<   "DeflateDecoder.has_unconsumed_tails   s@    D$$% 
 
**+CCDOO0C	
r-   c                   V ^8  d   QhRR/# r@   r(   )r)   s   "r*   r+   rQ   y        ! !u !r-   c                	6    V P                   P                  4       # r/   rX   rB   r;   s   &r*   rB   DeflateDecoder.flushy       yy  r-   )rS   rT   rX   rU   NrD   
rF   rG   rH   rI   rY   r4   rJ   r<   rB   rK   r(   r-   r*   rM   rM   B   s+    )(+T 
 

! !r-   rM   c                  "    ] tR t^}t^ t^t^tRtR# )GzipDecoderStater(   N)rF   rG   rH   rI   FIRST_MEMBEROTHER_MEMBERSSWALLOW_DATArK   r(   r-   r*   ro   ro   }   s    LMLr-   ro   c                  T    ] tR t^tR R ltRR R llt]R R l4       tR R ltR	t	R
# )GzipDecoderc                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   GzipDecoder.__annotate__   s     $ $$ $r-   c                	    \         P                  ! ^\         P                  ,           4      V n        \        P
                  V n        RV n        R# )   r-   N)rV   rW   r`   rX   ro   rp   _state_unconsumed_tailr;   s   &r*   rY   GzipDecoder.__init__   s2    &&rDNN':;	&33 #r-   c               $    V ^8  d   QhRRRRRR/# r!   r(   )r)   s   "r*   r+   rv      s!     0 0u 0# 0u 0r-   c           
     	&   \        4       pV P                  \        P                  8X  d   \	        V4      # V^ 8X  d   V ;P
                  V,          un        R# V P
                  V,           pV'       g(   V P                  P                  '       d   \	        V4      #   W0P                  P                  V\        V\        V4      ,
          ^ 4      R7      ,          pT P                  P                  ;'       g    T P                  P                  ;T n        pT^ 8  d   \        T4      T8  d   MyT'       g   \	        T4      # T P                  P                  '       g   K  \        P                  T n        \        P                   ! ^\        P"                  ,           4      T n        EK  \	        T4      #   \        P                   dM    T P                  p\        P                  T n        RT n        T\        P                  8X  d   \	        T4      u # h i ; i)r   r-   r]   )	bytearrayry   ro   rr   r$   rz   rX   eofr4   maxlenrV   r_   rq   r^   unused_datarW   r`   )r3   r#   r%   retprevious_states   &&&  r*   r4   GzipDecoder.decompress   s   k;;*777:?
 !!T)! $$t+		:yy++Sc#h)>%B ,   		))BBTYY-B-BD!D A~#c(j"8Sz! yy}}}.<< ..rDNN/BC	Sz1 :: !%.;;(+%!%5%C%CC :%s   =F/ /AHHc                   V ^8  d   QhRR/# r8   r(   )r)   s   "r*   r+   rv      s     + +T +r-   c                	,    \        V P                  4      # r/   )r9   rz   r;   s   &r*   r<   GzipDecoder.has_unconsumed_tail   s    D))**r-   c                   V ^8  d   QhRR/# r@   r(   )r)   s   "r*   r+   rv      rh   r-   c                	6    V P                   P                  4       # r/   rj   r;   s   &r*   rB   GzipDecoder.flush   rl   r-   )rX   ry   rz   NrD   rm   r(   r-   r*   rt   rt      s+    $
0d + +! !r-   rt   c                  d    ] tR t^tR R ltRR R lltRR R llt]R R l4       tR	 R
 lt	Rt
R# )BrotliDecoderc                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   BrotliDecoder.__annotate__   s     	@ 	@d 	@r-   c                	    \         P                  ! 4       V n        \        V P                  R 4      '       d$   \	        V RV P                  P
                  4       R# \	        V RV P                  P                  4       R# )r4   _decompressN)brotliDecompressorrX   hasattrsetattrr4   processr;   s   &r*   rY   BrotliDecoder.__init__   sO    ++-DItyy,//mTYY-A-ABmTYY->->?r-   c               $    V ^8  d   QhRRRRRR/# )r"   r#   r$   output_buffer_limitr&   r'   r(   )r)   s   "r*   r+   r      s!     	( 	(E 	( 	(U 	(r-   c                	    \        4       hr/   r0   )r3   r#   r   s   &&&r*   r   BrotliDecoder._decompress   s    %''r-   c               $    V ^8  d   QhRRRRRR/# r!   r(   )r)   s   "r*   r+   r      s!     	. 	.5 	.c 	.5 	.r-   c                	     V^ 8  d   V P                  WR7      # V P                  V4      #   \         d0    \        P                  ! R\        4       T P                  T4      u # i ; i)r   )r   z;Brotli >= 1.2.0 is required to prevent decompression bombs.)r   	TypeErrorwarningswarnr   r2   s   &&&r*   r4   BrotliDecoder.decompress   si    .>++D+QQ++D11 . Q% ''--.s   , , 7A&%A&c                   V ^8  d   QhRR/# r8   r(   )r)   s   "r*   r+   r      s     	 	 	r-   c                	f     V P                   P                  4       '       * #   \         d     R # i ; i)F)rX   can_accept_more_dataAttributeErrorr;   s   &r*   r<   !BrotliDecoder.has_unconsumed_tail   s/    9999;;;! s   ! 00c                   V ^8  d   QhRR/# r@   r(   )r)   s   "r*   r+   r           	 	5 	r-   c                	r    \        V P                  R 4      '       d   V P                  P                  4       # R# )rB   r-   )r   rX   rB   r;   s   &r*   rB   BrotliDecoder.flush   s'    tyy'**yy((r-   rX   NrD   )rF   rG   rH   rI   rY   r   r4   rJ   r<   rB   rK   r(   r-   r*   r   r      s0    	@	(	. 
	 
		 	r-   r   )zstdTc                  T    ] tR t^tR R ltRR R llt]R R l4       tR R ltR	t	R
# )ZstdDecoderc                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   ZstdDecoder.__annotate__   s     	0 	0d 	0r-   c                	:    \         P                  ! 4       V n        R # r/   )r   ZstdDecompressorrX   r;   s   &r*   rY   ZstdDecoder.__init__   s    --/DIr-   c               $    V ^8  d   QhRRRRRR/# r!   r(   )r)   s   "r*   r+   r      s!      	(  	(5  	(c  	(5  	(r-   c                	l   V'       g   V P                   '       g   R # V P                  P                  '       d8   V P                  P                  V,           p\        P
                  ! 4       V n        V P                  P                  WR7      p\        V4      pV.pV P                  P                  '       d   V P                  P                  '       d   V^ 8  g   WB8  d   V P                  P                  pV P                  P                  '       g   \        P
                  ! 4       V n        V P                  P                  TV^ 8  d	   W$,
          MRR7      p\        V4      ;p'       d   VP                  V4       WG,          pK  V P                  P                  '       g   EK
   R P                  V4      # )r-   r]   rE   )r<   rX   r   r   r   r   r4   r   needs_inputappendjoin)r3   r#   r%   partlength
data_partsr   part_lengths   &&&     r*   r4   ZstdDecoder.decompress   s8    8 8 8yy}}}yy,,t3 113	99'''DDYFJ 		II)))!^v':"ii33yy,,, $ 5 5 7DIyy++8BQ
 3B ,  #&d)+;+%%d+)FYY***88J''r-   c                   V ^8  d   QhRR/# r8   r(   )r)   s   "r*   r+   r   !  s     	 	 	r-   c                	    V P                   P                  ;'       g    V P                   P                  '       * ;'       g     \        V P                   P                  4      # r/   )rX   r   r   r9   r   r;   s   &r*   r<   ZstdDecoder.has_unconsumed_tail   sF    		-->>?  4		%%D r-   c                   V ^8  d   QhRR/# r@   r(   )r)   s   "r*   r+   r   &  r   r-   c                	T    V P                   P                  '       g   \        R 4      hR# )zZstandard data is incompleter-   )rX   r   r   r;   s   &r*   rB   ZstdDecoder.flush&  s    99===!"@AAr-   r   NrD   rm   r(   r-   r*   r   r      s+    	0 	(D 
	 
	
	 	r-   r   Fc                  \    ] tR tRtRt^tR R ltR R ltRR R llt]	R	 R
 l4       t
RtR# )MultiDecoderi,  z
From RFC7231:
    If one or more encodings have been applied to a representation, the
    sender that applied the encodings MUST generate a Content-Encoding
    header field that lists the content codings in the order in which
    they were applied.
c                    V ^8  d   QhRRRR/# )r"   modesstrr'   rP   r(   )r)   s   "r*   r+   MultiDecoder.__annotate__9  s     > >c >d >r-   c                	0   VP                  R 4       Uu. uF  q"P                  4       NK  	  pp\        V4      V P                  8  d%   \	        R\        V4       RV P                   24      hV Uu. uF  p\        V4      NK  	  upV n        R# u upi u upi ),z)Too many content encodings in the chain: z > N)splitstripr   max_decode_linksr   _get_decoder	_decoders)r3   r   m	encodingses   &&   r*   rY   MultiDecoder.__init__9  s    (-C(89(81WWY(8	9y>D111;y>"#d&;&;%<>  4==9a,q/9= : >s   B0Bc                   V ^8  d   QhRR/# r@   r(   )r)   s   "r*   r+   r   B  s     ) )u )r-   c                	D    V P                   ^ ,          P                  4       # )r   )r   rB   r;   s   &r*   rB   MultiDecoder.flushB  s    ~~a &&((r-   c               $    V ^8  d   QhRRRRRR/# r!   r(   )r)   s   "r*   r+   r   E  s!      u # u r-   c                	z   V^ 8:  d0   \        V P                  4       F  pVP                  V4      pK  	  V# \        4       p Rp\        V P                  4       F1  pVP                  W\	        V4      ,
          R7      pV'       g   K/  RpK3  	  WA,          pV'       d   \	        V4      V8  d   \        V4      # RpK|  )r   TFr]   r-   )reversedr   r4   r~   r   r$   )r3   r#   r%   dr   any_datas   &&&   r*   r4   MultiDecoder.decompressE  s    ?dnn-||D) .Kk Hdnn-||D#c(5J|K4#H . KCs3x:5Sz!Dr-   c                   V ^8  d   QhRR/# r8   r(   )r)   s   "r*   r+   r   `  s     B BT Br-   c                	    \         ;QJ d&    R  V P                   4       F  '       g   K   R# 	  R# ! R  V P                   4       4      # )c              3  8   "   T F  qP                   x  K  	  R # 5ir/   )r<   ).0r   s   & r*   	<genexpr>3MultiDecoder.has_unconsumed_tail.<locals>.<genexpr>a  s     A.Q((.s   TF)anyr   r;   s   &r*   r<    MultiDecoder.has_unconsumed_tail_  s3    sA$..AssAsAsA$..AAAr-   )r   NrD   )rF   rG   rH   rI   __doc__r   rY   rB   r4   rJ   r<   rK   r(   r-   r*   r   r   ,  s4     >)4 B Br-   r   c                    V ^8  d   QhRRRR/# )r"   moder   r'   r   r(   )r)   s   "r*   r+   r+   d  s      s ~ r-   c                    R V 9   d   \        V 4      # V R9   d   \        4       # \        e   V R8X  d   \        4       # \        '       d   V R8X  d   \        4       # \        4       # )r   brr   )gzipx-gzip)r   rt   r   r   HAS_ZSTDr   rM   )r   s   &r*   r   r   d  sW    
d{D!! !!}ddlxDFN}r-   c                  V    ] tR tRtRtR R ltR R ltR R ltR	 R
 ltR R lt	Rt
R# )BytesQueueBufferiv  a|  Memory-efficient bytes buffer

To return decoded data in read() and still follow the BufferedIOBase API, we need a
buffer to always return the correct amount of bytes.

This buffer should be filled using calls to put()

Our maximum memory usage is determined by the sum of the size of:

 * self.buffer, which contains the full data
 * the largest chunk that we will copy in get()
c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   BytesQueueBuffer.__annotate__  s      $ r-   c                	H    \         P                  ! 4       V n        ^ V n        R# r   N)collectionsdequebuffer_sizer;   s   &r*   rY   BytesQueueBuffer.__init__  s    ?J?P?P?R
r-   c                   V ^8  d   QhRR/# r"   r'   r&   r(   )r)   s   "r*   r+   r     s       r-   c                	    V P                   # r/   )r   r;   s   &r*   __len__BytesQueueBuffer.__len__  s    zzr-   c                    V ^8  d   QhRRRR/# )r"   r#   r$   r'   rP   r(   )r)   s   "r*   r+   r     s          $  r-   c                	    V P                   P                  V4       V ;P                  \        V4      ,          un        R # r/   )r   r   r   r   r3   r#   s   &&r*   putBytesQueueBuffer.put  s&    4 

c$i
r-   c                    V ^8  d   QhRRRR/# )r"   nr&   r'   r$   r(   )r)   s   "r*   r+   r     s     ! !S !U !r-   c                	   V^ 8X  d   R# V P                   '       g   \        R4      hV^ 8  d   \        R4      h\        V P                   ^ ,          4      V8X  d[   \	        V P                   ^ ,          \
        4      '       d4   V ;P                  V,          un        V P                   P                  4       # ^ p\        P                  ! 4       pW!8  d   W,
          pV P                   P                  4       p\        V4      pWF8  dj   \        V4      pVRV WTR rVP                  V4       V P                   P                  V4       V ;P                  V,          un         VP                  4       # VP                  V4       V ;P                  V,          un        W&,          pV P                   '       d   K   VP                  4       # VP                  4       # )r   r-   zbuffer is emptyzn should be > 0N)r   RuntimeError
ValueErrorr   
isinstancer$   r   popleftioBytesIO
memoryviewwrite
appendleftgetvalue)	r3   r  fetchedr   	remainingchunkchunk_length
left_chunkright_chunks	   &&       r*   getBytesQueueBuffer.get  s[   6011U.//t{{1~!#
4;;q>5(I(IJJ!OJ;;&&((jjlkIKK'')Eu:L'"5)*/
*;U:=NK		*%&&{3

i'
 ||~ 		% 

l*
#G;;;||~s||~r-   c                   V ^8  d   QhRR/# r@   r(   )r)   s   "r*   r+   r     s       r-   c                	  a V P                   oS'       g   V P                  ^ 8X  g   Q hR# \        S4      ^8X  d8   SP                  4       p\	        V\
        4      '       d   VP                  4       pMR\        P                  ! 4       pVP                  V3R l\        \        S4      4       4       4       VP                  4       p^ V n        V# )r   r-   c              3  D   <"   T F  pSP                  4       x  K  	  R # 5ir/   )r	  )r   _r   s   & r*   r   +BytesQueueBuffer.get_all.<locals>.<genexpr>  s     H5G6>>++5Gs    )r   r   r   popr  r  tobytesr
  r  
writelinesranger  )r3   resultr   r   s   &  @r*   get_allBytesQueueBuffer.get_all  s    ::?"?v;!ZZ\F&*--)**,CNNHU3v;5GHH\\^F
r-   )r   r   N)rF   rG   rH   rI   r   rY   r   r  r  r"  rK   r(   r-   r*   r   r   v  s&     !F r-   r   c                     ] tR tRt$ . R<Ot]e   ]R.,          t]'       d   ]R.,          t. R=Ot]]	P                  3tR]R&   ]e   ]]P                  3,          t]'       d   ]]P                  3,          tRRRR/R	 R
 lltR R lt]R R l4       tR R lt]R R l4       t]P*                  R R l4       t]R R l4       t]R R l4       t]P*                  R R l4       tR>R R lltR?R R lltR@R R  lltR@R! R" lltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, lt RAR- R. llt!R/ R0 lt"R1 R2 lt#R3 R4 lt$RAR5 R6 llt%R7 R8 lt&R9 R: lt'R;t(R# )BBaseHTTPResponsei  Nr   r   ztuple[type[Exception], ...]DECODER_ERROR_CLASSESheadersretriesc               <    V ^8  d   QhRRRRRRRRRR	R
RRR	RRRR/	# )r"   r'  >typing.Mapping[str, str] | typing.Mapping[bytes, bytes] | Nonestatusr&   versionversion_stringr   reason
str | Nonedecode_contentr9   request_urlr(  Retry | Noner'   rP   r(   )r)   s   "r*   r+   BaseHTTPResponse.__annotate__  sg     !* !* P!* 	!*
 !* !* !* !*  !* !* 
!*r-   c               	   \        V\        4      '       d   Wn        M\        V4      V n        W n        W0n        W@n        WPn        W`n        R V n        Wpn	        Wn
        R V n        V P                  P                  RR4      P                  4       p	R V	P                  R4       4       p
RV
9   d   RV n        RV n        V  R# )Fztransfer-encoding c              3  @   "   T F  qP                  4       x  K  	  R # 5ir/   )r   )r   encs   & r*   r   ,BaseHTTPResponse.__init__.<locals>.<genexpr>  s     >,=SYY[[,=s   r   chunkedTN)r  r   r'  r+  r,  r-  r.  r0  _has_decoded_content_request_urlr(  r9  r  lowerr   _decoder)r3   r'  r+  r,  r-  r.  r0  r1  r(  tr_encr   s   &$$$$$$$$  r*   rY   BaseHTTPResponse.__init__  s     g~.."L)'2DL,,$)!(3!!"5r:@@B>FLL,=>		!DL/3r-   c                   V ^8  d   QhRR/# )r"   r'   z"str | None | typing.Literal[False]r(   )r)   s   "r*   r+   r3    s     
 
'I 
r-   c                r    V P                   V P                  9   d   V P                  P                  R4      # R# )z
Should we redirect and where to?

:returns: Truthy redirect location string if we got a redirect status
    code and valid location. ``None`` if redirect status and no
    location. ``False`` if not a redirect status code.
locationF)r+  REDIRECT_STATUSESr'  r  r;   s   &r*   get_redirect_location&BaseHTTPResponse.get_redirect_location  s.     ;;$000<<##J//r-   c                   V ^8  d   QhRR/# r@   r(   )r)   s   "r*   r+   r3    s     $ $e $r-   c                	    \        4       hr/   r0   r;   s   &r*   r#   BaseHTTPResponse.data  r>   r-   c                   V ^8  d   QhRR/# )r"   r'   z
typing.Anyr(   )r)   s   "r*   r+   r3    s     ! !j !r-   c                d    V P                   P                  R4      p\        P                  ! V4      # )al  
Deserializes the body of the HTTP response as a Python object.

The body of the HTTP response must be encoded using UTF-8, as per
`RFC 8529 Section 8.1 <https://www.rfc-editor.org/rfc/rfc8259#section-8.1>`_.

To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to
your custom decoder instead.

If the body of the HTTP response is not decodable to UTF-8, a
`UnicodeDecodeError` will be raised. If the body of the HTTP response is not a
valid JSON document, a `json.JSONDecodeError` will be raised.

Read more :ref:`here <json_content>`.

:returns: The body of the HTTP response as a Python object.
zutf-8)r#   decode_jsonloadsr   s   & r*   jsonBaseHTTPResponse.json  s'    $ yy({{4  r-   c                   V ^8  d   QhRR/# r"   r'   r/  r(   )r)   s   "r*   r+   r3    s     $ $Z $r-   c                	    \        4       hr/   r0   r;   s   &r*   urlBaseHTTPResponse.url  r>   r-   c                    V ^8  d   QhRRRR/# r"   rS  r/  r'   rP   r(   )r)   s   "r*   r+   r3    s     $ $z $d $r-   c                	    \        4       hr/   r0   r3   rS  s   &&r*   rS  rT    r>   r-   c                   V ^8  d   QhRR/# )r"   r'   zBaseHTTPConnection | Noner(   )r)   s   "r*   r+   r3  #  s     $ $5 $r-   c                	    \        4       hr/   r0   r;   s   &r*   
connectionBaseHTTPResponse.connection"  r>   r-   c                   V ^8  d   QhRR/# )r"   r'   r2  r(   )r)   s   "r*   r+   r3  '  s       r-   c                	    V P                   # r/   )_retriesr;   s   &r*   r(  BaseHTTPResponse.retries&  s    }}r-   c                    V ^8  d   QhRRRR/# )r"   r(  r2  r'   rP   r(   )r)   s   "r*   r+   r3  +  s        |    r-   c                	    Ve5   VP                   '       d#   VP                   R,          P                  V n        Wn        R # )NrE   )historyredirect_locationrS  r_  )r3   r(  s   &&r*   r(  r`  *  s-     7???r*<<DHr-   c               $    V ^8  d   QhRRRRRR/# r"   amt
int | Noner0  bool | Noner'   typing.Iterator[bytes]r(   )r)   s   "r*   r+   r3  1  s$     $ $$7B$	$r-   c                	    \        4       hr/   r0   r3   rg  r0  s   &&&r*   streamBaseHTTPResponse.stream1  s     "##r-   c               (    V ^8  d   QhRRRRRRRR/# 	r"   rg  rh  r0  ri  cache_contentr9   r'   r$   r(   )r)   s   "r*   r+   r3  6  s2     $ $$ $$ 	$
 
$r-   c                	    \        4       hr/   r0   )r3   rg  r0  rq  s   &&&&r*   readBaseHTTPResponse.read6  s     "##r-   c               $    V ^8  d   QhRRRRRR/# r"   rg  rh  r0  ri  r'   r$   r(   )r)   s   "r*   r+   r3  >  s(     $ $$ $$ 
	$r-   c                	    \        4       hr/   r0   rl  s   &&&r*   read1BaseHTTPResponse.read1>      
 "##r-   c               $    V ^8  d   QhRRRRRR/# rf  r(   )r)   s   "r*   r+   r3  E  s(     $ $$ $$ 
 	$r-   c                	    \        4       hr/   r0   rl  s   &&&r*   read_chunkedBaseHTTPResponse.read_chunkedE  rz  r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r3  L  s     $ $d $r-   c                	    \        4       hr/   r0   r;   s   &r*   release_connBaseHTTPResponse.release_connL  r6   r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r3  O  s     $ $D $r-   c                	    \        4       hr/   r0   r;   s   &r*   
drain_connBaseHTTPResponse.drain_connO  r6   r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r3  R  s     $ $$ $r-   c                	    \        4       hr/   r0   r;   s   &r*   shutdownBaseHTTPResponse.shutdownR  r6   r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r3  U  s     $ $t $r-   c                	    \        4       hr/   r0   r;   s   &r*   closeBaseHTTPResponse.closeU  r6   r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r3  X  s     C Ct Cr-   c                   V P                   P                  RR4      P                  4       pV P                  f   WP                  9   d   \        V4      V n        R# RV9   dl   VP                  R4       Uu. uF4  pVP                  4       V P                  9   g   K$  VP                  4       NK6  	  ppV'       d   \        V4      V n        R# R# R# R# u upi )z-
Set-up the _decoder attribute if necessary.
content-encodingr5  Nr   )r'  r  r<  r=  CONTENT_DECODERSr   r   r   )r3   content_encodingr   r   s   &   r*   _init_decoderBaseHTTPResponse._init_decoderX  s      <<++,>CIIK== #8#88 ,-= >(( .33C88wwyD$9$99 AGGI8  
 $01A$BDM  ) !s   5!CCc          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
r"   r#   r$   r0  ri  flush_decoderr9   r%   rh  r'   r(   )r)   s   "r*   r+   r3  k  s<     # ## $# 	#
 # 
#r-   c                   V'       g    V P                   '       d   \        R4      hV# Ve	   V'       d   Rp V P                  '       d$   V P                  P                  WR7      pRV n         T'       d   YP                  4       ,          pT#   T P                   dD   pT P
                  P                  RR4      P                  4       p\        RT,          T4      ThRp?ii ; i)	z>
Decode the data passed in and potentially flush the decoder.
_Calling read(decode_content=False) is not supported after read(decode_content=True) was called.Nr]   Tr  r5  zEReceived response with content-encoding: %s, but failed to decode it.rE   )
r:  r  r=  r4   r&  r'  r  r<  r   _flush_decoder)r3   r#   r0  r  r%   r   r  s   &&&&&  r*   _decodeBaseHTTPResponse._decodek  s     ((("<  KJ
	}}}}}///L,0) ''))D )) 	#||//0BBGMMO')9: 		s   B 	#B C >CC c                   V ^8  d   QhRR/# r@   r(   )r)   s   "r*   r+   r3    s       r-   c                    V P                   '       d;   V P                   P                  R4      V P                   P                  4       ,           # R# )zS
Flushes the decoder. Should only be called if the decoder is actually
being used.
r-   )r=  r4   rB   r;   s   &r*   r  BaseHTTPResponse._flush_decoder  s7    
 =====++C04==3F3F3HHHr-   c                    V ^8  d   QhRRRR/# )r"   bzbytearray | memoryview[int]r'   r&   r(   )r)   s   "r*   r+   r3    s      5 # r-   c                	    V P                  \        V4      4      p\        V4      ^ 8X  d   ^ # W!R\        V4      % \        V4      # r   )rs  r   )r3   r  temps   && r*   readintoBaseHTTPResponse.readinto  s9    yyQ t9>!kD	Nt9r-   c                   V ^8  d   QhRR/# r"   r'   r   r(   )r)   s   "r*   r+   r3    s      N r-   c                	    V P                   # r/   r'  r;   s   &r*   
getheadersBaseHTTPResponse.getheaders      ||r-   c               $    V ^8  d   QhRRRRRR/# )r"   namer   defaultr/  r'   r(   )r)   s   "r*   r+   r3    s!     / /c /J /* /r-   c                	8    V P                   P                  W4      # r/   )r'  r  )r3   r  r  s   &&&r*   	getheaderBaseHTTPResponse.getheader  s    ||..r-   c                   V ^8  d   QhRR/# r  r(   )r)   s   "r*   r+   r3    s      n r-   c                	    V P                   # r/   r  r;   s   &r*   infoBaseHTTPResponse.info  r  r-   c                   V ^8  d   QhRR/# rQ  r(   )r)   s   "r*   r+   r3    s      
 r-   c                	    V P                   # r/   )rS  r;   s   &r*   geturlBaseHTTPResponse.geturl  s    xxr-   )r=  r:  r;  r_  r9  r0  r'  r.  r(  r+  rS  r,  r-  )r   r   deflate)i-  i.  i/  i3  i4  i   NNNFNNr/   ))rF   rG   rH   rI   r  r   r   rC  IOErrorrV   r_   r&  __annotations__r   	ZstdErrorrY   rD  rJ   r#   rN  rS  setterr[  r(  rm  rs  rx  r}  r  r  r  r  r  r  r  r  r  r  r  r  rK   r(   r-   r*   r%  r%    so   4TF"VH$1:A4::9N6N&,,0$..!22!* SW!* !%!*F
 $ $!* $ $ 	ZZ$ $ $ $   ^^   $
$$$$$$$C&#J/ r-   r%  c                    a  ] tR tRtRtR<R V 3R llltR R ltR R lt]R	 R
 l4       t	]R R l4       t
R R ltR R ltR R lt]R R l4       tR=RR/R R llltR=RR/R R llltR>R R lltR?R R lltR@R R  lltR! R" ltR# R$ ltR% R& lt]R' R( l4       tR) R* ltR+ R, ltR- R. ltR/ R0 ltR1 R2 ltR?R3 R4 llt]R5 R6 l4       t]P@                  R7 R8 l4       tR9 R: lt!R;t"V ;t## )Ar   i  a  
HTTP Response container.

Backwards-compatible with :class:`http.client.HTTPResponse` but the response ``body`` is
loaded and decoded on-demand when the ``data`` property is accessed.  This
class is also compatible with the Python standard library's :mod:`io`
module, and can hence be treated as a readable object in the context of that
framework.

Extra parameters for behaviour not present in :class:`http.client.HTTPResponse`:

:param preload_content:
    If True, the response's body will be preloaded during construction.

:param decode_content:
    If True, will attempt to decode the body based on the
    'content-encoding' header.

:param original_response:
    When this HTTPResponse wrapper is generated from an :class:`http.client.HTTPResponse`
    object, it's convenient to include the original for debug purposes. It's
    otherwise unused.

:param retries:
    The retries contains the last :class:`~urllib3.util.retry.Retry` that
    was used during the request.

:param enforce_content_length:
    Enforce content length checking. Body returned by server must match
    value of Content-Length header, if present. Otherwise, raise error.
c          &     d    V ^8  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRRRRRRR /# )!r"   bodyr
   r'  r*  r+  r&   r,  r-  r   r.  r/  preload_contentr9   r0  original_responsez_HttplibHTTPResponse | NonepoolzHTTPConnectionPool | Noner[  HTTPConnection | Nonemsgz_HttplibHTTPMessage | Noner(  r2  enforce_content_lengthrequest_methodr1  
auto_closesock_shutdownz#typing.Callable[[int], None] | Noner'   rP   r(   )r)   s   "r*   r+   HTTPResponse.__annotate__  s     ?B ?B?B P?B 	?B
 ?B ?B ?B ?B ?B 7?B (?B *?B (?B ?B !%?B  #!?B"  #?B$ %?B& ;'?B( 
)?Br-   c                	  < \         SV `  VVVVVVVVR 7       Wn        VV n        RV n        RV n        RV n        Wn        ^ V n        Wn	        V'       d#   \        V\        \        34      '       d   Wn        Wn        Wn        \        VR4      '       d   Wn        VV n        RV n        V P%                  V4      V n        \)        4       V n        V'       d.   V P                  '       g   V P-                  VR7      V n        R# R# R# ))r'  r+  r,  r-  r.  r0  r1  r(  NFrs  r0  )superrY   r  r  _body_uncached_read_occurred_fp_original_response_fp_bytes_readr  r  r   r$   _pool_connectionr   _sock_shutdown
chunk_left_init_lengthlength_remainingr   _decoded_bufferrs  )r3   r  r'  r+  r,  r-  r.  r  r0  r  r  r[  r  r(  r  r  r1  r  r  	__class__s   &&&&&&&&&&&&&&&&&&&r*   rY   HTTPResponse.__init__  s    * 	))# 	 		
 '=#$
',$04"3Jtc5\22J
%4  H+ '+ !% 1 1. A  01 4:::.ADJ $.?r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r    s        d  r-   c                	    V P                   '       d   V P                  '       g   R # V P                   P                  V P                  4       R V n        R # r/   )r  r  	_put_connr;   s   &r*   r  HTTPResponse.release_conn  s9    zzz!1!1!1

T--.r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r    s     ! !D !r-   c                     V P                  4        V P
                  '       d   \        4       V n        RV n        R# R#   \        \        \        \        3 d     LIi ; i)z
Read and discard any remaining HTTP response data in the response connection.

Unread data in the HTTPResponse connection blocks the connection from being released back to the pool.
N)		_raw_readr   OSErrorr   r   r:  r   r  r=  r;   s   &r*   r  HTTPResponse.drain_conn  sU    	NN $$$ $4#5D  DM	 % 7L-@ 		s   > AAc                   V ^8  d   QhRR/# r@   r(   )r)   s   "r*   r+   r  +  s      e r-   c                	    V P                   '       d   V P                   # V P                  '       d   V P                  R R7      # R# )T)rq  N)r  r  rs  r;   s   &r*   r#   HTTPResponse.data*  s4     :::::888994900r-   c                   V ^8  d   QhRR/# )r"   r'   r  r(   )r)   s   "r*   r+   r  6  s        1  r-   c                	    V P                   # r/   )r  r;   s   &r*   r[  HTTPResponse.connection5  s    r-   c                   V ^8  d   QhRR/# r8   r(   )r)   s   "r*   r+   r  9  s     & &$ &r-   c                	,    \        V P                  4      # r/   )r   r  r;   s   &r*   isclosedHTTPResponse.isclosed9  s    DHH%%r-   c                   V ^8  d   QhRR/# r   r(   )r)   s   "r*   r+   r  <  s     # #c #r-   c                    V P                   # )z
Obtain the number of bytes pulled over the wire so far. May differ from
the amount of content returned by :meth:`HTTPResponse.read`
if bytes are encoded on the wire (e.g, compressed).
)r  r;   s   &r*   tellHTTPResponse.tell<  s     """r-   c                    V ^8  d   QhRRRR/# )r"   r  r/  r'   rh  r(   )r)   s   "r*   r+   r  D  s     6 6: 6* 6r-   c                *   V P                   P                  R4      pVe   V P                  '       d   \        P	                  R4       R#  VP                  R4       Uu0 uF  p\        V4      kK  	  pp\        V4      ^8  d   \        RV,          4      hVP                  4       pV^ 8  d   RpMRp \        V P                  4      pVR9   g   ^dTu;8:  d   ^8  g
   M VR8X  d   ^ pV# u upi   \         d    Rp LMi ; i  \         d    ^ p LJi ; i)z=
Set initial length value for Response content if available.
zcontent-lengthNzReceived response with both Content-Length and Transfer-Encoding set. This is expressly forbidden by RFC 7230 sec 3.3.2. Ignoring Content-Length and attempting to process response as Transfer-Encoding: chunked.r   z8Content-Length contained multiple unmatching values (%s)HEAD)   i0  )r'  r  r9  logwarningr   r&   r   r   r  r  r+  )r3   r  content_lengthvallengthsr   r+  s   &&     r*   r  HTTPResponse._init_lengthD  s!   
 &*\\%5%56F%G%|||  " 0>/C/CC/HI/H3s8/HIw<!#'13AB  ! A:!F F	%F
 Z3&#63#6.F:RF7 J    	F	s6   
C/ C*14C/ 2D *C/ /C?>C?DDc                   V ^8  d   QhRR/# )r"   r'   ztyping.Generator[None]r(   )r)   s   "r*   r+   r  }  s     ;$ ;$ 6 ;$r-   c              #  J  "   Rp  Rx  RpT'       gY   T P                  '       d   T P                  P                  4        T P                  '       d   T P                  P                  4        T P                  '       d5   T P                  P                  4       '       d   T P                  4        R# R# R#   \          d   p\        T P                  RR4      ThRp?i\         d   p\	        T4      ThRp?i\
         dS   pTP                  e.   TP                  e    TP                  TP                  ) 8X  d   RpMRT: 2p\        Y24      ThRp?i\        \        3 d   p\        RT: 2T4      ThRp?ii ; i  T'       gY   T P                  '       d   T P                  P                  4        T P                  '       d   T P                  P                  4        T P                  '       d3   T P                  P                  4       '       d   T P                  4        i i i ; i5i)z
Catch low-level python exceptions, instead re-raising urllib3
variants, so that low-level exceptions are not leaked in the
high-level api.

On exit, release the connection back to the pool.
FNzRead timed out.z!Response may not contain content.zConnection broken: T)SocketTimeoutr   r  r   r   r   expectedpartialr   r   r  r  r  r  r  r  )r3   
clean_exitr   args   &   r*   _error_catcherHTTPResponse._error_catcher|  s     
1	$K6 J  ***++113
 ###$$**, &&&4+B+B+K+K+M+M!!# ,N&Y ! S 'tzz49JKQRR )qkq(! 	3JJ*		-

qyyj0=C/u5C#C+2!7+ K#&9!$?CJK  ***++113
 ###$$**, &&&4+B+B+K+K+M+M!!# ,N&s   H#B5 E: H#+H#+H#?H#H#5E7 CE7%E7&C22E7?E7 AEE7 E7!E22E77E: :H +H +H -H H  H#rx  Fc               $    V ^8  d   QhRRRRRR/# r"   rg  rh  rx  r9   r'   r$   r(   )r)   s   "r*   r+   r    s-     3N 3N3N 	3N
 
3Nr-   c               &   V P                   '       g   Q hRpV'       d   W8  g(   Vf   V P                  '       d   V P                  V8  d   \        P                  '       d   V'       d   V P                   P	                  V4      # \
        P                  ! 4       pRpVe   V^ 8w  dc   Ve   \        W4      pW,          pMTpV P                   P                  V4      pV'       g    VP                  4       # VP                  V4       ?Km  VP                  4       # V'       d:   Ve   V P                   P	                  V4      # V P                   P	                  4       # Ve   V P                   P                  V4      # V P                   P                  4       # )aN  
Read a response with the thought that reading the number of bytes
larger than can fit in a 32-bit int at a time via SSL in some
known cases leads to an overflow error that has to be prevented
if `amt` or `self.length_remaining` indicate that a problem may
happen.

This happens to urllib3 injected with pyOpenSSL-backed SSL-support.
ii   )r  r  r	   IS_PYOPENSSLrx  r
  r  minrs  r  r  )r3   rg  rx  	c_int_maxr   max_chunk_amt	chunk_amtr#   s   &&$     r*   _fp_readHTTPResponse._fp_read  s.    xxxx	S_)))))I5xx~~i00ZZ\F "M+? #C 7I$C -Ixx}}Y/ ??$$ T"??$$*-/488>>#&Otxx~~?OO *-488==%MdhhmmoMr-   c               $    V ^8  d   QhRRRRRR/# r  r(   )r)   s   "r*   r+   r    s(     2 22 	2
 
2r-   c               <   V P                   f   R# \        V P                   RR4      pV P                  4       ;_uu_ 4        V'       g   V P                  WR7      MRpVe|   V^ 8w  du   V'       gm   V P                   P	                  4        V P
                  '       d@   V P                  e2   V P                  ^ 8w  d!   \        V P                  V P                  4      hMKV'       dD   V^ 8w  d	   V'       d   V P                  \        V4      8X  d   V P                   P	                  4        RRR4       X'       dS   V ;P                  \        V4      ,          un        V P                  e#   V ;P                  \        V4      ,          un        V#   + '       g   i     Ll; i)z'
Reads `amt` of bytes from the socket.
NclosedFrx  r-   )
r  getattrr	  r  r  r  r  r   r  r   )r3   rg  rx  	fp_closedr#   s   &&$  r*   r  HTTPResponse._raw_read  s"    88DHHh6	  "":C4===2D3!8D  ///--9--2 ))<)<d>S>STT$4+@+@CI+M  = #@ 3t9,$$0%%T2%I #"s%    /F0+FAF$F34FF	c               (    V ^8  d   QhRRRRRRRR/# rp  r(   )r)   s   "r*   r+   r  #  s8     j jj $j 	j
 
jr-   c           	     \   V P                  4        Vf   V P                  pV'       d   V^ 8  d   RpMVe   RpV P                  '       d   V P                  P                  '       de   \	        V P
                  4      V8  dK   V P                  RVRV\	        V P
                  4      ,
          R7      pV P
                  P                  V4       \	        V P
                  4      V8  d   V P
                  P                  V4      # V P                  V4      pV'       g   RV n
        VRJ ;'       g    V^ 8g  ;'       d    V'       * pV'       gK   \	        V P
                  4      ^ 8X  d1   V P                  '       d   V P                  P                  '       g   V# Vf   V P                  WRV4      pV'       dP   \	        V P
                  4      ^ 8  d6   V P
                  P                  V4       V P
                  P                  4       pV'       d   V P                  '       g   WPn        V# V'       g    V P                  '       d   \        R4      hV# V P                  VVVV\	        V P
                  4      ,
          R7      pV P
                  P                  V4       \	        V P
                  4      V8  df   V'       d^   V P                  V4      pV P                  VVVV\	        V P
                  4      ,
          R7      pV P
                  P                  V4       K  V P
                  P                  V4      pV# )a  
Similar to :meth:`http.client.HTTPResponse.read`, but with two additional
parameters: ``decode_content`` and ``cache_content``.

:param amt:
    How much of the content to read. If specified, caching is skipped
    because it doesn't make sense to cache partial content as the full
    response.

:param decode_content:
    If True, will attempt to decode the body based on the
    'content-encoding' header.

:param cache_content:
    If True, will save the returned data such that the same result is
    returned despite of the state of the underlying file object. This
    is useful if you want the ``.data`` property to continue working
    after having ``.read()`` the file object. (Overridden if ``amt`` is
    set.)
NFr-   r  r%   Tr  r]   )r  r0  r=  r<   r   r  r  r  r  r  r  r"  r  r:  r  )r3   rg  r0  rq  decoded_datar#   r  s   &&&&   r*   rs  HTTPResponse.read#  s   4 	!!00N37C_!M MM555,,-3#||""'"S)=)=%>>	  ,   $$((64''(C/++//44~~c"+/D(t>>q(=(=X D(()Q.]]]t}}'H'H'HK;<<mDD #d&:&:";a"?$$((.++335T%A%A%A!
B = ",,,&@  <<T%9%9!::	 ( L   $$\2d**+c1d ~~c*#||"!"S)=)=%>>	  ,   $$((6''++C0Dr-   c               $    V ^8  d   QhRRRRRR/# rv  r(   )r)   s   "r*   r+   r    s-     E- E-E- $E- 
	E-r-   c           	        Vf   V P                   pV'       d
   V^ 8  d   RpV P                  '       Ed   V'       g   \        R4      hV P                  '       d   V P                  P                  '       do   Ve   \        V P                  4      V8  dQ   T P                  RTRVe   V\        V P                  4      ,
          MRR7      pV P                  P                  V4       \        V P                  4      ^ 8  d:   Vf   V P                  P                  4       # V P                  P                  V4      # V^ 8X  d   R# V P                  VRR7      pRV n        V'       d   Vf   V# V P                  4         V'       * pV P                  WBWQR7      pV P                  P                  V4       V'       g	   V'       d   MV P                  R	RR7      pK\  Vf   V P                  P                  4       # V P                  P                  V4      # )
a;  
Similar to ``http.client.HTTPResponse.read1`` and documented
in :meth:`io.BufferedReader.read1`, but with an additional parameter:
``decode_content``.

:param amt:
    How much of the content to read.

:param decode_content:
    If True, will attempt to decode the body based on the
    'content-encoding' header.
NzaCalling read1(decode_content=False) is not supported after read1(decode_content=True) was called.r-   Fr  Tr  r]   i    )r0  r:  r  r=  r<   r   r  r  r  r"  r  r  r  r  )r3   rg  r0  r  r#   r  s   &&&   r*   rx  HTTPResponse.read1  s   " !!00N37C$$$!"= 
 MM555[C(<(<$=$C#||""';>?c$"6"677PT  ,   $$((64''(1,;//7799++//44!8 ~~c~.'+$K $HM<<m ( L   $$\2}>>$d>3D;''//11##'',,r-   c               $    V ^8  d   QhRRRRRR/# r"   rg  rh  r0  ri  r'   ztyping.Generator[bytes]r(   )r)   s   "r*   r+   r    s$         7B 	  r-   c              #    "   V^ 8X  d   R# V P                   '       d3   V P                  4       '       d   V P                  WR7       Rj  xL
  R# \        V P                  4      '       dI   \        V P                  4      ^ 8  g/   V P                  '       dA   V P                  P                  '       d#   V P                  WR7      pV'       g   K  Vx  K  R# R#  L5i)a  
A generator wrapper for the read() method. A call will block until
``amt`` bytes have been read from the connection or until the
connection is closed.

:param amt:
    How much of the content to read. The generator will return up to
    much data per iteration, but may return less. This is particularly
    likely when using compressed data. However, the empty string will
    never be returned.

:param decode_content:
    If True, will attempt to decode the body based on the
    'content-encoding' header.
Nr  )rg  r0  )
r9  supports_chunked_readsr}  r   r  r   r  r=  r<   rs  )r3   rg  r0  r#   s   &&& r*   rm  HTTPResponse.stream  s     $ !8<<<D7799(((LLL !**t++,q0MMMdmm&G&G&GyySyH4J 'HM Ms.   CCC	C
ACC3CCc                   V ^8  d   QhRR/# r8   r(   )r)   s   "r*   r+   r    s      $ r-   c                	    R # )Tr(   r;   s   &r*   readableHTTPResponse.readable  s    r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r    s     , ,$ ,r-   c                	    V P                   '       g   \        R 4      hV P                  f   \        R4      hV P                  \        P
                  4       R# )z8Cannot shutdown socket as self._sock_shutdown is not setNzCCannot shutdown as connection has already been released to the pool)r  r  r  r  socketSHUT_RDr;   s   &r*   r  HTTPResponse.shutdown  sJ    """WXX#U  	FNN+r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r    s     
" 
"t 
"r-   c                	N   R V n         V P                  '       g-   V P                  '       d   V P                  P                  4        V P                  '       d   V P                  P                  4        V P
                  '       g"   \        P                  P                  V 4       R # R # r/   )r  r  r  r  r  r  r
  IOBaser;   s   &r*   r  HTTPResponse.close  se    "{{{txxxHHNN""$IIOOD! r-   c                   V ^8  d   QhRR/# r8   r(   )r)   s   "r*   r+   r    s     
 
 
r-   c                	l   V P                   '       g*   \        P                  P                  P	                  V 4      # V P
                  f   R# \        V P
                  R4      '       d   V P
                  P                  4       # \        V P
                  R4      '       d   V P
                  P                  # R# )NTr  r  )r  r
  r4  r  __get__r  r   r  r;   s   &r*   r  HTTPResponse.closed  sy    99##++D11XXTXXz**88$$&&TXXx((88??"r-   c                   V ^8  d   QhRR/# r   r(   )r)   s   "r*   r+   r    s     	 	 	r-   c                	    V P                   f   \        R4      h\        V P                   R4      '       d   V P                   P                  4       # \        R4      h)Nz-HTTPResponse has no file to get a fileno fromfilenozOThe file-like object this HTTPResponse is wrapped around has no file descriptor)r  r  r   r<  r;   s   &r*   r<  HTTPResponse.fileno  sL    88IJJTXXx((88??$$0 r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r  )  s     $ $t $r-   c                	    V P                   eX   \        V P                   R4      '       d:   \        V P                   RR4      '       g   V P                   P                  4       # R # R # R # )NrB   r  F)r  r   r  rB   r;   s   &r*   rB   HTTPResponse.flush)  sP    HH '**DHHh6688>>## 7 + !r-   c                   V ^8  d   QhRR/# r8   r(   )r)   s   "r*   r+   r  1  s     ' ' 'r-   c                .    \        V P                  R4      # )z
Checks if the underlying file-like object looks like a
:class:`http.client.HTTPResponse` object. We do this by testing for
the fp attribute. If it is present we assume it returns raw chunks as
processed by read_chunked().
fp)r   r  r;   s   &r*   r'  #HTTPResponse.supports_chunked_reads1  s     txx&&r-   c                   V ^8  d   QhRR/# rO   r(   )r)   s   "r*   r+   r  :  s     L Ld Lr-   c                	B   V P                   e   R # V P                  P                  P                  4       pVP	                  R^4      ^ ,          p \        V^4      V n         R #   \         d2    T P                  4        T'       d   \        Y4      R h\        R4      R hi ; i)N   ;zResponse ended prematurely)
r  r  rC  readliner   r&   r  r  r   r   )r3   lines   & r*   _update_chunk_length!HTTPResponse._update_chunk_length:  s     ??&xx{{##%zz$"1%		L!$mDO 	LJJL(4$> $$@AtK	Ls   A" ""BBc                    V ^8  d   QhRRRR/# )r"   rg  rh  r'   r$   r(   )r)   s   "r*   r+   r  L  s        r-   c                	   R pVfL   V P                   P                  V P                  4      pTpV P                   P                  ^4       R V n        V# V P                  eH   WP                  8  d8   V P                   P                  V4      pV P                  V,
          V n        TpV# WP                  8X  dB   V P                   P                  V4      pV P                   P                  ^4       R V n        TpV# V P                   P                  V P                  4      pV P                   P                  ^4       R V n        V# r/   )r  
_safe_readr  )r3   rg  returned_chunkr  values   &&   r*   _handle_chunkHTTPResponse._handle_chunkL  s   ;HH''8E"NHH""DO  __(S??-BHH'',E"oo3DO"N  OO#HH'',EHH""DO"N
  "XX00ANHH""DOr-   c               $    V ^8  d   QhRRRRRR/# r%  r(   )r)   s   "r*   r+   r  b  s)     U0 U0U06AU0	 U0r-   c           	   #    "   V P                  4        V P                  '       g   \        R4      hV P                  4       '       g   \	        R4      hV P                  4       ;_uu_ 4        V P                  '       dA   \        V P                  4      '       d&   V P                  P                  4         RRR4       R# V P                  P                  f    RRR4       R# V^ 8X  d    RRR4       R# V'       d
   V^ 8  d   Rp V P                  '       d    V P                  P                  '       d   RpM:V P                  4        RV n        V P                  ^ 8X  d   M6V P!                  V4      pV P#                  VVRVR7      pV'       g   K  Vx  K  V'       d   V P%                  4       pV'       d   Vx  V P                  e8   V P                  P                  P'                  4       pV'       g   M
VR8X  g   KD   V P                  '       d   V P                  P                  4        RRR4       R#   + '       g   i     R# ; i5i)	av  
Similar to :meth:`HTTPResponse.read`, but with an additional
parameter: ``decode_content``.

:param amt:
    How much of the content to read. If specified, caching is skipped
    because it doesn't make sense to cache partial content as the full
    response.

:param decode_content:
    If True, will attempt to decode the body based on the
    'content-encoding' header.
zHResponse is not chunked. Header 'transfer-encoding: chunked' is missing.zkBody should be http.client.HTTPResponse like. It should have have an fp attribute which returns raw chunks.NTr-   F)r0  r  r%   s   
)r  r9  r   r'  r   r	  r  r   r  r  rC  r=  r<   rJ  r  r  rQ  r  r  rH  )r3   rg  r0  r  decodedrI  s   &&&   r*   r}  HTTPResponse.read_chunkedb  s      	|||$B  **,,*P 
   ""&&&+>t?V?V+W+W''--/	 #" xx{{" #" ax #" q ===T]]%F%F%FE--/37D0!+ ..s3E,,#1"'"	 '  7!M --/!M ((&xx{{++-7? &&&''--/q #"""s   AI#I)A	H22
I<H2
IH2'
I1H29H2H21AH2H2H23=H21H2;H2H2(
I2I	=	Ic                   V ^8  d   QhRR/# rQ  r(   )r)   s   "r*   r+   r    s     ! !Z !r-   c                    V P                   # )z
Returns the URL that was the source of this response.
If the request that generated this response redirected, this method
will return the final redirect location.
r;  r;   s   &r*   rS  HTTPResponse.url  s        r-   c                    V ^8  d   QhRRRR/# rV  r(   )r)   s   "r*   r+   r    s        z  d  r-   c                	    Wn         R # r/   rY  rX  s   &&r*   rS  rZ    s    r-   c                   V ^8  d   QhRR/# )r"   r'   rj  r(   )r)   s   "r*   r+   r    s     # #0 #r-   c              #  	  "   . pV P                  R R7       F  pRV9   dp   VP                  R4      pRP                  V4      V^ ,          ,           R,           x  V^R  F  pVR,           x  K  	  VR,          '       d   VR,          .pKu  . pKy  VP                  V4       K  	  V'       d   RP                  V4      x  R# R# 5i)Tr     
r-   NrE   )rm  r   r   r   )r3   r   r  chunksxs   &    r*   __iter__HTTPResponse.__iter__  s      [[[5E~U+hhv&2U::"Ae)O &"::$Rj\FFe$ 6 ((6"" s   B*C-C)r  r  r  r=  r  r  r  r  r;  r  r  r  r  r  r  r  )r5  Nr   r   zHTTP/?NTTNNNNNTNNTNr/   r  r  r  )$rF   rG   rH   rI   r   rY   r  r  rJ   r#   r[  r  r  r  r   r	  r  r  rs  rx  rm  r+  r  r  r  r<  rB   r'  rJ  rQ  r}  rS  r  rb  rK   __classcell__)r  s   @r*   r   r     s(   @?B ?BB !       &#6p ;$ ;$z3N 	3N 3Nj2 	2 2hjXE-N F,
" 
 
	$'L$,U0n ! ! 	ZZ   # #r-   r   )      )J
__future__r   r   r
  rN  rL  loggingr/  systypingr   rV   
contextlibr   http.clientr   _HttplibHTTPMessager   _HttplibHTTPResponser   r  TYPE_CHECKING_base_connectionr   
brotlicffir   ImportErrorr5  r	   r
   _collectionsr   r[  r   r   r   
exceptionsr   r   r   r   r   r   r   r   r   r   r   util.responser   r   
util.retryr   connectionpoolr   	getLoggerrF   r  r   rM   ro   rt   r   version_infocompressionr   	backportsr   r   r   r   r   r4  r%  r(   r-   r*   <module>r|     s   "  	    
    % : < +	4#  ( ( C C    = 	2!	$ 	$8!^ 8!v =!. =!@ 
( (V9
7"$" H/n /d5B> 5Bp$J JZkryy k\d## d#u   Fx  Hs<   E1 	F 1F <F ?F  F 	FF	FF