Ë
    6Š·j£  ã                  ód   — d dl mZ d dlZd dlmZ ddlmZmZmZ dZ		 	 	 	 	 	 d
d„Z
 G d„ d	«      Zy)é    )ÚannotationsN)ÚBinaryIOé   )ÚImageÚ	ImageFontÚ_binaryi   c                ón   — |D ]0  }|dk  r|dz  }| j                  t        j                  |«      «       Œ2 y)z0Write network order (big-endian) 16-bit sequencer   é   N)Úwriter   Úo16be)ÚfpÚvaluesÚvs      úB/root/workspace/.venv/lib/python3.12/site-packages/PIL/FontFile.pyÚputi16r      s8   € ð ò #ˆØˆqŠ5Ø�‰JˆAØ
�‰”—‘˜qÓ!Õ"ñ#ó    c                  óT   — e Zd ZU dZdZded<   dd„Z	 	 dd„Zdd„Zdd„Z	dd	„Z
dd
„Zy)ÚFontFilez)Base class for raster font file handlers.NzImage.Image | NoneÚbitmapc                ó(   — i | _         d gdz  | _        y )Né   )ÚinfoÚglyph)Úselfs    r   Ú__init__zFontFile.__init__)   s   € Ø.0ˆŒ	ð ˆF�S‰Lð 	�
r   c                ó    — | j                   |   S )N)r   )r   Úixs     r   Ú__getitem__zFontFile.__getitem__5   s   € ð �z‰z˜"‰~Ðr   c                óô  — | j                   rydx}x}}d}| j                  D ]T  }|sŒ|\  }}}}	t        ||d   |d   z
  «      }||d   |d   z
  z  }|t        kD  r|dz  }|d   |d   z
  }t        ||«      }ŒV |}
||z  }|
dk(  r|dk(  ry|| _        t        j                  |
|f«       t        j                  d|
|f«      | _         dgdz  | _        dx}}t        d«      D ]–  }| |   }|sŒ|\  }}}}	|d   |d   z
  }||}}||z   }|t        kD  rd||z   }}||}}|}|d   |z   |d   |z   |d   |z   |d   |z   f}| j                   j                  |	j                  |«      |«       |||f| j                  |<   Œ˜ y)zCreate metrics and bitmapNr   r   é   é   Ú1r   )r   r   ÚmaxÚWIDTHÚysizer   Ú_decompression_bomb_checkÚnewÚmetricsÚrangeÚpasteÚcrop)r   ÚhÚwÚmaxwidthÚlinesr   ÚdÚdstÚsrcÚimÚxsizer%   ÚxÚyÚiÚxxÚx0Úy0Úss                      r   ÚcompilezFontFile.compile@   sÞ  € ð �;Š;Øð ÐˆÐˆA�ØˆØ—Z‘Zò 	,ˆEÚØ"'‘��3˜˜RÜ˜˜3˜q™6 C¨¡F™?Ó+�Ø�S˜‘V˜c !™f‘_Ñ$�Ø”u’9Ø˜Q‘J�EØ˜A™  Q¡™�AÜ˜x¨Ó+‘ð	,ð ˆØ˜‘	ˆà�AŠ:˜% 1š*ØàˆŒ
ô 	×'Ñ'¨°¨Ô7Ü—i‘i  e¨U ^Ó4ˆŒð ˆF�S‰Lð 	Œð ˆ	ˆˆAÜ�s“ò 	,ˆAØ˜‘GˆEÚØ"'‘��3˜˜RØ˜‘V˜c !™f‘_�Ø˜A�B�Ø˜‘F�Ø”u’9Ø˜a !™e�q�AØ ˜�BØ�AØ˜‘F˜R‘K  Q¡¨"¡¨c°!©f°r©k¸3¸q¹6ÀB¹;ÐF�Ø—‘×!Ñ! "§'¡'¨#£,°Ô2Ø"# S¨! )�—‘˜Q’ñ	,r   c                ó(  — g }t        d«      D ]E  }| j                  |   }|r!|j                  |d   |d   z   |d   z   «       Œ5|j                  d«       ŒG t        «       }|D ]$  }|dk  r|dz  }|t	        j
                  |«      z  }Œ& t        |«      S )Nr   r   r   r!   )
r   r   r   r   r   r   r   r   r   r   r
   )r)   r(   ÚextendÚ	bytearrayr   r   Úbytes)r   r   r7   ÚmÚdatar   s         r   Ú_encode_metricszFontFile._encode_metricsr   sž   € ØˆÜ�s“ò 	)ˆAØ—‘˜Q‘ˆAÙØ—‘˜a ™d Q q¡T™k¨A¨a©DÑ0Õ1à—‘˜iÕ(ð	)ô ‹{ˆØò 	%ˆAØ�1ŠuØ�U‘
�Ø”G—M‘M !Ó$Ñ$‰Dð	%ô �T‹{Ðr   c                ó:  — | j                  «        | j                  sd}t        |«      ‚| j                  j                  t        j
                  j                  |«      d   dz   d«       t        t        j
                  j                  |«      d   dz   d«      5 }|j                  d«       |j                  d| j                  › d	�j                  d
«      «       |j                  d«       |j                  | j                  «       «       ddd«       y# 1 sw Y   yxY w)z	Save fontúNo bitmap createdr   z.pbmÚPNGz.pilÚwbs   PILfont
z;;;;;;z;
Úasciis   DATA
N)r<   r   Ú
ValueErrorÚsaveÚosÚpathÚsplitextÚopenr   r%   ÚencoderC   )r   ÚfilenameÚmsgr   s       r   rJ   zFontFile.save‚   sß   € ð 	�‰Œð �{Š{Ø%ˆCÜ˜S“/Ð!Ø�‰×ÑœŸ™×)Ñ)¨(Ó3°AÑ6¸Ñ?ÀÔGô ”"—'‘'×"Ñ" 8Ó,¨QÑ/°&Ñ8¸$Ó?ð 	-À2Ø�H‰H�\Ô"Ø�H‰H�v˜dŸj™j˜\¨Ð-×4Ñ4°WÓ=Ô>Ø�H‰H�YÔØ�H‰H�T×)Ñ)Ó+Ô,÷		-÷ 	-ñ 	-ús   ÂA0DÄDc                óÔ   — | j                  «        | j                  sd}t        |«      ‚t        j                  «       }|j	                  | j                  | j                  «       «       |S )zConvert to ImageFontrE   )r<   r   rI   r   Ú_loadrC   )r   rQ   Ú	imagefonts      r   Úto_imagefontzFontFile.to_imagefont”   sT   € ð 	�‰Œð �{Š{Ø%ˆCÜ˜S“/Ð!ä×'Ñ'Ó)ˆ	Ø�‰˜Ÿ™ T×%9Ñ%9Ó%;Ô<ØÐr   )ÚreturnÚNone)r   ÚintrV   z`tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int], Image.Image] | None)rV   r@   )rP   ÚstrrV   rW   )rV   zImageFont.ImageFont)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r<   rC   rJ   rU   © r   r   r   r   $   s9   … Ù3à!%€FÐÓ%ó
ð	ð	ó	ó0,ódó -ô$r   r   )r   r   r   z7tuple[int, int, int, int, int, int, int, int, int, int]rV   rW   )Ú
__future__r   rK   Útypingr   Ú r   r   r   r$   r   r   r_   r   r   ú<module>rc      sD   ðõ  #ã 	Ý ç 'Ñ 'à€ð#Øð#ØQð#à	ó#÷|ò |r   