o
    ig                     @   s,   d gZ dd  Zdd Zd
ddZdd Zd	S )
maxCtxFontc                 C   sX   d}dD ]%}|| vrq| | j }|jsq|jjD ]}|jD ]
}t|||j|}qqq|S )z4Calculate the usMaxContext value for an entire font.    )GSUBGPOS)tableZ
LookupListZLookupZSubTablemaxCtxSubtableZ
LookupType)ZfontmaxCtxtagr   lookupst r   n/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/fontTools/otlLib/maxContextCalc.pyr      s   

c                 C   s\  |dkr|dks|dkr|dv rt | d} | S |dkr&|dkr&t | d} | S |dkrC|dkrC|j D ]}|D ]}t | |j} q7q3| S |dkrK|dksS|dkrd|dkrdt| ||dkr_d	} | S d
} | S |dkrl|dkst|dkr|dkrt| ||dkr}d	nd
d} | S |dkr|dks|dkr|dkrt| ||j|j} | S |dkr|dkrt| |d} | S )z[Calculate usMaxContext based on a single lookup table (and an existing
    max value).
    r      r   )r         r            PosSub      ZChain	   Reverse)	max	ligaturesvaluesZ	CompCountmaxCtxContextualSubtabler   ZExtensionLookupTypeZExtSubTablemaxCtxContextualRule)r   r   Z
lookupTyper
   r   Zligaturer   r   r   r      s:   

   r    c                 C   s   |j dkr/t|d||f D ]}|du rqt|d||f D ]}|du r%qt| ||} qq| S |j dkr^t|d||f D ]}|du rDq=t|d||f D ]}|du rTqMt| ||} qMq=| S |j dkrit| ||} | S )	z>Calculate usMaxContext based on a contextual feature subtable.r   z%s%sRuleSetNz%s%sRuler   z%s%sClassSetz%s%sClassRuler   )ZFormatgetattrr   )r   r
   ZruleTypechainZrulesetruler   r   r   r   >   s.   


r   c                 C   s:   |st | |jS |dkrt | d|j S t | |j|j S )z:Calculate usMaxContext based on a contextual feature rule.r   r   )r   Z
GlyphCountZLookAheadGlyphCountZInputGlyphCount)r   r
   r    r   r   r   r   Y   s
   r   N)r   )__all__r   r   r   r   r   r   r   r   <module>   s
    
*