ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3

  \                 @   sx   d Z ddlZddlmZ ddlmZ ddddgZG d	d deZG d
d deZ	dd Z
G dd dZG dd dZdS )zRImplements (a subset of) Sun XDR -- eXternal Data Representation.

See: RFC 1014

    N)BytesIO)wrapsErrorPackerUnpackerConversionErrorc               @   s(   e Zd ZdZdd Zdd Zdd ZdS )	r   zException 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             C   s
   || _ d S )N)msg)selfr    r
   /usr/lib64/python3.6/xdrlib.py__init__   s    zError.__init__c             C   s
   t | jS )N)reprr   )r	   r
   r
   r   __repr__   s    zError.__repr__c             C   s
   t | jS )N)strr   )r	   r
   r
   r   __str__   s    zError.__str__N)__name__
__module____qualname____doc__r   r   r   r
   r
   r
   r   r      s   	c               @   s   e Zd ZdS )r   N)r   r   r   r
   r
   r
   r   r       s   c                s   t   fdd}|S )z5 Wrap any raised struct.errors in a ConversionError. c                sD   y
 | |S  t jk
r> } zt|jd d W Y d d }~X nX d S )Nr   )structerrorr   args)r	   valuee)functionr
   r   result&   s    
z&raise_conversion_error.<locals>.result)r   )r   r   r
   )r   r   raise_conversion_error#   s    r   c               @   s   e Zd ZdZdd Zdd Zdd ZeZedd	 Z	ed
d Z
e
Zdd Zdd ZeZedd Zedd Zdd ZeZdd ZeZeZdd Zdd Zdd ZdS )r   z0Pack various data representations into a buffer.c             C   s   | j   d S )N)reset)r	   r
   r
   r   r   2   s    zPacker.__init__c             C   s   t  | _d S )N)r   _Packer__buf)r	   r
   r
   r   r   5   s    zPacker.resetc             C   s
   | j j S )N)r   getvalue)r	   r
   r
   r   
get_buffer8   s    zPacker.get_bufferc             C   s   | j jtjd| d S )Nz>L)r   writer   pack)r	   xr
   r
   r   	pack_uint=   s    zPacker.pack_uintc             C   s   | j jtjd| d S )Nz>l)r   r!   r   r"   )r	   r#   r
   r
   r   pack_intA   s    zPacker.pack_intc             C   s"   |r| j jd n| j jd d S )Ns      s       )r   r!   )r	   r#   r
   r
   r   	pack_boolG   s     zPacker.pack_boolc             C   s   y| j |d? d@  W n8 ttjfk
rN } zt|jd d W Y d d }~X nX y| j |d@  W n8 ttjfk
r } zt|jd d W Y d d }~X nX d S )N    l    r   )r$   	TypeErrorr   r   r   r   )r	   r#   r   r
   r
   r   pack_uhyperK   s    "zPacker.pack_uhyperc             C   s   | j jtjd| d S )Nz>f)r   r!   r   r"   )r	   r#   r
   r
   r   
pack_floatW   s    zPacker.pack_floatc             C   s   | j jtjd| d S )Nz>d)r   r!   r   r"   )r	   r#   r
   r
   r   pack_double[   s    zPacker.pack_doublec             C   sP   |dk rt d|d | }|d d d }||t| d  }| jj| d S )Nr   z fstring size must be nonnegative          )
ValueErrorlenr   r!   )r	   nsdatar
   r
   r   pack_fstring_   s    zPacker.pack_fstringc             C   s"   t |}| j| | j|| d S )N)r0   r$   r4   )r	   r2   r1   r
   r
   r   pack_stringi   s    
zPacker.pack_stringc             C   s.   x|D ]}| j d || qW | j d d S )N   r   )r$   )r	   list	pack_itemitemr
   r
   r   	pack_listq   s    

zPacker.pack_listc             C   s.   t ||krtdx|D ]}|| qW d S )Nzwrong array size)r0   r/   )r	   r1   r7   r8   r9   r
   r
   r   pack_farrayw   s    
zPacker.pack_farrayc             C   s$   t |}| j| | j||| d S )N)r0   r$   r;   )r	   r7   r8   r1   r
   r
   r   
pack_array}   s    
zPacker.pack_arrayN)r   r   r   r   r   r   r    Zget_bufr   r$   r%   Z	pack_enumr&   r)   Z
pack_hyperr*   r+   r4   Zpack_fopaquer5   Zpack_opaqueZ
pack_bytesr:   r;   r<   r
   r
   r
   r   r   /   s*   
c               @   s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd ZeZdd Zdd Zdd Zdd Zdd Zdd ZeZdd ZeZeZd d! Zd"d# Zd$d% Zd&S )'r   z;Unpacks various data representations from the given buffer.c             C   s   | j | d S )N)r   )r	   r3   r
   r
   r   r      s    zUnpacker.__init__c             C   s   || _ d| _d S )Nr   )_Unpacker__buf_Unpacker__pos)r	   r3   r
   r
   r   r      s    zUnpacker.resetc             C   s   | j S )N)r>   )r	   r
   r
   r   get_position   s    zUnpacker.get_positionc             C   s
   || _ d S )N)r>   )r	   Zpositionr
   r
   r   set_position   s    zUnpacker.set_positionc             C   s   | j S )N)r=   )r	   r
   r
   r   r       s    zUnpacker.get_bufferc             C   s   | j t| jk rtdd S )Nzunextracted data remains)r>   r0   r=   r   )r	   r
   r
   r   done   s    zUnpacker.donec             C   sB   | j }|d  | _ }| j|| }t|dk r2ttjd|d S )Nr-   z>Lr   )r>   r=   r0   EOFErrorr   unpack)r	   ijr3   r
   r
   r   unpack_uint   s    zUnpacker.unpack_uintc             C   sB   | j }|d  | _ }| j|| }t|dk r2ttjd|d S )Nr-   z>lr   )r>   r=   r0   rB   r   rC   )r	   rD   rE   r3   r
   r
   r   
unpack_int   s    zUnpacker.unpack_intc             C   s   t | j S )N)boolrG   )r	   r
   r
   r   unpack_bool   s    zUnpacker.unpack_boolc             C   s    | j  }| j  }t|d> |B S )Nr'   )rF   int)r	   hilor
   r
   r   unpack_uhyper   s    zUnpacker.unpack_uhyperc             C   s   | j  }|dkr|d }|S )Nl            l            )rM   )r	   r#   r
   r
   r   unpack_hyper   s    zUnpacker.unpack_hyperc             C   sB   | j }|d  | _ }| j|| }t|dk r2ttjd|d S )Nr-   z>fr   )r>   r=   r0   rB   r   rC   )r	   rD   rE   r3   r
   r
   r   unpack_float   s    zUnpacker.unpack_floatc             C   sB   | j }|d  | _ }| j|| }t|dk r2ttjd|d S )N   z>dr   )r>   r=   r0   rB   r   rC   )r	   rD   rE   r3   r
   r
   r   unpack_double   s    zUnpacker.unpack_doublec             C   sT   |dk rt d| j}||d d d  }|t| jkr<t|| _| j|||  S )Nr   z fstring size must be nonnegativer,   r-   )r/   r>   r0   r=   rB   )r	   r1   rD   rE   r
   r
   r   unpack_fstring   s    zUnpacker.unpack_fstringc             C   s   | j  }| j|S )N)rF   rR   )r	   r1   r
   r
   r   unpack_string   s    zUnpacker.unpack_stringc             C   sF   g }x<| j  }|dkrP |dkr.td|f | }|j| qW |S )Nr   r6   z0 or 1 expected, got %r)rF   r   append)r	   unpack_itemr7   r#   r9   r
   r
   r   unpack_list   s     zUnpacker.unpack_listc             C   s&   g }xt |D ]}|j|  qW |S )N)rangerT   )r	   r1   rU   r7   rD   r
   r
   r   unpack_farray   s    zUnpacker.unpack_farrayc             C   s   | j  }| j||S )N)rF   rX   )r	   rU   r1   r
   r
   r   unpack_array   s    zUnpacker.unpack_arrayN)r   r   r   r   r   r   r?   r@   r    rA   rF   rG   Zunpack_enumrI   rM   rN   rO   rQ   rR   Zunpack_fopaquerS   Zunpack_opaqueZunpack_bytesrV   rX   rY   r
   r
   r
   r   r      s.   
)r   r   ior   	functoolsr   __all__	Exceptionr   r   r   r   r   r
   r
   r
   r   <module>   s   U