Ë
    ìì�iTI  ã                   ó|  — d dl Z d dlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d „ d!e«      Zy)"é    Né   )ÚPDFTextDevice)ÚPDFUnicodeNotDefined)ÚLTContainer)ÚLTPage)ÚLTText)ÚLTLine)ÚLTRect)ÚLTCurve)ÚLTFigure)ÚLTImage)ÚLTChar)Ú
LTTextLine)Ú	LTTextBox)ÚLTTextBoxVertical)ÚLTTextGroup)Úapply_matrix_pt)Úmult_matrix)Úq)Úbbox2strc                   óJ   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zy)ÚPDFLayoutAnalyzerNc                 óZ   — t        j                  | |«       || _        || _        g | _        y ©N)r   Ú__init__ÚpagenoÚlaparamsÚ_stack©ÚselfÚrsrcmgrr   r   s       úw/var/www/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/lib/python3.12/site-packages/pdfminer/converter.pyr   zPDFLayoutAnalyzer.__init__   s*   € Ü×Ñ˜t WÔ-ØˆŒØ ˆŒØˆŒØó    c                 óÜ   — |j                   \  }}}}t        |||f«      \  }}t        |||f«      \  }}ddt        ||z
  «      t        ||z
  «      f}t        | j                  |«      | _        y )Nr   )Úmediaboxr   Úabsr   r   Úcur_item)r    ÚpageÚctmÚx0Úy0Úx1Úy1r%   s           r"   Ú
begin_pagezPDFLayoutAnalyzer.begin_page$   so   € ØŸ=™=ÑˆˆR��RÜ" 3¨¨R¨Ó1‰ˆˆRÜ" 3¨¨R¨Ó1‰ˆˆRØ�qœ#˜b ™e›*¤c¨"¨R©%£jÐ1ˆÜ˜tŸ{™{¨HÓ5ˆŒØr#   c                 ó  — | j                   rJ ‚t        | j                  t        «      sJ ‚| j                  �%| j                  j                  | j                  «       | xj                  dz  c_        | j                  | j                  «       y )Nr   )r   Ú
isinstancer'   r   r   Úanalyzer   Úreceive_layout)r    r(   s     r"   Úend_pagezPDFLayoutAnalyzer.end_page,   se   € Ø—;’;ÐˆÜ˜$Ÿ-™-¬Ô0Ð0Ð0Ø�=‰=Ð$Ø�M‰M×!Ñ! $§-¡-Ô0Ø�Š�qÑ�Ø×Ñ˜DŸM™MÔ*Ør#   c                 óš   — | j                   j                  | j                  «       t        ||t	        || j
                  «      «      | _        y r   )r   Úappendr'   r   r   r)   )r    ÚnameÚbboxÚmatrixs       r"   Úbegin_figurezPDFLayoutAnalyzer.begin_figure5   s6   € Ø�‰×Ñ˜4Ÿ=™=Ô)Ü   t¬[¸ÀÇÁÓ-JÓKˆŒØr#   c                 óÈ   — | j                   }t        | j                   t        «      sJ ‚| j                  j	                  «       | _         | j                   j                  |«       y r   )r'   r0   r   r   ÚpopÚadd)r    Ú_Úfigs      r"   Ú
end_figurezPDFLayoutAnalyzer.end_figure:   sF   € Ø�m‰mˆÜ˜$Ÿ-™-¬Ô2Ð2Ð2ØŸ™Ÿ™Ó)ˆŒØ�‰×Ñ˜#ÔØr#   c                 ó4  — t        | j                  t        «      sJ ‚t        ||| j                  j                  | j                  j
                  | j                  j                  | j                  j                  f«      }| j                  j                  |«       y r   )	r0   r'   r   r   r*   r+   r,   r-   r<   )r    r6   ÚstreamÚitems       r"   Úrender_imagezPDFLayoutAnalyzer.render_imageA   sr   € Ü˜$Ÿ-™-¬Ô2Ð2Ð2Ü�t˜VØŸ™×(Ñ(¨$¯-©-×*:Ñ*:ØŸ™×(Ñ(¨$¯-©-×*:Ñ*:ð<ó=ˆð 	�‰×Ñ˜$ÔØr#   c                 ó4  — dj                  d„ |D «       «      }|dk(  r‡|d   \  }}}	|d   \  }}
}t        | j                  ||	f«      \  }}	t        | j                  |
|f«      \  }
}||
k(  s|	|k(  r5| j                  j	                  t        |j                  ||	f|
|f«      «       y |dk(  rì|d   \  }}}	|d   \  }}
}|d   \  }}}|d   \  }}}t        | j                  ||	f«      \  }}	t        | j                  |
|f«      \  }
}t        | j                  ||f«      \  }}t        | j                  ||f«      \  }}||
k(  r||k(  r
||k(  r||	k(  s|	|k(  rC|
|k(  r>||k(  r9||k(  r4| j                  j	                  t        |j                  ||	||f«      «       y g }|D ]M  }t        dt        |«      d«      D ]2  }|j                  t        | j                  ||   ||dz      f«      «       Œ4 ŒO | j                  j	                  t        |j                  |«      «       y )	NÚ c              3   ó&   K  — | ]	  }|d    –— Œ y­w)r   N© )Ú.0Úxs     r"   ú	<genexpr>z/PDFLayoutAnalyzer.paint_path.<locals>.<genexpr>J   s   è ø€ Ò+ ˜˜!�Ñ+ùs   ‚Úmlr   r   Úmlllhé   é   )Újoinr   r)   r'   r<   r	   Ú	linewidthr
   ÚrangeÚlenr5   r   )r    ÚgstateÚstrokeÚfillÚevenoddÚpathÚshaper=   r*   r+   r,   r-   Úx2Úy2Úx3Úy3ÚptsÚpÚis                      r"   Ú
paint_pathzPDFLayoutAnalyzer.paint_pathI   s$  € Ø—‘Ñ+ dÔ+Ó+ˆØ�DŠ=à˜q™'‰KˆQ��BØ˜q™'‰KˆQ��BÜ& t§x¡x°"°b°Ó:‰HˆR�Ü& t§x¡x°"°b°Ó:‰HˆR�Ø�RŠx˜2 š8Ø—‘×!Ñ!¤&¨×)9Ñ)9¸BÀ¸8ÀbÈ"ÀXÓ"NÔOØØ�GÒà˜q™'‰KˆQ��BØ˜q™'‰KˆQ��BØ˜q™'‰KˆQ��BØ˜q™'‰KˆQ��BÜ& t§x¡x°"°b°Ó:‰HˆR�Ü& t§x¡x°"°b°Ó:‰HˆR�Ü& t§x¡x°"°b°Ó:‰HˆR�Ü& t§x¡x°"°b°Ó:‰HˆR�Ø�r’˜b Bšh¨2°ª8¸¸bºØ�r’˜b Bšh¨2°ª8¸¸bºØ—‘×!Ñ!¤&¨×)9Ñ)9¸BÀÀBÈÐ;KÓ"LÔMØàˆØò 	FˆAÜ˜1œc !›f aÓ(ò F�Ø—
‘
œ?¨4¯8©8°a¸±d¸A¸aÀ¹c¹F°^ÓDÕEñFð	Fð 	�‰×Ñœ' &×"2Ñ"2°CÓ8Ô9Ør#   c           
      óN  — 	 |j                  |«      }t        |t        «      sJ |«       ‚	 |j                  |«      }|j                  |«      }	t        ||||||||	«      }
| j                  j                  |
«       |
j                  S # t        $ r | j	                  ||«      }Y Œxw xY wr   )Ú	to_unichrr0   Ústrr   Úhandle_undefined_charÚ
char_widthÚ	char_dispr   r'   r<   Úadv)r    r8   ÚfontÚfontsizeÚscalingÚriseÚcidÚtextÚ	textwidthÚtextdisprB   s              r"   Úrender_charzPDFLayoutAnalyzer.render_charj   sž   € ð	9Ø—>‘> #Ó&ˆDÜ˜d¤CÔ(Ð.¨$Ó.Ñ(ð —O‘O CÓ(ˆ	Ø—>‘> #Ó&ˆÜ�f˜d H¨g°t¸TÀ9ÈhÓWˆØ�‰×Ñ˜$ÔØ�x‰xˆøô $ò 	9Ø×-Ñ-¨d°CÓ8ŠDð	9ús   ‚(B ÂB$Â#B$c                 óD   — t        j                  d|›d|›�«       d|› d�S )Nzundefined: ú, z(cid:ú))ÚloggingÚinfo)r    rh   rl   s      r"   rd   z'PDFLayoutAnalyzer.handle_undefined_charv   s!   € Ü�ŠªD±#Ð6Ô7Ø�s�e˜1ˆ~Ðr#   c                  ó   — y r   rG   ©r    Últpages     r"   r2   z PDFLayoutAnalyzer.receive_layoutz   ó   € Ør#   ©r   N)Ú__name__Ú
__module__Ú__qualname__r   r.   r3   r9   r?   rC   r`   rp   rd   r2   rG   r#   r"   r   r      s5   „ óòòòò
òòòB
òór#   r   c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚPDFPageAggregatorNc                 óD   — t         j                  | |||¬«       d | _        y ©N)r   r   )r   r   Úresultr   s       r"   r   zPDFPageAggregator.__init__‚   s#   € Ü×"Ñ" 4¨¸È(Ð"ÔSØˆŒØr#   c                 ó   — || _         y r   ©r‚   rw   s     r"   r2   z PDFPageAggregator.receive_layout‡   s   € ØˆŒØr#   c                 ó   — | j                   S r   r„   ©r    s    r"   Ú
get_resultzPDFPageAggregator.get_result‹   s   € Ø�{‰{Ðr#   rz   )r{   r|   r}   r   r2   r‡   rG   r#   r"   r   r   €   s   „ óò
ór#   r   c                   ó   — e Zd Zdd„Zy)ÚPDFConverterNc                 óD   — t         j                  | |||¬«       || _        y r�   )r   r   Úoutfp)r    r!   r‹   r   r   s        r"   r   zPDFConverter.__init__“   s#   € Ü×"Ñ" 4¨¸È(Ð"ÔSØˆŒ
Ør#   rz   )r{   r|   r}   r   rG   r#   r"   r‰   r‰   ‘   s   „ ôr#   r‰   c                   ó0   — e Zd Z	 	 dd„Zd„ Zd„ Zd„ Zd„ Zy)ÚTextConverterNc                 óT   — t         j                  | ||||¬«       || _        || _        y r�   )r‰   r   Ú
showpagenoÚimagewriter)r    r!   r‹   r   r   r�   r�   s          r"   r   zTextConverter.__init__�   s-   € ä×Ñ˜d G¨U¸6ÈHÐÔUØ$ˆŒØ&ˆÔØr#   c                 ó:   — | j                   j                  |«       y r   ©r‹   Úwrite©r    rm   s     r"   Ú
write_textzTextConverter.write_text¤   ó   € Ø�
‰
×Ñ˜ÔØr#   c                 óš   ‡ ‡— ˆˆ fd„Š‰ j                   r‰ j                  d|j                  z  «        ‰|«       ‰ j                  d«       y )Nc                 óZ  •— t        | t        «      r| D ]
  } ‰|«       Œ n/t        | t        «      r‰j                  | j	                  «       «       t        | t
        «      r‰j                  d«       y t        | t        «      r)‰j                  �‰j                  j                  | «       y y y )Nú
)	r0   r   r   r•   Úget_textr   r   r�   Úexport_image)rB   ÚchildÚrenderr    s     €€r"   r�   z,TextConverter.receive_layout.<locals>.render©   s‰   ø€ Ü˜$¤Ô,Ø!ò "�EÙ˜5•Mñ"ä˜D¤&Ô)Ø—‘ §¡£Ô0Ü˜$¤	Ô*Ø—‘ Õ%Ü˜D¤'Ô*Ø×#Ñ#Ð/Ø×$Ñ$×1Ñ1°$Õ7ð 0ð +r#   zPage %s
ú)r�   r•   Úpageid)r    rx   r�   s   ` @r"   r2   zTextConverter.receive_layout¨   s<   ù€ õ
	8ð �?Š?Ø�O‰O˜K¨&¯-©-Ñ7Ô8ÙˆvŒØ�‰˜ÔØr#   c                 óL   — | j                   €y t        j                  | ||«       y r   )r�   r‰   rC   )r    r6   rA   s      r"   rC   zTextConverter.render_image½   s&   € Ø×ÑÐ#ØÜ×!Ñ! $¨¨fÔ5Ør#   c                  ó   — y r   rG   )r    rS   rT   rU   rV   rW   s         r"   r`   zTextConverter.paint_pathÃ   ry   r#   )r   NFN)r{   r|   r}   r   r•   r2   rC   r`   rG   r#   r"   r�   r�   ›   s!   „ à:>Ø/3óòòò*ór#   r�   c                   ó¦   — e Zd ZdddddddœZddd	œZd
dd
dddddddddœddifd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd"d„Zd„ Zd„ Zd„ Zd „ Zd!„ Zy)#ÚHTMLConverterÚyellowÚmagentaÚcyanÚredÚblackÚgray)ÚfigureÚtextlineÚtextboxÚ	textgroupÚcurver(   Úblue)r¬   Úcharr   Ng      ð?ÚnormalTé2   r   )r®   r(   r°   c                 óž  — t         j                  | ||||¬«       || _        || _        || _        || _        |	| _        |
| _        || _        || _	        |rJ| j                  j                  | j                  «       | j                  j                  | j                  «       | j                  | _        d | _        g | _        | j!                  «        y r�   )r‰   r   ÚscaleÚ	fontscaleÚ
layoutmoder�   Ú
pagemarginr�   Úrect_colorsÚtext_colorsÚupdateÚRECT_COLORSÚTEXT_COLORSÚ_yoffsetÚ_fontÚ
_fontstackÚwrite_header)r    r!   r‹   r   r   r´   rµ   r¶   r�   r·   r�   Údebugr¸   r¹   s                 r"   r   zHTMLConverter.__init__Ú   s·   € ô
 	×Ñ˜d G¨U¸6ÈHÐÔUØˆŒ
Ø"ˆŒØ$ˆŒØ$ˆŒØ$ˆŒØ&ˆÔØ&ˆÔØ&ˆÔÙØ×Ñ×#Ñ# D×$4Ñ$4Ô5Ø×Ñ×#Ñ# D×$4Ñ$4Ô5ØŸ™ˆŒØˆŒ
ØˆŒØ×ÑÔØr#   c                 ó:   — | j                   j                  |«       y r   r’   r”   s     r"   r“   zHTMLConverter.writeñ   r–   r#   c                 ój   — | j                  d«       | j                  d«       | j                  d«       y )Nz<html><head>
zD<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
z</head><body>
©r“   r†   s    r"   rÀ   zHTMLConverter.write_headerõ   s,   € Ø�
‰
Ð#Ô$Ø�
‰
ÐZÔ[Ø�
‰
Ð$Ô%Ør#   c           
      ó¢   — | j                  ddj                  d„ t        d| j                  «      D «       «      z  «       | j                  d«       y )Nz8<div style="position:absolute; top:0px;">Page: %s</div>
rr   c              3   ó.   K  — | ]  }d |›d|›d�–— Œ y­w)z
<a href="#z">z</a>NrG   )rH   r_   s     r"   rJ   z-HTMLConverter.write_footer.<locals>.<genexpr>ý   s   è ø€ Ò\Á²qº!Ô<Ñ\ùs   ‚r   z</body></html>
)r“   rO   rQ   r   r†   s    r"   Úwrite_footerzHTMLConverter.write_footerû   sE   € Ø�
‰
ÐNØ—9‘9Ñ\ÄeÈAÈtÏ{É{ÓF[Ô\Ó\ñ]ô 	^à�
‰
Ð%Ô&Ør#   c                 ó8   — | j                  t        |«      «       y r   )r“   r   r”   s     r"   r•   zHTMLConverter.write_text  s   € Ø�
‰
”1�T“7ÔØr#   c           
      óô   — | j                   j                  |«      }|�[| j                  d|||| j                  z  | j                  |z
  | j                  z  || j                  z  || j                  z  fz  «       y )Nzn<span style="position:absolute; border: %s %dpx solid; left:%dpx; top:%dpx; width:%dpx; height:%dpx;"></span>
)r¸   Úgetr“   r´   r½   )r    ÚcolorÚborderwidthrI   ÚyÚwÚhs          r"   Ú
place_rectzHTMLConverter.place_rect  sw   € Ø× Ñ ×$Ñ$ UÓ+ˆØÐØ�J‰Jð Rà˜{Ø˜$Ÿ*™*™ t§}¡}°Q¡¸¿
¹
Ñ&BØ˜$Ÿ*™*™ a¨¯
©
¡lð4ñ4ô 5ð
 	r#   c                 ó€   — | j                  |||j                  |j                  |j                  |j                  «       y r   )rÐ   r*   r-   ÚwidthÚheight)r    rË   rÌ   rB   s       r"   Úplace_borderzHTMLConverter.place_border  s+   € Ø�‰˜˜{¨D¯G©G°T·W±W¸d¿j¹jÈ$Ï+É+ÔVØr#   c           
      ó  — | j                   �| j                   j                  |«      }| j                  dt        |«      ||| j                  z  | j
                  |z
  | j                  z  || j                  z  || j                  z  fz  «       y )Nzd<img src="%s" border="%d" style="position:absolute; left:%dpx; top:%dpx;" width="%d" height="%d" />
)r�   r›   r“   r   r´   r½   )r    rB   rÌ   rI   rÍ   rÎ   rÏ   r6   s           r"   Úplace_imagezHTMLConverter.place_image  s€   € Ø×ÑÐ'Ø×#Ñ#×0Ñ0°Ó6ˆDØ�J‰Jð 5ä˜$› Ø˜$Ÿ*™*™ t§}¡}°Q¡¸¿
¹
Ñ&BØ˜$Ÿ*™*™ a¨¯
©
¡lð4ñ4ô 5ð
 	r#   c                 ó4  — | j                   j                  |«      }|�{| j                  d||| j                  z  | j                  |z
  | j                  z  || j                  z  | j
                  z  fz  «       | j                  |«       | j                  d«       y )NzP<span style="position:absolute; color:%s; left:%dpx; top:%dpx; font-size:%dpx;">z</span>
)r¹   rÊ   r“   r´   r½   rµ   r•   )r    rË   rm   rI   rÍ   Úsizes         r"   Ú
place_textzHTMLConverter.place_text  s‹   € Ø× Ñ ×$Ñ$ UÓ+ˆØÐØ�J‰JÐiØ˜q §¡™|¨d¯m©m¸A©o¸t¿z¹zÑ-IÈ4ÐPT×PZÑPZÉ?Ð[_×[iÑ[iÑKiÐjñkô là�O‰O˜DÔ!Ø�J‰J�{Ô#Ør#   c                 ó  — | j                   j                  | j                  «       d | _        | j                  d||||| j                  z  | j
                  |z
  | j                  z  || j                  z  || j                  z  fz  «       y )Nzv<div style="position:absolute; border: %s %dpx solid; writing-mode:%s; left:%dpx; top:%dpx; width:%dpx; height:%dpx;">)r¿   r5   r¾   r“   r´   r½   )r    rË   rÌ   rI   rÍ   rÎ   rÏ   Úwriting_modes           r"   Ú	begin_divzHTMLConverter.begin_div&  sz   € Ø�‰×Ñ˜tŸz™zÔ*ØˆŒ
Ø�
‰
ð Eà˜;¨Ø�d—j‘j‘L 4§=¡=°¡?°D·J±JÑ">Ø�d—j‘j‘L ! D§J¡J¡,ð0ñ0ô 	1ð
 	r#   c                 óž   — | j                   �| j                  d«       | j                  j                  «       | _         | j                  d«       y )Nú</span>z</div>)r¾   r“   r¿   r;   )r    rË   s     r"   Úend_divzHTMLConverter.end_div0  s;   € Ø�:‰:Ð!Ø�J‰J�yÔ!Ø—_‘_×(Ñ(Ó*ˆŒ
Ø�
‰
�8ÔØr#   c                 ó  — ||f}|| j                   k7  r]| j                   �| j                  d«       | j                  dt        |«      || j                  z  | j                  z  fz  «       || _         | j                  |«       y )NrÞ   z.<span style="font-family: %s; font-size:%dpx">)r¾   r“   r   r´   rµ   r•   )r    rm   Úfontnameri   rh   s        r"   Úput_textzHTMLConverter.put_text7  sx   € Ø˜(Ð#ˆØ�4—:‘:ÒØ�z‰zÐ%Ø—
‘
˜9Ô%Ø�J‰JÐGÜ˜(› X°·
±
Ñ%:¸T¿^¹^Ñ%KÐLñMô NàˆDŒJØ�‰˜ÔØr#   c                 ó&   — | j                  d«       y )Nz<br>rÄ   r†   s    r"   Úput_newlinezHTMLConverter.put_newlineB  s   € Ø�
‰
�6ÔØr#   c                 ór   ‡ ‡‡— ˆ ˆfd„Šˆˆ ˆfd„Š ‰|«       ‰ xj                   ‰ j                  z  c_         y )Nc                 ój   •— t        | t        «      r"‰j                  dd| «       | D ]
  } ‰|«       Œ y )Nr­   r   )r0   r   rÔ   ©rB   rœ   r    Ú
show_groups     €€r"   rè   z0HTMLConverter.receive_layout.<locals>.show_groupG  s9   ø€ Ü˜$¤Ô,Ø×!Ñ! +¨q°$Ô7Ø!ò &�EÙ˜uÕ%ð&àr#   c           
      ó0  •— t        | t        «      r×‰xj                  | j                  z  c_        ‰j	                  dd| «       ‰j
                  rd‰j                  d‰j                  | j                  z
  ‰j                  z  z  «       ‰j                  d| j                  ›d| j                  ›d�«       | D ]
  } ‰|«       Œ | j                  �| j                  D ]
  } ‰|«       Œ y t        | t        «      r‰j	                  dd| «       y t        | t        «      r_‰j                  dd| j                  | j                  | j                  | j                  «       | D ]
  } ‰|«       Œ ‰j!                  d«       y t        | t"        «      r?‰j%                  | d| j                  | j                  | j                  | j                  «       y ‰j&                  d	k(  �r
t        | t(        «      r#‰j	                  d
d| «       | D ]
  } ‰|«       Œ y t        | t*        «      rb‰j	                  dd| «       ‰j-                  dt/        | j0                  dz   «      | j                  | j                  d«       | D ]
  } ‰|«       Œ y t        | t2        «      rT‰j	                  dd| «       ‰j-                  d| j5                  «       | j                  | j                  | j6                  «       y t        | t(        «      r/| D ]
  } ‰|«       Œ ‰j&                  dk7  r‰j9                  «        y t        | t*        «      rn‰j                  dd| j                  | j                  | j                  | j                  | j;                  «       «       | D ]
  } ‰|«       Œ ‰j!                  d«       y t        | t2        «      r6‰j=                  | j5                  «       | j>                  | j6                  «       y t        | t@        «      r‰jC                  | j5                  «       «       y )Nr(   r   z*<div style="position:absolute; top:%dpx;">z	<a name="z">Page z</a></div>
r®   rª   Úexactr«   r¬   é   r°   Úloose)"r0   r   r½   r-   rÔ   r�   r“   r´   rŸ   Úgroupsr   r   rÜ   r*   rÒ   rÓ   rß   r   rÖ   r¶   r   r   rÙ   rc   Úindexr   rš   rØ   rä   Úget_writing_moderâ   rá   r   r•   )rB   rœ   Úgroupr�   r    rè   s      €€€r"   r�   z,HTMLConverter.receive_layout.<locals>.renderN  sl  ø€ Ü˜$¤Ô'Ø—’ §¡Ñ(•Ø×!Ñ! &¨!¨TÔ2Ø—?’?Ø—J‘JÐKØ!%§¡¨t¯w©wÑ!6¸¿
¹
Ñ Bñ Dô Eà—J’JÀTÇ[Ã[ÐRV×R]ÓR]Ð^Ô_Ø!ò "�EÙ˜5•Mð"à—;‘;Ð*Ø!%§¡ò *˜Ù" 5Õ)ð*ðR ôO ˜D¤'Ô*Ø×!Ñ! '¨1¨dÔ3ðL ôK ˜D¤(Ô+Ø—‘˜x¨¨D¯G©G°T·W±W¸d¿j¹jÈ$Ï+É+ÔVØ!ò "�EÙ˜5•Mð"à—‘˜XÔ&ðB ôA ˜D¤'Ô*Ø× Ñ   q¨$¯'©'°4·7±7¸D¿J¹JÈÏÉÔTð> ð; —?‘? gÓ-Ü! $¬
Ô3Ø×)Ñ)¨*°a¸Ô>Ø%)ò *˜EÙ" 5�Mð*ð4 ô1 $ D¬)Ô4Ø×)Ñ)¨)°Q¸Ô=ØŸ™¨	´3°t·z±zÀ!±|Ó3DÀdÇgÁgÈtÏwÉwÐXZÔ[Ø%)ò *˜EÙ" 5�Mð*ð* ô' $ D¬&Ô1Ø×)Ñ)¨&°!°TÔ:ØŸ™¨°·±³ÀÇÁÈ$Ï'É'ÐSW×S\ÑS\Ô]ð" ô " $¬
Ô3Ø%)ò *˜EÙ" 5�Mð*àŸ?™?¨gÒ5Ø ×,Ñ,Ô.ð ô $ D¬)Ô4ØŸ™ y°!°T·W±W¸d¿g¹gÀtÇzÁzÐSW×S^ÑS^Ø'+×'<Ñ'<Ó'>ô@à%)ò *˜EÙ" 5�Mð*àŸ™ YÔ/ð
 ô	 $ D¬&Ô1ØŸ™ d§m¡m£o°t·}±}ÀdÇiÁiÔPð ô $ D¬&Ô1ØŸ™¨¯©«Ô8Ør#   )r½   r·   ©r    rx   r�   rè   s   ` @@r"   r2   zHTMLConverter.receive_layoutF  s,   ú€ õ	ö4	ñj 	ˆvŒØ�Š˜Ÿ™Ñ(�Ør#   c                 ó$   — | j                  «        y r   ©rÇ   r†   s    r"   ÚclosezHTMLConverter.close‡  ó   € Ø×ÑÔØr#   )F)r{   r|   r}   r»   r¼   r   r“   rÀ   rÇ   r•   rÐ   rÔ   rÖ   rÙ   rÜ   rß   râ   rä   r2   rô   rG   r#   r"   r£   r£   É   sŸ   „ ð ØØØØØñ€Kð Øñ€Kð
 /0¸$Ø C°HÈØ¨D¸Ø'.¸Ñ?Ø$ gÐ.ó	ò.òòòòòòòóòò	òò?óBr#   r£   c                   óZ   — e Zd Z ej                  d«      Z	 	 d	d„Zd„ Zd„ Zd„ Z	d„ Z
d„ Zy)
ÚXMLConverterz[\x00-\x08\x0b-\x0c\x0e-\x1f]Nc                 ót   — t         j                  | ||||¬«       || _        || _        | j	                  «        y r�   )r‰   r   r�   ÚstripcontrolrÀ   )r    r!   r‹   r   r   r�   rù   s          r"   r   zXMLConverter.__init__’  s:   € ä×Ñ˜d G¨U¸6ÈHÐÔUØ&ˆÔØ(ˆÔØ×ÑÔØr#   c                 óp   — | j                   j                  d«       | j                   j                  d«       y )Nz(<?xml version="1.0" encoding="utf-8" ?>
z<pages>
r’   r†   s    r"   rÀ   zXMLConverter.write_headerš  s*   € Ø�
‰
×ÑÐDÔEØ�
‰
×Ñ˜Ô%Ør#   c                 ó:   — | j                   j                  d«       y )Nz	</pages>
r’   r†   s    r"   rÇ   zXMLConverter.write_footerŸ  s   € Ø�
‰
×Ñ˜Ô&Ør#   c                 óœ   — | j                   r| j                  j                  d|«      }| j                  j	                  t        |«      «       y )NrE   )rù   ÚCONTROLÚsubr‹   r“   r   r”   s     r"   r•   zXMLConverter.write_text£  s:   € Ø×ÒØ—<‘<×#Ñ# C¨Ó.ˆDØ�
‰
×Ñœ˜4›Ô!Ør#   c                 ó4   ‡ ‡‡— ˆ ˆfd„Šˆˆ ˆfd„Š ‰|«       y )Nc                 óx  •— t        | t        «      r>‰j                  j                  d| j                  t        | j                  «      fz  «       y t        | t        «      r[‰j                  j                  dt        | j                  «      z  «       | D ]
  } ‰|«       Œ ‰j                  j                  d«       y )Nz<textbox id="%d" bbox="%s" />
z<textgroup bbox="%s">
z</textgroup>
)r0   r   r‹   r“   rî   r   r7   r   rç   s     €€r"   rè   z/XMLConverter.receive_layout.<locals>.show_groupª  s�   ø€ Ü˜$¤	Ô*Ø—
‘
× Ñ Ð!BØ"&§*¡*¬h°t·y±yÓ.AÐ!Bñ"Cô Dð ô ˜D¤+Ô.Ø—
‘
× Ñ Ð!:¼XÀdÇiÁiÓ=PÑ!PÔQØ!ò &�EÙ˜uÕ%ð&à—
‘
× Ñ Ð!1Ô2Ør#   c                 ó®	  •— t        | t        «      rÎ‰j                  j                  d| j                  t        | j                  «      | j                  fz  «       | D ]
  } ‰|«       Œ | j                  �O‰j                  j                  d«       | j                  D ]
  } ‰|«       Œ ‰j                  j                  d«       ‰j                  j                  d«       y t        | t        «      r>‰j                  j                  d| j                  t        | j                  «      fz  «       y t        | t        «      r>‰j                  j                  d| j                  t        | j                  «      fz  «       y t        | t        «      rM‰j                  j                  d| j                  t        | j                  «      | j                  «       fz  «       y t        | t        «      rj‰j                  j                  d| j                  ›d	t        | j                  «      ›d
�«       | D ]
  } ‰|«       Œ ‰j                  j                  d«       y t        | t         «      r\‰j                  j                  dt        | j                  «      z  «       | D ]
  } ‰|«       Œ ‰j                  j                  d«       y t        | t"        «      r}d}t        | t$        «      rd}‰j                  j                  d| j&                  t        | j                  «      |fz  «       | D ]
  } ‰|«       Œ ‰j                  j                  d«       y t        | t(        «      rŒ‰j                  j                  dt+        | j,                  «      t        | j                  «      | j.                  fz  «       ‰j1                  | j3                  «       «       ‰j                  j                  d«       y t        | t4        «      r-‰j                  j                  d| j3                  «       z  «       y t        | t6        «      r›‰j8                  �Z‰j8                  j;                  | «      }‰j                  j                  dt+        |«      | j<                  | j>                  fz  «       y ‰j                  j                  d| j<                  | j>                  fz  «       y J | «       ‚)Nz%<page id="%s" bbox="%s" rotate="%d">
z	<layout>
z
</layout>
z</page>
z"<line linewidth="%d" bbox="%s" />
z"<rect linewidth="%d" bbox="%s" />
z+<curve linewidth="%d" bbox="%s" pts="%s"/>
z<figure name="z" bbox="z">
z
</figure>
z<textline bbox="%s">
z</textline>
rE   z wmode="vertical"z<textbox id="%d" bbox="%s"%s>
z</textbox>
z&<text font="%s" bbox="%s" size="%.3f">z</text>
z<text>%s</text>
z*<image src="%s" width="%d" height="%d" />
z!<image width="%d" height="%d" />
) r0   r   r‹   r“   rŸ   r   r7   Úrotaterí   r	   rP   r
   r   Úget_ptsr   r6   r   r   r   rî   r   r   rá   rØ   r•   rš   r   r   r�   r›   rÒ   rÓ   )rB   rœ   rð   Úwmoder6   r�   r    rè   s        €€€r"   r�   z+XMLConverter.receive_layout.<locals>.renderµ  s  ø€ Ü˜$¤Ô'Ø—
‘
× Ñ Ð!IØ"&§+¡+¬x¸¿	¹	Ó/BÀDÇKÁKÐ!Pñ"Qô Rà!ò "�EÙ˜5•Mð"à—;‘;Ð*Ø—J‘J×$Ñ$ \Ô2Ø!%§¡ò *˜Ù" 5Õ)ð*à—J‘J×$Ñ$ ]Ô3Ø—
‘
× Ñ  Ô-ð^ ô] ˜D¤&Ô)Ø—
‘
× Ñ Ð!FØ"&§.¡.´(¸4¿9¹9Ó2EÐ!Fñ"Gô HðZ ôW ˜D¤&Ô)Ø—
‘
× Ñ Ð!FØ"&§.¡.´(¸4¿9¹9Ó2EÐ!Fñ"Gô HðT ôQ ˜D¤'Ô*Ø—
‘
× Ñ Ð!OØ"&§.¡.´(¸4¿9¹9Ó2EÀtÇ|Á|Ã~Ð!Vñ"Wô XðN ôK ˜D¤(Ô+Ø—
‘
× Ò Ø"&§)£)¬X°d·i±iÕ-@ð"Bô Cà!ò "�EÙ˜5•Mð"à—
‘
× Ñ  Ô/ð@ ô? ˜D¤*Ô-Ø—
‘
× Ñ Ð!9¼HÀTÇYÁYÓ<OÑ!OÔPØ!ò "�EÙ˜5•Mð"à—
‘
× Ñ  Ô1ð6 ô5 ˜D¤)Ô,Ø�Ü˜dÔ$5Ô6Ø/�EØ—
‘
× Ñ Ð!BØ"&§*¡*¬h°t·y±yÓ.AÀ5Ð!Iñ"Jô Kà!ò "�EÙ˜5•Mð"à—
‘
× Ñ  Ô0ð$ ô# ˜D¤&Ô)Ø—
‘
× Ñ Ð!IÜ"# D§M¡MÓ"2´H¸T¿Y¹YÓ4GÈÏÉÐ!Sñ"Tô Uà—‘ §¡£Ô0Ø—
‘
× Ñ  Ô-ð ô ˜D¤&Ô)Ø—
‘
× Ñ Ð!4°t·}±}³Ñ!FÔGð ô ˜D¤'Ô*Ø×#Ñ#Ð/Ø×+Ñ+×8Ñ8¸Ó>�DØ—J‘J×$Ñ$Ð%RÜ&'¨£g¨t¯z©z¸4¿;¹;Ð%Gñ&Hô Ið ð	 —J‘J×$Ñ$Ð%IØ&*§j¡j°$·+±+Ð%>ñ&?ô @ð ð ˜$“�qr#   rG   rñ   s   ` @@r"   r2   zXMLConverter.receive_layout©  s   ú€ õ		ö:	ñv 	ˆvŒØr#   c                 ó$   — | j                  «        y r   ró   r†   s    r"   rô   zXMLConverter.closeó  rõ   r#   )r   NNF)r{   r|   r}   ÚreÚcompilerý   r   rÀ   rÇ   r•   r2   rô   rG   r#   r"   r÷   r÷   Ž  s9   „ àˆb�j‰jÐ9Ó:€Gà./Ø?Dóòò
òòHóTr#   r÷   )rt   r  Ú	pdfdevicer   Úpdffontr   Úlayoutr   r   r   r	   r
   r   r   r   r   r   r   r   r   Úutilsr   r   r   r   r   r   r‰   r�   r£   r÷   rG   r#   r"   ú<module>r     s—   ðã Û 	Ý $Ý )Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý %Ý Ý "Ý Ý Ý ô
`˜ô `ôJÐ)ô ô"Ð$ô ô)�Lô )ô\@�Lô @ôJg�<õ gr#   