o
    tBhx!                     @   s^  d dl mZ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i dedededdd dedeededededededededededd d d!ed"ei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i d,eded-ed.ed/ed0ed1ed2ed3ed4ed5ed6ed7ed8ed9ed:ed;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dAd eedBd dC
edD_eedE edF_edG_eedHedI_eedJedK_eee dLedM_eedMdNd? ZdOd edP_dQd edR_dSd edT_dUd edV_eedWdXd? ZeedYdZd? ZdS )[    )ttLibcffLib)DefaultTable)
add_methodmergeObjects)computeMegaCmap)*NzfontTools.merge)r   tableTagtableVersion	numGlyphs
maxStoragemaxFunctionDefsmaxInstructionDefsmaxp   c                 C      dS Nr    bitr   r   m/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/fontTools/merge/tables.py<lambda>#       r   c                 C   r   r   r   r   r   r   r   r   '   r   )sizer                              r	   r
   fontRevisioncheckSumAdjustmentc                 C   r   r   r   lstr   r   r   r   .   r   magicNumberflags
unitsPerEmcreatedmodifiedxMinyMinxMaxyMaxmacStylelowestRecPPEMfontDirectionHintc                 C   r   )Nr   r   r%   r   r   r   r   :   r   indexToLocFormatglyphDataFormathead)r   r	   r
   ascentdescentlineGapadvanceWidthMaxminLeftSideBearingminRightSideBearing
xMaxExtentcaretSlopeRisecaretSlopeRuncaretOffsetnumberOfHMetricshhea)r   r	   r
   r6   r7   r8   advanceHeightMaxminTopSideBearingminBottomSideBearing
yMaxExtentr=   r>   r?   numberOfVMetricsvheac                 C   r   r   r   r   r   r   r   r   c   r   )r   r   r   r   r      	   c                 C   s   t | } tdd | D rdS tt| D ]*}| | d@ r&| |  dM  < q| | d@ r5| |  dO  < q| | dkr?d| |< qtt| }|d@ rN|d	M }|S )
Nc                 s   s    | ]}|d kV  qdS )r   Nr   ).0itemr   r   r   	<genexpr>m   s    z!mergeOs2FsType.<locals>.<genexpr>r      rH      r   i)listallrangelen	mergeBitsos2FsTypeMergeBitMap)r&   ifsTyper   r   r   mergeOs2FsTypek   s   rX   r   versionxAvgCharWidthrW   panoseulUnicodeRange1ulUnicodeRange2ulUnicodeRange3ulUnicodeRange4fsFirstCharIndexfsLastCharIndexsTypoAscendersTypoDescendersTypoLineGapusWinAscentusWinDescent)	ulCodePageRange1ulCodePageRange2sxHeight
sCapHeightusDefaultCharusBreakCharusMaxContextusLowerOpticalPointSizeusUpperOpticalPointSizezOS/2c                 C   sL   t | || | jdk r|  jdM  _| jdkr$| jd@ r$|  jdM  _| S )Nr   ir   rH   )r   mergerY   rW   )selfmtablesr   r   r   rq      s   


rq   c                 C   r   r   r   r%   r   r   r   r      r   c                 C   r   r   r   r%   r   r   r   r      r   c                 C   s   g S Nr   r%   r   r   r   r      r   )
r   r	   
formatTypeisFixedPitchminMemType42maxMemType42minMemType1maxMemType1mapping
extraNamespost)r	   metricsvmtxhmtx)r	   namesname)r   r	   loca)r	   glyphs
glyphOrderglyfc                 C   sN   t |D ]\}}|j D ]}|r|  | r|| qqt| ||S ru   )	enumerater   valuesremoveHintingisCompositeexpandr   rq   )rr   rs   rt   rV   tablegr   r   r   rq      s   
	c                 C      t |S ru   firstrr   r&   r   r   r   r          prepc                 C   r   ru   r   r   r   r   r   r      r   fpgmc                 C   r   ru   r   r   r   r   r   r      r   zcvt c                 C   r   ru   r   r   r   r   r   r      r   gaspzCFF c                 C   s  t dd |D rtd|D ]}|j  q|d }|jd }|j}g }g }t| }	|jjD ]}
|
|	vr=||
 q1||
 q1t	|j
}|j}tdt| t|dd  ddD ]a\}}|jd }||_t| }|jjD ]}
|
|v r~||
 qs|j}|jj}td|t| ||j
 |jrt|jt|dD ]\}}
||j|
< |jjd  q|jD ]}
||
 ||
< qq]||_
t||_|| |j_|S )	Nc                 s   s    | ]}t |d V  qdS )FDSelectN)hasattr)rJ   r   r   r   r   rL      s    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NotImplementedErrorcffdesubroutinizePrivatesetgetGlyphOrderstringsappendrP   charsetCharStringslogdebugrS   r   GlobalSubrsextendcharStringsAreIndexedcharStringscharStringsIndexitemsr   )rr   rs   rt   r   newcffnewfontprivatestoredNamesStringsglyphOrderStringsr   r   chrsetnewcsrV   fontfontGlyphOrdercsgsr   r   r   rq      sT   






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 )
Nr   c                 S   s   i | ]\}}|d kr||qS )i  r   )rJ   unigidr   r   r   
<dictcomp>"  s    zmerge.<locals>.<dictcomp>rM   r   
   r   rO   r   )r   r   r   r   rt   r   getTableModulerS   cmap_classes
platformID	platEncIDlanguager   insertr
   numSubTables)rr   rs   rt   r   cmapBmpOnlymodule	cmapTabler   r   r   rq     s,   


)!	fontToolsr   r   #fontTools.ttLib.tables.DefaultTabler   fontTools.merge.baser   r   fontTools.merge.cmapr   fontTools.merge.utillogging	getLoggerr   maxequalsumr   getTableClassmergeMap
bitwise_orbitwise_andheadFlagsMergeBitMaprT   current_timeminrecalculaterU   rX   onlyExistingrq   sumDictssumListsr   r   r   r   <module>   sp  
	

	
 


3