
    bCi                     *   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
JrJr  S SKJrJrJr  S SKJrJr  S SKJrJrJrJrJrJrJrJrJrJrJrJ r   S SK!r!S SK"J#r#J$r$J%r%J&r&  S SK'J(r(  SS	K)J*r*J+r+J,r,J-r-J.r.  SS
K/J0r0  SSK1J2r2J3r3J4r4J5r5J6r6J7r7  SSK8J9r9  SSK:J;r;  SSK+J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErE  SSK,JFrFJGrGJHrHJIrIJJrJ  SSKKJLrL  SSKMJNrN  SSKOJPrPJQrQJRrRJSrSJTrT   S SKUrUS SKUJVrV  SrY\(       a  SSKZJ[r[  SSK\J]r]  SSK^J_r_  \R                  " S5      ra\R                  " S5      rbS\c4S jrd\!R                  " SSSS9 " S S5      5       rf\!R                  " SSSS9 " S  S!5      5       rg " S" S#5      rh\Ub  \UR                  \i\h\j" S5      4rkO
\i\j" S5      4rkS$\S%\i\h4   S&\\i   S'\S%   S(\\l   S\S%\i\h4   4
S) jrm\!R                  " SSSS*9 " S+ S,5      5       rnS-\cS.\cS\i4S/ jro " S0 S15      rp " S2 S3\>5      rqg! \W a    SrU\XrV GN#f = f)4    N)md5sha1sha256)CookieErrorMorselSimpleCookie)MappingProxyTypeTracebackType)TYPE_CHECKINGAnyCallableDictIterableListMappingOptionalTupleTypeUnioncast)CIMultiDictCIMultiDictProxy	MultiDictMultiDictProxy)URL   )hdrshelpershttp	multipartpayload)AbstractStreamWriter)ClientConnectionErrorClientOSErrorClientResponseErrorContentTypeError
InvalidURLServerFingerprintMismatch
HAS_BROTLI)FormData)
BaseTimerContext	BasicAuthHeadersMixin	TimerNoopbasicauth_from_netrcnetrc_from_envnoopreifyset_exception
set_result)SERVER_SOFTWAREHttpVersionHttpVersion10HttpVersion11StreamWriter)client_logger)StreamReader)DEFAULT_JSON_DECODERJSONDecoderLooseCookiesLooseHeaders
RawHeaders)
SSLContext)ClientRequestClientResponseRequestInfoFingerprint)ClientSession)
Connection)Tracez[^-!#$%&'*+.^_`|~0-9a-zA-Z]z!^application/(?:[\w.+-]+?\+)?jsonreturnc                       [         (       a  S$ S$ )Nzgzip, deflate, brzgzip, deflater)        O/home/james-whalen/.local/lib/python3.13/site-packages/aiohttp/client_reqrep.py_gen_default_accept_encodingrO   ^   s    ",*A/ArM   T)auto_attribsfrozenslotsc                   @    \ rS rSr% \\   \S'   S\S'   \\   \S'   Srg)ContentDispositionb   typezMappingProxyType[str, str]
parametersfilenamerL   N)__name__
__module____qualname____firstlineno__r   str__annotations____static_attributes__rL   rM   rN   rT   rT   b   s    
3-,,smrM   rT   c                       \ rS rSr% \\S'   \\S'   S\S'   \R                  " 5       r	\\S'   \	R                  S\4S j5       rS	rg
)rE   i   urlmethodCIMultiDictProxy[str]headersreal_urlrJ   c                     U R                   $ N)rb   selfs    rN   real_url_defaultRequestInfo.real_url_defaultp   s    xxrM   rL   N)rY   rZ   r[   r\   r   r^   r]   attribrf   defaultrk   r_   rL   rM   rN   rE   rE   i   sA    	HK$$GGIHc#  rM   rE   c                   p    \ rS rSr\\\S.rS\SS4S jr	\
S\4S j5       rS\R                  SS4S	 jrS
rg)rF   u   )          fingerprintrJ   Nc                     [        U5      nU R                  R                  U5      nU(       d  [        S5      eU[        L d	  U[
        L a  [        S5      eX0l        Xl        g )Nzfingerprint has invalid lengthz8md5 and sha1 are insecure and not supported. Use sha256.)lenHASHFUNC_BY_DIGESTLENget
ValueErrorr   r   	_hashfunc_fingerprint)rj   ru   	digestlenhashfuncs       rN   __init__Fingerprint.__init__|   s\    $	--11)<=>>_D 0M  "'rM   c                     U R                   $ rh   )r|   ri   s    rN   ru   Fingerprint.fingerprint          rM   	transportc                 "   UR                  S5      (       d  g UR                  S5      nUR                  SS9nU R                  U5      R                  5       nX@R                  :w  a*  UR                  S5      tpVn[        U R                  XEU5      eg )N
sslcontext
ssl_objectT)binary_formpeername)get_extra_infogetpeercertr{   digestr|   r(   )rj   r   sslobjcertgothostport_s           rN   checkFingerprint.check   s    ''55)),7!!d!3nnT"))+###&55jAND+D,=,=s$OO $rM   )r|   r{   )rY   rZ   r[   r\   r   r   r   rx   bytesr   propertyru   asyncio	Transportr   r_   rL   rM   rN   rF   rF   u   s]    
(E 
(d 
( !U ! !Pw00 PT PrM   rF   sslrB   
verify_sslssl_contextru   c                    U c  Sn Ub3  U(       d,  [         R                  " S[        SS9  U SLa  [        S5      eSn Ub,  [         R                  " S[        SS9  U SLa  [        S5      eUn Ub5  [         R                  " S[        SS9  U SLa  [        S5      e[	        U5      n [        U [        5      (       d  [        S	R                  U 5      5      eU $ )
NTz/verify_ssl is deprecated, use ssl=False instead   
stacklevelzNverify_ssl, ssl_context, fingerprint and ssl parameters are mutually exclusiveFz2ssl_context is deprecated, use ssl=context insteadzCfingerprint is deprecated, use ssl=Fingerprint(fingerprint) insteadzFssl should be SSLContext, bool, Fingerprint or None, got {!r} instead.)	warningswarnDeprecationWarningrz   rF   
isinstanceSSL_ALLOWED_TYPES	TypeErrorformat)r   r   r   ru   s       rN   _merge_ssl_paramsr      s     {j=	

 d?4 
 C@	

 d?4 
 CT	

 d?4 
 k*Cc,--  &s
 	
 JrM   )rP   rR   rQ   c                       \ rS rSr% \\S'   \\   \S'   \\S'   \	\
\\4   \S'   \\   \S'   \\   \S'   \\   \S'   S	rg
)ConnectionKey   r   r   is_sslr   proxy
proxy_authproxy_headers_hashrL   N)rY   rZ   r[   r\   r]   r^   r   intboolr   rB   rF   r   r-   r_   rL   rM   rN   r   r      sI     I
3-L	z4,	--C=## %rM   r   response_content_typeexpected_content_typec                 D    US:X  a  [         R                  U 5      S L$ X;   $ )Napplication/json)json_rematch)r   r   s     rN   _is_expected_content_typer      s+      22}}234?? 99rM   c            0       N   \ rS rSr\R
                  \R                  \R                  \R                  1r	\R                  \R                  \R                  1r\	R                  \5      R                  \R                  15      r\R"                  S\R$                  \" 5       0rSrSrSrSrSrSS\" 5       SSS\R8                  SSSSSSSSSSSSSSS.S\S	\S
\\ \\4      S\\!   S\"\   S\#S\\$   S\\%   S\RL                  S\\   S\\'   S\'S\\(RR                     S\\*S      S\\   S\\%   S\\+   S\S   S\,\-\'\.4   S\\!   S\\/S      S \'S!\\   4.S" jjr0SJS#\1S$S4S% jjr2\3S$\S&   4S' j5       r4\4Rj                  S(\S&   S$S4S) j5       r4S$\'4S* jr6\3S$\,S+\'\.4   4S, j5       r7\3S$\84S- j5       r9\3S$\4S. j5       r:\3S$\\;   4S/ j5       r<\3S$\=4S0 j5       r>S	\S$S4S1 jr?S\,\RL                  \4   S$S4S2 jr@S\\!   S$S4S3 jrAS\"\   S$S4S4 jrBS\\$   S$S4S5 jrCS\#S$S4S6 jrDSKS7 jrESLS\\%   S \'S$S4S8 jjrFS9\#S$S4S: jrGSLS;\'S$S4S< jjrHS\\   S\\%   S\\!   S$S4S= jrIS$\'4S> jrJS(\KS?S@S$S4SA jrLSMSB jrMSKSC jrNSKSD jrOS\S	\SE\PS$S4SF jrQS\S	\SSGS$S4SH jrRSIrSg)NrC      z*/*rM   NFT)paramsre   skip_auto_headersdatacookiesauthversioncompresschunked	expect100loopresponse_classr   r   timersessionr   proxy_headerstraces	trust_envserver_hostnamerc   rb   r   re   r   r   r   r   r   r   r   r   r   r   rD   r   r   r   r   rG   r   r   r   rI   r   r   c                B   Uc  [         R                  " 5       n[        R                  U5      nU(       a  [	        SU< S35      e[        U[        5      (       d   U5       e[        U[        [        S 5      45      (       d   U5       e[        SU5      U l	        U(       aR  [        UR                  5      nUR                  U5      nUR                  UR                  5        UR                  U5      nX l        UR                  S 5      U l        UR#                  5       U l        Xl        Xl        Xl        S U l        Uc  [.        nOUnUU l        Ub  UO	[3        5       U l        Ub  UOSU l        UU l        UR;                  5       (       a/  [<        R>                  " [@        RB                  " S5      5      U l"        U RG                  U	5        U RI                  U5        U RK                  U5        U RM                  U5        U RO                  U5        U RQ                  U5        U RS                  UU5        U RU                  UUU5        U RW                  U5        Uc  U R$                  U RX                  ;  a  U R[                  5         U R]                  U5        Uc  / nUU l/        g )Nz+Method cannot contain non-token characters z# (found at least {match.group()!r})rG   Tr   )0r   get_event_loop_CONTAINS_CONTROL_CHAR_REsearchrz   r   r   rV   r   _sessionr   query
with_queryextendoriginal_urlwith_fragmentrb   upperrc   r   r   r   lengthrD   r   r/   _timer_sslr   	get_debug	tracebackextract_stacksys	_getframe_source_tracebackupdate_versionupdate_hostupdate_headersupdate_auto_headersupdate_cookiesupdate_content_encodingupdate_authupdate_proxyupdate_body_from_dataGET_METHODSupdate_transfer_encodingupdate_expect_continue_traces)rj   rc   rb   r   re   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   qurl2real_response_classs                               rN   r   ClientRequest.__init__  s;   6 <))+D)008=fZ H5 5 
 #s##(S(#%#tDz!233:U:3 _g6#))$A>>&)DHHTZZ ..#C$$T*lln 	!"0"04G$0eik?C	.>>%.%<%<S]]1=M%ND"G$G$  !23G$$$T*y)%];""4(t{{$2B2BB))+##I.>FrM   r   rJ   c                     S U l         g rh   _ClientRequest__writerrj   r   s     rN   __reset_writerClientRequest.__reset_writerW  	    rM   asyncio.Task[None]c                     U R                   $ rh   r   ri   s    rN   _writerClientRequest._writerZ      }}rM   writerc                     U R                   b%  U R                   R                  U R                  5        Xl         Ub  UR                  U R                  5        g g rh   )r   remove_done_callback_ClientRequest__reset_writeradd_done_callbackrj   r   s     rN   r   r   ^  H    ==$MM..t/B/BC$$T%8%89 rM   c                 4    U R                   R                  S;   $ )N)httpswss)rb   schemeri   s    rN   r   ClientRequest.is_sslf  s    xx"222rM   rB   c                     U R                   $ rh   )r   ri   s    rN   r   ClientRequest.ssli      yyrM   c           	      "   U R                   nU(       a*  [        [        S UR                  5        5       5      5      nOS n[	        U R
                  U R                  U R                  5       U R                  U R                  U R                  U5      $ )Nc              3   ,   #    U  H
  u  pX4v   M     g 7frh   rL   ).0kvs      rN   	<genexpr>/ClientRequest.connection_key.<locals>.<genexpr>q  s     )S=RTQ1&=Rs   )r   hashtupleitemsr   r   r   r   r   r   r   )rj   r   hs      rN   connection_keyClientRequest.connection_keym  so    **#E)S]=P=P=R)S$STAAIIIIKKMHHJJOO
 	
rM   c                 <    U R                   R                  nUc   eU$ rh   )rb   raw_host)rj   rets     rN   r   ClientRequest.host~  s     hh
rM   c                 .    U R                   R                  $ rh   )rb   r   ri   s    rN   r   ClientRequest.port  s    xx}}rM   c                     [        U R                  5      n[        U R                  U R                  XR
                  5      $ rh   )r   re   rE   rb   rc   r   )rj   re   s     rN   request_infoClientRequest.request_info  s-    )9$,,)G488T[[';L;LMMrM   c                     UR                   (       d  [        U5      eUR                  UR                  p2U(       a%  [        R
                  " X#=(       d    S5      U l        gg)z8Update destination host, port and connection type (ssl). N)r  r'   userpasswordr   r-   r   )rj   rb   usernamer$  s       rN   r   ClientRequest.update_host  sD     ||S/! !XXs||())(NCDI rM   c                 <   [        U[        5      (       a_  UR                  SS5       Vs/ s H  o"R                  5       PM     nn [        R
                  " [        US   5      [        US   5      5      nXl        gs  snf ! [         a    [        SU 35      Sef = f)zTConvert request version to two elements tuple.

parser HTTP version '1.1' => (1, 1)
.r   r   z#Can not parse http version number: N)	r   r]   splitstripr   r7   r   rz   r   )rj   r   partr  s       rN   r   ClientRequest.update_version  s    
 gs##*1--Q*?@*?$*?A@**3qt9c!A$i@
  A   9'Cs   A</B Bc                    [        5       U l        [        [        U R                  R
                  5      n[        R                  " U5      (       a  SU S3nUR                  S5      nU R                  R                  bD  U R                  R                  5       (       d%  US[        U R                  R                  5      -   -  nX R                  [        R                  '   U(       a{  [        U[        [        [         45      (       a  UR#                  5       nU HD  u  p4UR%                  5       S:X  a  X@R                  U'   M)  U R                  R'                  X45        MF     gg)zUpdate request headers.[]r(  N:r   )r   re   r   r]   rb   r  r   is_ipv6_addressrstripr   is_default_portr   HOSTr   dictr   r   r  loweradd)rj   re   netlockeyvalues        rN   r   ClientRequest.update_headers  s    )4 c488,,-""6**]Fs#88==$TXX-E-E-G-GcC...F"(TYY'D.)#DEE!--/%
99;&((-LL%LL$$S0 &	 rM   c                    [        S [        U5       5       5      U l        U R                  R	                  5       nUR                  U R                  5        U R                  R                  5        H'  u  p4X2;  d  M  U R                  R                  X45        M)     [        R                  U;  a"  [        U R                  [        R                  '   g g )Nc              3   (   #    U  H  oS 4v   M
     g 7frh   rL   )r  hdrs     rN   r  4ClientRequest.update_auto_headers.<locals>.<genexpr>  s      -
#<C$K#<s   )r   sortedr   re   copyr   DEFAULT_HEADERSr  r7  r   
USER_AGENTr6   )rj   r   used_headersr>  vals        rN   r   !ClientRequest.update_auto_headers  s    !, -
#)*;#<-
 "
 ||((*D223,,224HC&  * 5 ??,.,;DLL) /rM   c                    U(       d  g[        5       n[        R                  U R                  ;   aT  UR	                  U R                  R                  [        R                  S5      5        U R                  [        R                  	 [        U[        5      (       a  UR                  5       nOUnU Hy  u  pE[        U[        5      (       a[  UR                  UR                  [        5       5      nUR                  UR                  UR                  UR                  5        XbU'   Mu  XRU'   M{     UR                  SSS9R                  5       U R                  [        R                  '   g)zUpdate request cookies header.Nr"  ;)headersep)r   r   COOKIEre   loadry   r   r   r  r   r9  setr:  coded_valueoutputr*  )rj   r   citer_cookiesnamer:  mrsl_vals          rN   r   ClientRequest.update_cookies  s    N;;$,,&FF4<<##DKK45T[[)gw''"==?L"L'KD%(( 99UYY9UYYU5F5FG"$$ ( %&HHBCH$@$F$F$HT[[!rM   c                    Uc  gU R                   R                  [        R                  S5      R	                  5       nU(       a  U R
                  (       a  [        S5      egU R
                  (       aU  [        U R
                  [        5      (       d  SU l        U R
                  U R                   [        R                  '   SU l	        gg)zSet request content encoding.Nr"  z9compress can not be set if Content-Encoding header is setdeflateT)
re   ry   r   CONTENT_ENCODINGr6  r   rz   r   r]   r   )rj   r   encs      rN   r   %ClientRequest.update_content_encoding  s    <llt44b9??A}} R   ]]dmmS11 )26--DLL../DL	 rM   c                    U R                   R                  [        R                  S5      R	                  5       nSU;   a  U R
                  (       a  [        S5      egU R
                  (       aG  [        R                  U R                   ;   a  [        S5      eSU R                   [        R                  '   g[        R                  U R                   ;  a:  [        [        U R                  5      5      U R                   [        R                  '   gg)z!Analyze transfer-encoding header.r"  r   zDchunked can not be set if "Transfer-Encoding: chunked" header is setz6chunked can not be set if Content-Length header is setN)re   ry   r   TRANSFER_ENCODINGr6  r   rz   CONTENT_LENGTHr]   rw   body)rj   tes     rN   r   &ClientRequest.update_transfer_encoding  s    \\d44b9??A?|| D   \\""dll2 O  4=DLL//0""$,,647DII4GT001 7rM   c                    Uc  U R                   nUcj  U(       ac  U R                  R                  bL  [        5       n[        R
                  " [        5         [        X0R                  R                  5      nSSS5        Uc  g[        U[        R                  5      (       d  [        S5      eUR                  5       U R                  [        R                  '   g! , (       d  f       Nh= f)zSet basic auth.Nz%BasicAuth() tuple is required instead)r   rb   r   r1   
contextlibsuppressLookupErrorr0   r   r   r-   r   encodere   r   AUTHORIZATION)rj   r   r   	netrc_objs       rN   r   ClientRequest.update_auth  s    <99D<I$((--*C&(I$$[1+Ixx}}E 2<$ 1 122CDD+/;;=T''( 21s    C
C%r]  c                    Uc  g [        U[        5      (       a  U" 5       n [        R                  R	                  US S9nXl        U R                  (       dy  [        R                  U R                  ;  a[  UR                  nUc  SU l        OD[        R                  U R                  ;  a&  [        U5      U R                  [        R                  '   UR                  (       d   eUR                  R                  5        H5  u  p4X0R                  ;   a  M  X0R                  ;   a  M'  X@R                  U'   M7     g ! [        R
                   a    [        U5      " 5       n GNf = f)N)dispositionT)r   r+   r!   PAYLOAD_REGISTRYry   rc  r]  r   r   r\  re   sizer]   r  r   )rj   r]  rk  r9  r:  s        rN   r   #ClientRequest.update_body_from_data  s   < dH%%6D	$++//$/GD 	 ||""$,,6yy<#'DL**$,,><?IT%8%89 ||| LL..0LSll",,, %LL 1# "" 	$D>#D	$s   D7 7$EEexpectc                    U(       a  SU R                   [        R                  '   O>U R                   R                  [        R                  S5      R	                  5       S:X  a  SnU(       a   U R
                  R                  5       U l        g g )Nz100-continuer"  T)re   r   EXPECTry   r6  r   create_future	_continue)rj   rm  s     rN   r   $ClientRequest.update_expect_continue@  s^    (6DLL%\\dkk2.446.HF!YY446DN rM   c                     U(       a*  [        U[        R                  5      (       d  [        S5      eXl        X l        X0l        g )Nz,proxy_auth must be None or BasicAuth() tuple)r   r   r-   rz   r   r   r   )rj   r   r   r   s       rN   r   ClientRequest.update_proxyI  s5     jW5F5FGGKLL
$*rM   c                    U R                   [        :  a  gU R                   [        :X  a/  U R                  R                  [        R
                  5      S:X  a  ggU R                  R                  [        R
                  5      S:X  a  gg)NF
keep-aliveTclose)r   r8   re   ry   r   
CONNECTIONri   s    rN   
keep_aliveClientRequest.keep_aliveU  s_    <<-'<<=(||0L@\\doo.'9rM   connrH   c                 Z  #    U R                   b-   UR                  5       I Sh  vN   U R                   I Sh  vN   UR                  nUc   e [        U R                  [        R                  5      (       a$  U R                  R                  U5      I Sh  vN   Oc[        U R                  [        [        45      (       a  U R                  4U l        U R                   H  nUR                  U5      I Sh  vN   M     UR                  5       I Sh  vN   UR                  5         g GN N! [        R                   a     gf = f N NR N8! [         aw  nUnUR                  SL=(       d    [        U[        R                   5      (       + nU(       a$  [#        UR                  SU R$                  < 35      n['        X6U5         SnAgSnAf[        R                   a    UR                  5       I Sh  vN     g[(         a$  n['        U[+        SU< 35      U5         SnAgSnAff = f7f)z-Support coroutines that yields bytes objects.NzCan not write request body for z4Failed to send bytes into the underlying connection )rq  drainr   CancelledErrorprotocolr   r]  r!   Payloadwriter   	bytearray	write_eofstart_timeoutOSErrorerrnoTimeoutErrorr$   rb   r4   	Exceptionr#   )rj   r   r{  r  chunkunderlying_excreraised_excexc_is_not_timeouts           rN   write_bytesClientRequest.write_bytesc  s    
 >>%lln$$nn$$ ==###"	%$))W__55iioof---dii%);<<!%DI!YYE ,,u--- '4 ""$$$""$S %$))  . .2 %1  	B)L!/!5!5T!A " 4 4J F ","((5dhh]C 
 (.AA%% 	%""$$$ 	%J4)T  	s   H+D- D(D- D+D- H+AE EAE 6E	7E ?H+EH+(D- +D- -EH+EH+E 	E H+
H(A-G	H+	*H(3G64H(9H+;	H(H#H+#H((H+c                   #    U R                   [        R                  :X  aX  U R                  R                  nUc   e[
        R                  " U5      (       a  SU S3nU SU R                  R                   3nOU R                  (       a+  U R                  5       (       d  [        U R                  5      nOMU R                  R                  nU R                  R                  (       a  USU R                  R                  -   -  nUR                  nUc   e[        UU R                  [         R"                  " U R$                  U R                   U R                  5      [         R"                  " U R&                  U R                   U R                  5      S9nU R(                  (       a  UR+                  U R(                  5        U R,                  b  UR/                  5         U R                   U R0                  ;   aY  [        R2                  U R4                  ;  a;  [        R2                  U R6                  ;  a  SU R6                  [        R2                  '   U R6                  R9                  [        R:                  5      nU(       dB  U R=                  5       (       a  U R>                  [@        :X  a  SnOU R>                  [B        :X  a  SnUb  X`R6                  [        R:                  '   S	RE                  U R                   X0R>                  S
9nURG                  XpR6                  5      I S h  vN   U R                  RI                  U RK                  XQ5      5      U l&        U RN                  nUc   eU" U R                   U RP                  U RL                  U RR                  U RT                  U RV                  U RX                  U R                  U RZ                  S9	U l.        U R\                  $  N7f)Nr.  r/  r0  ?)on_chunk_senton_headers_sentzapplication/octet-streamrv  rw  z {0} {1} HTTP/{v.major}.{v.minor})r  )r   continue100r   r  r   r   r   )/rc   r   METH_CONNECTrb   r  r   r1  r   r   r   r]   raw_pathraw_query_stringr  r:   r   	functoolspartial_on_chunk_request_sent_on_headers_request_sentr   enable_compressionr   enable_chunkingPOST_METHODSCONTENT_TYPEr   re   ry   rx  ry  r   r8   r9   r   write_headerscreate_taskr  r   r   r   rq  r   r  r   r   response)	rj   r{  connect_hostpathr  r   
connectionstatus_liner   s	            rN   sendClientRequest.send  s    
 ;;$+++88,,L+++&&|44!"<.2"^1TXX]]O4DZZtxx=D88$$Dxx((dhh7777==###II#++++T[[$(( &----t{{DHH	
 ==%%dmm4<<#""$ KK4,,,!!)?)??!!5.HDLL**+ \\%%doo6
  <<=0!-J<<=0!(J!,6LL) 9??KK @ 
 "";===yy,,T-=-=f-KL,,)))&KK<<++**<<MM

 }}# 	>s   LO  O!B>O c                    #    U R                   bB  [        R                  " [        R                  5         U R                   I S h  vN   S S S 5        g g  N! , (       d  f       g = f7frh   )r   ra  rb  r   r~  ri   s    rN   rw  ClientRequest.close  sH     <<#$$W%;%;<ll"" =< $" =<s.   2A&AAA	
A&A
A#A&c                     U R                   bf  U R                  R                  5       (       d  U R                   R                  5         U R                   R	                  U R
                  5        S U l         g g rh   )r   r   	is_closedcancelr   r   ri   s    rN   	terminateClientRequest.terminate  sS    <<#99&&((##%LL--d.A.ABDL	 $rM   r  c                 j   #    U R                    H  nUR                  XU5      I S h  vN   M     g  N	7frh   )r   send_request_chunk_sent)rj   rc   rb   r  traces        rN   r  $ClientRequest._on_chunk_request_sent  s,     \\E//UCCC "C   %31
3zCIMultiDict[str]c                 j   #    U R                    H  nUR                  XU5      I S h  vN   M     g  N	7frh   )r   send_request_headers)rj   rc   rb   re   r  s        rN   r  &ClientRequest._on_headers_request_sent  s.      \\E,,V'BBB "Br  )__writerrq  r   r   r   r   r   r   r   r]  r   r   re   r   r   rc   r   r   r   r   r  r   r   r   rb   r   rh   rJ   N)F)r{  rH   rJ   rD   )TrY   rZ   r[   r\   r   METH_GET	METH_HEADMETH_OPTIONS
METH_TRACEr   
METH_PATCH	METH_POSTMETH_PUTr  unionMETH_DELETEALL_METHODSACCEPTACCEPT_ENCODINGrO   rB  r]  r   r  r   rq  	frozensetr   r9   r]   r   r   r   r@   r   r   r?   r-   r7   r   r   AbstractEventLoopr   r,   r   rB   rF   r   r   objectr   r   r   setterr   r   r   r  r   r   r   rE   r  r   r   r   r   r   r   r   r   r   r   r   ry  r"   r  r  rw  r  r   r  r  r_   rL   rM   rN   rC   rC      s   	K OOT^^T]]CL##L1779I9I8JKK 	U:<O
 DDHHI /3*.+4;*.$($($6$6"&"&48;?#*.,0-14804*.)-3QQ Q
 c*+Q ,'Q $C=Q Q ,'Q y!Q !!Q 3-Q $Q Q w001Q  !&6!78!Q" }#Q$ Y'%Q& ()'Q( /*)Q* :t[01+Q,  --Q. g'/Q0 1Q2 "#3Qf $  "67   ^^:h';< : : :3 3 U<{:;   
 
 
  c  
 hsm   Nk N N	Ds 	Dt 	DeD,<,<c,A&B t 1h|&< 1 12<Xc] <t <Ih|&< I I2 C  D  "H,9 3 9 9QU 9  &#  &$  &D7T 7d 7
+}
+ Y'
+  -	
+
 

+D 0%*0%2>0%	0%dOb#
 D3 DS D DSW DCC #C.@C	CrM   rC   c                      \ rS rSr% Sr\\   \S'   Sr\	\S'   Sr
\\   \S'   Sr\\S'   Sr\\   \S'   Sr\\S'   SrSr\\R*                     \S	'   S
rSrSrS\S\SSS\S   S\S\S\S   S\R<                  SSSS4S jrSKS\ SS4S jjr!\"S\S   4S j5       r#\#RH                  S\S   SS4S j5       r#\%S\4S j5       r&\%S\4S  j5       r'\%S\4S! j5       r(\%S\4S" j5       r)\%SLS# j5       r*\%S\4S$ j5       r+\%S\4S% j5       r,\%S\\-   4S& j5       r.\/4S'\0SS4S( jjr1S\4S) jr2\"S\S*   4S+ j5       r3\%S\4S,   4S- j5       r5\%SMS. j5       r6SNS/ jr7SOS0 jr8\"S\94S1 j5       r:SOS2 jr;S\04S3 jr<\"S\94S4 j5       r=SOS5 jr>SOS6 jr?SOS7 jr@SOS8 jrASOS9 jrBSOS: jrCS\D4S; jrES\4S< jrFSPS=\\   S>\S\4S? jjrGS\HS@SA.S=\\   SB\ISC\\   S\04SD jjrJSQSE jrKSF\\L\M      SG\\M   SH\\N   SS4SI jrOSJrPg)RrD   i  Nr   statusreasoncontent_headers_raw_headersr   TFrc   rb   r   r   r  zasyncio.Future[bool]r   r  r   rI   r   r   rG   rJ   c                    [        U[        5      (       d   eXl        [        5       U l        X l        UR                  S 5      U l        S U l        X0l	        X@l
        SU l        SU l        X`l        Ub  UO	[        5       U l        0 U l        Xpl        Xl        Xl        U	c	  S U l        OU	R(                  U l        UR+                  5       (       a0  [,        R.                  " [0        R2                  " S5      5      U l        g g )NTrL   c                      g)Nutf-8rL   )r   s    rN   <lambda>)ClientResponse.__init__.<locals>.<lambda>9  s    7rM   r   )r   r   rc   r   r   	_real_urlr   _url_bodyr   rq  _closed_history_request_infor/   r   _cacher   _loopr   _resolve_charsetr   r   r   r   r   r   )
rj   rc   rb   r   r  r   r  r   r   r   s
             rN   r   ClientResponse.__init__  s     #s#####~%%d+	
5;$46)$0eik&(
18 ? # ! %,$<$<D!>>%.%<%<S]]1=M%ND" rM   r   c                     S U l         g rh   _ClientResponse__writerr   s     rN   r   ClientResponse.__reset_writer?  r   rM   c                     U R                   $ rh   r  ri   s    rN   r   ClientResponse._writerB  r   rM   c                     U R                   b%  U R                   R                  U R                  5        Xl         Ub  UR                  U R                  5        g g rh   )r  r   _ClientResponse__reset_writerr   r  s     rN   r   r  F  r  rM   c                     U R                   $ rh   )r  ri   s    rN   rb   ClientResponse.urlN  r
  rM   c                 N    [         R                  " S[        SS9  U R                  $ )NzDeprecated, use .url #1654   r   )r   r   r   r  ri   s    rN   url_objClientResponse.url_objR  s    24FSTUyyrM   c                     U R                   $ rh   )r  ri   s    rN   rf   ClientResponse.real_urlW  s    ~~rM   c                 `    U R                   R                  c   eU R                   R                  $ rh   )r  r   ri   s    rN   r   ClientResponse.host[  s$    yy~~)))yy~~rM   c                     U R                   $ rh   )r  ri   s    rN   re   ClientResponse.headers`  r   rM   c                     U R                   $ rh   )r  ri   s    rN   raw_headersClientResponse.raw_headersd  r   rM   c                     U R                   $ rh   )r  ri   s    rN   r  ClientResponse.request_infoh  s    !!!rM   c                     U R                   R                  [        R                  5      nUc  g [        R
                  " U5      u  p#[        U5      n[        R                  " U5      n[        X$U5      $ rh   )	r  ry   r   CONTENT_DISPOSITIONr    parse_content_dispositionr	   content_disposition_filenamerT   )rj   rawdisposition_type
params_dctr   rX   s         rN   content_disposition"ClientResponse.content_dispositionl  s`    mm 8 89;'0'J'J3'O$!*-99&A!"2HEErM   	_warningsc                    U R                   (       a  g U R                  b  U R                  R                  5         U R                  5         U R                  R                  5       (       aa  SU 0nUR                  " SU < 3[        40 UD6  U SS.nU R                  (       a  U R                  US'   U R                  R                  U5        g g g )NsourcezUnclosed response zUnclosed response)client_responsemessagesource_traceback)
r  _connectionrelease_cleanup_writerr  r   r   ResourceWarningr   call_exception_handler)rj   r   kwargscontexts       rN   __del__ClientResponse.__del__v  s    <<'$$&  "zz##%%"D)!3D8<oXQWX.2?RS))262H2HG./

11': &	 (rM   c                 d   [         R                  " 5       n[        U R                  5      nU R                  (       a,  U R                  R                  SS5      R                  S5      nOSn[        SR                  X R                  U5      US9  [        U R                  US9  UR                  5       $ )NasciibackslashreplaceNonez<ClientResponse({}) [{} {}]>)file)ioStringIOr]   rb   r  rd  decodeprintr   r  re   getvalue)rj   outascii_encodable_urlascii_encodable_reasons       rN   __repr__ClientResponse.__repr__  s    kkm!$((m;;%)[[%7%7+&fWo # &,"*11#[[2H 		
 	dll%||~rM   rH   c                     U R                   $ rh   )r  ri   s    rN   r  ClientResponse.connection  s    rM   )rD   .c                     U R                   $ )z2A sequence of of responses, if redirects occurred.)r  ri   s    rN   historyClientResponse.history  s     }}rM   c           	         SR                  U R                  R                  S/ 5      5      nU(       d  [        [	        5       5      $ [	        5       n[
        R                  " SU5       GH  n[
        R                  " SU5      nUc  M   UR                  5       u  pVUR                  S5      SS  n[	        5       nU HR  n	[
        R                  " SU	[
        R                  5      nUc  M.  UR                  5       u  ppUR                  X5        MT     UR                  SU5      n
UR                  S	U R                  R                  [        U5      5      5        UR                  [        U
5      [        U5      5        GM     [        U5      $ )
Nz, linkz	,(?=\s*<)z\s*<(.*)>(.*)rH  r   z%^\s*(\S*)\s*=\s*(['\"]?)(.*?)(\2)\s*$relrb   )joinre   getallr   r   rer)  r   groupsMr7  ry   rb   r   r]   )rj   	links_strlinksrE  r   rb   
params_strr   r$  paramr9  r   r:  s                rN   r,  ClientResponse.links  s.   IIdll11&"=>	!)+..<EK88L)4CHH-s3E}#llnOC%%c*12.F/8{D!I5RTRVRVW=#(<<> $   ((5#&CHHUDHHMM#c(34IIc#ht 45/ 52 e$$rM   c           
      F  #    SU l         UR                  U l        Xl        U R                       U R                  nUR                  5       I Sh  vN u  p4UR                  S:  d   UR                  S:  d  UR                  S:X  a  O,U R                  b  [        U R                  S5        SU l        M  SSS5        WR                   " U R"                  5        WR$                  U l        UR                  U l        UR(                  U l        UR                  U l        UR,                  U l        X@l        U R                  R3                  [4        R6                  S5       H  n U R8                  R;                  U5        M!     U $  GN2! [        R                   aE  n[        U R                  U R                  UR                  UR                  UR                  S9UeSnAff = f! , (       d  f       GN4= f! [<         a"  n[>        R@                  " S	U5         SnAM  SnAff = f7f)
zStart response processing.FTNr  r  re   d      e   rL   z!Can not load response cookies: %s)!r  r  	_protocolr  r   readr   HttpProcessingErrorr%   r  r!  coder  re   rq  r5   on_eof_response_eofr   r  r  r  r  r  r  r'  r   
SET_COOKIEr   rL  r   r;   warning)rj   r  r  r  r!   excr>  s          rN   startClientResponse.start  s    #,,%[[
#~~H-5]]_'<$G <<#%);w||s?R>>-t~~t4%)DN'  . 	t))* llnn  #//  <<&&t;CP!!#& <
 M (=// -))"xx # #  [R  P%%&I3OOPs~   +H!G FFFAG 3B,H! G2;H!FGA GGG  
G/*H!2
H<HH!HH!c                     U R                   (       a  g U R                  =(       a    U R                  R                  nUb  UR                  (       a  g SU l         U R	                  5         U R                  5         g NT)r  r  r  upgradedr  _release_connection)rj   r  s     rN   r:  ClientResponse._response_eof  sZ    << ##A(8(8(A(AH$5$5  "rM   c                     U R                   $ rh   )r  ri   s    rN   closedClientResponse.closed  s    ||rM   c                 ,   U R                   (       d  U R                  5         SU l        U R                  b  U R                  R	                  5       (       a  g U R                  5         U R                  b"  U R                  R                  5         S U l        g g rA  )	_released_notify_contentr  r  r  r  r  rw  ri   s    rN   rw  ClientResponse.close	  sr    ~~  "::!5!5!7!7'""$#D (rM   c                     U R                   (       d  U R                  5         SU l        U R                  5         U R	                  5         [        5       $ rA  )rI  rJ  r  r  rC  r2   ri   s    rN   r  ClientResponse.release  s;    ~~  "  "vrM   c                      SU R                   :  $ )zReturns ``True`` if ``status`` is less than ``400``, ``False`` if not.

This is **not** a check for ``200 OK`` but a check that the response
status is under 400.
i  )r  ri   s    rN   okClientResponse.ok   s     T[[  rM   c                     U R                   (       d^  U R                  c   eU R                  5         [        U R                  U R
                  U R                  U R                  U R                  S9eg )Nr1  )rO  r  r  r%   r  r!  r  re   ri   s    rN   raise_for_statusClientResponse.raise_for_status)  sY    ww;;***LLN%!!{{ 	 rM   c                    ^  T R                   bO  T R                  c"  T R                   R                  5         S T l         g T R                  R                  U 4S j5        g g )Nc                 $   > TR                  5       $ rh   )rC  )frj   s    rN   r  4ClientResponse._release_connection.<locals>.<lambda><  s    9Q9Q9SrM   )r  r   r  r   ri   s   `rN   rC  "ClientResponse._release_connection6  sK    '||#  ((*#' ../ST (rM   c                 r   #    U R                   b  U R                   I S h  vN   U R                  5         g  N7frh   )r   rC  ri   s    rN   _wait_releasedClientResponse._wait_released>  s-     <<#,,  "    757c                 `    U R                   b  U R                   R                  5         S U l        g rh   )r   r  r   ri   s    rN   r  ClientResponse._cleanup_writerC  s#    <<#LL!rM   c                     U R                   nU(       a&  UR                  5       c  [        U[        S5      5        SU l        g )NConnection closedT)r  	exceptionr4   r#   rI  )rj   r  s     rN   rJ  ClientResponse._notify_contentH  s4    ,,w((*2'#89L#MNrM   c                 r   #    U R                   b  U R                   I S h  vN   U R                  5         g  N7frh   )r   r  ri   s    rN   wait_for_closeClientResponse.wait_for_closeN  s*     <<#,, r\  c                 R  #    U R                   cu   U R                  R                  5       I Sh  vN U l         U R                   H<  nUR	                  U R
                  U R                  U R                   5      I Sh  vN   M>     OU R                  (       a  [        S5      eU R                  =(       a    U R                  R                  nUb  UR                  (       d  U R                  5       I Sh  vN   U R                   $  N N! [         a    U R                  5         e f = f N37f)zRead response payload.Nr`  )r  r  r6  r   send_response_chunk_receivedrc   rb   BaseExceptionrw  rI  r#   r  r  rB  rZ  )rj   r  r  s      rN   r6  ClientResponse.readS  s     ::#'<<#4#4#66
!\\E<<TXXtzz   * ^^'(;<<##A(8(8(A(A8#4#4%%'''zz 7 ! 

 (sL   D'D DAD ;D<D A-D'1D%2D'D D D""D'c                 T   U R                   R                  [        R                  S5      R	                  5       n[
        R                  " U5      nUR                  R                  S5      nU(       aD  [        R                  " [        5         [        R                  " U5      R                  sS S S 5        $ UR                  S:X  a!  UR                  S:X  d  UR                  S:X  a  gU R                   c  [#        S5      eU R%                  X R                   5      $ ! , (       d  f       Nr= f)Nr"  charsetapplicationjsonrdapr  z7Cannot compute fallback encoding of a not yet read body)re   ry   r   r  r6  r   parse_mimetyperW   ra  rb  rc  codecslookuprR  rV   subtyper  RuntimeErrorr  )rj   ctypemimetypeencodings       rN   get_encodingClientResponse.get_encodingg  s      !2!2B7==?))%0&&**95$$[1}}X.33 21 ==M)&(*:*:f*D ::I  $$T::66 21s    D
D'rv  errorsc                    #    U R                   c  U R                  5       I Sh  vN   Uc  U R                  5       nU R                   R                  XS9$  N07f)z!Read response payload and decode.N)ry  )r  r6  rw  r  )rj   rv  ry  s      rN   textClientResponse.text~  sV     ::))+((*Hzz   ! 
 	
 s   !AA1Ar   )rv  loadscontent_typer}  r~  c                  #    U R                   c  U R                  5       I Sh  vN   U(       au  U R                  R                  [        R
                  S5      R                  5       n[        XC5      (       d-  [        U R                  U R                  SU-  U R                  S9eU R                   R                  5       nU(       d  gUc  U R                  5       nU" UR                  U5      5      $  N7f)zRead and decodes JSON response.Nr"  z3Attempt to decode JSON with unexpected mimetype: %s)r  re   )r  r6  re   ry   r   r  r6  r   r&   r  r!  r*  rw  r  )rj   rv  r}  r~  rt  strippeds         rN   rm  ClientResponse.json  s      ::))+LL$$T%6%6;AACE,UAA&%%LLPSXX LL  ::##%((*HX__X.//+ s   !C2C0CC2c                    #    U $ 7frh   rL   ri   s    rN   
__aenter__ClientResponse.__aenter__  s
     s   exc_typeexc_valexc_tbc                 `   #    U R                  5         U R                  5       I S h  vN   g  N7frh   )r  rd  )rj   r  r  r  s       rN   	__aexit__ClientResponse.__aexit__  s"      	!!###s   $.,.)r  r  r  r  r  rq  r  r  r  r5  r  r  rI  r  r  r   r   r   r   r  r   r  r   rc   r  r  r   rh   )rJ   rd   )rJ   z/MultiDictProxy[MultiDictProxy[Union[str, URL]]])r  rH   rJ   rD   r  )Nstrict)rJ   rD   )QrY   rZ   r[   r\   r   r   r7   r^   r  r   r  r]   r  r<   r  r   r  rA   r  r   r   StackSummaryr  rI  r  r   r,   rE   r   r   r  r   r  r  r   r   r  r3   rb   r  rf   r   re   r  r  rT   r  r   r   r  r  r  r   r!  r,  r>  r:  r   rF  rw  r  rO  rR  rC  rZ  r  rJ  rd  r   r6  rw  r{  r=   r>   rm  r  r   rh  r
   r  r_   rL   rM   rN   rD   rD     s    &*GXk")FC FHSM  G\ &*Hs#*#L*#K:>x	 6 67> GIH*O*O *O
 %*O 45*O  *O "*O W*O ''*O !*O 
*OX $  "67   ^^:h';< : : : S      #   c     !Z ! ! "k " " FX.@%A F F (0 ; ;D ; # $  H\2     45   !% !%F1f#   $  !D ! !U#


E (7c 7.

8C= 

 

TW 

 #'1&80 3-0 	0
 sm0 
0@
$4./
$ -(
$ '	
$
 

$rM   rD   )rr   rp  ra  r  r  r(  r   r   r   hashlibr   r   r   http.cookiesr   r   r   typesr	   r
   typingr   r   r   r   r   r   r   r   r   r   r   r   rm   	multidictr   r   r   r   yarlr   r"  r   r   r   r    r!   abcr"   client_exceptionsr#   r$   r%   r&   r'   r(   compression_utilsr*   formdatar+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   logr;   streamsr<   typedefsr=   r>   r?   r@   rA   r   rB   ImportErrorr  __all__clientrG   	connectorrH   tracingrI   compiler   r   r]   rO   srT   rE   rF   r   rV   r   r   r   r   r   rC   rD   rL   rM   rN   <module>r     sB       	 	 
   % % : : 1     N N  5 5 %  *      !  L %% JJ'EF 
**9
:Bc B T$d3  4 T$d3  4P PD ?{DJGtDz*4	|T;.	/44 ,'4 %	4
 <{*+4n Td3	& 	& 4	&::7::	:QC QChz$\ z$c  
CJs   $
H 
HH