§
    ¡”jãV  ã                   óæ  — U d Z ddlZddlmZ ddlmZmZmZmZm	Z	 ddl
mZmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZmZmZ ddlmZmZmZmZmZmZ ej        dd…         dk    rddlm Z  nddl!m Z  	 ddl"m#Z#m$Z$ n# e%$ r  e%d¦  «        ‚w xY wed         Z&e e'd<   dZ(e)e'd<   	 d.dee*e+e         ef         de)de&de)de,e&e-f         f
d„Z.de/de,e)e)f         de)de/fd„Z0de*de,e)e)f         de/de#j#        fd„Z1dede,eeeef         fd „Z2de,e)e)f         de/de&dee*ef         d!e)d"e*de,e#j#        e*e*e-f         fd#„Z3de,e)e)f         de/de&de*d!e)de,e#j#        e*e*e-f         fd$„Z4d%e#j#        d&e5e*ef         d'edee*e+e         ef         d(e-de#j#        fd)„Z6d&e5e*ef         d!e)dee*e+e         ef         de,e&e-f         fd*„Z7	 d/d+e5e*ef         d,ee5e*ef         df         de,ee*         e/ef         fd-„Z8dS )0z1Functions to convert an image XObject to an imageé    N)ÚBytesIO)ÚAnyÚLiteralÚOptionalÚUnionÚcasté   )Úcheck_if_whitespace_onlyÚlogger_warning)ÚColorSpacesÚStreamAttributes)ÚFilterTypes)ÚImageAttributes)ÚEmptyImageDataErrorÚLimitReachedErrorÚPdfReadError)ÚArrayObjectÚDecodedStreamObjectÚEncodedStreamObjectÚ
NullObjectÚTextStringObjectÚis_null_or_none)é   é
   )Ú	TypeAlias)ÚImageÚUnidentifiedImageErrorz]pillow is required to do image extraction. It can be installed via 'pip install pypdf[image]')	Ú Ú1ÚRGBÚ2bitsÚ4bitsÚPÚLÚRGBAÚCMYKÚmode_str_typer   ÚMAX_IMAGE_MODE_NESTING_DEPTHÚcolor_spaceÚcolor_componentsÚ	prev_modeÚdepthÚreturnc                 óâ  — |t           k    rt          d¦  «        ‚t          | ¦  «        rdS d}t          | t          ¦  «        r| }�nÚt          | t
          ¦  «        st          d| ¦  «        ‚| sdS | d                              d¦  «        rd| d         dd	…         z   }�n�| d         d
k    rM| d                              ¦   «         }t          t          |d         ¦  «        }| 
                    dd¦  «        }�n(| d         dk    r<| d                              ¦   «         }t          ||||dz   ¦  «        \  }}|dv rd}||fS | d         dk    r6| d                              ¦   «         }t          ||||dz   ¦  «        \  }}|dfS | d         dk    r’| }t          | d         ¦  «        }| d                              ¦   «         }|dk    r?|dk    r9|d         d         dk    r%t          d|d         d         › d�t          ¦  «         dS t          ||||dz   ¦  «        \  }}||fS dddddddd œ}	|	 
                    |¦  «        p(t          |	                     ¦   «         ¦  «        |         p|}||dk    fS )!z“
    Returns:
        Image mode, not taking into account mask (transparency).
        ColorInversion is required (like for some DeviceCMYK).

    z^Color spaces nested too deeply. If required, consider increasing MAX_IMAGE_MODE_NESTING_DEPTH.)r   Fr   zCannot interpret color spacer   z/Calz/Deviceé   Nú	/ICCBasedé   z/Nz
/Alternateú/Indexed)r    r&   r#   ú/Separationr	   Tz/DeviceNú/DeviceCMYKz/BlackzColor z8 converted to Gray. Please share PDF with pypdf dev team)r$   Tr   r$   r    r&   r!   r"   )Ú1bitz/DeviceGrayÚpalettez
/DeviceRGBr4   Ú2bitÚ4bit)r(   r   r   Ú
isinstanceÚstrÚlistÚ
startswithÚ
get_objectr   ÚintÚgetÚ_get_image_modeÚlenr   Ú__name__Úvalues)
r)   r*   r+   r,   Úcolor_space_strÚicc_profileÚmodeÚinvert_colorÚoriginal_color_spaceÚmode_maps
             úk/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pypdf/generic/_image_xobject.pyr@   r@   *   s  € ð Õ+Ò+Ð+ÝØlñ
ô 
ð 	
õ �{Ñ#Ô#ð ØˆyØ€OÝ�+�sÑ#Ô#ð *"Ø%ˆ‰Ý˜¥TÑ*Ô*ð ("ÝØ*¨Kñ
ô 
ð 	
ð ð $"ØˆyØ	�QŒ×	"Ò	" 6Ñ	*Ô	*ð ""Ø# k°!¤n°Q°R°RÔ&8Ñ8ˆ‰Ø	�QŒ˜;Ò	&Ð	&Ø! !”n×/Ò/Ñ1Ô1ˆÝ¥ [°Ô%6Ñ7Ô7ÐØ%Ÿ/š/¨,¸Ñ;Ô;ˆ‰Ø	�QŒ˜:Ò	%Ð	%Ø% aœ.×3Ò3Ñ5Ô5ˆÝ,ØÐ-¨y¸%À!¹)ñ
ô 
Ñˆˆlð �?Ð"Ð"ØˆDØ�\Ð!Ð!Ø	�QŒ˜=Ò	(Ð	(Ø% aœ.×3Ò3Ñ5Ô5ˆÝ,ØÐ-¨y¸%À!¹)ñ
ô 
Ñˆˆlð �TˆzÐØ	�QŒ˜:Ò	%Ð	%Ø*ÐÝ˜{¨1œ~Ñ.Ô.ÐØ% aœ.×3Ò3Ñ5Ô5ˆØ˜mÒ+Ð+Ð0@ÀAÒ0EÐ0EØ# AÔ& qÔ)¨XÒ5Ð5ÝØqÐ1°!Ô4°QÔ7ÐqÐqÐqÝñô ð ð �9Ý,ØÐ-¨y¸%À!¹)ñ
ô 
Ñˆˆlð �\Ð!Ð!ð ØØØØØØð*ð *€Hð 	�Š�_Ñ%Ô%ð 	Ý�—’Ñ!Ô!Ñ"Ô"Ð#3Ô4ð	àð 	ð �˜’ÐÐó    ÚdataÚsizeÚbitsc                 ó¬  — ddl m} |d         |d         z  }||k    rt          d|› d|› d�¦  «        ‚t          |¦  «        }d|z  dz
  }d}d|z
  }t	          |d         ¦  «        D ]_}	|d|z
  k    r
|dz  }d|z
  }t	          |d         ¦  «        D ]4}
| |         |z	  |z  ||
|	|d         z  z   <   ||z  }|dk     r
|dz  }d|z
  }Œ5Œ`t          |¦  «        S )Nr   )ÚFLATE_MAX_BUFFER_SIZEr1   zRequested buffer size z exceeds limit of ú.é   )Úpypdf.filtersrP   r   Ú	bytearrayÚrangeÚbytes)rL   rM   rN   rP   Úbuffer_sizeÚbyte_bufferÚmaskÚ
data_indexÚbitÚyÚxs              rJ   Ú	bits2byter^   |   s-  € Ø3Ð3Ð3Ð3Ð3Ð3à�q”'˜D œGÑ#€KØÐ*Ò*Ð*ÝÐ p¸Ð pÐ pÐXmÐ pÐ pÐ pÑqÔqÐqå˜KÑ(Ô(€KØ�‰I˜‰?€DØ€JØ
ˆd‰(€CÝ�4˜”7‰^Œ^ð 	ð 	ˆØ�!�d‘(Š?ˆ?Ø˜!‰OˆJØ�d‘(ˆCÝ�t˜A”w‘”ð 	ð 	ˆAØ,0°Ô,<ÀÑ,CÀtÑ+KˆK˜˜A  Q¤™K™Ñ(Ø�4‰KˆCØ�QŠwˆwØ˜a‘�
Ø˜$‘h�øð	õ �ÑÔÐrK   rF   c                 ó€  ‡— 	 t          j        | ||¦  «        }n¤# t          $ r—}|d         |d         z  }t          |¦  «        }|dk    rt	          d¦  «        |‚||z  dk    r|‚|t          | ¦  «        z  |z  Šd                     ˆfd„|D ¦   «         ¦  «        }t          j        | ||¦  «        }Y d }~nd }~ww xY w|S )Nr   r1   z9Data is 0 bytes, cannot process an image from empty data.rK   c              3   óX   •K  — | ]$}t          |ft          ‰¦  «        z  ¦  «        V — Œ%d S ©N)rV   r>   )Ú.0r]   Úks     €rJ   ú	<genexpr>z-_extended_image_from_bytes.<locals>.<genexpr>£   s7   øè è € Ð;Ð;°�˜q˜d¥S¨¡V¤V™mÑ,Ô,Ð;Ð;Ð;Ð;Ð;Ð;rK   )r   Ú	frombytesÚ
ValueErrorrA   r   Újoin)rF   rM   rL   ÚimgÚexcÚnb_pixÚdata_lengthrc   s          @rJ   Ú_extended_image_from_bytesrl   ”   sò   ø€ ð0ÝŒo˜d D¨$Ñ/Ô/ˆˆøÝð 0ð 0ð 0Ø�a”˜4 œ7Ñ"ˆÝ˜$‘i”iˆØ˜!ÒÐÝ%ØKñô àðð ˜Ñ 1Ò$Ð$ØˆIØ•S˜‘Y”YÑ Ñ,ˆØ�xŠxÐ;Ð;Ð;Ð;°dÐ;Ñ;Ô;Ñ;Ô;ˆÝŒo˜d D¨$Ñ/Ô/ˆˆˆˆˆˆøøøøð0øøøð €Js   ƒ š
B;¤BB6Â6B;c                 óÀ  — t          | ¦  «        }|dk    rd„ | D ¦   «         \  } }}}| |||fS | d         }t          |t          ¦  «        r|n|                     ¦   «         }|dk    red|v ra| d                              ¦   «         | d                              ¦   «         }} |                     d¦  «        \  }}t          |¦  «        }| |||fS t          d|› d	| › �¦  «        ‚)
Nr/   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S ra   )r=   )rb   Úvalues     rJ   rd   z*__handle_flate__indexed.<locals>.<genexpr>«   s.   è è € Ð+XÐ+XÀ5¨E×,<Ò,<Ñ,>Ô,>Ð+XÐ+XÐ+XÐ+XÐ+XÐ+XrK   r1   r   ú r   r	   z(Expected color space with 4 values, got z: )rA   r9   r:   r=   Úsplitr>   r   )r)   ÚcountÚbaseÚhivalÚlookupÚelement1s         rJ   Ú__handle_flate__indexedrw   ¨   sü   € Ý�ÑÔ€EØ�‚z€zØ+XÐ+XÈKÐ+XÑ+XÔ+XÑ(ˆ�T˜5 &Ø˜D %¨Ð/Ð/ð ˜1Œ~€HÝ% hµÑ4Ô4ÐOˆxˆx¸(×:MÒ:MÑ:OÔ:O€HØ�‚z€z�f Ð(Ð(Ø)¨!œn×7Ò7Ñ9Ô9¸;Àq¼>×;TÒ;TÑ;VÔ;V�VˆØ—n’n VÑ,Ô,‰ˆˆeÝ�E‘
”
ˆØ˜D %¨Ð/Ð/Ý
ÐXÀ%ÐXÐXÈ;ÐXÐXÑ
YÔ
YÐYrK   ÚcolorsÚobj_as_textc                 óž  ‡‡‡— d}d}t          |t          ¦  «        r |d         dk    rt          |¦  «        \  }}}	Š|dk    rd}t          || d¦  «        }n|dk    rd}t          || d	¦  «        }t	          || |¦  «        Š|dk    �rct          ‰t
          t          f¦  «        r‰                     ¦   «         Št          ‰t          ¦  «        r‰j	        Št          ‰t          ¦  «        r‰                     ¦   «         Š	 d
dd
dddœt          |dd¦  «        d                  \  }
}}‰j        dk    rþd|
z  }t          ‰¦  «        }||k    ry||k     r6t          d|› d|› d�t           ¦  «         ‰t#          dg||z
  z  ¦  «        z  Šn3t%          ‰|d…         ¦  «        st          d|› d|› d�t           ¦  «         ‰d|…         Š‰d|
…         ‰|
d…         gŠd                     ˆˆfd„t)          ‰j        d         ¦  «        D ¦   «         ¦  «        }t-          j        |‰j        |¦  «        Š�nj‰                     |¦  «        Št          ‰¦  «        |	dz   |
z  k    rt          d|› �t           ¦  «         dŠ�n|dk    r"d                     d„ ‰D ¦   «         ¦  «        Šd}nß|dk    rÙg }ˆfd„t)          dd	t          ‰¦  «        d	z  z  d	¦  «        D ¦   «         D ]�\  }}}}t3          dd|dz  z
  z  d|dz  z
  z  ¦  «        }t3          dd|dz  z
  z  d|dz  z
  z  ¦  «        }t3          dd|dz  z
  z  d|dz  z
  z  ¦  «        }|                     t#          |||f¦  «        ¦  «         Œ�d                     |¦  «        Šd}‰�‰                     ‰|¬ ¦  «         ‰                     |t8          j        k    rdnd¦  «        Šn# t<          $ r t          d!|› d"�t           ¦  «         dŠY nXw xY wt?          |¦  «        sE|d         d#k    r9|dk    r3t          |||¦  «        d         }||k    rt-          j        || |¦  «        Š|dk    rd$}d%}‰||d&fS )'zh
    Process image encoded in flateEncode
    Returns img, image_format, extension, color inversion
    ú.pngÚPNGr   r2   r!   r#   r	   r"   r/   )r   r   r   )r1   r#   r$   )r   r#   r    )r/   r#   r&   )r   r$   r#   r    r&   r   r   z#Not enough lookup values: Expected z, got rQ   Nz!Too many lookup values: Expected rK   c              3   ó�   •‡K  — | ]?Šd                       ˆˆˆfd„t          ‰j        d         ¦  «        D ¦   «         ¦  «        V — Œ@dS )rK   c              3   ób   •K  — | ])}‰‰                      |‰f¦  «        d k    rdnd         V — Œ*dS )é   r1   r   N)Úgetpixel)rb   r]   Ú
colors_arrrh   r\   s     €€€rJ   rd   z*_handle_flate.<locals>.<genexpr>.<genexpr>ý   sZ   øè è € ð ð àð #¨¯ª°a¸°VÑ(<Ô(<¸sÒ(BÐ(B 1 1ÈÔJðð ð ð ð ð rK   r   N)rg   rU   rM   )rb   r\   r�   rh   s    @€€rJ   rd   z _handle_flate.<locals>.<genexpr>ü   s†   øøè è € ð ð ð
 ð	 —H’Hð ð ð ð ð ð å!& s¤x°¤{Ñ!3Ô!3ðñ ô ñ ô ðð ð ð ð ð rK   r1   zInvalid Lookup Table in r$   c                 ó2   — g | ]}t          |||g¦  «        ‘ŒS © )rV   )rb   Úbs     rJ   ú
<listcomp>z!_handle_flate.<locals>.<listcomp>  s&   € Ð&HÐ&HÐ&H¸A¥u¨a°°A¨YÑ'7Ô'7Ð&HÐ&HÐ&HrK   r    r&   c              3   ó2   •K  — | ]}‰||d z   …         V — ŒdS )r/   Nrƒ   )rb   Únru   s     €rJ   rd   z _handle_flate.<locals>.<genexpr>  sA   øè è € ð +ð +Ø./˜˜q 1 q¡5˜yÔ)ð+ð +ð +ð +ð +ð +rK   éÿ   )ÚrawmodezBase z8 not coded please share the pdf file with pypdf dev teamr0   ú.tifÚTIFFF) r9   r   rw   r^   rl   r   r   Úget_datar   Úoriginal_bytesr:   Úencoder@   rF   rA   r   rB   rV   r
   rg   rU   rM   r   re   Úconvertr>   ÚappendÚ
putpaletter   ÚDEVICE_GRAYÚKeyErrorr   )rM   rL   rF   r)   rx   ry   Ú	extensionÚimage_formatrs   rt   ÚnbÚconvÚexpected_countÚactual_countÚarrÚ_rgbÚ_cÚ_mÚ_yÚ_kÚ_rÚ_gÚ_bÚmode2r�   rh   ru   s                           @@@rJ   Ú_handle_flater¤   º   sC  øøø€ ð €IØ€Lõ �+�{Ñ+Ô+ð P°¸A´À*Ò0LÐ0LÝ+BÀ;Ñ+OÔ+OÑ(ˆ�T˜5 &Øˆw‚€ØˆÝ˜˜t QÑ'Ô'ˆˆØ	�ŠˆØˆÝ˜˜t QÑ'Ô'ˆÝ
$ T¨4°Ñ
6Ô
6€CØ�jÒ Ñ Ý�fÕ2Õ4GÐHÑIÔIð 	'Ø—_’_Ñ&Ô&ˆFÝ�fÕ.Ñ/Ô/ð 	+ØÔ*ˆFÝ�f�cÑ"Ô"ð 	%Ø—]’]‘_”_ˆFðA	Qà Ø"Ø Ø&Ø(ðð õ ˜d A rÑ*Ô*¨1Ô-ô/‰NˆB��dð Œx˜3Šˆà!" R¡�Ý" 6™{œ{�Ø >Ò1Ð1Ø# nÒ4Ð4Ý&ØgÀ.ÐgÐgÐXdÐgÐgÐgÝ$ñô ð ð ¥%¨¨¨~ÀÑ/LÑ(MÑ"NÔ"NÑN˜˜Ý5°f¸^¸_¸_Ô6MÑNÔNð Ý&ØeÀÐeÐeÐVbÐeÐeÐeÝ$ñô ð ð $ O ^ OÔ4�FØ$ S b Sœk¨6°"°#°#¬;Ð7�
Ø—h’hð ð ð ð ð õ
 # 3¤8¨A¤;Ñ/Ô/ðñ ô ñ ô �õ ”o d¨C¬H°cÑ:Ô:�‘à—k’k $Ñ'Ô'�Ý�v‘;”; 5¨1¡9°Ñ"2Ò2Ð2Ý"Ð#K¸kÐ#KÐ#KÍXÑVÔVÐVØ!�F‘FØ˜S’[�[à ŸXšXÐ&HÐ&HÀÐ&HÑ&HÔ&HÑIÔI�FØ �D�Dð ˜V’^�^Ø�Dð+ð +ð +ð +Ý38¸¸AÅÀVÁÄÐPQÑAQÑ<RÐTUÑ3VÔ3Vð+ñ +ô +ð 9ð 9™˜˜B  Bõ ! ¨¨B°©H©Ñ!5¸¸RÀ#¹X¹Ñ!FÑGÔG˜Ý  ¨¨B°©H©Ñ!5¸¸RÀ#¹X¹Ñ!FÑGÔG˜Ý  ¨¨B°©H©Ñ!5¸¸RÀ#¹X¹Ñ!FÑGÔG˜ØŸš¥E¨2¨r°2¨,Ñ$7Ô$7Ñ8Ô8Ð8Ð8Ø ŸXšX d™^œ^�FØ �DØÐ%Ø—N’N 6°4�NÑ8Ô8Ð8Ø—+’+ T­[Ô-DÒ%DÐ%D˜c˜cÈ%ÑPÔPˆCˆCøõs ð 	ð 	ð 	ÝØV˜ÐVÐVÐVÝñô ð ð ˆFˆFˆFð	øøøõt ˜[Ñ)Ô)ð 	8¨k¸!¬nÀÒ.KÐ.Kð
 �3Š;ˆ;å# K°¸Ñ>Ô>¸qÔAˆEØ�uŠ}ˆ}Ý”o d¨D°$Ñ7Ô7�Øˆv‚~€~Øˆ	ØˆØ�˜i¨Ð.Ð.s   Ã>'O  Ï %O(Ï'O(c                 ó   — d}t          j        t          |¦  «        d¬¦  «        }t          |||¦  «        \  }}|dk    r t	          t
          |j        ¦  «        }|dk    }|j        dk    r|dk    rd}|j        |k    s|j        |hdd	hk    r|}nR|j        |hddhk    r.t          j        ||j        | 	                    ¦   «         ¦  «        }n| 
                    |¦  «        }|j        dk    r|d
k    r| 
                    d¦  «        }d}	||	||fS )zc
    Process image encoded as JPX/JPEG2000
    Returns img, image_format, extension, inversion
    ú.jp2)ÚJPEG2000©Úformatsr   r&   r%   r    r$   r#   r0   r§   )r   Úopenr   r@   r   r'   rF   re   rM   Útobytesr�   )
rM   rL   rF   r)   rx   r”   Úimg1rG   rh   r•   s
             rJ   Ú_handle_jpxr­   -  s&  € ð €IÝœ
¥7¨4¡=¤=¸-ÐHÑHÔH€DÝ(¨°f¸dÑCÔCÑ€Dˆ,Øˆr‚z€zÝ•M 4¤9Ñ-Ô-ˆØ˜v’~ˆØ„y�FÒÐ˜t uš}˜}Øˆà„y�DÒÐ˜TœY¨Ð-°#°s°Ò;Ð;àˆˆØ
Œ)�TÐ	˜v vÐ.Ò	.Ð	.õ Œo˜d D¤I¨t¯|ª|©~¬~Ñ>Ô>ˆˆà�lŠl˜4Ñ Ô ˆð „x�6ÒÐ˜k¨[Ò8Ð8Ø�kŠk˜%Ñ Ô ˆØ€LØ�˜i¨Ð5Ð5rK   rh   Úx_object_objÚlfiltersrG   c                 ó  ‡‡‡	— t           j        |v r|t           j                 Šn›| j        dk    r?|t          j        k    r/|sddgnddgŠ‰t          |                      ¦   «         ¦  «        z  ŠnQ| j        dk    r|t          j        k    s|r2| j        dk    r'ddgt          |                      ¦   «         ¦  «        z  Šnd Št          |t          ¦  «        r |d          
                    ¦   «         dk    rd Št          |t          ¦  «        rD|d          
                    ¦   «         dk    r&ddgt          |                      ¦   «         ¦  «        z  Š‰�¯t          ˆfd„t          t          ‰¦  «        ¦  «        D ¦   «         ¦  «        szg }t          dt          ‰¦  «        d	¦  «        D ]D}‰|         Š	‰|d
z            Š|                     ˆˆ	fd„t          d¦  «        D ¦   «         ¦  «         ŒE|                      |¦  «        } | S )Nr&   g      ð?g        r$   r   r2   r3   c              3   ó6   •K  — | ]}‰|         |d z  k    V — ŒdS )r	   Nrƒ   )rb   ÚiÚdecodes     €rJ   rd   z _apply_decode.<locals>.<genexpr>q  s0   øè è € Ð%UÐ%U¸Q f¨Q¤i°1°q±5Ò&8Ð%UÐ%UÐ%UÐ%UÐ%UÐ%UrK   r	   r1   c              3   óT   •K  — | ]"}t          d |d z  ‰‰z
  z  ‰z   z  ¦  «        V — Œ#dS )g     ào@N)Úround)rb   ÚjÚdmaxÚdmins     €€rJ   rd   z _apply_decode.<locals>.<genexpr>v  sS   øè è € ð ð ØFG•�e˜q 5™y¨D°4©KÑ8¸4Ñ?Ñ@ÑAÔAðð ð ð ð ð rK   é   )ÚIAÚDECODErF   ÚFTÚ
JPX_DECODErA   ÚgetbandsÚ
DCT_DECODEr9   r   r=   ÚallrU   ÚextendÚpoint)
rh   r®   r¯   r)   rG   Úlutr²   r³   r·   r¸   s
          @@@rJ   Ú_apply_decoderÄ   R  s  øøø€ õ 
„y�LÐ Ð Ø�bœiÔ(ˆˆð 
Œ�VÒ	Ð	 ­B¬MÒ 9Ð 9Ø#/Ð?�#�s��°c¸3°ZˆØ�#˜cŸlšl™nœnÑ-Ô-Ñ-ˆˆØ
Œ(�fÒ
Ð
 ­R¬]Ò!:Ð!:ÀÐ!:ÐQTÔQYÐ]`ÒQ`ÐQ`Ø�s��c #§,¢,¡.¤.Ñ1Ô1Ñ1ˆˆàˆõ 	�;¥Ñ,Ô,ðà˜ŒN×%Ò%Ñ'Ô'¨:Ò5Ð5àˆå�;¥Ñ,Ô,ð2à˜ŒN×%Ò%Ñ'Ô'¨=Ò8Ð8à�s��c #§,¢,¡.¤.Ñ1Ô1Ñ1ˆØÐ¥#Ð%UÐ%UÐ%UÐ%UÅ%ÍÈFÉÌÑBTÔBTÐ%UÑ%UÔ%UÑ"UÔ"UÐØˆÝ�q�#˜f™+œ+ qÑ)Ô)ð 	ð 	ˆAØ˜!”9ˆDØ˜!˜a™%”=ˆDØ�JŠJð ð ð ð ð ÝKPÐQTÉ:Ì:ðñ ô ñ ô ð ð ð �iŠi˜‰nŒnˆØ€JrK   c                 óT  — t           j        | v r"| t           j                 t          j        k    rd}|                      dd¦  «        dk     r,t          |                      dd¦  «        › d�dd¦  «        \  }}n/t          ||dk    rt          |¦  «        sd|vrd	n|d¦  «        \  }}||fS )
Nr    z/BitsPerComponentrR   r[   r   r   r1   ÚGrayr	   )rº   ÚCOLOR_SPACEr   Ú
DEVICE_RGBr?   r@   r   )r®   rx   r)   rF   rG   s        rJ   Ú_get_mode_and_invert_colorrÉ   }  sÝ   € õ 	Œ˜,Ð&Ð&Ø�œÔ(­KÔ,BÒBÐBð $ˆØ×ÒÐ+¨QÑ/Ô/°!Ò3Ð3Ý,Ø×ÒÐ 3°QÑ7Ô7Ð<Ð<Ð<¸aÀñ
ô 
Ñˆˆlˆlõ -Øð ˜!’�å'¨Ñ4Ô4ð ð  kÐ1Ð1ð ˆAð Øñ
ô 
Ñˆˆlð �ÐÐrK   Úx_objectÚpillow_parametersc                 óR  — dt           j         dt          t          t          f         dt          dt          dt          dt          t           j         t          t          f         fd„}| €| j                             ¦   «         n|                      ¦   «         }t          t          | t          j
                 ¦  «        t          t          | t          j                 ¦  «        f}|                      ¦   «         }t          |t          ¦  «        r|                     ¦   «         }t          |¦  «        |d	         |d
         z  z  d
k    r|d         dk    r
|dd…         }|                      dd
¦  «        }|                      dt#          ¦   «         ¦  «                             ¦   «         }t          |t&          ¦  «        r-t          |¦  «        d
k    r|d	                              ¦   «         }t)          | ||¦  «        \  }}	|                      t*          j        t#          ¦   «         ¦  «                             ¦   «         }
t          |
t&          ¦  «        r|
d         n|
}|                      t*          j        ¦  «        }|r%t          |t          t&          f¦  «        r	|d	         }ni }t          |t          ¦  «        si }d}|t0          j        t0          j        fv rt7          ||||||¦  «        \  }}}}�n§|t0          j        t0          j        fv ra|t0          j        k    rd}d}nd}d}	 t          j        t?          |¦  «        d¬¦  «        }�nN# t@          $ r tC          |||¦  «        }Y �n0w xY w|t0          j"        k    r&t          j        t?          |¦  «        ¦  «        dd}}}nö|t0          j#        k    rtI          |||||¦  «        \  }}}}	nÍ|t0          j%        k    r-t          j        t?          |¦  «        d¬¦  «        dddf\  }}}}	n�|t0          j&        k    r-t          j        t?          |¦  «        d¬¦  «        dddf\  }}}}	nS|dk    rtC          |||¦  «        dddf\  }}}}	n2|dk    rtO          d| › �¦  «        ‚tC          |||¦  «        dddf\  }}}}	tQ          || |||	¦  «        } ||| |||¦  «        \  }}}|€i }|dk    rd|_)        d|vrd|d<   t?          ¦   «         }	  |j*        |fd |i|¤Ž nN# tV          $ rA | ,                    d!¦  «        }d}d}t?          ¦   «         }| *                    ||¬"¦  «         Y nw xY w| -                    ¦   «         }	 t          j        t?          |¦  «        ¦  «        }n1# t\          $ r$}t_          d#|› �t`          ¦  «         d}Y d}~nd}~ww xY w|||fS )$aÂ  
    Users need to have the pillow package installed.

    It's unclear if pypdf will keep this function here, hence it's private.
    It might get removed at any point.

    Args:
        x_object:
        pillow_parameters: parameters provided to Pillow Image.save() method,
            cf. <https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.save>

    Returns:
        Tuple[file extension, bytes, PIL.Image.Image]

    rh   rÊ   ry   r•   r”   r-   c                 óÎ  — d }t           j        |v rÑt          |t           j                 ¦  «        d         }| j        |j        k    rt	          d|› �t
          ¦  «         nv|j        dk    r|                     d¦  «        }| j        dk    r|                      d¦  «        } n | j        dk    r|                      d¦  «        } |                      |¦  «         d|v rd}d	}nd
}d}| ||fS )Nr	   z"image and mask size not matching: r$   r#   r    r   ÚJPEGr§   r¦   r|   r{   )	rº   ÚS_MASKÚ_xobj_to_imagerM   r   rB   rF   r�   Úputalpha)rh   rÊ   ry   r•   r”   Úalphas         rJ   Ú_apply_alphaz$_xobj_to_image.<locals>._apply_alpha®  sü   € ð ˆÝŒ9˜Ð Ð Ý" 8­B¬IÔ#6Ñ7Ô7¸Ô:ˆEØŒx˜5œ:Ò%Ð%ÝØF¸ÐFÐFÍñô ð ð ð
 ”: Ò$Ð$Ø!ŸMšM¨#Ñ.Ô.�EØ”8˜s’?�?ØŸ+š+ eÑ,Ô,�C�CØ”X ’_�_ØŸ+š+ cÑ*Ô*�CØ—’˜UÑ#Ô#Ð#Ø˜Ð%Ð%Ø)�Ø"�	�	à$�Ø"�	Ø�I˜|Ð+Ð+rK   Nr   r1   éÿÿÿÿr   z/Colorsz/ColorSpacer‹   z.tiffr|   r{   )r‹   r|   r¨   rÎ   z.jpg)r‹   F)r|   ÚPPMr&   rŠ   r   zColorSpace field not found in ÚqualityÚkeepÚformatr%   )rØ   zFailed loading image: )1r   Údictr:   r   ÚtupleÚindirect_referenceÚ__repr__r   r>   rº   ÚWIDTHÚHEIGHTrŒ   r9   rŽ   rA   r?   r   r=   r;   rÉ   r   ÚFILTERÚDECODE_PARMSr¼   ÚFLATE_DECODEÚRUN_LENGTH_DECODEr¤   Ú
LZW_DECODEÚASCII_85_DECODErª   r   r   rl   r¿   r½   r­   ÚCCITT_FAX_DECODEÚJBIG2_DECODEr   rÄ   rØ   ÚsaveÚOSErrorr�   ÚgetvalueÚ	Exceptionr   rB   )rÊ   rË   rÓ   ry   rM   rL   rx   r)   rF   rG   Úfiltersr¯   Údecode_parmsr”   rh   r•   Ú_Úimg_byte_arrr¬   Ú	exceptions                       rJ   rÐ   rÐ   ›  s  € ð&,ÝŒ[ð,å•s�C�x”.ð,õ ð,õ ð	,õ
 ð,õ 
�uŒ{�C¥Ð$Ô	%ð,ð ,ð ,ð ,ðD Ðð 	Ô#×,Ò,Ñ.Ô.Ð.à×ÒÑ Ô ð õ •�h�rœxÔ(Ñ)Ô)­4µ°X½b¼iÔ5HÑ+IÔ+IÐJ€DØ×ÒÑÔ€DÝ�$�ÑÔð Ø�{Š{‰}Œ}ˆÝ
ˆ4�y„y�D˜”G˜d 1œgÑ%Ñ&¨!Ò+Ð+°°R´¸DÒ0@Ð0@Ø�C�R�CŒyˆð �\Š\˜) QÑ'Ô'€FØ—|’| Mµ:±<´<Ñ@Ô@×KÒKÑMÔM€KÝ�+�tÑ$Ô$ð 2­¨[Ñ)9Ô)9¸QÒ)>Ð)>Ø! !”n×/Ò/Ñ1Ô1ˆå3°H¸fÀkÑRÔRÑ€Dˆ,ð �lŠlÕ+Ô2µJ±L´LÑAÔA×LÒLÑNÔN€GÝ(¨µ$Ñ7Ô7ÐDˆw�rŒ{ˆ{¸W€HØ—<’<Õ 0Ô =Ñ>Ô>€LØð �
 <µ%½°Ñ?Ô?ð Ø# A”ˆˆàˆÝ�l¥DÑ)Ô)ð Øˆà€IØ•B”O¥RÔ%9Ð:Ð:Ð:Ý*7ØØØØØØñ+
ô +
Ñ'ˆˆ\˜9 a¡að 
•b”m¥RÔ%7Ð8Ð	8Ð	8ð •r”}Ò$Ð$Ø!ˆLØˆIˆIà ˆLØˆIð	?Ý”*�W T™]œ]°OÐDÑDÔDˆC‰CøÝ%ð 	?ð 	?ð 	?Ý,¨T°4¸Ñ>Ô>ˆCˆC‰Cð	?øøøà	•R”]Ò	"Ð	"Ý',¤zµ'¸$±-´-Ñ'@Ô'@À&È&˜9ˆ\ˆˆà	•R”]Ò	"Ð	"Ý5@Ø�$˜˜k¨6ñ6
ô 6
Ñ2ˆˆ\˜9 l lð 
•RÔ(Ò	(Ð	(åŒJ•w˜t‘}”}¨iÐ8Ñ8Ô8ØØØð	6
Ñ2ˆˆ\˜9 l lð 
•R”_Ò	$Ð	$åŒJ•w˜t‘}”}¨nÐ=Ñ=Ô=ØØØð	6
Ñ2ˆˆ\˜9 l lð 
�Šˆå& t¨T°4Ñ8Ô8ØØØð	6
Ñ2ˆˆ\˜9 l lð 
�ŠˆÝÐF¸HÐFÐFÑGÔGÐGõ ' t¨T°4Ñ8Ô8ØØØð	6
Ñ2ˆˆ\˜9 lõ ˜˜X x°¸lÑ
KÔ
K€CØ#/ <ØˆX�{ L°)ñ$ô $Ñ €Cˆ�Lð Ð ØÐà�vÒÐð ˆŒ
ØÐ-Ð-Ð-Ø+1Ð˜iÑ(õ ‘9”9€Lð5ØˆŒ�ÐHÐH lÐHÐ6GÐHÐHÐHÐHøÝð 5ð 5ð 5à�{Š{˜6Ñ"Ô"ˆØˆØˆ	Ý‘y”yˆØ�	Š	�, |ˆ	Ñ4Ô4Ð4Ð4Ð4ð5øøøð × Ò Ñ"Ô"€DðÝŒj� ™œÑ'Ô'ˆˆøÝð ð ð ÝÐ;°	Ð;Ð;½XÑFÔFÐFØˆˆˆˆˆˆøøøøðøøøð �d˜CÐÐs=   Ì#M  Í MÍMÓS. Ó.AT9Ô8T9Õ!U3 Õ3
V!Õ=VÖV!)r   ra   )9Ú__doc__ÚsysÚior   Útypingr   r   r   r   r   Ú_utilsr
   r   Ú	constantsr   r   r   r¼   r   rº   Úerrorsr   r   r   Úgenericr   r   r   r   r   r   Úversion_infor   Útyping_extensionsÚPILr   r   ÚImportErrorr'   Ú__annotations__r(   r>   r:   r;   rÚ   Úboolr@   rV   r^   rl   rw   r¤   r­   rÙ   rÄ   rÉ   rÐ   rƒ   rK   rJ   ú<module>rþ      s  ðØ 7Ð 7Ð 7à 
€
€
€
Ø Ð Ð Ð Ð Ð Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø )Ð )Ð )Ð )Ð )Ð )Ø -Ð -Ð -Ð -Ð -Ð -Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ Iðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ô�B�Q�BÔ˜7Ò"Ð"Ø Ð Ð Ð Ð Ð Ð à+Ð+Ð+Ð+Ð+Ð+ðØ1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1øØð ð ð Ø
ˆ+ð	=ñô ð ðøøøð #Ø>ô€ˆyð ð ñ ð %'Ð ˜cÐ &Ð &Ñ &ð ð	O ð O Ø�s˜D œI sÐ*Ô+ðO àðO ð ðO ð ð	O ð
 ˆ=˜$ÐÔðO ð O ð O ð O ðd�Eð   s¨C x¤ð ¸ð Àð ð ð ð ð0Ø
ðØ˜3 ˜8”_ðØ,1ðà
„[ðð ð ð ð(Z¨ð Z¸¸sÀCÈÈcÐ?QÔ9Rð Zð Zð Zð Zð$p/Ø
��S�Œ/ðp/à
ðp/ð ðp/ð �s˜KÐ'Ô(ð	p/ð
 ðp/ð ðp/ð ˆ5Œ;˜˜S $Ð&Ô'ðp/ð p/ð p/ð p/ðf"6Ø
��S�Œ/ð"6à
ð"6ð ð"6ð ð	"6ð
 ð"6ð ˆ5Œ;˜˜S $Ð&Ô'ð"6ð "6ð "6ð "6ðJ(Ø	Œð(à�s˜C�x”.ð(ð ð(ð �s˜D œI sÐ*Ô+ð	(ð
 ð(ð „[ð(ð (ð (ð (ðVØ�s˜C�x”.ðØ*-ðØ<AÀ#ÀtÈCÄyÐRUÐBUÔ<Vðà
ˆ=˜$ÐÔðð ð ð ð@ :>ðs ð s Ø�s˜C�x”.ðs à   c¨3 h¤°Ð!5Ô6ðs ð ˆ8�CŒ=˜% Ð$Ô%ðs ð s ð s ð s ð s ð s s   Á3A< Á<B