§
    Ètºf¢  ã                   ó    — d Z ddlZddlmZ ddlmZ ddlmZ g d¢Zd„ Z	dd	„Z
d
„ Zdd„Zd„ Z e edddd¦  «        ¦  «        d„ ¦   «         ZdS )z@
Common functions for the SSH classes.

Maintainer: Paul Swartz
é    N)Úint_to_bytes)Ú
deprecated)ÚVersion)ÚNSÚgetNSÚMPÚgetMPÚffsc                 ó    — t          | t          ¦  «        r|                      d¦  «        } t          j        dt          | ¦  «        ¦  «        | z   S )z
    net string
    zutf-8ú!L)Ú
isinstanceÚstrÚencodeÚstructÚpackÚlen)Úts    úW/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/conch/ssh/common.pyr   r      sD   € õ �!•SÑÔð Ø�HŠH�WÑÔˆÝŒ;�t�S ™VœVÑ$Ô$ qÑ(Ð(ó    é   c                 ó  — g }d}t          |¦  «        D ]R}t          j        d| ||dz   …         ¦  «        \  }|                     | |dz   d|z   |z   …         ¦  «         |d|z   z  }ŒSt	          |¦  «        | |d…         fz   S )z
    get net string
    r   r   é   N)Úranger   ÚunpackÚappendÚtuple)ÚsÚcountÚnsÚcÚiÚls         r   r   r      s”   € ð 
€BØ	€AÝ�5‰\Œ\ð ð ˆÝŒ}˜T 1 Q¨¨Q© Y¤<Ñ0Ô0‰ˆØ
�	Š	�!�A˜‘E˜A ™E A™IÐ%Ô&Ñ'Ô'Ð'Ø	ˆQ�‰U‰
ˆˆÝ�‰9Œ9˜˜!˜"˜"œ�xÑÐr   c                 óÈ   — | dk    rdS | dk    sJ ‚t          | ¦  «        }t          |dd…         ¦  «        dz  rd|z   }t          j        dt	          |¦  «        ¦  «        |z   S )Nr   s       r   é€   ó    ú>L)r   Úordr   r   r   )ÚnumberÚbns     r   r   r   ,   sk   € Ø�‚{€{Øˆ{Ø�AŠ:ˆ:ˆ:ˆ:Ý	�fÑ	Ô	€BÝ
ˆ2ˆa�ˆcŒ7�|„|�cÑð Ø�r‰\ˆÝŒ;�t�S ™WœWÑ%Ô%¨Ñ*Ð*r   c           	      ó6  — g }d}t          |¦  «        D ]k}t          j        d| ||dz   …         ¦  «        \  }|                     t                               | |dz   |dz   |z   …         d¦  «        ¦  «         |d|z   z  }Œlt          |¦  «        | |d…         fz   S )a=  
    Get multiple precision integer out of the string.  A multiple precision
    integer is stored as a 4-byte length followed by length bytes of the
    integer.  If count is specified, get count integers out of the string.
    The return value is a tuple of count integers followed by the rest of
    the data.
    r   r&   r   ÚbigN)r   r   r   r   ÚintÚ
from_bytesr   )Údatar   Úmpr    r!   Úlengths         r   r	   r	   6   s¢   € ð 
€BØ	€AÝ�5‰\Œ\ð ð ˆÝ”M $¨¨Q°°Q±¨Y¬Ñ8Ô8‰	ˆØ
�	Š	•#—.’.  a¨!¡e¨a°!©e°f©nÐ&<Ô!=¸uÑEÔEÑFÔFÐFØ	ˆQ�‰Z‰ˆˆÝ�‰9Œ9˜˜Q˜R˜Rœ�{Ñ"Ð"r   c                 ó    — | D ]
}||v r|c S ŒdS )zs
    first from second
    goes through the first list, looking for items in the second, returns the first one
    N© )r    r   r!   s      r   r
   r
   G   s4   € ð
 ð ð ˆØ�ˆ6ˆ6ØˆHˆHˆHð ðð r   ÚTwistedé   é   c                  ó   — d S )Nr2   r2   r   r   Úinstallr7   Q   s	   € ð 	€Dr   )r   )Ú__doc__r   Úcryptography.utilsr   Útwisted.python.deprecater   Útwisted.python.versionsr   Ú__all__r   r   r   r	   r
   r7   r2   r   r   ú<module>r=      sð   ðð
ð ð €€€à +Ð +Ð +Ð +Ð +Ð +à /Ð /Ð /Ð /Ð /Ð /Ø +Ð +Ð +Ð +Ð +Ð +à
/Ð
/Ð
/€ð)ð )ð )ð
 ð 
 ð 
 ð 
 ð+ð +ð +ð#ð #ð #ð #ð"ð ð ð €ˆGˆG�I˜r 1 aÑ(Ô(Ñ)Ô)ð	ð 	ñ *Ô)ð	ð 	ð 	r   