
    Z'i                     (    ddZ ddZddZd Zd Zy)	utf-8c                 $    | j                  |      S z for python3 )decodesrccodings     $/opt/sopds/book_tools/pymobi/util.pytoStrr
          ::f    c                 $    | j                  |      S r   )encoder   s     r	   toByter      r   r   c                    dj                  t        d      D cg c]3  }t        t        t	        |                  dk(  xr t	        |      xs |5 c}      }g }t        dt        |       |      D ]"  }| |||z    }t        |t              r#dj                  |D cg c]  }d|z  	 c}      }n+dj                  |D cg c]  }dt        |      z   c}      }t        |      dkD  r|dd d|dd }t        |t              r1dj                  |D cg c]  }d	|d
k  xr ||   xs |z   c}      }	nBdj                  |D cg c]'  }d	t        |      d
k  xr |t        |         xs |z  ) c}      }	|j                  d||dz  ||	fz         % t        dj                  |             yc c}w c c}w c c}w c c}w c c}w )z`
    hexdump implementation in Python
    paste from https://gist.github.com/7h3rAm/5603718
                z%02x   Nz%s   z%08x:  %-*s  |%s|
)
joinrangelenreprchr
isinstancebytesordappendprint)
r   lengthsepxFILTERlinesccharshhex	printables
             r	   hexdumpr+      s   
 WWs 
T#a&\	a	+SV2s2 F E1c#h' OAa&j!eU#887AVaZ78D88e<Vc!f_<=Dt9r>"3Bibc3DeU#! c/fQi7C8! I
 ! Q396#a&>AcB! I 	*a!T9-MMN%O& 
"''%.1 8<!
!s   8F1F6
>F;
G 
,G
c                 ^    d}d}|dk  r#|| dz  |z  z  }| dz  r	 |S | dz  } |dz  }|dk  r#|S )5 backward-encoded Mobipocket variable-width integer. r      r             )vintfintbitposs      r	   decodeVarintr6   ,   s[    DF
2+$+&()$; K 	
! 2+ Kr   c                 n    d}d}|dk  r+|| dz  |z  z  }| dk  r|d|z  z  }	 |S | dz  } |dz  }|dk  r+|S )r-   r       r   r/   r1   r0   r2   )r4   r3   r5   s      r	   encodeVarintr9   9   si    DF
2+$+&()#:TV^$D K 	
! 2+ Kr   N)r   )   .)r
   r   r+   r6   r9   r2   r   r	   <module>r<      s   

@
r   