
    `KhI                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlmZ d dlmZ d dlmZmZmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZ ddl m!Z! dd	l"m#Z#m$Z$ dd
l%m&Z& ddl'm(Z(m)Z)m*Z* dZ+ee,df   Z-dj\                  Z/dj\                  Z0dZ1 e       Z2 G d de#      Z3 G d de#      Z4y)    N)defaultdict)Mapping)
BaseCookieMorselSimpleCookie)	DefaultDictDictIterableIteratorListOptionalSetTupleUnion)URL   ) preserve_morsel_with_coded_value)AbstractCookieJarClearCookiePredicate)is_ip_address)LooseCookiesPathLikeStrOrURL)	CookieJarDummyCookieJarzMorsel[str]z{}/{}z{1}.{0}d   c                       e Zd ZdZ ej
                  d      Z ej
                  d      Z ej
                  d      Z ej
                  dej                        Z
 ej
                  d      Z eej                  j                  j                  ej                   j"                        j%                               dz
  Z	  ej*                   ej.                  e             edz
  Zddddddededeeee   df   de e!jD                     ddf
 fdZ#e$defd       Z%de&ddfdZ'de&ddfdZ(d2de e)   ddfdZ*de+ddfdZ,d3dZ-defdZ.d4dZ/d ee0e+e+e+f      ddfd!Z1d"e2de+d#e+d$e+ddf
d%Z3 e4       fd&e5d'e4ddfd(Z6 e4       fd)e4dd*fd+Z7d,e8e+   de8e+   fd-Z9e:de+d.e+defd/       Z;e<d0e+de e   fd1       Z= xZ>S # eef$ r  ej*                  d	      ZY e$ r d
ZY w xY w)5r   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         |   |       t        t              | _        t        t
              | _        t               | _        || _	        || _
        |g }nt        |t              r|j                         g}nqt        |t              rt        |      j                         g}nF|D cg c];  }t        |t              rt        |      j                         n|j                         = }}|| _        g | _        i | _        y c c}w 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         o/var/www/CtrlAgent-Voice-Telephony-Channel/python-server/venv/lib/python3.12/site-packages/aiohttp/cookiejar.pyr-   zCookieJar.__init__X   s     	d#DOE
  	 9<)!)%'".4&<&C&C&E%F".4&)*@&A&H&H&J%K" 2& &0S%9C!szz|K&" & (>$FH?A&s   -A Dc                     | j                   S N)r4   r;   s    r>   r%   zCookieJar.quote_cookiey   s    !!!    	file_pathc                     t        j                  |      }|j                  d      5 }t        j                  | j
                  |t        j                         d d d        y # 1 sw Y   y xY w)Nwbmode)pathlibPathopenpickledumpr.   HIGHEST_PROTOCOLr;   rC   fs      r>   savezCookieJar.save}   sS    LL+	^^^& 	C!KKq&*A*AB	C 	C 	Cs   0A!!A*c                     t        j                  |      }|j                  d      5 }t        j                  |      | _        d d d        y # 1 sw Y   y xY w)NrbrF   )rH   rI   rJ   rK   loadr.   rN   s      r>   rS   zCookieJar.load   sD    LL+	^^^& 	+!"KKNDM	+ 	+ 	+s   AA	predicatec                 d   || j                   j                          | j                  j                          | j                  j                          | j                  j                          | j
                  j                          y t        j                         }| j                  j                         D cg c]O  \  \  }}}|j                         D ]4  \  }}|||fx}| j
                  v r| j
                  |   |k  s ||      r|6 Q }	}}}}}|	r| j                  |	       y y c c}}}}}w r@   )	r9   clearr.   r0   r2   r:   timeitems_delete_cookies)
r;   rT   nowdomainpathcookienamemorselkeyto_dels
             r>   rV   zCookieJar.clear   s   ##%MM!$$&##))+##%iik +/--*=*=*?	
 	
& &	
 ft,,1B1BB%%c*c1  	
	
 	
   ( 	
s   :AD)r[   c                 2      j                   fd       y )Nc                 .    j                  | d         S )Nr[   )_is_domain_match)xr[   r;   s    r>   <lambda>z(CookieJar.clear_domain.<locals>.<lambda>   s    T2261X;G rB   )rV   r;   r[   s   ``r>   clear_domainzCookieJar.clear_domain   s    

GHrB   c              #      K   | j                          | j                  j                         D ]  }|j                         E d {     y 7 wr@   )_do_expirationr.   values)r;   vals     r>   __iter__zCookieJar.__iter__   s@     =='') 	$Czz|##	$#s   AAAAc                 V    t        d | j                  j                         D              S )zReturn number of cookies.

        This function does not iterate self to avoid unnecessary expiration
        checks.
        c              3   N   K   | ]  }t        |j                                 y wr@   )lenrk   ).0r]   s     r>   	<genexpr>z$CookieJar.__len__.<locals>.<genexpr>   s     MF3v}}'Ms   #%)sumr.   rk   rA   s    r>   __len__zCookieJar.__len__   s"     Mdmm6J6J6LMMMrB   c                    t        | j                        x}sy|t        kD  r}|t        | j                        dz  kD  rb| j                  D cg c](  }| j                  j	                  |d         |d   k(  r|* c}| _        t        j                  | j                         t        j                         }g }| j                  rs| j                  d   \  }}||kD  rn[t        j                  | j                         | j                  j	                  |      |k(  r|j                  |       | j                  rs|r| j                  |       yyc c}w )zRemove expired cookies.N   r   r   )rp   r9    _MIN_SCHEDULED_COOKIE_EXPIRATIONr:   getheapqheapifyrW   heappopappendrY   )r;   expire_heap_lenentryrZ   ra   when
cookie_keys          r>   rj   zCookieJar._do_expiration   s/   #&t'8'8#999 >>#d&7&7"81"<< "..!$$((q2eAh> !D
 MM$++,iik-/#003D*czMM$++,
   $$Z0D8j)    ( -!s   -E	ra   c                    |D ]  \  }}}| j                   j                  ||f       | j                  ||f   j                  |d        | j                  ||f   j                  |d        | j
                  j                  |||fd         y r@   )r2   discardr.   popr0   r:   )r;   ra   r[   r\   r^   s        r>   rY   zCookieJar._delete_cookies   s    "( 	>FD$##++VTN;MM64.)--dD9~.224>!!64"6=		>rB   r   r\   r^   c                     |||f}| j                   j                  |      |k(  ry t        j                  | j                  ||f       || j                   |<   y r@   )r:   rx   ry   heappushr9   )r;   r   r[   r\   r^   r   s         r>   _expire_cookiezCookieJar._expire_cookie   sS    dD)
  ,4t((4*<=(,*%rB   cookiesresponse_urlc                 t   |j                   }| j                  st        |      ryt        |t              r|j                         }|D ]  \  }}t        |t              st               }|||<   ||   }|d   }|r|d   dk(  rd}|d= |s&|$| j                  j                  ||f       |x}|d<   |r|d   dk(  r
|dd }||d<   |r| j                  ||      s|d   }|r|d   d	k7  r<|j                  }|j                  d	      sd	}nd	|d|j                  d	       z   }||d<   |j                  d	      }|d
   x}	rL	 t        |	      }
t!        t#        j"                         |
z   | j$                        }| j'                  ||||       n4|d   x}r-| j+                  |      x}r| j'                  ||||       nd|d<   ||f}| j,                  |   j/                  |      |k7  s|| j,                  |   |<   | j0                  |   j3                  |d        | j5                          y# t(        $ r d|d
<   Y |w xY w)zUpdate cookies.Nr[   r#   . r   r   r\   /zmax-ageexpires)raw_hostr3   r   r5   r   rX   r   r   r2   addrd   r\   
startswithrfindrstripintminrW   MAX_TIMEr   
ValueError_parse_dater.   rx   r0   r   rj   )r;   r   r   hostnamer^   r]   tmpr[   r\   max_agedelta_secondsmax_age_expirationr   expire_timer`   s                  r>   update_cookieszCookieJar.update_cookies   ss   ((||h 7gw'mmoG# ;	8LD&ff-"n"D	TH%F &*+8$h2 ''++Xt,<=,44)&)s*#)x  5 5fh G&>D47c>#((s+D a$**S/!::D!%v;;s#D ++w++$'LM),TYY[=-H$--)X&''(:FD$O #9---"&"2"27";;;;''VT4H(*F9%4.C}}S!%%d+v5 ,2c"4(""3'++D$7w;	8z 	! " +(*F9%+s   ;A
H&&H76H7request_urlBaseCookie[str]c                 "   t               }| j                  s|S | j                          | j                  s|S t        |      t        ur3t        j                  dt        |       t        d       t	        |      }|j                  xs d}|j                  dv}|rV| j                  rJt	               }t        j                  t              5  |j                         }ddd       || j                  v}d}| j                  |   j                         D ]  }|j                   | j"                  |   v r*| j"                  |   |j                      ||j                   <   H| j%                  |      }|| j"                  |   |j                   <   |||j                   <    t'        |      r| j(                  s|S |f}	n2t+        j,                  t/        |j1                  d            t2              }	t+        j,                  |j4                  j1                  d	      t6              }
t+        j8                  |	|
      }t;        |j4                        }|D ]  }|| j                  vr| j                  |   j=                         D ]  \  }}|d
   }||f| j>                  v r||k7  r!t;        |d         |kD  r3|r|d   r;|| j"                  |   v r| j"                  |   |   ||<   b| j%                  |      }|| j"                  |   |<   |||<     |S # 1 sw Y   +xY w)z8Returns this jar's cookies filtered by their attributes.zQfilter_cookies expects yarl.URL instances only,and will stop working in 4.x, got rv   )
stacklevelr   )httpswssN)r   r   r   r   r[   r\   secure) r   r.   rj   typer   warningswarnDeprecationWarningr   schemer8   
contextlibsuppressr   r6   rk   r`   r0   _build_morselr   r3   	itertools
accumulatereversedsplit_FORMAT_DOMAIN_REVERSEDr\   _FORMAT_PATHproductrp   rX   r2   )r;   r   filteredr   is_not_securerequest_originr`   cmrsl_valdomainspathspairspath_lenpr^   r]   r[   s                    r>   filter_cookieszCookieJar.filter_cookies2  s   
 %/L}}O}}OC'MM559+5F4GI"	 k*K''-2#**2BBT99 UN$$Z0 6!,!3!3!56*$2N2NNM s#**, 		'Auu**3//"&"4"4S"9!%%"@ ))!,H-5Ds#AEE*&HQUUO		' "<<&.[G  **,-/FG
 $$[%5%5%;%;C%@,O!!'51{''( 	*A% $a 0 6 6 8 *f)D>T%<%<<8AS vf~&1 VH%5 4--a00%)%7%7%:4%@HTN  --f5.6""1%d+!)+*	*4 y6 6s   
LLr]   c                 <   | j                   r)|j                  r|j                  d   dk(  rt        |      S t               }| j                   r#t        j                  |j                        \  }}n|j                  x}}|j                  |j                  ||d       |S )z<Build a morsel for sending, respecting quote_cookie setting.r   ")r`   valuecoded_value)	r4   r   r   r   _SIMPLE_COOKIEvalue_encoder   __setstate__r`   )r;   r]   r_   r   r   s        r>   r   zCookieJar._build_morsel  s    &"4"49K9KA9NRU9U3F;;$h!/!<!<V\\!JE;"(,,.K%
 	FJJ{[\rB   r   c                     || k(  ry|j                  |       sy|dt        |         }|j                  d      syt        |       S )z0Implements domain matching adhering to RFC 6265.TFNr   )endswithrp   r   )r[   r   non_matchings      r>   rd   zCookieJar._is_domain_match  sQ     v  (3v;,/$$S) ***rB   date_strc                 X   |syd}d}d}d}dx}x}}d}	d}
d}| j                   j                  |      D ]  }|j                  d      }|s;| j                  j	                  |      }|rd}d |j                         D        \  }}}R|s9| j                  j	                  |      }|rd}t        |j                               }	|s:| j                  j	                  |      }|rd}|j                  J |j                  }
|r| j                  j	                  |      }|sd}t        |j                               } d|cxk  rdk  r	n n|d	z  }nd|cxk  rd
k  rn n|dz  }d||||fv ryd|	cxk  rdk  sy y|dk  s|dkD  s
|dkD  s|dkD  ryt        j                  ||
|	|||dddf	      S )z4Implements date string parsing adhering to RFC 6265.NFr   tokenTc              3   2   K   | ]  }t        |        y wr@   )r   )rq   ss     r>   rr   z(CookieJar._parse_date.<locals>.<genexpr>  s     +PqCF+Ps   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   zCookieJar._parse_date  s    
	
!"""v--66x@ 	3K%%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=	3@ DLD$_"_DLDYZDDC~2~ $;$)v{frkeS$BPRSTTrB   r@   r(   zIterator[Morsel[str]])r(   N)?__name__
__module____qualname____doc__recompiler   r   r   Ir   r   r   datetimemaxreplacetimezoneutc	timestampr   r   r   rW   gmtimeOSErrorr   OverflowErrorSUB_MAX_TIMEboolr   r   r   r   asyncioAbstractEventLoopr-   propertyr%   r   rP   rS   r   rV   r7   rh   rm   rt   rj   r   rY   floatr   r   r   r   r   r   r   staticmethodrd   classmethodr   __classcell__r=   s   @r>   r   r   3   s   9RZZ	>N
 "rzz"BC%2::l3BJJQ
M
 2::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 "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 V# V:K VpF3K F3K   + + + + + =U3 =U8C= =U =U}
 Z  K #8??#IJ s   ?"F? ?G$G$#G$r   c                        e Zd ZdZdddeej                     ddf fdZddZde	fdZ
edefd	       Zdd
ee   ddfdZdeddfdZ e       fdededdfdZdeddfdZ xZS )r   zxImplements a dummy cookie storage.

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

    Nr+   r'   r(   c                &    t         |   |       y r*   )r,   r-   )r;   r'   r=   s     r>   r-   zDummyCookieJar.__init__  s    d#rB   c              #      K   y wr@    rA   s    r>   rm   zDummyCookieJar.__iter__  s	     s   c                      y)Nr   r  rA   s    r>   rt   zDummyCookieJar.__len__  s    rB   c                      y)NTr  rA   s    r>   r%   zDummyCookieJar.quote_cookie  s    rB   rT   c                      y r@   r  )r;   rT   s     r>   rV   zDummyCookieJar.clear       rB   r[   c                      y r@   r  rg   s     r>   rh   zDummyCookieJar.clear_domain  r  rB   r   r   c                      y r@   r  )r;   r   r   s      r>   r   zDummyCookieJar.update_cookies  r  rB   r   r   c                     t               S r@   )r   )r;   r   s     r>   r   zDummyCookieJar.filter_cookies	  s
    ~rB   r   r@   )r   r   r   r   r   r  r  r-   rm   r   rt   r  r   r%   r   rV   r7   rh   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 rB   r   )5r  r   r   r   ry   r   osrH   rK   r   rW   r   collectionsr   collections.abcr   http.cookiesr   r   r   typingr   r	   r
   r   r   r   r   r   r   yarlr   _cookie_helpersr   abcr   r   helpersr   typedefsr   r   r   __all__r7   
CookieItemformatr   r   rw   r   r   r   r  rB   r>   <module>r!     s          	   	   # # 9 9
 
 
  = 8 " 6 6
) 3%&
 ~~#** 
 $'  uU! uUp& rB   