§
    |Øjl  ã                   ód   — d dl mZ d dlmZ d dlZ ej        d¦  «        Zd„ Zd„ Z	d„ Z
d„ Zd	„ ZdS )
é    )ÚotTables)ÚdeepcopyNzfontTools.varLib.instancerc                 ó.  — g }| j         �| j         j        ng }|D ]7}|j        dk    r dS |                     |j        |j        |j        f¦  «         Œ8| j        �| j        j        nd}t          |g|z   ¦  «        }||v rdS | 
                    |¦  «         dS )Né   Té   F)ÚConditionSetÚConditionTableÚFormatÚappendÚ	AxisIndexÚFilterRangeMinValueÚFilterRangeMaxValueÚFeatureTableSubstitutionÚVersionÚ	frozensetÚadd)ÚrecÚseenÚconditionSetÚconditionSetsÚcondÚsubstitutionVersionÚ	recordKeys          ú›/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/fontTools/varLib/instancer/featureVars.pyÚ_featureVariationRecordIsUniquer      sÖ   € Ø€Là+.Ô+;Ð+GˆÔÔ'Ð'ÈRð ð ð 
ð 
ˆØŒ;˜!ÒÐà�4�4Ø×ÒØŒ^˜TÔ5°tÔ7OÐPñ	
ô 	
ð 	
ð 	
ð Ô'Ð3ð 	Ô$Ô,Ð,àð õ
 Ð.Ð/°,Ñ>Ñ?Ô?€IØ�DÐÐØˆuà�Š�ÑÔÐØˆtó    c                 ó–   ‡— | j         }| j        }||k    s|‰j        k    s|‰j        k     rd S t	          ˆfd„||fD ¦   «         ¦  «        S )Nc              3   óF   •K  — | ]}‰                      |d ¬¦  «        V — ŒdS )F)ÚextrapolateN)ÚrenormalizeValue)Ú.0ÚvÚ	axisLimits     €r   ú	<genexpr>z7_limitFeatureVariationConditionRange.<locals>.<genexpr>2   sG   øè è € ð ð Ø=>ˆ	×"Ò" 1°%Ð"Ñ8Ô8ðð ð ð ð ð r   )r   r   ÚmaximumÚminimumÚtuple)Ú	conditionr#   ÚminValueÚmaxValues    `  r   Ú$_limitFeatureVariationConditionRanger+   &   s€   ø€ ØÔ,€HØÔ,€Hð 	�8ÒÐØ�iÔ'Ò'Ð'Ø�iÔ'Ò'Ð'ð 	ˆåð ð ð ð ØCKÈXÐBVðñ ô ñ ô ð r   c                 ó”  — d}d}g }ddl m}  |ddd¦  «        }	| j        €0t          j        ¦   «         | _        g | j        _        d| j        _        t          | j        j        ¦  «        D �]#\  }
}|j        dk    rÇ|j        }||         j	        }|j
        }|j        }|                     ||	¦  «        }||j        cxk    r|k    sn d}|j        |k    s|j        |k     rd } n¬||v rZ||         |_        t!          ||¦  «        }|r7|\  }}||_
        ||_        d}|dk    s|dk    r|                     |¦  «         ŒÓd } nNŒØt$                               d                     |
||j        ¦  «        ¦  «         d}|                     |¦  «         �Œ%|d uo| }|�+|s|r'|| j        _        |sd | _        |pt+          |¦  «        }nd}|||fS )NTFr   )Ú NormalizedAxisTripleAndDistanceséÿÿÿÿr   zWCondition table {0} of FeatureVariationRecord {1} has unsupported format ({2}); ignored)ÚfontTools.varLib.instancerr-   r   Úotr	   ÚConditionCountÚ	enumerater
   r   ÚaxisTagr   r   ÚgetÚdefaultr&   r%   r+   r   ÚlogÚwarningÚformatÚbool)ÚrecordÚrecIdxÚ
axisLimitsÚfvarAxesÚaxisIndexMapÚappliesÚ
shouldKeepÚnewConditionsr-   Údefault_tripleÚir(   ÚaxisIdxr3   r)   r*   ÚtripleÚnewRanger&   r%   Ú	universals                        r   Ú"_instantiateFeatureVariationRecordrH   7   sV  € ð €GØ€JØ€MØKÐKÐKÐKÐKÐKà5Ð5°b¸!¸RÑ@Ô@€NØÔÐ"Ý œoÑ/Ô/ˆÔØ-/ˆÔÔ*Ø-.ˆÔÔ*Ý! &Ô"5Ô"DÑEÔEð *,ñ *,‰ˆˆ9ØÔ˜qÒ Ð ØÔ)ˆGØ˜wÔ'Ô/ˆGà Ô4ˆHØ Ô4ˆHØ—^’^ G¨^Ñ<Ô<ˆFà ¤Ð:Ð:Ò:Ð:°(Ò:Ð:Ð:Ð:Ø�ð Œ~ Ò(Ð(¨F¬N¸XÒ,EÐ,EØ $�Ø�à˜,Ð&Ð&à&2°7Ô&;�	Ô#õ @À	È6ÑRÔR�Øð à'/Ñ$�G˜WØ4;�IÔ1Ø4;�IÔ1Ø!%�JØ "’}�}¨°2ª¨Ø%×,Ò,¨YÑ7Ô7Ð7øð %)�MØ�Eð# 'õ( �KŠKð4ß4:²F¸1¸fÀiÔFVÑ4WÔ4Wñô ð ð ˆGØ× Ò  Ñ+Ô+Ð+Ñ+ð  TÐ)Ð?°-Ð.?€IØÐ  jÐ °IÐ Ø-:ˆÔÔ*Øð 	'Ø"&ˆFÔØÐ5¥4¨Ñ#5Ô#5ˆ
ˆ
àˆ
à�J 	Ð)Ð)r   c                 ó  ‡‡— t          |                     ¦   «         ¦  «        Šˆfd„|D ¦   «         Šˆfd„‰D ¦   «         }d}t          ¦   «         }g }d }t          | j        j        ¦  «        D ]û\  }}	t          |	||||¦  «        \  }
}}|r%t          |	|¦  «        r|                     |	¦  «         |
r²|s°|	j        �§|	j        j	        dk    sJ ‚t          |	j        ¦  «        }t          |j        |	j        j        ¦  «        D ]a\  }}t          | j        j        |j                 j        ¦  «        |_        t          |j        ¦  «        | j        j        |j                 _        Œbd}|r nŒü|rc|ra|s_t#          j        ¦   «         }t#          j        ¦   «         |_        g |j        _        d|j        _        ||_        |                     |¦  «         |r'|| j        _        t+          |¦  «        | j        _        d S | `d| _	        d S )Nc                 ó0   •— g | ]}|j         ‰v¯|j         ‘ŒS © )r3   )r!   ÚaxisÚ
pinnedAxess     €r   ú
<listcomp>z1_instantiateFeatureVariations.<locals>.<listcomp>   s'   ø€ ÐUÐUÐU $°d´lÈ*Ð6TÐ6T�”Ð6TÐ6TÐ6Tr   c                 ó<   •— i | ]}|‰                      |¦  «        “ŒS rK   )Úindex)r!   r3   Ú	axisOrders     €r   ú
<dictcomp>z1_instantiateFeatureVariations.<locals>.<dictcomp>€   s'   ø€ ÐOÐOÐO¸'�G˜YŸ_š_¨WÑ5Ô5ÐOÐOÐOr   Fr   Tr   )ÚsetÚpinnedLocationr2   ÚFeatureVariationsÚFeatureVariationRecordrH   r   r   r   r   r   ÚzipÚSubstitutionRecordÚFeatureListÚFeatureRecordÚFeatureIndexÚFeaturer0   r   r	   r1   ÚlenÚFeatureVariationCount)Útabler=   r<   r>   ÚfeatureVariationAppliedÚuniqueRecordsÚ
newRecordsÚdefaultsSubstsrC   r:   r?   r@   rG   r5   r   ÚdefaultRecordrQ   rM   s                   @@r   Ú_instantiateFeatureVariationsre   }   sT  øø€ Ý�Z×.Ò.Ñ0Ô0Ñ1Ô1€JØUÐUÐUÐU¨(ÐUÑUÔU€IØOÐOÐOÐOÀYÐOÑOÔO€Là#ÐÝ‘E”E€MØ€JØ€Nå˜uÔ6ÔMÑNÔNð ð ‰	ˆˆ6Ý)KØ�A�z 8¨\ñ*
ô *
Ñ&ˆ�˜Yð ð 	&Õ9¸&À-ÑPÔPð 	&Ø×Ò˜fÑ%Ô%Ð%àð 	+Ð2ð 	+ØÔ.Ð:ØÔ6Ô>À*ÒLÐLÐLÐLÝ!)¨&Ô*IÑ!JÔ!J�Ý$'Ø"Ô5ØÔ3ÔFñ%ô %ð 	ð 	‘L�G˜Sõ '/ØÔ)Ô7¸Ô8HÔIÔQñ'ô '�G”Oõ ! ¤Ñ-Ô-ð Ô%Ô3°CÔ4DÔEÔMÐMð
 '+Ð#ð ð 	ØˆEð	ð ð ) :ð )°ið )ÝÔ1Ñ3Ô3ˆÝ%'¤_Ñ%6Ô%6ˆÔ"Ø46ˆÔ"Ô1Ø45ˆÔ"Ô1Ø1?ˆÔ.à×Ò˜-Ñ(Ô(Ð(àð #Ø9CˆÔÔ6Ý8;¸J¹¼ˆÔÔ5Ð5Ð5àÐ#à"ˆŒˆˆr   c                 ó
  — dD ]}|| vst          | |         j        dd ¦  «        sŒ#t                               d|¦  «         t	          | |         j        | d         j        |¦  «         | |                              ¦   «          Œ€d S )N)ÚGPOSÚGSUBrU   z+Instantiating FeatureVariations of %s tableÚfvar)Úgetattrr_   r6   Úinfore   ÚaxesÚprune_lookups)Úvarfontr<   ÚtableTags      r   ÚinstantiateFeatureVariationsrp   ¸   s£   € Ø$ð 
*ð 
*ˆØ˜7Ð"Ð"­'Ø�HÔÔ#Ð%8¸$ñ+
ô +
Ð"ð Ý�ŠÐ>ÀÑIÔIÐIÝ%Ø�HÔÔ# W¨V¤_Ô%9¸:ñ	
ô 	
ð 	
ð 	�Ô×'Ò'Ñ)Ô)Ð)Ð)ð
*ð 
*r   )ÚfontTools.ttLib.tablesr   r0   Úcopyr   ÚloggingÚ	getLoggerr6   r   r+   rH   re   rp   rK   r   r   ú<module>ru      sŸ   ðØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð Ø €€€à€gÔÐ4Ñ5Ô5€ðð ð ð<ð ð ð"C*ð C*ð C*ðL8#ð 8#ð 8#ðv*ð *ð *ð *ð *r   