Ë
    Bü´j•2  ã                  óN  — 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 ddl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	j:                  ej<                  ee«        e	j>                  ej<                  d«        e	j@                  ej<                  e«        e	jB                  ej<                  d«       e"dk(  rì e#ejH                  «      dk  r e%d«        ejL                  «         e'ejH                  d   d«      5 Z( ee(«      Z)e)jT                  d   D ]*  Z+e+x\  Z,Z-Z.e)_+        e)j_                  de,› de-› de.› d�«       Œ,  e	jN                  ejH                  d   «      5 Z0e0j_                  d «       ddd«       ejb                  d!k(  r ejd                  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)Ú	deprecateÚjpg_2000)ÚJpeg2KImagePlugins   icnsé   c                óT   — t        j                  d| j                  t        «      «      S )Nz>4sI)ÚstructÚunpackÚreadÚ
HEADERSIZE)Úfobjs    úQ/root/workspace/ytshorts/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[   € ð #�O€UˆFØ‡I�IˆeÔØ
�)‰)�A‹,€CØ
Ð!Ò!Ø7ˆÜ˜#ÓÐÜ�4˜% !™) V¨a¡ZÐ0°$Ó7Ð7r   c           
     óB  — |\  }}| 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nx|d   }|dz  r8|d	z
  }| j                  d«      }t        |«      D ]  }|
j                  |«       Œ 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ÚappendÚreprr   ÚjoinÚimÚputband)r   r   r   r   r   Ú
pixel_sizeÚsizesqÚindatar1   Úband_ixÚdataÚ	bytesleftÚbyteÚbyte_intÚ	blocksizeÚir!   Úbands                     r   r   r   7   sÎ  € ð #�O€UˆFØ‡I�IˆeÔØ�q‘'˜D ™GÑ# T¨!¡W¨t°A©wÑ%6Ð7€JØ˜‰]˜Z¨™]Ñ*€FØ�˜!‘Òà—‘˜6Ó"ˆÜ×Ñ˜e Z°¸ÀÀqÈ!ÓLˆð8 �2ˆ;Ðô3 �Y‰Y�u˜j¨$Ó/ˆÜ˜Q“xó 	,ˆGØˆDØˆIØ˜a’-Ø—y‘y “|�ÙØØ ™7�Ø˜d’?Ø (¨3¡�IØŸ9™9 Q›<�DÜ" 9Ó-ò *˜ØŸ™ DÕ)ñ*ð !)¨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Ö+ð/	,ð0 �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@   d   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_jpeg2000rP   p   s  € ð #�O€UˆFØ‡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))é   r[   r$   )r[   r[   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   rI   ÚSEEK_CUR)Úselfr   r    Úfilesizer!   r<   r;   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Úitemsrb   r.   )re   Ú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)re   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   rb   ÚgetÚupdater   )re   r   rb   Ú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   rC   r&   r?   )rs   Úlenry   ru   ÚcopyÚputalphaÚKeyError)re   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__rP   r"   r@   r   rj   rg   rp   rs   ry   r€   © r   r   rR   rR   •   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   rR   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                óX  — t        | j                  «      | _        d| _        | j                  j	                  «       | j
                  d<   | j                  j                  «       | _        | j                  d   | j                  d   z  | j                  d   | j                  d   z  f| _        y )NrC   rl   r   r$   r   )	rR   ÚfpÚicnsÚ_moderp   Úinfors   Ú	best_sizer   ©re   s    r   Ú_openzIcnsImageFile._open  s…   € Ü˜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                ó  — t        |«      dk(  r&t        ddd«       || j                  d   v rT|| _        y | j                  d   D ]:  }|d   |d   z  |d   |d   z  f}|d   |d   z  }|d   |d   z  |k(  sŒ3|| _         y  d	}t	        |«      ‚)
Nr%   z&Setting size to (width, height, scale)rB   zload(scale)rl   r   r$   r   z2This is not one of the allowed sizes of this image)r{   r
   r’   r—   rH   )re   Úvaluer   Úsimple_sizeÚscaler!   s         r   r   zIcnsImageFile.size  s¶   € äˆu‹:˜Š?ÜÐ>ÀÀMÔRØ˜Ÿ	™	 'Ñ*Ñ*Ø"�”
Øð Ÿ	™	 'Ñ*ò �Ø" 1™g¨¨Q©Ñ/°°a±¸4À¹7Ñ1BÐB�Ø# A™¨%°©(Ñ2�Ø˜q‘> E¨!¡HÑ,°Ó5Ø!&�D”JÙðð CˆÜ˜‹oÐr   Nc                óz  — |€t        | j                  «      dk(  rX|€'t        | j                  «      dk(  r| j                  d   }|€J ‚| 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   r“   r   ÚloadÚ_imr1   Úload_preparer�   r€   rL   r‘   )re   r›   ÚwidthÚheightÚpxr1   s         r   r�   zIcnsImageFile.load-  s  € ØÐ¤ D§I¡I£°!Ò 3Øˆ}¤ T§Y¡Y£°1Ò!4ØŸ	™	 !™�ØÐ$Ð$Ð$Ø Ÿ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] | tuple[int, 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\   r[   i   r^   r]   )rX   rV   rT   rS   rZ   rY   rW   rU   Úappend_imagesÚpngr   c              3  ó&   K  — | ]	  }|d    –— Œ y­w)r   NrŠ   )Ú.0Úentrys     r   ú	<genexpr>z_save.<locals>.<genexpr>p  s   è ø€ Ò5 E�u˜Q•xÑ5ùs   ‚z>is   TOC r   r   r$   N)Úhasattrrª   Úencoderinforu   r    ÚsetÚvaluesÚresizerI   rJ   Ú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Å   H  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   )rD   r¹   )Úprefixs    r   rc   rc   „  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   ztuple[int, int]r   r„   r‚   r…   )r1   r†   r�   r�   r¼   zstr | bytesr‚   rƒ   )rÇ   Úbytesr‚   Úbool)3Ú
__future__r   rI   Úosr   ÚsysÚtypingr   Ú r   r   r   r	   Ú
_deprecater
   Úcheck_codecrG   r   r¹   r   r   r"   r   r@   rP   rR   rŒ   rÅ   rc   Ú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à      sz  ðõ& #ã 	Û 	Û Û 
Ý ç 8Ó 8Ý !à$�×$Ñ$ ZÓ0€ÙÝ#à€Ø€
ó8ð
8Ø
ð
8Ø#2ð
8Ø:Nð
8àó
8ð*Ø
ð*Ø#2ð*Ø:Nð*àó*ðZ	Ø
ð	Ø#2ð	Ø:Nð	àó	ð"Ø
ð"Ø#2ð"Ø:Nð"àó"÷Jbñ bôRG�I×'Ñ'ô GóT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$