§
    %xÅj7  ã                  óÚ   — d dl mZ d dlZd dlZd dlmZmZ d dlmZ d dl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mZmZ  G d	„ d
¦  «        Z G d„ deeej        f         ¦  «        ZdS )é    )ÚannotationsN)Ú	b64decodeÚ	b64encode)ÚLiteral)ÚBadSignature)ÚMutableHeadersÚSecret)ÚHTTPConnection)ÚASGIAppÚMessageÚReceiveÚScopeÚSendc                  ó.   — e Zd Z	 	 	 	 	 	 	 d!d"d„Zd#d „ZdS )$ÚSessionMiddlewareÚsessioné u ú/ÚlaxFNÚappr   Ú
secret_keyústr | SecretÚsession_cookieÚstrÚmax_ageú
int | NoneÚpathÚ	same_siteú Literal['lax', 'strict', 'none']Ú
https_onlyÚboolÚdomainú
str | NoneÚpartitionedÚreturnÚNonec
                ó  — || _         t          j        t          |¦  «        ¦  «        | _        || _        || _        || _        d|z   | _        |r| xj        dz  c_        |�| xj        d|› �z  c_        |	r| xj        dz  c_        d S d S )Nzhttponly; samesite=z; securez	; domain=z; partitioned)	r   ÚitsdangerousÚTimestampSignerr   Úsignerr   r   r   Úsecurity_flags)
Úselfr   r   r   r   r   r   r    r"   r$   s
             úNC:\Projects\Historical\venv\Lib\site-packages\starlette/middleware/sessions.pyÚ__init__zSessionMiddleware.__init__   s±   € ð ˆŒÝ"Ô2µ3°z±?´?ÑCÔCˆŒØ,ˆÔØˆŒØˆŒ	Ø3°iÑ?ˆÔØð 	.ØÐÔ :Ñ-ÐÔØÐØÐÔÐ#7¨vÐ#7Ð#7Ñ7ÐÔØð 	3ØÐÔ ?Ñ2ÐÔÐÐð	3ð 	3ó    Úscoper   Úreceiver   Úsendr   c              ƒ  óH  ‡ ‡‡‡K  — ‰d         dvr‰                       ‰|‰¦  «        ƒ d {V —† d S t          ‰¦  «        }dŠ‰ j        |j        v rœ|j        ‰ j                                      d¦  «        }	 ‰ j                             |‰ j        ¬¦  «        }t          t          j
        t          |¦  «        ¦  «        ¦  «        ‰d<   dŠn2# t          $ r t          ¦   «         ‰d<   Y nw xY wt          ¦   «         ‰d<   dˆˆˆ ˆfd„}‰                       ‰||¦  «        ƒ d {V —† d S )NÚtype)ÚhttpÚ	websocketTúutf-8)r   r   FÚmessager   r%   r&   c              “  ó¸  •K  — | d         dk    �r8‰d         }t          | ¬¦  «        }|j        r|                     d¦  «         |j        rµ|r³t	          t          j        |¦  «                             d¦  «        ¦  «        }‰j         	                    |¦  «        }d 
                    ‰j        |                     d¦  «        ‰j        ‰j        rd‰j        › d	�nd
‰j        ¬¦  «        }|                     d|¦  «         nH|j        rA‰s?d 
                    ‰j        d‰j        d‰j        ¬¦  «        }|                     d|¦  «          ‰| ¦  «        ƒ d {V —† d S )Nr4   zhttp.response.startr   )r0   ÚCookier7   z?{session_cookie}={data}; path={path}; {max_age}{security_flags}zMax-Age=z; Ú )r   Údatar   r   r+   z
Set-Cookiez?{session_cookie}={data}; path={path}; {expires}{security_flags}Únullz'expires=Thu, 01 Jan 1970 00:00:00 GMT; )r   r<   r   Úexpiresr+   )r   ÚaccessedÚadd_vary_headerÚmodifiedr   ÚjsonÚdumpsÚencoder*   ÚsignÚformatr   Údecoder   r   r+   Úappend)	r8   r   Úheadersr<   Úheader_valueÚinitial_session_was_emptyr0   r,   r2   s	        €€€€r-   Úsend_wrapperz0SessionMiddleware.__call__.<locals>.send_wrapper=   s�  øè è € Ø�vŒÐ"7Ò7Ñ7Ø#(¨Ô#3�Ý(¨wÐ7Ñ7Ô7�ØÔ#ð 6Ø×+Ò+¨HÑ5Ô5Ð5ØÔ#ð ?¨ð ?å$¥T¤Z°Ñ%8Ô%8×%?Ò%?ÀÑ%HÔ%HÑIÔI�DØœ;×+Ò+¨DÑ1Ô1�DØ#d×#kÒ#kØ'+Ô':Ø!Ÿ[š[¨Ñ1Ô1Ø!œYØ?C¼|Ð SÐ ;¨4¬<Ð ;Ð ;Ð ;Ð ;ÐQSØ'+Ô':ð $lñ $ô $�Lð —N’N <°Ñ>Ô>Ð>Ð>ØÔ%ð 	?Ð.Gð 	?à#d×#kÒ#kØ'+Ô':Ø#Ø!œYØ IØ'+Ô':ð $lñ $ô $�Lð —N’N <°Ñ>Ô>Ð>Ø�$�w‘-”-ÐÐÐÐÐÐÐÐÐr/   )r8   r   r%   r&   )r   r
   r   ÚcookiesrD   r*   Úunsignr   ÚSessionrB   Úloadsr   r   )r,   r0   r1   r2   Ú
connectionr<   rL   rK   s   `` `   @r-   Ú__call__zSessionMiddleware.__call__*   sq  øøøøè è € Ø�Œ=Ð 5Ð5Ð5Ø—(’(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFå# EÑ*Ô*ˆ
Ø$(Ð!àÔ *Ô"4Ð4Ð4ØÔ% dÔ&9Ô:×AÒAÀ'ÑJÔJˆDð-Ø”{×)Ò)¨$¸¼Ð)ÑEÔE�Ý#*­4¬:µiÀ±o´oÑ+FÔ+FÑ#GÔ#G��iÑ Ø,1Ð)Ð)øÝð -ð -ð -Ý#*¡9¤9��iÑ Ð Ð ð-øøøõ  '™yœyˆE�)Ñð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð< �hŠh�u˜g |Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4s   Á5AC
 Ã
C(Ã'C()r   r   r   r   FNF)r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r!   r%   r&   )r0   r   r1   r   r2   r   r%   r&   )Ú__name__Ú
__module__Ú__qualname__r.   rR   © r/   r-   r   r      sX   € € € € € ð
 (Ø/ØØ6;Ø Ø!Ø!ð3ð 3ð 3ð 3ð 3ð215ð 15ð 15ð 15ð 15ð 15r/   r   c                  ó¤   ‡ — e Zd ZU dZded<   dZded<   dd„Zdd„Zdˆ fd„Zdˆ fd„Z	dˆ fd„Z
dˆ fd„Zdˆ fd„Zd d!ˆ fd„Zd"ˆ fd„Zd#ˆ fd„Zˆ xZS )$rO   Fr!   r?   rA   r%   r&   c                ó   — d| _         d S ©NT)r?   ©r,   s    r-   Úmark_accessedzSession.mark_accessedb   s   € ØˆŒˆˆr/   c                ó"   — d| _         d| _        d S rY   )r?   rA   rZ   s    r-   Úmark_modifiedzSession.mark_modifiede   s   € ØˆŒØˆŒˆˆr/   Úkeyr   Úvalueú
typing.Anyc                ót   •— |                       ¦   «          t          ¦   «                              ||¦  «         d S ©N)r]   ÚsuperÚ__setitem__)r,   r^   r_   Ú	__class__s      €r-   rd   zSession.__setitem__i   s5   ø€ Ø×ÒÑÔÐÝ‰Œ×Ò˜C Ñ'Ô'Ð'Ð'Ð'r/   c                ór   •— |                       ¦   «          t          ¦   «                              |¦  «         d S rb   )r]   rc   Ú__delitem__)r,   r^   re   s     €r-   rg   zSession.__delitem__m   s3   ø€ Ø×ÒÑÔÐÝ‰Œ×Ò˜CÑ Ô Ð Ð Ð r/   c                óp   •— |                       ¦   «          t          ¦   «                              ¦   «          d S rb   )r]   rc   Úclear)r,   re   s    €r-   ri   zSession.clearq   s*   ø€ Ø×ÒÑÔÐÝ‰Œ�Š‰Œˆˆˆr/   Úargsc                óX   •— | j         p|| v | _          t          ¦   «         j        |g|¢R Ž S rb   )rA   rc   Úpop)r,   r^   rj   re   s      €r-   rl   zSession.popu   s3   ø€ ØœÐ4¨°¨ˆŒØ�u‰wŒwŒ{˜3Ð& Ð&Ð&Ð&Ð&r/   útuple[str, typing.Any]c                óp   •— t          ¦   «                              ¦   «         }|                      ¦   «          |S rb   )rc   Úpopitemr]   )r,   Úitemre   s     €r-   ro   zSession.popitemy   s-   ø€ Ý‰wŒw�ŠÑ Ô ˆØ×ÒÑÔÐØˆr/   NÚdefaultc                óx   •— || vr|                       ¦   «          t          ¦   «                              ||¦  «        S rb   )r]   rc   Ú
setdefault)r,   r^   rq   re   s      €r-   rs   zSession.setdefault~   s8   ø€ Ø�dˆ?ˆ?Ø×ÒÑ Ô Ð Ý‰wŒw×!Ò! # wÑ/Ô/Ð/r/   Úkwargsc                ób   •— |                       ¦   «           t          ¦   «         j        |i |¤Ž d S rb   )r]   rc   Úupdate)r,   rj   rt   re   s      €r-   rv   zSession.updateƒ   s6   ø€ Ø×ÒÑÔÐØ�‰ŒŒ˜Ð' Ð'Ð'Ð'Ð'Ð'r/   Úotherc               ón   •— |                       ¦   «          t          ¦   «                              |¦  «        S rb   )r]   rc   Ú__ior__)r,   rw   re   s     €r-   ry   zSession.__ior__‡   s+   ø€ Ø×ÒÑÔÐÝ‰wŒw�Š˜uÑ%Ô%Ð%r/   )r%   r&   )r^   r   r_   r`   r%   r&   )r^   r   r%   r&   )r^   r   rj   r`   r%   r`   )r%   rm   rb   )r^   r   rq   r`   r%   r`   )rj   r`   rt   r`   r%   r&   )rw   r`   r%   rO   )rS   rT   rU   r?   Ú__annotations__rA   r[   r]   rd   rg   ri   rl   ro   rs   rv   ry   Ú__classcell__)re   s   @r-   rO   rO   ^   s`  ø€ € € € € € Ø€HÐÐÐÑØ€HÐÐÐÑðð ð ð ðð ð ð ð(ð (ð (ð (ð (ð (ð!ð !ð !ð !ð !ð !ðð ð ð ð ð ð'ð 'ð 'ð 'ð 'ð 'ðð ð ð ð ð ð
0ð 0ð 0ð 0ð 0ð 0ð 0ð
(ð (ð (ð (ð (ð (ð&ð &ð &ð &ð &ð &ð &ð &ð &ð &r/   rO   )Ú
__future__r   rB   ÚtypingÚbase64r   r   r   r(   Úitsdangerous.excr   Ústarlette.datastructuresr   r	   Ústarlette.requestsr
   Ústarlette.typesr   r   r   r   r   r   Údictr   ÚAnyrO   rV   r/   r-   ú<module>r…      s5  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø -Ð -Ð -Ð -Ð -Ð -Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BðK5ð K5ð K5ð K5ð K5ñ K5ô K5ð K5ð\+&ð +&ð +&ð +&ð +&ˆd�3˜œ
�?Ô#ñ +&ô +&ð +&ð +&ð +&r/   