§
    Ètºf	  ã                   ó®   — d Z ddlZddlZddlmZ ddlmZ ddlmZ  G d„ d¦  «        Z	dZ
 eej        ¦  «         G d	„ d
ej        ¦  «        ¦   «         ZdS )z,Support for working directly with IP packetsé    N)Úimplementer)Úprotocol)Úrawc                   ó   — e Zd Zd„ ZdS )ÚIPHeaderc           
      óv  — t          j        d|d d…         ¦  «        \
  }| _        | _        | _        }| _        | _        | _        }}t          j	        |¦  «        | _
        t          j	        |¦  «        | _        |dz  | _        |dz  dz	  dz  | _        |dz  | _        |dz  d	k    | _        |d
z  d	k    | _        d S )Nz!BBHHHBBH4s4sé   é   éð   é   é   iÿ  i @  r   i    )ÚstructÚunpackÚtosÚtot_lenÚfragment_idÚttlr   ÚcheckÚsocketÚ	inet_ntoaÚsaddrÚdaddrÚversionÚihlÚfragment_offsetÚdont_fragmentÚmore_fragments)ÚselfÚdataÚ
ihlversionÚfrag_offr   r   s         úN/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/pair/ip.pyÚ__init__zIPHeader.__init__   sÈ   € õ ŒM˜/¨4°°°¬9Ñ5Ô5ñ	
ØØŒHØŒLØÔØØŒHØŒMØŒJØØåÔ% eÑ,Ô,ˆŒ
ÝÔ% eÑ,Ô,ˆŒ
Ø! DÑ(ˆŒØ $Ñ&¨1Ñ,°Ñ2ˆŒØ'¨&Ñ0ˆÔØ%¨Ñ.°!Ò3ˆÔØ&¨Ñ/°1Ò4ˆÔÐÐó    N)Ú__name__Ú
__module__Ú__qualname__r#   © r$   r"   r   r      s#   € € € € € ð5ð 5ð 5ð 5ð 5r$   r   l        c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )Ú
IPProtocolc                 ó   — i | _         d S )N)ÚipProtos)r   s    r"   r#   zIPProtocol.__init__/   s   € ØˆŒˆˆr$   c                 óò   — t          j        |¦  «        }|dk     rt          d¦  «        ‚|t          k    rt          d¦  «        ‚|| j        vr
g | j        |<   | j        |                              |¦  «         d S )Nr   z'Added protocol must be positive or zeroz"Added protocol must fit in 32 bits)r   ÚIRawDatagramProtocolÚ	TypeErrorÚMAX_SIZEr,   Úappend)r   ÚnumÚprotos      r"   ÚaddProtozIPProtocol.addProto2   s|   € ÝÔ(¨Ñ/Ô/ˆØ�Š7ˆ7ÝÐEÑFÔFÐFØ•(Š?ˆ?ÝÐ@ÑAÔAÐAØ�d”mÐ#Ð#Ø!#ˆDŒM˜#ÑØŒ�cÔ×!Ò! %Ñ(Ô(Ð(Ð(Ð(r$   c                 ó8  — t          |¦  «        }| j                             |j        d¦  «        D ]i}|                     |dd …         ||j        |j        |j        |j        |j        |j	        |j
        |j        |j        |j        |j        |j        ¬¦  «         Œjd S )Nr(   r	   )r   ÚpartialÚsourceÚdestr   r   r   r   r   r   r   r   r   r   )r   r,   Úgetr   ÚdatagramReceivedr   r   r   r   r   r   r   r   r   r   r   )r   r   r6   r8   r7   r   Úheaderr3   s           r"   r:   zIPProtocol.datagramReceived<   sª   € Ý˜$‘”ˆØ”]×&Ò& v¤¸Ñ;Ô;ð 	ð 	ˆEØ×"Ò"Ø˜"˜#˜#”YØØ”|Ø”\ØœØœØ”JØ”JØœØ"Ô.Ø &Ô 6Ø$Ô2Ø%Ô4Ø”Jð #ñ ô ð ð ð	ð 	r$   N)r%   r&   r'   r#   r4   r:   r(   r$   r"   r*   r*   -   sA   € € € € € ðð ð ð)ð )ð )ðð ð ð ð r$   r*   )Ú__doc__r   r   Úzope.interfacer   Útwisted.internetr   Útwisted.pairr   r   r0   ÚIRawPacketProtocolÚAbstractDatagramProtocolr*   r(   r$   r"   ú<module>rB      sÕ   ðð 3Ð 2à €€€Ø €€€à &Ð &Ð &Ð &Ð &Ð &à %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð ð5ð 5ð 5ð 5ð 5ñ 5ô 5ð 5ð. €ð €ˆSÔ#Ñ$Ô$ð ð  ð  ð  ð  �Ô2ñ  ô  ñ %Ô$ð ð  ð  r$   