ó
    oñ:iq   ã                   óP  • S SK JrJr  S SKJr  S SKJr  S SKJr	  S SK
Jr  S SKrS SKJrJrJrJrJr  S SKJr  S S	KJr  S S
KJr  S SKJrJr  \	R:                  r\\	R<                  l        S r " S S\ 5      r!\"S.S jr#\#\	RH                  l%        S r&\&\	RN                  l(        S r)\)\	R<                  l*         " S S\ 5      r+S r,S r-\-\	R<                  l.        \,\	R<                  l/        S r0\0\	R<                  l1        S r2S r3\2\	Rh                  l5        \3\	Rh                  l6        g)é    )ÚnoRoundÚotRound)Ú	bit_count)ÚVector)ÚotTables)ÚsupportScalarN)ÚbuildVarRegionListÚbuildSparseVarRegionListÚbuildSparseVarRegionÚbuildMultiVarStoreÚbuildMultiVarData)Úbatched)Úpartial)Údefaultdict)ÚheappushÚheappopc                 óF   • [        [        U R                  5       S S95      $ )Nc                 ó   • U S   $ ©Nr   © )Úkvs    Úa/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/varLib/multiVarStore.pyÚ<lambda>Ú!_getLocationKey.<locals>.<lambda>   s   € °B°q²Eó    )Úkey)ÚtupleÚsortedÚitems)Úlocs    r   Ú_getLocationKeyr!      s   € Ü”˜Ÿ	™	›Ñ)9Ñ:Ó;Ð;r   c                   óN   • \ rS rSrS rS rS rS rS r\	S.S jr
\	S.S	 jrS
rg)ÚOnlineMultiVarStoreBuilderé   c                 óÊ   • Xl         0 U l        [        / U5      U l        [	        U R                  / 5      U l        S U l        S U l        S U l        0 U l	        0 U l
        S U l        g ©N)Ú	_axisTagsÚ
_regionMapr
   Ú_regionListr   Ú_storeÚ_dataÚ_modelÚ	_supportsÚ_varDataIndicesÚ_varDataCachesÚ_cache)ÚselfÚaxisTagss     r   Ú__init__Ú#OnlineMultiVarStoreBuilder.__init__   s]   € Ø!ŒØˆŒÜ3°B¸ÓAˆÔÜ(¨×)9Ñ)9¸2Ó>ˆŒØˆŒ
ØˆŒØˆŒØ!ˆÔØ ˆÔØˆ�r   c                 óF   • U R                  UR                  5        Xl        g r&   )ÚsetSupportsÚsupportsr,   )r1   Úmodels     r   ÚsetModelÚ#OnlineMultiVarStoreBuilder.setModel)   s   € Ø×Ñ˜Ÿ™Ô(Ø�r   c                 ó�   • S U l         [        U5      U l        U R                  S   (       d  U R                  S	 S U l        S U l        g r   )r,   Úlistr-   r0   r+   )r1   r7   s     r   r6   Ú&OnlineMultiVarStoreBuilder.setSupports-   s:   € ØˆŒÜ˜h›ˆŒØ�~‰~˜a× Ø—‘˜qÐ!ØˆŒØˆ�
r   c                 óÒ   • [        U R                  R                  5      U R                  l        [        U R                  R
                  5      U R                  l        U R                  $ r&   )Úlenr)   ÚRegionÚRegionCountr*   ÚMultiVarDataÚMultiVarDataCount©r1   s    r   ÚfinishÚ!OnlineMultiVarStoreBuilder.finish5   sF   € Ü'*¨4×+;Ñ+;×+BÑ+BÓ'Cˆ×ÑÔ$Ü(+¨D¯K©K×,DÑ,DÓ(Eˆ�‰Ô%Ø�{‰{Ðr   c                 óÆ  • U R                   nU R                  nU R                  n/ nU H|  n[        U5      nUR	                  U5      nUcI  [        XPR                  5      n[        UR                  5      =oqU'   UR                  R                  U5        UR                  U5        M~     [        U5      nU R                  R	                  U5      n	U	b]  X�l        U R                  R                  U	   U l        U R                   U   U l        [        U R                  R$                  5      S:X  a  S n	U	c°  ['        U/ 5      U l        [        U R                  R                  5      U l        U R                  R                  R                  U R                  5        U R                  U R                  U'   X`R                   ;  a  0 U R                   U'   U R                   U   U l        g g )Néÿÿ  )r(   r)   r-   r!   Úgetr   r'   r?   r@   Úappendr   r.   Ú_outerr*   rB   r+   r/   r0   ÚItemr   )
r1   Ú	regionMapÚ
regionListÚregionsÚregionIndicesÚregionr   ÚidxÚ	varRegionÚ
varDataIdxs
             r   Ú_add_MultiVarDataÚ,OnlineMultiVarStoreBuilder._add_MultiVarData:   sŽ  € Ø—O‘Oˆ	Ø×%Ñ%ˆ
à—.‘.ˆØˆÛˆFÜ! &Ó)ˆCØ—-‘- Ó$ˆCØ‰{Ü0°¿¹ÓH�	Ü'*¨:×+<Ñ+<Ó'=Ð=� ‘nØ×!Ñ!×(Ñ(¨Ô3Ø× Ñ  Ö%ñ ô �MÓ"ˆØ×)Ñ)×-Ñ-¨cÓ2ˆ
ØÑ!Ø$ŒKØŸ™×1Ñ1°*Ñ=ˆDŒJØ×-Ñ-¨cÑ2ˆDŒKÜ�4—:‘:—?‘?Ó# vÓ-à!�
àÑÜ*¨=¸"Ó=ˆDŒJÜ˜dŸk™k×6Ñ6Ó7ˆDŒKØ�K‰K×$Ñ$×+Ñ+¨D¯J©JÔ7Ø(,¯©ˆD× Ñ  Ñ%Ø×-Ñ-Ó-Ø+-�×#Ñ# CÑ(Ø×-Ñ-¨cÑ2ˆD�Kð r   ©Úroundc                ó€   • U R                   R                  XS9nUR                  S5      nX@R                  U[        S94$ )NrW   r   )r,   Ú	getDeltasÚpopÚstoreDeltasr   )r1   Úmaster_valuesrX   ÚdeltasÚbases        r   ÚstoreMastersÚ'OnlineMultiVarStoreBuilder.storeMasters]   s?   € Ø—‘×&Ñ& }Ð&ÐBˆØ�z‰z˜!‹}ˆØ×%Ñ% f´GÐ%Ð<Ð<Ð<r   c                ó  ^• [        U4S jU 5       5      n[        U5      (       d  [        $ [        S U 5       5      nU R                  (       d  U R	                  5         U R
                  R                  U5      nUb  U$ [        U R                  R                  5      nUS:X  a$  U R	                  5         U R                  U[        S9$ U R                  R                  U[        S9  U R                  S-  U-   nX@R
                  U'   U$ )Nc              3   ó4   >#   • U  H  nT" U5      v •  M     g 7fr&   r   ©Ú.0ÚdrX   s     €r   Ú	<genexpr>Ú9OnlineMultiVarStoreBuilder.storeDeltas.<locals>.<genexpr>c   s   øé € Ð0ª A‘u˜Q—x�xªùó   ƒc              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr&   )r   )re   rf   s     r   rg   rh   h   s   é € Ð6ªv¨!œU 1ŸX˜Xªvùs   ‚rH   rW   é   )r   ÚanyÚNO_VARIATION_INDEXr+   rU   r0   rI   r?   rL   r\   r   ÚaddItemrK   )r1   r^   rX   Údeltas_tupleÚvarIdxÚinners     `   r   r\   Ú&OnlineMultiVarStoreBuilder.storeDeltasb   sØ   ø€ ÜÔ0©Ó0Ó0ˆä�6�{‰{Ü%Ð%äÑ6©vÓ6Ó6ˆà�z�zØ×"Ñ"Ô$à—‘—‘ Ó.ˆØÑØˆMä�D—J‘J—O‘OÓ$ˆØ�F‹?à×"Ñ"Ô$Ø×#Ñ# F´'Ð#Ð:Ð:Ø�
‰
×Ñ˜6¬ÐÑ1à—+‘+ Ñ# uÑ,ˆØ$*�‰�LÑ!Øˆr   )r'   r0   r+   r,   rK   r)   r(   r*   r-   r/   r.   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r3   r9   r6   rE   rU   rX   r`   r\   Ú__static_attributes__r   r   r   r#   r#      s5   † ò
òòòò
!3ðF 49õ =ð
 ,1÷ ð r   r#   rW   c                ó  ^• [        U4S jU 5       5      n[        U5      U R                  :X  d   e/ nU H  nUR                  U5        M     U R                  R                  U5        [        U R                  5      U l        g )Nc              3   ó4   >#   • U  H  nT" U5      v •  M     g 7fr&   r   rd   s     €r   rg   Ú'MultiVarData_addItem.<locals>.<genexpr>~   s   øé € Ð,¢V ‘5˜—8�8¢Vùri   )r   r?   ÚVarRegionCountÚextendrL   rJ   Ú	ItemCount)r1   r^   rX   Úvaluesrf   s     `  r   ÚMultiVarData_addItemr   }   si   ø€ ÜÔ,¡VÓ,Ó,€Fäˆv‹;˜$×-Ñ-Ó-Ð-Ð-à€FÛˆØ�‰�aÖñ ð 	‡I�I×Ñ�VÔÜ˜Ÿ™“^€D…Nr   c                 ó¶   • U R                    Vs0 s H=  nXR                     R                  UR                  UR                  UR
                  4_M?     sn$ s  snf r&   )ÚSparseVarRegionAxisÚ	AxisIndexÚaxisTagÚ
StartCoordÚ	PeakCoordÚEndCoord)r1   Ú	fvar_axesÚregs      r   ÚSparseVarRegion_get_supportr‰   �   sT   € ð ×+Ò+óâ+ˆCð 	—-‘-Ñ ×(Ñ(¨3¯>©>¸3¿=¹=È#Ï,É,Ð*WÒWÙ+ñð ùò s   �AAc                 ó,   • [        U R                  5      $ r&   )ÚboolrB   rD   s    r   ÚMultiVarStore___bool__rŒ   —   s   € Ü�×!Ñ!Ó"Ð"r   c                   óN   • \ rS rSr0 4S jrS rS rS r\S 5       r	S r
S rS	rg
)ÚMultiVarStoreInstanceréž   c                 óØ   • X l         Ub  UR                  S:X  d   eU(       a  UR                  O/ U l        U(       a  UR                  R
                  O/ U l        U R                  U5        g )Né   )r‡   ÚFormatrB   Ú_varDataÚSparseVarRegionListr@   Ú_regionsÚsetLocation)r1   Úmultivarstorer‡   Úlocations       r   r3   ÚMultiVarStoreInstancer.__init__Ÿ   s[   € Ø"ŒØÑ$¨×(<Ñ(<ÀÓ(AÐAÐAÞ6C˜×2Ò2ÈˆŒæ8EˆM×-Ñ-×4Ò4È2ð 	Œð 	×Ñ˜Õ"r   c                 óD   • [        U5      U l        U R                  5         g r&   )Údictr˜   Ú_clearCaches)r1   r˜   s     r   r–   Ú"MultiVarStoreInstancer.setLocation¨   s   € Ü˜X›ˆŒØ×ÑÕr   c                 ó   • 0 U l         g r&   )Ú_scalarsrD   s    r   rœ   Ú#MultiVarStoreInstancer._clearCaches¬   s	   € Øˆ�r   c                 óÚ   • U R                   R                  U5      nUcL  U R                  U   R                  U R                  5      n[        U R                  U5      nX R                   U'   U$ r&   )rŸ   rI   r•   Úget_supportr‡   r   r˜   )r1   Ú	regionIdxÚscalarÚsupports       r   Ú
_getScalarÚ!MultiVarStoreInstancer._getScalar¯   sY   € Ø—‘×"Ñ" 9Ó-ˆØ‰>Ø—m‘m IÑ.×:Ñ:¸4¿>¹>ÓJˆGÜ" 4§=¡=°'Ó:ˆFØ'-�M‰M˜)Ñ$Øˆr   c                 óR  • U (       d  [        / 5      $ [        U 5      [        U5      -  S:X  d   [        U 5      [        U5      45       e[        U 5      [        U5      -  n[        S/U-  5      n[        [        X5      U5       H  u  pEU(       d  M  U[        U5      U-  -  nM!     U$ r   )r   r?   Úzipr   )r^   ÚscalarsÚmÚdeltarf   Úss         r   ÚinterpolateFromDeltasAndScalarsÚ6MultiVarStoreInstancer.interpolateFromDeltasAndScalars·   s”   € æÜ˜"“:ÐÜ�6‹{œS ›\Ñ)¨QÓ.ÐK´°V³¼cÀ'»lÐ0KÓKÐ.Ü�‹Kœ3˜w›<Ñ'ˆÜ˜�s˜Q‘w“ˆÜœ Ó*¨GÖ4‰DˆAÞÙØ”V˜A“Y ‘]Ñ"ŠEñ 5ð ˆr   c                 óü   • US-	  US-  p2U[         :X  a  [        / 5      $ U R                  nXB   R                   Vs/ s H  oPR	                  U5      PM     nnXB   R
                  U   nU R                  Xv5      $ s  snf )Nrk   rH   )rm   r   r“   ÚVarRegionIndexr¦   rL   r®   )r1   ÚvaridxÚmajorÚminorÚvarDataÚrirª   r^   s           r   Ú__getitem__Ú"MultiVarStoreInstancer.__getitem__Ä   s{   € Ø ‘| V¨f¡_ˆuØÔ'Ó'Ü˜"“:ÐØ—-‘-ˆØ18±×1NÒ1NÓOÒ1N¨2—?‘? 2Ö&Ñ1NˆÐOØ‘×$Ñ$ UÑ+ˆØ×3Ñ3°FÓDÐDùò Ps   »A9c                 óž   • U R                   nX1   R                   Vs/ s H  o@R                  U5      PM     nnU R                  X%5      $ s  snf r&   )r“   r±   r¦   r®   )r1   ÚvarDataIndexr^   rµ   r¶   rª   s         r   ÚinterpolateFromDeltasÚ,MultiVarStoreInstancer.interpolateFromDeltasÍ   sH   € Ø—-‘-ˆØ18Ñ1F×1UÒ1UÓVÒ1U¨2—?‘? 2Ö&Ñ1UˆÐVØ×3Ñ3°FÓDÐDùò Ws   �A
)r•   rŸ   r“   r‡   r˜   N)rs   rt   ru   rv   r3   r–   rœ   r¦   Ústaticmethodr®   r·   r»   rw   r   r   r   rŽ   rŽ   ž   s9   † Ø:<ô #òòòð ñ
ó ð
òEõEr   rŽ   c                 ó>   • [         R                  R                  XSS9$ )NrB   )ÚVarData)ÚotÚVarStoreÚsubset_varidxes)r1   ÚvarIdxess     r   ÚMultiVarStore_subset_varidxesrÄ   Ó   s   € Ü�;‰;×&Ñ& t¸~Ð&ÐNÐNr   c                 ó@   • [         R                  R                  U SSS9$ )NrB   r”   )r¿   ÚVarRegionList)rÀ   rÁ   Úprune_regionsrD   s    r   ÚMultiVarStore_prune_regionsrÈ   ×   s&   € Ü�;‰;×$Ñ$Ø�nÐ4Ið %ð ð r   c                 óÄ   • / nU R                   U   nUR                   H>  nU R                  R                  U   nUR	                  U5      nUR                  U5        M@     U$ r&   )rB   r±   r”   r@   r¢   rJ   )r1   r³   ÚfvarAxesr7   rµ   r£   rQ   r¥   s           r   ÚMultiVarStore_get_supportsrË   á   s`   € Ø€HØ×Ñ Ñ&€GØ×+Ô+ˆ	Ø×)Ñ)×0Ñ0°Ñ;ˆØ×$Ñ$ XÓ.ˆØ�‰˜Ö ñ ,ð €Or   c                 óÐ   • U R                   R                   HL  nUR                   H9  nUR                  UR                  5        UR                  UR
                  5        M;     MN     g r&   )ÚVarCompositeGlyphsÚVarCompositeGlyphÚ
componentsÚaddÚaxisValuesVarIndexÚtransformVarIndex)r1   ÚvaridxesÚglyphÚ	components       r   ÚVARC_collect_varidxesrÖ   î   sL   € Ø×(Ñ(×:Ô:ˆØ×)Ô)ˆIØ�L‰L˜×5Ñ5Ô6Ø�L‰L˜×4Ñ4Ö5ó *ò ;r   c                 ó°   • U R                   R                   H<  nUR                   H)  nXR                     Ul        XR                     Ul        M+     M>     g r&   )rÍ   rÎ   rÏ   rÑ   rÒ   )r1   Úvaridxes_maprÔ   rÕ   s       r   ÚVARC_remap_varidxesrÙ   õ   sJ   € Ø×(Ñ(×:Ô:ˆØ×)Ô)ˆIØ+7×8TÑ8TÑ+UˆIÔ(Ø*6×7RÑ7RÑ*SˆIÖ'ó *ò ;r   )7ÚfontTools.misc.roundToolsr   r   ÚfontTools.misc.intToolsr   ÚfontTools.misc.vectorr   ÚfontTools.ttLib.tablesr   rÀ   ÚfontTools.varLib.modelsr   ÚfontTools.varLib.varStoreÚ	fontToolsÚfontTools.varLib.builderr	   r
   r   r   r   ÚfontTools.misc.iterToolsr   Ú	functoolsr   Úcollectionsr   Úheapqr   r   rm   ÚMultiVarStorer!   Úobjectr#   rX   r   rB   rn   r‰   ÚSparseVarRegionr¢   rŒ   Ú__bool__rŽ   rÄ   rÈ   rÇ   rÂ   rË   Úget_supportsrÖ   rÙ   ÚVARCÚcollect_varidxesÚremap_varidxesr   r   r   Ú<module>rî      s  ðß 6Ý -Ý (Ý 1Ý 1Û  ÷õ õ -Ý Ý #ß #ð ×*Ñ*Ð Ø&8€× Ñ Ô #ò<ô^ ô ^ðB 16õ 
$ð /€‡�Ô òð "=€× Ñ Ô ò#ð 3€× Ñ Ô ô2E˜Vô 2EòjOòð "=€× Ñ Ô Ø#@€× Ñ Ô  òð !;€× Ñ Ô ò6òTð 1€‡�Ô Ø,€‡�Õ r   