
    ix                         S SK Jr   " S S\5      r " S S5      rS r\S:X  a  S SKr\" S	\R                  " 5       5        gg)
    )BytesIOc                       \ rS rSrSrg)CorruptDataError    N)__name__
__module____qualname____firstlineno____static_attributes__r       ?/home/kodi/my-venv/lib/python3.13/site-packages/pdfminer/lzw.pyr   r      s    r   r   c                   ,    \ rS rSrS rS rS rS rSrg)
LZWDecoder   c                 V    Xl         SU l        SU l        SU l        S U l        S U l        g )Nr      	   )fpbuffbposnbitstableprevbuf)selfr   s     r   __init__LZWDecoder.__init__   s-    		

r   c                 P   Sn SU R                   -
  nX::  a7  X!-  U R                  X1-
  -	  SU-  S-
  -  -  nU =R                   U-  sl          U$ X#-  U R                  SU-  S-
  -  -  nX-  nU R                  R                  S5      nU(       d  [        eUS   U l        SU l         M  )Nr      r   )r   r   r   readEOFError)r   bitsvrxs        r   readbitsLZWDecoder.readbits   s    $))Ay YDII!&$9qDy!m#LM		T!	  V		a1faZ 89	GGLLO"NaD		) r   c                 \   SnUS:X  aq  [        S5       Vs/ s H  n[        U/5      PM     snU l        U R                  R                  S 5        U R                  R                  S 5        SU l        SU l        U$ US:X  a   U$ U R                  (       d  U R                  U   =o l        U$ U[        U R                  5      :  a;  U R                  U   nU R                  R                  U R                  US S -   5        OdU[        U R                  5      :X  aE  U R                  R                  U R                  U R                  S S -   5        U R                  U   nO[        e[        U R                  5      nUS:X  a  SU l        OUS:X  a  S	U l        OUS
:X  a  SU l        X l        U$ s  snf )Nr      r   i  r   i  
   i  r   i     )rangebytesr   appendr   r   lenr   )r   coder%   cls        r   feedLZWDecoder.feed/   sn   3;.3Cj9j%*j9DJJJd#JJd#DLDJ, + S[( ' #zz$//A$ ! c$**o%JJt$

!!$,,q!u"45TZZ(

!!$,,t||BQ/?"?@JJt$&&DJJACx
d
d
L5 :s   F)c              #      #      U R                  U R                  5      n U R                  U5      nUv   M4  ! [         a     g f = f! [         a     g f = f7f)N)r&   r   r!   r3   r   )r   r0   r%   s      r   runLZWDecoder.runN   sm     }}TZZ0IIdO G    	 $  	sB   A8 A A
AAAA
AAAA)r   r   r   r   r   r   N)	r   r	   r
   r   r   r&   r3   r6   r   r   r   r   r   r      s    2>r   r   c                 h    [        U 5      nSR                  [        U5      R                  5       5      $ )zB
>>> lzwdecode(bytes.fromhex('800b6050220c0c8501'))
b'-----A---B'
r   )r   joinr   r6   )datar   s     r   	lzwdecoder;   `   s)    
 
B88JrN&&())r   __main__Nzpdfminer.lzw)
ior   	Exceptionr   r   r;   r   doctestprinttestmodr   r   r   <module>rB      sI    	y 	Q Qj* z	.'//+, r   