
    %h                       S SK Jr  S SKrS SKrS SKJr  SSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SS	KJr  SS
KJr  \R                  " S5      r         S                   SS jjr\R                  " S\R"                  \R$                  -  S9r\R                  " S5      rSS jr  S     SS jjrSSKJr  g)    )annotationsN)datetime   )
_dt_as_utc)generate_etag)
parse_date)parse_etags)parse_if_range_header)unquote_etagz&([Ww]/)?(?:"(.*?)"|(.*?))(?:\s*,\s*|$)c	                   Uc  Ub  [        U5      nOUb  [        S5      eSn	[        U[        5      (       a  [	        U5      nUb  [        UR                  SS95      nSn
U(       d  U b  [        U5      n
U
b  U
R                  b  U
R                  nO[	        U5      nU(       a  U(       a  X{::  a  Sn	U(       a  [        U5      u  p\U
b8  U
R                  b+  [        U
R                  5      R                  U5      n	U	(       + $ [        U5      nU(       a  UR                  U5      n	[        U5      nU(       a  UR                  U5      (       + n	U	(       + $ )a  Convenience method for conditional requests.
:param http_range: Range HTTP header
:param http_if_range: If-Range HTTP header
:param http_if_modified_since: If-Modified-Since HTTP header
:param http_if_none_match: If-None-Match HTTP header
:param http_if_match: If-Match HTTP header
:param etag: the etag for the response for comparison.
:param data: or alternatively the data of the response to automatically
             generate an etag using :func:`generate_etag`.
:param last_modified: an optional date of the last modification.
:param ignore_if_range: If `False`, `If-Range` header will be taken into
                        account.
:return: `True` if the resource was modified, otherwise `False`.

.. versionadded:: 2.2
Nzboth data and etag givenFr   )microsecondT)r   	TypeError
isinstancestrr   r   replacer
   dater   etagr	   containscontains_weak	is_strong)
http_rangehttp_if_rangehttp_if_modified_sincehttp_if_none_matchhttp_if_matchr   datalast_modifiedignore_if_range
unmodifiedif_rangemodified_since_if_none_matchif_matchs                  L/var/www/auris/envauris/lib/python3.13/site-packages/werkzeug/sansio/http.pyis_resource_modifiedr&      s>   6 |(T"		233J-%%"=1  "=#8#8Q#8#GHHz5 )7 9*2--#$:;-M,K
t$HMM$=$X]]3<<TBJ  > ((:;M +88>

 #=1H!)!3!3D!99
>    zr
    ([^=;]*)
    (?:\s*=\s*
      (
        "(?:[^\\"]|\\.)*"
      |
        .*?
      )
    )?
    \s*;\s*
    )flagss   \\([0-3][0-7]{2}|.)c                ~    U R                  S5      n[        U5      S:X  a  U$ [        US5      R                  SS5      $ )N      big)grouplenintto_bytes)mvs     r%   _cookie_unslash_replacer3   q   s8    	
A
1v{q!9a''r'   c                   Uc%  [         R                  " S[        R                  5      nU (       d  U" 5       $ U  S3n / n[        R                  U 5       H  u  p4UR                  5       nUR                  5       nU(       d  M.  [        U5      S:  aN  US   US   s=:X  a  S:X  a;  O  O8[        R                  [        USS R                  5       5      R                  SS	9nUR                  X445        M     U" U5      $ )
a  Parse a cookie from a string.

The same key can be provided multiple times, the values are stored
in-order. The default :class:`MultiDict` will have the first value
first, and all values can be retrieved with
:meth:`MultiDict.getlist`.

:param cookie: The cookie header as a string.
:param cls: A dict-like class to store the parsed cookies in.
    Defaults to :class:`MultiDict`.

.. versionchanged:: 3.0
    Passing bytes, and the ``charset`` and ``errors`` parameters, were removed.

.. versionadded:: 2.2
ztype[ds.MultiDict[str, str]];r   r   "r*   r   )errors)tcastds	MultiDict
_cookie_refindallstripr.   _cookie_unslash_resubr3   encodedecodeappend)cookieclsoutckcvs        r%   parse_cookierJ   z   s    ( {ff3R\\Buxq\F
C$$V,XXZXXZr7a<BqERV2s2#'''Ab):fIf&  	

B8 - s8Or'   )datastructures)	NNNNNNNNT)r   
str | Noner   rL   r   rL   r   rL   r   rL   r   rL   r   zbytes | Noner   zdatetime | str | Noner   boolreturnrM   )r1   zt.Match[bytes]rN   bytes)NN)rE   rL   rF   z#type[ds.MultiDict[str, str]] | NonerN   zds.MultiDict[str, str])
__future__r   retypingr9   r   	_internalr   httpr   r   r	   r
   r   compile_etag_rer&   ASCIIVERBOSEr=   r@   r3   rJ    rK   r;    r'   r%   <module>r[      s+   " 	   "     ( ::?@ " $)-%) $+/ LLL 'L #	L
 L L L )L L 
L^ ZZ
 ((RZZ

 ZZ 78 ( /3,,	,, ,` $r'   