o
    üÞhm
  ã                   @  sž   d dl mZ d dlZd dlmZ ddlmZmZ e d¡Z	ddd„Z
G dd„ dejƒZddd„Ze ejee
¡ e eje¡ e ejd¡ e ejd¡ dS )é    )ÚannotationsN)ÚIOé   )ÚImageÚ	ImageFilesë   \s*#define[ \t]+.*_width[ \t]+(?P<width>[0-9]+)[\r\n]+#define[ 	]+.*_height[ 	]+(?P<height>[0-9]+)[
]+(?P<hotspot>#define[ 	]+[^_]*_x_hot[ 	]+(?P<xhot>[0-9]+)[
]+#define[ 	]+[^_]*_y_hot[ 	]+(?P<yhot>[0-9]+)[
]+)?[\000-\377]*_bits\[]ÚprefixÚbytesÚreturnÚboolc                 C  s   |   ¡  d¡S )Ns   #define)ÚlstripÚ
startswith)r   © r   úR/var/www/html/premium_crap/venv/lib/python3.10/site-packages/PIL/XbmImagePlugin.pyÚ_accept(   s   r   c                   @  s   e Zd ZdZdZddd„ZdS )	ÚXbmImageFileÚXBMz
X11 Bitmapr	   ÚNonec                 C  s¨   | j d usJ ‚t | j  d¡¡}|sd}t|ƒ‚t| d¡ƒ}t| d¡ƒ}| d¡r<t| d¡ƒt| d¡ƒf| jd< d| _||f| _	t
 d	d
| j | ¡ ¡g| _d S )Ni   znot a XBM fileÚwidthÚheightÚhotspotÚxhotÚyhotÚ1Úxbm©r   r   )ÚfpÚxbm_headÚmatchÚreadÚSyntaxErrorÚintÚgroupÚinfoÚ_modeÚ_sizer   Ú_TileÚsizeÚendÚtile)ÚselfÚmÚmsgÚxsizeÚysizer   r   r   Ú_open4   s   
"
 zXbmImageFile._openN)r	   r   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionr.   r   r   r   r   r   0   s    r   ÚimúImage.Imager   ú	IO[bytes]Úfilenameústr | bytesr   c              	   C  sÚ   | j dkrd| j › d�}t|ƒ‚| d| jd › d� d¡¡ | d| jd	 › d� d¡¡ | j d
¡}|rR| d|d › d� d¡¡ | d|d	 › d� d¡¡ | d¡ t | |t 	dd| j ¡g¡ | d¡ d S )Nr   zcannot write mode z as XBMz#define im_width r   Ú
Úasciiz#define im_height r   r   z#define im_x_hot z#define im_y_hot s   static char im_bits[] = {
r   r   s   };
)
ÚmodeÚOSErrorÚwriter&   ÚencodeÚencoderinfoÚgetr   Ú_saver%   )r4   r   r7   r+   r   r   r   r   rA   I   s   

rA   z.xbmz	image/xbm)r   r   r	   r
   )r4   r5   r   r6   r7   r8   r	   r   )Ú
__future__r   ÚreÚtypingr   Ú r   r   Úcompiler   r   r   rA   Úregister_openr2   Úregister_saveÚregister_extensionÚregister_mimer   r   r   r   Ú<module>   s   ÿ

