§
    èƒñj  ã                   ó2   — d dl mZ dgZd„ Zd„ Zd	d„Zd„ ZdS )
é    )Ú_getLookupListÚ
maxCtxFontc           	      ó²   — d}dD ]Q}|| vrŒ| |         j         }t          |¦  «        }|sŒ&|j        D ]#}|j        D ]}t	          |||j        |¦  «        }ŒŒ$ŒR|S )z4Calculate the usMaxContext value for an entire font.r   )ÚGSUBÚGPOS)Útabler   ÚLookupÚSubTableÚmaxCtxSubtableÚ
LookupType)ÚfontÚmaxCtxÚtagr   Ú
lookupListÚlookupÚsts          ú^/data/share/cad/hardware/.venv/lib/python3.11/site-packages/fontTools/otlLib/maxContextCalc.pyr   r      s›   € ð €FØð 	Lð 	LˆØ�dˆ?ˆ?ØØ�S”	”ˆÝ# EÑ*Ô*ˆ
Øð 	ØØ Ô'ð 	Lð 	LˆFØ”oð Lð L�Ý'¨°°VÔ5FÈÑKÔK��ðLð	Lð €Mó    c                 ó„  — |dk    r|dk    s
|dk    r|dv rt          | d¦  «        } �n|dk    r|dk    rt          | d¦  «        } nú|dk    r=|dk    r7|j                             ¦   «         D ]}|D ]}t          | |j        ¦  «        } ŒŒn·|dk    r|dk    s|dk    r |dk    rt	          | ||dk    rd	nd
¦  «        } n…|dk    r|dk    s|dk    r!|dk    rt	          | ||dk    rd	nd
d¦  «        } nR|dk    r|dk    s|dk    r#|dk    rt          | ||j        |j        ¦  «        } n|dk    r|dk    rt          | |d¦  «        } | S )z[Calculate usMaxContext based on a single lookup table (and an existing
    max value).
    r   é   r   )r   é   é   r   é   é   é   ÚPosÚSubé   é   ÚChainé	   ÚReverse)	ÚmaxÚ	ligaturesÚvaluesÚ	CompCountÚmaxCtxContextualSubtabler   ÚExtensionLookupTypeÚExtSubTableÚmaxCtxContextualRule)r   r   Ú
lookupTyper   r$   Úligatures         r   r   r      s«  € ð 	ˆvŠˆ˜*¨š/˜/ØˆvŠˆ˜*¨	Ð1Ð1å�V˜Q‘”ˆ‰ð 
�Šˆ˜:¨š?˜?Ý�V˜Q‘”ˆˆð 
�Šˆ˜:¨š?˜?Øœ×,Ò,Ñ.Ô.ð 	9ð 	9ˆIØ%ð 9ð 9�Ý˜V XÔ%7Ñ8Ô8��ð9ð	9ð
 �Š-ˆ-˜J¨!šO˜O°¸²°À:ÐQRÂ?À?Ý)¨&°"¸sÀfº}¸}°e°eÐRWÑXÔXˆˆð �Š-ˆ-˜J¨!šO˜O°¸²°À:ÐQRÂ?À?Ý)Ø�B ¨¢ ˜˜°E¸7ñ
ô 
ˆˆð
 �Š-ˆ-˜J¨!šO˜O°¸²°À:ÐQRÂ?À?Ý ¨¨RÔ-CÀRÄ^ÑTÔTˆˆð 
�Šˆ˜:¨š?˜?Ý% f¨b°)Ñ<Ô<ˆà€Mr   Ú c                 óê  — |j         dv r[|j         dk    r|rdndn|›|›�}t          ||dz   ¦  «        D ]/}|€Œt          ||dz   ¦  «        D ]}|€Œt          | ||¦  «        } ŒŒ0nŽ|j         dv rk|j         d	k    r|rd
ndn|›|›d�}||j         d	k    rdndz   }t          ||¦  «        D ]/}|€Œt          ||dz   ¦  «        D ]}|€Œt          | ||¦  «        } ŒŒ0n|j         dv rt          | ||¦  «        } | S )z>Calculate usMaxContext based on a contextual feature subtable.)r   r   r   Ú
ChainedSeqÚSeqÚRuleSetNÚRule)r   r   r   ÚChainedClassSeqÚClassSeqÚClassÚSet)r   r   )ÚFormatÚgetattrr*   )r   r   ÚruleTypeÚchainÚprefixÚrulesetÚruleÚruleSets           r   r'   r'   A   s˜  € ð 
„y�FÐÐð Œy˜AŠ~ˆ~ð #Ð-ˆ\ˆ\¨¨à ˜5 ( (Ð+ð 	õ
 ˜r 6¨IÑ#5Ñ6Ô6ð 	Cð 	CˆGØˆØÝ ¨°&©Ñ9Ô9ð Cð C�Ø�<ØÝ-¨f°d¸EÑBÔB��ðCð	Cð 
Œ�fÐ	Ð	ð Œy˜AŠ~ˆ~ð #(Ð7ÐÐ¨Z¨Zà %  x x xÐ0ð 	ð
 ¨¬°aª¨˜I˜I¸UÑCˆÝ˜r 7Ñ+Ô+ð 	Cð 	CˆGØˆØÝ ¨°&©Ñ9Ô9ð Cð C�Ø�<ØÝ-¨f°d¸EÑBÔB��ðCð	Cð 
Œ�fÐ	Ð	Ý% f¨b°%Ñ8Ô8ˆà€Mr   c                 ó¦   — |st          | |j        ¦  «        S |dk    rt          | d|j        z   ¦  «        S t          | |j        |j        z   ¦  «        S )z:Calculate usMaxContext based on a contextual feature rule.r"   r   )r#   Ú
GlyphCountÚLookAheadGlyphCountÚInputGlyphCount)r   r   r:   s      r   r*   r*   g   s\   € ð ð 7Ý�6˜2œ=Ñ)Ô)Ð)Ø	�)Ò	Ð	Ý�6˜1˜rÔ5Ñ5Ñ6Ô6Ð6Ýˆv�rÔ)¨BÔ,BÑBÑCÔCÐCr   N)r-   )ÚfontTools.ttLib.tables.otTablesr   Ú__all__r   r   r'   r*   © r   r   ú<module>rF      sp   ðØ :Ð :Ð :Ð :Ð :Ð :àˆ.€ðð ð ð"'ð 'ð 'ðT#ð #ð #ð #ðLDð Dð Dð Dð Dr   