§
    %ê[fÙ  ã                  ó¼   — d dl mZ d dlmZ ddlmZ d„ Z G d„ d¦  «        Z G d„ d	¦  «        Z G d
„ de¦  «        Z	 G d„ d¦  «        Z
d„ Z G d„ de¦  «        ZdS )é    )Úannotations)Úrepeaté   )Ú_missingc                óJ   — t          t          | ¦  «        j        ›d�¦  «        ‚)Nz objects are immutable)Ú	TypeErrorÚtypeÚ__name__©Úselfs    úR/var/www/piapp/venv/lib/python3.11/site-packages/werkzeug/datastructures/mixins.pyÚis_immutabler      s"   € Ý
•t˜D‘z”zÔ*ÐDÐDÐDÑ
EÔ
EÐEó    c                  óh   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zdd„Zd„ Zdd„ZdS )ÚImmutableListMixinzOMakes a :class:`list` immutable.

    .. versionadded:: 0.5

    :private:
    Nc                óh   — | j         �| j         S t          t          | ¦  «        ¦  «        x}| _         |S ©N)Ú_hash_cacheÚhashÚtuple©r   Úrvs     r   Ú__hash__zImmutableListMixin.__hash__   s4   € ØÔÐ'ØÔ#Ð#Ý $¥U¨4¡[¤[Ñ 1Ô 1Ð1ˆˆTÔØˆ	r   c                ó@   — t          | ¦  «        t          | ¦  «        ffS r   )r	   Úlist©r   Úprotocols     r   Ú__reduce_ex__z ImmutableListMixin.__reduce_ex__   ó   € Ý�D‰zŒz�D ™JœJ˜=Ð(Ð(r   c                ó$   — t          | ¦  «         d S r   ©r   ©r   Úkeys     r   Ú__delitem__zImmutableListMixin.__delitem__   ó   € Ý�TÑÔÐÐÐr   c                ó$   — t          | ¦  «         d S r   r!   ©r   Úothers     r   Ú__iadd__zImmutableListMixin.__iadd__"   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r'   s     r   Ú__imul__zImmutableListMixin.__imul__%   r%   r   c                ó$   — t          | ¦  «         d S r   r!   ©r   r#   Úvalues      r   Ú__setitem__zImmutableListMixin.__setitem__(   r%   r   c                ó$   — t          | ¦  «         d S r   r!   ©r   Úitems     r   ÚappendzImmutableListMixin.append+   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r1   s     r   ÚremovezImmutableListMixin.remove.   r%   r   c                ó$   — t          | ¦  «         d S r   r!   )r   Úiterables     r   ÚextendzImmutableListMixin.extend1   r%   r   c                ó$   — t          | ¦  «         d S r   r!   ©r   Úposr.   s      r   ÚinsertzImmutableListMixin.insert4   r%   r   éÿÿÿÿc                ó$   — t          | ¦  «         d S r   r!   )r   Úindexs     r   ÚpopzImmutableListMixin.pop7   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r   s    r   ÚreversezImmutableListMixin.reverse:   r%   r   Fc                ó$   — t          | ¦  «         d S r   r!   )r   r#   rB   s      r   ÚsortzImmutableListMixin.sort=   r%   r   )r=   )NF)r
   Ú
__module__Ú__qualname__Ú__doc__r   r   r   r$   r)   r+   r/   r3   r5   r8   r<   r@   rB   rD   © r   r   r   r      sò   € € € € € ðð ð €Kðð ð ð)ð )ð )ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ðð ð ðð ð ð ð ð r   r   c                  óx   ‡ — e Zd ZdZdZedˆ fd„	¦   «         Zd„ Zd„ Zd„ Z	dd„Z
d„ Zdd	„Zd
„ Zd„ Zd„ Zd„ Zˆ xZS )ÚImmutableDictMixinzOMakes a :class:`dict` immutable.

    .. versionadded:: 0.5

    :private:
    Nc                óª   •— t          ¦   «                              | ¦  «        }|                     t          |t	          |¦  «        ¦  «        ¦  «         |S r   )ÚsuperÚ__new__Ú__init__Úzipr   )ÚclsÚkeysr.   ÚinstanceÚ	__class__s       €r   ÚfromkeyszImmutableDictMixin.fromkeysK   sA   ø€ å‘7”7—?’? 3Ñ'Ô'ˆØ×Ò�#˜d¥F¨5¡M¤MÑ2Ô2Ñ3Ô3Ð3Øˆr   c                ó@   — t          | ¦  «        t          | ¦  «        ffS r   )r	   Údictr   s     r   r   z ImmutableDictMixin.__reduce_ex__Q   r   r   c                ó*   — |                       ¦   «         S r   ©Úitemsr   s    r   Ú_iter_hashitemsz"ImmutableDictMixin._iter_hashitemsT   s   € Ø�zŠz‰|Œ|Ðr   c                óŒ   — | j         �| j         S t          t          |                      ¦   «         ¦  «        ¦  «        x}| _         |S r   )r   r   Ú	frozensetrZ   r   s     r   r   zImmutableDictMixin.__hash__W   sB   € ØÔÐ'ØÔ#Ð#Ý $¥Y¨t×/CÒ/CÑ/EÔ/EÑ%FÔ%FÑ GÔ GÐGˆˆTÔØˆ	r   c                ó$   — t          | ¦  «         d S r   r!   ©r   r#   Údefaults      r   Ú
setdefaultzImmutableDictMixin.setdefault]   r%   r   c                ó$   — t          | ¦  «         d S r   r!   ©r   ÚargsÚkwargss      r   ÚupdatezImmutableDictMixin.update`   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r^   s      r   r@   zImmutableDictMixin.popc   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r   s    r   ÚpopitemzImmutableDictMixin.popitemf   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r-   s      r   r/   zImmutableDictMixin.__setitem__i   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r"   s     r   r$   zImmutableDictMixin.__delitem__l   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r   s    r   ÚclearzImmutableDictMixin.clearo   r%   r   r   )r
   rE   rF   rG   r   ÚclassmethodrT   r   rZ   r   r`   re   r@   rh   r/   r$   rl   Ú__classcell__©rS   s   @r   rJ   rJ   A   sø   ø€ € € € € ðð ð €Kàðð ð ð ð ñ „[ðð
)ð )ð )ðð ð ðð ð ðð ð ð ðð ð ðð ð ð ðð ð ðð ð ðð ð ðð ð ð ð ð ð r   rJ   c                  ó>   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d
d	„Z
dS )ÚImmutableMultiDictMixinzTMakes a :class:`MultiDict` immutable.

    .. versionadded:: 0.5

    :private:
    c                óh   — t          | ¦  «        t          |                      d¬¦  «        ¦  «        ffS ©NT)Úmulti)r	   r   rY   r   s     r   r   z%ImmutableMultiDictMixin.__reduce_ex__{   s,   € Ý�D‰zŒz�D §¢°$ Ñ!7Ô!7Ñ8Ô8Ð:Ð:Ð:r   c                ó.   — |                       d¬¦  «        S rs   rX   r   s    r   rZ   z'ImmutableMultiDictMixin._iter_hashitems~   s   € Ø�zŠz ˆzÑ%Ô%Ð%r   c                ó$   — t          | ¦  «         d S r   r!   r-   s      r   ÚaddzImmutableMultiDictMixin.add�   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r   s    r   Úpopitemlistz#ImmutableMultiDictMixin.popitemlist„   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r"   s     r   ÚpoplistzImmutableMultiDictMixin.poplist‡   r%   r   c                ó$   — t          | ¦  «         d S r   r!   )r   r#   Únew_lists      r   ÚsetlistzImmutableMultiDictMixin.setlistŠ   r%   r   Nc                ó$   — t          | ¦  «         d S r   r!   )r   r#   Údefault_lists      r   Úsetlistdefaultz&ImmutableMultiDictMixin.setlistdefault�   r%   r   r   )r
   rE   rF   rG   r   rZ   rw   ry   r{   r~   r�   rH   r   r   rq   rq   s   sŒ   € € € € € ðð ð;ð ;ð ;ð&ð &ð &ðð ð ðð ð ðð ð ðð ð ðð ð ð ð ð r   rq   c                  ól   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zdefd„Zd„ Zd„ Zd„ ZdS )ÚImmutableHeadersMixinzÞMakes a :class:`Headers` immutable.  We do not mark them as
    hashable though since the only usecase for this datastructure
    in Werkzeug is a view on a mutable structure.

    .. versionadded:: 0.5

    :private:
    c                ó$   — t          | ¦  «         d S r   r!   )r   r#   rd   s      r   r$   z!ImmutableHeadersMixin.__delitem__›   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r-   s      r   r/   z!ImmutableHeadersMixin.__setitem__ž   r%   r   c                ó$   — t          | ¦  «         d S r   r!   ©r   Ú_keyÚ_valuerd   s       r   ÚsetzImmutableHeadersMixin.set¡   r%   r   c                ó$   — t          | ¦  «         d S r   r!   )r   r#   Úvaluess      r   r~   zImmutableHeadersMixin.setlist¤   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r‡   s       r   rw   zImmutableHeadersMixin.add§   r%   r   c                ó$   — t          | ¦  «         d S r   r!   )r   rˆ   r‰   Ú_kwargss       r   Ú
add_headerz ImmutableHeadersMixin.add_headerª   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r"   s     r   r5   zImmutableHeadersMixin.remove­   r%   r   c                ó$   — t          | ¦  «         d S r   r!   rb   s      r   r8   zImmutableHeadersMixin.extend°   r%   r   c                ó$   — t          | ¦  «         d S r   r!   rb   s      r   re   zImmutableHeadersMixin.update³   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r:   s      r   r<   zImmutableHeadersMixin.insert¶   r%   r   Nc                ó$   — t          | ¦  «         d S r   r!   r^   s      r   r@   zImmutableHeadersMixin.pop¹   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r   s    r   rh   zImmutableHeadersMixin.popitem¼   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r^   s      r   r`   z ImmutableHeadersMixin.setdefault¿   r%   r   c                ó$   — t          | ¦  «         d S r   r!   r^   s      r   r�   z$ImmutableHeadersMixin.setlistdefaultÂ   r%   r   )r
   rE   rF   rG   r$   r/   rŠ   r~   rw   r�   r5   r8   re   r<   r   r@   rh   r`   r�   rH   r   r   rƒ   rƒ   ‘   sü   € € € € € ðð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð  Hð ð ð ð ðð ð ðð ð ðð ð ð ð r   rƒ   c                ó    ‡ — ˆ fd„}‰ |_         |S )Nc                ó’   •—  t          t          t          | ¦  «        ‰¦  «        |i |¤Ž}| j        �|                      | ¦  «         |S r   )ÚgetattrrL   ÚUpdateDictMixinÚ	on_update)r   rc   Úkwr   Únames       €r   Úoncallz_calls_update.<locals>.oncallÇ   sJ   ø€ Ø8�W•U�?¨DÑ1Ô1°4Ñ8Ô8¸$ÐEÀ"ÐEÐEˆàŒ>Ð%Ø�NŠN˜4Ñ Ô Ð àˆ	r   )r
   )rŸ   r    s   ` r   Ú_calls_updater¡   Æ   s*   ø€ ðð ð ð ð ð €F„OØ€Mr   c                  ó¤   ‡ — e Zd ZdZdZd
ˆ fd„	Zefˆ fd„	Z ed¦  «        Z	 ed¦  «        Z
 ed¦  «        Z ed¦  «        Z ed	¦  «        Zˆ xZS )rœ   zbMakes dicts call `self.on_update` on modifications.

    .. versionadded:: 0.5

    :private:
    Nc                ó�   •— || v}t          ¦   «                              ||¦  «        }|r| j        �|                      | ¦  «         |S r   )rL   r`   r�   ©r   r#   r_   Úmodifiedr   rS   s        €r   r`   zUpdateDictMixin.setdefaultÝ   sK   ø€ Ø˜d�?ˆÝ‰WŒW×Ò  WÑ-Ô-ˆØð 	!˜œÐ2Ø�NŠN˜4Ñ Ô Ð Øˆ	r   c                óæ   •— || v }|t           u r"t          ¦   «                              |¦  «        }n"t          ¦   «                              ||¦  «        }|r| j        �|                      | ¦  «         |S r   )r   rL   r@   r�   r¤   s        €r   r@   zUpdateDictMixin.popä   sk   ø€ Ø˜$�;ˆØ•hÐÐÝ‘”—’˜SÑ!Ô!ˆBˆBå‘”—’˜S 'Ñ*Ô*ˆBØð 	!˜œÐ2Ø�NŠN˜4Ñ Ô Ð Øˆ	r   r/   r$   rl   rh   re   r   )r
   rE   rF   rG   r�   r`   r   r@   r¡   r/   r$   rl   rh   re   rn   ro   s   @r   rœ   rœ   Ó   s²   ø€ € € € € ðð ð €Iðð ð ð ð ð ð  (ð ð ð ð ð ð ð  �- Ñ.Ô.€KØ�- Ñ.Ô.€KØˆM˜'Ñ"Ô"€EØˆm˜IÑ&Ô&€GØˆ]˜8Ñ$Ô$€F€F€F€F€Fr   rœ   N)Ú
__future__r   Ú	itertoolsr   Ú	_internalr   r   r   rJ   rq   rƒ   r¡   rV   rœ   rH   r   r   ú<module>rª      s6  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  ðFð Fð Fð2ð 2ð 2ð 2ð 2ñ 2ô 2ð 2ðj/ð /ð /ð /ð /ñ /ô /ð /ðdð ð ð ð Ð0ñ ô ð ð<2ð 2ð 2ð 2ð 2ñ 2ô 2ð 2ðj
ð 
ð 
ð%ð %ð %ð %ð %�dñ %ô %ð %ð %ð %r   