+
    ȜiW                    l   ^ 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
Ht ^ RIHtHtHt ^ RIHt ^ RIHt ^ RIHtHtHtHtHtHtHtH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* ^RI+H,t, ^RI-H.t.H/t/H0t0 ^RI1H2t2H3t3H4t4 ^RI5H6t6H7t7 ^RI8H9t9H:t:H;t; ^RI<H=t=H>t> ^RI+H?t?H@t@HAtA ^RIBHCtCHDtDHEtE ]P                  R18  d   ]! R]>]>R7      tGM
]! R]>R7      tG]'       dD   ^ RIHHItI  ! R R]RR7      tJ ! R R]]G,          ]RR7      tK ! R R ]RR7      tL ! R! R"]LRR7      tMM# ! R# R$4      tN]N! 4       tI]O]P]P3,          tJ]tK]]utLtM]R2,          tQ]R3,          tRR% R& ltSR4R' R( lltTR4R) R* lltU ! R+ R,]]G,          4      tV ! R- R.]V]G,          4      tW ! R/ R0]V]G,          4      tXR# )5    )annotationsN)ThreadPoolExecutor)asynccontextmanagercontextmanagersuppress)Callable)BytesIO)TYPE_CHECKINGGenericLiteralOptional	TypedDictTypeVarUnioncast)urlparse)	timedelta)	AsyncCurl)CurlHttpVersionCurlInfoCurlOpt)Curl	CurlErrorCurlMime)CurlCffiWarning)CookiesCookieTypes
CurlMorsel)RequestExceptionSessionClosed
code2error)HeadersHeaderTypes)BrowserTypeLiteralExtraFingerprintsExtraFpDict)
STREAM_ENDResponse)HttpVersionLiteralnot_setset_curl_options)AsyncWebSocket	WebSocketWebSocketErrorR)bounddefault)r0   )Unpackc                  J    ] tR t^0t$ R]R&   R]R&   R]R&   R]R&   R]R&   RtR# )		ProxySpecstrallhttphttpswswss N__name__
__module____qualname____firstlineno____annotations____static_attributes__r;       c/Users/mibo/.openclaw/workspace/.venv-ak/lib/python3.14/site-packages/curl_cffi/requests/session.pyr4   r4   0   s    	
rC   r4   F)totalc                  0   ] tR t^7t$ 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]R &   R!]R"&   R#]R$&   R]R%&   R	]R&&   R']R(&   R)]R*&   R]R+&   R]R,&   R-tR.# )/BaseSessionParamsOptional[HeaderTypes]headersOptional[CookieTypes]cookiesOptional[tuple[str, str]]authOptional[ProxySpec]proxiesOptional[str]proxy
proxy_authbase_urlOptional[dict]paramsboolverify!Union[float, tuple[float, float]]timeout	trust_envallow_redirectsintmax_redirectsOptional[BrowserTypeLiteral]impersonateja3akamai/Optional[Union[ExtraFingerprints, ExtraFpDict]]extra_fpdefault_headers"Union[str, Callable[[bytes], str]]default_encodingcurl_optionsOptional[list]
curl_infos4Optional[Union[CurlHttpVersion, HttpVersionLiteral]]http_versiondebug	interface%Optional[Union[str, tuple[str, str]]]certOptional[type[R]]response_classdiscard_cookiesraise_for_statusr;   Nr<   r;   rC   rD   rG   rG   7   s    &&&&''$$--2211AA<<$$""JJ  33))rC   rG   c                  D   ] tR t^Ut$ 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]R"&   R#]R$&   R]R%&   R&]R'&   R(]R)&   R*]R+&   R]R,&   R-]R.&   R/]R0&   R1]R2&   R3]R4&   R5tR6# )7StreamRequestParams"Optional[Union[dict, list, tuple]]rU   AOptional[Union[dict[str, str], list[tuple], str, BytesIO, bytes]]dataOptional[dict | list]jsonrH   rI   rJ   rK   rT   filesrL   rM   3Optional[Union[float, tuple[float, float], object]]rY   Optional[bool]r[   Optional[int]r]   rN   rO   rP   rQ   rR   rW   refereraccept_encodingOptional[Callable]content_callbackr^   r_   r`   ra   rb   rc   rd   re   rf   Union[str, Literal[False]]quoterj   rk   rm   rn   ro   r\   max_recv_speedOptional[CurlMime]	multipartrV   rr   r;   Nr<   r;   rC   rD   ru   ru   U   s    22OO##&&&&''DD''$$$$--&&,,11AA''<<))JJ  33%%rC   ru   c                  "    ] tR t^ut$ R]R&   RtR# )RequestParamsr}   streamr;   Nr<   r;   rC   rD   r   r   u   s    rC   r   c                  &    ] tR t^zt]R 4       tRtR# )_Unpackc                 	    R # Nr;   )argskwargss   *,rD   __getitem___Unpack.__getitem__{   s    rC   r;   N)r=   r>   r?   r@   staticmethodr   rB   r;   rC   rD   r   r   z   s    		 
	rC   r   c                    V ^8  d   QhRRRR/# )   urlr5   returnrV   r;   )formats   "rD   __annotate__r      s     ; ;# ;$ ;rC   c                j    \        V 4      p\        VP                  ;'       d    VP                  4      # )z,Check if the provided url is an absolute url)r   rV   schemehostname)r   
parsed_urls   & rD   _is_absolute_urlr      s*    #J
!!99j&9&9::rC   c                   V ^8  d   QhRR/# )r   qzqueue.Queuer;   )r   s   "rD   r   r      s      ; rC   c                P     V P                   ^ ,          #   \         d    Tu # i ; ir   )queue
IndexErrorr   r1   s   &&rD   _peek_queuer      s)    wwqz     %%c                   V ^8  d   QhRR/# )r   r   zasyncio.Queuer;   )r   s   "rD   r   r      s      } rC   c                P     V P                   ^ ,          #   \         d    Tu # i ; ir   )_queuer   r   s   &&rD   _peek_aio_queuer      s)    xx{ r   c            8          ] tR t^tRt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RRRRRRRRRRRR RR!R/R" R# lltR$ R% ltR& t]R' R( l4       t	]	P                  R) R* l4       t	R+tR# ),BaseSessionzMProvide common methods for setting curl options and reading info in sessions.rI   NrK   rM   rO   rQ   rR   rS   rU   rW   TrY   rZ   r[   r]   r_   r`   ra   rc   rd   rf   utf-8rg   ri   rk   rl   Frm   ro   rq   rr   rs   c          8         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 RR!R"R#R$R%RR&R
R'R(R)R*R+RR,R/# )-r   rI   rH   rK   rJ   rM   rL   rO   rN   rQ   rP   rR   rS   rU   rT   rW   rV   rY   rX   rZ   r[   r]   r\   r_   r^   r`   ra   rc   rb   rd   rf   re   rg   ri   rh   rk   rj   rl   rm   ro   rn   rq   rp   rr   rs   r;   )r   s   "rD   r   BaseSession.__annotate__   sD    S S 'S '	S
 (S %S S .S  S S S 3S S S S  2!S" #S$ %S& B'S( )S* =+S, %-S. #/S0 K1S2 3S4 !5S6 47S8 *9S: ;S< =SrC   c               	   \        V4      V n        \        V4      V n        W0n        Wpn        Wn        Wn        Wn        Wn	        Wn
        Wn        Wn        Wn        VV n        VV n        VV n        VV n        T;'       g    / V n        T;'       g    . V n        VV n        VV n        VV n        VV n        Ve$   \1        V\2        4      RJ d   \5        RV R24      hT;'       g    \2        V n        VV n        VV n        V'       d   V'       d   \5        R4      hV'       d   RV/pT;'       g    / V n        W`n        V P
                  '       d'   \A        V P
                  4      '       g   \C        R4      hRV n"        V P                  RJ g   V P                  fb   \F        PH                  PK                  R4      ;'       g4    \F        PH                  PK                  R	4      ;'       g    V P                  V n        R # R # )
NFzZ`response_class` must be a subclass of `curl_cffi.requests.models.Response`, not of type ``z)Cannot specify both 'proxy' and 'proxies'r6   z2You need to provide an absolute url for 'base_url'TREQUESTS_CA_BUNDLECURL_CA_BUNDLE)&r"   rI   r   _cookiesrM   rS   rU   rW   rY   rZ   r[   r]   r_   r`   ra   rc   rd   rf   rg   ri   rk   rl   rm   ro   
issubclassr(   	TypeErrorrq   rr   rs   rO   rR   r   
ValueError_closedosenvironget)selfrI   rK   rM   rO   rQ   rR   rS   rU   rW   rY   rZ   r[   r]   r_   r`   ra   rc   rd   rf   rg   ri   rk   rl   rm   ro   rq   rr   rs   s   &$$$$$$$$$$$$$$$$$$$$$$$$$$$$rD   __init__BaseSession.__init__   s   @ w'(	 ".*& . 0(..B$**(
"	%*^X*NRW*W  ./q2 
 -88. 0WGHHenG")--R$===!1$--!@!@QRR ;;$$++"5

34  ::>>"23 ;; K #6rC   c                   V ^8  d   QhRR/# )r   r   r/   r;   )r   s   "rD   r   r      s     O O	
OrC   c                	~   Tp\        \        V P                  V4      4      p\        \        VP	                  \
        P                  4      4      P                  4       Vn        V'       d   VP                  4       Vn
        \        \        VP	                  \
        P                  4      4      Vn        \        \        VP	                  \
        P                  4      4      Vn        ^VP                  u;8*  ;'       d    R8  Mu Vn        VP                  4       P#                  4       p. p	V F  p
V
P%                  4       '       g   K  V
P'                  R4      '       d)   VP)                  V
4      P                  4       Vn        . p	KZ  V
P'                  R4      '       g   V
P'                  R4      '       d   V	R;;,          V
,          uu&   K  V	P-                  V
4       K  	  \/        V	4      Vn        \3        4       Vn        VP0                  P7                  R4      pV F  p \8        P4                  P;                  4       pVP=                  V4       VP?                  4        Fg  w  rVP4                  PA                  VVPB                  VPE                  RR4      VPE                  RR	4      \G        VPE                  R
4      4      R7       Ki  	  K  	  T;'       g    V PJ                  pV'       g^   VP	                  \
        PL                  4       Uu. uF  p\N        PP                  ! V4      NK  	  ppV PR                  PU                  V4       \        \        XP	                  \
        PV                  4      4      P                  4       Vn,        \        \        VP	                  \
        PZ                  4      4      Vn.        \        \        VP	                  \
        P^                  4      4      P                  4       Vn0        \        \        VP	                  \
        Pb                  4      4      Vn2        WGn3        \i        \        \j        VP	                  \
        Pl                  4      4      R7      Vn7        \        \        VP	                  \
        Pp                  4      4      Vn9        \        \        VP	                  \
        Pt                  4      4      p VP                  4       Vn;        \        \        VP	                  \
        Pz                  4      4      Vn>        \        \        VP	                  \
        P~                  4      4      Vn@        \        \        VP	                  \
        P                  4      4      VnB        \        \        VP	                  \
        P                  4      4      VnD        VP|                  VP                  ,           VnE        V P                   F!  pVP	                  V4      VP                  V&   K#  	  V#   \H         d     EK  i ; iu upi   \x         d    TP                  R4      Tn;         ELYi ; i)   i  s   HTTP/       	z
set-cookiedomain path/secure)r   r   r   )secondszlatin-1)Hr   r/   rq   bytesgetinfor   EFFECTIVE_URLdecoder   getvaluecontentr\   HTTP_VERSIONrk   RESPONSE_CODEstatus_codeok
splitlinesstrip
startswithget_reason_phrasereasonappendr"   rI   r   rK   get_listr7   SimpleCookieloaditemssetvaluer   rV   	Exceptionrr   
COOKIELISTr   from_curl_formatr   update_cookies_from_curl
PRIMARY_IP
primary_ipPRIMARY_PORTprimary_portLOCAL_IPlocal_ip
LOCAL_PORT
local_portrf   r   float
TOTAL_TIMEelapsedREDIRECT_COUNTredirect_countREDIRECT_URLredirect_urlUnicodeDecodeErrorSIZE_DOWNLOAD_Tdownload_sizeSIZE_UPLOAD_Tupload_sizeHEADER_SIZEheader_sizeREQUEST_SIZErequest_sizeresponse_sizeri   infos)r   curlbufferheader_bufferrf   rr   crspheader_linesheader_listheader_lineset_cookie_headers
set_cookiecookienamemorselmorselsredirect_url_bytesinfos   &&&&&&             rD   _parse_responseBaseSession._parse_response   sn    1d))!,-uaii(>(>?@GGI //+CKQYYx/D/D%EFsAIIh.D.D$EF--#-$--/::< $&'K$$&&%%h//00=DDF
 %%d++{/E/Ee/L/LB;.{+ ( k* i [[11,?,J224J'$*LLNLDKKOO%zz(B7#ZZ4#FJJx$89 $  %3	 -  *AAT-A-A89		(BUBU8V8V1
++A.8V   MM227;eQYYx/B/B%CDKKMQYYx/D/D%EFE199X->->#?@GGIc199X-@-@#AB/UAIIh>Q>Q4R(ST!#qyy1H1H'IJ!%83H3H)IJ	D188:C !aii0H0H&IJsAIIh.D.D$EFsAIIh.B.B$CDQYYx/D/D%EF--? OODiioCIIdO $ 
E   " 	D188CC	Ds+   B*W?XX ?XX!X<;X<c                	@    V P                   '       d   \        R 4      hR# )z'Session is closed, cannot send request.N)r   r    r   s   &rD   _check_session_closed!BaseSession._check_session_closedH  s    <<< IJJ rC   c                   V ^8  d   QhRR/# )r   r   r   r;   )r   s   "rD   r   r   M  s       rC   c                	    V P                   # r   )r   r  s   &rD   rK   BaseSession.cookiesL  s    }}rC   c                    V ^8  d   QhRRRR/# )r   rK   r   r   Noner;   )r   s   "rD   r   r   Q  s     ) ){ )t )rC   c                	&    \        V4      V n        R # r   )r   r   )r   rK   s   &&rD   rK   r  P  s      (rC   )r   r   ra   r[   rM   rS   ro   ri   rg   rl   rf   rd   rr   rc   rI   rk   r_   rm   r`   r]   rU   rO   rR   rs   rq   rY   rZ   rW   )r=   r>   r?   r@   __doc__r   r  r  propertyrK   setterrB   r;   rC   rD   r   r      s   WS *.S *.	S
 +/S (,S  $S 15S #'S "&S S 68S S !%S  S  59!S" "#S$ !%%S& EI'S( !%)S* @G+S, (,-S. &*/S0 NR1S2 3S4 $(5S6 7;7S8 -19S: !&;S< "'=SjObK   ^^) )rC   r   c                  Z  a  ] tR tRtRtR+R V 3R lllt]R 4       t]R 4       tR t	R	 t
R
 R lt]R R l4       tR,R R lltR R lt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3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R" R# ltR$ R% ltR& R' ltR( R) ltR*tV ;t# )-SessioniV  zA request session, cookies and connections will be reused. This object is
thread-safe, but it's recommended to use a separate session for each thread.Nc               (    V ^8  d   QhRRRRRRRR/# )	r   r   zOptional[Curl]threadzOptional[ThreadType]use_thread_local_curlrV   r   Unpack[BaseSessionParams[R]]r;   )r   s   "rD   r   Session.__annotate__Z  s>     FB FBFB %FB  $	FB
 /FBrC   c                  < \         SV `  ! R/ VB  W n        W0n        RV n        RV n        V'       dj   \        P                  ! 4       V n        V'       d   RV n	        WP                  n
        R# RV n	        \        V P                  R7      V P                  n
        R# V'       d   TM\        V P                  R7      V n        R# )a  
Parameters set in the ``__init__`` method will be overriden by the same
parameter in request method.

Args:
    curl: curl object to use in the session. If not provided, a new one will be
        created. Also, a fresh curl object will always be created when accessed
        from another thread.
    thread: thread engine to use for working with other thread implementations.
        choices: eventlet, gevent.
    headers: headers to use in the session.
    cookies: cookies to add in the session.
    auth: HTTP basic auth, a tuple of (username, password), only basic auth is
        supported.
    proxies: dict of proxies to use, prefer to use proxy if they are the same.
        format: ``{"http": proxy_url, "https": proxy_url}``.
    proxy: proxy to use, format: "http://proxy_url".
        Cannot be used with the above parameter.
    proxy_auth: HTTP basic auth for proxy, a tuple of (username, password).
    base_url: absolute url to use as base for relative urls.
    params: query string for the session.
    verify: whether to verify https certs.
    timeout: how many seconds to wait before giving up.
    trust_env: use http_proxy/https_proxy and other environments, default True.
    allow_redirects: whether to allow redirection.
    max_redirects: max redirect counts, default 30, use -1 for unlimited.
    impersonate: which browser version to impersonate in the session.
    ja3: ja3 string to impersonate in the session.
    akamai: akamai string to impersonate in the session.
    extra_fp: extra fingerprints options, in complement to ja3 and akamai str.
    interface: which interface use.
    default_encoding: encoding for decoding response content if charset is not
        found in headers. Defaults to "utf-8". Can be set to a callable for
        automatic detection.
    cert: a tuple of (cert, key) filenames for client cert.
    response_class: A customized subtype of ``Response`` to use.
    raise_for_status: automatically raise an HTTPError for 4xx and 5xx
        status codes.

Notes:
    This class can be used as a context manager.

.. code-block:: python

    from curl_cffi.requests import Session

    with Session() as s:
        r = s.get("https://example.com")
NTFrl   r;   )superr   _thread_use_thread_local_curlr   	_executor	threadinglocal_local_is_customized_curlr   r   rl   _curl)r   r   r"  r#  r   	__class__s   &&&&,rD   r   Session.__init__Z  s    p 	"6"&;# #//+DK+/(#' +0(#'djj#9 !%4djj+ADJrC   c                	L   V P                   '       d   V P                  '       d   \        P                  ! R \        ^R7       \        V P                  RR4      '       g&   \        V P                  R7      V P                  n	        V P                  P                  # V P                  # )z/Creating fresh curl handle in different thread.)
stacklevelr   Nr'  )r*  r/  warningswarnr   getattrr.  r   rl   r   r0  r  s   &rD   r   Session.curl  ss    &&&'''E# 
 4;;55#'djj#9 ;;###::rC   c                	T    V P                   f   \        4       V n         V P                   # r   )r+  r   r  s   &rD   executorSession.executor  s     >>!/1DN~~rC   c                	    V # r   r;   r  s   &rD   	__enter__Session.__enter__  s    rC   c                	&    V P                  4        R # r   closer   r   s   &*rD   __exit__Session.__exit__  s    

rC   c                   V ^8  d   QhRR/# r   r   r  r;   )r   s   "rD   r   r%    s      t rC   c                H    RV n         V P                  P                  4        R# )Close the session.TN)r   r   rA  r  s   &rD   rA  Session.close  s    		rC   c               $    V ^8  d   QhRRRRRR/# r   method
HttpMethodr   r5   r   zUnpack[StreamRequestParams]r;   )r   s   "rD   r   r%    s(        .	rC   c              +     "   V P                   ! RRVRV/VBRR/B p Vx  VP                  4        R#   TP                  4        i ; i5i)z6Equivalent to ``with request(..., stream=True) as r:``rL  r   r   TNr;   )requestrA  r   rL  r   r   r  s   &&&, rD   r   Session.stream  sC      llI&IcIVIDI	IIIKCIIKs   A	4 A	AA	c                   V ^8  d   QhRR/# )r   r   r-   r;   )r   s   "rD   r   r%    s     ! !	!rC   c                    V P                  4        V P                  P                  4       pV P                  P                  4        \	        VVVVVR7      pVP
                  ! V3/ VB  V# )a  Connects to a websocket url.

Note: This method is deprecated, use WebSocket instead.

Args:
    url: the ws url to connect.
    on_message: message callback, ``def on_message(ws, str)``
    on_error: error callback, ``def on_error(ws, error)``
    on_open: open callback, ``def on_open(ws)``
    on_close: close callback, ``def on_close(ws)``

Other parameters are the same as ``.request``

Returns:
    a WebSocket instance to communicate with the server.
)r   
on_messageon_erroron_openon_close)r  r   	duphandleresetr-   connect)	r   r   rT  rU  rV  rW  r   r   r9   s	   &&&&&&,  rD   
ws_connectSession.ws_connect  sa    & 	""$yy""$		!
 	

3!&!	rC   c                   V ^8  d   QhRR/# )r   r   r\   r;   )r   s   "rD   r   r%    s     " " "rC   c                	6    V P                   P                  4       # r   )r   upkeepr  s   &rD   r_  Session.upkeep  s    yy!!rC   gzip, deflate, brr   r   Fc          B         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#R$R%RR&RR'R(R)RR*R+R,R-R.R/R0RR1R2R3RR4R5R6R7R8R9/!# ):r   rL  rM  r   r5   rU   rv   rx   rw   rz   ry   rI   rH   rK   rJ   r{   rT   rM   rL   rY   r|   r[   r}   r]   r~   rO   rN   rQ   rP   rR   rW   r   r   r   r   r_   r^   r`   ra   rc   rb   rd   rf   re   r   r   rk   rj   rm   ro   rn   r   r   r\   r   r   rr   rV   r;   )r   s   "rD   r   r%    s    g gg g 3	g
 Pg $g 'g 'g g (g Eg (g %g %g g  .!g" #g$ %g& ''g( -)g* 2+g, -g. /g0 B1g2 (3g4 =5g6 *7g8 K9g: !;g< 4=g> ?g@ AgB &CgD EgrC   c"           	     |	  a aa!a,a-a.a/a0a1a2 S P                  4        V'       d6   S P                  P                  4       o-S P                  P                  4        MS P                  o-\	        S-3/ RVbRVbRS P
                  V.bRS P                  bRVbRVbRS P                  V.bRS P                  V.bR	VbR
T	;'       g    S P                  bRV
\        J d   S P                  MT
bRVf   S P                  MTbRVf   S P                  MTbRS P                  V.bRVbRT;'       g    S P                  bRS P                   V.bRVbRVbRVbRT;'       g    S P"                  bRT;'       g    S P$                  bRT;'       g    S P&                  bRT;'       g    S P(                  bRVf   S P*                  MTbRVbRT;'       g    S P,                  bRT;'       g    S P.                  bRVbRVbR V bR!T;'       g    S P0                  bR"S P2                  bR#\4        P6                  bR$\8        P:                  b w  o2o,o.o1o0p"V'       d   \8        P:                  ! 4       o/V,V-VV!V.V0V1V2V 3	R% lp#V-V/3R& lp$S P<                  P?                  V#4      p%V%PA                  V$4       S0PC                  4        S PE                  S-S,S.SS!4      p&S/PG                  4        \I        S14      p'\K        V'\L        4      '       d   S-P                  4        V'hS2V&n'        V%V&n(        V"V&n)        S1V&n        S PT                  '       d   V&PU                  4        V&#  S PV                  R'8X  d+   ^ RI,p(V(PZ                  P]                  S-P^                  4       MgS PV                  R(8X  dG   ^ RI0p)V)Pc                  4       Pd                  Pg                  S-P^                  4      Pi                  4        MS-P_                  4        S PE                  S-S,S.SS!4      p&S2V&n'        S PT                  '       d   V&PU                  4        V&S-P                  4        #   \j         d_   p*S PE                  S-S,S.SS!4      p&S2T&n'        \m        T*Pn                  \q        T*4      4      p+T+! \q        T*4      T*Pn                  T&4      T*hRp*?*ii ; i  S-P                  4        i ; i))zESend the request, see ``requests.request`` for details on parameters.rL  r   params_listrS   rx   rz   headers_listcookies_listr{   rM   rY   r[   Nr]   proxies_listrQ   rR   verify_listr   r   r   r_   r`   ra   rc   rd   r   rk   rm   r   r   r   ro   rg   queue_classevent_classc                   <	  SP                  4        \        \        P                  S4      P                  4       '       g)   \        \        P                  S4      P                  4        SP                  \        4       R #   \         dV   p S
P                  SSSSS4      pS	Tn        SP	                  \        \        T 4      T P                  T4      4        R p ? LR p ? ii ; i  \        \        P                  S4      P                  4       '       g)   \        \        P                  S4      P                  4        SP                  \        4       i ; ir   )performr   r  rO  
put_nowaitr   r5   coder   r,  Eventis_setr   putr'   )er  r  r  rf   rr   r  header_recvedr   reqr   s     rD   rl   Session.request.<locals>.performU  s    &IIK  	?FFHHY__m<@@BEE*% ! H..6=2BOC #&CKLL!1#a&!&&#!FGGH  	?FFHHY__m<@@BEE*%s+   B   C ACC# C  C# #A-Ec                H   < SP                  4        SP                  4        R # r   )waitrY  )futr  header_parseds   &rD   cleanup Session.request.<locals>.cleanupc  s    ""$	rC   eventletgevent)9r  r   rX  rY  r+   rU   rS   rI   r   rM   r*   rY   r[   r]   rO   rR   rW   r_   r`   ra   rc   rd   rk   rm   ro   rg   r   Queuer,  ro  r:  submitadd_done_callbackrw  r  r   r   
isinstancer   rO  stream_taskquit_nowrs   r)  eventlet.tpooltpoolexecuterl  r}  get_hub
threadpoolspawnr   r   r!   rn  r5   )3r   rL  r   rU   rx   rz   rI   rK   r{   rM   rY   r[   r]   rO   rQ   rR   rW   r   r   r   r_   r`   ra   rc   rd   rf   r   rk   rm   ro   r   r   r   rr   r  rl  rz  r  r  first_elementr|  r}  rr  errorr  r  r  ry  rs  r   rt  s3   f&&&&&&&&&&&&&&&&&&&&&&&&f&&&&&&&f          @@@@@@@rD   rO  Session.request  s   L 	""$ 		##%AIIOO		AAQ+B
+B
 +B
 f-	+B

 ]]+B
 +B
 +B
 ,,0+B
 --1+B
 +B
 ""+B
 %,w$6DLLG+B
 )8(?$$_+B
" '4&;""#+B
& ,,0'+B
( )+B
* "44T__++B
, f--+B
. /+B
0 ,1+B
2 .3+B
4 $77t'7'75+B
6 txx7+B
8 ((T[[9+B
: ..;+B
> )8(?$$_?+B
B C+B
D &::):):E+B
F  114>>G+B
H I+B
J *K+B
L  M+B
N ""O+B
P **Q+B
R S+B
T "U+B
>V]A}hZ %OO-M& & --..w7K))'2  &&6=*:OC  (NM-)9::	##CK)CO#CLCI$$$$$&J<<:-)NN**1995\\X-!NN$//55aii@DDFIIK **v}.> "(((((*	!  8**v}.> ""1663q62CFAFFC0a78  	s,   B"P= -?R) =R&AR!!R&&R) )R;c                    V ^8  d   QhRRRR/# r   r   r5   r   Unpack[RequestParams]r;   )r   s   "rD   r   r%         > > >'< >rC   c                	.    V P                   ! RR RRV/VB # )rL  HEADr   r;   rO  r   r   r   s   &&,rD   headSession.head      ||=6=s=f==rC   c                    V ^8  d   QhRRRR/# r  r;   )r   s   "rD   r   r%         = =s =&; =rC   c                	.    V P                   ! RR RRV/VB # )rL  GETr   r;   r  r  s   &&,rD   r   Session.get      ||<5<c<V<<rC   c                    V ^8  d   QhRRRR/# r  r;   )r   s   "rD   r   r%    r  rC   c                	.    V P                   ! RR RRV/VB # )rL  POSTr   r;   r  r  s   &&,rD   postSession.post  r  rC   c                    V ^8  d   QhRRRR/# r  r;   )r   s   "rD   r   r%    r  rC   c                	.    V P                   ! RR RRV/VB # )rL  PUTr   r;   r  r  s   &&,rD   rq  Session.put  r  rC   c                    V ^8  d   QhRRRR/# r  r;   )r   s   "rD   r   r%         ? ? ?(= ?rC   c                	.    V P                   ! RR RRV/VB # )rL  PATCHr   r;   r  r  s   &&,rD   patchSession.patch      ||>7>>v>>rC   c                    V ^8  d   QhRRRR/# r  r;   )r   s   "rD   r   r%    s     @ @# @)> @rC   c                	.    V P                   ! RR RRV/VB # )rL  DELETEr   r;   r  r  s   &&,rD   deleteSession.delete  s    ||?8????rC   c                    V ^8  d   QhRRRR/# r  r;   )r   s   "rD   r   r%    s     A A3 A*? ArC   c                	.    V P                   ! RR RRV/VB # )rL  OPTIONSr   r;   r  r  s   &&,rD   optionsSession.options  s    ||@9@#@@@rC   c                    V ^8  d   QhRRRR/# r  r;   )r   s   "rD   r   r%    r  rC   c                	.    V P                   ! RR RRV/VB # )rL  TRACEr   r;   r  r  s   &&,rD   traceSession.trace  r  rC   c                    V ^8  d   QhRRRR/# r  r;   )r   s   "rD   r   r%    r  rC   c                	.    V P                   ! RR RRV/VB # )rL  QUERYr   r;   r  r  s   &&,rD   querySession.query  r  rC   )r   r0  r+  r/  r.  r   r)  r*  )NNT)NNNN)r=   r>   r?   r@   r  r   r  r   r:  r=  rC  rA  r   r   r[  r_  r*   rO  r  r   r  rq  r  r  r  r  r  rB   __classcell__r1  s   @rD   r   r   V  s	   TFB FBP    

  !F" 6:RV&*)-)- $*.GN*.'+'+#04!%!%)</348! $DH*.?F,.MQ#'6:!%(, %EgR>=>=?@A?? ?rC   r   c                     a  ] tR tRtRtRRRRR^
/R V 3R lllt]R	 4       t]R
 4       tR t	R t
R tR tR tR R ltR t]R R l4       t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^?3 R R llt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3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R+ R, ltR- R. ltR/ R0 ltR1 R2 ltR3tV ;t# )4AsyncSessioni  zAAn async request session, cookies and connections will be reused.loopN
async_curlmax_clientsc               $    V ^8  d   QhRRRRRR/# )r   r  zOptional[AsyncCurl]r  r\   r   r$  r;   )r   s   "rD   r   AsyncSession.__annotate__  s/     @ @ (	@
 @ /@rC   c               l   < \         SV `  ! R/ VB  Wn        W n        W0n        V P                  4        R# )a	  
Parameters set in the ``__init__`` method will be override by the same parameter
in request method.

Parameters:
    loop: loop to use, if not provided, the running loop will be used.
    async_curl: [AsyncCurl](/api/curl_cffi#curl_cffi.AsyncCurl) object to use.
    max_clients: maxmium curl handle to use in the session,
        this will affect the concurrency ratio.
    headers: headers to use in the session.
    cookies: cookies to add in the session.
    auth: HTTP basic auth, a tuple of (username, password), only basic auth is
        supported.
    proxies: dict of proxies to use, prefer to use ``proxy`` if they are the
        same. format: ``{"http": proxy_url, "https": proxy_url}``.
    proxy: proxy to use, format: "http://proxy_url".
        Cannot be used with the above parameter.
    proxy_auth: HTTP basic auth for proxy, a tuple of (username, password).
    base_url: absolute url to use for relative urls.
    params: query string for the session.
    verify: whether to verify https certs.
    timeout: how many seconds to wait before giving up.
    trust_env: use http_proxy/https_proxy and other environments, default True.
    allow_redirects: whether to allow redirection.
    max_redirects: max redirect counts, default 30, use -1 for unlimited.
    impersonate: which browser version to impersonate in the session.
    ja3: ja3 string to impersonate in the session.
    akamai: akamai string to impersonate in the session.
    extra_fp: extra fingerprints options, in complement to ja3 and akamai str.
    default_encoding: encoding for decoding response content if charset is not
        found in headers. Defaults to "utf-8". Can be set to a callable for
        automatic detection.
    cert: a tuple of (cert, key) filenames for client cert.
    response_class: A customized subtype of ``Response`` to use.
    raise_for_status: automatically raise an HTTPError for 4xx and 5xx
        status codes.

Notes:
    This class can be used as a context manager, and it's recommended to use via
    ``async with``.
    However, unlike aiohttp, it is not required to use ``with``.

.. code-block:: python

    from curl_cffi.requests import AsyncSession

    # recommended.
    async with AsyncSession() as s:
        r = await s.get("https://example.com")

    s = AsyncSession()  # it also works.
Nr;   )r(  r   _loop_acurlr  	init_pool)r   r  r  r  r   r1  s   &$$$,rD   r   AsyncSession.__init__  s0    x 	"6"
 &rC   c                	j    V P                   f   \        P                  ! 4       V n         V P                   # r   )r  asyncioget_running_loopr  s   &rD   r  AsyncSession.loop   s&    :: 113DJzzrC   c                	l    V P                   f   \        V P                  R7      V n         V P                   # )N)r  )r  r   r  r  s   &rD   acurlAsyncSession.acurl  s&    ;;#3DK{{rC   c                	    \         P                  ! V P                  4      V n          V P                  P	                  R4       K    \         P
                   d     R# i ; i)TN)r  	LifoQueuer  poolrm  	QueueFullr  s   &rD   r  AsyncSession.init_pool  sL    %%d&6&67			$$T*$$ s   A AAc                	   "   V P                   P                  4       G R j  xL
 pVf   \        V P                  R7      pV#  L 5i)Nr'  )r  r   r   rl   r   r   s   & rD   pop_curlAsyncSession.pop_curl  s4     YY]]_$<djj)D %s   AA!Ac                	    \        \        P                  4      ;_uu_ 4        V P                  P	                  V4       R R R 4       R #   + '       g   i     R # ; ir   )r   r  r  r  rm  r  s   &&rD   	push_curlAsyncSession.push_curl  s4    g''((II  & )(((s   AA	c                	   "   V # 5ir   r;   r  s   &rD   
__aenter__AsyncSession.__aenter__  s
     s   c                	B   "   V P                  4       G R j  xL
  R #  L5ir   r@  rB  s   &*rD   	__aexit__AsyncSession.__aexit__!  s     jjl 	s   c                   V ^8  d   QhRR/# rF  r;   )r   s   "rD   r   r  %  s     
 
T 
rC   c                  "   V P                   P                  4       G Rj  xL
  RV n          V P                  P	                  4       pV'       d   VP                  4        K6  K8   LC  \
        P                   d     R# i ; i5i)rH  NT)r  rA  r   r  
get_nowaitr  
QueueEmptyr  s   & rD   rA  AsyncSession.close%  sk     jj   yy++-JJL  	! %% s8   BA$B!A& A&  B&A?;B>A??Bc                	    VP                  4        V P                  '       g?   V P                  P                  V4       VP	                  4        V P                  V4       R # VP                  4        R # r   )clean_handles_and_buffersr   r  remove_handlerY  r  rA  r  s   &&rD   release_curlAsyncSession.release_curl1  sG    &&(|||JJ$$T*JJLNN4 JJLrC   c               $    V ^8  d   QhRRRRRR/# rK  r;   )r   s   "rD   r   r  ;  s(        .	rC   c                  "   V P                   ! RRVRV/VBRR/B G Rj  xL
 p V5x  VP                  4       G Rj  xL
  R#  L$ L  TP                  4       G Rj  xL 
  i ; i5i)z<Equivalent to ``async with request(..., stream=True) as r:``rL  r   r   TNr;   )rO  acloserP  s   &&&, rD   r   AsyncSession.stream:  s]      LLOOCO6O$OO	I**,	 P #**,sA   A'AA'A	 A'AA'A'	A$A A$$A'Tra  r   i      FgMbP?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!RR"R#R$R%R&RR'R(R)R*R+R*R,R*R-R*R.RR/RR0R1R2RR3R*R4R5/"# )6r   r   r5   	autocloserV   rU   rv   rI   rH   rK   rJ   rM   rL   rY   r|   r[   r}   r]   r~   rO   rN   rQ   rP   rR   rW   r   r   r_   r^   r`   ra   rc   rb   rd   r   r   rk   rj   rm   ro   rn   r   r\   recv_queue_sizesend_queue_sizemax_send_batch_sizecoalesce_framesretry_on_recv_erroryield_intervalr   fair_scheduling
yield_maskr   r,   r;   )r   s   "rD   r   r  H  s    h hh h 3	h
 'h 'h (h Eh (h %h %h h .h h h  '!h" 2#h$ %h& 'h( B)h* (+h, *-h. K/h0 !1h2 43h4 5h6 7h8 9h: !;h< =h> "?h@ AhB ChD EhF 
GhrC   c"                |  "   V P                  4        V P                  4       G Rj  xL
 p"\        R!/ RV"bRRbRVbRV P                  bRV P                  V.bRV P
                  V.bR	V P                  V.bR
T;'       g    V P                  bRV\        J d   V P                  MTbRVf   V P                  MTbRV	f   V P                  MT	bRV P                  V
.bRVbRT;'       g    V P                  bRV P                  V.bRVbRVbRT;'       g    V P                  bRT;'       g    V P                   bRT;'       g    V P"                  bRT;'       g    V P$                  bRVf   V P&                  MTbRVbRT;'       g    V P(                  bRT;'       g    V P*                  bRVbRT;'       g    V P,                  bR\.        P0                  bR\.        P2                  b  V"P5                  \6        P8                  ^4       V"P5                  \6        P:                  ^4       V P<                  P?                  RV"P@                  4      G Rj  xL
  \C        \E        \F        \H        ,          V 4      V"VVVVVVVV V!R 7      p# V#PK                  4        V##  ELq LI  \L         d    T#PO                  4        h i ; i5i)"a  Connects to a WebSocket.

Args:
    url: url for the requests.
    autoclose: whether to close the WebSocket after receiving a close frame.
    params: query string for the requests.
    headers: headers to send.
    cookies: cookies to use.
    auth: HTTP basic auth, a tuple of (username, password), only basic auth is
        supported.
    timeout: how many seconds to wait before giving up.
    allow_redirects: whether to allow redirection.
    max_redirects: max redirect counts, default 30, use -1 for unlimited.
    proxies: dict of proxies to use, prefer to use ``proxy`` if they are the
        same. format: ``{"http": proxy_url, "https": proxy_url}``.
    proxy: proxy to use, format: "http://user@pass:proxy_url".
        Can't be used with `proxies` parameter.
    proxy_auth: HTTP basic auth for proxy, a tuple of (username, password).
    verify: whether to verify https certs.
    referer: shortcut for setting referer header.
    accept_encoding: shortcut for setting accept-encoding header.
    impersonate: which browser version to impersonate.
    ja3: ja3 string to impersonate.
    akamai: akamai string to impersonate.
    extra_fp: extra fingerprints options, in complement to ja3 and akamai str.
    default_headers: whether to set default browser headers.
    quote: Set characters to be quoted, i.e. percent-encoded. Default safe
        string is ``!#$%&'()*+,/:;=?@[]~``. If set to a sting, the character
        will be removed from the safe string, thus quoted. If set to False, the
        url will be kept as is, without any automatic percent-encoding, you must
        encode the URL yourself.
    curl_options: extra curl options to use.
    http_version: limiting http version, defaults to http2.
    interface: which interface to use.
    cert: a tuple of (cert, key) filenames for client cert.
    max_recv_speed: maximum receive speed, bytes per second.
    recv_queue_size: The maximum number of incoming WebSocket
        messages to buffer internally. This queue stores messages received
        by the Curl socket that are waiting to be consumed by calling `recv()`.
    send_queue_size: The maximum number of outgoing WebSocket
        messages to buffer before applying network backpressure. When you call
        `send(...)` the message is placed in this queue and transmitted when
        the Curl socket is next available for sending.
    max_send_batch_size: The max batch size for sent frames.
    coalesce_frames: If `True`, multiple pending messages in the send queue
        may be merged into a single WebSocket frame for improved throughput.
        **Warning:** This breaks the one-to-one mapping of `send()` calls to
        frames and should only be used when the application protocol is
        designed to handle concatenated data streams. Defaults to `False`.
    retry_on_recv_error: Retries `ws_recv()` if a recv error is raised.
        Retries up to a limited number of times with a delay in between.
    yield_interval: How often to yield control back to the event loop.
        This is a trade-off between throughput and responsiveness. Lower values
        means the loop yields more frequently and enables other tasks to run,
        while higher values are better for throughput. The balanced default
        is `1ms` but you can customize this to fit your application/use case.
    fair_scheduling: Changes the I/O priority from favoring receives (`5:1`)
        to a balanced ratio (`1:1`). Enable this to improve send responsiveness
        under heavy, concurrent load, at the cost of significantly lower overall
        throughput.
    yield_mask: Controls the frequency of cooperative multitasking
        yields in the read loop. The loop yields every `yield_mask + 1`
        operations. For efficiency, this value must be a power of two minus one
        (e.g., `63`, `127`, `255`). Lower values yield more often, improving
        fairness at the cost of throughput. Higher values yield less often,
        prioritizing throughput.
Nr   rL  r  r   rS   rd  re  rf  rM   rY   r[   r]   rg  rQ   rR   rh  r   r   r_   r`   ra   rc   rd   r   rk   rm   r   ro   ri  rj  )	r  r  r  r  r  r  r  r   r  r;   )(r  r  r+   rS   rU   rI   rK   rM   r*   rY   r[   r]   rO   rR   rW   r_   r`   ra   rc   rd   rk   rm   ro   r  r~  ro  setoptr   TCP_NODELAYCONNECT_ONLYr  run_in_executorrl  r,   r   r  r(   _start_io_tasksr.   	terminate)$r   r   r  rU   rI   rK   rM   rY   r[   r]   rO   rQ   rR   rW   r   r   r_   r`   ra   rc   rd   r   rk   rm   ro   r   r  r  r  r  r  r  r   r  r   r9   s$   &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  rD   r[  AsyncSession.ws_connectH  s    P 	""$]]_$ $	
$	
$	
 $	
 ]]	$	

 f-$	
 ,,0$	
 ,,0$	
 ""$	
 %,w$6DLLG$	
 )8(?$$_$	
 '4&;""$	
  ,,0!$	
" #$	
$ "44T__%$	
& f-'$	
( )$	
* ,+$	
, $77t'7'7-$	
. txx/$	
0 ((T[[1$	
2 ..3$	
6 )8(?$$_7$	
: ;$	
< &::):):=$	
>  114>>?$	
@ *A$	
B ""C$	
D  E$	
F  G$	
J 	G''+G((!,ii''dll;;;+h'.++ 3+ 3)+!
	 
 	} %R 	<"  	LLN	sr   $J<JAJ<?A'J<'+J<J<*J<J<,J<J<J<6BJ<J3J<J J<J<J99J<r   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#R$R%RR&RR'R(R)RR*R+R,R-R.R/R0RR1R2R3RR4R5R6R7R8R9R:R;/"# )<r   rL  rM  r   r5   rU   rv   rx   rw   rz   ry   rI   rH   rK   rJ   r{   rT   rM   rL   rY   r|   r[   r}   r]   r~   rO   rN   rQ   rP   rR   rW   r   r   r   r   r_   r^   r`   ra   rc   rb   rd   rf   re   r   r   rk   rj   rm   ro   rn   r   r   r\   r   r   rr   rV   r   r/   r;   )r   s   "rD   r   r    s    V( V(V( V( 3	V(
 PV( $V( 'V( 'V( V( (V( EV( (V( %V( %V( V(  .!V(" #V($ %V(& ''V(( -)V(* 2+V(, -V(. /V(0 B1V(2 (3V(4 =5V(6 *7V(8 K9V(: !;V(< 4=V(> ?V(@ AV(B &CV(D EV(F 
GV(rC   c"           
     r  a aa!a*a+a,a-a.a/a0"   S P                  4        S P                  4       G Rj  xL
 o+\        R(/ RS+bRVbRVbRS P                  V.bRS P                  bRVbRVbR	S P
                  V.bR
S P                  V.bRVbRT	;'       g    S P                  bRV
\        J d   S P                  MT
bRVf   S P                  MTbRVf   S P                  MTbRS P                  V.bRVbRT;'       g    S P                  bRS P                  V.bRVbRVbRVbRT;'       g    S P                  bRT;'       g    S P                   bRT;'       g    S P"                  bRT;'       g    S P$                  bRVf   S P&                  MTbRVbRT;'       g    S P(                  bRT;'       g    S P*                  bRVbR VbR!V bR"T;'       g    S P,                  bR#S P.                  bR$\0        P2                  bR%\0        P4                  b w  o/o*o,o.o-p"V'       Ed   S P6                  P9                  S+4      o0V*V+VV!V,V-V.V/V V03
R& lp#V+V 3R' lp$\0        P:                  ! V#! 4       4      p%V%P=                  V$4       \?        \0        P4                  S-4      PA                  4       G Rj  xL
  S PC                  S+S*S,SS!4      p&\E        S.4      p'\G        V'\H        4      '       d   S PK                  S+4       V'hS/V&n&        V%V&n'        V"V&n(        S.V&n)        S PT                  '       d   V&PU                  4        V&#  S P6                  P9                  S+4      o0S0G Rj  xL
  S PC                  S+S*S,SS!4      p&S/V&n&        S PT                  '       d   V&PU                  4        V&S PK                  S+4       #  EL} EL L[  \V         d_   p(S PC                  S+S*S,SS!4      p&S/T&n&        \Y        T(PZ                  \]        T(4      4      p)T)! \]        T(4      T(PZ                  T&4      T(hRp(?(ii ; i  S PK                  S+4       i ; i5i))zISend the request, see ``curl_cffi.requests.request`` for details on args.Nr   rL  r   rd  rS   rx   rz   re  rf  r{   rM   rY   r[   r]   rg  rQ   rR   rh  r   r   r   r_   r`   ra   rc   rd   r   rk   rm   r   r   r   ro   rg   ri  rj  c                   <
"    SG R j  xL
  \        \        P                  S4      P                  4       '       g)   \        \        P                  S4      P                  4        SP                  \        4      G R j  xL
  R #  Ly  \          dV   p S
P                  SSSSS4      pS	Tn        SP                  \	        \        T 4      T P                  T4      4        R p ? LR p ? ii ; i Lk  \        \        P                  S4      P                  4       '       g)   \        \        P                  S4      P                  4        SP                  \        4      G R j  xL 
  i ; i5ir   )r   r  rO  rm  r   r5   rn  r   r  ro  rp  r   rq  r'   )rr  r  r  r   rf   rr   r  rs  r   rt  r   tasks     rD   rl  %AsyncSession.request.<locals>.performJ  s     ,JJ  }=DDFFW]]M:>>@%%
+++   H..fm5EC #&CKLL!1#a&!&&#!FGGH ,  }=DDFFW]]M:>>@%%
+++sj   E$B BB A.E$=C)>E$B C&AC!C+ !C&&C+ )E$+A/E!EE!!E$c                *   < SP                  S4       R # r   )r  )rx  r   r   s   &rD   rz  %AsyncSession.request.<locals>.cleanupX  s    !!$'rC   r;   )/r  r  r+   rU   rS   rI   rK   rM   r*   rY   r[   r]   rO   rR   rW   r_   r`   ra   rc   rd   rk   rm   ro   rg   r  r~  ro  r  
add_handlecreate_taskr  r   rw  r  r   r  r   r  rO  astream_taskr  r   rs   r   r!   rn  r5   )1r   rL  r   rU   rx   rz   rI   rK   r{   rM   rY   r[   r]   rO   rQ   rR   rW   r   r   r   r_   r`   ra   rc   rd   rf   r   rk   rm   ro   r   r   r   rr   r  rl  rz  r  r  r  rr  r  r  r   r  rs  r   rt  r  s1   f&&&&&&&&&&&&&&&&&&&&&&&&f&&&&&&&f        @@@@@@@rD   rO  AsyncSession.request  s    L 	""$]]_$AQ +B
+B
+B
 +B
 f-	+B

 ]]+B
 +B
 +B
 ,,0+B
 ,,0+B
 +B
 ""+B
 %,w$6DLLG+B
 )8(?$$_+B
" '4&;""#+B
& ,,0'+B
( )+B
* "44T__++B
, f--+B
. /+B
0 ,1+B
2 .3+B
4 $77t'7'75+B
6 txx7+B
8 ((T[[9+B
: ..;+B
> )8(?$$_?+B
B C+B
D &::):):E+B
F  114>>G+B
H I+B
J *K+B
L  M+B
N ""O+B
P **Q+B
R  S+B
T  U+B
>V]A}hX 6::((.D, ,( "--gi8K))'2w}}m499;;; &&fm-=C ,A.M-)9::!!$'##CK*C#CLCI$$$$$&J(zz,,T2

 **&-1A? "(((((*!!$'] %H <2  8**&-1A? ""1663q62CFAFFC0a78  !!$'s   $P7N-A P7A'P7:.P7)P7 P7P7.,P7P72P7AP7 BP7(N0)A:P7$P77 N5 N3N5 ?P! P70P73N5 5P APPP! !P44P7c               $    V ^8  d   QhRRRRRR/# r   r   r5   r   r  r   r/   r;   )r   s   "rD   r   r    '     D Dc D-B Dq DrC   c                	J   "   V P                   ! RR RRV/VB G Rj  xL
 #  L5i)rL  r  r   Nr;   r  r  s   &&,rD   r  AsyncSession.head  '     \\CCSCFCCCC   #!#c               $    V ^8  d   QhRRRRRR/# r  r;   )r   s   "rD   r   r    '     C CS C,A Ca CrC   c                	J   "   V P                   ! RR RRV/VB G Rj  xL
 #  L5i)rL  r  r   Nr;   r  r  s   &&,rD   r   AsyncSession.get  '     \\BBCB6BBBBr  c               $    V ^8  d   QhRRRRRR/# r  r;   )r   s   "rD   r   r    r  rC   c                	J   "   V P                   ! RR RRV/VB G Rj  xL
 #  L5i)rL  r  r   Nr;   r  r  s   &&,rD   r  AsyncSession.post  r  r  c               $    V ^8  d   QhRRRRRR/# r  r;   )r   s   "rD   r   r    r  rC   c                	J   "   V P                   ! RR RRV/VB G Rj  xL
 #  L5i)rL  r  r   Nr;   r  r  s   &&,rD   rq  AsyncSession.put  r   r  c               $    V ^8  d   QhRRRRRR/# r  r;   )r   s   "rD   r   r    '     E Es E.C E ErC   c                	J   "   V P                   ! RR RRV/VB G Rj  xL
 #  L5i)rL  r  r   Nr;   r  r  s   &&,rD   r  AsyncSession.patch  '     \\DDcDVDDDDr  c               $    V ^8  d   QhRRRRRR/# r  r;   )r   s   "rD   r   r    s'     F F F/D F FrC   c                	J   "   V P                   ! RR RRV/VB G Rj  xL
 #  L5i)rL  r  r   Nr;   r  r  s   &&,rD   r  AsyncSession.delete  s'     \\EEsEfEEEEr  c               $    V ^8  d   QhRRRRRR/# r  r;   )r   s   "rD   r   r    s'     G G G0E G! GrC   c                	J   "   V P                   ! RR RRV/VB G Rj  xL
 #  L5i)rL  r  r   Nr;   r  r  s   &&,rD   r  AsyncSession.options  s'     \\FFFvFFFFr  c               $    V ^8  d   QhRRRRRR/# r  r;   )r   s   "rD   r   r    r(  rC   c                	J   "   V P                   ! RR RRV/VB G Rj  xL
 #  L5i)rL  r  r   Nr;   r  r  s   &&,rD   r  AsyncSession.trace  r+  r  c               $    V ^8  d   QhRRRRRR/# r  r;   )r   s   "rD   r   r    r(  rC   c                	J   "   V P                   ! RR RRV/VB G Rj  xL
 #  L5i)rL  r  r   Nr;   r  r  s   &&,rD   r  AsyncSession.query  r+  r  )r  r   r  r  r  ) r=   r>   r?   r@   r  r   r  r  r  r  r  r  r  r  rA  r  r   r   r*   r[  rO  r  r   r  rq  r  r  r  r  r  rB   r  r  s   @rD   r  r    s   K@ @ +/	@
 @ @D  
  
'
    59)-)-*.GN*.'+'+#04!%!%)<48! $DH*.,.MQ#'6:""#& %$) % %Eh\ 6:RV&*)-)- $*.GN*.'+'+#04!%!%)</348! $DH*.?F,.MQ#'6:!%(, %EV(pDCDCEFGEE ErC   r  )      )r|  r}  )	r  r  r  r  r  r  r  r  r  r   )Y
__future__r   r  http.cookiesr7   r   r   sysr,  r5  concurrent.futuresr   
contextlibr   r   r   collections.abcr   ior	   typingr
   r   r   r   r   r   r   r   urllib.parser   datetimer   aior   constr   r   r   r   r   r   r   utilsr   rK   r   r   r   
exceptionsr   r    r!   rI   r"   r#   r_   r$   r%   r&   modelsr'   r(   r)   r*   r+   
websocketsr,   r-   r.   version_infor/   typing_extensionsr2   r4   rG   ru   r   r   dictr5   
ThreadTyperM  r   r   r   r   r   r  r;   rC   rD   <module>rN     s}   "   	  
   1 D D $ 	 	 	 "   6 6 , , # 5 5 C C ) K K ( @ @ A A w8X6A8$A(IU GAJ	 <iu @+5 
 
 YFS#XI!)2I&)*
P

;t)'!* t)nb?k!n b?JhE;q> hErC   