§
    ¸)ýfP  ã                   óÈ  — d Z ddlZddlZddlZg d¢Zdj        Zdj        Zdj        Z G d„ de	¦  «        Z
ej        ej        z   d	z   Zed
z   Zd„  e ed¦  «        ¦  «         e eee¦  «        ¦  «        z
  D ¦   «         Ze                      ed¦  «        d ed¦  «        di¦  «          ej        d ej        e¦  «        z  ¦  «        j        Zd„ Z ej        d¦  «        Z ej        d¦  «        Zd„ Zg d¢Zg d¢Zdeefd„Z G d„ de ¦  «        Z!dZ"e"dz   Z# ej        de"z   dz   e#z   dz   ej$        ej%        z  ¦  «        Z& G d „ d!e ¦  «        Z' G d"„ d#e'¦  «        Z(dS )$a.
  
Here's a sample session to show how to use this module.
At the moment, this is the only documentation.

The Basics
----------

Importing is easy...

   >>> from http import cookies

Most of the time you start by creating a cookie.

   >>> C = cookies.SimpleCookie()

Once you've created your Cookie, you can add values just as if it were
a dictionary.

   >>> C = cookies.SimpleCookie()
   >>> C["fig"] = "newton"
   >>> C["sugar"] = "wafer"
   >>> C.output()
   'Set-Cookie: fig=newton\r\nSet-Cookie: sugar=wafer'

Notice that the printable representation of a Cookie is the
appropriate format for a Set-Cookie: header.  This is the
default behavior.  You can change the header and printed
attributes by using the .output() function

   >>> C = cookies.SimpleCookie()
   >>> C["rocky"] = "road"
   >>> C["rocky"]["path"] = "/cookie"
   >>> print(C.output(header="Cookie:"))
   Cookie: rocky=road; Path=/cookie
   >>> print(C.output(attrs=[], header="Cookie:"))
   Cookie: rocky=road

The load() method of a Cookie extracts cookies from a string.  In a
CGI script, you would use this method to extract the cookies from the
HTTP_COOKIE environment variable.

   >>> C = cookies.SimpleCookie()
   >>> C.load("chips=ahoy; vienna=finger")
   >>> C.output()
   'Set-Cookie: chips=ahoy\r\nSet-Cookie: vienna=finger'

The load() method is darn-tootin smart about identifying cookies
within a string.  Escaped quotation marks, nested semicolons, and other
such trickeries do not confuse it.

   >>> C = cookies.SimpleCookie()
   >>> C.load('keebler="E=everybody; L=\\"Loves\\"; fudge=\\012;";')
   >>> print(C)
   Set-Cookie: keebler="E=everybody; L=\"Loves\"; fudge=\012;"

Each element of the Cookie also supports all of the RFC 2109
Cookie attributes.  Here's an example which sets the Path
attribute.

   >>> C = cookies.SimpleCookie()
   >>> C["oreo"] = "doublestuff"
   >>> C["oreo"]["path"] = "/"
   >>> print(C)
   Set-Cookie: oreo=doublestuff; Path=/

Each dictionary element has a 'value' attribute, which gives you
back the value associated with the key.

   >>> C = cookies.SimpleCookie()
   >>> C["twix"] = "none for you"
   >>> C["twix"].value
   'none for you'

The SimpleCookie expects that all values should be standard strings.
Just to be sure, SimpleCookie invokes the str() builtin to convert
the value to a string, when the values are set dictionary-style.

   >>> C = cookies.SimpleCookie()
   >>> C["number"] = 7
   >>> C["string"] = "seven"
   >>> C["number"].value
   '7'
   >>> C["string"].value
   'seven'
   >>> C.output()
   'Set-Cookie: number=7\r\nSet-Cookie: string=seven'

Finis.
é    N)ÚCookieErrorÚ
BaseCookieÚSimpleCookieÚ z; ú c                   ó   — e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© ó    úX/home/blender/git/blender-v430/install_release/4.3/python/lib/python3.11/http/cookies.pyr   r   ‘   s   € € € € € Ø€Dr   r   z!#$%&'*+-.^_`|~:z ()/<=>?@[]{}c                 ó   — i | ]}|d |z  “Œ	S )z\%03or   )Ú.0Úns     r   ú
<dictcomp>r   ¥   s4   € ð Jð Jð JØð �(˜Q‘,ð Jð Jð Jr   é   ú"ú\"ú\z\\z[%s]+c                 óh   — | �t          | ¦  «        r| S d|                      t          ¦  «        z   dz   S )zãQuote a string for use in a cookie header.

    If the string does not need to be double-quoted, then just return the
    string.  Otherwise, surround the string in doublequotes and quote
    (with a \) special characters.
    Nr   )Ú_is_legal_keyÚ	translateÚ_Translator©Ústrs    r   Ú_quoter   ®   s6   € ð €{•m CÑ(Ô(€{Øˆ
à�S—]’]¥;Ñ/Ô/Ñ/°#Ñ5Ð5r   z\\[0-3][0-7][0-7]z[\\].c           
      ój  — | �t          | ¦  «        dk     r| S | d         dk    s| d         dk    r| S | dd…         } d}t          | ¦  «        }g }d|cxk    r|k     �rIn �nEt                               | |¦  «        }t                               | |¦  «        }|s |s|                     | |d …         ¦  «         nídx}}|r|                     d¦  «        }|r|                     d¦  «        }|rI|r||k     rA|                     | ||…         ¦  «         |                     | |dz            ¦  «         |dz   }n`|                     | ||…         ¦  «         |                     t          t          | |dz   |dz   …         d¦  «        ¦  «        ¦  «         |dz   }d|cxk    r|k     �°Cn t          |¦  «        S )Né   r   r   éÿÿÿÿé   é   é   )	ÚlenÚ
_OctalPattÚsearchÚ
_QuotePattÚappendÚstartÚchrÚintÚ	_nulljoin)r   Úir   ÚresÚo_matchÚq_matchÚjÚks           r   Ú_unquoter3   ¾   sÞ  € ð €{•c˜#‘h”h ’l�lØˆ
Ø
ˆ1„v�‚}€}˜˜Bœ 3š˜Øˆ
ð ˆa�ˆdŒ)€Cð 	
€AÝˆC‰Œ€AØ
€CØ
ˆqˆ*ˆ*Š*ˆ*�1Š*‰*ˆ*ˆ*‰*Ý×#Ò# C¨Ñ+Ô+ˆÝ×#Ò# C¨Ñ+Ô+ˆØð 	˜wð 	Ø�JŠJ�s˜1˜2˜2”wÑÔÐØàˆ
ˆˆAØð 	!Ø—’˜aÑ Ô ˆAØð 	!Ø—’˜aÑ Ô ˆAØð 	˜Gð 	 q¨1¢u uØ�JŠJ�s˜1˜Q˜3”xÑ Ô Ð Ø�JŠJ�s˜1˜Q™3”xÑ Ô Ð Ø�A‘ˆAˆAà�JŠJ�s˜1˜Q˜3”xÑ Ô Ð Ø�JŠJ•s�3˜s 1 Q¡3 q¨¡s 7œ|¨QÑ/Ô/Ñ0Ô0Ñ1Ô1Ð1Ø�A‘ˆAð' ˆqˆ*ˆ*Š*ˆ*�1Š*‰*ˆ*ˆ*õ( �S‰>Œ>Ðr   )ÚMonÚTueÚWedÚThuÚFriÚSatÚSun)NÚJanÚFebÚMarÚAprÚMayÚJunÚJulÚAugÚSepÚOctÚNovÚDecc           	      ó†   — ddl m}m }  |¦   «         } ||| z   ¦  «        \	  }}}}	}
}}}}d||         |||         ||	|
|fz  S )Nr   )ÚgmtimeÚtimez#%s, %02d %3s %4d %02d:%02d:%02d GMT)rI   rH   )ÚfutureÚweekdaynameÚ	monthnamerH   rI   ÚnowÚyearÚmonthÚdayÚhhÚmmÚssÚwdÚyÚzs                  r   Ú_getdaterW   ö   su   € Ø!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ø
ˆ$‰&Œ&€CØ-3¨V°C¸&±LÑ-AÔ-AÑ*€Dˆ%��b˜"˜b " a¨Ø0Ø˜ŒO˜S )¨EÔ"2°D¸"¸bÀ"ÐEñFð Fr   c            
       ó  — e Zd ZdZdddddddd	d
dœ	ZddhZd„ Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
d„ Zd!d„Zd„ Zej        Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd"d„ZeZd„ Zd!d„Zd!d „Z eej        ¦  «        ZdS )#ÚMorselaC  A class to hold ONE (key, value) pair.

    In a cookie, each such pair may have several attributes, so this class is
    used to keep the attributes associated with the appropriate key,value pair.
    This class also includes a coded_value attribute, which is used to hold
    the network representation of the value.
    ÚexpiresÚPathÚCommentÚDomainzMax-AgeÚSecureÚHttpOnlyÚVersionÚSameSite)	rZ   ÚpathÚcommentÚdomainúmax-ageÚsecureÚhttponlyÚversionÚsamesiterf   rg   c                 ó|   — d x| _         x| _        | _        | j        D ]}t                               | |d¦  «         Œd S )Nr   )Ú_keyÚ_valueÚ_coded_valueÚ	_reservedÚdictÚ__setitem__)ÚselfÚkeys     r   Ú__init__zMorsel.__init__!  sP   € à6:Ð:ˆŒ	Ð:�D”K $Ô"3ð ”>ð 	,ð 	,ˆCÝ×Ò˜T 3¨Ñ+Ô+Ð+Ð+ð	,ð 	,r   c                 ó   — | j         S ©N)rk   ©rq   s    r   rr   z
Morsel.key)  s
   € àŒyÐr   c                 ó   — | j         S ru   )rl   rv   s    r   ÚvaluezMorsel.value-  s
   € àŒ{Ðr   c                 ó   — | j         S ru   )rm   rv   s    r   Úcoded_valuezMorsel.coded_value1  s   € àÔ Ð r   c                 óœ   — |                      ¦   «         }|| j        vrt          d|›�¦  «        ‚t                               | ||¦  «         d S ©NzInvalid attribute )Úlowerrn   r   ro   rp   )rq   ÚKÚVs      r   rp   zMorsel.__setitem__5  sO   € Ø�GŠG‰IŒIˆØ�D”NÐ"Ð"Ý�+¸¸Ð;Ñ<Ô<Ð<Ý×Ò˜˜q !Ñ$Ô$Ð$Ð$Ð$r   Nc                 ó˜   — |                      ¦   «         }|| j        vrt          d|›�¦  «        ‚t                               | ||¦  «        S r|   )r}   rn   r   ro   Ú
setdefault)rq   rr   Úvals      r   r�   zMorsel.setdefault;  sG   € Ø�iŠi‰kŒkˆØ�d”nÐ$Ð$Ý�+¸¸Ð=Ñ>Ô>Ð>Ý�Š˜t S¨#Ñ.Ô.Ð.r   c                 óÐ   — t          |t          ¦  «        st          S t                               | |¦  «        o/| j        |j        k    o| j        |j        k    o| j        |j        k    S ru   )Ú
isinstancerY   ÚNotImplementedro   Ú__eq__rl   rk   rm   ©rq   Úmorsels     r   r†   zMorsel.__eq__A  sg   € Ý˜&¥&Ñ)Ô)ð 	"Ý!Ð!Ý—’˜D &Ñ)Ô)ð 9Ø”˜vœ}Ò,ð9à”	˜Vœ[Ò(ð9ð Ô! VÔ%8Ò8ð	:r   c                 ó–   — t          ¦   «         }t                               || ¦  «         |j                             | j        ¦  «         |S ru   )rY   ro   ÚupdateÚ__dict__r‡   s     r   ÚcopyzMorsel.copyK  s<   € Ý‘”ˆÝ�Š�F˜DÑ!Ô!Ð!ØŒ×Ò˜tœ}Ñ-Ô-Ð-Øˆr   c                 óö   — i }t          |¦  «                             ¦   «         D ]9\  }}|                     ¦   «         }|| j        vrt	          d|›�¦  «        ‚|||<   Œ:t                                | |¦  «         d S r|   )ro   Úitemsr}   rn   r   rŠ   )rq   ÚvaluesÚdatarr   r‚   s        r   rŠ   zMorsel.updateQ  s€   € ØˆÝ˜V™œ×*Ò*Ñ,Ô,ð 	ð 	‰HˆC�Ø—)’)‘+”+ˆCØ˜$œ.Ð(Ð(Ý!�k¸C¸CÐ"AÑBÔBÐBØˆD�‰IˆIÝ�Š�D˜$ÑÔÐÐÐr   c                 ó8   — |                      ¦   «         | j        v S ru   )r}   rn   )rq   r~   s     r   ÚisReservedKeyzMorsel.isReservedKeyZ  s   € Ø�wŠw‰yŒy˜DœNÐ*Ð*r   c                 óÌ   — |                      ¦   «         | j        v rt          d|›�¦  «        ‚t          |¦  «        st          d|›�¦  «        ‚|| _        || _        || _        d S )NzAttempt to set a reserved key zIllegal key )r}   rn   r   r   rk   rl   rm   )rq   rr   r‚   Ú	coded_vals       r   Úsetz
Morsel.set]  so   € Ø�9Š9‰;Œ;˜$œ.Ð(Ð(Ý�+ÀCÀCÐIÑJÔJÐJÝ˜SÑ!Ô!ð 	9Ý�+°#°#Ð7Ñ8Ô8Ð8ð ˆŒ	ØˆŒØ%ˆÔÐÐr   c                 ó,   — | j         | j        | j        dœS )N)rr   rx   rz   ©rk   rl   rm   rv   s    r   Ú__getstate__zMorsel.__getstate__h  s!   € à”9Ø”[ØÔ,ð
ð 
ð 	
r   c                 óT   — |d         | _         |d         | _        |d         | _        d S )Nrr   rx   rz   r—   )rq   Ústates     r   Ú__setstate__zMorsel.__setstate__o  s+   € Ø˜%”LˆŒ	Ø˜G”nˆŒØ! -Ô0ˆÔÐÐr   úSet-Cookie:c                 ó6   — |›d|                       |¦  «        ›�S )Nr   )ÚOutputString)rq   ÚattrsÚheaders      r   ÚoutputzMorsel.outputt  s"   € Ø ˜&˜& $×"3Ò"3°EÑ":Ô":Ð":Ð;Ð;r   c                 óL   — d| j         j        ›d|                      ¦   «         ›d�S )Nú<ú: ú>)Ú	__class__r	   rž   rv   s    r   Ú__repr__zMorsel.__repr__y  s,   € € Ø!œ^Ô4Ð4Ð4°d×6GÒ6GÑ6IÔ6IÐ6IÐ6IÐJÐJr   c                 óZ   — d|                       |¦  «                             dd¦  «        z  S )Nz—
        <script type="text/javascript">
        <!-- begin hiding
        document.cookie = "%s";
        // end hiding -->
        </script>
        r   r   )rž   Úreplace)rq   rŸ   s     r   Ú	js_outputzMorsel.js_output|  s4   € ðð × Ò  Ñ'Ô'×/Ò/°°UÑ;Ô;ñ=ð 	=r   c                 óú  — g }|j         } || j        ›d| j        ›�¦  «         |€| j        }t	          |                      ¦   «         ¦  «        }|D �]\  }}|dk    rŒ||vrŒ|dk    r>t          |t          ¦  «        r) || j        |         ›dt          |¦  «        ›�¦  «         ŒV|dk    r1t          |t          ¦  «        r |d| j        |         |fz  ¦  «         Œ�|dk    r>t          |t          ¦  «        r) || j        |         ›dt          |¦  «        ›�¦  «         ŒÑ|| j        v r'|r# |t          | j        |         ¦  «        ¦  «         �Œ || j        |         ›d|›�¦  «         �Œt          |¦  «        S )Nú=r   rZ   re   z%s=%drc   )r(   rr   rz   rn   ÚsortedrŽ   r„   r+   rW   r   r   Ú_flagsÚ_semispacejoin)rq   rŸ   Úresultr(   rŽ   rr   rx   s          r   rž   zMorsel.OutputString†  s»  € ð ˆØ”ˆð 	ˆ˜$œ(˜(˜( DÔ$4Ð$4Ð5Ñ6Ô6Ð6ð ˆ=Ø”NˆEÝ�t—z’z‘|”|Ñ$Ô$ˆØð 	?ñ 	?‰JˆC�Ø˜Š{ˆ{ØØ˜%ÐÐØØ�iÒÐ¥J¨uµcÑ$:Ô$:ÐØ� $¤.°Ô"5Ð"5Ð"5µxÀ±´°ÐGÑHÔHÐHÐHØ˜	Ò!Ð!¥j°½Ñ&<Ô&<Ð!Ø��w $¤.°Ô"5°uÐ!=Ñ=Ñ>Ô>Ð>Ð>Ø˜	Ò!Ð!¥j°½Ñ&<Ô&<Ð!Ø� $¤.°Ô"5Ð"5Ð"5µv¸e±}´}°}ÐEÑFÔFÐFÐFØ˜œÐ#Ð#Øð 5Ø�F�3˜tœ~¨cÔ2Ñ3Ô3Ñ4Ô4Ð4ùà� $¤.°Ô"5Ð"5Ð"5°u°uÐ=Ñ>Ô>Ð>Ñ>õ ˜fÑ%Ô%Ð%r   ru   )Nrœ   )r	   r
   r   Ú__doc__rn   r®   rs   Úpropertyrr   rx   rz   rp   r�   r†   ÚobjectÚ__ne__rŒ   rŠ   r’   r•   r˜   r›   r¡   Ú__str__r§   rª   rž   ÚclassmethodÚtypesÚGenericAliasÚ__class_getitem__r   r   r   rY   rY   þ   s¯  € € € € € ðð ð* ØØØØØØØØð
ð 
€Ið ˜
Ð#€Fð,ð ,ð ,ð ðð ñ „Xðð ðð ñ „Xðð ð!ð !ñ „Xð!ð%ð %ð %ð/ð /ð /ð /ð:ð :ð :ð Œ]€Fðð ð ð ð  ð  ð+ð +ð +ð	&ð 	&ð 	&ð
ð 
ð 
ð1ð 1ð 1ð
<ð <ð <ð <ð €GðKð Kð Kð=ð =ð =ð =ð&ð &ð &ð &ðB $˜ EÔ$6Ñ7Ô7ÐÐÐr   rY   z,\w\d!#%&'~_`><@,:/\$\*\+\-\.\^\|\)\(\?\}\{\=z\[\]zŒ
    \s*                            # Optional whitespace at start of cookie
    (?P<key>                       # Start of group 'key'
    [a	  ]+?   # Any word of at least one letter
    )                              # End of group 'key'
    (                              # Optional group: there may not be a value.
    \s*=\s*                          # Equal Sign
    (?P<val>                         # Start of group 'val'
    "(?:[^\\"]|\\.)*"                  # Any doublequoted string
    |                                  # or
    \w{3},\s[\w\d\s-]{9,11}\s[\d:]{8}\sGMT  # Special case for "expires" attr
    |                                  # or
    [a-  ]*      # Any word or empty string
    )                                # End of group 'val'
    )?                             # End of optional value group
    \s*                            # Any number of spaces.
    (\s+|;|$)                      # Ending either at space, semicolon, or EOS.
    c                   ó\   — e Zd ZdZd„ Zd„ Zdd„Zd„ Zd„ Zdd
„Z	e	Z
d„ Zdd„Zd„ Zefd„ZdS )r   z'A container class for a set of Morsels.c                 ó
   — ||fS )a
  real_value, coded_value = value_decode(STRING)
        Called prior to setting a cookie's value from the network
        representation.  The VALUE is the value read from HTTP
        header.
        Override this function to modify the behavior of cookies.
        r   ©rq   r‚   s     r   Úvalue_decodezBaseCookie.value_decodeÏ  s   € ð �Cˆxˆr   c                 ó(   — t          |¦  «        }||fS )zýreal_value, coded_value = value_encode(VALUE)
        Called prior to setting a cookie's value from the dictionary
        representation.  The VALUE is the value being assigned.
        Override this function to modify the behavior of cookies.
        r   ©rq   r‚   Ústrvals      r   Úvalue_encodezBaseCookie.value_encodeØ  s   € õ �S‘”ˆØ�vˆ~Ðr   Nc                 ó8   — |r|                       |¦  «         d S d S ru   )Úload)rq   Úinputs     r   rs   zBaseCookie.__init__á  s,   € Øð 	Ø�IŠI�eÑÔÐÐÐð	ð 	r   c                 ó°   — |                       |t          ¦   «         ¦  «        }|                     |||¦  «         t                               | ||¦  «         dS )z+Private method for setting a cookie's valueN)ÚgetrY   r•   ro   rp   )rq   rr   Ú
real_valuerz   ÚMs        r   Ú__setzBaseCookie.__setå  sM   € à�HŠH�S�&™(œ(Ñ#Ô#ˆØ	�Šˆc�:˜{Ñ+Ô+Ð+Ý×Ò˜˜s AÑ&Ô&Ð&Ð&Ð&r   c                 óÊ   — t          |t          ¦  «        rt                               | ||¦  «         dS |                      |¦  «        \  }}|                      |||¦  «         dS )zDictionary style assignment.N)r„   rY   ro   rp   rÁ   Ú_BaseCookie__set)rq   rr   rx   ÚrvalÚcvals        r   rp   zBaseCookie.__setitem__ë  se   € å�e�VÑ$Ô$ð 	(å×Ò˜T 3¨Ñ.Ô.Ð.Ð.Ð.à×*Ò*¨5Ñ1Ô1‰JˆD�$Ø�JŠJ�s˜D $Ñ'Ô'Ð'Ð'Ð'r   rœ   ú
c                 óÔ   — g }t          |                      ¦   «         ¦  «        }|D ].\  }}|                     |                     ||¦  «        ¦  «         Œ/|                     |¦  «        S )z"Return a string suitable for HTTP.)r­   rŽ   r(   r¡   Újoin)rq   rŸ   r    Úsepr°   rŽ   rr   rx   s           r   r¡   zBaseCookie.outputô  sd   € àˆÝ�t—z’z‘|”|Ñ$Ô$ˆØð 	7ð 	7‰JˆC�Ø�MŠM˜%Ÿ,š, u¨fÑ5Ô5Ñ6Ô6Ð6Ð6Ø�xŠx˜ÑÔÐr   c                 óð   — g }t          |                      ¦   «         ¦  «        }|D ]1\  }}|                     |›dt          |j        ¦  «        ›�¦  «         Œ2d| j        j        ›dt          |¦  «        ›d�S )Nr¬   r£   r¤   r¥   )r­   rŽ   r(   Úreprrx   r¦   r	   Ú
_spacejoin)rq   ÚlrŽ   rr   rx   s        r   r§   zBaseCookie.__repr__þ  s   € ØˆÝ�t—z’z‘|”|Ñ$Ô$ˆØð 	9ð 	9‰JˆC�Ø�HŠH   ¥T¨%¬+Ñ%6Ô%6Ð%6Ð7Ñ8Ô8Ð8Ð8ð	9à!œ^Ô4Ð4Ð4µjÀ±m´m°m°mÐDÐDr   c                 óÆ   — g }t          |                      ¦   «         ¦  «        }|D ]-\  }}|                     |                     |¦  «        ¦  «         Œ.t	          |¦  «        S )z(Return a string suitable for JavaScript.)r­   rŽ   r(   rª   r,   )rq   rŸ   r°   rŽ   rr   rx   s         r   rª   zBaseCookie.js_output  s^   € àˆÝ�t—z’z‘|”|Ñ$Ô$ˆØð 	2ð 	2‰JˆC�Ø�MŠM˜%Ÿ/š/¨%Ñ0Ô0Ñ1Ô1Ð1Ð1Ý˜Ñ Ô Ð r   c                 óš   — t          |t          ¦  «        r|                      |¦  «         n|                     ¦   «         D ]
\  }}|| |<   ŒdS )zÝLoad cookies from a string (presumably HTTP_COOKIE) or
        from a dictionary.  Loading cookies from a dictionary 'd'
        is equivalent to calling:
            map(Cookie.__setitem__, d.keys(), d.values())
        N)r„   r   Ú_BaseCookie__parse_stringrŽ   )rq   Úrawdatarr   rx   s       r   rÃ   zBaseCookie.load  sZ   € õ �g�sÑ#Ô#ð 	"Ø×Ò Ñ(Ô(Ð(Ð(ð &Ÿmšm™oœoð "ð "‘
��UØ!��S‘	�	Øˆr   c                 óŽ  — d}t          |¦  «        }g }d}d}d}d|cxk    r|k     �rVn �nR|                     ||¦  «        }	|	s�n8|	                     d¦  «        |	                     d¦  «        }}
|	                     d¦  «        }|
d         dk    r$|sŒz|                     ||
dd …         |f¦  «         n¹|
                     ¦   «         t          j        v rg|sd S |€;|
                     ¦   «         t          j        v r|                     ||
df¦  «         nZd S |                     ||
t          |¦  «        f¦  «         n2|�.|                     ||
|  
                    |¦  «        f¦  «         d}nd S d|cxk    r|k     �°Pn d }|D ]B\  }}
}||k    r
|€J ‚|||
<   Œ||k    sJ ‚|\  }}|                      |
||¦  «         | |
         }ŒCd S )	Nr   Fr!   r   rr   r‚   ú$T)r$   ÚmatchÚgroupÚendr(   r}   rY   rn   r®   r3   r½   rË   )rq   r   Úpattr-   r   Úparsed_itemsÚmorsel_seenÚTYPE_ATTRIBUTEÚTYPE_KEYVALUErÜ   rr   rx   rÈ   ÚtprÌ   rÍ   s                   r   Ú__parse_stringzBaseCookie.__parse_string  s-  € ØˆÝ�‰HŒHˆØˆØˆàˆØˆð
 �1ˆjˆjŠjˆj�qŠj‰jˆjˆj‰jà—J’J˜s AÑ&Ô&ˆEØð áàŸš UÑ+Ô+¨U¯[ª[¸Ñ-?Ô-?�ˆCØ—	’	˜!‘”ˆAà�1Œv˜Š}ˆ}Ø"ð ð Ø×#Ò# ^°S¸¸¸´W¸eÐ$DÑEÔEÐEÐEØ—’‘”¥Ô 0Ð0Ð0Ø"ð à�FØ�=Ø—y’y‘{”{¥f¤mÐ3Ð3Ø$×+Ò+¨^¸SÀ$Ð,GÑHÔHÐHÐHð ˜à ×'Ò'¨¸½hÀu¹o¼oÐ(NÑOÔOÐOÐOØÐ"Ø×#Ò# ]°C¸×9JÒ9JÈ5Ñ9QÔ9QÐ$RÑSÔSÐSØ"��ð �ðE �1ˆjˆjŠjˆj�qŠj‰jˆjˆjðJ ˆØ*ð 	ð 	‰NˆB��UØ�^Ò#Ð#Ø�}�}�}Ø��#‘�à˜]Ò*Ð*Ð*Ð*Ø"‘
��dØ—
’
˜3  dÑ+Ô+Ð+Ø˜”I��ð	ð 	r   ru   )Nrœ   rÎ   )r	   r
   r   r±   r½   rÁ   rs   rË   rp   r¡   rµ   r§   rª   rÃ   Ú_CookiePatternrØ   r   r   r   r   r   Ì  sÓ   € € € € € Ø1Ð1ðð ð ðð ð ðð ð ð ð'ð 'ð 'ð(ð (ð (ð ð  ð  ð  ð €GðEð Eð Eð!ð !ð !ð !ðð ð ð (6ð :ð :ð :ð :ð :ð :r   r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )r   zþ
    SimpleCookie supports strings as cookie values.  When setting
    the value using the dictionary assignment notation, SimpleCookie
    calls the builtin str() to convert the value to a string.  Values
    received from HTTP are kept as strings.
    c                 ó$   — t          |¦  «        |fS ru   )r3   r¼   s     r   r½   zSimpleCookie.value_decode_  s   € Ý˜‰}Œ}˜cÐ!Ð!r   c                 óB   — t          |¦  «        }|t          |¦  «        fS ru   )r   r   r¿   s      r   rÁ   zSimpleCookie.value_encodeb  s   € Ý�S‘”ˆØ•v˜f‘~”~Ð%Ð%r   N)r	   r
   r   r±   r½   rÁ   r   r   r   r   r   X  s<   € € € € € ðð ð"ð "ð "ð&ð &ð &ð &ð &r   r   ))r±   ÚreÚstringr·   Ú__all__rÐ   r,   r¯   rÔ   Ú	Exceptionr   Úascii_lettersÚdigitsÚ_LegalCharsÚ_UnescapedCharsr•   ÚrangeÚmapÚordr   rŠ   ÚcompileÚescapeÚ	fullmatchr   r   r%   r'   r3   Ú_weekdaynameÚ
_monthnamerW   ro   rY   Ú_LegalKeyCharsÚ_LegalValueCharsÚASCIIÚVERBOSEræ   r   r   r   r   r   ú<module>rþ      sÆ  ððNXð Xðz 
€	€	€	Ø €€€Ø €€€à
7Ð
7Ð
7€àŒG€	Ø”€ØŒX€
ð
	ð 	ð 	ð 	ð 	�)ñ 	ô 	ð 	ð" Ô" V¤]Ñ2Ð5GÑG€Ø Ñ/€ðJð JØ˜˜E˜E #™JœJ™œ¨#¨#¨c¨c°#°Ñ.GÔ.GÑ*HÔ*HÑHðJñ Jô J€à × Ò Ø€Cˆ�H„HˆeØ€Cˆ�I„Iˆvðñ ô ð ð
 �”
˜7 Y R¤Y¨{Ñ%;Ô%;Ñ;Ñ<Ô<ÔF€ð
6ð 
6ð 
6ð ˆRŒZÐ,Ñ-Ô-€
ØˆRŒZ˜Ñ!Ô!€
ð)ð )ð )ðd AÐ@Ð@€ð8ð 8ð 8€
ð  <¸:ð Fð Fð Fð Fði8ð i8ð i8ð i8ð i8ˆTñ i8ô i8ð i8ðj B€Ø! GÑ+Ð Ø�”ð 	ð ñð		ñ	ð ñðñð" 
Œ�B”JÑ	ñ# ô  €ð.Ið Ið Ið Ið I�ñ Iô Ið IðX&ð &ð &ð &ð &�:ñ &ô &ð &ð &ð &r   