
    :h                    j    d Z ddlmZ ddlmZ ddlmZmZ 	 	 	 	 d
dZ G d dej                        Z	y	)z*
Parse X Bitmap Distribution Format (BDF)
    )annotations)BinaryIO   )FontFileImagec                   	 | j                         }|sy |j                  d      rn&|dd  j                         j                  d      }i }	 | j                         }|r|j                  d      rn>|j	                  d      }||dz   d j                  d      ||d | j                  d      <   bt               }	 | j                         }|r|j                  d      rn	||d d z  }-d	 |d
   j                         D        \  }}}}	d |d   j                         D        \  }
}|
|f||	 |z
  ||z   |	 fdd||ff}	 t        j                  d||f|dd      }|t        |d         ||fS # t        $ r t        j                  d||f      }Y 5w xY w)Ns	   STARTCHAR	   asciis   BITMAP    r   s   ENDCHARc              3  2   K   | ]  }t        |        y wNint.0ps     M/var/www/urcfiles/bundle/venv/lib/python3.12/site-packages/PIL/BdfFontFile.py	<genexpr>zbdf_char.<locals>.<genexpr>G   s     $J5ISV5I   BBXc              3  2   K   | ]  }t        |        y wr   r   r   s     r   r   zbdf_char.<locals>.<genexpr>K   s     8 71A 7r   DWIDTHr   1hexENCODING)readline
startswithstripdecodefind	bytearraysplitr   	frombytes
ValueErrornewr   )fsidpropsibitmapwidthheightx_dispy_dispdwxdwybboxims                 r   bdf_charr5      s    JJL<<%  
12		g	&B E
JJLALL+FF4L'(Q}';';G'Daell7#$  [F
JJLALL,!CR&	  %KU5\5G5G5I$J!E666 9h 5 5 78HC 
c
	&6!56>F7;	
AufD-__S5&/65#F
 s5$%tR//	  -YYsUFO,-s   ;E( (!FFc                  $     e Zd ZdZd fdZ xZS )BdfFontFilez(Font file plugin for the X11 BDF format.c                j   t         |           |j                         }|j                  d      sd}t	        |      i }g }	 |j                         }|r|j                  d      rn|j                  d      }||dz   d j                  d      ||d | j                  d      <   |d | dv r:|j                  d	      d
k  r&|j                  ||dz   d j                  d             	 t        |      }|sy |\  }}	\  }
}}}d
|	cxk  rt        | j                        k  rn n|
|||f| j                  |	<   N)Ns   STARTFONT 2.1znot a valid BDF files   ENDPROPERTIESr   r   r   r
   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr   )super__init__r   r   SyntaxErrorr!   r    appendr5   lenglyph)selffpr(   msgr*   commentsr+   cr)   chxydstsrcr4   	__class__s                 r   r:   zBdfFontFile.__init___   s:   KKM||,-(Cc""A%56tA+,QUR=+?+?+HE!BQ%,,w'(!u226634q8OOAa!ebM$8$8$AB  A)*&BNRcBB(TZZ(!#S#r!1

2     )r@   r   returnNone)__name__
__module____qualname____doc__r:   __classcell__)rH   s   @r   r7   r7   \   s    22 2rI   r7   N)r'   r   rJ   zqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | None)
rO   
__future__r   typingr    r   r   r5   r7    rI   r   <module>rU      s?   ( #  ;0;0;0|2(## 2rI   