
    hD                     f   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	r	S SK
r
S SKrS SKJr  S SKJr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  S SKJr  SSK J!r!J"r"  SSK#J$r$  SS	K%J&r&J'r'J(r(  S
r)\\*S4   r+SRX                  r-SRX                  r.Sr/ " S S\!5      r0 " S S\!5      r1g)    N)defaultdict)
BaseCookieMorselSimpleCookie)DefaultDictDictIterableIteratorListMappingOptionalSetTupleUnioncast)URL   )AbstractCookieJarClearCookiePredicate)is_ip_address)LooseCookiesPathLikeStrOrURL)	CookieJarDummyCookieJarMorsel[str]z{}/{}z{1}.{0}d   c                     ^  \ rS rSrSr\R                  " S5      r\R                  " S5      r\R                  " S5      r	\R                  " S\R                  5      r\R                  " S5      r\" \R                  R                  R!                  \R"                  R$                  S9R'                  5       5      S	-
  r \R,                  " \R0                  " \5      5        \S	-
  rSSSSS.S\S\S\\\ \   S4   S\!\"RF                     SS4
U 4S jjjr$\%S\4S j5       r&S\'SS4S jr(S\'SS4S jr)S2S\!\*   SS4S jjr+S\,SS4S jr-S3S jr.S\4S jr/S4S  jr0S!\ \1\,\,\,4      SS4S" jr2S#\3S\,S$\,S%\,SS4
S& jr4\5" 5       4S'\6S(\5SS4S) jjr7\5" 5       4S*\5SS+4S, jjr8\9S\,S-\,S\4S. j5       r:\;S/\,S\!\   4S0 j5       r<S1r=U =r>$ ! \\4 a    \R,                  " S
5      r GN\ a    Sr GNf = f)5r   2   z/Implements cookie storage adhering to RFC 6265.z][\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]*(?P<token>[\x00-\x08\x0A-\x1F\d:a-zA-Z\x7F-\xFF]+)z(\d{1,2}):(\d{1,2}):(\d{1,2})z	(\d{1,2})zG(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec)z	(\d{2,4}))tzinfor   )	i           ;   r$   r%   r%   iFTN)unsafequote_cookietreat_as_secure_originloopr&   r'   r(   r)   returnc                .  > [         TU ]  US9  [        [        5      U l        [        [
        5      U l        [        5       U l        Xl	        X l
        Uc  / nO[        U[        5      (       a  UR                  5       /nO~[        U[        5      (       a  [        U5      R                  5       /nONU Vs/ s HA  n[        U[        5      (       a  [        U5      R                  5       OUR                  5       PMC     nnX0l        / U l        0 U l        g s  snf Nr)   )super__init__r   r   _cookiesdict_morsel_cacheset_host_only_cookies_unsafe_quote_cookie
isinstancer   originstr_treat_as_secure_origin_expire_heap_expirations)selfr&   r'   r(   r)   url	__class__s         C/var/www/html/env/lib/python3.13/site-packages/aiohttp/cookiejar.pyr/   CookieJar.__init__W   s    	d#DOE
  	 9<)!)%'".44&<&C&C&E%F".44&)*@&A&H&H&J%K" 2&1C &0S%9%9C!szz|K1 # & (>$FH?A&s   3ADc                     U R                   $ N)r6   r=   s    r@   r'   CookieJar.quote_cookiex   s    !!!    	file_pathc                     [         R                  " U5      nUR                  SS9 n[        R                  " U R
                  U[        R                  5        S S S 5        g ! , (       d  f       g = f)Nwbmode)pathlibPathopenpickledumpr0   HIGHEST_PROTOCOLr=   rG   fs      r@   saveCookieJar.save|   sF    LL+	^^^&!KKq&*A*AB '&&s   1A  
A.c                     [         R                  " U5      nUR                  SS9 n[        R                  " U5      U l        S S S 5        g ! , (       d  f       g = f)NrbrJ   )rL   rM   rN   rO   loadr0   rR   s      r@   rX   CookieJar.load   s;    LL+	^^^&!"KKNDM '&&s   A
A	predicatec                    Uc  U R                   R                  5         U R                  R                  5         U R                  R                  5         U R                  R                  5         U R
                  R                  5         g [        R                  " 5       nU R                  R                  5        VVVVVs/ s HY  u  u  p4nUR                  5         H<  u  pgX4U4=oR
                  ;   a  U R
                  U   U::  d  U" U5      (       d  M:  UPM>     M[     n	nnnnnU	(       a  U R                  U	5        g g s  snnnnnf rC   )	r;   clearr0   r2   r4   r<   timeitems_delete_cookies)
r=   rZ   nowdomainpathcookienamemorselkeyto_dels
             r@   r\   CookieJar.clear   s   ##%MM!$$&##))+##%iik +/--*=*=*?	
*?& &t,,1B1BB%%c*c1   . *? 	 	
   ( 	
s   <AD<
D<ra   c                 4   ^ ^ T R                  UU 4S j5        g )Nc                 .   > TR                  TU S   5      $ )Nra   )_is_domain_match)xra   r=   s    r@   <lambda>(CookieJar.clear_domain.<locals>.<lambda>   s    T2261X;GrF   )r\   r=   ra   s   ``r@   clear_domainCookieJar.clear_domain   s    

GHrF   c              #      #    U R                  5         U R                  R                  5        H  nUR                  5        S h  vN   M     g  N	7frC   )_do_expirationr0   values)r=   vals     r@   __iter__CookieJar.__iter__   s:     =='')Czz|## *#s   AAA
Ac                 V    [        S U R                  R                  5        5       5      $ )zgReturn number of cookies.

This function does not iterate self to avoid unnecessary expiration
checks.
c              3   T   #    U  H  n[        UR                  5       5      v   M      g 7frC   )lenrt   ).0rc   s     r@   	<genexpr>$CookieJar.__len__.<locals>.<genexpr>   s      M6LF3v}}''6Ls   &()sumr0   rt   rD   s    r@   __len__CookieJar.__len__   s"     Mdmm6J6J6LMMMrF   c                    [        U R                  5      =n(       d  gU[        :  a  U[        U R                  5      S-  :  ai  U R                   Vs/ s H,  nU R                  R	                  US   5      US   :X  d  M*  UPM.     snU l        [
        R                  " U R                  5        [        R                  " 5       n/ nU R                  (       az  U R                  S   u  pVXS:  a  Oc[
        R                  " U R                  5        U R                  R	                  U5      U:X  a  UR                  U5        U R                  (       a  Mz  U(       a  U R                  U5        ggs  snf )zRemove expired cookies.N   r   r   )rz   r;    _MIN_SCHEDULED_COOKIE_EXPIRATIONr<   getheapqheapifyr]   heappopappendr_   )r=   expire_heap_lenentryr`   rg   when
cookie_keys          r@   rs   CookieJar._do_expiration   s3   #&t'8'8#999 >>#d&7&7"81"<< "..!.E$$((q2eAh> .!D
 MM$++,iik-/#003DzMM$++,
   $$Z0D8j)    ( -!s   )E)?E)rg   c                    U H  u  p#nU R                   R                  X$45        U R                  X#4   R                  US 5        U R                  X#4   R                  US 5        U R
                  R                  X#U4S 5        M     g rC   )r4   discardr0   popr2   r<   )r=   rg   ra   rb   rd   s        r@   r_   CookieJar._delete_cookies   sz    "(F$##++VN;MM6.)--dD9~.224>!!6"6=	 #)rF   r   rb   rd   c                     X#U4nU R                   R                  U5      U:X  a  g [        R                  " U R                  X45        XR                   U'   g rC   )r<   r   r   heappushr;   )r=   r   ra   rb   rd   r   s         r@   _expire_cookieCookieJar._expire_cookie   sM    D)
  ,4t((4*<=(,*%rF   cookiesresponse_urlc                    UR                   nU R                  (       d  [        U5      (       a  g[        U[        5      (       a  UR                  5       nU GH  u  pE[        U[        5      (       d  [        5       nXVU'   Xd   nUS   nU(       a  US   S:X  a  SnUS	 U(       d%  Ub"  U R                  R                  X445        U=ouS'   U(       a  US   S:X  a	  USS nXuS'   U(       a  U R                  Xs5      (       d  M  US   nU(       a	  US   S	:w  a@  UR                  nUR                  S	5      (       d  S	nOS	USUR                  S	5       -   nXS'   UR                  S	5      nUS
   =n	(       aK   [        U	5      n
[!        ["        R"                  " 5       U
-   U R$                  5      nU R'                  XX5        O<US   =n(       a0  U R+                  U5      =n(       a  U R'                  XX5        OSUS'   Xx4nU R,                  U   R/                  U5      U:w  d  GM  XPR,                  U   U'   U R0                  U   R3                  US5        GM     U R5                  5         g! [(         a    SUS
'    Nf = f)zUpdate cookies.Nra   r%   . r   r   rb   /zmax-ageexpires)raw_hostr5   r   r7   r   r^   r   r   r4   addrk   rb   
startswithrfindrstripintminr]   MAX_TIMEr   
ValueError_parse_dater0   r   r2   r   rs   )r=   r   r   hostnamerd   rc   tmpra   rb   max_agedelta_secondsmax_age_expirationr   expire_timerf   s                  r@   update_cookiesCookieJar.update_cookies   sa   ((||h 7 7gw''mmoG#LDff--"n"D	H%F &*+8$h2 ''++X,<=,44)&)s*#)x  5 5f G G&>D47c>#((s++D a$**S/!::D!%v;;s#D ++w++$'LM),TYY[=-H$--)X&''(:DO #9---"&"2"27";;;;''TH(*F9%.C}}S!%%d+v5 ,2c"4(""3'++D$7w $z 	! " +(*F9%+s   4A	I((I:9I:request_urlBaseCookie[str]c           
         U R                   (       a
  [        5       O	[        5       nU R                  (       d  U$ U R	                  5         U R                  (       d  U$ [        U5      [        La1  [        R                  " S[        U5       3[        SS9  [        U5      nUR                  =(       d    SnUR                  S;  nU(       a\  U R                  (       aK  [        5       n[        R                  " [        5         UR!                  5       nSSS5        XPR                  ;  nU R                  S   R#                  5        H  nUR$                  X&R&                  '   M     [)        U5      (       a  U R*                  (       d  U$ U4nO3[,        R.                  " [1        UR3                  S5      5      [4        5      n[,        R.                  " UR6                  R3                  S	5      [8        5      n[,        R:                  " Xx5      n	[=        UR6                  5      n
U	 GH
  nU R                  U   R?                  5        H  u  pUS
   nX4U R@                  ;   a  X:w  a  M"  [=        US   5      U
:  a  M6  U(       a  US   (       a  MI  XRB                  U   ;   a  U RB                  U   U   X,'   Mq  [E        SURG                  UR&                  [I        5       5      5      nURK                  UR&                  UR$                  URL                  5        XRB                  U   U'   XU'   M     GM     U$ ! , (       d  f       GN%= f)z8Returns this jar's cookies filtered by their attributes.zQfilter_cookies expects yarl.URL instances only,and will stop working in 4.x, got r   )
stacklevelr   )httpswssN)r   r   r   r   ra   rb   securer   )'r6   r   r   r0   rs   typer   warningswarnDeprecationWarningr   schemer:   
contextlibsuppressr   r8   rt   valuerf   r   r5   	itertools
accumulatereversedsplit_FORMAT_DOMAIN_REVERSEDrb   _FORMAT_PATHproductrz   r^   r4   r2   r   r   r   r3   coded_value)r=   r   filteredr   is_not_securerequest_origincdomainspathspairspath_lenprd   rc   ra   mrsl_vals                   r@   filter_cookiesCookieJar.filter_cookies1  s    #00LNjl 	 }}O}}OC'MM559+5F4GI"	 k*K''-2#**2BBT99 UN$$Z0!,!3!3!5 1*2N2NNM x(//1AggHUUO 2 ""<<&.[G  **,-/FG
 $$[%5%5%;%;C%@,O!!'1{''(A $a 0 6 6 8)>T%<%<<AS vf~&1 VH%5 --a00%)%7%7%:4%@HN  vzz&**fh/OPVZZv7I7IJ.6""1%d+!)/ !9 4 g 10s   ?L..
L=r   c                     X:X  a  gUR                  U 5      (       d  gUS[        U 5      *  nUR                  S5      (       d  g[        U5      (       + $ )z0Implements domain matching adhering to RFC 6265.TFNr   )endswithrz   r   )ra   r   non_matchings      r@   rk   CookieJar._is_domain_match  sU       ((3v;,/$$S)) ***rF   date_strc                    U(       d  gSnSnSnSnS=n=pxSn	Sn
SnU R                   R                  U5       GH3  nUR                  S5      nU(       d@  U R                  R	                  U5      nU(       a  SnS UR                  5        5       u  pgnM\  U(       d?  U R                  R	                  U5      nU(       a  Sn[        UR                  5       5      n	M  U(       dA  U R                  R	                  U5      nU(       a  SnUR                  c   eUR                  n
M  U(       a  M  U R                  R	                  U5      nU(       d  GM  Sn[        UR                  5       5      nGM6     SUs=::  a  S::  a	  O  OUS	-  nOSUs=::  a  S
::  a  O  OUS-  nSX4XR4;   a  gSU	s=::  a  S::  d   g  gUS:  d  US:  d  US:  d  US:  a  g[        R                  " XXXxSSS4	5      $ )z4Implements date string parsing adhering to RFC 6265.NFr   tokenTc              3   8   #    U  H  n[        U5      v   M     g 7frC   )r   )r{   ss     r@   r|   (CookieJar._parse_date.<locals>.<genexpr>  s     +P<OqCFF<Os   F   c   il  E   i  r   r"   iA  r#   r$   r%   )DATE_TOKENS_REfinditergroupDATE_HMS_TIME_REmatchgroupsDATE_DAY_OF_MONTH_REr   DATE_MONTH_RE	lastindexDATE_YEAR_REcalendartimegm)clsr   
found_time	found_dayfound_month
found_yearhourminuteseconddaymonthyeartoken_matchr   
time_match	day_matchmonth_match
year_matchs                     r@   r   CookieJar._parse_date  s    
	
!"""v--66x@K%%g.E 1177>
!%J+PJ<M<M<O+P(D&44::5A	 $Iioo/0C!//55e<"&K&00<<<'11E: --33E:
:!%Jz//12D= A@ DLD$_"_DLDYZDDC~2~ $;$)v{frkSBPRSTTrF   )r0   r<   r;   r4   r2   r6   r:   r5   rC   r*   zIterator[Morsel[str]])r*   N)?__name__
__module____qualname____firstlineno____doc__recompiler   r   r   Ir   r   r   datetimemaxreplacetimezoneutc	timestampr   r   r   r]   gmtimeOSErrorr   OverflowErrorSUB_MAX_TIMEboolr   r   r   r   asyncioAbstractEventLoopr/   propertyr'   r   rT   rX   r   r\   r9   rp   rv   r   rs   r   r_   floatr   r   r   r   r   staticmethodrk   classmethodr   __static_attributes____classcell__r?   s   @r@   r   r   2   s   9ZZ	>N
 zz"BC::l3JJQ
M
 ::l+L
 	H!!))1B1B1F1F)GQQSTWXX 	H-. a<L
 !HL48B B 	B
 !&hX&D EB w001B 
B BB "d " "Ch C4 C
+h +4 +
)x(<= ) ).I3 I4 I$
N N))V>d5c3+?&@ >T >-5 -# -S - -PT - IL Hl H# HRV HT 14 L# L:K L\ + + + + + =U3 =U8C= =U =UI
 Z  K ??#IJ s   >"G G.#G.-G.r   c                      ^  \ rS rSrSrSS.S\\R                     SS4U 4S jjjrSS jr	S\
4S	 jr\S\4S
 j5       rSS\\   SS4S jjrS\SS4S jr\" 5       4S\S\SS4S jjrS\SS4S jrSrU =r$ )r   i  zpImplements a dummy cookie storage.

It can be used with the ClientSession when no cookie processing is needed.

Nr-   r)   r*   c                    > [         TU ]  US9  g r,   )r.   r/   )r=   r)   r?   s     r@   r/   DummyCookieJar.__init__  s    d#rF   c              #      #    g 7frC    rD   s    r@   rv   DummyCookieJar.__iter__  s     s   c                     g)Nr   r  rD   s    r@   r   DummyCookieJar.__len__  s    rF   c                     g)NTr  rD   s    r@   r'   DummyCookieJar.quote_cookie  s    rF   rZ   c                     g rC   r  )r=   rZ   s     r@   r\   DummyCookieJar.clear      rF   ra   c                     g rC   r  ro   s     r@   rp   DummyCookieJar.clear_domain  r%  rF   r   r   c                     g rC   r  )r=   r   r   s      r@   r   DummyCookieJar.update_cookies  r%  rF   r   r   c                     [        5       $ rC   )r   )r=   r   s     r@   r   DummyCookieJar.filter_cookies  s
    ~rF   r  r   rC   )r   r   r   r   r  r   r  r  r/   rv   r   r   r  r  r'   r   r\   r9   rp   r   r   r   r   r  r  r  s   @r@   r   r     s     GK $)B)B C $t $ $  d  x(<=  3 4  IL l # RV # 2C  rF   r   )2r  r   r   r  r   r   osrL   rO   r  r]   r   collectionsr   http.cookiesr   r   r   typingr   r   r	   r
   r   r   r   r   r   r   r   yarlr   abcr   r   helpersr   typedefsr   r   r   __all__r9   
CookieItemformatr   r   r   r   r   r  rF   r@   <module>r7     s          	   	   # 9 9     8 " 6 6
) 3%&
 ~~#** 
 $'  [U! [U|& rF   