§
    È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„ d¦  «        Z eej	        ¦  «         G d„ d	ej
        ¦  «        ¦   «         ZdS )
z1
Implementation of raw packet interfaces for UDP
é    N)Úimplementer)Úprotocol)Úrawc                   ó   — e Zd Zd„ ZdS )Ú	UDPHeaderc                 ór   — t          j        d|d d…         ¦  «        \  | _        | _        | _        | _        d S )Nz!HHHHé   )ÚstructÚunpackÚsourceÚdestÚlenÚcheck)ÚselfÚdatas     úR/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/pair/rawudp.pyÚ__init__zUDPHeader.__init__   s5   € Ý9?¼Ø�T˜"˜1˜"”Xñ:
ô :
Ñ6ˆŒ�d”i ¤¨4¬:¨:¨:ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s#   € € € € € ð
ð 
ð 
ð 
ð 
r   r   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚRawUDPProtocolc                 ó   — i | _         d S )N)Ú	udpProtos)r   s    r   r   zRawUDPProtocol.__init__   s   € ØˆŒˆˆr   c                 ó  — t          |t          j        ¦  «        st          d¦  «        ‚|dk     rt          d¦  «        ‚|dk    rt          d¦  «        ‚|| j        vr
g | j        |<   | j        |                              |¦  «         d S )Nz6Added protocol must be an instance of DatagramProtocolr   z'Added protocol must be positive or zeroi   z"Added protocol must fit in 16 bits)Ú
isinstancer   ÚDatagramProtocolÚ	TypeErrorr   Úappend)r   ÚnumÚprotos      r   ÚaddProtozRawUDPProtocol.addProto   s‘   € Ý˜%¥Ô!:Ñ;Ô;ð 	VÝÐTÑUÔUÐUØ�Š7ˆ7ÝÐEÑFÔFÐFØ�%Š<ˆ<ÝÐ@ÑAÔAÐAØ�d”nÐ$Ð$Ø"$ˆDŒN˜3ÑØŒ�sÔ×"Ò" 5Ñ)Ô)Ð)Ð)Ð)r   c                 ó´   — t          |¦  «        }| j                             |j        d¦  «        D ]'}|                     |dd …         ||j        f¦  «         Œ(d S )Nr   r	   )r   r   Úgetr   ÚdatagramReceivedr   )r   r   Úpartialr   r   r   ÚversionÚihlÚtosÚtot_lenÚfragment_idÚfragment_offsetÚdont_fragmentÚmore_fragmentsÚttlÚheaderr#   s                    r   r'   zRawUDPProtocol.datagramReceived(   sh   € õ" ˜4‘”ˆØ”^×'Ò'¨¬°RÑ8Ô8ð 	Fð 	FˆEØ×"Ò" 4¨¨¨¤8¨f°f´mÐ-DÑEÔEÐEÐEð	Fð 	Fr   N)r   r   r   r   r$   r'   r   r   r   r   r      sF   € € € € € ðð ð ð	*ð 	*ð 	*ðFð Fð Fð Fð Fr   r   )Ú__doc__r
   Úzope.interfacer   Útwisted.internetr   Útwisted.pairr   r   ÚIRawDatagramProtocolÚAbstractDatagramProtocolr   r   r   r   ú<module>r9      sÓ   ðð
ð ð €€€à &Ð &Ð &Ð &Ð &Ð &à %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð €ˆSÔ%Ñ&Ô&ð"Fð "Fð "Fð "Fð "F�XÔ6ñ "Fô "Fñ 'Ô&ð"Fð "Fð "Fr   