§
    Æ‡tjí,  ã                   ó¤  — d dl Z d dlZd dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZ d dlmZ g d¢ZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdededefd„Zdededefd„Zdededefd„Zdededefd„Z de!de"defd„Z#e$e!eez  f         Z%e$e!ee&e         z  e&e         z  f         Z'e$e!eez  e"z  e%z  e'z  f         Z( G d„ d ¦  «        Z) G d!„ d"¦  «        Z*dS )#é    N)ÚIterable)ÚcalcsizeÚpackÚunpack)ÚBinaryIOÚClassVarÚcast)ÚPDFValueError))ú>LÚnumber)ú>BÚflags)r   Úretention_flags)r   Ú
page_assoc)r   Údata_lengthé€   é@   é?   éà   iÿÿÿé   l   ÿÿ é&   é1   é3   s   —JB2

é   Úbit_posÚvalueÚreturnc                 ó,   — t          || z	  dz  ¦  «        S )Nr   ©Úbool)r   r   s     úL/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pdfminer/jbig2.pyÚbit_setr"   (   s   € Ý�˜'Ñ! QÑ&Ñ'Ô'Ð'ó    Úflagc                 ó&   — t          | |z  ¦  «        S ©Nr   )r$   r   s     r!   Ú
check_flagr'   ,   s   € Ý��u‘ÑÔÐr#   Úmaskc                 óx   — t          d¦  «        D ]}t          || ¦  «        r
|| z  |z	  c S Œt          d¦  «        ‚©Né   zInvalid mask or value©Úranger"   r
   ©r(   r   r   s      r!   Úmasked_valuer/   0   sT   € Ý˜‘9”9ð -ð -ˆÝ�7˜DÑ!Ô!ð 	-Ø˜D‘L WÑ,Ð,Ð,Ð,ð	-õ Ð/Ñ
0Ô
0Ð0r#   c                 ó~   — t          d¦  «        D ]}t          || ¦  «        r|| |z	  z  |z  c S Œ t          d¦  «        ‚r*   r,   r.   s      r!   Ú
mask_valuer1   8   sY   € Ý˜‘9”9ð :ð :ˆÝ�7˜DÑ!Ô!ð 	:Ø˜T W™_Ñ-°'Ñ9Ð9Ð9Ð9ð	:õ Ð/Ñ
0Ô
0Ð0r#   ÚformatÚbufferc                 ór   — | dv sJ ‚t          t          t                   t          | |¦  «        ¦  «        \  }|S )N>   r   ú>Ir   )r	   ÚtupleÚintr   )r2   r3   Úresults      r!   Ú
unpack_intr9   @   s8   € ØÐ'Ð'Ð'Ð'Ð'Ý•E�#”J¥ v¨vÑ 6Ô 6Ñ7Ô7�H€VØ€Mr#   c                   ó¦   — e Zd ZdZdeddfd„Zdee         fd„Zde	fd„Z
ded	ed
edefd„Zded	ed
edefd„Zdeded
edefd„Zdeded
edefd„ZdS )ÚJBIG2StreamReaderz&Read segments from a JBIG2 byte streamÚstreamr   Nc                 ó   — || _         d S r&   ©r<   ©Úselfr<   s     r!   Ú__init__zJBIG2StreamReader.__init__Q   ó   € ØˆŒˆˆr#   c                 óÜ  — g }|                       ¦   «         sÕi }t          D ]�\  }}t          |¦  «        }| j                             |¦  «        }t          |¦  «        |k     rd|d<    nFt          ||¦  «        }t          | d|› �d ¦  «        }t          |¦  «        r ||||¦  «        }|||<   ŒŽ| 	                    d¦  «        s| 
                    |¦  «         |                       ¦   «         ¯Õ|S )NTÚ_errorÚparse_)Úis_eofÚ
SEG_STRUCTr   r<   ÚreadÚlenr9   ÚgetattrÚcallableÚgetÚappend)	r@   ÚsegmentsÚsegmentÚfield_formatÚnameÚ	field_lenÚfieldr   Úparsers	            r!   Úget_segmentszJBIG2StreamReader.get_segmentsT   s  € Ø')ˆØ—+’+‘-”-ð 	)Ø$&ˆGÝ&0ð 
&ð 
&Ñ"�˜dÝ$ \Ñ2Ô2�	Øœ×(Ò(¨Ñ3Ô3�Ý�u‘:”: 	Ò)Ð)Ø(,�G˜HÑ%Ø�EÝ" <°Ñ7Ô7�Ý   °  ¸Ñ=Ô=�Ý˜FÑ#Ô#ð :Ø"˜F 7¨E°5Ñ9Ô9�EØ %�˜‘�à—;’;˜xÑ(Ô(ð )Ø—’ Ñ(Ô(Ð(ð —+’+‘-”-ð 	)ð  ˆr#   c                 ó�   — | j                              d¦  «        dk    rdS | j                              dt          j        ¦  «         dS )Nr   r#   TéÿÿÿÿF)r<   rH   ÚseekÚosÚSEEK_CUR)r@   s    r!   rF   zJBIG2StreamReader.is_eofh   sA   € ØŒ;×Ò˜AÑÔ #Ò%Ð%Ø�4àŒK×Ò˜R¥¤Ñ-Ô-Ð-Ø�5r#   rO   r   rS   c                 ó€   — t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        dœS )N)ÚdeferredÚpage_assoc_longÚtype)r'   ÚHEADER_FLAG_DEFERREDÚHEADER_FLAG_PAGE_ASSOC_LONGr/   ÚSEG_TYPE_MASK)r@   rO   r   rS   s       r!   Úparse_flagszJBIG2StreamReader.parse_flagso   s<   € õ #Õ#7¸Ñ?Ô?Ý)Õ*EÀuÑMÔMÝ ¥°Ñ6Ô6ð
ð 
ð 	
r#   c                 ó~  — t          t          |¦  «        }g }g }|t          k     r6t          d¦  «        D ]%}|                     t          ||¦  «        ¦  «         Œ&nË|| j                             d¦  «        z  }t          d|¦  «        }t          t          |¦  «        }t          j        |dz   dz  ¦  «        }t          |¦  «        D ]_}	t          d| j                             d¦  «        ¦  «        }
t          d¦  «        D ]%}|                     t          ||
¦  «        ¦  «         Œ&Œ`|d         }t          |t          ¦  «        sJ ‚|d	k    rd}n|d
k    rd}nd}t          |¦  «        }t          |¦  «        D ]A}| j                             |¦  «        }t          ||¦  «        }|                     |¦  «         ŒB|||dœS )Né   é   r   r   é   r   r   r   é   é   r5   )Ú	ref_countÚretain_segmentsÚref_segments)r/   ÚREF_COUNT_SHORT_MASKÚREF_COUNT_LONGr-   rM   r"   r<   rH   r9   ÚREF_COUNT_LONG_MASKÚmathÚceilÚ
isinstancer7   r   )r@   rO   r   rS   ri   rj   rk   r   Úret_bytes_countÚ_ret_byte_indexÚret_byteÚseg_numÚ
ref_formatÚref_sizeÚ
_ref_indexÚref_dataÚrefs                    r!   Úparse_retention_flagsz'JBIG2StreamReader.parse_retention_flags{   sò  € õ !Õ!5°uÑ=Ô=ˆ	ØˆØˆà•~Ò%Ð%Ý  ™8œ8ð @ð @�Ø×&Ò&¥w¨w¸Ñ'>Ô'>Ñ?Ô?Ð?Ð?ð@ð �T”[×%Ò% aÑ(Ô(Ñ(ˆEÝ" 4¨Ñ/Ô/ˆIÝ$Õ%8¸)ÑDÔDˆIÝ"œi¨°Q©¸!Ñ(;Ñ<Ô<ˆOÝ#(¨Ñ#9Ô#9ð Gð G�Ý% d¨D¬K×,<Ò,<¸QÑ,?Ô,?Ñ@Ô@�Ý$ Q™xœxð Gð G�GØ#×*Ò*­7°7¸HÑ+EÔ+EÑFÔFÐFÐFðGð ˜(Ô#ˆÝ˜'¥3Ñ'Ô'Ð'Ð'Ð'Ø�cŠ>ˆ>ØˆJˆJØ˜ÒÐØˆJˆJàˆJå˜JÑ'Ô'ˆå 	Ñ*Ô*ð 	%ð 	%ˆJØ”{×'Ò'¨Ñ1Ô1ˆHÝ˜Z¨Ñ2Ô2ˆCØ×Ò Ñ$Ô$Ð$Ð$ð #Ø.Ø(ð
ð 
ð 	
r#   Úpagec                 ó¢   — t          t          |d         ¦  «        d         r-|| j                             d¦  «        z  }t	          d|¦  «        }|S )Nr   r]   re   r   )r	   ÚJBIG2SegmentFlagsr<   rH   r9   )r@   rO   r|   rS   s       r!   Úparse_page_assocz"JBIG2StreamReader.parse_page_assoc¨   sN   € ÝÕ! 7¨7Ô#3Ñ4Ô4Ð5FÔGð 	+Ø�T”[×%Ò% aÑ(Ô(Ñ(ˆEÝ˜d EÑ*Ô*ˆDØˆr#   Úlengthc                 óÌ   — |rat          t          |d         ¦  «        d         t          k    r|t          k    rt	          d¦  «        ‚| j                             |¦  «        |d<   |S )Nr   r^   z:Working with unknown segment length is not implemented yetÚraw_data)r	   r~   ÚSEG_TYPE_IMMEDIATE_GEN_REGIONÚDATA_LEN_UNKNOWNÚNotImplementedErrorr<   rH   )r@   rO   r€   rS   s       r!   Úparse_data_lengthz#JBIG2StreamReader.parse_data_length®   ss   € ð ð 		?åÕ&¨°Ô(8Ñ9Ô9¸&ÔAÝ0ò1ð 1àÕ-Ò-Ð-Ý)ØPñô ð ð '+¤k×&6Ò&6°vÑ&>Ô&>�˜
Ñ#àˆr#   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rA   ÚlistÚJBIG2SegmentrU   r    rF   r7   Úbytesr~   rb   ÚJBIG2RetentionFlagsr{   r   r†   © r#   r!   r;   r;   N   sW  € € € € € Ø0Ð0ð˜xð ¨Dð ð ð ð ð˜d <Ô0ð ð ð ð ð(˜ð ð ð ð ð

àð

ð ð

ð ð	

ð
 
ð

ð 

ð 

ð 

ð+
àð+
ð ð+
ð ð	+
ð
 
ð+
ð +
ð +
ð +
ðZ¨ð ¸Cð Èð ÐRUð ð ð ð ðàðð ðð ð	ð
 
ðð ð ð ð ð r#   r;   c                   ó>  — e Zd ZU dZd eee         g ¦  «         eee         g ¦  «        dœZe	e
         ed<   deddfd„Z	 dd
ee         dedefd„Z	 dd
ee         dedefd„Zdedefd„Zdededefd„Zde
dedefd„Zdededefd„Zdededefd„Zdedefd„ZdS )ÚJBIG2StreamWriterz.Write JBIG2 segments to a file in JBIG2 formatr   )ri   rk   rj   ÚEMPTY_RETENTION_FLAGSr<   r   Nc                 ó   — || _         d S r&   r>   r?   s     r!   rA   zJBIG2StreamWriter.__init__Ë   rB   r#   TrN   Úfix_last_pagec                 óP  — d}d }d }|D ]¼}|                       |¦  «        }| j                             |¦  «         |t          |¦  «        z  }t	          t
          d z  |d         ¦  «        }|rYt	          t
          |                     d¦  «        ¦  «        }t	          t          |d         ¦  «        d         t          k    rd }Œ¸|r|}Œ½|r^|r\|�Z|  	                    |dz   |¦  «        }|                       |¦  «        }| j                             |¦  «         |t          |¦  «        z  }|S )Nr   r   r   r   r^   r   )
Úencode_segmentr<   ÚwriterI   r	   r7   rL   r~   ÚSEG_TYPE_END_OF_PAGEÚget_eop_segment)	r@   rN   r”   Údata_lenÚcurrent_pageru   rO   ÚdataÚseg_pages	            r!   Úwrite_segmentsz JBIG2StreamWriter.write_segmentsÎ   s?  € ð
 ˆØ#'ˆØ"ˆàð 	,ð 	,ˆGØ×&Ò& wÑ/Ô/ˆDØŒK×Ò˜dÑ#Ô#Ð#Ø�˜D™	œ	Ñ!ˆHå�3 ™: w¨xÔ'8Ñ9Ô9ˆGàð 	,Ý¥ W§[¢[°Ñ%>Ô%>Ñ?Ô?�õ Õ*¨G°GÔ,<Ñ=Ô=¸fÔEÝ+ò,ð ,ð $(�L�LØð ,Ø#+�Løàð 	"˜\ð 	"¨wÐ/BØ×*Ò*¨7°Q©;¸ÑEÔEˆGØ×&Ò& wÑ/Ô/ˆDØŒK×Ò˜dÑ#Ô#Ð#Ø�˜D™	œ	Ñ!ˆHàˆr#   c                 óø  — t           }t          }|t          d|¦  «        z  }t          dd¦  «        }||z  }| j                             |¦  «         t          |¦  «        }||                      ||¦  «        z  }d}|D ]}t          t          |d         ¦  «        }Œ|rdnd}	|  	                    ||	z   ¦  «        }
|  
                    |
¦  «        }| j                             |¦  «         |t          |¦  «        z  }|S )Nr   r   r   r   r   é   )ÚFILE_HEADER_IDÚFILE_HEAD_FLAG_SEQUENTIALr   r<   r—   rI   rž   r	   r7   Úget_eof_segmentr–   )r@   rN   r”   ÚheaderÚheader_flagsÚnumber_of_pagesrš   ru   rO   Úseg_num_offsetÚeof_segmentrœ   s               r!   Ú
write_filezJBIG2StreamWriter.write_fileñ   s  € õ
  ˆÝ0ˆØ•$�t˜\Ñ*Ô*Ñ*ˆõ ˜t Q™-œ-ˆØ�/Ñ!ˆØŒ×Ò˜&Ñ!Ô!Ð!Ý�v‘;”;ˆà�D×'Ò'¨°-Ñ@Ô@Ñ@ˆàˆØð 	3ð 	3ˆGÝ�3 ¨Ô 1Ñ2Ô2ˆGˆGà+Ð2˜˜°ˆØ×*Ò*¨7°^Ñ+CÑDÔDˆØ×"Ò" ;Ñ/Ô/ˆàŒ×Ò˜$ÑÔÐØ•C˜‘I”IÑˆàˆr#   rO   c                 óØ   — d}t           D ]_\  }}|                     |¦  «        }t          | d|› �d ¦  «        }t          |¦  «        r |||¦  «        }nt	          ||¦  «        }||z  }Œ`|S )Nr#   Úencode_)rG   rL   rJ   rK   r   )r@   rO   rœ   rP   rQ   r   ÚencoderrS   s           r!   r–   z JBIG2StreamWriter.encode_segment  sˆ   € ØˆÝ",ð 	ð 	ÑˆL˜$Ø—K’K Ñ%Ô%ˆEÝ˜dÐ$4¨dÐ$4Ð$4°dÑ;Ô;ˆGÝ˜Ñ Ô ð 2Ø˜  wÑ/Ô/��å˜\¨5Ñ1Ô1�Ø�E‰MˆDˆDØˆr#   r   c                 óD  — d}|                      d¦  «        r
|t          z  }d|v r||d         rt          n|z  }n9|t          t          |                      dd¦  «        ¦  «        dk    rt          n|z  }|t          t          |d         ¦  «        z  }t          d|¦  «        S )Nr   r\   r]   r|   éÿ   r^   r   )rL   r_   r`   r	   r7   r1   ra   r   )r@   r   rO   r   s       r!   Úencode_flagszJBIG2StreamWriter.encode_flags  s±   € ØˆØ�9Š9�ZÑ Ô ð 	*ØÕ)Ñ)ˆEà Ð%Ð%Ø°EÐ:KÔ4LÐWÕ0Ð0ÐRWÑWˆEˆEàå�˜WŸ[š[¨°Ñ3Ô3Ñ4Ô4°sÒ:Ð:õ ,Ð+àñˆEð 	•�M¨5°¬=Ñ9Ô9Ñ9ˆå�D˜%Ñ Ô Ð r#   c                 óÐ  — g }d}|d         }t          |t          ¦  «        sJ ‚t          t          t                   |                     dg ¦  «        ¦  «        }|dk    rJt          t          |¦  «        }t          |¦  «        D ]\  }}	|	r|d|z  z  }Œ| 	                    |¦  «         n±t          j        |dz   dz  ¦  «        }
dd|
z  z   }t          t          t          ¦  «        d	z  }| 	                    |¦  «         t          |
¦  «        D ]M}d
}||dz  |dz  dz   …         }t          |¦  «        D ]\  }}||rd|z  n|z  }Œ| 	                    |¦  «         ŒNt          t          t                   |                     dg ¦  «        ¦  «        }t          t          |d         ¦  «        }|dk    rd}n|dk    rd}nd}|D ]}||z  }| 	                    |¦  «         Œt          |g|¢R Ž S )Nr   ri   rj   é   r   rf   r   ÚBé   r   rk   r   rg   rh   ÚIÚL)rq   r7   r	   r‹   r    rL   r1   rl   Ú	enumeraterM   ro   rp   rm   r-   r   )r@   r   rO   r   Úflags_formatri   rj   Ú
flags_byteÚ	ref_indexÚ
ref_retainÚbytes_countÚflags_dwordÚ
byte_indexrt   Úret_partr   Úret_segrk   ru   rv   rz   s                        r!   Úencode_retention_flagsz(JBIG2StreamWriter.encode_retention_flags-  s#  € ð
 ˆØˆØ˜+Ô&ˆ	Ý˜)¥SÑ)Ô)Ð)Ð)Ð)Ý�t¥Dœz¨5¯9ª9Ð5FÈÑ+KÔ+KÑLÔLˆà˜Š>ˆ>Ý#Õ$8¸)ÑDÔDˆJÝ)2°?Ñ)CÔ)Cð 1ð 1Ñ%�	˜:Øð 1Ø ! y¡.Ñ0�JøØ�LŠL˜Ñ$Ô$Ð$Ð$åœ) Y°¡]°aÑ$7Ñ8Ô8ˆKØ 3¨Ñ#4Ñ5ˆLÝ$Õ%9½>ÑJÔJÈbÑPˆKØ�LŠL˜Ñ%Ô%Ð%å# KÑ0Ô0ð 'ð '�
Ø�Ø*¨:¸©>¸JÈ¹NÈQÑ<NÐ+NÔO�Ý(1°(Ñ(;Ô(;ð Fð FÑ$�G˜WØ°Ð E  W¡ ¸XÑE�H�Hà—’˜XÑ&Ô&Ð&Ð&å�D¥œI u§y¢y°ÀÑ'DÔ'DÑEÔEˆå•s˜G HÔ-Ñ.Ô.ˆØ�cŠ>ˆ>ØˆJˆJØ˜ÒÐØˆJˆJàˆJàð 	ð 	ˆCØ˜JÑ&ˆLØ�LŠL˜ÑÔÐÐå�LÐ) 5Ð)Ð)Ð)Ð)r#   c                 ób   — t          d|¦  «        }|t          t          |d         ¦  «        z  }|S )Nr   r‚   )r   r	   r�   )r@   r   rO   rœ   s       r!   Úencode_data_lengthz$JBIG2StreamWriter.encode_data_length\  s/   € Ý�D˜%Ñ Ô ˆØ••U˜G JÔ/Ñ0Ô0Ñ0ˆØˆr#   Ú
seg_numberÚpage_numberc                 ó8   — ddt           dœ||dt          j        dœS ©Nr   F)r\   r^   r#   )r   r   r   r   r‚   r   )r˜   r‘   r’   )r@   rÃ   rÄ   s      r!   r™   z!JBIG2StreamWriter.get_eop_segmenta  s/   € àØ"'Õ1EÐFÐFØ Ø%ØÝ0ÔFð
ð 
ð 	
r#   c                 ó8   — ddt           dœ|ddt          j        dœS rÆ   )ÚSEG_TYPE_END_OF_FILEr‘   r’   )r@   rÃ   s     r!   r£   z!JBIG2StreamWriter.get_eof_segmentk  s/   € àØ"'Õ1EÐFÐFØ ØØÝ0ÔFð
ð 
ð 	
r#   )T)r‡   rˆ   r‰   rŠ   r	   r‹   r7   r    r’   r   rŽ   Ú__annotations__r   rA   r   rŒ   rž   r©   r�   r–   r~   r¯   rÀ   rÂ   r™   r£   r�   r#   r!   r‘   r‘   Â   sý  € € € € € € Ø8Ð8ð Ø˜˜T #œY¨Ñ+Ô+Ø˜4  T¤
¨BÑ/Ô/ð<ð <Ð˜8Ð$7Ô8ð ð ñ ð˜xð ¨Dð ð ð ð ð #ð!ð !à˜<Ô(ð!ð ð!ð 
ð	!ð !ð !ð !ðL #ðð à˜<Ô(ðð ðð 
ð	ð ð ð ð<
 lð 
°uð 
ð 
ð 
ð 
ð!Ð"3ð !¸lð !Èuð !ð !ð !ð !ð$-*à"ð-*ð ð-*ð 
ð	-*ð -*ð -*ð -*ð^¨ð °lð Àuð ð ð ð ð

¨#ð 
¸Cð 
ÀLð 
ð 
ð 
ð 
ð
¨#ð 
°,ð 
ð 
ð 
ð 
ð 
ð 
r#   r‘   )+ro   rY   Úcollections.abcr   Ústructr   r   r   Útypingr   r   r	   Úpdfminer.pdfexceptionsr
   rG   r_   r`   ra   rl   rn   rm   r„   rƒ   r˜   rÈ   r¡   r¢   r7   r    r"   r'   r/   r1   Ústrr�   r9   Údictr~   r‹   rŽ   rŒ   r;   r‘   r�   r#   r!   ú<module>rÐ      sn  ðØ €€€Ø 	€	€	€	Ø $Ð $Ð $Ð $Ð $Ð $Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð €
ð "Ð Ø(Ð à€à!Ð Ø Ð Ø€àÐ ð !#Ð ØÐ ØÐ ð 5€Ø&Ð ð(�Sð ( ð (¨ð (ð (ð (ð (ð�Sð  ð ¨ð ð ð ð ð1�sð 1 3ð 1¨3ð 1ð 1ð 1ð 1ð1�Sð 1 ð 1¨ð 1ð 1ð 1ð 1ð�sð  Eð ¨cð ð ð ð ð ˜˜c D™j˜Ô)Ð Ø˜3  d¨3¤i¡°$°t´*Ñ <Ð<Ô=Ð ØØØˆ3�J�ÑÐ*Ñ*Ð-@Ñ@ðBô€ðqð qð qð qð qñ qô qð qðhq
ð q
ð q
ð q
ð q
ñ q
ô q
ð q
ð q
ð q
r#   