§
    Å‡tjóO  ã                   óN  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlm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mZmZmZ  ed¦  «        duZ ed¦  «        duZ  ej!        e"¦  «        Z#d„ Z$ e%ej&        j'        ej&        j(         ej)        ej&        j(        d	¬
¦  «        e$¬¦  «        Z*dZ+ e%dde,¬¦  «        Z- e%dddd¬¦  «        Z.d„ Z/ G d„ d¦  «        Z0 G d„ de0¦  «        Z1 G d„ de1¦  «        Z2 G d„ de0¦  «        Z3d„ Z4d„ Z5d„ Z6d „ Z7d!„ Z8dS )"é    N)ÚPath)Ú	find_spec)Úsetup_logging)Ú	add_inputÚ	get_inputÚiterator_hasvalueÚBooleanOptionalActionÚPILÚcv2c                 óÌ   — |t           j        k    rd}n6|t           j        k    rd}n#t          dt          j        |         › d�¦  «        ‚t          j        j        | ||g|¢R i |¤ŽS )NFTz5Cannot create foreign_simple bitmap with bitmap type ú.)	Úpdfium_cÚFPDFBitmap_BGRxÚFPDFBitmap_BGRAÚRuntimeErrorÚpdfium_iÚBitmapTypeToStrÚpdfiumÚ	PdfBitmapÚnew_foreign_simple)ÚwidthÚheightÚformatÚargsÚkwargsÚ	use_alphas         úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pypdfium2_cli/render.pyÚ_bitmap_wrapper_foreign_simpler      sy   € Ø•Ô)Ò)Ð)Øˆ	ˆ	Ø	•8Ô+Ò	+Ð	+Øˆ	ˆ	åÐvÕS[ÔSkÐlrÔSsÐvÐvÐvÑwÔwÐwÝÔÔ.¨u°f¸iÐYÈ$ÐYÐYÐYÐRXÐYÐYÐYó    T)Úforce_packed)ÚnativeÚforeignÚforeign_packedÚforeign_simple)Ú	path_fillÚpath_strokeÚ	text_fillÚtext_strokeÚCé   )ÚmetavarÚnargsÚtype)éª   éd   r   éÿ   )r   é–   r0   r0   ©r0   r0   r0   r0   )r1   r0   r   r0   c           
      ó\  ‡— t          | d¬¦  «         |                      ddd„ dd¬¦  «         |                      dd	¬
¦  «         |                      ddt          j        d¬¦  «         t          t
          t          dœŠ|                      ddˆfd„dt          ‰                     ¦   «         ¦  «        › �¬¦  «         |                      ddt          d¬¦  «         |                      ddt          dd¬¦  «          | j        	 dodd it          ¤Ž |                      d!d"d#¬$¦  «         |                      d%d&d't          d(d)¬*¦  «         |                      d+t          dd,¬-¦  «         |                      d.t          dd/¬-¦  «         |                      d0d1g d2t          j        d3¬4¦  «         |                      d5d6d7¬8¦  «         |                      d9d:¬;¦  «        }|                     d<t                               ¦   «         d=d>t          j        ¬?¦  «         |                     d@d6dA¬8¦  «         |                     dBdCdD„ dE¬¦  «         |                     dFdGt          dH¬I¦  «         |                     dJt          dK¬8¦  «         |                      dLdM¬;¦  «        }|                     dNdOt          t          j        dP¬Q¦  «         |                     dRt#          j        ¦   «         t          dS¬¦  «         |                     dTdUdVt          j        dW¬X¦  «         |                     dYdZd[t          j        d\¬X¦  «         |                     d]t          j        d^¬¦  «         |                      d_d`¬;¦  «        }|                     dad6db¬8¦  «          |j        dpi t          ¤Ž  |j        dqi t          ¤Ž  |j        dri t          ¤Ž  |j        dsi t          ¤Ž |                     dgd6dh¬8¦  «         |                      didj¬;¦  «        }|                     dkd6dl¬8¦  «         |                     dmd6dn¬8¦  «         d S )tNT)Úpagesz--outputz-oc                 óh   — t          | ¦  «                             ¦   «                              ¦   «         S ©N)r   Ú
expanduserÚresolve)Úps    r   ú<lambda>zattach.<locals>.<lambda><   s$   € �˜a™œ×+Ò+Ñ-Ô-×5Ò5Ñ7Ô7€ r   zDOutput directory where the serially numbered images shall be placed.)r-   ÚrequiredÚhelpz--prefixzDCustom prefix for the images. Defaults to the input filename's stem.)r<   z--formatz-fz/The image format to use (default: conditional).)r-   r<   )Úpilz	numpy+pilz	numpy+cv2z--engineÚ
engine_clsc                 ó8   •— ‰|                       ¦   «                  S r6   ©Úlower)ÚkÚengines_maps    €r   r:   zattach.<locals>.<lambda>M   s   ø€ ˜ Q§W¢W¡Y¤YÔ/€ r   zThe saver engine to use )Údestr-   r<   z--scaleé   zªDefine the resolution of the output images. By default, one PDF point (1/72in) is rendered to 1x1 pixel. This factor scales the number of pixels that represent one point.)Údefaultr-   r<   z
--rotationr   )r   éZ   é´   i  z'Rotate pages by 90, 180 or 270 degrees.)rF   r-   Úchoicesr<   ú--fill-colorr<   z˜Color the bitmap will be filled with before rendering. Shall be given in RGBA format as a sequence of integers ranging from 0 to 255. Defaults to white.z--optimize-mode)ÚlcdÚprintz3The rendering optimisation mode. None if not given.)rI   r<   z--cropr)   r*   )r   r   r   r   z/Amount to crop from (left, bottom, right, top).)r+   r,   r-   rF   r<   z--draw-annotsz1Whether annotations may be shown (default: true).)ÚactionrF   r<   z--draw-formsz+Whether forms may be shown (default: true).z--no-antialiasú+)ÚtextÚimageÚpathz&Item types that shall not be smoothed.)r,   rF   rI   r-   r<   z--force-halftoneÚ
store_truez)Always use halftone for image stretching.)rM   r<   zBitmap optionsz&Bitmap config, including pixel format.)ÚtitleÚdescriptionz--bitmap-makerr!   zThe bitmap maker to use.)rI   rF   r<   r-   z--grayscalez0Whether to render in grayscale mode (no colors).z--byteorderÚrev_byteorderc                 ó<   — dddœ|                       ¦   «                  S )NFT)ÚbgrÚrgbr@   )Úvs    r   r:   zattach.<locals>.<lambda>š   s   €  ¨tÐ4Ð4°Q·W²W±Y´YÔ?€ r   z;Whether to use BGR or RGB byteorder (default: conditional).z--x-channelÚprefer_bgrxz@Whether to prefer BGRx/RGBx over BGR/RGB (default: conditional).)rD   rM   r<   z--maybe-alphazÛWhether to use BGRA if page content has transparency. Note, this makes format selection page-dependent. As this behavior can be confusing, it is not currently the default, but recommended for performance in these cases.ÚParallelizationz.Options for rendering with multiple processes.z--linearú?z°Render non-parallel if page count is less or equal to the specified value (default: 4). If this flag is given without a value, then render linear regardless of document length.)r,   r-   Úconstr<   z--processeszXThe maximum number of parallel rendering processes. Defaults to the number of CPU cores.z--parallel-strategy)ÚspawnÚ
forkserverÚforkr^   zQThe process start method to use. ('fork' is discouraged due to stability issues.))rI   rF   r-   r<   z--parallel-lib©ÚmpÚftrb   zRThe parallelization module to use (mp = multiprocessing, ft = concurrent.futures).z--parallel-mapzLThe map function to use (backend specific, the default is an iterative map).zFlat color schemezÚOptions for using pdfium's color scheme renderer. Note that this may flatten different colors into one, so the usability of this is limited. Alternatively, consider post-processing with lightness inversion (see below).z--sample-themezWUse a dark background sample theme as base. Explicit color params override selectively.ú--path-fillú--path-strokeú--text-fillú--text-strokez--fill-to-strokea  When rendering with custom color scheme, only draw borders around fill areas using the `path_stroke` color, instead of filling with the `path_fill` color. This is actually recommended, since with a single fill color for paths the boundaries of adjacent fill paths are less visible.zPost processingzgOptions to post-process rendered images. Note, this may have a strongly negative impact on performance.z--invert-lightnessa]  Invert lightness using the HLS color space (e.g. white<->black, dark_blue<->light_blue). The intent is to achieve a dark theme for documents with light background, while providing better visual results than classical color inversion or a flat pdfium color scheme. However, note that --optimize-mode lcd is not recommendable when inverting lightness.z--exclude-imagesz7Whether to exclude PDF images from lightness inversion.)rJ   )rd   )re   )rf   )rg   )r   Úadd_argumentÚstrrA   Ú	PILEngineÚNumpyPILEngineÚNumpyCV2EngineÚtupleÚkeysÚfloatÚintÚ	ColorOptsr	   Úadd_argument_groupÚBitmapMakersÚmathÚinfÚosÚ	cpu_count)ÚparserÚbitmapÚparallelÚcolor_schemeÚpostprocrC   s        @r   Úattachr}   8   s  ø€ Ýˆf˜DÐ!Ñ!Ô!Ð!Ø
×ÒØ�DØ7Ð7ØØUð	 ñ ô ð ð ×ÒØØUð ñ ô ð ð ×ÒØ�DÝŒyØ@ð ñ ô ð õ
 $µ.Í~Ð^Ð^€KØ
×ÒØØØ/Ð/Ð/Ð/ØE­%°×0@Ò0@Ñ0BÔ0BÑ*CÔ*CÐEÐEð	 ñ ô ð ð ×ÒØØÝð |ð	 ñ ô ð ð ×ÒØØÝØ#Ø8ð ñ ô ð ð €FÔØðð ð jðõ ðð ð ð
 ×ÒØØ"ØDð ñ ô ð ð
 ×ÒØØ˜1¥5ØØ@ð	 ñ ô ð ð ×ÒØÝ&ØØBð	 ñ ô ð ð ×ÒØÝ&ØØ<ð	 ñ ô ð ð ×ÒØØØØ+ÝŒyØ7ð ñ ô ð ð ×ÒØØØ:ð ñ ô ð ð ×&Ò&Ø Ø>ð 'ñ ô €Fð ×ÒØÝ×#Ò#Ñ%Ô%ØØ)ÝŒyð ñ ô ð ð ×ÒØØØAð ñ ô ð ð
 ×ÒØØØ?Ð?ØLð	 ñ ô ð ð ×ÒØØÝ&ØQð	 ñ ô ð ð ×ÒØÝ&ð mð ñ ô ð ð ×(Ò(Ø!ØFð )ñ ô €Hð ×ÒØØÝÝ”ð Bð ñ ô ð ð ×ÒØÝ”,‘.”.ÝØið	 ñ ô ð ð ×ÒØØ1ØÝŒyØbð ñ ô ð ð ×ÒØØØÝŒyØcð ñ ô ð ð ×ÒØÝŒyØ]ð ñ ô ð ð ×,Ò,Ø#ð sð -ñ ô €Lð ×ÒØØØhð ñ ô ð ð
 €LÔÐ;Ð;µÐ;Ð;Ð;Ø€LÔÐ;Ð;µÐ;Ð;Ð;Ø€LÔÐ;Ð;µÐ;Ð;Ð;Ø€LÔÐ;Ð;µÐ;Ð;Ð;Ø×ÒØØð kð ñ ô ð ð ×(Ò(Ø!Øð )ñ ô €Hð ×ÒØØð oð ñ ô ð ð
 ×ÒØØØHð ñ ô ð ð ð r   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚSavingEnginec                 ó"   — || _         || _        d S r6   )r   Úpostproc_kwargs)ÚselfÚ
saver_argsr�   s      r   Ú__init__zSavingEngine.__init__ô   s   € ØˆŒ	Ø.ˆÔÐÐr   c                 óV   — | j         }|j        |j        › |dz   d|j        › d�›d|› �z  S )NrE   Ú0Údr   )r   Ú
output_dirÚprefixÚn_digits)r‚   ÚiÚextr   s       r   Ú	_get_pathzSavingEngine._get_pathø   s?   € ØŒyˆØŒ D¤KÐ!N°°1±Ð!N°t´}Ð!NÐ!NÐ!NÐ!NÐ!NÈÐ!NÐ!NÑNÐNr   c                 ój  — | j         j        r?| j         j        dv r1t          j        |¦  «        rt
                               d¦  «         d}n| j         j        }|                      ||¦  «        }|                      |||| j	        ¦  «         t
                               d|dz   › d|j
        › �¦  «         d S )N)ÚjpgÚjpegz8Page has transparency - overriding output format to PNG.ÚpngzWrote page rE   z as )r   Úmaybe_alphar   r   ÚFPDFPage_HasTransparencyÚloggerÚinfor�   Ú_saving_hookr�   Úname)r‚   r‹   ry   ÚpagerŒ   Úout_paths         r   Ú__call__zSavingEngine.__call__ü   s²   € ØŒ9Ô ð 	# T¤YÔ%5¸Ð%HÐ%HÍXÔMnÐosÑMtÔMtÐ%Hå�KŠKÐRÑSÔSÐSØˆCˆCà”)Ô"ˆCØ—>’> ! SÑ)Ô)ˆØ×Ò˜( F¨D°$Ô2FÑGÔGÐGÝ�ŠÐ: ! A¡#Ð:Ð:¨8¬=Ð:Ð:Ñ;Ô;Ð;Ð;Ð;r   N)Ú__name__Ú
__module__Ú__qualname__r„   r�   rš   © r   r   r   r   ò   sD   € € € € € ð/ð /ð /ðOð Oð Oð	<ð 	<ð 	<ð 	<ð 	<r   r   c                   ó¸   — e Zd Zd„ Z eej        j        ¦  «        Zd„ Z	ed„ ¦   «         Z
dZe ej        d¬¦  «        d„ ¦   «         ¦   «         Zed„ ¦   «         Zd	S )
rj   c                 óx   — | j         d         sd S t                               d¦  «         dd ladd ladd ladd lad S )NÚinvert_lightnessz&PIL engine imports for post-processingr   )r�   r”   ÚdebugÚ	PIL.Imager
   ÚPIL.ImageOpsÚPIL.ImageFilterÚPIL.ImageDraw©r‚   s    r   Ú
do_importszPILEngine.do_imports
  sa   € ØÔ#Ð$6Ô7ð 	ØˆFÝ�ŠÐ=Ñ>Ô>Ð>àÐÐÐØÐÐÐØÐÐÐØÐÐÐÐÐr   c                 ó¤   — |                      |¦  «        }|                      |¦  «        } | j        |||fi |¤Ž}|                     |¦  «         d S r6   )Úget_posconvÚ_to_pil_hookÚpostprocessÚsave)r‚   r™   ry   r˜   r�   ÚposconvÚ	pil_images          r   r–   zPILEngine._saving_hook  s^   € Ø×$Ò$ TÑ*Ô*ˆØ×%Ò% fÑ-Ô-ˆ	Ø$�DÔ$ Y°°gÐQÐQÀÐQÐQˆ	Ø�Š�xÑ Ô Ð Ð Ð r   c                 ól   — t          j        | ||¦  «        \  }}}d|z
  }t          j        |||¦  «        S )NrE   )ÚcolorsysÚ
rgb_to_hlsÚ
hls_to_rgb)ÚrÚgÚbÚhÚlÚss         r   Ú_invert_px_lightnesszPILEngine._invert_px_lightness  s:   € åÔ% a¨¨AÑ.Ô.‰ˆˆ1ˆaØ�‰EˆÝÔ" 1 a¨Ñ+Ô+Ð+r   é   rE   )Úmaxsizec                 ó`   — t           j        j                             | j        | j        ¦  «        S r6   )r
   ÚImageFilterÚ
Color3DLUTÚgenerateÚLINV_LUT_SIZErº   )Úclss    r   Ú_get_linv_lutzPILEngine._get_linv_lut$  s%   € õ ŒÔ)×2Ò2°3Ô3DÀcÔF^Ñ_Ô_Ð_r   c                 óP  ‡— |}|�r|j         dk    r t          j                             |¦  «        }n'|                     |                      ¦   «         ¦  «        }|rËt          |                     t          j	        gd¬¦  «        ¦  «        \  }}|r—t          j
                             d|j        ¦  «        }	t          j                             |	¦  «        }
|D ]9}ˆfd„|                     ¦   «         D ¦   «         }|
                     |d¬¦  «         Œ:|                     ||	¬¦  «         |S )NÚLrE   ©Ú	max_depthÚ1c                 óB   •— g | ]\  }}‰                      ||¦  «        ‘ŒS rž   ©Ú	to_bitmap©Ú.0ÚxÚyr®   s      €r   ú
<listcomp>z)PILEngine.postprocess.<locals>.<listcomp>9  s-   ø€ Ð"]Ð"]Ð"]¹t¸qÀ! 7×#4Ò#4°Q¸Ñ#:Ô#:Ð"]Ð"]Ð"]r   )Úfill)Úmask)Úmoder
   ÚImageOpsÚinvertÚfilterrÃ   r   Úget_objectsr   ÚFPDF_PAGEOBJ_IMAGEÚImageÚnewÚsizeÚ	ImageDrawÚDrawÚget_quad_pointsÚpolygonÚpaste)rÂ   Ú	src_imager˜   r®   r¡   Úexclude_imagesÚ	dst_imageÚhave_imagesÚ
obj_walkerrÒ   ÚdrawÚobjÚqpointss      `         r   r¬   zPILEngine.postprocess)  s&  ø€ àˆ	Øñ 	:ØŒ~ Ò$Ð$ÝœL×/Ò/°	Ñ:Ô:�	�	à%×,Ò,¨S×->Ò->Ñ-@Ô-@ÑAÔA�	Øð 
:õ +<¸T×=MÒ=MÍxÔOjÐNkÐwxÐ=MÑ=yÔ=yÑ*{Ô*{Ñ'�˜ZØð :Ýœ9Ÿ=š=¨¨i¬nÑ=Ô=�DÝœ=×-Ò-¨dÑ3Ô3�DØ)ð 6ð 6˜Ø"]Ð"]Ð"]Ð"]Às×GZÒGZÑG\ÔG\Ð"]Ñ"]Ô"]˜ØŸš W°1˜Ñ5Ô5Ð5Ð5Ø—O’O I°D�OÑ9Ô9Ð9ØÐr   N)r›   rœ   r�   r¨   Ústaticmethodr   r   Úto_pilr«   r–   rº   rÁ   ÚclassmethodÚ	functoolsÚ	lru_cacherÃ   r¬   rž   r   r   rj   rj     s½   € € € € € ðð ð ð  �< Ô 0Ô 7Ñ8Ô8€Lð!ð !ð !ð ð,ð ,ñ „\ð,ð
 €MàØ€YÔ Ð#Ñ#Ô#ð`ð `ñ $Ô#ñ „[ð`ð ðð ñ „[ðð ð r   rj   c                   ó4   ‡ — e Zd Zˆ fd„Zed„ ¦   «         Zˆ xZS )rk   c                 ó„   •— t                                d¦  «         dd lat	          ¦   «                              ¦   «          d S )NzNumPy+PIL engine importsr   )r”   r¢   r£   r
   Úsuperr¨   )r‚   Ú	__class__s    €r   r¨   zNumpyPILEngine.do_importsA  s>   ø€ Ý�ŠÐ/Ñ0Ô0Ð0àÐÐÐÝ‰Œ×ÒÑÔÐÐÐr   c                 óp   — t           j                             |                      ¦   «         | j        ¦  «        S r6   )r
   rÙ   Ú	fromarrayÚto_numpyrÓ   )ry   s    r   r«   zNumpyPILEngine._to_pil_hookG  s&   € åŒy×"Ò" 6§?¢?Ñ#4Ô#4°f´kÑBÔBÐBr   )r›   rœ   r�   r¨   ré   r«   Ú__classcell__)rñ   s   @r   rk   rk   ?  sZ   ø€ € € € € ðð ð ð ð ð ðCð Cñ „\ðCð Cð Cð Cð Cr   rk   c                   ó0   — e Zd Zd„ Zd„ Zed„ ¦   «         ZdS )rl   c                 óh   — t                                d¦  «         dd la| j        d         rdd lad S d S )NzNumPy+cv2 engine importsr   râ   )r”   r¢   r   r�   ÚnumpyÚnpr§   s    r   r¨   zNumpyCV2Engine.do_importsN  sK   € Ý�ŠÐ/Ñ0Ô0Ð0àˆ
ˆ
ˆ
ØÔÐ 0Ô1ð 	ØÐÐÐÐÐð	ð 	r   c                 óž   — |                      ¦   «         } | j        |||fi |¤Ž}t                               t	          |¦  «        |¦  «         d S r6   )rô   r¬   r   Úimwriteri   )r‚   r™   ry   r˜   r�   Únp_arrays         r   r–   zNumpyCV2Engine._saving_hookU  sO   € Ø—?’?Ñ$Ô$ˆØ#�4Ô# H¨f°dÐNÐN¸oÐNÐNˆÝ�Š•C˜‘M”M 8Ñ,Ô,Ð,Ð,Ð,r   c                 óÞ  ‡— |}|�ræ|j         t          j        k    r| }n®|j        rt          j        t          j        fnt          j        t          j        f\  }}t           	                    ||¦  «        }t           
                    |¦  «        \  }	}
}|
 }
t                               |	|
|g¦  «        }t           	                    ||¦  «        }|�r|j         t          j        k    s
J d¦   «         ‚|                     |¦  «        Št          |                     t          j        gd¬¦  «        ¦  «        \  }}|r´t"                               |j        |j        dft"          j        ¦  «        }|D ]b}t"                               ˆfd„|                     ¦   «         D ¦   «         t"          j        ¦  «        }t                               ||gd¦  «         Œct                               |||¬¦  «        }|S )Nz=Not sure how to paste with mask on {RGB,BGR}X image using cv2rE   rÆ   c                 óB   •— g | ]\  }}‰                      ||¦  «        ‘ŒS rž   rÊ   rÌ   s      €r   rÐ   z.NumpyCV2Engine.postprocess.<locals>.<listcomp>n  s-   ø€ Ð+fÐ+fÐ+fÉÈÈ1¨G×,=Ò,=¸aÀÑ,CÔ,CÐ+fÐ+fÐ+fr   )rÒ   Údst)r   r   ÚFPDFBitmap_GrayrU   r   ÚCOLOR_RGB2HLSÚCOLOR_HLS2RGBÚCOLOR_BGR2HLSÚCOLOR_HLS2BGRÚcvtColorÚsplitÚmerger   rª   r   r×   rØ   rù   Úzerosr   r   Úuint8ÚarrayrÞ   Úint32ÚfillPolyÚcopyTo)rÂ   rá   ry   r˜   r¡   râ   rã   Ú
convert_toÚconvert_fromr·   r¸   r¹   rä   rå   rÒ   rç   rè   r®   s                    @r   r¬   zNumpyCV2Engine.postprocessZ  sÛ  ø€ àˆ	Øñ 	PØŒ}¥Ô 8Ò8Ð8Ø&˜J�	�	àU[ÔUið  ,V­CÔ,=½sÔ?PÐ+QÐ+QÕpsô  qBõ  DGô  DUð  pVÑ(�
˜LÝŸLšL¨°JÑ?Ô?�	ÝŸ)š) IÑ.Ô.‘��1�aØ�B�ÝŸIšI q¨!¨Q iÑ0Ô0�	ÝŸLšL¨°LÑAÔA�	Øñ 	PØ”}­Ô(@Ò@Ð@Ð@ð  CBÑ@Ô@Ð@Ø ×,Ò,¨TÑ2Ô2�Ý*;¸T×=MÒ=MÍxÔOjÐNkÐwxÐ=MÑ=yÔ=yÑ*{Ô*{Ñ'�˜ZØð PÝŸ8š8 V¤]°F´LÀ!Ð$DÅbÄhÑOÔO�DØ)ð 9ð 9˜Ý"$§(¢(Ð+fÐ+fÐ+fÐ+fÐPS×PcÒPcÑPeÔPeÐ+fÑ+fÔ+fÕhjÔhpÑ"qÔ"q˜ÝŸš T¨G¨9°aÑ8Ô8Ð8Ð8Ý #§
¢
¨9¸4ÀY 
Ñ OÔ O�IØÐr   N)r›   rœ   r�   r¨   r–   rë   r¬   rž   r   r   rl   rl   L  sM   € € € € € ðð ð ð-ð -ð -ð
 ðð ñ „[ðð ð r   rl   c                 óî   —  | ¦   «          t                                dt          j        ¦   «         › �¦  «          |¦   «          t	          j        ||d¬¦  «        }|r|                     ¦   «          |||fad S )NzInitializing data for process T)ÚpasswordÚ	autoclose)r”   r•   rv   Úgetpidr   ÚPdfDocumentÚ
init_formsÚProcObjs)Úlogging_initÚengine_initÚinputr  Úmay_init_formsr   ÚengineÚpdfs           r   Ú_render_parallel_initr  t  sz   € à€L�N„N€NÝ
‡K‚KÐ>µ´±´Ð>Ð>Ñ?Ô?Ð?Ø€K�M„M€Må
Ô
˜U¨XÀÐ
FÑ
FÔ
F€CØð Ø�ŠÑÔÐð �V˜VÐ$€H€H€Hr   c                 ór   — ||          } |j         di |¤Ž} || ||¦  «         |                     ¦   «          d S )Nrž   )ÚrenderÚclose)r‹   r  r   r  r˜   ry   s         r   Ú_render_jobr!  ‚  sG   € àˆqŒ6€DØˆTŒ[Ð"Ð"˜6Ð"Ð"€FØ
€Fˆ1ˆf�dÑÔÐØ‡J‚J�L„L€L€L€Lr   c                 ó*   — t          | gt          ¢R Ž  d S r6   )r!  r  )r‹   s    r   Ú_render_parallel_jobr#  ‰  s   € å�Ð•HÐÐÐÐÐÐr   c                  ó   — d S r6   rž   rž   r   r   Ú_do_nothingr%  �  s   € € € r   c                 ó   ‡ ‡— ‰ j                              ¦   «         st          d‰ j         ›�¦  «        ‚t          ‰ ‰ j        ¬¦  «        }t          |¦  «        Št          ˆfd„‰ j        D ¦   «         ¦  «        st          d¦  «        ‚t          ‰ j        ¦  «        t          t          ‰ j        ¦  «        ¦  «        k    rt          d¦  «        ‚‰ j	        €‰ j
        j        › d�‰ _	        ‰ j        €‰ j        rdnd‰ _        ‰ j        €‰ j        d	         d
k    rdnd‰ _        ‰ j        €d‰ _        ‰ j        €Jt"          st$          s
J d¦   «         ‚t"          rt$          r‰ j        dk    rt&          ‰ _        nt(          ‰ _        ‰ j        €t-          ‰ j        t(          ¦  «        ‰ _        ‰ j        €*t-          ‰ j        t(          ¦  «        o
‰ j        dk    ‰ _        t1          ¦   «         }‰ j        r |j        d#i t4          ¤Ž  |j        d#i ˆ fd„t6          D ¦   «         ¤Ž |rt9          j        d#i |¤Žnd }t1          ‰ j        ‰ j        ‰ j         ‰ j!        ‰ j        ‰ j"        ‰ j#        ‰ j        ‰ j$        ‰ j        ‰ j        ‰ j%        tL          ‰ j'                 |‰ j(        ¬¦  «        }‰ j)        D ]
}d|d|› �<   ŒtU          j+        ‰ j         ‰ j	        t          tY          ‰¦  «        ¦  «        ‰ j        ‰ j%        ¬¦  «        }t1          ‰ j-        ‰ j.        ¬¦  «        }‰ j-        r%‰ j"        dk    rt^           0                    d¦  «         tc          ‰ ¦  «         2                    ¦   «         }|d= |d= |d         rd|d<   t^           3                    |› ¦  «         |rt^           3                    |› ¦  «         ‰                      ||¦  «        }	t          ‰ j        ¦  «        ‰ j        k    rLt^           4                    d¦  «         |	 5                    ¦   «          ‰ j        D ]}
tm          |
|||	¦  «         Œd S t^           4                    d¦  «         to          j8        ‰ j9        ¦  «        }t1          |j:        dftw          j<        tz          j>        |¬¦  «        df¬ ¦  «        }|‰ j?                 \  }}‰ j@        r‰ j@        }‰ j9        d!k    r#t‚          t‚          }}|	 5                    ¦   «          nt„          |	j5        }}t1          t†          |||jD        ‰ jE        ‰ j        ||	f¬"¦  «        }t�          ‰ jG        t          ‰ j        ¦  «        ¦  «        } ||fi |¤Ž5 }t‘          ||¦  «        } |t’          ‰ j        ¦  «        D ]}Œ	 d d d ¦  «         d S # 1 swxY w Y   d S )$Nz*Output path is not an existing directory: )r  c              3   ó8   •K  — | ]}d |cxk    o‰k     nc V — ŒdS )r   Nrž   )rÍ   r‹   Úpdf_lens     €r   ú	<genexpr>zmain.<locals>.<genexpr>™  s?   øè è € Ð4Ð4 Aˆq�AÐÐÒÐ˜ÒÐÐÐÐ4Ð4Ð4Ð4Ð4Ð4r   z*Out-of-bounds page indices are prohibited.z&Duplicate page indices are prohibited.Ú_)r   r   r   r0   r2   é   r0   r�   r‘   r*   z?Either pillow or numpy+cv2 must be installed for rendering CLI.c                 óR   •— i | ]#}t          ‰|¦  «        ¯|t          ‰|¦  «        “Œ$S rž   )Úgetattr)rÍ   Úfr   s     €r   ú
<dictcomp>zmain.<locals>.<dictcomp>º  s6   ø€ Ð[Ð[Ð[°Í'ÐRVÐXYÑJZÔJZÐ[˜�7 4¨Ñ+Ô+Ð[Ð[Ð[r   )ÚscaleÚrotationÚcropÚ	grayscaleÚ
fill_colorÚoptimize_modeÚdraw_annotsÚmay_draw_formsÚforce_halftonerU   rZ   r’   Úbitmap_makerr{   Úfill_to_strokeTÚ	no_smooth)rˆ   r‰   rŠ   r   r’   )r¡   râ   rK   ztLCD optimization clashes with lightness inversion, as post-processing colors defeats the idea of subpixel rendering.Ú
subcommandr4   r  z<obfuscated>zLinear rendering ...zParallel rendering ...Úimap)Ú
mp_contextÚmapra   r`   )ÚinitializerÚinitargsrž   )JÚoutputÚis_dirÚ
ValueErrorr   Ú
draw_formsÚlenÚallr4   Úsetr‰   r  Ústemr4  Úsample_themer   Úlinearr>   Úhave_pilÚhave_cv2rl   rj   rU   Ú
issubclassrZ   ÚdictÚupdateÚSampleThemeÚColorSchemeFieldsr   ÚPdfColorSchemer0  r1  r2  r3  r5  r6  r8  r’   rs   r9  r:  Úno_antialiasÚtypesÚSimpleNamespaceri   r¡   râ   r”   ÚwarningÚvarsÚcopyr¢   r•   r¨   r!  rb   Úget_contextÚparallel_strategyÚPoolrì   Úpartialrc   ÚProcessPoolExecutorÚparallel_libÚparallel_mapr%  r   r  Ú_inputr  ÚminÚ	processesr-  r#  )r   r  Ú	cs_kwargsr{   r   r-   rƒ   r�   Ú
print_argsr  r‹   ÚctxÚpool_backendsÚ	pool_ctorÚmap_attrr  r  Úpool_kwargsÚn_procsÚpoolÚmap_funcr*  r(  s   `                     @r   Úmainrn  ‘  s  øø€ àŒ;×ÒÑÔð WåÐUÀdÄkÐUÐUÑVÔVÐVå
�D T¤_Ð
5Ñ
5Ô
5€CÝ�#‰hŒh€GÝÐ4Ð4Ð4Ð4¨¬Ð4Ñ4Ô4Ñ4Ô4ð GÝÐEÑFÔFÐFÝ
ˆ4Œ:�„�#�c $¤*™oœoÑ.Ô.Ò.Ð.ÝÐAÑBÔBÐBà„{ÐØœœÐ+Ð+Ð+ˆŒØ„ÐØ,0Ô,=ÐW˜.˜.ÐCWˆŒØ„{Ðà#œ¨qÔ1°SÒ8Ð8�e�e¸eˆŒØ„{ÐØˆŒð „ÐÝÐf�8ÐfÐfÐ%fÑfÔfÐ#Ýð 	(�hð 	(¨4¬;¸%Ò+?Ð+?Ý,ˆDŒOˆOå'ˆDŒOð ÔÐ!Ý'¨¬½ÑCÔCˆÔØÔÐå% d¤oµyÑAÔAÐZÀdÄkÐUZÒFZˆÔå‘”€IØÔð (Øˆ	ÔÐ'Ð'�;Ð'Ð'Ð'Ø€IÔÐ\Ð\Ð[Ð[Ð[Ð[Õ5FÐ[Ñ[Ô[Ð\Ð\Ð\Ø9BÐL•6Ô(Ð5Ð5¨9Ð5Ð5Ð5È€LåØ”
Ø”=ØŒyØ”NØ”_ØÔ*ØÔ&ØœØÔ,ØÔ*ØÔ&ØÔ&Ý# DÔ$5Ô6Ø#ØÔ,ðñ ô €Fð" Ô!ð *ð *ˆØ%)ˆÐ!˜4Ð!Ð!Ñ"Ð"åÔ&Ø”[Ø”Ý•s˜7‘|”|Ñ$Ô$Ø”ØÔ&ðñ ô €Jõ ØÔ0ØÔ,ðñ ô €Oð Ôð O Ô!3°uÒ!<Ð!<Ý�Šð  Nñ  	Oô  	Oð  	Oå�d‘”—’Ñ"Ô"€JØ�<Ð  *¨WÐ"5Ø�*Ôð 0Ø!/ˆ
�:ÑÝ
‡L‚L�J�Ñ!Ô!Ð!Øð (Ý�Š˜Ð&Ñ'Ô'Ð'à�_Š_˜Z¨Ñ9Ô9€Få
ˆ4Œ:�„˜$œ+Ò%Ð%å�ŠÐ*Ñ+Ô+Ð+Ø×ÒÑÔÐØ”ð 	0ð 	0ˆAÝ˜˜3 ¨Ñ/Ô/Ð/Ð/ð	0ð 	0õ
 	�ŠÐ,Ñ-Ô-Ð-åŒn˜TÔ3Ñ4Ô4ˆÝØ”(˜FÐ#ÝÔ#¥BÔ$:ÀsÐKÑKÔKÈUÐSð
ñ 
ô 
ˆð ,¨DÔ,=Ô>Ñˆ	�8ØÔð 	)ØÔ(ˆHàÔ! VÒ+Ð+Ý(3µ[˜+ˆLØ×ÒÑÔÐÐå(5°vÔ7H˜+ˆLåÝ/Ø$ k°3´:¸t¼}ÈdÌoÐ_eÐgmÐnð
ñ 
ô 
ˆõ
 �d”n¥c¨$¬*¡o¤oÑ6Ô6ˆØˆY�wÐ.Ð. +Ð.Ð.ð 	°$Ý˜t XÑ.Ô.ˆHØ�XÕ2°D´JÑ?Ô?ð ð �Øðð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Õ*VÖVÖ
V)9rv   rt   rU  Úloggingr±   rì   Úpathlibr   Úmultiprocessingrb   Úconcurrent.futuresÚfuturesrc   Úimportlib.utilr   Úpypdfium2._helpersÚ_helpersr   Úpypdfium2.internalÚinternalr   Úpypdfium2.rawÚrawr   Úpypdfium2_cli._setupr   Úpypdfium2_cli._parsersr   r   r   r	   rL  rM  Ú	getLoggerr›   r”   r   rO  r   Ú
new_nativeÚnew_foreignr]  rs   rR  rp   rq   rQ  r}   r   rj   rk   rl   r  r!  r#  r%  rn  rž   r   r   ú<module>r€     s÷  ðð 
€	€	€	Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $à #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø  Ð  Ð  Ð  Ð  Ð  Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð ð ð ˆ9�UÑÔ 4Ð'€Øˆ9�UÑÔ 4Ð'€Ø	ˆÔ	˜8Ñ	$Ô	$€ðZð Zð Zð ˆtØÔÔ(ØÔÔ*Ø&�YÔ& vÔ'7Ô'CÐRVÐWÑWÔWØ3ð	ñ ô €ð MÐ ØˆD˜ A¨CÐ0Ñ0Ô0€	Øˆdà&Ø&Ø&Ø&ðñ ô €ðwð wð wðt<ð <ð <ð <ð <ñ <ô <ð <ð,4ð 4ð 4ð 4ð 4�ñ 4ô 4ð 4ðn
Cð 
Cð 
Cð 
Cð 
C�iñ 
Cô 
Cð 
Cð%ð %ð %ð %ð %�lñ %ô %ð %ðP%ð %ð %ðð ð ðð ð ð Ð Ð ð{ð {ð {ð {ð {r   