B ë˜Þ]nã@s–ddlZddlmZmZddlmZmZmZ m Z m Z dZdZdZdZdZd Zd Zd Zd Zd Zdd„dd„dd„dd„gZdd„ZGdd„dejƒZdS)éNé)ÚFontFileÚImage)Úi8Úi16beÚi16leÚi32beÚi32leifcpééééé é@é€écCs |dd?S)Néé©)Úbitsrrú1/tmp/pip-build-ktz6qwqq/Pillow/PIL/PcfFontFile.pyÚ(órcCs|dd?d@S)Néréþÿÿÿr)rrrrr)rcCs|dd?d@S)Néréüÿÿÿr)rrrrr*rcCs|dd?d@S)Né?riøÿÿÿr)rrrrr+rcCs||| d|¡…S)Nó)Úindex)ÚsÚorrrÚsz/sr"c@s@eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dS)Ú PcfFontFileÚnamec Cs*t| d¡ƒ}|tkrtdƒ‚tj |¡t| d¡ƒ}i|_xLt|ƒD]@}t| d¡ƒ}t| d¡ƒt| d¡ƒt| d¡ƒf|j|<qHW||_|  ¡|_ |  ¡}|  |¡}|  ¡}xntdƒD]b} || } | dk rÀ|| \} } } }}}}}|df| || | | |fdd| | f|| f}||j| <qÀWdS)Nr znot a PCF filerr)Úl32ÚreadÚ PCF_MAGICÚ SyntaxErrorrÚ__init__ÚtocÚrangeÚfpÚ_load_propertiesÚinfoÚ _load_metricsÚ _load_bitmapsÚ_load_encodingÚglyph)Úselfr,ÚmagicÚcountÚiÚtypeÚmetricsÚbitmapsÚencodingÚchÚixÚxÚyÚlÚrÚwÚaÚdÚfr2rrrr);s( 2  ,zPcfFontFile.__init__cCsX|j|\}}}|j}| |¡t| d¡ƒ}|d@rBtt}}n tt}}||||fS)Nr )r*r,Úseekr%r&Úb16Úb32Úl16)r3ÚtagÚformatÚsizeÚoffsetr,Úi16Úi32rrrÚ _getformat[s   zPcfFontFile._getformatc CsÒi}| t¡\}}}}|| d¡ƒ}g}x>t|ƒD]2}| || d¡ƒt| d¡ƒ|| d¡ƒf¡q2W|d@r†| d|d@tj¡| || d¡ƒ¡} x2|D]*\} } } t | | ƒ} | rÂt | | ƒ} | || <q W|S)Nr rr) rOÚPCF_PROPERTIESr&r+ÚappendrrEÚioÚSEEK_CURr") r3Z propertiesr,rJrMrNZnpropsÚpr6ÚdataÚkr Úvrrrr-ks2   zPcfFontFile._load_propertiesc Csdg}| t¡\}}}}|j}|d@dkrÈxœt|| d¡ƒƒD]†}t| d¡ƒd}t| d¡ƒd} t| d¡ƒd} t| d¡ƒd} t| d¡ƒd} | |} | | }|| ||| | | | dfƒqr?r@rArBrCrDÚbÚerrrr0¯s2   .zPcfFontFile._load_bitmapsc CsÒdgd}| t¡\}}}}|| d¡ƒ|| d¡ƒ}}|| d¡ƒ|| d¡ƒ}} || d¡ƒ||d| |d} xNt| ƒD]B} || d¡ƒ} | dkrˆy| || |<Wqˆtk rÈPYqˆXqˆW|S)Nrr riÿÿ)rOÚPCF_BDF_ENCODINGSr&r+Ú IndexError) r3r:r,rJrMrNZfirstColZlastColZfirstRowZlastRowZ nencodingr6ZencodingOffsetrrrr1Ús  zPcfFontFile._load_encodingN) Ú__name__Ú __module__Ú __qualname__r$r)rOr-r/r0r1rrrrr#7s (+r#)rRÚrrÚ_binaryrrrFrrHrrGr r%r'rPZPCF_ACCELERATORSrXr_ZPCF_INK_METRICSrhZ PCF_SWIDTHSZPCF_GLYPH_NAMESZPCF_BDF_ACCELERATORSrbr"r#rrrrÚs$