§
    yØjU  ã                  óh  — 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j        ej        e¦  «          ej        ej        e¦  «          ej        ej        d¦  «          ej        ej        d¦  «         dS )é    )Úannotations>   ú	PIL._utilúPIL._binaryÚstructN)Úcasté   )ÚImageÚ	ImageFileÚImageSequenceÚJpegImagePluginÚTiffImagePlugin)Úo32le)ÚDeferredErrorF)ÚIOÚAnyÚimúImage.ImageÚfpú	IO[bytes]Úfilenameústr | bytesÚreturnÚNonec                ó2   — t          j        | ||¦  «         d S ©N)r   Ú_save)r   r   r   s      ú‡/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/PIL/MpoImagePlugin.pyr   r   +   s   € ÝÔ˜"˜b (Ñ+Ô+Ð+Ð+Ð+ó    c           
     óh  — | j                              dg ¦  «        }|s$t          | dd¦  «        st          | ||¦  «         d S d}g }| g|¢}t	          d„ |D ¦   «         ¦  «        }|D �][}t          j        |¦  «        D �]B}	|sÛdd|z  z   }
dt          j        d	d
|
z   ¦  «        z   dz   d|
z  z   |	j         d<   |	j                              d¦  «        x}rMt          |t          j        ¦  «        r|                     ¦   «         }||	j         d<   |dt          |¦  «        z   z  }t          j        |	||¦  «         |                     |                     ¦   «         ¦  «         Œà|	                     | ¦  «        }|	                     |d¦  «         ||	_         |                     |                     ¦   «         |d         z
  ¦  «         �ŒD�Œ]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<   |                     |¦  «         |                     dt1          d¦  «        z   |                     d¦  «        z   ¦  «         |                     dt2          j        ¦  «         d S )NÚappend_imagesÚis_animatedFé   c              3  ó8   K  — | ]}t          |d d¦  «        V — ŒdS )Ún_framesr   N)Úgetattr)Ú.0Úseqs     r   ú	<genexpr>z_save_all.<locals>.<genexpr>8   s.   è è € ÐDÐD°•˜˜Z¨Ñ+Ô+ÐDÐDÐDÐDÐDÐDr   é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.   r5   ÚifdÚ	mpentriesÚdata_offsetÚiÚsizeÚmptypes                      r   Ú	_save_allrU   /   së  € Ø”N×&Ò& ¸Ñ;Ô;€MØð ¥¨¨]¸EÑ!BÔ!Bð Ýˆb�"�hÑÔÐØˆà€JØ€GØÐ'˜Ð'€LÝÐDÐD°|ÐDÑDÔDÑDÔD€EØ#ð 8ñ 8ˆÝ%Ô.¨{Ñ;Ô;ð 	8ñ 	8ˆHØð 8à " u¡*™_�
àÝ”k $¨¨J©Ñ7Ô7ñ8àñð ˜ZÑ'ñ(ð Ô$ WÑ-ð $Ô/×3Ò3°FÑ;Ô;Ð;�4ð 0Ý! $­¬
Ñ3Ô3ð <Ø#Ÿ|š|™~œ~˜Ø7;˜Ô,¨VÑ4Ø !¥c¨$¡i¤i¡-Ñ/�JåÔ% h°°HÑ=Ô=Ð=Ø—’˜rŸwšw™yœyÑ)Ô)Ð)Ð)à&×BÒBÀ2ÑFÔF�Ø—’˜b &Ñ)Ô)Ð)Ø'2�Ô$Ø—’˜rŸwšw™yœy¨7°2¬;Ñ6Ñ7Ô7Ð7Ñ7ñ-	8õ0 Ô
/Ñ
1Ô
1€CØ€Cˆ�KÝ�g‘,”,€Cˆ�Kà€IØ€KÝ˜WÑ%Ô%ð ð ‰ˆˆ4Ø�Š6ˆ6ØˆFˆFàˆFØ•V”[ ¨6°4¸ÀaÈÑKÔKÑKˆ	Ø�Š6ˆ6Ø˜:Ñ%ˆKØ�tÑˆˆØ€Cˆ�Kà‡G‚GˆJÑÔÐØ‡H‚Hˆ]�U 1™XœXÑ%¨¯ª°A©¬Ñ6Ñ7Ô7Ð7Ø‡G‚GˆA�rŒ{ÑÔÐÐÐr   c                  ó`   — 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dS )ÚMpoImageFileÚMPOzMPO (CIPA DC-007)Fr   r   c                ó²   — | j         €J ‚| j                              d¦  «         t          j                             | ¦  «         |                      ¦   «          d S )Nr   )r   rD   r   ÚJpegImageFileÚ_openÚ_after_jpeg_open©Úselfs    r   r[   zMpoImageFile._openq   sP   € ØŒwÐ"Ð"Ð"ØŒ�Š�Q‰ŒˆÝÔ%×+Ò+¨DÑ1Ô1Ð1Ø×ÒÑÔÐÐÐr   NÚmpheaderúdict[int, Any] | Nonec                óò  ‡ — |�|n‰                       ¦   «         ‰ _        ‰ j        €d}t          |¦  «        ‚‰ j        d         ‰ _        ˆ fd„‰ j        d         D ¦   «         ‰ _        d‰ j        d<   ‰ j        t          ‰ j        ¦  «        k    sJ ‚‰ j        d= ‰ j        dk    ‰ _        ‰ j        €J ‚‰ j        ‰ _	        ‰ j	         
                    ‰ j        d         ¦  «         d‰ _        d‰ _        d‰ _        d S )Nz(Image appears to be a malformed MPO filer2   c                ó<   •— g | ]}|d          ‰j         d         z   ‘ŒS )Ú
DataOffsetÚmpoffset)Úinfo)r&   Úmpentr^   s     €r   ú
<listcomp>z1MpoImageFile._after_jpeg_open.<locals>.<listcomp>}   s7   ø€ ð 
ð 
ð 
Ø<AˆE�,Ô $¤)¨JÔ"7Ñ7ð
ð 
ð 
r   r3   r   rd   r   )Ú_getmpÚmpinfoÚ
ValueErrorr$   Ú_MpoImageFile__mpoffsetsr=   re   r!   r   Ú_fprD   Ú_MpoImageFile__frameÚoffsetÚreadonly)r^   r_   Úmsgs   `  r   r\   zMpoImageFile._after_jpeg_openw   s	  ø€ Ø"*Ð"6�h�h¸D¿KºK¹M¼MˆŒØŒ;ÐØ<ˆCÝ˜S‘/”/Ð!Øœ FÔ+ˆŒð
ð 
ð 
ð 
ØEIÄ[ÐQWÔEXð
ñ 
ô 
ˆÔð  ˆÔ˜Ñð Œ}¥ DÔ$4Ñ 5Ô 5Ò5Ð5Ð5Ð5ØŒI�jÐ!Øœ=¨1Ò,ˆÔØŒwÐ"Ð"Ð"Ø”7ˆŒØŒ�Š�dÔ& qÔ)Ñ*Ô*Ð*ØˆŒØˆŒàˆŒˆˆr   ÚposÚintc                ó†   — t          | j        t          ¦  «        r| j        j        ‚| j                             |¦  «         d S r   )r:   rl   r   ÚexrD   )r^   rq   s     r   Ú	load_seekzMpoImageFile.load_seekŽ   s:   € Ý�d”h¥Ñ.Ô.ð 	Ø”(”+ÐØŒ�Š�cÑÔÐÐÐr   Úframec                ó†  — |                       |¦  «        sd S t          | j        t          ¦  «        r| j        j        ‚| j        | _        | j        |         | _        | j         	                    d¦  «        }d| j        v r| j        d= | j         
                    | j        dz   ¦  «         | j                             d¦  «        sd}t          |¦  «        ‚| j         
                    | j        ¦  «         t          j                             | ¦  «         t!          j        | j        ¦  «         | j         	                    d¦  «        |k    r|                      ¦   «          t)          j        dddg| j        ¢R | j        | j        d         d         ¦  «        g| _        || _        t           j         
                    | |¦  «         d S )Nr.   é   zNo data found for frameÚjpegr   r1   )Ú_seek_checkr:   rl   r   rt   r   rk   rn   re   r6   rD   Úreadrj   r   rZ   r[   r	   Ú_decompression_bomb_checkrS   Ú_reload_exifr
   Ú_TileÚtilerm   )r^   rv   Úoriginal_exifrp   s       r   rD   zMpoImageFile.seek“   s‰  € Ø×Ò Ñ&Ô&ð 	ØˆFÝ�d”h¥Ñ.Ô.ð 	Ø”(”+ÐØ”(ˆŒØÔ& uÔ-ˆŒàœ	Ÿš fÑ-Ô-ˆØ�T”YÐÐØ”	˜&Ð!àŒ�Š�T”[ 1‘_Ñ%Ô%Ð%ØŒw�|Š|˜A‰Œð 	"Ø+ˆCÝ˜S‘/”/Ð!ØŒ�Š�T”[Ñ!Ô!Ð!ÝÔ%×+Ò+¨DÑ1Ô1Ð1ÝÔ'¨¬	Ñ2Ô2Ð2ØŒ9�=Š=˜Ñ Ô  MÒ1Ð1Ø×ÒÑÔÐõ ŒO˜F Q¨Ð$6¨D¬IÐ$6Ð$6¸¼ÀTÄYÈqÄ\ÐRTÔEUÑVÔVð
ˆŒ	ð ˆŒÝŒ×Ò˜˜uÑ%Ô%Ð%Ð%Ð%r   c                ó   — | j         S r   )rm   r]   s    r   r?   zMpoImageFile.tell¯   s
   € ØŒ|Ðr   Újpeg_instanceúJpegImagePlugin.JpegImageFilec                óh   — t           | _        t          d| ¦  «        }|                     |¦  «         |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.
        rW   )rW   Ú	__class__r   r\   )r‚   r_   Úmpo_instances      r   ÚadoptzMpoImageFile.adopt²   s5   € õ #/ˆÔÝ˜N¨MÑ:Ô:ˆØ×%Ò% hÑ/Ô/Ð/ØÐr   )r   r   r   )r_   r`   r   r   )rq   rr   r   r   )rv   rr   r   r   )r   rr   )r‚   rƒ   r_   r`   r   rW   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingr[   r\   ru   rD   r?   Ústaticmethodr‡   © r   r   rW   rW   l   s¸   € € € € € Ø€FØ,ÐØ(-Ð%ð ð  ð  ð  ðð ð ð ð ð.ð ð ð ð
&ð &ð &ð &ð8ð ð ð ð ð +/ðð ð ð ñ „\ðð ð r   rW   z.mpoz	image/mpo)r   r   r   r   r   r   r   r   )Ú
__future__r   Ú__lazy_modules__rF   r   Útypingr   Ú r	   r
   r   r   r   Ú_binaryr   Ú_utilr   ÚTYPE_CHECKINGr   r   r   rU   rZ   rW   Úregister_saver‹   Úregister_save_allÚregister_extensionÚregister_mimer�   r   r   ú<module>r›      s¡  ðð( #Ð "Ð "Ð "Ð "Ð "à9Ð9Ð9Ð à 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à€Øð ØÐÐÐÐÐÐÐð,ð ,ð ,ð ,ð6ð 6ð 6ð 6ðzXð Xð Xð Xð X�?Ô0ñ Xô Xð XðD €Ô �LÔ'¨Ñ /Ô /Ð /Ø €Ô ˜Ô+¨YÑ 7Ô 7Ð 7à €Ô ˜Ô,¨fÑ 5Ô 5Ð 5à €Ô �LÔ'¨Ñ 5Ô 5Ð 5Ð 5Ð 5r   