Ë
    £2ÚiÙ  ã                  óœ   — 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y)é    )Úannotations)Úrepeaté   )Ú_missingc                óD   — t        t        | «      j                  ›d�«      ‚)Nz objects are immutable)Ú	TypeErrorÚtypeÚ__name__©Úselfs    úU/var/www/html/acx/venv/lib/python3.12/site-packages/werkzeug/datastructures/mixins.pyÚis_immutabler      s    € Ü
”t˜D“z×*Ñ*Ð-Ð-CÐDÓ
EÐEó    c                  óf   — 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y)ÚImmutableListMixinzOMakes a :class:`list` immutable.

    .. versionadded:: 0.5

    :private:
    Nc                ól   — | j                   �| j                   S t        t        | «      «      x}| _         |S ©N)Ú_hash_cacheÚhashÚtuple©r   Úrvs     r   Ú__hash__zImmutableListMixin.__hash__   s5   € Ø×ÑÐ'Ø×#Ñ#Ð#Ü $¤U¨4£[Ó 1Ð1ˆˆTÔØˆ	r   c                ó0   — t        | «      t        | «      ffS r   )r	   Úlist©r   Úprotocols     r   Ú__reduce_ex__z ImmutableListMixin.__reduce_ex__   ó   € Ü�D‹zœD ›J˜=Ð(Ð(r   c                ó   — t        | «       y r   ©r   ©r   Úkeys     r   Ú__delitem__zImmutableListMixin.__delitem__   ó
   € Ü�TÕr   c                ó   — t        | «       y r   r!   ©r   Úothers     r   Ú__iadd__zImmutableListMixin.__iadd__"   r%   r   c                ó   — t        | «       y r   r!   r'   s     r   Ú__imul__zImmutableListMixin.__imul__%   r%   r   c                ó   — t        | «       y r   r!   ©r   r#   Úvalues      r   Ú__setitem__zImmutableListMixin.__setitem__(   r%   r   c                ó   — t        | «       y r   r!   ©r   Úitems     r   ÚappendzImmutableListMixin.append+   r%   r   c                ó   — t        | «       y r   r!   r1   s     r   ÚremovezImmutableListMixin.remove.   r%   r   c                ó   — t        | «       y r   r!   )r   Úiterables     r   ÚextendzImmutableListMixin.extend1   r%   r   c                ó   — t        | «       y r   r!   ©r   Úposr.   s      r   ÚinsertzImmutableListMixin.insert4   r%   r   c                ó   — t        | «       y r   r!   )r   Úindexs     r   ÚpopzImmutableListMixin.pop7   r%   r   c                ó   — t        | «       y r   r!   r   s    r   ÚreversezImmutableListMixin.reverse:   r%   r   c                ó   — t        | «       y r   r!   )r   r#   rA   s      r   ÚsortzImmutableListMixin.sort=   r%   r   )éÿÿÿÿ)NF)r
   Ú
__module__Ú__qualname__Ú__doc__r   r   r   r$   r)   r+   r/   r3   r5   r8   r<   r?   rA   rC   © r   r   r   r      sO   „ ñð €Kòò)òòòòòòòòóòôr   r   c                  ór   ‡ — 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                ón   •— t         ‰| �  | «      }|j                  t        |t	        |«      «      «       |S r   )ÚsuperÚ__new__Ú__init__Úzipr   )ÚclsÚkeysr.   ÚinstanceÚ	__class__s       €r   ÚfromkeyszImmutableDictMixin.fromkeysK   s/   ø€ ä‘7‘? 3Ó'ˆØ×Ñœ#˜d¤F¨5£MÓ2Ô3Øˆr   c                ó0   — t        | «      t        | «      ffS r   )r	   Údictr   s     r   r   z ImmutableDictMixin.__reduce_ex__Q   r   r   c                ó"   — | j                  «       S r   ©Úitemsr   s    r   Ú_iter_hashitemsz"ImmutableDictMixin._iter_hashitemsT   s   € Ø�z‰z‹|Ðr   c                óˆ   — | j                   �| j                   S t        t        | j                  «       «      «      x}| _         |S r   )r   r   Ú	frozensetrZ   r   s     r   r   zImmutableDictMixin.__hash__W   s?   € Ø×ÑÐ'Ø×#Ñ#Ð#Ü $¤Y¨t×/CÑ/CÓ/EÓ%FÓ GÐGˆˆTÔØˆ	r   c                ó   — t        | «       y r   r!   ©r   r#   Údefaults      r   Ú
setdefaultzImmutableDictMixin.setdefault]   r%   r   c                ó   — t        | «       y r   r!   ©r   ÚargsÚkwargss      r   ÚupdatezImmutableDictMixin.update`   r%   r   c                ó   — t        | «       y r   r!   r^   s      r   r?   zImmutableDictMixin.popc   r%   r   c                ó   — t        | «       y r   r!   r   s    r   ÚpopitemzImmutableDictMixin.popitemf   r%   r   c                ó   — t        | «       y r   r!   r-   s      r   r/   zImmutableDictMixin.__setitem__i   r%   r   c                ó   — t        | «       y r   r!   r"   s     r   r$   zImmutableDictMixin.__delitem__l   r%   r   c                ó   — t        | «       y 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   sS   ø„ ñð €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
y)ÚImmutableMultiDictMixinzTMakes a :class:`MultiDict` immutable.

    .. versionadded:: 0.5

    :private:
    c                óP   — t        | «      t        | j                  d¬«      «      ffS ©NT)Úmulti)r	   r   rY   r   s     r   r   z%ImmutableMultiDictMixin.__reduce_ex__{   s$   € Ü�D‹zœD §¡°$ Ó!7Ó8Ð:Ð:Ð:r   c                ó&   — | j                  d¬«      S rs   rX   r   s    r   rZ   z'ImmutableMultiDictMixin._iter_hashitems~   s   € Ø�z‰z ˆzÓ%Ð%r   c                ó   — t        | «       y r   r!   r-   s      r   ÚaddzImmutableMultiDictMixin.add�   r%   r   c                ó   — t        | «       y r   r!   r   s    r   Úpopitemlistz#ImmutableMultiDictMixin.popitemlist„   r%   r   c                ó   — t        | «       y r   r!   r"   s     r   ÚpoplistzImmutableMultiDictMixin.poplist‡   r%   r   c                ó   — t        | «       y r   r!   )r   r#   Únew_lists      r   ÚsetlistzImmutableMultiDictMixin.setlistŠ   r%   r   Nc                ó   — t        | «       y 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                  ój   — 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y)Ú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        | «       y r   r!   )r   r#   rd   s      r   r$   z!ImmutableHeadersMixin.__delitem__›   r%   r   c                ó   — t        | «       y r   r!   r-   s      r   r/   z!ImmutableHeadersMixin.__setitem__ž   r%   r   c                ó   — t        | «       y r   r!   ©r   Ú_keyÚ_valuerd   s       r   ÚsetzImmutableHeadersMixin.set¡   r%   r   c                ó   — t        | «       y r   r!   )r   r#   Úvaluess      r   r~   zImmutableHeadersMixin.setlist¤   r%   r   c                ó   — t        | «       y r   r!   r‡   s       r   rw   zImmutableHeadersMixin.add§   r%   r   c                ó   — t        | «       y r   r!   )r   rˆ   r‰   Ú_kwargss       r   Ú
add_headerz ImmutableHeadersMixin.add_headerª   r%   r   c                ó   — t        | «       y r   r!   r"   s     r   r5   zImmutableHeadersMixin.remove­   r%   r   c                ó   — t        | «       y r   r!   rb   s      r   r8   zImmutableHeadersMixin.extend°   r%   r   c                ó   — t        | «       y r   r!   rb   s      r   re   zImmutableHeadersMixin.update³   r%   r   c                ó   — t        | «       y r   r!   r:   s      r   r<   zImmutableHeadersMixin.insert¶   r%   r   Nc                ó   — t        | «       y r   r!   r^   s      r   r?   zImmutableHeadersMixin.pop¹   r%   r   c                ó   — t        | «       y r   r!   r   s    r   rh   zImmutableHeadersMixin.popitem¼   r%   r   c                ó   — t        | «       y r   r!   r^   s      r   r`   z ImmutableHeadersMixin.setdefault¿   r%   r   c                ó   — t        | «       y 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ƒ   ‘   sT   „ ñòòòòòòòòòòð  Hó òòór   rƒ   c                ó    ‡ — ˆ fd„}‰ |_         |S )Nc                ó‚   •—  t        t        t        | «      ‰«      |i |¤Ž}| j                  �| j                  | «       |S r   )ÚgetattrrL   ÚUpdateDictMixinÚ	on_update)r   rc   Úkwr   Únames       €r   Úoncallz_calls_update.<locals>.oncallÇ   s=   ø€ Ø8ŒW”Uœ?¨DÓ1°4Ó8¸$Ð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                ón   •— || v}t         ‰| �  ||«      }|r| j                  �| j                  | «       |S r   )rL   r`   r�   ©r   r#   r_   Úmodifiedr   rS   s        €r   r`   zUpdateDictMixin.setdefaultÝ   s:   ø€ Ø˜d�?ˆÜ‰WÑ  WÓ-ˆÙ˜Ÿ™Ð2Ø�N‰N˜4Ô Øˆ	r   c                óž   •— || v }|t         u rt        ‰| �	  |«      }nt        ‰| �	  ||«      }|r| j                  �| j                  | «       |S r   )r   rL   r?   r�   r¤   s        €r   r?   zUpdateDictMixin.popä   sO   ø€ Ø˜$�;ˆØ”hÑÜ‘‘˜SÓ!‰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œ   Ó   sR   ø„ ñð €Iõð  (õ ñ   Ó.€KÙ Ó.€KÙ˜'Ó"€EÙ˜IÓ&€GÙ˜8Ó$„Fr   rœ   N)Ú
__future__r   Ú	itertoolsr   Ú	_internalr   r   r   rJ   rq   rƒ   r¡   rV   rœ   rH   r   r   ú<module>rª      sS   ðÝ "å å  òF÷2ñ 2÷j/ñ /ôdÐ0ô ÷<2ñ 2òj
ô%�dõ %r   