
    ^j                    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                L   	 | 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        \  }}}}	t        j                  ||f       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     Z/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/PIL/BdfFontFile.py	<genexpr>zbdf_char.<locals>.<genexpr>H   s     $JSV$J   BBXc              3  2   K   | ]  }t        |        y wr   r   r   s     r   r   zbdf_char.<locals>.<genexpr>M   s     81A8r   DWIDTHr   1hexENCODING)readline
startswithstripdecodefind	bytearraysplitr   _decompression_bomb_check	frombytes
ValueErrornewr   )fsidpropsibitmapwidthheightx_dispy_dispdwxdwybboxims                 r   bdf_charr6      s    JJL<<%  
12		g	&B E
JJLALL+FF4L'(Q}';';G'Daell7#$  [F
JJLALL,!CR&	  %KU5\5G5G5I$J!E666	##UFO4 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    appendr6   lenglyph)selffpr)   msgr+   commentsr,   cr*   chxydstsrcr5   	__class__s                 r   r;   zBdfFontFile.__init__a   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     )rA   r   returnNone)__name__
__module____qualname____doc__r;   __classcell__)rI   s   @r   r8   r8   ^   s    22 2rJ   r8   N)r(   r   rK   zqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | None)
rP   
__future__r   typingr    r   r   r6   r8    rJ   r   <module>rV      s?   ( #  <0<0<0~2(## 2rJ   