Ë
    £ehq   ã                   óN  — d dl mZmZ d dlmZ d dlmZ d dlmZ	 d dl
mZ d dlZd dlmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ e	j:                  Zee	j<                  _        d„ Z G d„ de «      Z!e"dœd„Z#e#e	jH                  _%        d„ Z&e&e	jN                  _(        d„ Z)e)e	j<                  _*         G d„ de «      Z+d„ Z,d„ Z-e-e	j<                  _.        e,e	j<                  _/        d„ Z0e0e	j<                  _1        d„ Z2d„ Z3e2e	jh                  _5        e3e	jh                  _6        y)é    )ÚnoRoundÚotRound)Ú	bit_count)ÚVector)ÚotTables)ÚsupportScalarN)ÚbuildVarRegionListÚbuildSparseVarRegionListÚbuildSparseVarRegionÚbuildMultiVarStoreÚbuildMultiVarData)Úbatched)Úpartial)Údefaultdict)ÚheappushÚheappopc                 óL   — t        t        | j                  «       d„ ¬«      «      S )Nc                 ó   — | d   S ©Nr   © )Úkvs    ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/varLib/multiVarStore.pyú<lambda>z!_getLocationKey.<locals>.<lambda>   s
   € °B°q±E€ ó    )Úkey)ÚtupleÚsortedÚitems)Úlocs    r   Ú_getLocationKeyr       s   € Ü”˜Ÿ	™	›Ñ)9Ô:Ó;Ð;r   c                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zedœd„Z	edœd„Z
y	)
ÚOnlineMultiVarStoreBuilderc                 óÌ   — || _         i | _        t        g |«      | _        t	        | j                  g «      | _        d | _        d | _        d | _        i | _	        i | _
        d | _        y ©N)Ú	_axisTagsÚ
_regionMapr
   Ú_regionListr   Ú_storeÚ_dataÚ_modelÚ	_supportsÚ_varDataIndicesÚ_varDataCachesÚ_cache)ÚselfÚaxisTagss     r   Ú__init__z#OnlineMultiVarStoreBuilder.__init__   s_   € Ø!ˆŒØˆŒÜ3°B¸ÓAˆÔÜ(¨×)9Ñ)9¸2Ó>ˆŒØˆŒ
ØˆŒØˆŒØ!ˆÔØ ˆÔØˆ�r   c                 óH   — | j                  |j                  «       || _        y r$   )ÚsetSupportsÚsupportsr*   )r/   Úmodels     r   ÚsetModelz#OnlineMultiVarStoreBuilder.setModel)   s   € Ø×Ñ˜Ÿ™Ô(Øˆ�r   c                 ó†   — d | _         t        |«      | _        | j                  d   s| j                  d= d | _        d | _        y r   )r*   Úlistr+   r.   r)   )r/   r4   s     r   r3   z&OnlineMultiVarStoreBuilder.setSupports-   s:   € ØˆŒÜ˜h›ˆŒØ�~‰~˜aÒ Ø—‘˜qÐ!ØˆŒØˆ�
r   c                 óÒ   — t        | j                  j                  «      | j                  _        t        | j                  j
                  «      | j                  _        | j                  S r$   )Úlenr'   ÚRegionÚRegionCountr(   ÚMultiVarDataÚMultiVarDataCount©r/   s    r   Úfinishz!OnlineMultiVarStoreBuilder.finish5   sF   € Ü'*¨4×+;Ñ+;×+BÑ+BÓ'Cˆ×ÑÔ$Ü(+¨D¯K©K×,DÑ,DÓ(Eˆ�‰Ô%Ø�{‰{Ðr   c                 ó¾  — | j                   }| j                  }| j                  }g }|D ]|  }t        |«      }|j	                  |«      }|€Kt        || j                  «      }t        |j                  «      x}||<   |j                  j                  |«       |j                  |«       Œ~ t        |«      }| j                  j	                  |«      }	|	�]|	| _        | j                  j                  |	   | _        | j                   |   | _        t        | j                  j$                  «      dk(  rd }	|	€¯t'        |g «      | _        t        | j                  j                  «      | _        | j                  j                  j                  | j                  «       | j                  | j                  |<   || j                   vri | j                   |<   | j                   |   | _        y y )Néÿÿ  )r&   r'   r+   r    Úgetr   r%   r:   r;   Úappendr   r,   Ú_outerr(   r=   r)   r-   r.   ÚItemr   )
r/   Ú	regionMapÚ
regionListÚregionsÚregionIndicesÚregionr   ÚidxÚ	varRegionÚ
varDataIdxs
             r   Ú_add_MultiVarDataz,OnlineMultiVarStoreBuilder._add_MultiVarData:   s›  € Ø—O‘Oˆ	Ø×%Ñ%ˆ
à—.‘.ˆØˆØò 	&ˆFÜ! &Ó)ˆCØ—-‘- Ó$ˆCØˆ{Ü0°¸¿¹ÓH�	Ü'*¨:×+<Ñ+<Ó'=Ð=��i ‘nØ×!Ñ!×(Ñ(¨Ô3Ø× Ñ  Õ%ð	&ô �MÓ"ˆØ×)Ñ)×-Ñ-¨cÓ2ˆ
ØÐ!Ø$ˆDŒ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                ó�   — | j                   j                  ||¬«      }|j                  d«      }|| j                  |t        ¬«      fS )NrP   r   )r*   Ú	getDeltasÚpopÚstoreDeltasr   )r/   Úmaster_valuesrQ   ÚdeltasÚbases        r   ÚstoreMastersz'OnlineMultiVarStoreBuilder.storeMasters]   sC   € Ø—‘×&Ñ& }¸EÐ&ÓBˆØ�z‰z˜!‹}ˆØ�T×%Ñ% f´GÐ%Ó<Ð<Ð<r   c                ó  ‡— t        ˆfd„|D «       «      }t        |«      st        S t        d„ |D «       «      }| j                  s| j	                  «        | j
                  j                  |«      }|�|S t        | j                  j                  «      }|dk(  r'| j	                  «        | j                  |t        ¬«      S | j                  j                  |t        ¬«       | j                  dz  |z   }|| j
                  |<   |S )Nc              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr$   r   ©Ú.0ÚdrQ   s     €r   ú	<genexpr>z9OnlineMultiVarStoreBuilder.storeDeltas.<locals>.<genexpr>c   s   øè ø€ Ò0 A‘u˜Q—xÑ0ùó   ƒc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr$   )r   )r]   r^   s     r   r_   z9OnlineMultiVarStoreBuilder.storeDeltas.<locals>.<genexpr>h   s   è ø€ Ò6¨!œU 1ŸXÑ6ùs   ‚rB   rP   é   )r   ÚanyÚNO_VARIATION_INDEXr)   rO   r.   rC   r:   rF   rU   r   ÚaddItemrE   )r/   rW   rQ   Údeltas_tupleÚvarIdxÚinners     `   r   rU   z&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   N)Ú__name__Ú
__module__Ú__qualname__r1   r6   r3   r@   rO   rQ   rY   rU   r   r   r   r"   r"      s0   „ ò
òòòò
!3ðF 49ô =ð
 ,1õ r   r"   rP   c                ó   ‡— t        ˆfd„|D «       «      }t        |«      | j                  k(  sJ ‚g }|D ]  }|j                  |«       Œ | j                  j                  |«       t        | j                  «      | _        y )Nc              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr$   r   r\   s     €r   r_   z'MultiVarData_addItem.<locals>.<genexpr>~   s   øè ø€ Ò, ‘5˜—8Ñ,ùr`   )r   r:   ÚVarRegionCountÚextendrF   rD   Ú	ItemCount)r/   rW   rQ   Úvaluesr^   s     `  r   ÚMultiVarData_addItemrr   }   sn   ø€ ÜÓ, VÔ,Ó,€Fäˆv‹;˜$×-Ñ-Ò-Ð-Ð-à€FØò ˆØ�‰�aÕðð 	‡I�I×Ñ�VÔÜ˜Ÿ™“^€D…Nr   c                 ó²   — | j                   D �ci c]=  }||j                     j                  |j                  |j                  |j
                  f“Œ? c}S c c}w r$   )ÚSparseVarRegionAxisÚ	AxisIndexÚaxisTagÚ
StartCoordÚ	PeakCoordÚEndCoord)r/   Ú	fvar_axesÚregs      r   ÚSparseVarRegion_get_supportr|   �   sQ   € ð ×+Ñ+öàð 	�#—-‘-Ñ ×(Ñ(¨3¯>©>¸3¿=¹=È#Ï,É,Ð*WÑWòð ùò s   �AAc                 ó,   — t        | j                  «      S r$   )Úboolr=   r?   s    r   ÚMultiVarStore___bool__r   —   s   € Ü�×!Ñ!Ó"Ð"r   c                   óD   — e Zd Zi fd„Zd„ Zd„ Zd„ Zed„ «       Zd„ Z	d„ Z
y)	ÚMultiVarStoreInstancerc                 óÂ   — || _         |�|j                  dk(  sJ ‚|r|j                  ng | _        |r|j                  j
                  ng | _        | j                  |«       y )Né   )rz   ÚFormatr=   Ú_varDataÚSparseVarRegionListr;   Ú_regionsÚsetLocation)r/   Úmultivarstorerz   Úlocations       r   r1   zMultiVarStoreInstancer.__init__Ÿ   s]   € Ø"ˆŒØÐ$¨×(<Ñ(<ÀÒ(AÐAÐAÙ6C˜×2Ò2ÈˆŒá8EˆM×-Ñ-×4Ò4È2ð 	Œð 	×Ñ˜Õ"r   c                 óD   — t        |«      | _        | j                  «        y r$   )ÚdictrŠ   Ú_clearCaches)r/   rŠ   s     r   rˆ   z"MultiVarStoreInstancer.setLocation¨   s   € Ü˜X›ˆŒØ×ÑÕr   c                 ó   — i | _         y r$   )Ú_scalarsr?   s    r   r�   z#MultiVarStoreInstancer._clearCaches¬   s	   € Øˆ�r   c                 óÚ   — | j                   j                  |«      }|€M| j                  |   j                  | j                  «      }t        | j                  |«      }|| j                   |<   |S r$   )r�   rC   r‡   Úget_supportrz   r   rŠ   )r/   Ú	regionIdxÚscalarÚsupports       r   Ú
_getScalarz!MultiVarStoreInstancer._getScalar¯   s[   € Ø—‘×"Ñ" 9Ó-ˆØˆ>Ø—m‘m IÑ.×:Ñ:¸4¿>¹>ÓJˆGÜ" 4§=¡=°'Ó:ˆFØ'-ˆD�M‰M˜)Ñ$Øˆr   c                 ó:  — | st        g «      S t        | «      t        |«      z  dk(  sJ t        | «      t        |«      f«       ‚t        | «      t        |«      z  }t        dg|z  «      }t        t        | |«      |«      D ]  \  }}|sŒ	|t        |«      |z  z  }Œ |S r   )r   r:   Úzipr   )rW   ÚscalarsÚmÚdeltar^   Úss         r   ÚinterpolateFromDeltasAndScalarsz6MultiVarStoreInstancer.interpolateFromDeltasAndScalars·   s�   € áÜ˜"“:ÐÜ�6‹{œS ›\Ñ)¨QÒ.ÐK´°V³¼cÀ'»lÐ0KÓKÐ.Ü�‹Kœ3˜w›<Ñ'ˆÜ˜�s˜Q‘w“ˆÜœ ¨Ó*¨GÓ4ò 	#‰DˆAˆqÙØØ”V˜A“Y ‘]Ñ"‰Eð	#ð ˆr   c                 óþ   — |dz	  |dz  }}|t         k(  rt        g «      S | j                  }||   j                  D �cg c]  }| j	                  |«      ‘Œ }}||   j
                  |   }| j                  ||«      S c c}w )Nrb   rB   )rd   r   r…   ÚVarRegionIndexr•   rF   rœ   )r/   ÚvaridxÚmajorÚminorÚvarDataÚrir˜   rW   s           r   Ú__getitem__z"MultiVarStoreInstancer.__getitem__Ä   s‚   € Ø ‘| V¨f¡_ˆuˆØÔ'Ò'Ü˜"“:ÐØ—-‘-ˆØ18¸±×1NÑ1NÖO¨2�4—?‘? 2Õ&ÐOˆÐOØ˜‘×$Ñ$ UÑ+ˆØ×3Ñ3°F¸GÓDÐDùò Ps   ¼A:c                 óž   — | j                   }||   j                  D �cg c]  }| j                  |«      ‘Œ }}| j                  ||«      S c c}w r$   )r…   rž   r•   rœ   )r/   ÚvarDataIndexrW   r¢   r£   r˜   s         r   ÚinterpolateFromDeltasz,MultiVarStoreInstancer.interpolateFromDeltasÍ   sK   € Ø—-‘-ˆØ18¸Ñ1F×1UÑ1UÖV¨2�4—?‘? 2Õ&ÐVˆÐVØ×3Ñ3°F¸GÓDÐDùò Ws   žA
N)ri   rj   rk   r1   rˆ   r�   r•   Ústaticmethodrœ   r¤   r§   r   r   r   r�   r�   ž   s9   „ Ø:<ó #òòòð ñ
ó ð
òEóEr   r�   c                 óF   — t         j                  j                  | |d¬«      S )Nr=   )ÚVarData)ÚotÚVarStoreÚsubset_varidxes)r/   ÚvarIdxess     r   ÚMultiVarStore_subset_varidxesr¯   Ó   s   € Ü�;‰;×&Ñ& t¨X¸~Ð&ÓNÐNr   c                 óF   — t         j                  j                  | dd¬«      S )Nr=   r†   )rª   ÚVarRegionList)r«   r¬   Úprune_regionsr?   s    r   ÚMultiVarStore_prune_regionsr³   ×   s&   € Ü�;‰;×$Ñ$Ø�nÐ4Ið %ó ð r   c                 óÀ   — g }| j                   |   }|j                  D ]=  }| j                  j                  |   }|j	                  |«      }|j                  |«       Œ? |S r$   )r=   rž   r†   r;   r‘   rD   )r/   r    ÚfvarAxesr4   r¢   r’   rK   r”   s           r   ÚMultiVarStore_get_supportsr¶   á   se   € Ø€HØ×Ñ Ñ&€GØ×+Ñ+ò !ˆ	Ø×)Ñ)×0Ñ0°Ñ;ˆØ×$Ñ$ XÓ.ˆØ�‰˜Õ ð!ð €Or   c                 óÈ   — | j                   j                  D ]I  }|j                  D ]8  }|j                  |j                  «       |j                  |j
                  «       Œ: ŒK y r$   )ÚVarCompositeGlyphsÚVarCompositeGlyphÚ
componentsÚaddÚaxisValuesVarIndexÚtransformVarIndex)r/   ÚvaridxesÚglyphÚ	components       r   ÚVARC_collect_varidxesrÁ   î   sV   € Ø×(Ñ(×:Ñ:ò 6ˆØ×)Ñ)ò 	6ˆIØ�L‰L˜×5Ñ5Ô6Ø�L‰L˜×4Ñ4Õ5ñ	6ñ6r   c                 ó¬   — | j                   j                  D ];  }|j                  D ]*  }||j                     |_        ||j                     |_        Œ, Œ= y r$   )r¸   r¹   rº   r¼   r½   )r/   Úvaridxes_mapr¿   rÀ   s       r   ÚVARC_remap_varidxesrÄ   õ   s\   € Ø×(Ñ(×:Ñ:ò TˆØ×)Ñ)ò 	TˆIØ+7¸	×8TÑ8TÑ+UˆIÔ(Ø*6°y×7RÑ7RÑ*SˆIÕ'ñ	TñT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   rd   ÚMultiVarStorer    Úobjectr"   rQ   rr   r=   re   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   