Ë
    6Š·jm0  ã                  óB  — d dl m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m	Z	m
Z
mZmZ  ej                  d«      ZerddlmZ dZd	Zd!d
„Z	 	 	 	 	 	 	 	 d"d„Z	 	 	 	 	 	 	 	 d"d„Z	 	 	 	 	 	 	 	 d"d„Z	 	 	 	 	 	 	 	 d"d„Z G d„ d«      Z G d„ de
j                  «      Zd#d„Zd$d„Z e	j6                  ej8                  ee«        e	j:                  ej8                  d«        e	j<                  ej8                  e«        e	j>                  ej8                  d«       e dk(  rì e!ejD                  «      dk  r e#d«        ejH                  «         e%ejD                  d   d«      5 Z& ee&«      Z'e'jP                  d   D ]*  Z)e)x\  Z*Z+Z,e'_)        e'j[                  de*› de+› de,› d�«       Œ,  e	jJ                  ejD                  d   «      5 Z.e.j[                  d«       ddd«       ej^                  d k(  r ej`                  d«       ddd«       yy# 1 sw Y   Œ4xY w# 1 sw Y   yxY w)%é    )ÚannotationsN)ÚIOé   )ÚImageÚ	ImageFileÚPngImagePluginÚfeaturesÚjpg_2000)ÚJpeg2KImagePlugins   icnsé   c                óT   — t        j                  d| j                  t        «      «      S )Nz>4sI)ÚstructÚunpackÚreadÚ
HEADERSIZE)Úfobjs    úI/root/workspace/.venv/lib/python3.12/site-packages/PIL/IcnsImagePlugin.pyÚ
nextheaderr   %   s   € Ü�=‰=˜ §¡¬:Ó!6Ó7Ð7ó    c                óž   — |\  }}| j                  |«       | j                  d«      }|dk7  rd}t        |«      ‚t        | |dz   |dz
  f|«      S )Né   s       z'Unknown signature, expecting 0x00000000)Úseekr   ÚSyntaxErrorÚread_32)r   Ústart_lengthÚsizeÚstartÚlengthÚsigÚmsgs          r   Úread_32tr!   )   s[   € ð !�M€Eˆ6Ø‡I�IˆeÔØ
�)‰)�A‹,€CØ
Ð!Ò!Ø7ˆÜ˜#ÓÐÜ�4˜% !™) V¨a¡ZÐ0°$Ó7Ð7r   c           
     ó&  — |\  }}| j                  |«       |d   |d   z  |d   |d   z  f}|d   |d   z  }||dz  k(  r0| j                  |«      }t        j                  d||dddd«      }d|iS t        j                  d|d«      }t        d«      D ]ú  }	g }
|}|dkD  r€| j                  d«      }|snl|d   }|dz  r,|d	z
  }| j                  d«      }|
j                  |g|z  «       n%|dz   }|
j                  | j                  |«      «       ||z  }|dk  rn|dkD  rŒ€|dk7  rd
t        |«      › d�}t        |«      ‚t        j                  d|dj                  |
«      dddd«      }|j                  j                  |j                  |	«       Œü d|iS )zn
    Read a 32bit RGB icon resource.  Seems to be either uncompressed or
    an RLE packbits-like scheme.
    r   é   r   é   ÚRGBÚrawNé€   é}   zError reading channel [z left]ÚLr   )r   r   r   Ú
frombufferÚnewÚrangeÚextendÚappendÚreprr   ÚjoinÚimÚputband)r   r   r   r   r   Ú
pixel_sizeÚsizesqÚindatar1   Úband_ixÚdataÚ	bytesleftÚbyteÚbyte_intÚ	blocksizer    Úbands                    r   r   r   6   s¿  € ð !�M€Eˆ6Ø‡I�IˆeÔØ�q‘'˜D ™GÑ# T¨!¡W¨t°A©wÑ%6Ð7€JØ˜‰]˜Z¨™]Ñ*€FØ�˜!‘Òà—‘˜6Ó"ˆÜ×Ñ˜e Z°¸ÀÀqÈ!ÓLˆð6 �2ˆ;Ðô1 �Y‰Y�u˜j¨$Ó/ˆÜ˜Q“xò 	,ˆGØˆDØˆIØ˜a’-Ø—y‘y “|�ÙØØ ™7�Ø˜d’?Ø (¨3¡�IØŸ9™9 Q›<�DØ—K‘K  ¨Ñ 2Õ3à (¨1¡�IØ—K‘K §	¡	¨)Ó 4Ô5Ø˜YÑ&�	Ø ’>Øð ˜a“-ð ˜AŠ~Ø/´°Y³Ð/@ÀÐG�Ü! #Ó&Ð&Ü×#Ñ# C¨°S·X±X¸d³^ÀUÈCÐQRÐTUÓVˆDØ�E‰E�M‰M˜$Ÿ'™' 7Õ+ð-	,ð. �2ˆ;Ðr   c           	     óÌ   — |d   }| j                  |«       |d   |d   z  |d   |d   z  f}|d   |d   z  }t        j                  d|| j                  |«      dddd«      }d|iS )Nr   r#   r   r)   r&   ÚA)r   r   r*   r   )r   r   r   r   r3   r4   r<   s          r   Úread_mkr?   b   s~   € ð ˜‰O€EØ‡I�IˆeÔØ�q‘'˜D ™GÑ# T¨!¡W¨t°A©wÑ%6Ð7€JØ˜‰]˜Z¨™]Ñ*€FÜ×Ñ˜C ¨T¯Y©Y°vÓ->ÀÀsÈAÈqÓQ€DØ�ˆ;Ðr   c                óŽ  — |\  }}| j                  |«       | j                  d«      }|j                  d«      rI| j                  |«       t        j                  | «      }t        j                  |j                  «       d|iS |j                  d«      s|dk(  r¢t        sd}t        |«      ‚| j                  |«       | j                  |«      }t        j                  |«      }	t        j                  |	«      }t        j                  |j                  «       |j                  dk7  r|j                  d«      }d|iS d}t        |«      ‚)Né   s   ‰PNG

ÚRGBA)s   ÿOÿQs   
‡
s      jP  
‡
zQUnsupported icon subimage format (rebuild PIL with JPEG 2000 support to fix this)z Unsupported icon subimage format)r   r   Ú
startswithr   ÚPngImageFiler   Ú_decompression_bomb_checkr   Úenable_jpeg2kÚ
ValueErrorÚioÚBytesIOr   ÚJpeg2KImageFileÚmodeÚconvert)
r   r   r   r   r   r   r1   r    Ú
jp2kstreamÚfs
             r   Úread_png_or_jpeg2000rO   n   s  € ð !�M€Eˆ6Ø‡I�IˆeÔØ
�)‰)�B‹-€Cð ‡~�~Ð0Ô1Ø�	‰	�%ÔÜ×(Ñ(¨Ó.ˆÜ×'Ñ'¨¯©Ô0Ø˜ˆ|Ðà�‰ÐAÔBØÐ9Ò9åð6ð ô ˜S“/Ð!à�	‰	�%ÔØ—Y‘Y˜vÓ&ˆ
Ü�J‰J�zÓ"ˆÜ×.Ñ.¨qÓ1ˆÜ×'Ñ'¨¯©Ô0Ø�7‰7�fÒØ—‘˜FÓ#ˆBØ˜ˆ|Ðà0ˆÜ˜‹oÐr   c                  óÎ   — e Zd Zdefgdefgdefgdefgdefgdefdefdefgd	efgd
efgdefdefgdefdefdefgdefgdefdefdefgdœZdd„Zdd„Z	dd„Z
dd„Z	 d	 	 	 d d„Zy)!ÚIcnsFileó   ic10ó   ic09ó   ic14ó   ic08ó   ic13ó   ic07s   it32s   t8mks   icp6ó   ic12s   ih32s   h8mks   icp5s   il32s   l8mkó   ic11s   icp4s   is32s   s8mk))é   rZ   r#   )rZ   rZ   r   )é   r[   r#   )r[   r[   r   )r'   r'   r#   )r'   r'   r   )é@   r\   r   )é    r]   r#   )é0   r^   r   )r]   r]   r   )é   r_   r#   )r_   r_   r   c                ó`  — i | _         || _        t        |«      \  }}t        |«      sd}t	        |«      ‚t
        }||k  rot        |«      \  }}|dk  rd}t	        |«      ‚|t
        z  }|t
        z  }||f| j                   |<   |j                  |t        j                  «       ||z  }||k  rŒnyy)z@
        fobj is a file-like object as an icns resource
        znot an icns filer   zinvalid block headerN)	Údctr   r   Ú_acceptr   r   r   rH   ÚSEEK_CUR)Úselfr   r   Úfilesizer    Úir;   s          r   Ú__init__zIcnsFile.__init__¯   s°   € ð
 ˆŒØˆŒ	Ü" 4Ó(‰ˆˆXÜ�sŒ|Ø$ˆCÜ˜cÓ"Ð"ÜˆØ�(ŠlÜ'¨Ó-‰NˆC�Ø˜AŠ~Ø,�Ü! #Ó&Ð&Ø”‰OˆAØœÑ#ˆIØ 	˜NˆD�H‰H�S‰MØ�I‰I�i¤§¡Ô-Ø�‰NˆAð �(�lr   c                ó¤   — g }| j                   j                  «       D ]0  \  }}|D ]&  \  }}|| j                  v sŒ|j                  |«        Œ0 Œ2 |S ©N)ÚSIZESÚitemsra   r.   )rd   Úsizesr   ÚfmtsÚfmtÚreaders         r   Ú	itersizeszIcnsFile.itersizesÆ   s[   € ØˆØŸ*™*×*Ñ*Ó,ò 	‰JˆD�$Ø#ò ‘��VØ˜$Ÿ(™(’?Ø—L‘L Ô&Ùñð	ð
 ˆr   c                óV   — | j                  «       }|sd}t        |«      ‚t        |«      S )NzNo 32bit icon resources found)rp   r   Úmax)rd   rl   r    s      r   ÚbestsizezIcnsFile.bestsizeÏ   s+   € Ø—‘Ó ˆÙØ1ˆCÜ˜cÓ"Ð"Ü�5‹zÐr   c                óº   — i }| j                   |   D ]F  \  }}| j                  j                  |«      }|€Œ$|j                   || j                  ||«      «       ŒH |S )zÂ
        Get an icon resource as {channel: array}.  Note that
        the arrays are bottom-up like windows bitmaps and will likely
        need to be flipped or transposed in some way.
        )rj   ra   ÚgetÚupdater   )rd   r   ra   Úcodero   Údescs         r   ÚdataforsizezIcnsFile.dataforsizeÖ   s]   € ð ˆØ ŸJ™J tÑ,ò 	:‰LˆD�&Ø—8‘8—<‘< Ó%ˆDØÑØ—
‘
™6 $§)¡)¨T°4Ó8Õ9ð	:ð ˆ
r   Nc                ó  — |€| j                  «       }nt        |«      dk(  r|d   |d   df}| j                  |«      }|j                  d«      }|r|S |d   j	                  «       }	 |j                  |d   «       |S # t        $ r Y |S w xY w)Nr#   r   r   rB   r%   r>   )rs   Úlenry   ru   ÚcopyÚputalphaÚKeyError)rd   r   Úchannelsr1   s       r   ÚgetimagezIcnsFile.getimageã   s    € ð ˆ<Ø—=‘=“?‰DÜ�‹Y˜!Š^Ø˜‘G˜T !™W aÐ(ˆDØ×#Ñ# DÓ)ˆà�\‰\˜&Ó!ˆÙØˆIà�e‰_×!Ñ!Ó#ˆð	Ø�K‰K˜ ™Ô&ð ˆ	øô ò 	ØØˆ	ð	ús   Á'A= Á=	B
Â	B
)r   ú	IO[bytes]ÚreturnÚNone)r‚   zlist[tuple[int, int, int]])r‚   útuple[int, int, int])r   r„   r‚   údict[str, Image.Image]ri   )r   z-tuple[int, int] | tuple[int, int, int] | Noner‚   úImage.Image)Ú__name__Ú
__module__Ú__qualname__rO   r!   r?   r   rj   rg   rp   rs   ry   r€   © r   r   rQ   rQ   “   s	  „ à Ð"6Ð7Ð8Ø Ð"6Ð7Ð8Ø Ð"6Ð7Ð8Ø Ð"6Ð7Ð8Ø Ð"6Ð7Ð8àÐ*Ð+Ø�hÐØ�gÐð
ð
 Ð 4Ð5Ð6ØÐ 4Ð5Ð6Ø Ð(¨7°GÐ*<Ð=àÐ*Ð+Ø�gÐØ�gÐð
ð
 Ð 4Ð5Ð6àÐ*Ð+Ø�gÐØ�gÐð
ñ)€Eó6ó.óóð EIðØAðà	ôr   rQ   c                  ób   — e Zd ZdZdZdZd	d„Zed
d„«       Zej                  dd„«       Zddd„Z
y)ÚIcnsImageFilea!  
    PIL image support for Mac OS .icns files.
    Chooses the best resolution, but will possibly load
    a different size image if you mutate the size attribute
    before calling 'load'.

    The info dictionary has a key 'sizes' that is a list
    of sizes that the icns file has.
    ÚICNSzMac OS icns resourcec                ót  — | j                   €J ‚t        | j                   «      | _        d| _        | j                  j	                  «       | j
                  d<   | j                  j                  «       | _        | j                  d   | j                  d   z  | j                  d   | j                  d   z  f| _        y )NrB   rl   r   r#   r   )	ÚfprQ   ÚicnsÚ_moderp   Úinfors   Ú	best_sizer   ©rd   s    r   Ú_openzIcnsImageFile._open
  s•   € Ø�w‰wÐ"Ð"Ð"Ü˜TŸW™WÓ%ˆŒ	ØˆŒ
Ø!ŸY™Y×0Ñ0Ó2ˆ�	‰	�'ÑØŸ™×+Ñ+Ó-ˆŒà�N‰N˜1Ñ §¡¨qÑ 1Ñ1Ø�N‰N˜1Ñ §¡¨qÑ 1Ñ1ð
ˆ�	r   c                ó   — | j                   S ri   )Ú_sizer”   s    r   r   zIcnsImageFile.size  s   € à�z‰zÐr   c                ó´   — | j                   d   D ]:  }|d   |d   z  |d   |d   z  f}|d   |d   z  }|d   |d   z  |k(  sŒ3|| _         y  d}t        |«      ‚)Nrl   r   r#   r   z2This is not one of the allowed sizes of this image)r’   r—   rG   )rd   Úvaluer   Úsimple_sizeÚscaler    s         r   r   zIcnsImageFile.size  sƒ   € ð —I‘I˜gÑ&ò 	ˆDØ˜q™' D¨¡GÑ+¨T°!©W°t¸A±wÑ->Ð>ˆKØ ‘N e¨A¡hÑ.ˆEØ˜1‰~  a¡Ñ(¨EÓ1Ø"�”
Ùð	ð CˆÜ˜‹oÐr   Nc                óð  — |�+| j                   d d \  }}||z  ||z  f| _         |||f| _        t        j                  j                  | «      }| j                  �%| j
                  j                   | j                   k(  r|S | j                  «        | j                  j                  | j                  «      }|j                  «       }|j
                  | _        |j                  | _
        |j                   | _         |S )Nr#   )r   r“   r   ÚloadÚ_imr1   Úload_preparer�   r€   rK   r‘   )rd   r›   ÚwidthÚheightÚpxr1   s         r   r�   zIcnsImageFile.load&  sÊ   € ØÐØ ŸI™I b q˜M‰MˆE�6Ø ™ v°¡~Ð5ˆDŒIØ" F¨EÐ1ˆDŒNä�[‰[×Ñ˜dÓ#ˆØ�8‰8Ð D§G¡G§L¡L°D·I±IÒ$=àˆIØ×ÑÔà�Y‰Y×Ñ §¡Ó/ˆð �W‰W‹Yˆà—%‘%ˆŒØ—W‘WˆŒ
Ø—G‘GˆŒ	àˆ	r   )r‚   rƒ   )r‚   útuple[int, int])r™   r£   r‚   rƒ   ri   )r›   z
int | Noner‚   zImage.core.PixelAccess | None)r‡   rˆ   r‰   Ú__doc__ÚformatÚformat_descriptionr•   Úpropertyr   Úsetterr�   rŠ   r   r   rŒ   rŒ   ü   sJ   „ ñð €FØ/Ðó	
ð òó ðð 
‡[�[ò
ó ð
õr   rŒ   c           	     ó  — t        |d«      r|j                  «        dddddddddœ}| j                  j                  d	g «      D � ci c]  } | j                  | “Œ }} i }t        |j                  «       «      D ]W  }||v r||   n j                  ||f«      }t        j                  «       }|j                  |d
«       |j                  «       ||<   ŒY g }	|j                  «       D ].  \  }
}||   }|	j                  |
t        t        |«      z   |f«       Œ0 |j!                  t"        «       t        }|t        dt        |	«      z  z   z  }|t%        d„ |	D «       «      z  }|j!                  t'        j(                  d|«      «       |j!                  d«       |j!                  t'        j(                  dt        t        |	«      t        z  z   «      «       |	D ]>  }|j!                  |d   «       |j!                  t'        j(                  d|d   «      «       Œ@ |	D ]R  }|j!                  |d   «       |j!                  t'        j(                  d|d   «      «       |j!                  |d   «       ŒT t        |d«      r|j                  «        yyc c} w )za
    Saves the image as a series of PNG files,
    that are then combined into a .icns file.
    Úflushr'   r[   rZ   i   r]   r\   )rW   rU   rS   rR   rY   rX   rV   rT   Úappend_imagesÚpngr   c              3  ó&   K  — | ]	  }|d    –— Œ y­w)r   NrŠ   )Ú.0Úentrys     r   ú	<genexpr>z_save.<locals>.<genexpr>f  s   è ø€ Ò5 E�u˜Q•xÑ5ùs   ‚z>is   TOC r   r   r#   N)Úhasattrrª   Úencoderinforu   r    ÚsetÚvaluesÚresizerH   rI   ÚsaveÚgetvaluerk   r.   r   r{   ÚwriteÚMAGICÚsumr   Úpack)r1   r�   Úfilenamerl   Úprovided_imagesÚsize_streamsr   ÚimageÚtempÚentriesÚtypeÚstreamÚfile_lengthr¯   s                 r   Ú_saverÅ   >  sR  € ô
 ˆr�7ÔØ
�‰Œ
ð ØØØØØØØñ	€Eð /1¯n©n×.@Ñ.@ÀÐRTÓ.UÖV¨�r—x‘x ‘|ÐV€OÐVØ€LÜ�E—L‘L“NÓ#ò 	-ˆð �Ñ&ð ˜DÒ!à—‘˜D $˜<Ó(ð 	ô �z‰z‹|ˆØ�
‰
�4˜ÔØ!Ÿ]™]›_ˆ�TÒð	-ð €GØ—k‘k“mò A‰
ˆˆdØ˜dÑ#ˆØ�‰˜œj¬3¨v«;Ñ6¸Ð?Õ@ðAð
 ‡H�HŒU„OÜ€KØ”: ¤C¨£LÑ 0Ñ0Ñ0€KØ”3Ñ5¨WÔ5Ó5Ñ5€KØ‡H�HŒV�[‰[˜˜{Ó+Ô,ð ‡H�HˆWÔØ‡H�HŒV�[‰[˜œz¬C°«L¼:Ñ,EÑEÓFÔGØò .ˆØ
�‰��q‘ÔØ
�‰”—‘˜T 5¨¡8Ó,Õ-ð.ð
 ò ˆØ
�‰��q‘ÔØ
�‰”—‘˜T 5¨¡8Ó,Ô-Ø
�‰��q‘Õðô
 ˆr�7ÔØ
�‰�
ð ùòM Ws   ÁJc                ó,   — | j                  t        «      S ri   )rC   r¹   )Úprefixs    r   rb   rb   z  s   € Ø×ÑœUÓ#Ð#r   z.icnsz
image/icnsÚ__main__r#   z)Syntax: python3 IcnsImagePlugin.py [file]Úrbrl   zout-ú-z.pngzout.pngÚwindows)r   r�   r‚   ztuple[bytes, int])r   r�   r   r£   r   r„   r‚   r…   )r1   r†   r�   r�   r¼   zstr | bytesr‚   rƒ   )rÇ   Úbytesr‚   Úbool)1Ú
__future__r   rH   Úosr   ÚsysÚtypingr   Ú r   r   r   r	   Úcheck_codecrF   r   r¹   r   r   r!   r   r?   rO   rQ   rŒ   rÅ   rb   Úregister_openr¥   Úregister_extensionÚregister_saveÚregister_mimer‡   r{   ÚargvÚprintÚexitÚopenr�   Úimfr’   r   r    r¡   r›   r¶   r1   ÚplatformÚ	startfilerŠ   r   r   ú<module>rß      su  ðõ& #ã 	Û 	Û Û 
Ý ç 8Ó 8à$�×$Ñ$ ZÓ0€ÙÝ#à€Ø€
ó8ð
8Ø
ð
8Ø#2ð
8Ø:Nð
8àó
8ð)Ø
ð)Ø#2ð)Ø:Nð)àó)ðX	Ø
ð	Ø#2ð	Ø:Nð	àó	ð"Ø
ð"Ø#2ð"Ø:Nð"àó"÷Jbñ bôR?�I×'Ñ'ô ?óD9óx$ð €× Ñ �M×(Ñ(¨-¸Ô AØ €× Ñ ˜×-Ñ-¨wÔ 7à €× Ñ �M×(Ñ(¨%Ô 0Ø €× Ñ �M×(Ñ(¨,Ô 7àˆzÒÙ
ˆ3�8‰8ƒ}�qÒÙÐ9Ô:Øˆ�‰Œ
á	ˆc�h‰h�q‰k˜4Ó	 ð $ BÙ˜BÓˆØ—H‘H˜WÑ%ò 	:ˆDØ.2Ð2Ñ ˆE�6˜5 3¤8Ø�H‰H�t˜E˜7 ! F 8¨1¨U¨G°4Ð8Õ9ð	:ð ˆU�Z‰Z˜Ÿ™ ™Ó$ð 	¨Ø�G‰G�IÔ÷	à�<‰<˜9Ò$ØˆB�L‰L˜Ô#÷$ð $ð ÷	ð 	ú÷$ð $ús%   Å A$HÇH	Ç)HÈ	H	ÈHÈH