§
    Ètºf'  ã                   ó   — d Z ddlmZmZ ddlmZ  G d„ d¦  «        Z G d„ de¦  «        Z G d„ d	e¦  «        Z G d
„ de¦  «        Z	 G d„ d¦  «        Z
 G d„ de¦  «        ZddlmZ  G d„ dee         e¦  «        ZdS )z7
Utility classes for dealing with circular references.
é    )ÚlogÚreflect)Ú_constructMethodc                   ó*   — e Zd Zd„ Zd„ ZdZd„ Zd„ ZdS )ÚNotKnownc                 ó"   — g | _         d| _        d S ©Nr   )Ú
dependantsÚresolved©Úselfs    úY/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/persisted/crefutil.pyÚ__init__zNotKnown.__init__   s   € ØˆŒØˆŒˆˆó    c                 óP   — | j         rJ ‚| j                             ||f¦  «         d S ©N)r   r
   Úappend)r   ÚmutableObjectÚkeys      r   ÚaddDependantzNotKnown.addDependant   s1   € Ø”=Ð Ð Ð ØŒ×Ò ¨sÐ3Ñ4Ô4Ð4Ð4Ð4r   Nc                 óF   — d| _         || _        | j        D ]
\  }}|||<   Œd S )Né   )r   ÚresolvedObjectr
   )r   Ú	newObjectÚmutr   s       r   ÚresolveDependantszNotKnown.resolveDependants   s;   € ØˆŒØ'ˆÔØœð 	!ð 	!‰HˆC�Ø ˆC�‰HˆHð	!ð 	!r   c                 ó   — J d¦   «         ‚)Nr   z(I am not to be used as a dictionary key.© r   s    r   Ú__hash__zNotKnown.__hash__!   s   € Ø<Ð<Ñ<Ô<Ð<r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r      sW   € € € € € ðð ð ð5ð 5ð 5ð €Nð!ð !ð !ð=ð =ð =ð =ð =r   r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú
_ContainerzK
    Helper class to resolve circular references on container objects.
    c                 ó   — t                                | ¦  «         || _        || _        t	          t          t          |¦  «        ¦  «        ¦  «        | _        t          t          |¦  «        ¦  «        D ]T}t          ||         t           ¦  «        s| j         	                    |¦  «         Œ8||          
                    | |¦  «         ŒU| j        s/|                      |                      | j        ¦  «        ¦  «         dS dS )zÌ
        @param l: The list of object which may contain some not yet referenced
        objects.

        @param containerType: A type of container objects (e.g., C{tuple} or
            C{set}).
        N)r   r   ÚcontainerTypeÚlÚlistÚrangeÚlenÚlocsÚ
isinstanceÚremover   r   )r   r'   r&   Úidxs       r   r   z_Container.__init__*   sç   € õ 	×Ò˜$ÑÔÐØ*ˆÔØˆŒÝ��s 1™vœv™œÑ'Ô'ˆŒ	Ý�˜Q™œ‘=”=ð 	/ð 	/ˆCÝ˜a œf¥hÑ/Ô/ð /Ø”	× Ò  Ñ%Ô%Ð%Ð%à�#”×#Ò# D¨#Ñ.Ô.Ð.Ð.ØŒyð 	?Ø×"Ò" 4×#5Ò#5°d´fÑ#=Ô#=Ñ>Ô>Ð>Ð>Ð>ð	?ð 	?r   c                 óè   — || j         |<   t          |t          ¦  «        sP| j                             |¦  «         | j        s1|                      |                      | j         ¦  «        ¦  «         dS dS dS )z€
        Change the value of one contained objects, and resolve references if
        all objects have been referenced.
        N)r'   r,   r   r+   r-   r   r&   ©r   ÚnÚobjs      r   Ú__setitem__z_Container.__setitem__>   s…   € ð
 ˆŒˆq‰	Ý˜#�xÑ(Ô(ð 	CØŒI×Ò˜QÑÔÐØ”9ð CØ×&Ò& t×'9Ò'9¸$¼&Ñ'AÔ'AÑBÔBÐBÐBÐBð	Cð 	CðCð Cr   N)r    r!   r"   Ú__doc__r   r3   r   r   r   r$   r$   %   sA   € € € € € ðð ð?ð ?ð ?ð(	Cð 	Cð 	Cð 	Cð 	Cr   r$   c                   ó   — e Zd ZdZd„ ZdS )Ú_Tupleza
    Manage tuple containing circular references. Deprecated: use C{_Container}
    instead.
    c                 óH   — t                                | |t          ¦  «         dS )zi
        @param l: The list of object which may contain some not yet referenced
        objects.
        N)r$   r   Útuple)r   r'   s     r   r   z_Tuple.__init__P   s"   € õ
 	×Ò˜D !¥UÑ+Ô+Ð+Ð+Ð+r   N)r    r!   r"   r4   r   r   r   r   r6   r6   J   s-   € € € € € ðð ð
,ð ,ð ,ð ,ð ,r   r6   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú_InstanceMethodc                 ó‚   — t                                | ¦  «         || _        || _        |                     | d¦  «         d S r	   )r   r   Úmy_classÚnamer   )r   Úim_nameÚim_selfÚim_classs       r   r   z_InstanceMethod.__init__Y   s@   € Ý×Ò˜$ÑÔÐØ ˆŒØˆŒ	à×Ò˜T 1Ñ%Ô%Ð%Ð%Ð%r   c                 óî   — dd l }t          j        dt          j        | j        ¦  «        › d| j        › �¦  «         t          j        d|›d|›�¦  «         |                     t          j        ¬¦  «         J ‚)Nr   zinstance method ú.zbeing called with ú )Úfile)	Ú	tracebackr   Úmsgr   Úqualr<   r=   Úprint_stackÚlogfile)r   ÚargsÚkwrE   s       r   Ú__call__z_InstanceMethod.__call__`   s|   € ØÐÐÐåŒÐL¥7¤<°´Ñ#>Ô#>ÐLÐLÀÄÐLÐLÑMÔMÐMÝŒÐ4 TÐ4Ð4¨bÐ4Ð4Ñ5Ô5Ð5Ø×Ò¥3¤;ÐÑ/Ô/Ð/Øˆr   c                 ó´   — |dk    s
J d¦   «         ‚t          |t          ¦  «        s2t          | j        | j        |¦  «        }|                      |¦  «         d S d S )Nr   zonly zero index allowed)r,   r   r   r<   r=   r   )r   r1   r2   Úmethods       r   r3   z_InstanceMethod.__setitem__h   sa   € Ø�AŠvˆvˆvÐ0‰vŒvˆvÝ˜#�xÑ(Ô(ð 	+Ý% d¤m°T´YÀÑDÔDˆFØ×"Ò" 6Ñ*Ô*Ð*Ð*Ð*ð	+ð 	+r   N)r    r!   r"   r   rL   r3   r   r   r   r:   r:   X   sA   € € € € € ð&ð &ð &ðð ð ð+ð +ð +ð +ð +r   r:   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú_DictKeyAndValuec                 ó   — || _         d S r   )Údict)r   rR   s     r   r   z_DictKeyAndValue.__init__p   s   € ØˆŒ	ˆ	ˆ	r   c                 ó¾   — |dvrt          d¦  «        ‚|r|| _        n|| _        t          | d¦  «        r&t          | d¦  «        r| j        | j        | j        <   d S d S d S )N)r   r   z6DictKeyAndValue should only ever be called with 0 or 1r   Úvalue)ÚRuntimeErrorrT   r   ÚhasattrrR   r0   s      r   r3   z_DictKeyAndValue.__setitem__s   s   € Ø�Fˆ?ˆ?ÝÐWÑXÔXÐXØð 	ØˆDŒJˆJàˆDŒHÝ�4˜ÑÔð 	-¥G¨D°'Ñ$:Ô$:ð 	-Ø"&¤*ˆDŒI�d”hÑÐÐð	-ð 	-ð 	-ð 	-r   N)r    r!   r"   r   r3   r   r   r   rP   rP   o   s2   € € € € € ðð ð ð-ð -ð -ð -ð -r   rP   c                   ó   — e Zd Zd„ ZdS )Ú_Dereferencec                 óH   — t                                | ¦  «         || _        d S r   )r   r   Úid)r   rZ   s     r   r   z_Dereference.__init__   s!   € Ý×Ò˜$ÑÔÐØˆŒˆˆr   N)r    r!   r"   r   r   r   r   rX   rX   ~   s#   € € € € € ðð ð ð ð r   rX   )ÚDeferredc                   ó$   — e Zd Zd„ ZdZd„ Zd„ ZdS )Ú_Deferc                 óŠ   — t          j        | ¦  «         t                               | ¦  «         |                      ¦   «          d S r   )r[   r   r   Úpauser   s    r   r   z_Defer.__init__ˆ   s8   € ÝÔ˜$ÑÔÐÝ×Ò˜$ÑÔÐØ�
Š
‰Œˆˆˆr   r   c                 ó’   — | j         r#t          d                     ||¦  «        ¦  «        ‚d| _         |                      |¦  «         d S )Nz8setitem should only be called once, setting {!r} to {!r}r   )ÚwassetrU   ÚformatÚcallbackr0   s      r   r3   z_Defer.__setitem__�   sW   € ØŒ;ð 	ÝØJ×QÒQØ�sñô ñô ð ð ˆDŒKØ�Š�cÑÔÐÐÐr   c                 óž   — t                                | ||¦  «         |                      ¦   «          | j        }|                      |¦  «         d S r   )r   r   ÚunpauseÚresultr   )r   Údepr   Úresovds       r   r   z_Defer.addDependantš   sJ   € õ 	×Ò˜d C¨Ñ-Ô-Ð-Ø�Š‰ŒˆØ”ˆØ×Ò˜vÑ&Ô&Ð&Ð&Ð&r   N)r    r!   r"   r   ra   r3   r   r   r   r   r]   r]   ‡   sH   € € € € € ðð ð ð
 €Fð	ð 	ð 	ð'ð 'ð 'ð 'ð 'r   r]   N)r4   Útwisted.pythonr   r   Útwisted.python.compatr   r   r$   r6   r:   rP   rX   Útwisted.internet.deferr[   Úobjectr]   r   r   r   ú<module>rm      s‹  ððð ð
 (Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ð=ð =ð =ð =ð =ñ =ô =ð =ð*"Cð "Cð "Cð "Cð "C�ñ "Cô "Cð "CðJ,ð ,ð ,ð ,ð ,ˆZñ ,ô ,ð ,ð+ð +ð +ð +ð +�hñ +ô +ð +ð.-ð -ð -ð -ð -ñ -ô -ð -ðð ð ð ð �8ñ ô ð ð ,Ð +Ð +Ð +Ð +Ð +ð'ð 'ð 'ð 'ð 'ˆX�fÔ˜xñ 'ô 'ð 'ð 'ð 'r   