
    the                         d dl Z ddlmZmZ ddlmZ ddlmZ ddlmZ	 ddlm
Z ddlmZ d	ZdZd
ZdZdZdZdZdZdZdZd d d d gZd Z G d dej                  ZdS )    N   )FontFileImage)i8)i16be)i16le)i32be)i32leifcp                @         c                     | dz   dz	  S )N       bitss    c/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.11/site-packages/PIL/PcfFontFile.py<lambda>r   ,   s    4!8/     c                     | dz   dz	  dz  S )N   r   r   r   s    r   r   r   -       4"9"b( r   c                     | dz   dz	  dz  S )N   r   r   r   s    r   r   r   .   r   r   c                     | dz   dz	  dz  S )N?   r   ir   r   s    r   r   r   /   r   r   c                 >    | ||                      d|                   S )N    )index)sos     r   szr*   3   s     Q"""##r   c                   F     e Zd ZdZdZd
 fd	Zd Zd Zd Zd Z	d	 Z
 xZS )PcfFontFilez(Font file plugin for the X11 PCF format.name	iso8859-1c           	         || _         t          |                    d                    }|t          k    rd}t	          |          t                                                       t          |                    d                    }i | _        t          |          D ]}t          |                    d                    }t          |                    d                    t          |                    d                    t          |                    d                    f| j        |<   || _	        | 
                                | _        |                                 }|                     |          }	|                                 }
t          |
          D ]<\  }}|5||         \  }}}}}}}}|df|||z
  ||z   |fdd||f|	|         f| j        |<   =d S )Nr   znot a PCF filer   )charset_encodingl32read	PCF_MAGICSyntaxErrorsuper__init__tocrangefp_load_propertiesinfo_load_metrics_load_bitmaps_load_encoding	enumerateglyph)selfr9   r0   magicmsgcountitypemetricsbitmapsencodingchixxsizeysizeleftrightwidthascentdescent
attributes	__class__s                        r   r6   zPcfFontFile.__init__<   s    0BGGAJJI"Cc"""BGGAJJu 	O 	OArwwqzz??D __c"''!**oos2771::NDHTNN))++	$$&&$$W--&&((
  )) 	 	FB~ BK	 AJ7U?EDL'B5%(BK	"
2	 	r   c                     | j         |         \  }}}| j        }|                    |           t          |                    d                    }|dz  rt
          t          }}nt          t          }}||||fS )Nr   )r7   r9   seekr1   r2   b16b32l16)rA   tagformatsizeoffsetr9   i16i32s           r   
_getformatzPcfFontFile._getformatj   sn    #x}fW
RWWQZZA: 	 CCCCC63##r   c           
         i }|                      t                    \  }}}} ||                    d                    }g }t          |          D ]r}|                     ||                    d                    t          |                    d                     ||                    d                    f           s|dz  r&|                    d|dz  z
  t          j                   |                     ||                    d                              }	|D ]-\  }
}}t          |	|
          }
|rt          |	|          }|||
<   .|S )Nr   r   r   )
r`   PCF_PROPERTIESr2   r8   appendr   rV   ioSEEK_CURr*   )rA   
propertiesr9   r[   r^   r_   npropsprE   datakr(   vs                r   r:   zPcfFontFile._load_propertiesy   s>    
#~>>FCRWWQZZ v 	I 	IAHHcc"''!**oor"''!**~~ss2771::GHHHHA: 	3GGA!$bk222wwss2771::'' 	 	GAq!4A  tQKKJqMMr   c                 r   g }|                      t                    \  }}}}|j        }|dz  dk    rt           ||                    d                              D ]}t          |                    d                    dz
  }t          |                    d                    dz
  }	t          |                    d                    dz
  }
t          |                    d                    dz
  }t          |                    d                    dz
  }|	|z
  }||z   } |||||	|
||df           nt           ||                    d                              D ]} ||                    d                    } ||                    d                    }	 ||                    d                    }
 ||                    d                    } ||                    d                    } ||                    d                    }|	|z
  }||z   } |||||	|
|||f           |S )Ni   r   r   r   r   r   r   )r`   PCF_METRICSrc   r8   r2   r   )rA   rG   r9   r[   r^   r_   rc   rE   rN   rO   rP   rQ   rR   rL   rM   rS   s                   r   r<   zPcfFontFile._load_metrics   s    #{;;FCVO%%33rwwqzz??++ O O"''!**~~+2771::,2771::,BGGAJJ#-RWWQZZ..3.(udE5&'1MNNNNO 33rwwqzz??++ 	X 	Xs2771::BGGAJJBGGAJJRWWQZZ#bggajj// S__
(udE5&':VWWWWr   c                 f   g }|                      t                    \  }}}} ||                    d                    }|t          |          k    rd}t	          |          g }	t          |          D ]3}
|	                     ||                    d                               4g }t          d          D ]3}
|                     ||                    d                               4|dz  }|dz  }||         }|	                    |           |                    |          }t          |         }d}|rd}t          |          D ]d}
||
         d d         \  }}|	|
|
dz            \  }}|                    t          j	        d||f|||         d| ||                               e|S )	Nr   zWrong number of bitmapsr   r   z1;R1r   raw)
r`   PCF_BITMAPSr2   lenOSErrorr8   rc   BYTES_PER_ROWr   	frombytes)rA   rG   rH   r9   r[   r^   r_   nbitmapsrC   offsetsrE   bitmap_sizesbitorderpadindex
bitmapsizeri   padmoderL   rM   bes                         r   r=   zPcfFontFile._load_bitmaps   s    #{;;FC3rwwqzz??s7||##+C#,,x 	, 	,ANN33rwwqzz??++++q 	1 	1ABGGAJJ0000 A:A:!(+
z"""wwz""H% 	Dx 	 	A"1:bqb>LE51q1u9%DAqNNeU^T!A#YtSSQVZZXX    r   c                    |                      t                    \  }}                     d                                         d                    }}                     d                                         d                    }}                     d                     ||z
  dz   ||z
  dz   z  }d gt          d|          z  }fdt	          |          D             }	t	          |t          |                    D ]Y}
	 |	t          t          |
g                              | j	                                     }|dk    r|||
<   J# t          $ r Y Vw xY w|S )Nr   r   r   c                 L    g | ] }                      d                     !S )r   )r2   ).0_r9   r^   s     r   
<listcomp>z.PcfFontFile._load_encoding.<locals>.<listcomp>   s+    FFFCC

OOFFFr   i  )r`   PCF_BDF_ENCODINGSr2   minr8   rr   ord	bytearraydecoder0   UnicodeDecodeError)rA   r[   r_   	first_collast_col	first_rowlast_row	nencodingrI   encoding_offsetsrE   encoding_offsetr9   r^   s               @@r   r>   zPcfFontFile._load_encoding   s{   #/@AAFC!c"''!**ooss2771::8	!c"''!**ooss2771::8	BGGAJJ	)A-(Y2F2JK	 6CY///FFFFFU95E5EFFFy#h--00 		 		A"2	1#--d.CDDEE# #f,,"1HQK%    s   AE  
E-,E-)r.   )__name__
__module____qualname____doc__r-   r6   r`   r:   r<   r=   r>   __classcell__)rT   s   @r   r,   r,   7   s        22D, , , , , ,\$ $ $  6# # #J+ + +Z      r   r,   )rd    r   r   _binaryr   r   rW   r   rY   r	   rX   r
   r1   r3   rb   PCF_ACCELERATORSrm   rq   PCF_INK_METRICSr   PCF_SWIDTHSPCF_GLYPH_NAMESPCF_BDF_ACCELERATORSrt   r*   r,   r   r   r   <module>r      s*  & 
			               ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
 	    #"((((((	$ $ $I I I I I(# I I I I Ir   