o
     h                     @  sL   d Z ddlmZ ddlmZ ddlmZmZ dd
dZG dd dejZ	dS )z*
Parse X Bitmap Distribution Format (BDF)
    )annotations)BinaryIO   )FontFileImagefr   returnqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | Nonec                 C  sn  	 |   }|s	d S |drqq|dd   d}i }	 |   }|r)|dr*qD|d}||d d d||d | d< qt }	 |   }|rS|d	rTq]||d d 7 }qHd
d |d  D \}}}}	dd |d  D \}
}|
|f||	 | || |	 fdd||ff}ztd||f|dd}W n t	y   t
d||f}Y nw |t|d ||fS )NTs	   STARTCHAR	   asciis   BITMAP    r   s   ENDCHARc                 s      | ]}t |V  qd S Nint.0p r   U/home/www/facesmatcher.com/frenv_anti/lib/python3.10/site-packages/PIL/BdfFontFile.py	<genexpr>G       zbdf_char.<locals>.<genexpr>ZBBXc                 s  r   r   r   r   r   r   r   r   K   r   ZDWIDTHr   1hexENCODING)readline
startswithstripdecodefind	bytearraysplitr   	frombytes
ValueErrornewr   )r   sidpropsiZbitmapwidthheightZx_dispZy_dispZdwxZdwyZbboximr   r   r   bdf_char   sF   

(

r-   c                      s"   e Zd ZdZd fddZ  ZS )	BdfFontFilez(Font file plugin for the X11 BDF format.fpr   r   Nonec                   s  t    | }|dsd}t|i }g }	 | }|r$|dr%q\|d}||d d d||d | d< |d | d	v r[|d
dk r[|||d d d q	 t|}|sed S |\}}	\}
}}}d|	  kr{t	| j
k rn n	|
|||f| j
|	< q])Ns   STARTFONT 2.1znot a valid BDF fileTs   ENDPROPERTIESr   r   r   r   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr   )super__init__r   r   SyntaxErrorr    r   appendr-   lenZglyph)selfr/   r&   msgr(   commentsr)   cr'   chZxydstsrcr,   	__class__r   r   r2   _   s2   


(
zBdfFontFile.__init__)r/   r   r   r0   )__name__
__module____qualname____doc__r2   __classcell__r   r   r=   r   r.   \   s    r.   N)r   r   r   r	   )
rB   
__future__r   typingr    r   r   r-   r.   r   r   r   r   <module>   s   
>