Ë
    ^ãjU  ã                  ó¢  — d dl mZ h d£Zd dl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 ddlmZ d	Zerd d
lmZmZ dd„Zdd„Z G d„ dej,                  «      Z ej0                  ej2                  e«        ej4                  ej2                  e«        ej6                  ej2                  d«        ej8                  ej2                  d«       y)é    )Úannotations>   ú	PIL._utilúPIL._binaryÚstructN)Úcasté   )ÚImageÚ	ImageFileÚImageSequenceÚJpegImagePluginÚTiffImagePlugin)Úo32le)ÚDeferredErrorF)ÚIOÚAnyc                ó2   — t        j                  | ||«       y ©N)r   Ú_save)ÚimÚfpÚfilenames      úT/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/PIL/MpoImagePlugin.pyr   r   +   s   € Ü×Ñ˜"˜b (Õ+ó    c           
     óú  — | j                   j                  dg «      }|st        | dd«      st        | ||«       y d}g }| g|¢}t	        d„ |D «       «      }|D �]H  }t        j                  |«      D �],  }	|sØdd|z  z   }
dt        j                  d	d
|
z   «      z   dz   d|
z  z   |	j                   d<   |	j                   j                  d«      x}rJt        |t        j                  «      r|j                  «       }||	j                   d<   |dt        |«      z   z  }t        j                  |	||«       |j                  |j!                  «       «       ŒÞ|	j#                  | «      }|	j%                  |d«       ||	_         |j                  |j!                  «       |d   z
  «       �Œ/ �ŒK t'        j(                  «       }d|d<   t        |«      |d<   d}d}t+        |«      D ];  \  }}|dk(  rd}nd}|t        j                  d|||dd«      z  }|dk(  r||z  }||z  }Œ= ||d<   |j-                  |«       |j/                  dt1        d«      z   |j                  d«      z   «       |j-                  dt2        j4                  «       y )NÚappend_imagesÚis_animatedFé   c              3  ó6   K  — | ]  }t        |d d«      –— Œ y­w)Ún_framesr   N)Úgetattr)Ú.0Úseqs     r   ú	<genexpr>z_save_all.<locals>.<genexpr>8   s   è ø€ ÒD°”˜˜Z¨×+ÑDùs   ‚éB   é   s   ÿâz>Hé   s   MPF ó    ÚextraÚexifé   ÚJPEGéÿÿÿÿs   0100i °  é°  r   r   i   z<LLLHHé°  s   II* é   )ÚencoderinfoÚgetr    r   Úsumr   ÚIteratorr   ÚpackÚ
isinstancer	   ÚExifÚtobytesÚlenr   ÚappendÚtellÚ_attach_default_encoderinfoÚsaver   ÚImageFileDirectory_v2Ú	enumerateÚseekÚwriter   ÚosÚSEEK_END)r   r   r   r   Ú
mpf_offsetÚoffsetsÚim_sequencesÚtotalÚim_sequenceÚim_frameÚ
ifd_lengthr)   r0   ÚifdÚ	mpentriesÚdata_offsetÚiÚsizeÚmptypes                      r   Ú	_save_allrP   /   sp  € Ø—N‘N×&Ñ& ¸Ó;€MÙ¤¨¨]¸EÔ!BÜˆb�"�hÔØà€JØ€GØÐ'˜Ð'€LÜÑD°|ÔDÓD€EØ#ó 8ˆÜ%×.Ñ.¨{Ó;ó 	8ˆHÙà " u¡*™_�
àÜ—k‘k $¨¨J©Ó7ñ8àñð ˜ZÑ'ñ(ð ×$Ñ$ WÑ-ð $×/Ñ/×3Ñ3°FÓ;Ð;�4Ð;Ü! $¬¯
©
Ô3Ø#Ÿ|™|›~˜Ø7;˜×,Ñ,¨VÑ4Ø !¤c¨$£i¡-Ñ/�Jä×%Ñ% h°°HÔ=Ø—‘˜rŸw™w›yÕ)à&×BÑBÀ2ÓF�Ø—‘˜b &Ô)Ø'2�Ô$Ø—‘˜rŸw™w›y¨7°2©;Ñ6Ö7ò-	8ð8ô2 ×
/Ñ
/Ó
1€CØ€Cˆ�KÜ�g“,€Cˆ�Kà€IØ€KÜ˜WÓ%ò ‰ˆˆ4Ø�Š6Ø‰FàˆFØ”V—[‘[ ¨6°4¸ÀaÈÓKÑKˆ	Ø�Š6Ø˜:Ñ%ˆKØ�tÑ‰ðð €Cˆ�Kà‡G�GˆJÔØ‡H�Hˆ]œU 1›XÑ%¨¯©°A«Ñ6Ô7Ø‡G�GˆAŒr�{‰{Õr   c                  ób   — e Zd ZdZdZdZdd„Zddd„Zdd„Zdd„Z	dd	„Z
e	 d	 	 	 	 	 dd
„«       Zy)ÚMpoImageFileÚMPOzMPO (CIPA DC-007)Fc                ó´   — | j                   €J ‚| j                   j                  d«       t        j                  j	                  | «       | j                  «        y )Nr   )r   r?   r   ÚJpegImageFileÚ_openÚ_after_jpeg_open©Úselfs    r   rV   zMpoImageFile._openq   sA   € Ø�w‰wÐ"Ð"Ð"Ø�‰�‰�QŒÜ×%Ñ%×+Ñ+¨DÔ1Ø×ÑÕr   Nc                ód  — |�|n| j                  «       | _        | j                  €d}t        |«      ‚| j                  d   | _        | j                  d   D �cg c]  }|d   | j                  d   z   ‘Œ c}| _        d| j
                  d<   | j                  t        | j
                  «      k(  sJ ‚| j                  d= | j                  dkD  | _        | j                  €J ‚| j                  | _	        | j                  j                  | j
                  d   «       d| _        d| _        d| _        y c c}w )Nz(Image appears to be a malformed MPO filer-   r.   Ú
DataOffsetÚmpoffsetr   r   )Ú_getmpÚmpinfoÚ
ValueErrorr   ÚinfoÚ_MpoImageFile__mpoffsetsr8   r   r   Ú_fpr?   Ú_MpoImageFile__frameÚoffsetÚreadonly)rY   ÚmpheaderÚmsgÚmpents       r   rW   zMpoImageFile._after_jpeg_openw   s  € Ø"*Ð"6‘h¸D¿K¹K»MˆŒØ�;‰;ÐØ<ˆCÜ˜S“/Ð!ØŸ™ FÑ+ˆŒàEIÇ[Á[ÐQWÑEXö
Ø<AˆE�,Ñ $§)¡)¨JÑ"7Ó7ò
ˆÔð  ˆ×Ñ˜Ñð �}‰}¤ D×$4Ñ$4Ó 5Ò5Ð5Ð5Ø�I‰I�jÐ!ØŸ=™=¨1Ñ,ˆÔØ�w‰wÐ"Ð"Ð"Ø—7‘7ˆŒØ�‰�‰�d×&Ñ& qÑ)Ô*ØˆŒØˆŒàˆ�ùò
s   ÁD-c                óš   — t        | j                  t        «      r| j                  j                  ‚| j                  j	                  |«       y r   )r5   rb   r   Úexr?   )rY   Úposs     r   Ú	load_seekzMpoImageFile.load_seekŽ   s.   € Ü�d—h‘h¤Ô.Ø—(‘(—+‘+ÐØ�‰�‰�cÕr   c                óÜ  — | j                  |«      sy t        | j                  t        «      r| j                  j                  ‚| j                  | _        | j                  |   | _        | j                  j                  d«      }d| j                  v r| j                  d= | j
                  j                  | j                  dz   «       | j
                  j                  d«      sd}t        |«      ‚| j
                  j                  | j                  «       t        j                  j                  | «       t!        j"                  | j$                  «       | j                  j                  d«      |k7  r| j'                  «        t)        j*                  dddg| j$                  ¢­| j                  | j,                  d   d   «      g| _        || _        t         j                   j                  | |«       y )Nr)   é   zNo data found for frameÚjpegr   r,   )Ú_seek_checkr5   rb   r   rj   r   ra   rd   r`   r1   r?   Úreadr_   r   rU   rV   r	   Ú_decompression_bomb_checkrN   Ú_reload_exifr
   Ú_TileÚtilerc   )rY   ÚframeÚoriginal_exifrg   s       r   r?   zMpoImageFile.seek“   sa  € Ø×Ñ Ô&ØÜ�d—h‘h¤Ô.Ø—(‘(—+‘+ÐØ—(‘(ˆŒØ×&Ñ& uÑ-ˆŒàŸ	™	Ÿ™ fÓ-ˆØ�T—Y‘YÑØ—	‘	˜&Ð!à�‰�‰�T—[‘[ 1‘_Ô%Ø�w‰w�|‰|˜AŒØ+ˆCÜ˜S“/Ð!Ø�‰�‰�T—[‘[Ô!Ü×%Ñ%×+Ñ+¨DÔ1Ü×'Ñ'¨¯	©	Ô2Ø�9‰9�=‰=˜Ó  MÒ1Ø×ÑÔô �O‰O˜F Q¨Ð$6¨D¯I©IÑ$6¸¿¹ÀTÇYÁYÈqÁ\ÐRTÑEUÓVð
ˆŒ	ð ˆŒÜ�‰×Ñ˜˜uÕ%r   c                ó   — | j                   S r   )rc   rX   s    r   r:   zMpoImageFile.tell¯   s   € Ø�|‰|Ðr   c                óV   — t         | _        t        d| «      }|j                  |«       |S )aC  
        Transform the instance of JpegImageFile into
        an instance of MpoImageFile.
        After the call, the JpegImageFile is extended
        to be an MpoImageFile.

        This is essentially useful when opening a JPEG
        file that reveals itself as an MPO, to avoid
        double call to _open.
        rR   )rR   Ú	__class__r   rW   )Újpeg_instancerf   Úmpo_instances      r   ÚadoptzMpoImageFile.adopt²   s,   € ô #/ˆÔÜ˜N¨MÓ:ˆØ×%Ñ% hÔ/ØÐr   )ÚreturnÚNoner   )rf   údict[int, Any] | Noner~   r   )rk   Úintr~   r   )rv   r�   r~   r   )r~   r�   )r{   zJpegImagePlugin.JpegImageFilerf   r€   r~   rR   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrV   rW   rl   r?   r:   Ústaticmethodr}   © r   r   rR   rR   l   s_   „ Ø€FØ,ÐØ(-Ð%ó ôó.ó
&ó8ð ð +/ðØ4ðà'ðð 
òó ñr   rR   z.mpoz	image/mpo)r   zImage.Imager   z	IO[bytes]r   zstr | bytesr~   r   )Ú
__future__r   Ú__lazy_modules__rA   r   Útypingr   Ú r	   r
   r   r   r   Ú_binaryr   Ú_utilr   ÚTYPE_CHECKINGr   r   r   rP   rU   rR   Úregister_saver…   Úregister_save_allÚregister_extensionÚregister_mimer‰   r   r   ú<module>r•      s¸   ðõ( #â9Ð ã 	Û Ý ÷õ õ Ý  à€Ùßó,ó6ôzX�?×0Ñ0ô XðD €× Ñ �L×'Ñ'¨Ô /Ø €× Ñ ˜×+Ñ+¨YÔ 7à €× Ñ ˜×,Ñ,¨fÔ 5à €× Ñ �L×'Ñ'¨Õ 5r   