Ë
    ^ãjIJ  ã                   óÔ   — d dl mZ d dlmZ 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d„Zd„ Zd„ Z	 dd„Zd„ Zd„ Zdd„Z	 dddœd„Zd„ Zd„ Zd„ Zd„ Zy)é    )ÚotTables)ÚotRound)Ú_compact_layout_tables)ÚdeepcopyNzfontTools.varLib.instanceré   é   c                 ó|  — g }| j                   �| j                   j                  ng }|D ]H  }|€Œ|j                  dk7  r y|j                  |j                  |j
                  |j                  f«       ŒJ | j                  �| j                  j                  nd}t        |g|z   «      }||v ry|j                  |«       y)Nr   Té   F)ÚConditionSetÚConditionTableÚFormatÚappendÚ	AxisIndexÚFilterRangeMinValueÚFilterRangeMaxValueÚFeatureTableSubstitutionÚVersionÚ	frozensetÚadd)ÚrecÚseenÚconditionSetÚconditionSetsÚcondÚsubstitutionVersionÚ	recordKeys          úh/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/fontTools/varLib/instancer/featureVars.pyÚ_featureVariationRecordIsUniquer      sÎ   € Ø€Là+.×+;Ñ+;Ð+Gˆ×Ñ×'Ò'ÈRð ð ò 
ˆØˆ<ØØ�;‰;˜!ÒáØ×ÑØ�^‰^˜T×5Ñ5°t×7OÑ7OÐPõ	
ð
ð  ×'Ñ'Ð3ð 	×$Ñ$×,Ò,àð ô
 Ð.Ð/°,Ñ>Ó?€IØ�DÑØà�‰�ÔØó    c                 ó¨   ‡— | j                   }| j                  }||kD  s|‰j                  kD  s|‰j                  k  ry t	        ˆfd„||fD «       «      S )Nc              3   óD   •K  — | ]  }‰j                  |d ¬«      –— Œ y­w)F)ÚextrapolateN)ÚrenormalizeValue)Ú.0ÚvÚ	axisLimits     €r   ú	<genexpr>z7_limitFeatureVariationConditionRange.<locals>.<genexpr>:   s&   øè ø€ ò Ø=>ˆ	×"Ñ" 1°%Ð"×8ñùs   ƒ )r   r   ÚmaximumÚminimumÚtuple)Ú	conditionr&   ÚminValueÚmaxValues    `  r   Ú$_limitFeatureVariationConditionRanger.   .   sc   ø€ Ø×,Ñ,€HØ×,Ñ,€Hð 	�8ÒØ�i×'Ñ'Ò'Ø�i×'Ñ'Ò'ð 	äó ØCKÈXÐBVôó ð r   c                 ób  ‡‡‡‡— | €y‰sy| j                   dk(  rk| j                  t        ‰«      k\  ry‰| j                     j                  }|‰v r‰|   j                  nd}| j
                  |cxk  xr | j                  k  S c S | j                   dk(  r%| j                  }‰�|‰| j                     z  }|dkD  S | j                   dv r=ˆˆˆˆfd„| j                  D «       }| j                   dk(  rt        |«      S t        |«      S | j                   d	k(  rt        | j                  ‰‰‰dz
  ‰«       S y)
NTFr   r   r   ©é   é   c              3   óB   •K  — | ]  }t        |‰‰‰d z
  ‰«      –— Œ y­w)r   N)Ú_conditionAppliesAtDefault)r$   ÚchildÚ
axisLimitsÚdepthÚfvarAxesÚ	instancers     €€€€r   r'   z-_conditionAppliesAtDefault.<locals>.<genexpr>R   s/   øè ø€ ò 
ð ô 'Ø�z 8¨U°Q©Y¸	÷ñ
ùs   ƒr1   é   )r   r   ÚlenÚaxisTagÚdefaultr   r   ÚDefaultValueÚVarIdxr   ÚallÚanyr4   )	r+   r6   r8   r7   r9   r<   r=   ÚvalueÚvaluess	    ````    r   r4   r4   ?   sG  û€ ð ÐØÙØØ×Ñ˜1ÒØ×Ñ¤# h£-Ò/ØØ˜9×.Ñ.Ñ/×7Ñ7ˆØ18¸JÑ1F�*˜WÑ%×-Ò-ÈAˆØ×,Ñ,°ÖX¸9×;XÑ;XÑXÐXÑXÐXØ×Ñ˜1ÒØ×&Ñ&ˆØÐ Ø�Y˜y×/Ñ/Ñ0Ñ0ˆEØ�q‰yÐØ×Ñ˜6Ñ!ö
ð #×1Ñ1ô	
ˆð (×.Ñ.°!Ò3Œs�6‹{ÐD¼¸V»ÐDØ×Ñ˜1ÒÜ-Ø×$Ñ$ j°(¸EÀA¹IÀyó
ð 
ð 	
ð r   c                 ó`  — d}d}g }	| j                   €;t        j                   «       | _         g | j                   _        d| j                   _        t	        | j                   j                  «      D ]€  \  }
}|€Œ	|j
                  dv rR||t        |«         z  }t        |||||«      }|t        k(  rd }	d} n=|t        k(  r|	j                  |«       d}Œc|sŒfd}Œit        d|j
                  › d�«      ‚ |	d uxr |	 }|	�.|s|r*|	| j                   _        |	sd | _         |xs t        |«      }nd}|||fS )NTFr   ©r   r   r1   r2   r:   z#FeatureVariations condition format ú is not supported)r   Úotr   ÚConditionCountÚ	enumerater   ÚidÚ_instantiateLookupConditionÚ_LOOKUP_CONDITION_FALSEÚ_LOOKUP_CONDITION_KEEPr   ÚNotImplementedErrorÚbool)ÚrecordÚrecIdxr6   r8   ÚaxisIndexMapÚconditionResultsÚconditionDefaultsÚappliesÚ
shouldKeepÚnewConditionsÚir+   ÚresultÚ	universals                 r   Ú"_instantiateFeatureVariationRecordr[   `   sd  € ð €GØ€JØ€MØ×ÑÐ"Ü Ÿo™oÓ/ˆÔØ-/ˆ×ÑÔ*Ø-.ˆ×ÑÔ*Ü! &×"5Ñ"5×"DÑ"DÓEò ‰ˆˆ9ØÐØØ×Ñ˜Ñ.ØÐ(¬¨I«Ñ7Ñ7ˆGÜ0Ø˜: x°Ð?OóˆFð Ô0Ò0Ø $�Ø�ÙØÔ/Ò/Ø×$Ñ$ YÔ/Ø!‘
ÚØ!‘
ä%Ø5°i×6FÑ6FÐ5GÐGXÐYóð ð%ð.  TÐ)Ò?°-Ð.?€IØÐ ¡j±IØ-:ˆ×ÑÔ*ÙØ"&ˆFÔØÒ5¤4¨Ó#5‰
àˆ
à�J 	Ð)Ð)r   c                  ót   — t        j                  «       } d| _        d| _        t         j                  | _        | S )Nr   r   )rG   r   r   r>   ÚNO_VARIATION_INDEXr?   )r+   s    r   Ú_trueLookupConditionr^   “   s4   € Ü×!Ñ!Ó#€IØ€IÔØ€IÔÜ×,Ñ,€IÔØÐr   c                 óP   — t        | «      }||vrt        | |||||«      ||<   ||   S ©N)rJ   Ú_instantiateLookupConditionImpl)r+   r6   r8   rR   rS   r7   Úkeys          r   rK   rK   ›   sA   € ô ˆY‹-€CØ
Ð"Ñ"Ü ?Ø�z 8¨\Ð;KÈUó!
Ð˜Ñð ˜CÑ Ð r   c           
      óà  — | €t         S |st        j                  d«       t        S | j                  dk(  �r.| j
                  }|t        |«      k\  rt        j                  d|«       t        S ||   j                  }ddlm	} |j                  | |ddd«      «      }	| j                  }
| j                  }|
|kD  s|	j                  |kD  s|	j                  |
k  rt        S |	j                  |	j                  k(  r"|
|	j                   cxk  r
|k  rt         S  t        S t#        | |	«      }|�||vrt        S ||   | _        |\  | _        | _        |d   dk  r|d   dk\  rt         S t        S | j                  dk(  r>| j$                  t&        j(                  k7  rt        S | j*                  dkD  rt         S t        S | j                  dv r»g }| j,                  D ]p  }t/        ||||||dz
  «      }| j                  d	k(  r|t        k(  rt        c S | j                  d
k(  r|t         k(  rt         c S |t        k(  sŒ`|j1                  |«       Œr || _        t        |«      | _        |rt        S | j                  d	k(  rt         S t        S | j                  dk(  rAt/        | j,                  |||||dz
  «      }|t         k(  rt        S |t        k(  rt         S t        S t        j                  d| j                  «       t        S )Nz<LookupVariationRecord condition nesting is too deep; ignoredr   zBLookupVariationRecord condition has invalid axis index %d; ignoredr   )Ú NormalizedAxisTripleAndDistanceséÿÿÿÿr   r0   r1   r2   r:   zBLookupVariationRecord condition has unsupported format %d; ignored)Ú_LOOKUP_CONDITION_TRUEÚlogÚwarningrM   r   r   r;   r<   ÚfontTools.varLib.instancerrd   Úgetr   r   r)   r(   rL   r=   r.   r?   rG   r]   r>   r   rK   r   rH   )r+   r6   r8   rR   rS   r7   ÚaxisIdxr<   rd   Útripler)   r(   ÚnewRangerW   r5   rY   s                   r   ra   ra   §   s  € ð ÐÜ%Ð%áÜ�‰ÐRÔSÜ%Ð%à×Ñ˜1ÓØ×%Ñ%ˆØ”c˜(“mÒ#Ü�K‰KØTØôô *Ð)à˜7Ñ#×+Ñ+ˆÝOà—‘ Ñ)IÈ"ÈaÐQSÓ)TÓUˆØ×/Ñ/ˆØ×/Ñ/ˆØ�WÒ §¡°Ò 8¸F¿N¹NÈWÒ<TÜ*Ð*Ø�>‰>˜VŸ^™^Ò+ð ˜fŸn™nÔ7°Ò7ô 'ðà7Ü,ðô 8¸	À6ÓJˆØÐ˜w¨lÑ:Ü*Ð*à*¨7Ñ3ˆ	ÔØGOÑDˆ	Ô% yÔ'DØ�A‰;˜"Ò ¨!¡°Ò!1Ü)Ð)Ü%Ð%à×Ñ˜1ÒØ×Ñœr×4Ñ4Ò4Ü)Ð)ð ×%Ñ%¨Ò)ô #ð	
ô )ð	
ð ×Ñ˜6Ñ!ØˆØ×-Ñ-ò 		,ˆEÜ0Ø�z 8¨\Ð;KÈUÐUVÉYóˆFð ×Ñ 1Ò$¨Ô3JÒ)JÜ.Ò.Ø×Ñ 1Ò$¨Ô3IÒ)IÜ-Ò-ØÔ/Ó/Ø×$Ñ$ UÕ+ð		,ð $1ˆ	Ô Ü#& }Ó#5ˆ	Ô ÙÜ)Ð)à&/×&6Ñ&6¸!Ò&;Ô"ð	
ÜAXð	
ð ×Ñ˜1ÒÜ,Ø×$Ñ$ØØØØØ�A‰Ió
ˆð Ô+Ò+Ü*Ð*ØÔ,Ò,Ü)Ð)Ü%Ð%ä‡K�KØLØ×Ñôô "Ð!r   c           	      óœ  — | j                   }t        |dg «      }|sy | }g }|D �]Ž  }	|	j                  }
g }g }|}|
j                  D ]‰  }t	        |j
                  ||||«      }|t        k(  rŒ&|t        k(  rH|j                  |j                  j                  «       |s t        «       |_        |j                  |«       Œwd}|j                  |«       Œ‹ |r·| j                  �«| j                  j                  |	j                     }t!        |j"                  «      }|
j$                  dz  rt'        |j(                  «      ng }|j                  |«       t+        t-        |«      «      |_        t/        |j(                  «      |_        ||_        �Œg||
_        t/        |«      |
_        |j                  |	«       �Œ‘ ||_        t/        |«      |_        y )NÚLookupVariationRecordFr   )ÚFeatureVariationsÚgetattrÚFeatureLookupsTableÚLookupConditionRecordrK   r   rL   rf   ÚextendÚLookupIndexListÚLookupIndexr^   r   ÚFeatureListÚFeatureRecordÚFeatureIndexr   ÚFeatureÚFlagsÚlistÚLookupListIndexÚsortedÚsetr;   ÚLookupCountÚLookupConditionCountro   ÚLookupVariationCount)Útabler8   r6   rR   rS   Ú
variationsÚrecordsÚfullyInstancedÚ
newRecordsrP   ÚfeatureLookupsÚselectedLookupsÚnewConditionRecordsÚcanBakeÚconditionRecordrY   ÚfeatureRecordÚfeatureÚlookupIndicess                      r   Ú_instantiateLookupVariationsr�     sÉ  € ð ×(Ñ(€JÜ�jÐ"9¸2Ó>€GÙØà%Ð%€NØ€JØó '&ˆØ×3Ñ3ˆØˆØ ÐØ ˆà-×CÑCò 	8ˆOÜ0Ø×.Ñ.ØØØØ óˆFð Ô0Ò0ØØÔ/Ò/Ø×&Ñ& ×'FÑ'F×'RÑ'RÔSÙ%Ü5IÓ5K�OÔ2Ø'×.Ñ.¨Ô?ØàˆGØ×&Ñ& Õ7ð%	8ñ( �u×(Ñ(Ð4Ø!×-Ñ-×;Ñ;¸F×<OÑ<OÑPˆMÜ˜}×4Ñ4Ó5ˆGà1?×1EÑ1EÈÒ1I”�W×,Ñ,Ô-Èrð ð × Ñ  Ô1Ü&,¬S°Ó-?Ó&@ˆGÔ#Ü"% g×&=Ñ&=Ó">ˆGÔØ$+ˆMÖ!à3FˆNÔ0Ü25Ð6IÓ2JˆNÔ/Ø×Ñ˜fÖ%ðO'&ðR (2€JÔ$Ü&)¨*£o€JÕ#r   c              #   ó®  K  — g }dD ]£  }|| vrŒt        | |   j                  dd «      }t        |dg «      D ]4  }|j                  €Œ|j                  |j                  j                  «       Œ6 t        |dg «      D ].  }|j                  d„ |j
                  j                  D «       «       Œ0 Œ¥ |€
t        «       n|}|r—|j                  «       }|€Œt        |«      |v rŒ#|j                  t        |«      «       |–— |j                  dv r|j                  |j                  «       n*|j                  dk(  r|j                  |j                  «       |rŒ–y y ­w)N)ÚGSUBÚGPOSrp   ÚFeatureVariationRecordro   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr`   )r   )r$   rŒ   s     r   r'   z1_iterLookupVariationConditions.<locals>.<genexpr>H  s   è ø€ ò à#ð  ×.Õ.ñùs   ‚r0   r:   )rq   rƒ   r   rt   r   rr   rs   r   ÚpoprJ   r   r   r   )ÚvarfontÚdoneÚ
conditionsÚtableTagr„   rP   r   r+   s           r   Ú_iterLookupVariationConditionsr›   >  sV  è ø€ Ø€JØ$ò ˆØ˜7Ñ"ØÜ˜W XÑ.×4Ñ4Ð6IÈ4ÓPˆ
Ü˜jÐ*BÀBÓGò 	FˆFØ×"Ñ"Ñ.Ø×!Ñ! &×"5Ñ"5×"DÑ"DÕEð	Fô ˜jÐ*AÀ2ÓFò 	ˆFØ×Ññ à'-×'AÑ'A×'WÑ'Wôõ ñ	ðð �LŒ3Œ5 d€DÙ
Ø—N‘NÓ$ˆ	ØÐØÜˆi‹=˜DÑ ØØ�‰”�I“ÔØŠà×Ñ˜vÑ%Ø×Ñ˜i×6Ñ6Õ7Ø×Ñ Ò"Ø×Ñ˜i×6Ñ6Ô7ô ùs   ‚AEÁDEÅE)r˜   c                ó^  — t        | |«      D ]ž  }|j                  dk(  sŒ|j                  }|€|n|j                  |t        j
                  «      }|�P|j                  |j                  |d«      z   }|t        j
                  k(  rt        |dkD  «      n
t        |«      |_        |€Œ˜||_        Œ  y )Nr   r   )	r›   r   r?   rj   rG   r]   r>   Úintr   )r—   ÚdefaultDeltasÚvarIndexMappingr˜   r+   ÚvarIdxÚ	newVarIdxrB   s           r   Ú)instantiateLookupVariationConditionValuesr¢   ]  s¼   € ô 4°G¸TÓBò -ˆ	Ø×Ñ˜qÓ Ø×%Ñ%ˆFð #Ð*ñ à$×(Ñ(¨´×1FÑ1FÓGð ð
 Ð(Ø!×.Ñ.°×1BÑ1BÀ6È1Ó1MÑM�ð
 !¤B×$9Ñ$9Ò9ô ˜ ™	”Nä  ›ð Ô&ð
 Ñ*Ø#,�	Õ ñ%-r   c           
      ó  — t        |j                  «       «      }|D �cg c]  }|j                  |vsŒ|j                  ‘Œ }}|D �ci c]  }||j                  |«      “Œ }	}d}
t        «       }g }d }t	        | j
                  j                  «      D �](  \  }}t        |||||	||«      \  }}}|rt        ||«      r|j                  |«       |rè|
sæ|j                  �Ø|j                  j                  dk(  sJ ‚t        |j                  «      }t        |j                  |j                  j                  «      D ]{  \  }}t        | j                  j                   |j"                     j$                  «      |_        t        |j$                  «      | j                  j                   |j"                     _        Œ} d}
|s�Œ) n |
rk|risgt'        j                  «       }t'        j(                  «       |_        g |j(                  _        d|j(                  _        ||_
        |j                  |«       | j
                  }||_        t/        |«      |_        t3        | |||	|«       |j0                  st5        |dd«      s
| `d| _        y y y c c}w c c}w )NFr
   Tr   r‚   )r   ÚpinnedLocationr<   ÚindexrI   rp   r”   r[   r   r   r   r   r   ÚzipÚSubstitutionRecordrw   rx   ry   rz   rG   r   r   rH   r;   ÚFeatureVariationCountr�   rq   )rƒ   r8   r6   rS   rT   Ú
pinnedAxesÚaxisÚ	axisOrderr<   rR   ÚfeatureVariationAppliedÚuniqueRecordsr‡   ÚdefaultsSubstsrX   rP   rU   rV   rZ   r=   r   ÚdefaultRecordr„   s                          r   Ú_instantiateFeatureVariationsr°   u  su  € ô �Z×.Ñ.Ó0Ó1€JØ*2ÖU $°d·l±lÈ*Ò6T�—“ÐU€IÐUØENÖO¸'�G˜YŸ_™_¨WÓ5Ñ5ÐO€LÐOà#ÐÜ“E€MØ€JØ€Nä˜u×6Ñ6×MÑMÓNó "‰	ˆˆ6Ü)KØØØØØØØó*
Ñ&ˆ�˜Yñ Ô9¸&À-ÔPØ×Ñ˜fÔ%áÑ2Ø×.Ñ.Ð:Ø×6Ñ6×>Ñ>À*ÒLÐLÐLÜ!)¨&×*IÑ*IÓ!J�Ü$'Ø"×5Ñ5Ø×3Ñ3×FÑFó%ò 	‘L�G˜Sô '/Ø×)Ñ)×7Ñ7¸×8HÑ8HÑI×QÑQó'�G”Oô ! §¡Ó-ð ×%Ñ%×3Ñ3°C×4DÑ4DÑEÕMð	ð '+Ð#ó ÙðE"ñJ ¡:±iÜ×1Ñ1Ó3ˆÜ%'§_¡_Ó%6ˆÔ"Ø46ˆ×"Ñ"Ô1Ø45ˆ×"Ñ"Ô1Ø1?ˆÔ.à×Ñ˜-Ô(à×(Ñ(€JØ(2€JÔ%Ü'*¨:£€JÔ$ä Øˆx˜ \Ð3Côð
 	×(Ò(Ü�:Ð5°qÔ9àÐ#à"ˆ�ð	 :ð 	)ùò VùÚOs   žJ ²J ÁJc           	      ó   — dD ]‰  }|| vrŒt        | |   j                  dd «      }|€Œ%|j                  D ]V  }|j                  €Œ|j                  j                  D ].  }|€Œ|j
                  dvsŒt        |› d|j
                  › d�«      ‚ ŒX Œ‹ y )N©r“   r’   rp   rE   z$ FeatureVariations condition format rF   )rq   rƒ   r”   r   r   r   rN   )r—   rš   r„   rP   r+   s        r   Ú _checkFeatureVariationConditionsr³   À  s¾   € à$ò ˆØ˜7Ñ"ØÜ˜W XÑ.×4Ñ4Ð6IÈ4ÓPˆ
ØÐØØ ×7Ñ7ò 
	ˆFØ×"Ñ"Ð*ØØ#×0Ñ0×?Ñ?ò �	ØÐ$ØØ×#Ñ#¨?Ò:Ü-Ø#˜*Ð$HØ$×+Ñ+Ð,Ð,=ð?óð ñ	ñ
	ñr   c                 ór   — t        | «       t        | «      5  t        | |«       d d d «       y # 1 sw Y   y xY wr`   )r³   r   Ú#_instantiateFeatureVariationsInFont)r—   r6   s     r   ÚinstantiateFeatureVariationsr¶   Õ  s5   € Ü$ WÔ-Ü	 Ó	(ñ AÜ+¨G°ZÔ@÷A÷ Añ Aús   —-­6c           	      ó”  — ddl m} d| v rt        | d   j                  dd «      nd } ||| d   j                  i «      }i }i }dD ]Š  }|| vrŒt        | |   j                  dd «      }t        |dg «      D ]Y  }	|	j
                  €Œ|	j
                  j                  D ]1  }
t        |
«      }||vsŒt        |
|| d   j                  |¬	«      ||<   Œ3 Œ[ ŒŒ dD ]s  }|| vst        | |   j                  dd «      sŒ"t        j                  d
|«       t        | |   j                  | d   j                  |||«       | |   j                  «        Œu y )Nr   )ÚVarStoreInstancerÚGDEFÚVarStoreÚfvarr²   rp   r”   )r9   z+Instantiating FeatureVariations of %s table)ÚfontTools.varLib.varStorer¸   rq   rƒ   Úaxesr   r   rJ   r4   rg   Úinfor°   Úprune_lookups)r—   r6   r¸   ÚstoreÚdefaultInstancerrS   rT   rš   r„   rP   r+   rb   s               r   rµ   rµ   Û  s‰  € Ý;ð =CÀgÑ<MŒ�˜‘×%Ñ% z°4Ô8ÐSWð 
ñ )¨°¸±×0DÑ0DÀbÓIÐØÐØÐà$ò ˆØ˜7Ñ"ØÜ˜W XÑ.×4Ñ4Ð6IÈ4ÓPˆ
Ü˜jÐ*BÀBÓGò 	ˆFØ×"Ñ"Ð*ØØ#×0Ñ0×?Ñ?ò �	Ü˜“m�ØÐ/Ò/Ü-GØ!Ø"Ø ™×,Ñ,Ø"2ô	.Ð% cÒ*ññ	ð	ð  %ò *ˆØ˜7Ñ"¬'Ø�HÑ×#Ñ#Ð%8¸$ô+
ð Ü�‰Ð>ÀÔIÜ%Ø�HÑ×#Ñ#Ø�F‰O× Ñ ØØØô	
ð 	�Ñ×'Ñ'Õ)ñ*r   )é@   N)rÂ   r`   )NN)ÚfontTools.ttLib.tablesr   rG   ÚfontTools.misc.fixedToolsr   ÚfontTools.ttLib.beyond64kr   Úcopyr   ÚloggingÚ	getLoggerrg   rL   rf   rM   r   r.   r4   r[   r^   rK   ra   r�   r›   r¢   r°   r³   r¶   rµ   © r   r   ú<module>rÊ      s¢   ðÝ 1Ý -Ý <Ý Û à€g×ÑÐ4Ó5€àÐ ØÐ ØÐ òò@ð$ :>óòB0*òfð LNó	!ò]"ò@46ón8ð@ 26ð-Ø?Cô-ò0H#òVò*Aó(*r   