)Ej &dgZdZdZddZdZdS) maxCtxFontc d}dD]L}||vr||j}|js|jjD]#}|jD]}t |||j|}$M|S)z4Calculate the usMaxContext value for an entire font.)GSUBGPOS)table LookupListLookupSubTablemaxCtxSubtable LookupType)fontmaxCtxtagrlookupsts QC:\PYTHON\MyICR_Suite\python\Lib\site-packages\fontTools/otlLib/maxContextCalc.pyrrsFLL d?? S   &- L LFo L L'V5FKK L L Mc|dkr|dks |dkr|dvrt|d}n|dkr|dkrt|d}n|dkr=|dkr7|jD]}|D]}t||j}n|dkr|dks |dkr |dkrt |||dkrd nd }n|dkr|d ks |dkr!|d krt |||dkrd nd d }nR|dkr|dks |dkr#|dkrt |||j|j}n|dkr|d krt||d}|S)z[Calculate usMaxContext based on a single lookup table (and an existing max value). rr)rrPosSubChain Reverse) max ligaturesvalues CompCountmaxCtxContextualSubtabler ExtensionLookupType ExtSubTablemaxCtxContextualRule)rr lookupTyperr#ligatures rr r s v *// v * 11VQ :??VQ :??,,.. 9 9I% 9 9VX%788 9 9 --J!OO:QR??)&"sf}}eeRWXX --J!OO:QR??) BE7   --J!OO:QR??R-CR^TT :??%fb)<< Mrc|jdkrHt|||dD]1}|t|||dD]}|t|||}2no|jdkrHt|||dD]1}|t|||dD]}|t|||}2n|jdkrt|||}|S) z>Calculate usMaxContext based on a contextual feature subtable.rRuleSetNRulerClassSet ClassRuler)Formatgetattrr))rrruleTypechainrulesetrules rr&r&>s5 yA~~rEE888#DEE C CGuuhhh)GHH C C<-fdEBB C C arUUHHH#EFF C CGEE888)LMM C C<-fdEBB C C a%fb%88 Mrc|st||jS|dkrt|d|jzSt||j|jzS)z:Calculate usMaxContext based on a contextual feature rule.r!r)r" GlyphCountLookAheadGlyphCountInputGlyphCount)rrr5s rr)r)Ys\ 762=))) )  61r55666 vr)B,BB C CCrN)r,)__all__rr r&r)rrr>s] .    '''T6DDDDDr