ó
    Eñi/3  ã                  óî  • S SK Jr  S SKrS SKJr  S SKJrJr  S SKJ	r	J
r
  SSKJrJrJrJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SrSS jrSS jr " S S\
5      r " S S5      r " S S\R                  5      r\R@                  " \RB                  \\5        \RD                  " \RB                  \5        \RF                  " \RB                  S5        \RH                  " \RB                  S5        g)é    )ÚannotationsN)ÚBytesIO)ÚceilÚlog)ÚIOÚ
NamedTupleé   )ÚBmpImagePluginÚImageÚ	ImageFileÚPngImagePlugin)Úi16le)Úi32le)Úo8)Úo16le)Úo32les      c                óv  • UR                  [        5        U R                  R                  S5      S:H  nU R                  R                  S/ SQ5      n/ nU /U R                  R                  S/ 5      -   nU R                  u  px[        [        U5      5       GH/  n	U	S   U:”  d  U	S   U:”  d  U	S   S:”  d	  U	S   S:”  a  M*  U Hµ  n
U
R                  U	:w  a  M  UR                  U
5        U(       a‡  [        R                  U
R                     S   nU/nU H^  nUR                  U	:w  a  M  [        R                  UR                     S   nX¼;  d  M<  UR                  U5        UR                  U5        M`       Mã     W
R                  5       nUR                  U	[        R                  R                  S S	9  UR                  U5        GM2     UR                  [!        [#        U5      5      5        UR%                  5       [#        U5      S
-  -   nU GH'  nUR                  u  pxUR                  ['        US:  a  UOS5      5        UR                  ['        US:  a  UOS5      5        U(       a   [        R                  UR                     SS  OSu  nnUR                  ['        U5      5        UR                  S5        UR                  S5        UR                  [!        U5      5        [)        5       nU(       ac  UR+                  US5        US:w  aJ  [        R,                  " SW	5      n[.        R0                  " UU[.        R2                  " SSU	-   SS5      /5        OUR+                  US5        UR5                  S5        UR7                  5       nU(       a  US S [9        US-  5      -   USS  -   n[#        U5      nUR                  [9        U5      5        UR                  [9        U5      5        UR%                  5       nUR5                  U5        UR                  U5        UU-   nUR5                  U5        GM*     g )NÚbitmap_formatÚbmpÚsizes))é   r   )é   r   )é    r   )é0   r   )é@   r   )é€   r   )é   r   Úappend_imagesr   r	   r   )Úreducing_gapr   )r   r   ó    s     Údibr   Ú1Úraw©r   r   )r"   r   éÿÿÿÿÚpngé   é   é   )ÚwriteÚ_MAGICÚencoderinfoÚgetÚsizeÚsortedÚsetÚappendr
   ÚSAVEÚmodeÚcopyÚ	thumbnailr   Ú
ResamplingÚLANCZOSÚo16ÚlenÚtellr   r   ÚsaveÚnewr   Ú_saveÚ_TileÚseekÚreadÚo32)ÚimÚfpÚfilenamer   r   ÚframesÚprovided_imsÚwidthÚheightr.   Úprovided_imÚbitsÚ	bits_usedÚother_imÚframeÚoffsetÚcolorsÚimage_ioÚand_maskÚimage_bytesÚ	bytes_lenÚcurrents                         ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/PIL/IcoImagePlugin.pyr=   r=   9   sl  € Ø‡H�HŒVÔØ
�.‰.×
Ñ
˜_Ó
-°Ñ
6€CØ�N‰N×ÑØÚRó€Eð €FØ�4˜"Ÿ.™.×,Ñ,¨_¸bÓAÑA€LØ—G‘G�M€EÜ”s˜5“z×"ˆØ�‰7�U‹?˜d 1™g¨Ó.°$°q±'¸C³-À4ÈÁ7ÈSÃ=Ùã'ˆKØ×Ñ 4Ó'ÙØ�M‰M˜+Ô&ÞÜ%×*Ñ*¨;×+;Ñ+;Ñ<¸QÑ?�Ø!˜F�	Û ,�HØ—}‘}¨Ó,Ù Ü)×.Ñ.¨x¯}©}Ñ=¸aÑ@�DØÕ,ð Ÿ™ hÔ/Ø!×(Ñ(¨Ö.ñ !-ò ñ! (ð&  ×$Ñ$Ó&ˆEØ�O‰O˜D¤%×"2Ñ"2×":Ñ":ÈˆOÑNØ�M‰M˜%× ñ3 #ð4 ‡H�HŒS”�V“ÓÔØ�W‰W‹Yœ˜V› rÑ)Ñ)€FÜˆØŸ
™
‰ˆà
�‰”˜U S›[‘E¨aÓ0Ô1Ø
�‰”˜f s›l‘F°Ó2Ô3æ>A”~×*Ñ*¨5¯:©:Ñ6°q°rÑ:Àw‰ˆˆfØ
�‰”�F“ÔØ
�‰�ŒØ
�‰�ÔØ
�‰”�T“Ôä“9ˆÞØ�J‰J�x Ô'à�r‹zÜ Ÿ9š9 S¨$Ó/�Ü—’ØØÜ—_’_ U¨F°T©M¸1¸lÓKÐLôøð �J‰J�x Ô'Ø�‰�aÔØ—m‘m“oˆÞØ% b q˜/¬C°¸±
«OÑ;¸kÈ"È#Ð>NÑNˆKÜ˜Ó$ˆ	Ø
�‰”�Y“Ô Ø
�‰”�V“ÔØ—'‘'“)ˆØ
�‰�ŒØ
�‰�ÔØ˜)Ñ#ˆØ
�‰�×òI ó    c                ó,   • U R                  [        5      $ ©N)Ú
startswithr+   )Úprefixs    rU   Ú_acceptr[   †   s   € Ø×ÑœVÓ$Ð$rV   c                  ó„   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   Srg)Ú
IconHeaderéŠ   ÚintrG   rH   Únb_colorÚreservedÚplanesÚbppr.   rN   útuple[int, int]ÚdimÚsquareÚcolor_depth© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__rh   rV   rU   r]   r]   Š   s;   ‡ ØƒJØƒKØƒMØƒMØƒKØ	ƒHØ
ƒIØƒKØ	ÓØƒKØÖrV   r]   c                  óN   • \ rS rSrS	S jrS
S jrSSS jjrSSS jjrSS jrSr	g)ÚIcoFileé˜   c                óÔ  • UR                  S5      n[        U5      (       d  Sn[        U5      eXl        / U l        [        US5      U l        [        U R                  5       HÎ  nUR                  S5      nUS   =(       d    SnUS   =(       d    SnUS   n[        US5      n[        UUUUS	   [        US5      [        US5      [        US
5      [        US5      XV4XV-  U=(       d*    US:g  =(       a    [        [        US5      5      =(       d    SS9n	U R                  R                  U	5        MÐ     [        U R                  S S9U l        [        U R                  S SS9U l        g)z<
Parse image from file-like object containing ico file data
é   znot an ICO fileé   r   r   r   r	   r(   é   r'   r)   )rG   rH   r`   ra   rb   rc   r.   rN   re   rf   rg   c                ó   • U R                   $ rX   )rg   ©Úxs    rU   Ú<lambda>Ú"IcoFile.__init__.<locals>.<lambda>Ç   s   € °a·m²mrV   )Úkeyc                ó   • U R                   $ rX   )rf   rw   s    rU   ry   rz   É   s   € °a·h²hrV   T)r{   ÚreverseN)r@   r[   ÚSyntaxErrorÚbufÚentryÚi16Únb_itemsÚranger]   Úi32r   r   r1   r/   )
Úselfr   ÚsÚmsgÚirG   rH   r`   rc   Úicon_headers
             rU   Ú__init__ÚIcoFile.__init__™   sD  € ð �H‰H�Q‹KˆÜ�q�z‰zØ#ˆCÜ˜cÓ"Ð"àŒØˆŒ
ô ˜A˜q›	ˆŒô �t—}‘}Ö%ˆAØ—‘˜“ˆAð �a‘D—K˜CˆEØ�q‘T—[˜SˆFð ˜‘tˆHÜ�a˜“)ˆCÜ$ØØØ!Ø˜1™Ü˜1˜a“yÜ˜˜1“IÜ˜˜A“YÜ˜1˜b“zØ�OØ‘~ð  ×T H°¡M×$L´d¼3¸xÈÓ;KÓ6L×TÐQTñˆKð  �J‰J×Ñ˜kÖ*ñ5 &ô8 ˜DŸJ™JÑ,CÑDˆŒ
ä˜DŸJ™JÑ,>ÈÑMˆ�
rV   c                óp   • U R                    Vs1 s H  oR                  UR                  4iM     sn$ s  snf )z9
Get a set of all available icon sizes and color depths.
)r€   rG   rH   )r…   Úhs     rU   r   ÚIcoFile.sizesË   s+   € ð .2¯ZªZÓ8ªZ¨—‘˜!Ÿ(™(Ó#©ZÑ8Ð8ùÒ8s   �!3c                ó’   • [        U R                  5       H.  u  p4XR                  :X  d  M  USL d  X$R                  :X  d  M,  Us  $    g)NFr   )Ú	enumerater€   re   rg   )r…   r.   rc   rˆ   r�   s        rU   ÚgetentryindexÚIcoFile.getentryindexÑ   s9   € Ü˜dŸj™jÖ)‰DˆAØ—u‘u�} #¨¢,°#¿¹Õ2FØ’ñ *ð rV   c                óB   • U R                  U R                  X5      5      $ )z
Get an image from the icon
)rM   r‘   )r…   r.   rc   s      rU   ÚgetimageÚIcoFile.getimage×   s   € ð �z‰z˜$×,Ñ,¨TÓ7Ó8Ð8rV   c                óÂ  • U R                   U   nU R                  R                  UR                  5        U R                  R	                  S5      nU R                  R                  UR                  5        USS [
        R                  :X  aB  [
        R                  " U R                  5      n[        R                  " UR                  5        U$ [        R                  " U R                  5      n[        R                  " UR                  5        UR                  S   [        UR                  S   S-  5      4Ul        UR                  S   u  pVpx[         R"                  " USUR                  -   Xx5      UR                  S'   UR$                  S:X  a‚  U R                  R                  U5        U R                  R	                  UR                  S   UR                  S   -  S-  5      S	SS2   n	 [        R&                  " S
UR                  U	SS5      n
OÓUR                  S   nUS-  S:”  a  USUR                  S   S-  -
  -  n[        X´R                  S   -  S-  5      nUR                  UR                  -   U-
  nU R                  R                  U5        U R                  R	                  U5      n [        R&                  " SUR                  USS[        US-  5      S45      n
U
(       a"  UR-                  S5      nUR/                  U
5        U$ ! [(         a    [         R*                  (       a  Sn
 NNe f = f! [(         a    [         R*                  (       a  Sn
 Nve f = f)z
Get an image from frame idx
r'   Nr   r	   r(   r$   r   rt   ru   ÚLr#   )r—   r   r%   r"   z1;Ir%   ÚRGBA)r€   r   r?   rN   r@   r   r+   ÚPngImageFiler   Ú_decompression_bomb_checkr.   r
   ÚDibImageFiler_   Ú_sizeÚtiler   r>   rc   Ú
frombufferÚ
ValueErrorÚLOAD_TRUNCATED_IMAGESÚconvertÚputalpha)r…   ÚidxÚheaderÚdatarB   ÚdÚeÚoÚaÚalpha_bytesÚmaskÚwÚtotal_bytesÚand_mask_offsetÚ	mask_datas                  rU   rM   ÚIcoFile.frameÝ   sº  € ð
 —‘˜C‘ˆà�‰�‰�f—m‘mÔ$Ø�x‰x�}‰}˜QÓˆØ�‰�‰�f—m‘mÔ$ð ��ˆ8”~×,Ñ,Ó,ä×,Ò,¨T¯X©XÓ6ˆBÜ×+Ò+¨B¯G©GÔ4ðV ˆ	ôQ  ×,Ò,¨T¯X©XÓ6ˆBÜ×+Ò+¨B¯G©GÔ4ð Ÿ™ ™
¤C¨¯©°©
°Q©Ó$7Ð8ˆBŒHØŸ™ ™‰JˆA�!Ü"Ÿš¨¨F°R·W±WÑ,<¸aÓCˆB�G‰G�A‰Jð �z‰z˜RÓð —‘—‘˜aÔ à"Ÿh™hŸm™m¨B¯G©G°A©J¸¿¹À¹Ñ,CÀaÑ,GÓHÈÈÈAÈÑN�ðÜ ×+Ò+ØØŸ™Ø#ØØ$ó‘Dð —G‘G˜A‘J�Ø˜‘F˜a“<à˜˜rŸw™w q™z¨B™Ñ/Ñ/�Aô
 " 1§w¡w¨q¡z¡>°QÑ"6Ó7�Ø"(§-¡-°&·+±+Ñ"=ÀÑ"K�à—‘—‘˜oÔ.Ø ŸH™HŸM™M¨+Ó6�	ðÜ ×+Ò+ØØŸ™Ø!ØØ¤ A¨¡E£
¨BÐ/ó�Dö  Ø—Z‘Z Ó'�Ø—‘˜DÔ!àˆ	øôW "ó Ü ×6×6Ø#šàð	ûô< "ó Ü ×6×6Ø#šàð	ús$   Ç.$L Ê33L9 Ì!L6Ì4L6Ì9!MÍM)r   r€   r‚   N)r   ú	IO[bytes]ÚreturnÚNone)r²   zset[tuple[int, int]])F)r.   rd   rc   ú
int | boolr²   r_   )r.   rd   rc   r´   r²   úImage.Image)r£   r_   r²   rµ   )
ri   rj   rk   rl   rŠ   r   r‘   r”   rM   rn   rh   rV   rU   rp   rp   ˜   s   † ô0Nôd9öö9÷ZrV   rp   c                  óz   • \ rS rSrSrSrSrSS jr\SS j5       r	\	R                  SS j5       r	SS jrSS	 jrS
rg)ÚIcoImageFilei>  aÉ  
PIL read-only image support for Microsoft Windows .ico files.

By default the largest resolution image in the file will be loaded. This
can be changed by altering the 'size' attribute before calling 'load'.

The info dictionary has a key 'sizes' that is a list of the sizes available
in the icon file.

Handles classic, XP and Vista icon formats.

When saving, PNG compression is used. Support for this was only added in
Windows Vista. If you are unable to view the icon in Windows, convert the
image to "RGBA" mode before saving.

This plugin is a refactored version of Win32IconImagePlugin by Bryan Davis
<casadebender@gmail.com>.
https://code.google.com/archive/p/casadebender/wikis/Win32IconImagePlugin.wiki
ÚICOzWindows Iconc                ó  • U R                   c   e[        U R                   5      U l        U R                  R                  5       U R                  S'   U R                  R
                  S   R                  U l        U R                  5         g )Nr   r   )	rC   rp   Úicor   Úinfor€   re   r.   Úload©r…   s    rU   Ú_openÚIcoImageFile._openV  s^   € Ø�w‰wÑ"Ð"Ð"Ü˜4Ÿ7™7Ó#ˆŒØ!ŸX™XŸ^™^Ó-ˆ�	‰	�'ÑØ—H‘H—N‘N 1Ñ%×)Ñ)ˆŒ	Ø�	‰	�rV   c                ó   • U R                   $ rX   )rœ   r½   s    rU   r.   ÚIcoImageFile.size]  s   € à�z‰zÐrV   c                óN   • XR                   S   ;  a  Sn[        U5      eXl        g )Nr   z2This is not one of the allowed sizes of this image)r»   rŸ   rœ   )r…   Úvaluer‡   s      rU   r.   rÁ   a  s%   € àŸ	™	 'Ñ*Ó*ØFˆCÜ˜S“/Ð!Ø�
rV   c                ó  • U R                   bC  U R                  R                  U R                  :X  a  [        R                  R	                  U 5      $ U R
                  R                  U R                  5      nUR	                  5         UR                  U l        UR                  U l        UR                  (       a  UR                  U l	        UR                  U R                  :w  aŠ  [        R                  " S5        U R
                  R                  U R                  5      n[        U R                  S   5      nUR                  X2'   [        U5      U R                  S'   UR                  U l        [        R                  R	                  U 5      $ )NzImage was not the expected sizer   )Ú_imrB   r.   r   r¼   rº   r”   r3   Ú_modeÚpaletteÚwarningsÚwarnr‘   Úlistr»   r0   )r…   rB   Úindexr   s       rU   r¼   ÚIcoImageFile.loadh  s  € Ø�8‰8Ñ D§G¡G§L¡L°D·I±IÓ$=ä—;‘;×#Ñ# DÓ)Ð)Ø�X‰X×Ñ˜tŸy™yÓ)ˆà
�‰Œ	Ø—%‘%ˆŒØ—W‘WˆŒ
Ø�:�:ØŸ:™:ˆDŒLØ�7‰7�d—i‘iÓÜ�MŠMÐ;Ô<à—H‘H×*Ñ*¨4¯9©9Ó5ˆEÜ˜Ÿ™ 7Ñ+Ó,ˆEØŸ7™7ˆE‰LÜ!$ U£ˆD�I‰I�gÑàŸ™ˆDŒIÜ�{‰{×Ñ Ó%Ð%rV   c                ó   • g rX   rh   )r…   Úposs     rU   Ú	load_seekÚIcoImageFile.load_seek~  s   € ð 	rV   )rÆ   rœ   rº   rB   rÇ   r.   N)r²   r³   )r²   rd   )rÃ   rd   r²   r³   )r²   zImage.core.PixelAccess | None)rÎ   r_   r²   r³   )ri   rj   rk   rl   Ú__doc__ÚformatÚformat_descriptionr¾   Úpropertyr.   Úsetterr¼   rÏ   rn   rh   rV   rU   r·   r·   >  sO   † ñð( €FØ'Ðôð óó ðð 
‡[�[óó ðô&÷,rV   r·   z.icozimage/x-icon)rB   rµ   rC   r±   rD   zstr | bytesr²   r³   )rZ   Úbytesr²   Úbool)%Ú
__future__r   rÈ   Úior   Úmathr   r   Útypingr   r   Ú r
   r   r   r   Ú_binaryr   r�   r   r„   r   r   r8   r   rA   r+   r=   r[   r]   rp   r·   Úregister_openrÒ   Úregister_saveÚregister_extensionÚregister_mimerh   rV   rU   Ú<module>râ      sÉ   ðõJ #ã Ý ß ß !ç >Ó >Ý !Ý !Ý Ý !Ý !ð
 
€ôJôZ%ô�ô ÷_ñ _ôLC�9×&Ñ&ô CðT × Ò �L×'Ñ'¨°wÔ ?Ø × Ò �L×'Ñ'¨Ô /Ø × Ò ˜×,Ñ,¨fÔ 5à × Ò �L×'Ñ'¨Õ 8rV   