a
    —Æàg�)  ã                   @   sÞ  d dl mZmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlT d dlZe d¡Zeeeeeeed	œe d
¡_deeeeedd„ eeedd„ dœZeeedd„ eeeƒeeeeeeeeedd„ eedœe d¡_eeeeeeeeeeeeeedœe d¡_eeeeeeeeeeeeeedœe d¡_ddd„ eeeeedœZdd„ Zeeeeeeeeeeeeeeeeeeeƒeeƒeeƒeeƒeeƒeeƒeeƒeeƒeeƒdœe d¡_ee d¡ƒdd„ ƒZ eeeeed d„ ed!d„ ee!ƒd"d„ d#œ
e d$¡_ee!d%œ e d&¡_e d'¡_eed(œe d)¡_eed*œe d+¡_ee!e"eed,œe d-¡_ee d-¡ƒd.d„ ƒZ d/d„ e d0¡_d1d„ e d2¡_d3d„ e d4¡_d5d„ e d6¡_ee d7¡ƒd8d„ ƒZ ee d9¡ƒd:d„ ƒZ dS );é    )ÚttLibÚcffLib)ÚT2WidthExtractor)ÚDefaultTable)Ú
add_methodÚmergeObjects)ÚcomputeMegaCmap)Ú*NzfontTools.merge)r	   ÚtableTagÚtableVersionÚ	numGlyphsZ
maxStorageZmaxFunctionDefsZmaxInstructionDefsZmaxpé   c                 C   s   dS ©Nr   © ©Úbitr   r   úO/var/www/sistema_ama/venv/lib/python3.9/site-packages/fontTools/merge/tables.pyÚ<lambda>$   ó    r   c                 C   s   dS r   r   r   r   r   r   r   (   r   )Úsizer	   é   é   é   é   é   é   é   é   é   c                 C   s   dS r   r   ©Úlstr   r   r   r   /   r   c                 C   s   dS )Nr   r   r   r   r   r   r   ;   r   )r
   r   ZfontRevisionZcheckSumAdjustmentZmagicNumberÚflagsZ
unitsPerEmÚcreatedÚmodifiedZxMinZyMinZxMaxZyMaxZmacStyleZlowestRecPPEMZfontDirectionHintZindexToLocFormatZglyphDataFormatÚhead)r	   r
   r   ÚascentÚdescentÚlineGapZadvanceWidthMaxZminLeftSideBearingZminRightSideBearingZ
xMaxExtentÚcaretSlopeRiseÚcaretSlopeRunÚcaretOffsetZnumberOfHMetricsZhhea)r	   r
   r   r%   r&   r'   ZadvanceHeightMaxZminTopSideBearingZminBottomSideBearingZ
yMaxExtentr(   r)   r*   ZnumberOfVMetricsZvheac                 C   s   dS r   r   r   r   r   r   r   d   r   )r   r	   r   r   r   é   é	   c                 C   s    t | ƒ} tdd„ | D ƒƒrdS tt| ƒƒD ]T}| | d@ rL| |  dM  < q*| | d@ rj| |  dO  < q*| | dkr*d| |< q*ttƒ| ƒ}|d@ rœ|d	M }|S )
Nc                 s   s   | ]}|d kV  qdS )r   Nr   )Ú.0Úitemr   r   r   Ú	<genexpr>o   r   z!mergeOs2FsType.<locals>.<genexpr>r   é   éýÿÿÿr+   é   r   ióÿÿÿ)ÚlistÚallÚrangeÚlenÚ	mergeBitsÚos2FsTypeMergeBitMap)r    ÚiÚfsTyper   r   r   ÚmergeOs2FsTypem   s    
r;   )r	   r
   ÚversionZxAvgCharWidthr:   ZpanoseZulUnicodeRange1ZulUnicodeRange2ZulUnicodeRange3ZulUnicodeRange4ZfsFirstCharIndexZfsLastCharIndexZsTypoAscenderZsTypoDescenderZsTypoLineGapZusWinAscentZusWinDescentZulCodePageRange1ZulCodePageRange2ZsxHeightZ
sCapHeightZusDefaultCharZusBreakCharZusMaxContextZusLowerOpticalPointSizeZusUpperOpticalPointSizezOS/2c                 C   sL   t  | ||¡ | jdk r&|  jdM  _| jdkrH| jd@ rH|  jdM  _| S )Nr   iÿüÿÿr   r+   éûÿÿÿ)r   Úmerger<   r:   )ÚselfÚmÚtablesr   r   r   r>   ¦   s    


r>   c                 C   s   dS r   r   r   r   r   r   r   »   r   c                 C   s   dS r   r   r   r   r   r   r   ½   r   c                 C   s   g S ©Nr   r   r   r   r   r   ¿   r   )
r	   r
   Z
formatTypeZisFixedPitchZminMemType42ZmaxMemType42ZminMemType1ZmaxMemType1ÚmappingZ
extraNamesÚpost)r
   ZmetricsZvmtxZhmtx)r
   ÚnamesÚname)r	   r
   Zloca)r
   ÚglyphsÚ
glyphOrderZ_reverseGlyphOrderZaxisTagsZglyfc                 C   sN   t |ƒD ]6\}}|j ¡ D ]"}|r*| ¡  | ¡ r| |¡ qqt | ||¡S rB   )Ú	enumeraterG   ÚvaluesZremoveHintingZisCompositeÚexpandr   r>   )r?   r@   rA   r9   ÚtableÚgr   r   r   r>   Ú   s    c                 C   s   t |ƒS rB   ©Úfirst©r?   r    r   r   r   r   é   r   Úprepc                 C   s   t |ƒS rB   rN   rP   r   r   r   r   ê   r   Zfpgmc                 C   s   t |ƒS rB   rN   rP   r   r   r   r   ë   r   zcvt c                 C   s   t |ƒS rB   rN   rP   r   r   r   r   ì   s   ÿZgaspzCFF c                 C   sF  t dd„ |D ƒƒrtdƒ‚|D ]}|j ¡  q|d }|jd }|j}|j|j }}g }	g }
t| ¡ ƒ}|j	j	D ]"}||vrˆ|	 
|¡ qp|
 
|¡ qpt|jƒ}|j}t dt|ƒ¡ t|dd … dd�D �]Z\}}|jd }|jj|jj }}||k� pþ||k}||_t| ¡ ƒ}|j	j	D ]}||v �r|
 
|¡ �q|j}|jj}t d|t|ƒ¡ | |j¡ |j�r t|jt|ƒd�D ]"\}}||j|< |jj 
d ¡ �q||jD ]|}|�r|| }tƒ }tg g ||ƒ}| |¡ |j}||u�rô|j d¡ n|}||k�r|j d|| ¡ || ||< �q¦qÈ||_t|ƒ|_|
|	 |j	_	|S )	Nc                 s   s   | ]}t |jd  dƒV  qdS )r   ZFDSelectN)ÚhasattrÚcff)r-   rL   r   r   r   r/   ó   r   zmerge.<locals>.<genexpr>z1Merging CID-keyed CFF tables is not supported yetr   zFONT 0 CharStrings: %d.r   )ÚstartzFont %d CharStrings: %d.) ÚanyÚNotImplementedErrorrS   ZdesubroutinizeZPrivateÚdefaultWidthXÚnominalWidthXÚsetZgetGlyphOrderÚstringsÚappendr3   ÚcharsetZCharStringsÚlogÚdebugr6   rI   ZGlobalSubrsÚextendZcharStringsAreIndexedZcharStringsZcharStringsIndexÚitemsÚobjectr   ÚexecuteÚwidthÚprogramÚpopÚinsertr   )r?   r@   rA   rL   ZnewcffZnewfontÚprivateZnewDefaultWidthXZnewNominalWidthXZstoredNamesStringsZglyphOrderStringsrH   rF   ZchrsetZnewcsr9   ÚfontrW   rX   ZwidthsDifferZfontGlyphOrderÚcsZgsÚcZdefaultWidthXTokenZ	extractorrc   r   r   r   r>   ñ   sn    


þÿ






Úcmapc                 C   sÈ   t |dƒst||ƒ |j}dd„ | ¡ D ƒ}g | _t d¡}t|ƒt|ƒkr~|jd dƒ}d|_	d|_
d|_||_| j |¡ |jd dƒ}d|_	d	|_
d|_||_| j d|¡ d| _t| jƒ| _| S )
Nrk   c                 S   s   i | ]\}}|d kr||“qS )iÿÿ  r   )r-   ÚuniÚgidr   r   r   Ú
<dictcomp>@  r   zmerge.<locals>.<dictcomp>r0   r   é
   r   r2   r   )rR   r   rk   r`   rA   r   ZgetTableModuler6   Zcmap_classesZ
platformIDZ	platEncIDÚlanguager[   rf   r   ZnumSubTables)r?   r@   rA   rk   ZcmapBmpOnlyÚmoduleZ	cmapTabler   r   r   r>   9  s,    


)#Z	fontToolsr   r   ZfontTools.misc.psCharStringsr   Z#fontTools.ttLib.tables.DefaultTabler   ZfontTools.merge.baser   r   ZfontTools.merge.cmapr   ZfontTools.merge.utilÚloggingÚ	getLoggerr]   ÚmaxÚequalÚsumrO   ZgetTableClassZmergeMapZ
bitwise_orZbitwise_andZheadFlagsMergeBitMapr7   Úcurrent_timeÚminZrecalculater8   r;   ZonlyExistingr>   ZsumDictsZsumListsr   r   r   r   Ú<module>   s,  
ùõîòòùã!
öþþþû	

G