
    Mi(                        S SK Jr  S SKrS SKrS SKJr  S SKrS SKrS SK	J
r
Jr  S SKJr  S SKJrJrJrJrJrJrJr  S rSSS jjrSSS	 jjrSS
 jrSS jr    S             SS jjrg)    )annotationsN)List)	get_charsdeduplicate_chars)flatten)BlocksCharsLineLinesPagesSpanSpansc                X    [        U 5      S:w  a  g[        R                  " U 5      nUS:H  $ )N   FSm)lenunicodedatacategory)charr   s     k/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/pdftext/pdf/pages.pyis_math_symbolr      s+    
4yA~##D)Ht    c                   U  GH@  nS n[        US   5      S:  a  M  US   R                  US   R                  :  a  M<  [        US   5       GH  u  pVUS:H  =(       d    US   R	                  5       (       + nU[        US   5      S-
  :H  =(       d!    US   US-      S   R	                  5       (       + nUS   R                  n	US   R
                  n
US   R                  nU	[        SUS   R                  5      -  U:*  nU=(       d(    U	[        SUS   US-      S   R                  5      -  U:*  nU=(       d    U	[        SUS   R                  5      -  U:*  n[        [        US   5       VVs/ s H2  u  nnX:w  d  M  U
US   R
                  US   R                  U-  -
  :  PM4     snn5      nU=(       d    XS   R
                  :  nU=(       d    XS   US-      S   R
                  :  n[        [        US   5       VVs/ s H2  u  nnX:w  d  M  UUS   R                  US   R                  U-  -   :  PM4     snn5      nU=(       d    XS   R                  :  nU=(       d    XS   US-      S   R                  :  nUS   R	                  5       n[        [        U5      S:H  =(       d    UR                  5       UR                  5       =(       d    [        U5      /5      n[        U=(       d    UU=(       d    UUUU/5      (       a  SUS'   O,[        U=(       d    UU=(       d    UUUU/5      (       a  SUS	'   UnGM     GMC     g s  snnf s  snnf )
Nspans   bboxr   textr   Tsuperscript	subscript)r   heightwidth	enumeratestripy_starty_endmaxanyallisdigitisalnumr   )linesheight_thresholdline_distance_thresholdline	prev_spanispanis_firstis_lastspan_heightspan_topspan_bottomline_fullheightnext_fullheightprev_fullheightjsabove
prev_above
next_abovebelow
prev_below
next_below	span_textspan_text_okays                            r   assign_scriptsrD      s   	tG}! <f!3!33 g/GAAv>Yv%6%<%<%>!>H3tG}-11]gq1u9Mf9U9[9[9]5]Gv,--KF|++Hv,,,K)C4<3F3F,GGK[[O%vs1d7mAPQE>RSY>Z>a>a7b)bfv)vO&l+Ay?P?W?W8X*X\l*lOqz{  AH  |I  rJ  U  rJimijlm  NO  NTdQvY%6%669I9ILc9c%cd  rJ  U  VE!IX&0A0I0I%IJ SHG}QU/CF/K/S/S$SJr{  }A  BI  }J  sK  V  sKjnjkmn  OP  OUe&	!F):J:JMd:d(de  sK  V  WE!J[V3D3J3J%JJ TKw-A2Fv2N2T2T$TJV**,I Y1$;	(9(9(;!!#@~i'@" N
  3O)z   '+]# 3O)z   %)[!IU 0 ( U Vs   .M	>)M	M)Mc                  ^^^ / mS mUU4S jnU  GHJ  mT(       a  TS   mT(       d	  U" 5         M   [        UU4S jS 5       5      (       a	  U" 5         MD  TS   TS   :w  a	  U" 5         MY  TS   R                  S5      (       d  TS   R                  S5      (       a	  U" 5         M  [        TS	   S
   TS	   S
   TS	   R                  U-  -
  :  TS	   S   TS	   R                  U-  TS	   S
   -   :  TS	   S   TS	   S   :  /5      (       a
  U" 5         GM  TS==   TS   -  ss'   TS   TS'   TS	   R	                  TS	   5      TS	'   TS   R                  T5        GMM     T$ )Nc                 `   > TR                  T S   T S   T S   T S   T S   T S   T /SS.5        g )Nr   r   rotationfontchar_idx )r   r   rG   rH   char_start_idxchar_end_idxcharsurlappend)r   r   s   r   
span_breakget_spans.<locals>.span_breakQ   sI    LLZ(L":. ,V	
 		r   c              3  F   >#    U  H  nTS    U   TS    U   :g  v   M     g7f)rH   N ).0kr   r1   s     r   	<genexpr>get_spans.<locals>.<genexpr>f   s(     _;^atF|A$v,q/1;^   !)nameflagssizeweightrG   r   
r   r      r   r   r   rI   rL   rM   )r'   endswithr(   r    mergerP   )rM   superscript_height_thresholdr-   rQ   r   r1   r   s       @@@r   	get_spansre   M   s   ED
 9DL _;^___L
tJ//L <  ((DL,A,A$,G,GL LOtF|Af1D1DG^1^^_LOtF|225QQUYZ`UabcUdddLOd6l1o-
  
 LVV$#J/^F|))$v,7VWT"E H Lr   c                  ^^^ / mS nUU4S jnU  H  mT(       a  TS   nU(       d	  U" 5         M  US   S   S   m[        U4S jS 5       5      (       a	  U" 5         MM  TS   US   :w  a!  [        TS   US   -
  5      S:  a	  U" 5         Mz  TS	   R                  US	   R                  :  a	  U" 5         M  US   R	                  T5        US	   R                  TS	   5      US	'   M     T$ )
Nc                 >   > T R                  T/TS   TS   S.5        g )Nr   rG   )r   r   rG   rO   )r+   r1   s   r   
line_breakget_lines.<locals>.line_break   s!    vtF|jIYZ[r   rS   r   r   c              3  F   >#    U  H  nTR                  U5      v   M     g 7f)N)rb   )rV   suffix	last_texts     r   rX   get_lines.<locals>.<genexpr>   s     Gfy!!&))rZ   )r`   r_   rG   -   r   )r'   absr$   r%   rP   rc   )r   r.   rh   rl   r+   r1   s      @@@r   	get_linesrp      s    ED\ 9DL M"%f-	GGGGL
tJ//CZ8H4PZK[8[4\`b4bL <$v,"4"44LWT"F|))$v,7V1 4 Lr   c                2  ^^ U (       d  / $ / n/ n[        [        U 5      S-
  5       Hn  nX   S   R                  nXS-      S   R                  nUR                  [	        US   US   -
  5      5        UR                  [	        US   US   -
  5      5        Mp     SnU(       a  [
        R                  " U5      =(       d    UnSnU(       a  [
        R                  " U5      =(       d    UnSnXh-  n	Xx-  n
UU4S jn/ nU  GH~  mU(       d  UR                  T/TS   TS   S.5        M)  US	   mTS
   S	   nUS   R                  nTS   R                  n[	        US   US   -
  5      n[	        US   US   -
  5      nUU	::  a  UU
::  a	  U" 5         M  US   R                  TS   R                  :  n[        TS
   5      S:X  a  U(       a  UU
::  a	  U" 5         M  US   R                  TS   R                  :  nU(       a  UU
::  a
  U" 5         GM  UU
S-  :  a*  US   R                  TS   R                  :  a
  U" 5         GMA  TS   R                  TS   5      S:  a
  U" 5         GMf  UR                  T/TS   S.5        GM     / n[        [        U5      5       H|  nU(       d  UR                  X   5        M  US	   nX   nUS   R                  US   5      S:  a(  US
   US
   -   US   R                  US   5      S.US	'   Mk  UR                  U5        M~     U$ )Nr   r   r   皙?g      ?c                 b   > T S   R                  T5        T S   R                  TS   5      T S'   g )Nr+   r   )rP   rc   )blockr.   s   r   block_mergeget_blocks.<locals>.block_merge   s1    gd#f++DL9fr   rG   )r+   r   rG   rS   r+   g?)r+   r   )ranger   centerrP   ro   
statisticsmedianx_startx_endintersection_pctrc   )r+   x_diffsy_diffsr0   prev_centercurr_centermedian_x_gapmedian_y_gaptolerance_factorallowed_x_gapallowed_y_gapru   blocks	last_linelast_centercurrent_centerx_diffy_diffline_x_indented_startline_x_indented_endmerged_blocks
prev_block
curr_blockrt   r.   s                          @@r   
get_blocksr      s2   	GG3u:>"hv&--El6*11s;q>KN:;<s;q>KN:;<	 # L!((1A\L!((1A\ 3M 3M: FMMTFDLdS]N^_`r
'N2&	'..f,,^A&Q78^A&Q78 ]"v'>M !*& 1 9 9DL<P<P PuW~!#(=&MBYM (/55V8J8JJ6]#:M MC''If,=,C,Cd6lFZFZ,ZM =))$v,7!;MV=>U Z M3v;  +"2&
Y
f..z&/ABQF#G,z'/BB"6*00F1CD!M"
   ,    r   c           
     J   / nU GH  nU R                  U5      nU(       a  [        U5        U R                  U5      nUR                  5       n	UR                  5       n
[        R
                  " [        U
S   U
S   -
  5      5      n[        R
                  " [        U
S   U
S   -
  5      5      nSn UR                  5       n[        [        XX5      5      n[        XUS9n[        U5      n[        UXES9  [        U5      nUR                  UU
UUUUS.5        GM     U$ !    Nb= f)Nr   r   r   ra   )rd   r-   )r,   r-   )pager   r!   r    rG   r   )get_pager   get_textpageget_bboxmathceilro   get_rotationr   r   re   rp   rD   r   rP   )pdf
page_rangeflatten_pdfquote_looseboxrd   r-   pagespage_idxr   textpage	page_bbox
page_widthpage_heightpage_rotationrM   r   r+   r   s                     r   	get_pagesr     s%    E||H%DM<<)D$$&!%	YYs9Q<)A,#>?@
iiIaL9Q<$? @A	 --/M ")H"_`%  uL  M% u/K}E"!%
 	1 @ L#	s   0DD")g?rr   )r+   r   r,   floatr-   r   )rM   r	   rd   r   r-   r   returnr   )r   r   r   r   )r+   r   r   r   )TTgffffff?rr   )r   zpdfium.PdfDocumentr   rw   r   boolr   r   rd   r   r-   r   r   r   )
__future__r   r   ry   typingr   r   	pypdfium2pdfiumpdftext.pdf.charsr   r   pdftext.pdf.utilsr   pdftext.schemar   r	   r
   r   r   r   r   r   rD   re   rp   r   r   rU   r   r   <module>r      s    "      : % I I I4n4n!HZ@ *-%(*	** * 	*
 #(* #* *r   