
    f.                        d Z ddlmZ ddlZdZ ee      D  ci c]  \  } }|| 
 c}} Z ed      D cg c]  }d|z  	 c}ddd   Zd Z	d	 Z
yc c}} w c c}w )
zPython implementation of Z85 85-bit encoding

Z85 encoding is a plaintext encoding for a bytestring interpreted as 32bit integers.
Since the chunks are 32bit, a bytestring must be a multiple of 4 bytes.
See ZMQ RFC 32 for details.


    )annotationsNsU   0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#   U   c                   t        |       dz  rt        dt        |              t        |       dz  }t        j                  d|dd|       }g }|D ]+  }t        D ]   }|j                  t        ||z  dz            " - t        |      S )zencode raw bytes into Z85   z"length must be multiple of 4, not >dIr   )len
ValueErrorstructunpack_85sappendZ85CHARSbytes)rawbytesnvaluesvaluesencodedvoffsets         H/var/www/cvtools/html/venv/lib/python3.12/site-packages/zmq/utils/z85.pyencoder      s     8}q=c(m_MNN(mq G]]Qwqk+X6FG 9 	9FNN8Q&[B$678	99 >    c                   t        | t              r	 | j                  d      } t        |       dz  rt	        dt        |              t        |       dz  }g }t        dt        |       d      D ]A  }d}t        t              D ]  \  }}|t        | ||z         |z  z  } |j                  |       C t        j                  d|ddg| S # t        $ r t	        d      w xY w)	z3decode Z85 bytes to raw bytes, accepts ASCII stringasciiz4string argument should contain only ASCII charactersr   z&Z85 length must be multiple of 5, not r   r	   r
   r   )
isinstancestrr   UnicodeEncodeErrorr   r   range	enumerater   Z85MAPr   r   pack)z85bytesr   r   ivaluejr   s          r   decoder*   (   s    (C 	Uw/H 8}qA#h-QRR(mq GF1c(mQ' "4 	6IAvVHQUO,v55E	6e	
 ;;71+Q'1&11 " 	USTT	Us   C C")__doc__
__future__r   r   r   r#   r$   r"   r   r   r*   )idxcr'   s   000r   <module>r/      sj    #  d(2	3VS!!S&	3Qx !A 2& 2+ 
4 s
   AA