Ë
    òT•j6  ã                   óº   — d Z ddlZddlmZ ddlmZ ddlZ ej                  ed¬«       g d¢Z	 G d„ d	e
«      Z G d
„ de«      Zd„ Z G d„ d«      Z G d„ d«      Zy)zRImplements (a subset of) Sun XDR -- eXternal Data Representation.

See: RFC 1014

é    N)ÚBytesIO©Úwraps)é   é   )Úremove)ÚErrorÚPackerÚUnpackerÚConversionErrorc                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)r	   zºException class for this module. Use:

    except xdrlib.Error as var:
        # var has the Error instance for the exception

    Public ivars:
        msg -- contains the message

    c                 ó   — || _         y ©N)Úmsg)Úselfr   s     ú/usr/lib/python3.12/xdrlib.pyÚ__init__zError.__init__   s	   € Øˆ�ó    c                 ó,   — t        | j                  «      S r   )Úreprr   ©r   s    r   Ú__repr__zError.__repr__   s   € Ü�D—H‘H‹~Ðr   c                 ó,   — t        | j                  «      S r   )Ústrr   r   s    r   Ú__str__zError.__str__   s   € Ü�4—8‘8‹}Ðr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   © r   r   r	   r	      s   „ ñòòór   r	   c                   ó   — e Zd Zy)r   N)r   r   r   r    r   r   r   r   #   s   „ Ør   r   c                 ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )z5 Wrap any raised struct.errors in a ConversionError. c                 ó€   •— 	  ‰| |«      S # t         j                  $ r}t        |j                  d   «      d ‚d }~ww xY w©Nr   )ÚstructÚerrorr   Úargs)r   ÚvalueÚeÚfunctions      €r   Úresultz&raise_conversion_error.<locals>.result)   s>   ø€ ð	7Ù˜D %Ó(Ð(øÜ�|‰|ò 	7Ü! !§&¡&¨¡)Ó,°$Ð6ûð	7ús   ƒ Œ=Ÿ8¸=r   )r*   r+   s   ` r   Úraise_conversion_errorr,   &   s"   ø€ ô ˆ8ƒ_ó7ó ð7ð
 €Mr   c                   ó¤   — e Zd ZdZd„ Zd„ Zd„ ZeZed„ «       Z	ed„ «       Z
e
Zd„ Zd„ ZeZed	„ «       Zed
„ «       Zd„ ZeZd„ ZeZeZd„ Zd„ Zd„ Zy)r
   z0Pack various data representations into a buffer.c                 ó$   — | j                  «        y r   ©Úresetr   s    r   r   zPacker.__init__5   s   € Ø�
‰
�r   c                 ó"   — t        «       | _        y r   )r   Ú_Packer__bufr   s    r   r0   zPacker.reset8   s   € Ü“Yˆ�
r   c                 ó6   — | j                   j                  «       S r   )r2   Úgetvaluer   s    r   Ú
get_bufferzPacker.get_buffer;   s   € Ø�z‰z×"Ñ"Ó$Ð$r   c                 ób   — | j                   j                  t        j                  d|«      «       y )Nú>L©r2   Úwriter%   Úpack©r   Úxs     r   Ú	pack_uintzPacker.pack_uint@   ó   € à�
‰
×ÑœŸ™ T¨1Ó-Õ.r   c                 ób   — | j                   j                  t        j                  d|«      «       y )Nú>lr8   r;   s     r   Úpack_intzPacker.pack_intD   r>   r   c                 óv   — |r| j                   j                  d«       y | j                   j                  d«       y )Ns      s       )r2   r9   r;   s     r   Ú	pack_boolzPacker.pack_boolJ   s(   € Ùˆd�j‰j×Ñ˜{Õ+Ø�j‰j×Ñ˜{Õ+r   c                 óF  — 	 | j                  |dz	  dz  «       	 | j                  |dz  «       y # t        t        j                  f$ r}t	        |j
                  d   «      d ‚d }~ww xY w# t        t        j                  f$ r}t	        |j
                  d   «      d ‚d }~ww xY w)Né    l   ÿÿ r   )r=   Ú	TypeErrorr%   r&   r   r'   )r   r<   r)   s      r   Úpack_uhyperzPacker.pack_uhyperN   s�   € ð	7Ø�N‰N˜1˜b™5 :Ñ-Ô.ð	7Ø�N‰N˜1˜z™>Õ*øô œ6Ÿ<™<Ð(ò 	7Ü! !§&¡&¨¡)Ó,°$Ð6ûð	7ûô œ6Ÿ<™<Ð(ò 	7Ü! !§&¡&¨¡)Ó,°$Ð6ûð	7ús,   ‚/ šA) ¯A&ÁA!Á!A&Á)B ÂBÂB c                 ób   — | j                   j                  t        j                  d|«      «       y )Nú>fr8   r;   s     r   Ú
pack_floatzPacker.pack_floatZ   r>   r   c                 ób   — | j                   j                  t        j                  d|«      «       y )Nú>dr8   r;   s     r   Úpack_doublezPacker.pack_double^   r>   r   c                 ó¢   — |dk  rt        d«      ‚|d | }|dz   dz  dz  }||t        |«      z
  dz  z   }| j                  j                  |«       y )Nr   ú fstring size must be nonnegativer   é   ó    )Ú
ValueErrorÚlenr2   r9   )r   ÚnÚsÚdatas       r   Úpack_fstringzPacker.pack_fstringb   sZ   € ØˆqŠ5ÜÐ?Ó@Ð@Ø��!ˆuˆØ�‰c�A‰X�q‰LˆØ�qœ3˜t›9‘}¨Ñ-Ñ-ˆØ�
‰
×Ñ˜Õr   c                 ó`   — t        |«      }| j                  |«       | j                  ||«       y r   )rS   r=   rW   )r   rU   rT   s      r   Úpack_stringzPacker.pack_stringl   s'   € Ü�‹FˆØ�‰�qÔØ×Ñ˜!˜QÕr   c                 óf   — |D ]  }| j                  d«        ||«       Œ | j                  d«       y )Né   r   )r=   )r   ÚlistÚ	pack_itemÚitems       r   Ú	pack_listzPacker.pack_listt   s2   € Øò 	ˆDØ�N‰N˜1ÔÙ�d�Oð	ð 	�‰�qÕr   c                 óT   — t        |«      |k7  rt        d«      ‚|D ]
  } ||«       Œ y )Nzwrong array size)rS   rR   )r   rT   r\   r]   r^   s        r   Úpack_farrayzPacker.pack_farrayz   s/   € Üˆt‹9˜Š>ÜÐ/Ó0Ð0Øò 	ˆDÙ�d�Oñ	r   c                 ób   — t        |«      }| j                  |«       | j                  |||«       y r   )rS   r=   ra   )r   r\   r]   rT   s       r   Ú
pack_arrayzPacker.pack_array€   s)   € Ü�‹IˆØ�‰�qÔØ×Ñ˜˜D )Õ,r   N)r   r   r   r   r   r0   r5   Úget_bufr,   r=   rA   Ú	pack_enumrC   rG   Ú
pack_hyperrJ   rM   rW   Úpack_fopaquerY   Úpack_opaqueÚ
pack_bytesr_   ra   rc   r    r   r   r
   r
   2   s«   „ Ù:òòò%ð €Gàñ/ó ð/ð ñ/ó ð/ð €Iò,ò7ð €Jàñ/ó ð/ð ñ/ó ð/òð  €Lò ð
 €KØ€Jòòó-r   r
   c                   óŒ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ ZeZd
„ Zd„ Zd„ Zd„ Zd„ Zd„ ZeZd„ ZeZeZd„ Zd„ Zd„ Zy)r   z;Unpacks various data representations from the given buffer.c                 ó&   — | j                  |«       y r   r/   ©r   rV   s     r   r   zUnpacker.__init__Š   s   € Ø�
‰
�4Õr   c                 ó    — || _         d| _        y r$   )Ú_Unpacker__bufÚ_Unpacker__posrl   s     r   r0   zUnpacker.reset�   s   € ØˆŒ
Øˆ�
r   c                 ó   — | j                   S r   ©ro   r   s    r   Úget_positionzUnpacker.get_position‘   ó   € Ø�z‰zÐr   c                 ó   — || _         y r   rq   )r   Úpositions     r   Úset_positionzUnpacker.set_position”   s	   € Øˆ�
r   c                 ó   — | j                   S r   )rn   r   s    r   r5   zUnpacker.get_buffer—   rs   r   c                 ó^   — | j                   t        | j                  «      k  rt        d«      ‚y )Nzunextracted data remains)ro   rS   rn   r	   r   s    r   ÚdonezUnpacker.doneš   s'   € Ø�:‰:œ˜DŸJ™J›Ò'ÜÐ2Ó3Ð3ð (r   c                 óª   — | j                   }|dz   x| _         }| j                  || }t        |«      dk  rt        ‚t	        j
                  d|«      d   S )NrP   r7   r   ©ro   rn   rS   ÚEOFErrorr%   Úunpack©r   ÚiÚjrV   s       r   Úunpack_uintzUnpacker.unpack_uintž   óP   € Ø�J‰JˆØ˜1™ÐˆŒ
�QØ�z‰z˜!˜AˆˆÜˆt‹9�qŠ=ÜˆNÜ�}‰}˜T 4Ó(¨Ñ+Ð+r   c                 óª   — | j                   }|dz   x| _         }| j                  || }t        |«      dk  rt        ‚t	        j
                  d|«      d   S )NrP   r@   r   r{   r~   s       r   Ú
unpack_intzUnpacker.unpack_int¦   r‚   r   c                 ó4   — t        | j                  «       «      S r   )Úboolr„   r   s    r   Úunpack_boolzUnpacker.unpack_bool°   s   € Ü�D—O‘OÓ%Ó&Ð&r   c                 ód   — | j                  «       }| j                  «       }t        |«      dz  |z  S )NrE   )r�   Úint)r   ÚhiÚlos      r   Úunpack_uhyperzUnpacker.unpack_uhyper³   s1   € Ø×ÑÓˆØ×ÑÓˆÜ�2‹w˜‰{˜RÑÐr   c                 ó:   — | j                  «       }|dk\  r|dz
  }|S )Nl            l            )rŒ   r;   s     r   Úunpack_hyperzUnpacker.unpack_hyper¸   s)   € Ø×ÑÓ ˆØÐ"Ò"ØÐ'Ñ'ˆAØˆr   c                 óª   — | j                   }|dz   x| _         }| j                  || }t        |«      dk  rt        ‚t	        j
                  d|«      d   S )NrP   rI   r   r{   r~   s       r   Úunpack_floatzUnpacker.unpack_float¾   r‚   r   c                 óª   — | j                   }|dz   x| _         }| j                  || }t        |«      dk  rt        ‚t	        j
                  d|«      d   S )Né   rL   r   r{   r~   s       r   Úunpack_doublezUnpacker.unpack_doubleÆ   r‚   r   c                 óÄ   — |dk  rt        d«      ‚| j                  }||dz   dz  dz  z   }|t        | j                  «      kD  rt        ‚|| _        | j                  |||z    S )Nr   rO   r   rP   )rR   ro   rS   rn   r|   )r   rT   r   r€   s       r   Úunpack_fstringzUnpacker.unpack_fstringÎ   sd   € ØˆqŠ5ÜÐ?Ó@Ð@Ø�J‰JˆØ��1‘�q‘˜‘
‰NˆØŒs�4—:‘:‹ÒÜˆNØˆŒ
Ø�z‰z˜!˜A˜a™CÐ Ð r   c                 óD   — | j                  «       }| j                  |«      S r   )r�   r•   )r   rT   s     r   Úunpack_stringzUnpacker.unpack_stringÚ   s!   € Ø×ÑÓˆØ×"Ñ" 1Ó%Ð%r   c                 ó¶   — g }| j                  «       x}dk7  rA|dk7  rt        d|›�«      ‚ |«       }|j                  |«       | j                  «       x}dk7  rŒA|S )Nr   r[   z0 or 1 expected, got )r�   r   Úappend)r   Úunpack_itemr\   r<   r^   s        r   Úunpack_listzUnpacker.unpack_listá   sd   € ØˆØ×$Ñ$Ó&Ð&ˆq¨1Ò,Ø�AŠvÝ%Á1Ð&FÓGÐGÙ“=ˆDØ�K‰K˜Ôð	 ×$Ñ$Ó&Ð&ˆq¨1Ó,ð
 ˆr   c                 óV   — g }t        |«      D ]  }|j                   |«       «       Œ |S r   )Úranger™   )r   rT   rš   r\   r   s        r   Úunpack_farrayzUnpacker.unpack_farrayê   s-   € ØˆÜ�q“ò 	'ˆAØ�K‰K™›Õ&ð	'àˆr   c                 óF   — | j                  «       }| j                  ||«      S r   )r�   rž   )r   rš   rT   s      r   Úunpack_arrayzUnpacker.unpack_arrayð   s#   € Ø×ÑÓˆØ×!Ñ! ! [Ó1Ð1r   N)r   r   r   r   r   r0   rr   rv   r5   ry   r�   r„   Úunpack_enumr‡   rŒ   rŽ   r�   r“   r•   Úunpack_fopaquer—   Úunpack_opaqueÚunpack_bytesr›   rž   r    r    r   r   r   r   ‡   sy   „ ÙEòòòòòò4ò,ò,ð €Kò'ò ò
ò,ò,ò!ð $€Nò&ð "€MØ €Lòòó2r   r   )r   r%   Úior   Ú	functoolsr   ÚwarningsÚ_deprecatedr   Ú__all__Ú	Exceptionr	   r   r,   r
   r   r    r   r   ú<module>r«      se   ðñó Ý Ý Û à €× Ñ �X gÕ .â
<€ôˆIô ô$	�eô 	ò	÷Q-ñ Q-÷jk2ò k2r   