+
    "Ý³j*  ã                   ó  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	H
t
HtHtHt ^ RIt^ RIt^ RIHt ^ RIt^ RIHt ^RIHtHt ^RIHtHt ^RIHtHt ^R	I H!t! ^R
I"H#t# ^RI$H%t% ^RI&H't'H(t(H)t)H*t*H+t+H,t, ^RI-H.t. ]%! 4       t/R R lt0R R lt1R R lt2R R lt3R R lt4 ! R R]Pj                  4      t6 ! R R]64      t7 ! R R]74      t8 ! R R]64      t9 ! R  R!]84      t: ! R" R#]:4      t; ! R$ R%]84      t<R# )&é    N)ÚThreadPoolExecutor)Ú	lru_cache)ÚAnyÚDictÚListÚOptionalÚTuple)Ú_ConvNd)ÚLORA_MERGED_WEIGHT_PATHSÚAdapter)ÚDEVICEÚPLATFORM)ÚFORMATÚMETHOD)ÚBACKEND)Úenv_flag)Úsetup_logger)ÚPLANAR_BITSÚPLANAR_FORMAT_BITSÚplanar_pack_colsÚplanar_pack_rowsÚplanar_unpack_colsÚplanar_unpack_rows)ÚTHREADPOOLCTLc                óD   € V ^8„  d   QhR\         P                  R\        /# ©é   ÚxÚreturn©ÚtÚTensorÚint)Úformats   "Úf/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/nn_modules/qlinear/__init__.pyÚ__annotate__r&   '   s   € ÷ 	#ñ 	#”!—(‘(ð 	#œsñ 	#ó    c                ó€   € V P                   ^ 8X  d   \        R4      h\        P                  ! V P                  RR 4      # )zÊReturn the number of logical Linear rows in an arbitrary-rank input.

Linear treats every dimension before the final feature dimension as a
batch dimension, so a 4D input has ``B * S * T`` matrix rows.
z-Linear input must have at least one dimensionNéÿÿÿÿ)ÚndimÚ
ValueErrorÚmathÚprodÚshape©r   s   &r%   Ú
input_rowsr0   '   s4   € ð 	‡v�v�„{ÜÐHÓIÐIÜ�9Š9�Q—W‘W˜S˜b�\Ó"Ð"r'   c                ód   € V ^8„  d   QhR\         P                  R\        R\         P                  /# )r   r   Úout_featuresr   r    )r$   s   "r%   r&   r&   3   s)   € ÷ ñ œ1Ÿ8™8ð ´3ð ¼1¿8¹8ñ r'   c                ó   € V P                   RR V3,           pV P                  '       d*   V P                  RRR7      P                  V4      ^ ,          # \        P
                  ! VV P                  V P                  R7      # )zEAllocate an empty Linear output while preserving rank, dtype, device.NT)ÚdimÚkeepdim©ÚdtypeÚdevicer)   )r.   Úrequires_gradÚsumÚexpandr!   Úemptyr7   r8   )r   r2   r.   s   && r%   Úempty_linear_outputr=   3   sj   € ð �G‰G�C�RˆL˜L˜?Õ*€EØ‡‡€ð �u‰u˜ TˆuÓ*×1Ñ1°%Ó8¸1Õ<Ð<Ü�7Š7ØØ�g‰gØ�x‰xôð r'   c                ó¤   € V ^8„  d   QhR\         \        P                  ,          R\        P                  R\         \        P                  ,          /# )r   Úshiftsr8   r   )r#   r!   r"   r8   )r$   s   "r%   r&   r&   F   s5   € ÷ ñ ¤¤a§h¡h¥ð ¼¿¹ð ÄSÌ1Ï8É8Å^ñ r'   c                 óø   € \         P                  ! V 4      '       dN   V P                  V\         P                  R 7      p\         P                  ! \         P
                  ! V^4      V4      # ^\        V 4      ,          # )©r8   r7   )r!   Ú	is_tensorÚtoÚint64ÚpowÚ	full_liker#   )r?   r8   Ú
shifts_i64s   && r%   Ú_torch_shift_factorrH   F   sT   € Ü‡{‚{�6×Òð —Y‘Y f´A·G±G�YÓ<ˆ
Ü�uŠu”Q—[’[ ¨QÓ/°Ó<Ð<Ø”�F“ÕÐr'   c                óŽ   € V ^8„  d   QhR\         P                  R\        \         P                  ,          R\         P                  /# ©r   Úvaluesr?   r   r    )r$   s   "r%   r&   r&   O   s1   € ÷ $ñ $œqŸx™xð $´´q·x±xµð $ÄAÇHÁHñ $r'   c                 ó(  € V P                   P                  R 8w  d   \        P                  ! W4      # \        P                  ! V P                  \        P                  4      \        WP                   4      4      pVP                  V P                  4      # ©Únpu)	r8   Útyper!   Úbitwise_right_shiftÚfloor_dividerC   rD   rH   r7   ©rK   r?   Úshifteds   && r%   Ú_torch_right_shiftrT   O   sa   € Ø‡}�}×Ñ˜UÔ"Ü×$Ò$ VÓ4Ð4ô
 �nŠn˜VŸY™Y¤q§w¡wÓ/Ô1DÀVÏ]É]Ó1[Ó\€GØ�:‰:�f—l‘lÓ#Ð#r'   c                óŽ   € V ^8„  d   QhR\         P                  R\        \         P                  ,          R\         P                  /# rJ   r    )r$   s   "r%   r&   r&   Z   s1   € ÷ $ñ $œaŸh™hð $´´a·h±hµð $Ä1Ç8Á8ñ $r'   c                 ó  € V P                   P                  R 8w  d   \        P                  ! W4      # V P	                  \        P
                  4      \        WP                   4      ,          pVP	                  V P                  4      # rM   )r8   rO   r!   Úbitwise_left_shiftrC   rD   rH   r7   rR   s   && r%   Ú_torch_left_shiftrX   Z   s[   € Ø‡}�}×Ñ˜UÔ"Ü×#Ò# FÓ3Ð3ð �i‰iœŸ™Ó Ô#6°v¿}¹}Ó#MÕM€GØ�:‰:�f—l‘lÓ#Ð#r'   c                   ó�  a a€ ] tR t^dt oRtRtRtRtRtRt	Rt
RtRtRtRtRtRtRtRtRtRtRtRtR8V3R lV 3R llltV3R lR ltV3R lR	 ltV3R
 lR ltV3R lR ltV3R lR ltR tR tR tR t R t!]"]#! RR7      V3R lR l4       4       t$]"V3R lR l4       t%]"R9V3R lR ll4       t&]"R 4       t']"RRRRR RR!RR"R/V3R# lR$ ll4       t(]"V3R% lR& l4       t)]"R'RR(R/V3R) lR* ll4       t*]"R:V3R+ lR, ll4       t+]"V3R- lR. l4       t,R;V3R/ lR0 llt-R<V 3R1 llt.V3R2 lR3 lt/V3R4 lR5 lt0V3R6 lt1R7t2Vt3V ;t4# )=ÚBaseQuantLinearNTFc                ó¬   <€ V ^8„  d   QhRS[ RS[ RS[ RS[RS[RS[RS[RS[R	S[ R
S[ RS[S[P                  ,          RS[S[S[S[	3,          ,          /# )r   ÚbitsÚin_featuresr2   ÚbiasÚbackendÚadapterÚnameÚregister_buffersÚregister_buffers_in_featuresÚregister_buffers_out_featuresr7   Úvalidate_kwargs)
r#   Úboolr   r   Ústrr   r!   r7   r   r   )r$   Ú__classdict__s   "€r%   r&   ÚBaseQuantLinear.__annotate__�   s¥   ø€ ÷ Nñ NÙðNá!ðNñ  #ðNñ ð	Nñ
 "ðNñ "ðNñ ðNñ $(ðNñ 03ðNñ 14ðNñ !¡§¡Õ)ðNñ #+©4±±S°­>Õ":ñNr'   c           
     ó†  <€ \         SV `  4        Vf0   V P                  P                   RV P                  P                   2pWpn        W n        W0n        Wn        WPn	        \        P                  ! V4      V n        RV n        V P                  V n        RV n        R V n        RV n        RV n        RV n        ^V n        R V n        RVRVRVRVRV/pV'       d   VP/                  V4       V P0                  ! R/ VB w  ppV'       d   VhV'       dQ   V'       dI   V
f   V P                  MT
pV P3                  R\4        P6                  ! V\4        P8                  R	7      4       VeÝ   VP:                  \<        9   dÆ   \?        R
V P                  P                  4        RV P                   RV P
                   24       V P3                  R\4        P6                  ! W&P@                  3\4        P8                  R	7      4       V P3                  R\4        P6                  ! VP@                  V3\4        P8                  R	7      4       R # R # R # )NÚ.Fr\   r]   r2   r7   r`   r^   ©r7   z$Adapter (merged weights) lazy init: z: z
, module: Úlora_AÚlora_Br)   © )!ÚsuperÚ__init__Ú	__class__Ú
__module__Ú__qualname__ra   r]   r2   r\   r_   ÚcopyÚdeepcopyr`   Ú	optimizedÚAUTOTUNEÚautotune_enabledÚ_autotune_completeÚ_autotune_resultÚonline_full_hadÚonline_partial_hadÚhad_dimÚKÚhad_KÚupdateÚvalidateÚregister_bufferr!   ÚzerosÚfloat16Úpathr   ÚprintÚrank)Úselfr\   r]   r2   r^   r_   r`   ra   rb   rc   rd   r7   re   ÚkwargsÚvalidate_argsÚ_ÚerrÚ
bias_shaperr   s   &&&&&&&&&&&&&,    €r%   rq   ÚBaseQuantLinear.__init__�   sû  ø€ ô 	‰ÑÔØŠ<Ø—n‘n×/Ñ/Ð0°°$·.±.×2MÑ2MÐ1NÐOˆDØŒ	Ø&ÔØ(ÔØŒ	ØŒô Ÿš gÓ.ˆŒàˆŒØ $§¡ˆÔØ"'ˆÔØ%)ˆÔð  %ˆÔØ"'ˆÔØˆŒØˆŒð ˆŒ
ð �DØ˜;Ø˜LØ�UØ�wð
ˆ÷ Ø× Ñ  Ô1à—’ñ 
Øñ
‰ˆˆ3÷ ØˆI÷ §Ø.KÒ.S˜×*Ò*ÐYvˆJØ× Ñ  ¬¯ª°Ä1Ç9Á9Ô)MÔNð ÒØ�|‰|Ô7Ô7ÜÐ<¸T¿\¹\×=NÑ=NÓ=PÐ<QÐQSÐTX×T`ÑT`ÐSaÐakÐlp×luÑluÐkvÐwÔxð ×$Ñ$ØÜ—G’G˜[¯,©,Ð7¼q¿y¹yÔIôð
 ×$Ñ$ØÜ—G’G˜WŸ\™\¨<Ð8ÄÇ	Á	ÔJöñ
 ñ r'   c                ó    <€ V ^8„  d   QhRS[ /# ©r   r   ©r   )r$   rh   s   "€r%   r&   ri   ß   s   ø€ ÷ ñ ™dñ r'   c                ó@  € . p\        4       pV P                  V P                  3 Fu  pVP                  4        F^  pVe!   \	        V\
        P                  4      '       g   K)  \        V4      pWR9   d   K<  VP                  V4       VP                  V4       K`  	  Kw  	  V# ©N)
ÚsetÚ_parametersÚ_buffersrK   Ú
isinstancer!   r"   ÚidÚaddÚappend)r‰   ÚtensorsÚseenÚstateÚtensorÚ	tensor_ids   &     r%   Úlist_buffersÚBaseQuantLinear.list_buffersß   s€   € ØˆÜ‹uˆØ×&Ñ&¨¯©Ó6ˆEØŸ,™,ž.�Ø’>¬°F¼A¿H¹H×)EÒ)EÙÜ˜v›J�	ØÔ$ÙØ—‘˜Ô#Ø—‘˜vÖ&ó )ñ 7ð ˆr'   c                óD   <€ V ^8„  d   QhRS[ S[P                  ,          /# r‘   )r   r!   r8   )r$   rh   s   "€r%   r&   ri   í   s   ø€ ÷ 6ñ 6¡©¯©Õ 2ñ 6r'   c                óâ   € R F=  p\        WR4      p\        V\        P                  4      '       g   K1  VP                  u # 	  V P                  4       pV'       d   V^ ,          P                  # R# )ÚqweightN)r¥   ÚweightÚBÚqzerosÚscalesÚg_idxr^   )Úgetattrr˜   r!   r"   r8   r¡   )r‰   ra   rŸ   Úbufferss   &   r%   Úruntime_deviceÚBaseQuantLinear.runtime_deviceí   s[   € ãSˆDÜ˜T¨Ó.ˆFÜ˜&¤!§(¡(×+Ô+Ø—}‘}Ò$ñ Tð
 ×#Ñ#Ó%ˆß$+ˆw�q�z× Ñ Ð5°Ð5r'   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# r   r    )r$   rh   s   "€r%   r&   ri   ÷   s   ø€ ÷ ñ ™AŸH™Hð ©ñ r'   c                ó   € \        V4      # r”   )r0   )r‰   r   s   &&r%   r0   ÚBaseQuantLinear.input_rows÷   s   € Ü˜!‹}Ðr'   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r   ©r!   r"   )r$   rh   s   "€r%   r&   ri   ú   s#   ø€ ÷ ñ ¡Q§X¡Xð ±!·(±(ñ r'   c                ó„   € \        WP                  4      pV P                  e   V P                  P                  WR7      pV# )a  Return an empty output for any-rank Linear input.

Applying an adapter is intentional: it preserves the same composition
semantics as the non-empty path while still avoiding a native M=0
kernel launch. Bias addition has no observable effect for zero elements.
)r   Úout)r=   r2   r`   Úapply)r‰   r   rµ   s   && r%   r=   Ú#BaseQuantLinear.empty_linear_outputú   s:   € ô " !×%6Ñ%6Ó7ˆØ�<‰<Ò#Ø—,‘,×$Ñ$ qÐ$Ó2ˆCØˆ
r'   c                ó    <€ V ^8„  d   QhRS[ /# r‘   ©r#   )r$   rh   s   "€r%   r&   ri     s   ø€ ÷ ñ ¡3ñ r'   c                ó   € R# ©é   r)   ro   ©r‰   s   &r%   Úsmooth_block_sizeÚ!BaseQuantLinear.smooth_block_size  s   € Øˆ	r'   c           
     ó0  € V P                  4        V P                  ex   V P                  4       pVf#   \        V P                  P
                   R24      hV P                  P                  V P                  V\        V RR 4      \        V RR 4      R7       R # R # )Nz0 cannot initialize adapters without any tensors.rm   rn   )Ú
weight_keyr8   rm   rn   )	Úclear_autotuner`   r­   ÚRuntimeErrorrr   Ú__name__Ú	post_initra   r«   )r‰   r8   s   & r%   rÅ   ÚBaseQuantLinear.post_init  s‡   € Ø×ÑÔØ�<‰<Ò#Ø×(Ñ(Ó*ˆFØŠ~Ü" d§n¡n×&=Ñ&=Ð%>Ð>nÐ#oÓpÐpØ�L‰L×"Ñ"ØŸ9™9ØÜ˜t X¨tÓ4Ü˜t X¨tÓ4ð	 #ö 6ñ	 $r'   c                ó"   € R V n         RV n        R# )FN)rz   r{   r½   s   &r%   rÂ   ÚBaseQuantLinear.clear_autotune  s   € Ø"'ˆÔØ $ˆÖr'   c                ó   € V P                   # r”   )r{   r½   s   &r%   Úget_autotune_resultÚ#BaseQuantLinear.get_autotune_result  s   € Ø×$Ñ$Ð$r'   c                óF   € \        V P                  P                   R 24      h)z" does not implement `_autotune()`.)ÚNotImplementedErrorrr   rÄ   ©r‰   ÚargsrŠ   s   &*,r%   Ú	_autotuneÚBaseQuantLinear._autotune  s    € Ü! T§^¡^×%<Ñ%<Ð$=Ð=_Ð"`ÓaÐar'   c                óò   € V P                   '       d   V P                  '       d   V P                  # V P                  '       d   V P                  # V P                  ! V/ VB V n        R V n        V P                  # ©T)ry   Útrainingr{   rz   rÐ   rÎ   s   &*,r%   Úmaybe_autotuneÚBaseQuantLinear.maybe_autotune!  sd   € Ø×$×$Ð$¨¯¯¨Ø×(Ñ(Ð(à×"×"Ð"Ø×(Ñ(Ð(à $§¢°Ð ?¸Ñ ?ˆÔØ"&ˆÔØ×$Ñ$Ð$r'   i   )Úmaxsizec                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# r‘   ©r	   rf   r   Ú	Exception)r$   rh   s   "€r%   r&   ri   .  s#   ø€ ÷ ñ ¡U©4±¹)Õ1DÐ+DÕ%Eñ r'   c                ól   € V P                  4       w  rV'       g   Ve   VP                  R 4       RV3# R# )NF©TN)Úvalidate_onceÚwith_traceback)ÚclsÚokÚexps   &  r%   Úcached_validate_onceÚ$BaseQuantLinear.cached_validate_once,  s9   € ð ×#Ñ#Ó%‰ˆç�c’oØ×Ñ˜tÔ$Ø˜#�:ÐàÐr'   c                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# r‘   rÙ   )r$   rh   s   "€r%   r&   ri   8  s#   ø€ ÷ ñ ™e¡D©(±9Õ*=Ð$=Õ>ñ r'   c                ó   € R# )TrÜ   ro   )rß   s   &r%   rÝ   ÚBaseQuantLinear.validate_once7  s   € àÐr'   c                ó*  <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[ RS[ RS[P                  RS[S[P                  ,          R	S[S[,          R
S[S[S[P                  ,          ,          RS[S[,          RS[S[,          RS[	S[S[S[
,          3,          /# )r   r\   Ú
group_sizeÚdesc_actÚsymr]   r2   Ú
pack_dtyper7   Údynamicr8   Ú	trainabler`   r   ©r#   rf   r!   r7   r   Údictr   r8   r   r	   rÚ   )r$   rh   s   "€r%   r&   ri   =  sÖ   ø€ ÷ pñ páðpñ ðpñ ð	pñ
 ðpñ ðpñ ðpñ —w‘wðpñ ™AŸG™GÕ$ðpñ ™T•Nðpñ ™F¡Q§X¡XÕ-Õ.ðpñ ™t•nðpñ ™WÕ%ðpñ 
Ù‰h‘yÕ!Ð!õ
#ñpr'   c                ón   € V P                  4       w  rÞV'       g   R V3# V P                  WW4WVVW‰W«VR7      # )F)r\   rè   ré   rê   r]   r2   rë   r7   rì   r8   rí   r`   )râ   Ú	_validate)rß   r\   rè   ré   rê   r]   r2   rë   r7   rì   r8   rí   r`   Úok_onceÚexp_onces   &&&&&&&&&&&&&  r%   r‚   ÚBaseQuantLinear.validate;  sL   € ð$  ×4Ñ4Ó6ÑˆßØ˜(�?Ð"à�}‰} $ÈØ)4Ð\fØ#(À&Ðgnð ó pð 	pr'   c           	     ó~  € \         P                  P                  4        UUu. uF:  w  rVP                  R4      '       g   K  \	        V4      '       d   K1  Ve   K7  W3NK<  	  pppV P                  P                  4        UUu. uF4  w  rVP                  R4      '       g   K  \	        V4      '       d   K1  W3NK6  	  pppVP                  R R7       VP                  R R7       V UUu0 uF  w  rVkK	  	  pppV UUu0 uF  w  rVkK	  	  pppWV,
          pV'       d3   \        V P                   RRP                  \        V4      4       24      hV FN  w  rVP                  R4      '       d   \	        V4      '       d   K/  Ve   K5  \        V P                   RV R	24      h	  R# u uppi u uppi u uppi u uppi )
zn
Validate that SUPPORTS parameters are not None or empty lists, raising an exception if the validation fails.
ÚSUPPORTSNc                 ó   € V ^ ,          # ©r   ro   r/   s   &r%   Ú<lambda>Ú8BaseQuantLinear.verify_supports_params.<locals>.<lambda>d  s   € °1°Q¶4r'   )Úkeyc                 ó   € V ^ ,          # rø   ro   r/   s   &r%   rù   rú   e  s   € °A°a¶Dr'   z. these SUPPORTS variables are not overridden: ú, rk   ú cannot be None.)
rZ   Ú__dict__ÚitemsÚ
startswithÚcallableÚsortr+   rÄ   ÚjoinÚsorted)rß   ra   ÚvalueÚbase_supports_variablesÚchild_supports_variablesÚbase_variable_namesÚchild_variable_namesÚmissing_variabless   &       r%   Úverify_supports_paramsÚ&BaseQuantLinear.verify_supports_paramsU  s˜  € ô .=×-EÑ-E×-KÑ-KÔ-Mô#
Ù-M™k˜dØ�‰˜z×*ô Ü3;¸E·?ô ØGLô ˆT‹MÑ-Mð 	 ñ #
ð
 .1¯\©\×-?Ñ-?Ô-Aô$
Ù-A™k˜dØ�‰˜z×*ô Ü3;¸E·?ô ˆT‹MÑ-Að 	!ñ $
ð
 	 ×$Ñ$©Ð$Ô8Ø ×%Ñ%©.Ð%Ô9á7NÔOÑ7N©¨›tÑ7NÐÑOÙ8PÔQÑ8P©¨£Ñ8PÐÑQà/ÕFÐçÜØ—<‘<�.Ð NÈtÏyÉyÔY_Ð`qÓYrÓOsÐNtÐuówð wó 4‰KˆDØ—?‘? :×.Ò.´(¸5·/²/ÙØŒ}Ü  C§L¡L >°°4°&Ð8HÐ!IÓJÐJó	 4ùó+#
ùó$
ùó PùÛQs5   ¢F'ÁF'ÁF'ÁF'ÂF-Â"F-Â5F-Ã*F3Ã?F9rë   r7   r8   rí   r`   c                óð   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[S[ P                  ,          ,          RS[S[,          RS[S[,          RS[S[S[S[,          3,          /# )r   rë   r7   r8   rí   r`   r   )	r!   r7   r   r   r8   rf   r   r	   rÚ   )r$   rh   s   "€r%   r&   ri   z  s|   ø€ ÷ %ñ %ñ —7‘7ð%ñ ™Ÿ™Õ ð	%ñ
 ™¡§¡Õ)Õ*ð%ñ ™4•.ð%ñ ™Õ!ð%ñ 
‰t‘X™iÕ(Ð(Õ	)ñ%r'   c               ó  € V P                  4        Ve0   VP                  V P                  9  d   V  RV 2pR\        V4      3# WP                  9  d   V  RV 2pR\        V4      3# Ve3   W P
                  9  d#   V  RV P
                   RV R2pR\        V4      3# \        P                  V P                  9  dB   \        P                  V P                  9  d#   V  R\        P                   2pR\        V4      3# \        P                  V P                  9  d   Ve    V P                  V4       V'       d%   V P                  '       g   V  R	2pR\        V4      3# R
#   \         d    T  RT 2pR\        T4      3u # i ; i)Nz does not support adapter: Fz  does not support `pack_dtype`: ú only supports `z` dtype: actual dtype = `Ú`z does not support platform: z does not support device: z does not support training.rÜ   )r  rr   ÚSUPPORTS_ADAPTERSrÍ   ÚSUPPORTS_PACK_DTYPESÚSUPPORTS_DTYPESr   ÚALLÚSUPPORTS_PLATFORMÚsysÚplatformr   ÚSUPPORTS_DEVICESÚvalidate_deviceÚSUPPORTS_TRAINING)rß   rë   r7   r8   rí   r`   r�   Úes   &$$$$$  r%   Ú_validate_sharedÚ BaseQuantLinear._validate_sharedy  s™  € ð 	×"Ñ"Ô$àÒ 7×#4Ñ#4¸C×<QÑ<QÔ#QØ�EÐ4°W°IÐ>ˆCØÔ-¨cÓ2Ð2Ð2à×5Ñ5Ô5Ø�EÐ9¸*¸ÐFˆCØÔ-¨cÓ2Ð2Ð2àÒ ×.AÑ.AÔ!AØ�EÐ)¨#×*=Ñ*=Ð)>Ð>WÐX]ÐW^Ð^_Ð`ˆCØÔ-¨cÓ2Ð2Ð2ä�<‰<˜s×4Ñ4Ô4¼¿¹ÈS×MbÑMbÔ9bØ�EÐ5´c·l±l°^ÐDˆCØÔ-¨cÓ2Ð2Ð2ä�:‰:˜S×1Ñ1Ô1°fÒ6Hð5Ø×#Ñ# FÔ+÷
 ˜S×2×2Ð2Ø�EÐ4Ð5ˆCØÔ-¨cÓ2Ð2Ð2ØÐøô 'ô 5Ø�eÐ5°f°XÐ>�ØÔ1°!Ó4Ð4Ò4ð5ús   Ä"E! Å!FÆFc          	      ób   <€ V ^8„  d   QhRS[ RS[S[,          RS[S[S[S[,          3,          /# )r   r\   rì   r   )r#   r   rï   r	   rf   rÚ   )r$   rh   s   "€r%   r&   ri   ¢  s>   ø€ ÷ ñ ñ ðñ ™$•ð	ñ
 
‰t‘X™iÕ(Ð(Õ	)ñr'   c          	     óú  € Vf   R	# / pVP                  4        F  w  rEVP                  RV4      W4&   K  	  \        V P                  4      ^8X  dV   VP                  4        UUu/ uF  w  rgWq8w  g   K  WgbK  	  pppV'       d    V  RV P                   R2p	R\	        V	4      3#  R	# VP                  4        F<  w  rgWpP                  9  g   K  V  RV P                   RV RV R2p	R\	        V	4      3u # 	  R	# u uppi )
Nr\   z+ not supported dynamic_bits, only support `z` bitsFr  z` bits: actual dynamic_bits = `ú` for layer `r  rÜ   )r   ÚgetÚlenÚSUPPORTS_BITSrÍ   )
rß   r\   rì   Údynamic_bitsÚpatternÚpattern_dictÚlayerÚdynamic_bits_valueÚunsupported_dynamic_bitsr�   s
   &$$       r%   Ú_validate_dynamic_bitsÚ&BaseQuantLinear._validate_dynamic_bits¡  sI  € ð Š?ØÐàˆØ%,§]¡]¦_Ñ!ˆGØ$0×$4Ñ$4°V¸TÓ$BˆLÓ!ñ &5äˆs× Ñ Ó! QÔ&ð 2>×1CÑ1CÔ1Eô(á1EÑ-�EØ%Ñ-ô *�Ò)Ù1Eð %ñ (÷
 (Ø˜ÐHÈ×IZÑIZÐH[Ð[aÐb�ØÔ1°#Ó6Ð6Ð6ð (ð Ðð	 .:×-?Ñ-?Ö-AÑ)�Ø%×->Ñ->Ö>Ø ˜EÐ!1°#×2CÑ2CÐ1DÐDcÐdvÐcwð  xEð  FKð  ELð  LMð  N�CØ Ô"5°cÓ":Ð:Ò:ñ .Bð Ðùó(s   Á#
C7Á2C7r]   r2   c          	      óR   <€ V ^8„  d   QhRS[ RS[ RS[S[S[S[,          3,          /# )r   r]   r2   r   )r#   r	   rf   r   rÚ   )r$   rh   s   "€r%   r&   ri   ¿  s:   ø€ ÷ ñ ñ ðñ ð	ñ
 
‰t‘X™iÕ(Ð(Õ	)ñr'   c               óú  aa€ Sey   \         ;QJ d)    V3R lV P                   4       F  '       d   K   RM	  RM! V3R lV P                   4       4      pV'       g#   V  RS RV P                   R2pR\        V4      3# Sey   \         ;QJ d)    V3R lV P                   4       F  '       d   K   RM	  RM! V3R lV P                   4       4      pV'       g#   V  RS RV P                   R2pR\        V4      3# R	# )
Nc              3   ó<   <"  € T F  pSV,          ^ 8H  x € K  	  R# 5i©r   Nro   )Ú.0Úin_fear]   s   & €r%   Ú	<genexpr>Ú>BaseQuantLinear._validate_shape_constraints.<locals>.<genexpr>Æ  s   øé € ÐiÑCh¸˜;¨Õ/°1Ö4ÓChùó   ƒFTú: `in_features`: z must be divisible by rk   c              3   ó<   <"  € T F  pSV,          ^ 8H  x € K  	  R# 5ir0  ro   )r1  Úout_fear2   s   & €r%   r3  r4  Ë  s   øé € ÐmÑFl¸7˜<¨'Õ1°QÖ6ÓFlùr5  z: `out_features`: rÜ   )ÚallÚ!SUPPORTS_IN_FEATURES_DIVISIBLE_BYrÍ   Ú"SUPPORTS_OUT_FEATURES_DIVISIBLE_BY)rß   r]   r2   r‚   r�   s   &dd  r%   Ú_validate_shape_constraintsÚ+BaseQuantLinear._validate_shape_constraints¾  sÝ   ù€ ð Ò"ß“sÔiÀ3×ChÒChÓi—s—s’sÔiÀ3×ChÒChÓiÓiˆHßØ˜Ð.¨{¨mÐ;QÐRU×RwÑRwÐQxÐxyÐz�ØÔ1°#Ó6Ð6Ð6ØÒ#ß“sÔmÀc×FlÒFlÓm—s—s’sÔmÀc×FlÒFlÓmÓmˆHßØ˜Ð/°¨~Ð=SÐTW×TzÑTzÐS{Ð{|Ð}�ØÔ1°#Ó6Ð6Ð6ØÐr'   c                ó*  <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[P                  RS[S[P                  ,          RS[S[,          RS[ R	S[ R
S[S[S[P                  ,          ,          RS[S[,          RS[S[,          RS[	S[S[S[
,          3,          /# ©r   r\   rè   ré   rê   rë   r7   rì   r]   r2   r8   rí   r`   r   rî   )r$   rh   s   "€r%   r&   ri   Ò  s  ø€ ÷ 
ñ 
™Sð 
±ð 
Á4ð 
ÑTXð 
Ñkl×krÑkrð 
ñ  AIñ  JK÷  JQñ  JQõ  ARð 
ñ  aiñ  jnõ  aoð 
ñ  BEð 
Ù"ð
Ù08¹Á!Ç(Á(Õ9JÕ0Kð
Ù\dÑeiÕ\jð
ñ zBñ  CJõ  zKð
ñ UZñ  [_ñ  aiñ  jsõ  atð  [tõ  Uuñ
r'   c                ó  € V P                  VVV
VVR 7      w  rÞV'       g   WÞ3# WP                  9  d#   V  RV P                   RV R2pR\        V4      3# V P                  WR7      w  rÞV'       g   WÞ3# V P	                  VV	R7      # ))rë   r7   r8   rí   r`   r  z` bits: actual bits = `r  F)r\   rì   )r]   r2   )r  r$  rÍ   r+  r<  )rß   r\   rè   ré   rê   rë   r7   rì   r]   r2   r8   rí   r`   rà   r�   s   &&&&&&&&&&&&&  r%   rñ   ÚBaseQuantLinear._validateÑ  s´   € ð ×&Ñ&Ø!ØØØØð 'ó 
‰ˆ÷ Ø�7ˆNà×(Ñ(Ô(Ø�EÐ)¨#×*;Ñ*;Ð)<Ð<SÐTXÐSYÐYZÐ[ˆCØÔ-¨cÓ2Ð2Ð2à×,Ñ,°$Ð,ÓH‰ˆßØ�7ˆNà×.Ñ.Ø#Ø%ð /ó 
ð 	
r'   c                óD   <€ V ^8„  d   QhRS[ S[P                  ,          /# )r   r8   )r   r!   r8   )r$   rh   s   "€r%   r&   ri   ì  s    ø€ ÷ sñ s¡V©a¯h©hÕ%6ñ sr'   c                ó  € \        V\        P                  4      '       d    \        VP                  4      pMTpW P                  9  d   \        V  R V P                   RV R24      hR#   \
         d    TP                  p LIi ; i)r  z`: actual device = `r  N)r˜   r!   r8   r   rO   r+   r  rÍ   )rß   r8   Úfamilys   && r%   r  ÚBaseQuantLinear.validate_deviceë  s„   € ô
 �fœaŸh™h×'Ò'ð%Ü §¡Ó,‘ð ˆFà×-Ñ-Ô-Ü%¨¨Ð-=¸c×>RÑ>RÐ=SÐSgÐhnÐgoÐopÐ&qÓrÐrñ .øô ô %ØŸ™’ð%ús   ¢A* Á*BÂBc                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# )r   r_   ÚmodeÚ	fullgraph)rg   rf   )r$   rh   s   "€r%   r&   ri   ý  s"   ø€ ÷ ñ ¡ð ¹ð Étñ r'   c                ó‚   € R V n         \        P                  P                  RV P                  P
                   R24       R# )TzOptimize: `z` compilation triggered.N)rw   ÚlogÚinfoÚoncerr   rÄ   )r‰   r_   rG  rH  s   &&&&r%   ÚoptimizeÚBaseQuantLinear.optimizeý  s1   € ØˆŒÜ�‰�‰˜ D§N¡N×$;Ñ$;Ð#<Ð<TÐUÔVÙr'   c                ó.  <€ V P                   pW!8X  d   V # V'       dZ   V P                  '       gG   V P                  P                   R V P                   R2p\
        P                  V4       \        V4      hM V P                  4        \        SV `)  V4      # )z: `z` switching to training mode.)rÔ   r  rr   rÄ   ra   rJ  ÚerrorrÍ   rÂ   rp   Útrain)r‰   rG  Úold_moder�   rr   s   &&  €r%   rQ  ÚBaseQuantLinear.train  s…   ø€ Ø—=‘=ˆàÔØˆK÷ Ø×)×)Ð)ØŸ™×0Ñ0Ð1°°T·Y±Y°KÐ?\Ð]�Ü—	‘	˜#”Ü)¨#Ó.Ð.àð ð 	×ÑÔÜ‰w‰}˜TÓ"Ð"r'   c                óH   <€ V ^8„  d   QhRS[ S[P                  ,          RR/# )r   r€   r   N)r   r!   r"   )r$   rh   s   "€r%   r&   ri     s$   ø€ ÷ ?ñ ?™x©¯©Õ1ð ?°dñ ?r'   c                óæ   € RV P                   9   d+   Vf   V P                   R RV n        R# WP                   R&   R# Vf
   RV n        R# \        V R4      '       d   V =V P                  RVRR7       R# )a  Assign the rotation Hadamard tensor, registering it as a buffer.

`had_K` starts life as a plain None attribute (None-valued buffers break
accelerate's offload hooks), so a real tensor must be promoted to a
registered buffer to follow module device/dtype moves.
r€   NF©Ú
persistent)r—   r€   Úhasattrrƒ   )r‰   r€   s   &&r%   Ú	set_had_KÚBaseQuantLinear.set_had_K  st   € ð �d—m‘mÔ#ØŠ}Ø—M‘M 'Ð*Ø!�”
ñ ð */—‘˜gÑ&ÙØŠ=ØˆDŒJÙÜ�4˜×!Ò!Ø�
Ø×Ñ˜W e¸ÐÖ>r'   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r   r³   )r$   rh   s   "€r%   r&   ri   .  s#   ø€ ÷ 
ñ 
©!¯(©(ð 
±q·x±xñ 
r'   c           	     óŽ   € ^RI Hp V! VV P                  V P                  V P                  V P
                  V P                  R7      # )zLApply online Hadamard transform to the input for SpinQuant/QuaRot inference.)Úapply_online_hadamard)r|   r}   r€   r   r~   )Ú$quantization.rotation.hadamard_utilsr]  r|   r}   r€   r   r~   )r‰   r   r]  s   && r%   Ú_apply_rotation_to_inputÚ(BaseQuantLinear._apply_rotation_to_input.  s<   € åQá$ØØ ×0Ñ0Ø#×6Ñ6Ø—*‘*Ø�f‰fØ—L‘Lô
ð 	
r'   c                óÜ  <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[;R&   S[ S[,          ;R&   S[S[S[3,          ;R&   S[ S[,          ;R&   S[;R&   S[;R&   S[;R&   S[;R	&   S[;R
&   S[ S[,          ;R&   S[ S[,          ;R&   S[ S[P                  ,          ;R&   S[ S[	,          ;R&   S[ S[
,          ;R&   S[ S[,          ;R&   S[ S[P                  ,          ;R&   S[;R&   S[;R&   # )r   ÚSUPPORTS_BACKENDSÚSUPPORTS_BACKEND_SELECTIONÚSUPPORTS_METHODSÚSUPPORTS_FORMATSr$  ÚSUPPORTS_SHARDSÚSUPPORTS_SHARDED_LOADr  Ú"SUPPORTS_TRAINING_USE_TORCH_KERNELÚSUPPORTS_AUTO_PADDINGr:  r;  r  r  r  r  r  ÚREQUIRES_FORMAT_V2rx   )r   r   rf   r   r   r   r#   r!   r7   r   r   r   )r$   rh   s   "€r%   r&   ri   d   s3  ø‡ ‚ Ù™G•}Ñ+ñ ñ !%Ñ+ñ	 ñ
 ™6•lÑ)ñ ñ ™6¡3˜;Õ'Ñ.ñ ñ ™•9Ñ#ñ ñ Ñ ñ ñ  Ñ&ñ ñ Ñ"ñ ñ )-Ñ4ñ ñ  Ñ&ñ ñ  (,©C¥yÑ7ñ! ñ" )-©S­	Ñ8ñ# ñ& ™qŸw™w�-Ñ.ñ' ñ( ™G•}Ñ+ñ) ñ* ™6•lÑ)ñ+ ñ, ™H•~Ñ,ñ- ñ0 ™!Ÿ'™'•]Ñ)ñ1 ñ4 Ñ$ñ5 ñ6 Ñò7 r'   )r   rz   r{   r`   ry   r_   r\   r€   r~   r]   ra   r|   r}   rw   r2   ©NFNNNN)r)   FTNNNNNNNN©é   é€   FFNNNNNNNN)ÚinductorNFrÓ   )5rÄ   rs   rt   Ú__firstlineno__rb  rc  rd  re  r$  rf  rg  r  rh  ri  r:  r;  r  r  r  r  r  rj  rx   rq   r¡   r­   r0   r=   r¾   rÅ   rÂ   rÊ   rÐ   rÕ   Úclassmethodr   râ   rÝ   r‚   r  r  r+  r<  rñ   r  rM  rQ  rY  r_  Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rr   rh   s   @@r%   rZ   rZ   d   s  ù‡ € Ø'+Ðð (,ÐØ%)ÐØ*.ÐØ#€MØ €OØ"&ÐØ"Ðð 05Ð&à"&ÐØ37Ð%Ø48Ð&à*.ÐØ'+ÐØ%)ÐØ(,Ðà%)€Oà$ÐØ€H÷Nõ N÷|ð ÷6ð 6÷ð ÷ð ÷ð ò
6ò%ò%òbò	%ð Ù�tÔ÷ó ó ðð ÷ó ðð ÷pñ pó ðpð0 ñKó ðKðD ð%ð  ð%ð "&ð	%ð
 ,0ð%ð "&ð%ð #'÷%ñ %ó ð%ðN ÷ó ðð8 ðð ðð ÷	ñ ó ðð$ ÷
ñ 
ó ð
ð2 ÷só ðs÷"ò ÷#÷,?ð ?÷*
ð 
÷U … r'   rZ   c                   ó¨   a a€ ] tR tRt oRtRtRt]V 3R l4       tRV3R lV 3R lllt	V3R lR lt
]RV3R lV 3R	 lll4       tV3R
 ltRtVtV ;t# )ÚGroupedQuantLineari<  Nc           	     ó  <€ \         S	V `  4        \        P                  P	                  4        UUu. uF:  w  rVP                  R 4      '       g   K  \        V4      '       d   K1  Ve   K7  W3NK<  	  pppV P                  P	                  4        UUu. uF4  w  rVP                  R 4      '       g   K  \        V4      '       d   K1  W3NK6  	  pppV UUu0 uF  w  rVkK	  	  pppV UUu0 uF  w  rVkK	  	  pppWg,
          pV'       d3   \        V P                   RRP                  \        V4      4       24      hV F,  w  rW9   g   K  Ve   K  \        V P                   RV R24      h	  R# u uppi u uppi u uppi u uppi )rö   Nz6 these grouped SUPPORTS variables are not overridden: rý   rk   rþ   )rp   r  rx  rÿ   r   r  r  r+   rÄ   r  r  )
rß   ra   r  Úgrouped_supports_variablesr  rŒ   Úgrouped_variable_namesr
  r  rr   s
   &        €r%   r  Ú)GroupedQuantLinear.verify_supports_paramsA  so  ø€ ä‰Ñ&Ô(ô .@×-HÑ-H×-NÑ-NÔ-Pô&
Ù-P™k˜dØ�‰˜z×*ô Ü3;¸E·?ô ØGLô ˆT‹MÑ-Pð 	#ñ &
ð
 .1¯\©\×-?Ñ-?Ô-Aô$
Ù-A™k˜dØ�‰˜z×*ô Ü3;¸E·?ô ˆT‹MÑ-Að 	!ñ $
ñ
 7QÔ!QÑ6P©7¨4£$Ñ6PÐÑ!QÙ4LÔMÑ4L©¨£Ñ4LÐÑMØ2ÕIÐçÜØ—<‘<�.Ð VØ—9‘9œVÐ$5Ó6Ó7Ð8ð:óð ó
 4‰KˆDØÖ-°%´-Ü  C§L¡L >°°4°&Ð8HÐ!IÓJÐJó 4ùó'&
ùó$
ùó
 "RùÛMs5   ±E.ÁE.Á$E.Á*E.ÂE4Â1E4ÃE4ÃE:Ã(F c                ó¬   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[ RS[ RS[RS[P                  R	S[R
S[RS[RS[RS[ RS[ RS[S[P                  ,          /# )r   r\   rè   ré   rê   r]   r2   r^   rë   r_   r`   ra   rb   rc   rd   r7   )r#   rf   r!   r7   r   r   rg   r   )r$   rh   s   "€r%   r&   ÚGroupedQuantLinear.__annotate__\  s¬   ø€ ÷ )ñ )Ùð)á ð)ñ  ð)ñ ð	)ñ
 "ð)ñ  #ð)ñ ð)ñ ŸW™Wð)ñ "ð)ñ "ð)ñ ð)ñ $(ð)ñ 03ð)ñ 14ð)ñ !¡§¡Õ)ñ)r'   c           "     ó¬   <€ \         SV `  ! RR VRVRVRVRV	RV
RVRRR	VR
VRVRRVRVRVRV//VB  VR8w  d   TMTV n        W n        W0n        W@n        R# )r\   r]   r2   r^   r_   r`   ra   rb   Frc   rd   r7   re   rè   ré   rê   rë   Nro   r)   )rp   rq   rè   Úrequested_group_sizeré   rê   )r‰   r\   rè   ré   rê   r]   r2   r^   rë   r_   r`   ra   rb   rc   rd   r7   rŠ   rr   s   &&&&&&&&&&&&&&&&,€r%   rq   ÚGroupedQuantLinear.__init__\  sÊ   ø€ ô" 	‰Òñ 	
Øð	
à#ð	
ð &ð	
ð ð		
ð
 ð	
ð ð	
ð ð	
ð #ð	
ð *Fð	
ð +Hð	
ð ð	
ð ˜jØ˜HØ�sØ˜jð	ð	
ð$ ò%	
ð* )3°bÔ(8™*¸kˆŒØ$.Ô!Ø ŒØŽr'   c                ó    <€ V ^8„  d   QhRS[ /# r‘   r¹   )r$   rh   s   "€r%   r&   r~  ‡  s   ø€ ÷ Jñ J¡3ñ Jr'   c                ó@   € V P                   R8X  d   R# V P                  # r»   )r€  rè   r½   s   &r%   r¾   Ú$GroupedQuantLinear.smooth_block_size‡  s   € Ø×.Ñ.°"Ô4ˆrÐI¸$¿/¹/ÐIr'   c                ó*  <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[P                  RS[S[P                  ,          RS[S[,          RS[ R	S[ R
S[S[S[P                  ,          ,          RS[S[,          RS[S[,          RS[	S[S[S[
,          3,          /# r?  rî   )r$   rh   s   "€r%   r&   r~  ‹  s  ø€ ÷ >ñ >™Sð >±ð >Á4ð >ÑTXð >Ñkl×krÑkrð >ñ  AIñ  JK÷  JQñ  JQõ  ARð >ñ  aiñ  jnõ  aoð >ñ  BEð >Ù"ð>Ù08¹Á!Ç(Á(Õ9JÕ0Kð>Ù\dÑeiÕ\jð>ñ zBñ  CJõ  zKð>ñ UZñ  [_ñ  aiñ  jsõ  atð  [tõ  Uuñ>r'   c                ó2  <€ \         SV `  VVVVVVVVV	V
VVR 7      w  rÞV'       g   WÞ3# W P                  9  d)   W(8w  d#   V  RV P                   RV R2pR\        V4      3# W@P                  9  d#   V  RV P                   RV R2pR\        V4      3# W0P
                  9  d#   V  RV P
                   RV R2pR\        V4      3# VEeŠ   / pVP                  4        F  w  ppVP                  RV4      VV&   K  	  VP                  4        F>  w  ppVV P                  9  g   K  V  RV P                   RV R	V R2pR\        V4      3u # 	  / pVP                  4        F  w  ppVP                  R
V4      VV&   K  	  VP                  4        F>  w  ppVV P                  9  g   K  V  RV P                   RV R	V R2pR\        V4      3u # 	  / pVP                  4        F  w  ppVP                  RV4      VV&   K  	  VP                  4        F>  w  ppVV P
                  9  g   K  V  RV P
                   RV R	V R2pR\        V4      3u # 	  Ve@   W‚,          ^ 8H  ;'       g    V P                  pV'       g   V  RV RV R2pR\        V4      3# R# )©r\   rè   ré   rê   rë   r7   rì   r]   r2   r8   rí   r`   r  z#` group_size: actual group_size = `r  Fz only supports symmetric `z` quantization: actual sym = `z` bits: actual desc_act = `rè   r!  rê   z` bits: actual sym = `ré   r6  z# must be divisible by `group_size: ú`.rÜ   )	rp   rñ   ÚSUPPORTS_GROUP_SIZErÍ   ÚSUPPORTS_SYMÚSUPPORTS_DESC_ACTr   r"  ri  )rß   r\   rè   ré   rê   rë   r7   rì   r]   r2   r8   rí   r`   rà   r�   Údynamic_group_sizer&  r'  r(  Úlayer_group_sizeÚdynamic_symÚ	layer_symÚdynamic_desc_actÚlayer_desc_actr‚   rr   s   &&&&&&&&&&&&&            €r%   rñ   ÚGroupedQuantLinear._validateŠ  sc  ø€ ô ‘'Ñ#ØØ!ØØØ!ØØØ#Ø%ØØØð $ó 
‰ˆ÷ Ø�7ˆNà×4Ñ4Ô4¸Ô9RØ�EÐ)¨#×*AÑ*AÐ)BÐBeÐfpÐeqÐqrÐsˆCØÔ-¨cÓ2Ð2Ð2à×&Ñ&Ô&Ø�EÐ3°C×4DÑ4DÐ3EÐEcÐdgÐchÐhiÐjˆCØÔ-¨cÓ2Ð2Ð2à×0Ñ0Ô0Ø�EÐ)¨#×*?Ñ*?Ð)@Ð@[Ð\dÐ[eÐefÐgˆCØÔ-¨cÓ2Ð2Ð2àÓØ!#ÐØ)0¯©®Ñ%�˜Ø.:×.>Ñ.>¸|ÈZÓ.XÐ" 7Ó+ñ *9à+=×+CÑ+CÖ+EÑ'�Ð'Ø#¨3×+BÑ+BÖBØ ˜EÐ!1°#×2IÑ2IÐ1JÐJmÐn~Ðmð  @Mð  NSð  MTð  TUð  V�CØ Ô"5°cÓ":Ð:Ò:ñ ,Fð
 ˆKØ)0¯©®Ñ%�˜Ø'3×'7Ñ'7¸¸sÓ'C�˜GÓ$ñ *9à$/×$5Ñ$5Ö$7Ñ ��yØ C×$4Ñ$4Ö4Ø ˜EÐ!1°#×2BÑ2BÐ1CÐCYÐZcÐYdÐdqÐrwÐqxÐxyÐz�CØ Ô"5°cÓ":Ð:Ò:ñ %8ð
  "ÐØ)0¯©®Ñ%�˜Ø,8×,<Ñ,<¸ZÈÓ,RÐ  Ó)ñ *9à)9×)?Ñ)?Ö)AÑ%��~Ø!¨×)>Ñ)>Ö>Ø ˜EÐ!1°#×2GÑ2GÐ1HÐHcÐdrÐcsð  tAð  BGð  AHð  HIð  J�CØ Ô"5°cÓ":Ð:Ò:ñ *Bð
 Ò"Ø"Õ/°1Ñ4×QÐQ¸×8QÑ8QˆHßØ˜Ð.¨{¨mÐ;^Ð_iÐ^jÐjlÐm�ØÔ1°#Ó6Ð6Ð6àÐr'   c                ón   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   # )r   r‰  r‹  rŠ  )r   r#   rf   )r$   rh   s   "€r%   r&   r~  <  s4   ø‡ ‚ Ù™c�Ñ)ñ á™D•zÑ(ñ ñ ‘t•*Ñ#ò r'   )ré   rè   r€  rê   )NFNNNrl  )rÄ   rs   rt   rp  r‰  r‹  rŠ  rq  r  rq   r¾   rñ   rr  rs  rt  ru  rv  s   @@r%   rx  rx  <  sb   ù‡ € Ø%)ÐØ$(ÐØ#€LàôKó ðK÷4)õ )÷VJð Jð ÷>ô >ó ð>÷_ … r'   rx  c                   ó>   a a€ ] tR tRt oV3R lV 3R lltRtVtV ;t# )ÚPackedGroupedQuantLineariÌ  c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rë   )r!   r7   )r$   rh   s   "€r%   r&   Ú%PackedGroupedQuantLinear.__annotate__Í  s   ø€ ÷ =ñ =©!¯'©'ñ =r'   c               ót  <€ \         SV `  ! VR V/VB  Wn        ^V P                  ,          ^,
          V n        V P                  \
        P                  8X  d4   ^V n        \        P                  V n	        \        P                  V n        EMV P                  \
        P                  8X  d3   ^V n        \        P                  V n	        \        P                  V n        MºV P                  \
        P                  8X  d3   ^ V n        \        P                  V n	        \        P                  V n        MiV P                  \
        P                   8X  d3   ^@V n        \        P                   V n	        \        P"                  V n        M\%        RV P                   24      hV P                  V P                  ,          V n        R# )rë   zUnsupported pack_dtype: N)rp   rq   rë   r\   Úmaxqr!   Úint8Úpack_dtype_bitsÚnpÚpack_np_dtypeÚuint8Úpack_np_math_dtypeÚint16Úuint16Úint32Úuint32rD   Úuint64r+   Úpack_factor)r‰   rë   rÏ   rŠ   rr   s   &$*,€r%   rq   Ú!PackedGroupedQuantLinear.__init__Í  s&  ø€ Ü‰Ò˜$Ð@¨:Ð@¸Ò@ð %ŒØ˜Ÿ™•N QÕ&ˆŒ	à�?‰?œaŸf™fÔ$Ø#$ˆDÔ Ü!#§¡ˆDÔÜ&(§h¡hˆDÖ#Ø�_‰_¤§¡Ô'Ø#%ˆDÔ Ü!#§¡ˆDÔÜ&(§i¡iˆDÕ#Ø�_‰_¤§¡Ô'Ø#%ˆDÔ Ü!#§¡ˆDÔÜ&(§i¡iˆDÕ#Ø�_‰_¤§¡Ô'Ø#%ˆDÔ Ü!#§¡ˆDÔÜ&(§i¡iˆDÕ#äÐ7¸¿¹Ð7HÐIÓJÐJð  ×/Ñ/°4·9±9Õ<ˆÖr'   )r™  rë   r›  r¥  r�  rŸ  ©rÄ   rs   rt   rp  rq   rs  rt  ru  rv  s   @@r%   r•  r•  Ì  s   ù‡ € ÷=÷ =ó =r'   r•  c                   óB   a a€ ] tR tRt oRV3R lV 3R llltRtVtV ;t# )ÚWeightOnlyQuantLinearië  c                óª   <€ V ^8„  d   QhRS[ RS[ RS[ RS[RS[RS[RS[RS[R	S[ R
S[ RS[S[P                  ,          RS[S[P                  ,          /# )r   r\   r]   r2   r^   r_   r`   ra   rb   rc   rd   r7   rë   )r#   rf   r   r   rg   r   r!   r7   )r$   rh   s   "€r%   r&   Ú"WeightOnlyQuantLinear.__annotate__ì  s“   ø€ ÷ 
ñ 
Ùð
á!ð
ñ  #ð
ñ ð	
ñ
 "ð
ñ "ð
ñ ð
ñ $(ð
ñ 03ð
ñ 14ð
ñ !¡§¡Õ)ð
ñ &¡a§g¡gÕ.ñ
r'   c                ó\   <€ \         SV `  ! RR VRVRVRVRVRVRVRVRV	R	V
R
VRRV//VB  R# )r\   r]   r2   r^   r_   r`   ra   rb   rc   rd   r7   re   rë   Nro   )rp   rq   )r‰   r\   r]   r2   r^   r_   r`   ra   rb   rc   rd   r7   rë   rŠ   rr   s   &&&&&&&&&&&&&,€r%   rq   ÚWeightOnlyQuantLinear.__init__ì  s—   ø€ ô 	‰Òñ 	
Øð	
à#ð	
ð &ð	
ð ð		
ð
 ð	
ð ð	
ð ð	
ð .ð	
ð *Fð	
ð +Hð	
ð ð	
ð *¨:Ð6ð	
ð ô	
r'   ro   rk  r§  rv  s   @@r%   r©  r©  ë  s   ù‡ € ÷
÷ 
õ 
r'   r©  c                   óœ   a a€ ] tR tRt oRV3R lV 3R lllt]RV3R lV 3R lll4       tRRRR/V3R	 lR
 lltRV3R lR lltRt	Vt
V ;t# )ÚGPTQQuantLineari  Nc          !      óÂ   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[ RS[ RS[RS[P                  R	S[R
S[RS[RS[RS[ RS[ RS[S[P                  ,          RS[S[,          /# )r   r\   rè   ré   rê   r]   r2   r^   rë   r_   r`   ra   rb   rc   rd   r7   r$   )	r#   rf   r!   r7   r   r   rg   r   r   )r$   rh   s   "€r%   r&   ÚGPTQQuantLinear.__annotate__  sÍ   ø€ ÷ Cñ CÙðCá ðCñ  ðCñ ð	Cñ
 "ðCñ  #ðCñ ðCñ ŸW™WðCñ "ðCñ "ðCñ ðCñ $(ðCñ 03ðCñ 14ðCñ !¡§¡Õ)ðCñ  "¡&Õ)ñ!Cr'   c           !     óÔ  <€ \         SV `  ! RR VRVRVRVRVRVRVRVRV	R	V
R
VRRRVRVRV/VB  VV n        V\        P                  8X  dF   V P
                  \        9  d1   \        R\        P                   R\         RV P
                   24      hV P
                  \        9   ;'       g+    V\        P                  8H  ;'       d    V P
                  ^8H  V n	        V P                  '       dW   RV P                  3RV P                  33 F6  w  ppV^ ,          ^ 8w  g   K  \        RV P
                   RV RV RV R2	4      h	  ^V n        V'       d   V P                  VVVR7       R# R# )r\   rè   ré   rê   r]   r2   r^   rë   r_   r`   ra   rb   Frc   rd   r7   zformat=z supports bits z, got bits=zplanar ú-bit requires `z` divisible by 32, got Ú=rk   )r^   rc   rd   Nro   )rp   rq   r$   r   ÚGPTQ_Pr\   r   r+   r   Úplanarr]   r2   rÍ   Ú_qzeros_formatÚ_register_gptq_buffers)r‰   r\   rè   ré   rê   r]   r2   r^   rë   r_   r`   ra   rb   rc   rd   r7   r$   rŠ   Údim_namer4   rr   s   &&&&&&&&&&&&&&&&&,  €r%   rq   ÚGPTQQuantLinear.__init__  sÝ  ø€ ô$ 	‰Òñ 	
Øð	
à!ð	
ð ð	
ð ð		
ð
 $ð	
ð &ð	
ð ð	
ð "ð	
ð ð	
ð ð	
ð ð	
ð #ð	
ð *Fð	
ð +Hð	
ð ð	
ð  ò!	
ð& ˆŒð ”V—]‘]Ô" t§y¡yÔ8JÔ'JÜØœ&Ÿ-™-˜¨Ô8JÐ7KÈ;ÐW[×W`ÑW`ÐVaÐbóð ð —i‘i¤;Ñ.×^Ð^°6¼V¿]¹]Ñ3J×3]Ð3]ÈtÏyÉyÐ\]É~ˆŒð �;�;ˆ;Ø#0°$×2BÑ2BÐ"CÀnÐVZ×VgÑVgÐEhÓ!i‘�˜#Ø˜•8˜q–=Ü-Ø! $§)¡) ¨O¸H¸:ÐE\Ð]eÐ\fÐfgÐhkÐglÐlmÐnóð ñ "jð  ˆÔçØ×'Ñ'ØØ-IØ.Kð (ö ñ r'   c                ó*  <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[P                  RS[S[P                  ,          RS[S[,          RS[ R	S[ R
S[S[S[P                  ,          ,          RS[S[,          RS[S[,          RS[	S[S[S[
,          3,          /# r?  rî   )r$   rh   s   "€r%   r&   r±  R  s  ø€ ÷ ñ ™Sð ±ð Á4ð ÑTXð Ñkl×krÑkrð ñ  AIñ  JK÷  JQñ  JQõ  ARð ñ  aiñ  jnõ  aoð ñ  BEð Ù"ðÙ08¹Á!Ç(Á(Õ9JÕ0KðÙ\dÑeiÕ\jðñ zBñ  CJõ  zKðñ UZñ  [_ñ  aiñ  jsõ  atð  [tõ  Uuñr'   c                óú   <€ \         SV `  VVVVVVVVV	V
VVR 7      w  rÞV'       g   WÞ3# V\        9   dG   RV3RV	33 F:  w  ppVf   K  V^ ,          ^ 8w  g   K  V  RV RV RV RV R2
pR\        V4      3u # 	  R	# )
r‡  r]   r2   z	: planar r³  z` divisible by 32: actual z = `rˆ  FrÜ   )rp   rñ   r   rÍ   )rß   r\   rè   ré   rê   rë   r7   rì   r]   r2   r8   rí   r`   rà   r�   r¹  r4   rr   s   &&&&&&&&&&&&&    €r%   rñ   ÚGPTQQuantLinear._validateQ  sÇ   ø€ ô ‘'Ñ#ØØ!ØØØ!ØØØ#Ø%ØØØð $ó 
‰ˆ÷ Ø�7ˆNð
 ”;ÔØ#0°+Ð">ÀÐQ]Ð@^Ó!_‘�˜#Ø”? s¨R¥x°1¦}Ø ˜E ¨4¨&°À¸zÐIcÐdlÐcmÐmqÐruÐqvÐvxÐy�CØ Ô"5°cÓ":Ð:Ò:ñ "`ð Ðr'   rc   rd   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )r   r^   rc   rd   r   N)rf   r#   )r$   rh   s   "€r%   r&   r±  o  s5   ø€ ÷ &ñ &ñ ð&ñ '*ð	&ñ
 (+ð&ð 
ñ&r'   c          
     óH  € Vf   V P                   MTpVf   V P                  MTpV P                  R\        P                  ! \
        P                  ! W@P                  ,          V P                  ,          4      V3V P                  R7      4       V P                  R\        P                  ! \
        P                  ! W@P                  ,          4      \
        P                  ! WPP                  ,          V P                  ,          4      3V P                  R7      4       V P                  R\        P                  ! \
        P                  ! W@P                  ,          4      V3\        P                  R7      4       T P                  R\        P                  ! \        V4       Uu. uF  qfV P                  ,          NK  	  up\        P                  R7      4       V'       d9   V P                  R\        P                  ! V\        P                  R7      4       R # R V n        R # u upi )Nr¥   rl   r¨   r©   rª   r^   )r]   r2   rƒ   r!   r„   r,   Úceilr\   r›  rë   rè   r…   rŸ   Úranger¢  r^   )r‰   r^   rc   rd   r]   r2   Úis   &$$$   r%   r¸  Ú&GPTQQuantLinear._register_gptq_bufferso  s„  € ð +GÒ*N�d×&Ò&ÐTpˆØ,IÒ,Q�t×(Ò(ÐWtˆà×ÑØÜ�GŠG”T—Y’Y˜{¯Y©YÕ6¸×9MÑ9MÕMÓNÐP\Ð]Ðei×etÑetÔuô	
ð 	×ÑØÜ�GŠGä—I’I˜k¯O©OÕ;Ó<Ü—I’I˜l¯Y©YÕ6¸×9MÑ9MÕMÓNðð —o‘oôô		
ð 	×ÑØÜ�GŠGÜ—’˜;¯©Õ8Ó9¸<ÐHÜ—i‘iôô	
ð 	×ÑØÜ�HŠH´E¸+Ô4FÓGÑ4F¨q˜4Ÿ?™?×*Ð*Ñ4FÑGÌqÏwÉwÔWô	
÷ Ø× Ñ  ¬¯ª°ÄQÇYÁYÔ)OÖPàˆDŽIùò Hs   Æ Hc                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r   r$   r   r¹   )r$   rh   s   "€r%   r&   r±  —  s   ø€ ÷ #ñ #¡3ð #±#ñ #r'   c                ój   € Vf   V P                   # VR9  d   \        R4      hWn         V P                   # )Nz5Unsupported qzero format. Only 1 and 2 are supported.)r¼   r   )r·  r+   )r‰   r$   s   &&r%   Úqzero_formatÚGPTQQuantLinear.qzero_format—  s9   € ØŠ>Ø×&Ñ&Ð&à˜ÔÜÐTÓUÐUà$ÔØ×"Ñ"Ð"r'   )r·  r^   r$   r¶  rk  rl  r”   )rÄ   rs   rt   rp  rq   rq  rñ   r¸  rÆ  rs  rt  ru  rv  s   @@r%   r¯  r¯    sY   ù‡ € ÷Cõ CðJ ÷ô ó ðð:&ð -1ð	&ð
 .2÷&ò &÷P#÷ #ò #r'   r¯  c                   óF  a a€ ] tR tRt oRR/V3R lV 3R llltR tR tV 3R ltV 3R	 ltRV3R
 lR llt	RV3R lR llt
RV3R lR llt]P                  ! 4       RV3R lR ll4       t]P                  ! 4       RRRR/V3R lR ll4       tRV3R lR lltRtVtV ;t# )ÚPackableQuantLineari¢  Úenable_wf_unsqueezeFc                ó    <€ V ^8„  d   QhRS[ /# )r   rÊ  ©rf   )r$   rh   s   "€r%   r&   Ú PackableQuantLinear.__annotate__£  s   ø€ ÷ *ñ *±4ñ *r'   c               ó4   <€ Wn         \        SV `  ! V/ VB  R # r”   )rÊ  rp   rq   )r‰   rÊ  rÏ   rŠ   rr   s   &$*,€r%   rq   ÚPackableQuantLinear.__init__£  s   ø€ Ø#6Ô Ü‰Ò˜$Ð) &Ô)r'   c                ó  € \        V R 4      '       d%   V P                  e   V P                  P                  # \        V R4      '       d%   V P                  e   V P                  P                  # \	        V P
                  P                   R24      h)rª   r¥   z7 cannot initialize wf buffers without qweight or g_idx.)rX  rª   r8   r¥   rÃ   rr   rÄ   r½   s   &r%   Ú
_wf_deviceÚPackableQuantLinear._wf_device§  sl   € Ü�4˜×!Ò! d§j¡jÒ&<Ø—:‘:×$Ñ$Ð$Ü�4˜×#Ò#¨¯©Ò(@Ø—<‘<×&Ñ&Ð&Ü˜dŸn™n×5Ñ5Ð6Ð6mÐnÓoÐor'   c           	     ó  € V P                   '       g   R # \        V RR 4      e   \        V RR 4      e   R # V P                  '       d   R # V P                  4       pV P                  R	9   do   \
        P                  ! \        \        ^ V P                  V P                  4      4      \
        P                  R7      P                  ^ 4      P                  VR7      pM‘V P                  ^8X  dR   \
        P                  ! . R
O. RO. RO.\
        P                  R7      P                  ^^^4      P                  VR7      pM/\        V P                  P                    RV P                   R24      hVP                  ^ 4      P                  VR7      pVP                  R4      P                  VR7      pRV P"                  9  d   V P%                  RVRR7       MW0n        RV P"                  9  d   V P%                  RVRR7       R # W@n        R # )NÚwf_unsqueeze_zeroÚwf_unsqueeze_neg_onerl   ©r8   z( does not support wf unpack buffers for z-bit weights.FrV  ©r   rm  é   )r   é   é   é	   é   é   é   é   é   é   é   r   )r   r¼   rm  é   é
   é   é   é   é   é   é   é   )r   r   é   rØ  é   é   é   é   é   é   é   r   r)   )rÊ  r«   r¶  rÑ  r\   r!   rŸ   ÚlistrÁ  r›  r¢  Ú	unsqueezerC   ÚreshaperÍ   rr   rÄ   r—   rƒ   rÔ  rÕ  )r‰   r8   ÚwfÚwf_zeroÚ
wf_neg_ones   &    r%   Ú_init_wf_unsqueeze_buffersÚ.PackableQuantLinear._init_wf_unsqueeze_buffers®  s½  € Ø×'×'Ð'Ùô �DÐ-¨tÓ4Ò@Ü˜Ð4°dÓ;ÒGáà�;�;ˆ;ñ à—‘Ó"ˆà�9‰9˜	Ô!Ü—’œ$œu Q¨×(<Ñ(<¸d¿i¹iÓHÓIÔQR×QXÑQXÔY×cÑcÐdeÓf×iÑiØð jó ‰Bà�Y‰Y˜!Œ^Ü—’â?Ú@Ú?ðô
 —g‘gô÷ ‰g�a˜˜BÓ§¡¨& Ó 1ñ ô &¨¯©×)@Ñ)@Ð(AÐAiÐjn×jsÑjsÐitð  uBð  'Có  Dð  Dà—,‘,˜q“/×$Ñ$¨FÐ$Ó3ˆØ—\‘\ "Ó%×(Ñ(°Ð(Ó7ˆ
à d§m¡mÔ3Ø× Ñ Ð!4°gÈ%Ð ÕPà%,Ô"à!¨¯©Ô6Ø× Ñ Ð!7¸ÐPUÐ ÖVà(2Ö%r'   c                óH   <€ V P                  4        \        SV `  ! R/ VB  R # )Nro   )rú  rp   rÅ   )r‰   rŠ   rr   s   &,€r%   rÅ   ÚPackableQuantLinear.post_initÛ  s   ø€ Ø×'Ñ'Ô)Ü‰ÒÑ#˜FÔ#r'   c                ó  <€ \         SV `  4       p\        V R 4      '       d*   V P                  e   VP	                  V P                  4       \        V R4      '       d*   V P
                  e   VP	                  V P
                  4       V# )rÔ  rÕ  )rp   r¡   rX  rÔ  r›   rÕ  ©r‰   Úbufrr   s   & €r%   r¡   Ú PackableQuantLinear.list_buffersß  sk   ø€ Ü‰gÑ"Ó$ˆÜ�4Ð,×-Ò-°$×2HÑ2HÒ2TØ�J‰J�t×-Ñ-Ô.Ü�4Ð/×0Ò0°T×5NÑ5NÒ5ZØ�J‰J�t×0Ñ0Ô1Øˆ
r'   c                ó    <€ V ^8„  d   QhRS[ /# )r   Únum_itrr¹   )r$   rh   s   "€r%   r&   rÍ  ç  s   ø€ ÷ 5Kñ 5K©ñ 5Kr'   c           	     ó^
  € V P                   '       dw   \        V P                  V P                  4      P	                  V P
                  P                  4      p\        V P                  V P                  4      pV P                  W2VR 7      # V P                  4        \        V RR4      p\        V RR4      pVe   Vf#   \        V P                  P                   R24      hV P                  R9   Edg   \        \         P"                  ! V P                  ^4      P%                  RRV P&                  4      V P(                  4      P+                  V P,                  4      p\         P.                  ! W P0                  4      P	                  V P                  P                  ^ ,          R4      pVRRV P
                  P                  ^,          13,          p\         P.                  ! \        \         P"                  ! V P                  ^4      P%                  RV P&                  R4      V P2                  4      P+                  V P,                  4      V P0                  4      pEMzV P                  ^8X  Edi   V P                  P	                  V P                  P                  ^ ,          V P                  P                  ^,          ^,          ^^4      P%                  RRR^4      p\        W P(                  4      pVR	,          ^,          \5        VR
,          ^4      ^,          ,          VR	&   VR,          ^,          \5        VR,          ^4      ^,          ,          VR&   V^,          p\         P6                  ! VR,          VR,          VR,          .^R7      P	                  V P
                  P                  4      pV P                  P	                  V P                  P                  ^ ,          ^,          ^^V P                  P                  ^,          4      P%                  RR^R4      p\        W0P2                  4      ^,          pVR,          ^,          \5        VR,          ^4      ^,          ,          VR&   VR,          ^,          \5        VR,          ^4      ^,          ,          VR&   V^,          p\         P6                  ! VR,          VR,          VR,          .^R7      pXP	                  VP                  ^ ,          VP                  ^,          ,          VP                  ^,          4      pV P                  VXVR 7      # ))r  rÔ  NrÕ  zb requires wf unpack buffers for dequantization. Enable `enable_wf_unsqueeze` and call post_init().ºNNN©r4   r×  r)   )r  r  r   rä  )r  r  r¼   r   )r  r  r¼   rí  )r  r  r   r   )r  r  r   ºNrí  N)r  r  r¼   ºr¼   rÜ  N)r  r  r   ºr¼   rí  N)r  r   rä  )r  r¼   r   )r  r¼   rí  )r  r   r   )r  r   r  )r  r¼   r  )r  r   r	  )r¶  r   r¨   r\   rö  r©   r.   r   r¥   Ú_dequantize_from_codesrú  r«   rÃ   rr   rÄ   rT   r!   rõ  r;   r¥  rÔ  rC   Údequant_dtypeÚbitwise_andr™  rÕ  rX   Úcat)r‰   r  r„   r¦   rø  rù  s   &&    r%   Údequantize_weightÚ%PackableQuantLinear.dequantize_weightç  s%  € Ø�;�;ˆ;Ü& t§{¡{°D·I±IÓ>×FÑFÀtÇ{Á{×GXÑGXÓYˆEÜ'¨¯©°d·i±iÓ@ˆFØ×.Ñ.¨vÀgÐ.ÓNÐNà×'Ñ'Ô)Ü˜$Ð 3°TÓ:ˆÜ˜TÐ#9¸4Ó@ˆ
ØŠ?˜jÒ0ÜØ—>‘>×*Ñ*Ð+ð ,Eð Eóð ð
 �9‰9˜	Õ!Ü&Ü—’˜DŸK™K¨Ó+×2Ñ2°2°r¸4×;KÑ;KÓLØ×&Ñ&ó÷ ‰b�×#Ñ#Ó$ð ô —M’M %¯©Ó3×;Ñ;¸D¿K¹K×<MÑ<MÈaÕ<PÐRTÓUˆEØ˜!Ð2˜dŸk™k×/Ñ/°Õ2Ð2Ð2Õ3ˆEä—]’]Ü"Ü—K’K §¡¨aÓ0×7Ñ7¸¸D×<LÑ<LÈbÓQØ×-Ñ-ó÷ ‘"�T×'Ñ'Ó(Ø—	‘	óŠFð �Y‰Y˜!�^Ø—K‘K×'Ñ'¨¯©×(9Ñ(9¸!Õ(<¸d¿k¹k×>OÑ>OÐPQÕ>RÐVWÕ>WÐYZÐ\]Ó^×eÑeØ�B˜˜BóˆEô ' u×.DÑ.DÓEˆEØ"'¨Õ"4°sÕ":Ô?PÐQVÐWaÕQbÐdeÓ?fÐilÕ?lÕ!mˆE�+ÑØ"'¨Õ"4°sÕ":Ô?PÐQVÐWaÕQbÐdeÓ?fÐilÕ?lÕ!mˆE�+ÑØ˜C•KˆEÜ—E’EØ�|Õ$ e¨MÕ&:¸EÀ-Õ<PÐQØô÷ ‰g�d—k‘k×'Ñ'Ó(ð ð
 —\‘\×)Ñ)¨$¯,©,×*<Ñ*<¸QÕ*?À1Õ*DÀaÈÈDÏLÉL×L^ÑL^Ð_`ÕLaÓb×iÑiØ�B˜˜BóˆFô (¨×0IÑ0IÓJÈSÕPˆFØ & xÕ 0°3Õ 6Ô;LÈVÐT[Í_Ð^_Ó;`ÐcfÕ;fÕgˆF�8ÑØ & xÕ 0°3Õ 6Ô;LÈVÐT[Í_Ð^_Ó;`ÐcfÕ;fÕgˆF�8ÑØ˜c•\ˆFÜ—U’U˜F 9Õ-¨v°jÕ/AÀ6È*ÕCUÐVÐ\]Ô^ˆFØ—‘ §¡¨Q¥°&·,±,¸qµ/Õ AÀ6Ç<Á<ÐPQÅ?ÓSˆà×*Ñ*¨6°5À'Ð*ÓJÐJr'   c                óT   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[/# )r   r¦   r„   r  r    )r$   rh   s   "€r%   r&   rÍ    s+   ø€ ÷ ñ ©Q¯X©Xð ¹a¿h¹hð ÑQTñ r'   c                óˆ  € VP                   ^ ,          V P                  8”  d   VRV P                   pV^8X  dZ   V P                  V P                  P	                  4       ,          WV P                  P	                  4       ,          ,
          ,          pV# V P                  P                   ^ ,          V,          pVP                   ^,          V,          p. p\        V4       FÉ  pWu,          pV^,           V,          p	Wv,          p
Ws^,
          8  d   V^,           V,          MVP                   ^,          pV P                  RW«13,          pWV	1W«13,          pVRW«13,          pV P                  W‰ P	                  4       pVP                  WÏ,          WÞV,          ,
          ,          4       KË  	  \        P                  ! V^R7      pV# )r   Nr  r  )	r.   r]   r©   rª   ÚlongrÁ  r›   r!   r  )r‰   r¦   r„   r  ÚweightsÚnum_dimÚout_dimrÂ  Ú	row_startÚrow_endÚ	col_startÚcol_endÚscale_iÚweight_iÚzeros_iÚg_idx_is   &&&&            r%   r
  Ú*PackableQuantLinear._dequantize_from_codes  sq  € ð �<‰<˜�?˜T×-Ñ-Ô-ØÐ-˜T×-Ñ-Ð.ˆFØ�aŒ<Ø—k‘k $§*¡*§/¡/Ó"3Õ4¸ÀtÇzÁzÇÁÓGXÕAYÕ8YÕZˆGð$ ˆð! —j‘j×&Ñ& qÕ)¨WÕ4ˆGØ—l‘l 1•o¨Õ0ˆGØˆGÜ˜7–^�Ø�K�	Ø˜q�5 GÕ+�Ø�K�	Ø/0¸aµKÔ/@˜1˜q�5 GÖ+ÀfÇlÁlÐSTÅo�àŸ+™+ a¨Ð):Ð&:Õ;�Ø!¨GÐ"3°YÐ5FÐ"FÕG�Ø  9Ð#4Ð 4Õ5�ØŸ*™* YÐ7×<Ñ<Ó>�Ø—‘˜wÕ/°8ÀgÕ>NÕ3NÕOÖPñ $ô —e’e˜G¨Ô+ˆGàˆr'   é    c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[P                  RS[P                  RS[P                  RS[RS[/# ©r   Úlinearr©   r„   rª   Úblock_inÚworkers©ÚnnÚModuler!   r"   r#   )r$   rh   s   "€r%   r&   rÍ  :  s_   ø€ ÷ 	Iñ 	Iá—I‘Ið	Iñ —H‘Hð	Iñ —8‘8ð		Iñ
 —8‘8ð	Iñ ð	Iñ ñ	Ir'   c                ó,   € V P                  WW4WV4       R # r”   )Ú
pack_block)r‰   r"  r©   r„   rª   r#  r$  s   &&&&&&&r%   ÚpackÚPackableQuantLinear.pack:  s   € ð 	�‰˜¨°hÖHr'   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[P                  RS[P                  RS[P                  RS[RS[/# r!  r%  )r$   rh   s   "€r%   r&   rÍ  F  sg   ø€ ÷ _gñ _gá—I‘Ið_gñ —H‘Hð_gñ —8‘8ð	_gñ
 —8‘8ð_gñ ð_gñ ñ_gr'   c                ó<  a aaa%a&a'a(a)a*a+a,a-a.a/a0a1€ R$o%VP                   P                  4       o&\        V\        4      '       d   S&P	                  ^4      o&\        V\
        P                  P                  4      '       d   S&P                  o&S&P                  RRR7      o&S&P                  w  rxSP                  4       V8w  d    \        RSP                  4        RV 24      hSP                  R4      oS P                  RS4       SP                  P                  4       oVP                  P                  4       pVS,          o/SP                  ^ ,          o*S P                  RSP                  \        P                   R7      4       VP"                  eK   S P                  R
VP"                  P                  4       P                  R\        P                   R7      4       M\%        S R
4      '       g   R	S n        \'        S P(                  4      o)\'        S P*                  4      o1S1^ 8X  g   Q R4       hVS1,          ^ 8w  d   \        R4      hVS1,          ^ 8w  d   \        R4      h\-        R4      p	\-        R4      p
V'       d
   V^ 8”  d   TM^p\.        P0                  ! R4      pV'       d    \3        \'        V4      ^4      pS P8                  o,V	'       g˜   S)R%9   d‘    ^RIHp V! S&SVSP                  \        P>                  R7      S)S1VV4      w  rïS P                  RVP                  S P@                  R7      4       S P                  RVP                  S P@                  R7      4       R	# S)R%9   d   S1S),          o+M+S)^8X  d   S,'       g   R	o+MS,'       d   R	o+M\G        RS) 24      hS P@                  pV\        P>                  8w  d   \        R4      hS)o.VS1,          S.,          p\        PH                  ! VV3VRR7      o-S)R%9   d?   \        PJ                  ! S+\        PL                  R7      S),          PO                  ^S+^4      o0\        PP                  ! 4       R V%V)V+V03R ll4       o'\        PP                  ! 4       R V%3R ll4       o(\3        S1VS1,          S1,          4      p\        PP                  ! 4       R V&V'V(V)VV*V,V-V.V/VV V13R ll4       p\S        \U        ^ W…4      4      pV Uu. uF  pV\W        VV,           V4      3NK  	  pp\Y        V4       \Y        V4      p\.        P0                  ! R4      p^pV'       d!    \3        ^\W        \'        V4      V4      4      pV^8X  d   V F  w  ppV! VV4       K  	  M^\[        VR!R"7      ;_uu_ 4       pV UUu. uF  w  ppVP]                  VVV4      NK  	  pppV F  pVP_                  4        K  	  R	R	R	4       VP                  4       Pa                  4       Pc                  4       Pe                  S Pf                  RR7      p\h        Pj                  ! VP                  ^ ,          VP                  ^,          S P*                  ,          S),          3S Pf                  R7      pS)R%9   d   ^ S),          p \U        VP                  ^,          4       FS  p!V!V ,          p"\U        V 4       F8  p#VR#V!3;;,          VR#V"V#,           3,          S)V#,          ,          ,          uu&   K:  	  KU  	  EMˆS)^8X  Ed   S,'       Eg   ^ p$^ p!V!VP                  ^,          8  Edñ   \U        V$V$^
,           4       F8  p#VR#V!3;;,          VR#V#3,          ^V#V$,
          ,          ,          ,          uu&   K:  	  V$^
,          p$VR#V!3;;,          VR#V$3,          ^,          ,          uu&   V!^,          p!VR#V!3;;,          VR#V$3,          ^,	          ^,          ,          uu&   V$^,          p$\U        V$V$^
,           4       F?  p#VR#V!3;;,          VR#V#3,          ^V#V$,
          ,          ^,           ,          ,          uu&   KA  	  V$^
,          p$VR#V!3;;,          VR#V$3,          ^,          ,          uu&   V!^,          p!VR#V!3;;,          VR#V$3,          ^,	          ^,          ,          uu&   V$^,          p$\U        V$V$^
,           4       F?  p#VR#V!3;;,          VR#V#3,          ^V#V$,
          ,          ^,           ,          ,          uu&   KA  	  V$^
,          p$V!^,          p!EK	  MiS,'       dT   \m        VP                  \        PL                  4      S)4      Pc                  4       Pe                  S Pf                  RR7      pM\G        RS) 24      hS P                  RS-P                  S P@                  R7      4       S P                  R\        Pn                  ! VPe                  S Pp                  RR7      4      4       R	#   \         d    \4        P7                  RTT4        ELai ; i  \B         d+   pT
'       d   h \4        PE                  RT4        R	p?ELêR	p?ii ; iu upi   \         d    \4        P7                  R T4        EL&i ; iu uppi   + '       g   i     ELÆ; i)&a  
Parallel qweight pack on CPU (threaded over input blocks). qzeros path = original logic.

- qweight: streamed in 32-aligned blocks; each block packed by a worker into
  non-overlapping rows of the preallocated output tensor (no locks).
- qzeros: EXACT original numpy-based packing to preserve layout/shape.
- math done on CPU; no .numpy() round trips for qweight.

Args:
  block_in: number of input channels per task (must be multiple of 32).
  workers:  number of worker threads (None -> auto; 1 -> single-thread).
ÚcpuF©ru   úg_idx length ú != in_features rª   r©   rl   Nr^   z$Only 32-bit packing words supported.z#in_features must be divisible by 32z@pack_block extension requires out_features to be divisible by 32ÚGPTQMODEL_DISABLE_PACK_EXTÚGPTQMODEL_FORCE_PACK_EXTÚGPTQMODEL_PACK_THREADSzBpack_block: invalid GPTQMODEL_PACK_THREADS `%s`; defaulting to %d.)Úpack_block_cpur¥   r¨   zJpack_block: native extension unavailable, falling back to Python path (%s)úUnsupported bits=zEpack_block() expects self.pack_dtype == torch.int32 for 32-bit words.r6   c                ód   € V ^8„  d   QhR\         P                  R\         P                  R\        /# ©r   Úint32_blk_32xNÚdstÚdst_rows_baser    )r$   s   "r%   r&   Ú4PackableQuantLinear.pack_block.<locals>.__annotate__Ç  s/   € ÷ 	Xñ 	X¬Q¯X©Xð 	X¼A¿H¹Hð 	XÔUXñ 	Xr'   c                 ó  <€ V P                  \        P                  4      pVP                  SSR4      pVS	,          P	                  ^\        P                  R7      pVS,          P                  \        P
                  4      WVS,           % R# ©r¼   ©r4   r7   Nr)   )rC   r!   rD   Úviewr:   r¢  )
r9  r:  r;  Úr64ÚRÚpacked64ÚMASK32r\   r¥  Úshifts_pf64s
   &&&   €€€€r%   Ú_pack_rows_2_4_8Ú8PackableQuantLinear.pack_block.<locals>._pack_rows_2_4_8Æ  sl   ø€ ð !×#Ñ#¤A§G¡GÓ,ˆCà—‘˜˜{¨BÓ/ˆAØ˜[Õ(×-Ñ-°!¼1¿7¹7Ð-ÓCˆHØ8@À6Õ8I×7MÑ7MÌaÏgÉgÓ7VˆC˜m¨dÕ2Ò3r'   c                ód   € V ^8„  d   QhR\         P                  R\         P                  R\        /# r8  r    )r$   s   "r%   r&   r<  Ð  s*   € ÷ 	3ñ 	3¬¯©ð 	3¼¿¹ð 	3ÔQTñ 	3r'   c                 ó  <€ V P                  \        P                  4      pVR ,          \        P                  ! ^
\        P                  R7      P	                  R^4      ^,          ,          P                  ^ \        P                  R7      S,          pWC^
,          ^,          S,          ,          S,          pV^
,          ^,	          ^,          S,          pVVR,          \        P                  ! ^
\        P                  R7      P	                  R^4      ^,          ^,           ,          P                  ^ \        P                  R7      ,          S,          pWS^,          ^,          S,          ,          S,          pV^,          ^,	          ^,          S,          pVVR,          \        P                  ! ^
\        P                  R7      P	                  R^4      ^,          ^,           ,          P                  ^ \        P                  R7      ,          S,          pVP                  \        P                  4      W^ ,           &   VP                  \        P                  4      W^,           &   VP                  \        P                  4      W^,           &   R# )ºr   rä  Nrl   r?  ºrí  rß  Nºrè  é    NNr)   )rC   r!   rD   Úaranger@  r:   r¢  )r9  r:  r;  r   ÚAr§   ÚCrD  s   &&&    €r%   Ú_pack_rows_3Ú4PackableQuantLinear.pack_block.<locals>._pack_rows_3Ï  sÏ  ø€ ð ×!Ñ!¤!§'¡'Ó*ˆAà�D•'œaŸhšh r´·±Ô9×>Ñ>¸rÀ1ÓEÈÕIÕJ×OÑOÐTUÔ]^×]dÑ]dÐOÓeÐioÕoˆAØ˜•u •{ fÕ,Õ-°Õ7ˆAà�R•5˜A•: Õ" fÕ,ˆAØØ�5•œaŸhšh r´·±Ô9×>Ñ>¸rÀ1ÓEÈÕIÈAÕMÕN×SÑSÐXYÔab×ahÑahÐSÓiõkØntõuˆAà˜•u •{ fÕ,Õ-°Õ7ˆAà�R•5˜A•: Õ$¨Õ.ˆAØØ�5•œaŸhšh r´·±Ô9×>Ñ>¸rÀ1ÓEÈÕIÈAÕMÕN×SÑSÐXYÔab×ahÑahÐSÓiõkØntõuˆAà%&§T¡T¬!¯'©'£]ˆC Õ!Ñ"Ø%&§T¡T¬!¯'©'£]ˆC Õ!Ñ"Ø%&§T¡T¬!¯'©'£]ˆC Õ!Ó"r'   c                ó0   € V ^8„  d   QhR\         R\         /# )r   Úi0Úi1r¹   )r$   s   "r%   r&   r<  ç  s   € ÷ /	9ñ /	9œsð /	9¬ñ /	9r'   c           	      ó´  <€ W,
          pSR W13,          pSW P                  \        P                  RR7      pVP                  4       ^ 8X  d   R# V^ 8  pVP	                  4       '       d%   VP                  4       pWE;;,          S,          uu&   \        VP                  4       P                  4       4      p\        VP                  4       P                  4       4      pV^ 8  g   VS8¼  d   \        RV RV RS R24      hSP                  ^ V4      P                  pSP                  ^ V4      P                  p	\        P                  ! W8,           V	,          4      p
V
P                  ^ SP                  4       V
P                  \        P                   4      P                  P#                  4       p
VS,          pV S,          p\%        V4       F„  pW­S,          V^,           S,           pWÍ,           S,          pSR	9   d   S! VSV4       K>  S^8X  d   S'       g   S! VSV4       KY  S'       d   \'        VS4      SWÿS,           % Kx  \)        RS 24      h	  ????	?
R# )
r  F)r7   ru   Nz?pack_block: g_idx values out of range after normalization (min=z, max=z	, groups=z).r6  r×  )rC   r!   rD   ÚnumelÚanyÚcloner#   ÚmaxÚitemÚminÚ
IndexErrorÚindex_selectÚTÚroundÚclamp_r™  r¢  Ú
contiguousrÁ  r   rÍ   )rT  rU  ÚblkÚWblkÚgselÚneg_maskÚgsel_maxÚgsel_minÚsz_blk_TÚs_blk_TÚ	int_blockÚgroups32Ú
base_groupÚgÚsubÚdst_rowsÚWrF  rQ  r\   rª   Ú
num_groupsr¶  r¥   Úrows_per_groupÚscale_zerosr©   r‰   Ú	word_bitss   &&              €€€€€€€€€€€€€r%   Ú_process_blockÚ6PackableQuantLinear.pack_block.<locals>._process_blockæ  s  ø€ à•'ˆCà�Q˜˜�X•;ˆDà˜�<—?‘?¬¯©°u�?Ó=ˆDØ�z‰z‹|˜qÔ Ùà˜a‘xˆHØ�|‰|�~Š~Ø—z‘z“|�Ø— *Õ,“ä˜4Ÿ8™8›:Ÿ?™?Ó,Ó-ˆHÜ˜4Ÿ8™8›:Ÿ?™?Ó,Ó-ˆHØ˜!Œ|˜x¨:Ô5Ü ØUÐV^ÐU_Ð_eÐfnÐeoÐoxð  zDð  yEð  EGð  Hóð ð #×/Ñ/°°4Ó8×:Ñ:ˆHØ×)Ñ)¨!¨TÓ2×4Ñ4ˆGô Ÿš ¥°GÕ ;Ó<ˆIð ×Ñ˜Q §	¡	Ô*Ø!Ÿ™¤Q§W¡WÓ-×/Ñ/×:Ñ:Ó<ˆIà˜iÕ'ˆHØ 	�/ˆJÜ˜8–_�Ø I¥¨q°1­u¸	Õ.AÐB�Ø&�N¨nÕ<�Ø˜9Ô$Ù$ S¨'°8Ö<Ø˜Q”Y§vÙ   g¨xÖ8ßÜ8HÈÈdÓ8S�G˜H°¥_Ò5ä-Ð0AÀ$ÀÐ.HÓIÐIñ %ð �d˜H gªyr'   ÚGPTQMODEL_PACK_PY_THREADSzMpack_block: invalid GPTQMODEL_PACK_PY_THREADS `%s`; using sequential packing.zpack qweight)Úmax_workersÚthread_name_prefixr  ì   ÿÿ r×  )9r¦   Údetachr˜   r
   ÚflattenÚtransformersÚpytorch_utilsÚConv1Dr_  rC   r.   rW  r+   rƒ   rb  r!   r…   r^   rX  r#   r\   r›  r   ÚosÚgetenvrZ  rJ  Úwarningr¶  Úpack_block_extr5  r¢  rë   rÚ   ÚdebugrÍ   r<   rN  rD   r@  Úinference_moderô  rÁ  r\  r#  r   ÚsubmitÚresultr.  ÚnumpyÚastyperŸ  rœ  r„   r   Ú
from_numpyr�  )2r‰   r"  r©   r„   rª   r#  r$  r2   r]   Údisable_extÚ	force_extÚpack_block_threadsÚenv_threadsÚpack_block_cpu_extÚqweight_extÚ
qzeros_extÚexcÚ	OUT_DTYPEÚqweight_rowsrv  ÚstartsrT  ÚrangesÚtotal_blocksÚpy_threads_envÚworkers_effrU  ÚexÚfutsÚfÚzeros_npÚ	qzeros_npÚpfÚcolÚbaseÚjrÂ  rD  rq  rF  rQ  r\   rr  r¥  r¶  r¥   rs  rt  rE  ru  s2   f&f&f&&                              @@@@@@@@@@@@@r%   r)  ÚPackableQuantLinear.pack_blockE  sÈ  ÿÿ€ ð. ˆð �M‰M× Ñ Ó"ˆÜ�fœg×&Ò&Ø—	‘	˜!“ˆAÜ�fœl×8Ñ8×?Ñ?×@Ò@Ø—‘ˆAØ�D‰D�˜UˆDÓ#ˆØ$%§G¡GÑ!ˆð �;‰;‹=˜KÔ'Ü˜}¨U¯[©[«]¨OÐ;KÈKÈ=ÐYÓZÐZØ—‘˜“ˆØ×Ñ˜W eÔ,ð —‘×$Ñ$Ó&ˆØ—‘×"Ñ"Ó$ˆØ˜f•nˆØ—\‘\ !•_ˆ
ð 	×Ñ˜X v§y¡y´q·y±y yÓ'AÔBØ�;‰;Ò"Ø× Ñ  ¨¯©×);Ñ);Ó)=×)@Ñ)@ÀÌaÏiÉiÐ)@Ó)XÕYÜ˜˜v×&Ò&ØˆDŒIô �4—9‘9‹~ˆÜ˜×,Ñ,Ó-ˆ	Ø˜BŒÐFÐ FÓFˆØ˜)Õ#¨Ô)ÜÐBÓCÐCØ˜9Õ$¨Ô*ÜØRóð ô Ð;Ó<ˆÜÐ7Ó8ˆ	ß(/°G¸a´K™WÀQÐÜ—i’iÐ 8Ó9ˆßðÜ%(¬¨[Ó)9¸1Ó%=Ð"ð —‘ˆç˜t yÔ0ðmÝPá*<ØØØØ—H‘H¤1§7¡7�HÓ+ØØØØ&ó	+Ñ'�ð ×$Ñ$ Y°·±ÀTÇ_Á_°Ó0UÔVØ×$Ñ$ X¨z¯}©}À4Ç?Á?¨}Ó/SÔTÙð �9ÔØ# tÕ+‰Kà�QŒYŸvØ‰KßØ‰Kä%Ð(9¸$¸Ð&@ÓAÐAð —O‘Oˆ	ØœŸ™ÔÜÐdÓeÐeð ˆØ# yÕ0°NÕBˆÜ—'’'˜<¨Ð6¸iÐPUÔVˆð �9ÔÜŸ8š8 K´q·w±wÔ?À$ÕF×LÑLÈQÐP[Ð]^Ó_ˆKô 
×	Ò	Ó	÷	Xò 	Xó 
ð	Xô 
×	Ò	Ó	÷	3ó 
ð	3ô( �y 8¨yÕ#8¸IÕ"EÓFˆä	
×	Ò	Ó	÷/	9÷ /	9ó /	9ó 
ð/	9ôd ”e˜A˜{Ó5Ó6ˆÙBHÓIÁ&¸B�2”s˜2 �=¨+Ó6Ó7Á&ˆÐIÜˆFŒä˜6“{ˆô ŸšÐ#>Ó?ˆØˆßðÜ! !¤S¬¨^Ó)<¸lÓ%KÓL�ð ˜!ÔÛ ‘��BÙ˜r 2Ö&ò !ô $°ÐP^×_Õ_ÐceÙJPÔQÉ&¹h¸rÀ2˜Ÿ	™	 .°"°bÖ9É&�ÑQÛ�AØ—H‘H–Jñ ÷ `ð —<‘<“>×%Ñ%Ó'×-Ñ-Ó/×6Ñ6°t×7NÑ7NÐUZÐ6Ó[ˆÜ—H’HØ�^‰^˜AÕ §¡°Õ!2°d×6JÑ6JÕ!JÈdÕ RÐSØ×)Ñ)ô
ˆ	ð
 �9ÔØ˜•*ˆBÜ˜YŸ_™_¨QÕ/Ö0�Ø˜R•x�Ü˜rž�AØ˜a ˜f×%¨°!°T¸AµX°+Õ)>À4È!Å8Õ)LÕLÕ%ó #ó 1ð �Q�YŸv˜vØˆAØˆCØ˜	Ÿ™¨Õ*Õ*Ü˜q ! b¥&Ö)�AØ˜a ˜f×%¨°!°Q°$­¸AÀÀQÅ½KÕ)HÕHÕ%ñ *à�R•�Ø˜!˜S˜&×! X¨a°¨d¥^°rÕ%9Õ9Ó!Ø�q•�Ø˜!˜S˜&×! h¨q°!¨t¥n¸Õ&9¸QÕ%>Õ>Ó!Ø�Q•�Ü˜q ! b¥&Ö)�AØ˜a ˜f×%¨°!°Q°$­¸AÀÀQÅ½KÈ!½OÕ)LÕLÕ%ñ *à�R•�Ø˜!˜S˜&×! X¨a°¨d¥^°rÕ%9Õ9Ó!Ø�q•�Ø˜!˜S˜&×! h¨q°!¨t¥n¸Õ&9¸SÕ%@Õ@Ó!Ø�Q•�Ü˜q ! b¥&Ö)�AØ˜a ˜f×%¨°!°Q°$­¸AÀÀQÅ½KÈ!½OÕ)LÕLÕ%ñ *à�R•�Ø�q•“ð% +÷& ä  §¡¬!¯'©'Ó!2°DÓ9ß‘“ß‘˜×/Ñ/°e�Ó<ñ ô &Ð(9¸$¸Ð&@ÓAÐAð 	×Ñ˜Y¨¯
©
¸¿¹¨
Ó(IÔJØ×Ñ˜X¤q§|¢|°I×4DÑ4DÀT×EWÑEWÐ^cÐ4DÓ4dÓ'eÖføôs ô Ü—‘ØXØØ&÷ðûô6 ô mßØÜ—	‘	ÐfÐhk×lÒlûðmüòf Jøô ô Ü—‘ØcØ"÷ðüó R÷ `×_Ð_úsa   Ê%g6 ËBh Ó$iÔ;i Öj
Öj
Ö1j
ç6"hèhèiè*iéié!jê jêj
ê
j	r#  r8   Nc                ó²   <€ V ^8„  d   QhRS[ P                  RS[P                  RS[P                  RS[P                  RS[RS[S[P                  ,          /# )r   r"  r©   r„   rª   r#  r8   )r&  r'  r!   r"   r#   r   r8   )r$   rh   s   "€r%   r&   rÍ  h  sp   ø€ ÷ lTñ lTá—	‘	ðlTñ —‘ðlTñ �x‰xð	lTñ
 �x‰xðlTñ ðlTñ ™Ÿ™Õ"ñlTr'   c               óN  a a.a/a0a1a2a3€ \         P                  P                  4       '       g   \        R4      hVe   \         P                  ! V4      M\         P                  ! R4      pVP
                  R8w  d   \        RV R24      hR%p\         P                  ! V\         P                  VR7      o0VP                  P                  4       P                  VRR7      p	\        V\        4      '       d   V	P                  ^4      p	\        V\        P                   P"                  4      '       d   V	P$                  p	V	P&                  w  r«Vf   \        R	4      hVP)                  4       V8w  d    \        R
VP)                  4        RV 24      hVP                  R\         P*                  RR7      pVP                  VR7      pS P-                  RVP                  \         P.                  R7      4       VP$                  P1                  4       pVP$                  P1                  4       pWþ,          pVP                  VR7      pVP                  VR7      pVP                  VR7      pS P-                  RVP                  R\         P2                  R7      4       VP4                  eK   S P-                  RVP4                  P                  4       P                  R\         P2                  R7      4       MRS n        \7        S P8                  4      o/\7        S P:                  4      pV^ 8w  d   \        R4      hVV,          ^ 8w  d   \        R4      hS/R&9   dJ   VS/,          o1\         P<                  ! S1\         P                  VR7      P?                  ^S1^4      S/,          o3M*S/^8X  g   S P@                  '       d   Ro3M\C        RS/ 24      hS/p\         PD                  ! VV,          V,          V
3S PF                  VR7      p\         P<                  ! ^
\         P                  VR7      P?                  R'^4      o2\         PH                  ! 4       R V/V0V1V V33R ll4       p\         PH                  ! 4       R V0V23R ll4       o.R V.V 3R llp\K        VVV,          V,          4      p\M        ^ Wµ4       EF¶  p\O        VV,           V4      pVV,
          pV	RVV13,          pVVV pVPQ                  ^ V4      P$                  pVPQ                  ^ V4      P$                  p\         PR                  ! VV,           V,          4      p V PU                  ^ S PV                  4       V P                  \         P.                  4      P$                  P1                  4       p VV,          p!VV,          p"\M        V!4       F´  p#V V#V,          V#^,           V,           p$V"V#,           V,          p%S/R&9   d   V! V$VV%4       K@  S/^8X  d   S P@                  '       g   V! V$VV%4       Ke  S P@                  '       d2   \Y        V$S/4      P                  S PF                  4      VV%V%S/,           % K¨  \C        RS/ 24      h	  EK¹  	  VP                  \         P                  R7      p&S/R&9   Ed   VS/,          o1V&P&                  ^,          S1,          ^ 8w  d   \        RS1 R V&P&                   24      hV&P?                  V&P&                  ^ ,          V&P&                  ^,          S1,          S14      p'\         P<                  ! S1\         P                  VR7      P?                  ^^S14      S/,          p(V'V(,          P[                  R'\         P                  R!7      S0,          p)V)P                  S PF                  R7      p*EMS/^8X  dÉ   S P@                  '       g·   V&P&                  ^,          V,          p+. p,\M        V+4       Fr  p#V&RV#V,          V#^,           V,          13,          p-S.! V-P$                  4      P]                  ^ ^4      p)V,P_                  V)P                  S PF                  R7      4       Kt  	  \         P`                  ! V,^R"7      p*MGS P@                  '       d(   \c        V&S/4      P                  S PF                  R7      p*M\C        RS/ 24      h\         P                  Pe                  VR7       S P-                  R#VP                  RS PF                  R7      4       S P-                  R$V*P                  RS PF                  R7      4       ?	?????*R# )(z*Pack quantized weights using CUDA kernels.z:pack_gpu requires CUDA availability but none was detected.NÚcudaz&pack_gpu expected a CUDA device, got `rˆ  r6   T)r8   ru   z pack_gpu requires non-null g_idxr0  r1  r.  F)r8   r7   ru   rÖ  rª   rl   r©   rA   r^   z6pack_gpu currently supports 32-bit packing words only.z0in_features must be divisible by 32 for pack_gpur6  c                ód   € V ^8„  d   QhR\         P                  R\         P                  R\        /# r8  r    )r$   s   "r%   r&   Ú2PackableQuantLinear.pack_gpu.<locals>.__annotate__¼  s*   € ÷ 	ñ 	¬Q¯X©Xð 	¼A¿H¹Hð 	ÔUXñ 	r'   c                 ó  <€ V P                  \        P                  4      pVP                  SSR4      pVS
,          P	                  ^\        P                  R7      pVS,          P                  S	P
                  4      WVS,           % R# r>  )rC   r!   rD   r@  r:   rë   )r9  r:  r;  rA  ÚreshapedrC  r\   Úmask_tensorr¥  r‰   rE  s   &&&   €€€€€r%   rF  Ú6PackableQuantLinear.pack_gpu.<locals>._pack_rows_2_4_8»  sm   ø€ à ×#Ñ#¤A§G¡GÓ,ˆCØ—x‘x  k°2Ó6ˆHØ  KÕ/×4Ñ4¸Ä!Ç'Á'Ð4ÓJˆHà˜KÕ'×+Ñ+¨D¯O©OÓ<ð ˜m¨dÕ2Ò3r'   c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )r   r9  r   r³   )r$   s   "r%   r&   r©  Å  s"   € ÷ 	-ñ 	-´·±ð 	-¼Q¿X¹Xñ 	-r'   c                 ó   <€ V P                  \        P                  4      pVR ,          S^,          ,          P                  ^ \        P                  R7      S,          pW!^
,          ^,          S,          ,          S,          pV^
,          ^,	          ^,          S,          pW1R,          S^,          ^,           ,          P                  ^ \        P                  R7      ,          S,          pW1^,          ^,          S,          ,          S,          pV^,          ^,	          ^,          S,          pWAR,          S^,          ^,           ,          P                  ^ \        P                  R7      ,          S,          p\        P                  ! W#V.^ R7      # )rJ  r?  rK  rL  r  )rC   r!   rD   r:   Ústack)r9  r   rO  r§   rP  r¬  Úrange10s   &    €€r%   Ú_pack_rows_3_valuesÚ9PackableQuantLinear.pack_gpu.<locals>._pack_rows_3_valuesÄ  s  ø€ à×!Ñ!¤!§'¡'Ó*ˆAØ�D•'˜g¨�kÕ*×/Ñ/°A¼Q¿W¹WÐ/ÓEÈÕTˆAØ˜•u •{ kÕ1Õ2°kÕAˆAà�R•5˜A•: Õ" kÕ1ˆAØ˜•x G¨a¥K°!¥OÕ4×9Ñ9¸aÄqÇwÁwÐ9ÓOÕPÐT_Õ_ˆAØ˜•u •{ kÕ1Õ2°kÕAˆAà�R•5˜A•: Õ$¨Õ3ˆAØ˜•x G¨a¥K°!¥OÕ4×9Ñ9¸aÄqÇwÁwÐ9ÓOÕPÐT_Õ_ˆAä—7’7˜A !˜9¨!Ô,Ð,r'   c                ód   € V ^8„  d   QhR\         P                  R\         P                  R\        /# r8  r    )r$   s   "r%   r&   r©  Ó  s/   € ÷ 	Nñ 	N¬¯©ð 	N¼¿¹ð 	NÔQTñ 	Nr'   c                 ó`   <€ S! V 4      pVP                  SP                  4      WV^,           % R# )rÙ  N)rC   rë   )r9  r:  r;  Úpackedr²  r‰   s   &&& €€r%   rQ  Ú2PackableQuantLinear.pack_gpu.<locals>._pack_rows_3Ó  s)   ø€ Ù(¨Ó8ˆFØ39·9±9¸T¿_¹_Ó3MˆC˜m¨aÕ/Ò0r'   r  zBpack_gpu expected zeros second dimension divisible by pack_factor=z, got shape r?  r  r¥   r¨   r{  r×  r)   )3r!   r§  Úis_availablerÃ   r8   rO   r+   rŸ   rD   r¦   r|  rC   r˜   r
   r}  r~  r  r€  r_  r.   rW  r  rƒ   r¢  rb  r…   r^   r#   r\   r›  rN  r@  r¶  rÍ   r<   rë   r†  rZ  rÁ  r\  r^  r`  ra  r™  r   r:   Ú	transposer›   r  r   Úsynchronize)4r‰   r"  r©   r„   rª   r#  r8   Útarget_devicerD  r¦   r2   r]   Ú	g_idx_cpuÚ	g_idx_devÚscales_gÚzeros_gÚscale_zeros_gÚ
scales_devÚ	zeros_devÚscale_zeros_devru  rs  Úqweight_devrF  rQ  rT  rU  rc  rd  re  ri  rj  rk  rl  rm  rn  ro  rp  Ú	zeros_intÚ
zeros_viewr?   r¶  Ú
qzeros_devÚgroupsÚqzeros_chunksÚblockr²  r\   r¬  r¥  r±  rE  s4   f&&&&$$                                       @@@@@@r%   Úpack_gpuÚPackableQuantLinear.pack_gpug  sb  þ€ ô �v‰v×"Ñ"×$Ò$ÜÐ[Ó\Ð\à,2Ò,>œŸš Ô(ÄAÇHÂHÈVÓDTˆØ×Ñ Ô'ÜÐEÀmÀ_ÐTVÐWÓXÐXàˆÜ—h’h˜v¬Q¯W©W¸]ÔKˆà—‘×%Ñ%Ó'×*Ñ*°-ÀdÐ*ÓKˆä�fœg×&Ò&Ø—^‘^ AÓ&ˆFÜ�fœl×8Ñ8×?Ñ?×@Ò@Ø—X‘XˆFà$*§L¡LÑ!ˆàŠ=ÜÐ?Ó@Ð@Ø�;‰;‹=˜KÔ'Ü˜}¨U¯[©[«]¨OÐ;KÈKÈ=ÐYÓZÐZà—H‘H E´·±¸e�HÓDˆ	Ø—L‘L¨�LÓ6ˆ	Ø×Ñ˜W i§l¡l¼¿¹ lÓ&AÔBð —8‘8×&Ñ&Ó(ˆØ—'‘'×$Ñ$Ó&ˆØÕ*ˆà—[‘[¨�[Ó6ˆ
Ø—J‘J m�JÓ4ˆ	Ø'×*Ñ*°-Ð*Ó@ˆà×Ñ˜X x§{¡{¸%ÄqÇyÁy {Ó'QÔRØ�;‰;Ò"Ø× Ñ  ¨¯©×);Ñ);Ó)=×)@Ñ)@ÈÔUV×U^ÑU^Ð)@Ó)_Õ`àˆDŒIä�4—9‘9‹~ˆÜ˜×,Ñ,Ó-ˆ	Ø˜Œ?ÜÐUÓVÐVØ˜Õ" aÔ'ÜÐOÓPÐPà�9ÔØ# tÕ+ˆKä—’˜¬A¯G©G¸MÔJß‘�a˜ aÓ(Øõñ ð
 �QŒY˜$Ÿ+Ÿ+˜+Ø‰Kä%Ð(9¸$¸Ð&@ÓAÐAàˆÜ—g’gØ˜IÕ%¨Õ6¸ÐEØ—/‘/Ø ô
ˆô —(’(˜2¤Q§W¡W°]ÔC×HÑHÈÈQÓOˆä	
×	Ò	Ó	÷	ó 	ó 
ð	ô 
×	Ò	Ó	÷	-ð 	-ó 
ð	-÷	Nñ 	Nô �y 8¨yÕ#8¸IÕ"EÓFˆÜ˜˜;×1ˆBÜ�R˜(•] KÓ0ˆBØ�r•'ˆCØ˜!˜R ˜U˜(Õ#ˆDØ˜R Ð#ˆDØ&×3Ñ3°A°tÓ<×>Ñ>ˆHØ ×-Ñ-¨a°Ó6×8Ñ8ˆGäŸš ¨¥°GÕ ;Ó<ˆIØ×Ñ˜Q §	¡	Ô*Ø!Ÿ™¤Q§W¡WÓ-×/Ñ/×:Ñ:Ó<ˆIà˜iÕ'ˆHØ 	�/ˆJÜ˜8–_�Ø  I¥¨q°1­u¸	Õ.AÐB�Ø&¨�N¨nÕ<�Ø˜9Ô$Ù$ S¨+°xÖ@Ø˜Q”Y t§{§{ {Ù   k°8Ö<Ø—[—[�[Ü<LÈSÐRVÓ<W×<ZÑ<ZÐ[_×[jÑ[jÓ<k�K ¨°D­Ò9ä-Ð0AÀ$ÀÐ.HÓIÐIô %ñ 2ð4 —L‘L¤q§w¡w�LÓ/ˆ	Ø�9ÕØ# tÕ+ˆKØ�‰˜qÕ! KÕ/°1Ô4Ü ØXÐYdÐXeð f!Ø!*§¡Ð 1ð3óð ð #Ÿ™¨	¯©¸Õ(:¸I¿O¹OÈAÕ<NÐR]Õ<]Ð_jÓkˆJä—’˜¬A¯G©G¸MÔJß‘�a˜˜KÓ(Øõð ð
 ! FÕ*×/Ñ/°B¼a¿g¹gÐ/ÓFÈÕTˆFØŸ™¨¯©˜Ó9ŠJØ�QŒY˜tŸ{Ÿ{˜{Ø—_‘_ QÕ'¨9Õ4ˆFØ,.ˆMÜ˜6–]�Ø! ! Q¨¥]°A¸µE¸YÕ3FÐ%FÐ"FÕG�Ù,¨U¯W©WÓ5×?Ñ?ÀÀ1ÓE�Ø×$Ñ$ V§Y¡Y°T·_±_ YÓ%EÖFñ #ô Ÿš˜}°!Ô4‰JØ�[�[ˆ[Ü)¨)°TÓ:×=Ñ=ÀDÇOÁOÐ=ÓT‰Jä%Ð(9¸$¸Ð&@ÓAÐAä	�‰×Ñ -ÐÔ0à×Ñ˜Y¨¯©¸eÈ4Ï?É?¨Ó([Ô\Ø×Ñ˜X z§}¡}¸EÈÏÉ }Ó'YÔZà�J 	¨?¸KÊr'   c                ó‚   <€ V ^8„  d   QhRS[ P                  RS[P                  RS[P                  RS[P                  /# )r   r"  r©   r„   rª   )r&  r'  r!   r"   )r$   rh   s   "€r%   r&   rÍ    sH   ø€ ÷ B\ñ B\¡B§I¡Ið B\±q·x±xð B\ÉÏÉð B\ÑYZ×YaÑYañ B\r'   c                óŠ  € \         P                  ! ^4      ;_uu_ 4        VP                  P                  p\	        V\
        P                  4      p\	        V\        4      '       d   VP                  ^4      p\	        V\        P                  P                  4      '       d   VP                  pT P                  RVe   TMV P                  4       VP                  P                  4       pVP                  P                  4       pW2,          pV P                  RVP!                  \"        P$                  R7      4       \'        VR4      '       dJ   VP(                  e<   V P                  RVP(                  P!                  \"        P$                  R7      4       M\'        V R4      '       g   RV n        V'       dF   \"        P*                  ! WWV P                  ,          ,           W P                  ,          ,          4      pMX\"        P*                  ! WWV P                  ,          P                  ,           W P                  ,          P                  ,          4      pVP-                  ^ V P.                  4       VP!                  \"        P0                  4      pV'       g   VP                  P                  4       pMVP                  4       pVP3                  4       P5                  V P6                  4      p\8        P:                  ! \<        P>                  ! VP@                  ^ ,          V PB                  ,          V PD                  ,          4      VP@                  ^,          3V P6                  R7      p	V PB                  R9   d¾   \G        V	P@                  ^ ,          4       F›  p
\G        \I        V PJ                  VP@                  ^ ,          W PJ                  ,          ,
          4      4       FM  pWš;;,          WŠV PJ                  ,          V,           ,          V PB                  V,          ,          ,          uu&   KO  	  K�  	  EM©V PB                  ^8X  Edñ   V PL                  '       EgÞ   ^ p^ p
W©P@                  ^ ,          8  EdÁ   \G        WÌ^
,           4       F1  pWš;;,          W‹,          ^W¼,
          ,          ,          ,          uu&   K3  	  V^
,          pWš;;,          WŒ,          ^,          ,          uu&   V
^,          p
Wš;;,          WŒ,          ^,	          ^,          ,          uu&   V^,          p\G        WÌ^
,           4       F8  pWš;;,          W‹,          ^W¼,
          ,          ^,           ,          ,          uu&   K:  	  V^
,          pWš;;,          WŒ,          ^,          ,          uu&   V
^,          p
Wš;;,          WŒ,          ^,	          ^,          ,          uu&   V^,          p\G        WÌ^
,           4       F8  pWš;;,          W‹,          ^W¼,
          ,          ^,           ,          ,          uu&   K:  	  V^
,          pV
^,          p
EKØ  M§V PL                  '       d~   \O        \"        PP                  ! VP5                  \8        PR                  4      4      V PB                  V PT                  R7      P3                  4       P5                  V P6                  RR7      p	M\W        R	V PB                   24      hV P                  R
\"        PP                  ! V	P5                  V PX                  4      4      4       VP3                  4       P5                  V P6                  4      p\8        P:                  ! VP@                  ^ ,          \<        P>                  ! VP@                  ^,          V PB                  ,          V PD                  ,          4      3V P6                  R7      pV PB                  R9   dÃ   \G        VP@                  ^,          4       F   p\G        \I        V PJ                  VP@                  ^,          WàPJ                  ,          ,
          4      4       FR  pVRV3;;,          VRWàPJ                  ,          V,           3,          V PB                  V,          ,          ,          uu&   KT  	  K¢  	  EMÓV PB                  ^8X  Ed   V PL                  '       Eg   ^ p^ pWíP@                  ^,          8  Edë   \G        WÌ^
,           4       F7  pVRV3;;,          VRV3,          ^W¼,
          ,          ,          ,          uu&   K9  	  V^
,          pVRV3;;,          VRV3,          ^,          ,          uu&   V^,          pVRV3;;,          VRV3,          ^,	          ^,          ,          uu&   V^,          p\G        WÌ^
,           4       F>  pVRV3;;,          VRV3,          ^W¼,
          ,          ^,           ,          ,          uu&   K@  	  V^
,          pVRV3;;,          VRV3,          ^,          ,          uu&   V^,          pVRV3;;,          VRV3,          ^,	          ^,          ,          uu&   V^,          p\G        WÌ^
,           4       F>  pVRV3;;,          VRV3,          ^W¼,
          ,          ^,           ,          ,          uu&   K@  	  V^
,          pV^,          pEK  M§V PL                  '       d~   \[        \"        PP                  ! VP5                  \8        PR                  4      4      V PB                  V PT                  R7      P3                  4       P5                  V P6                  RR7      pM\W        R	V PB                   24      hV P                  R\"        PP                  ! VP5                  V PX                  4      4      4       RRR4       R#   + '       g   i     R# ; i)r¼   rª   Nr©   rl   r^   )rë   Fr/  r6  r¥   r  r¨   r×  ).r   Úthreadpool_limitsr¦   Údatar˜   r&  Ú	Embeddingr
   r}  r~  r  r€  r_  rƒ   rª   rb  rC   r!   r…   rX  r^   r`  ra  r™  r¢  r‰  rŠ  rŸ  rœ  r„   r,   rÀ  r.   r\   r›  rÁ  r\  r¥  r¶  r   r‹  rD   rë   rÍ   r�  r   )r‰   r"  r©   r„   rª   rq  Úis_embeddingrt  Ú
int_weightr¥   Úrowr£  rÂ  r¨   r¡  s   &&&&&          r%   Úpack_originalÚ!PackableQuantLinear.pack_original  s+  € Ü×,Ò,¨Q×/Õ/ð —‘×"Ñ"ˆAÜ% f¬b¯l©lÓ;ˆLÜ˜&¤'×*Ò*Ø—I‘I˜a“L�Ü˜&¤,×"<Ñ"<×"CÑ"C×DÒDØ—C‘C�ð × Ñ  °5Ò3D©%È$Ï*É*ÔVà—X‘X×(Ñ(Ó*ˆFØ—G‘G×&Ñ&Ó(ˆEØ�.ˆKð × Ñ  ¨6¯9©9¼1¿9¹9¨9Ó+EÔFä�v˜v×&Ò&¨6¯;©;Ò+Bð ×$Ñ$ V¨V¯[©[¯^©^Ä!Ç)Á)¨^Ó-LÕMÜ˜T 6×*Ò*Ø �”	çô ŸWšW a°d·j±jÕ*AÕ&AÀVÏJÉJÕEWÕ%WÓX‘
äŸWšW a°d·j±jÕ*A×*CÑ*CÕ&CÀvÏjÉjÕGY×G[ÑG[Õ%[Ó\�
Ø×Ñ˜a §¡Ô+Ø#Ÿ™¤q§w¡wÓ/ˆJßØ'Ÿ\™\×4Ñ4Ó6‘
à'×2Ñ2Ó4�
Ø#×)Ñ)Ó+×2Ñ2°4×3JÑ3JÓKˆJä—h’h¤§	¢	¨*×*:Ñ*:¸1Õ*=ÀÇ	Á	Õ*IÈD×L`ÑL`Õ*`Ó aÐcm×csÑcsÐtuÕcvÐwØ%)×%<Ñ%<ô>ˆGà�y‰y˜IÔ%Ü  §¡¨qÕ!1Ö2�CÜ"¤3 t×'7Ñ'7¸×9IÑ9IÈ!Õ9LÈs×UeÑUeÕOeÕ9eÓ#fÖg˜ØŸ¨
¸×9IÑ9IÕ3IÈAÕ3MÕ(NÐSW×S\ÑS\Ð_`ÕS`Õ(aÕa�ó hó 3ð —‘˜a•¨¯¯©Ø�Ø�ØŸM™M¨!Õ,Õ,Ü" 1¨"¥fÖ-˜ØŸ¨
­¸!¸q½u½+Õ(FÕF�ñ .à˜•G�AØ—L J¥M°RÕ$7Õ7“LØ˜1•H�CØ—L Z¥]°aÕ%7¸1Õ$<Õ<“LØ˜•F�AÜ" 1¨"¥fÖ-˜ØŸ¨
­¸!¸q½u½+È½/Õ(JÕJ�ñ .à˜•G�AØ—L J¥M°RÕ$7Õ7“LØ˜1•H�CØ—L Z¥]°aÕ%7¸3Õ$>Õ>“LØ˜•F�AÜ" 1¨"¥fÖ-˜ØŸ¨
­¸!¸q½u½+È½/Õ(JÕJ�ñ .à˜•G�AØ˜1•H“Cð% -ð& ——�ä$ÜŸš Z×%6Ñ%6´r·x±xÓ%@ÓAØŸ	™	Ø#'§?¡?ô÷
 ‘U“Wß‘V˜D×3Ñ3¸%�VÓ@ñ ô *Ð,=¸d¿i¹i¸[Ð*IÓJÐJð × Ñ  ¬A¯LªL¸¿¹È×HZÑHZÓ9[Ó,\Ô]à—K‘K“M×(Ñ(¨×)@Ñ)@ÓAˆEÜ—X’X˜uŸ{™{¨1�~¬t¯yªy¸¿¹ÀQ½È$Ï)É)Õ9SÐVZ×VjÑVjÕ9jÓ/kÐlÐtx÷  uLñ  uLô  MˆFØ�y‰y˜IÔ%Ü  §¡¨a¥Ö1�CÜ"¤3 t×'7Ñ'7¸¿¹ÀQ½È#×P`ÑP`ÕJ`Õ9`Ó#aÖb˜Ø˜q #˜vŸ¨%°°3×9IÑ9IÕ3IÈAÕ3MÐ0MÕ*NÐSW×S\ÑS\Ð_`ÕS`Õ*aÕa�ó có 2ð —‘˜a•¨¯¯©Ø�Ø�ØŸL™L¨�OÕ+Ü" 1¨"¥fÖ-˜Ø˜q #˜vŸ¨%°°1°­+¸!¸q½u½+Õ*FÕF�ñ .à˜•G�AØ˜1˜c˜6—N e¨A¨q¨D¥k°RÕ&7Õ7“NØ˜1•H�CØ˜1˜c˜6—N u¨Q°¨T¥{°aÕ'7¸1Õ&<Õ<“NØ˜•F�AÜ" 1¨"¥fÖ-˜Ø˜q #˜vŸ¨%°°1°­+¸!¸q½u½+È½/Õ*JÕJ�ñ .à˜•G�AØ˜1˜c˜6—N e¨A¨q¨D¥k°RÕ&7Õ7“NØ˜1•H�CØ˜1˜c˜6—N u¨Q°¨T¥{°aÕ'7¸3Õ&>Õ>“NØ˜•F�AÜ" 1¨"¥fÖ-˜Ø˜q #˜vŸ¨%°°1°­+¸!¸q½u½+È½/Õ*JÕJ�ñ .à˜•G�AØ˜1•H“Cð% ,ð& ——�ä$ÜŸš U§\¡\´"·(±(Ó%;Ó<ØŸ	™	Ø#'§?¡?ô÷
 ‘U“Wß‘V˜D×3Ñ3¸%�VÓ@ñ ô *Ð,=¸d¿i¹i¸[Ð*IÓJÐJð × Ñ  ¬1¯<ª<¸¿¹Àd×FXÑFXÓ8YÓ+ZÔ[÷C 0×/×/Ò/ús6   ŸFn1Æ7Cn1ÊGn1ÑG.n1Ù	I0n1â:Hn1ëCn1î1o	)r^   rÊ  rÕ  rÔ  )r¼   )r  rØ  )r  r¼   r”   )rÄ   rs   rt   rp  rq   rÑ  rú  rÅ   r¡   r  r
  r*  r!   r†  r)  rË  rÕ  rs  rt  ru  rv  s   @@r%   rÉ  rÉ  ¢  sÎ   ù‡ € ð*¸%÷ *õ *òpò+3õZ$õ÷5Kò 5K÷nò ÷8	Iò 	Ið ×ÒÓ÷_gñ _gó ð_gðB	 ×ÒÓðlTð ðlTð &*÷lTñ lTó ðlT÷\B\÷ B\ò B\r'   rÉ  c                   óZ   a a€ ] tR tRt oRV3R lV 3R llltV3R lV 3R lltRtVtV ;t# )ÚAWQuantLineari¦  c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r   r^   rb   rÌ  )r$   rh   s   "€r%   r&   ÚAWQuantLinear.__annotate__§  s   ø€ ÷ !!ñ !!Ùð!!á#'ñ!!r'   c           	     ó  <€ \         SV `  ! RR VRR/VB  V P                  pV P                  pV'       EdL   V P	                  R\
        P                  ! WEV P                  V P                  ,          ,          3V P                  R7      4       V P	                  R\
        P                  ! W@P                  ,          WPP                  V P                  ,          ,          3V P                  R7      4       V P	                  R\
        P                  ! W@P                  ,          V3\
        P                  R7      4       V'       d9   V P	                  R \
        P                  ! V\
        P                  R7      4       R# RV n        R# R# )	r^   rb   Fr¥   rl   r¨   r©   Nro   )rp   rq   r]   r2   rƒ   r!   r„   r›  r\   rë   rè   r…   r^   )r‰   r^   rb   rŠ   r]   r2   rr   s   &&&,  €r%   rq   ÚAWQuantLinear.__init__§  s)  ø€ ô 	‰ÒÑE˜dÐE°UÐE¸fÒEð ×&Ñ&ˆØ×(Ñ(ˆçÐØ× Ñ ØÜ—’˜°t×7KÑ7KÈtÏyÉyÕ7XÕ&YÐZÐbf×bqÑbqÔrôð × Ñ ØÜ—’Ø §O¡OÕ3°\×FZÑFZÐ^b×^gÑ^gÕFgÕ5hÐiØŸ/™/ôôð × Ñ ØÜ—’Ø §O¡OÕ3°\ÐBÜŸ)™)ôô÷ Ø×$Ñ$ V¬Q¯WªW°\ÌÏÉÔ-SÖTà �–	ñ/ r'   c                ó    <€ V ^8„  d   QhRS[ /# r‘   r’   )r$   rh   s   "€r%   r&   rÚ  Ë  s   ø€ ÷ ñ ™dñ r'   c                ó$   <€ \         SV `  4       pV# r”   )rp   r¡   rÿ  s   & €r%   r¡   ÚAWQuantLinear.list_buffersË  s   ø€ Ü‰gÑ"Ó$ˆØˆ
r'   )r^   )FF)	rÄ   rs   rt   rp  rq   r¡   rs  rt  ru  rv  s   @@r%   rØ  rØ  ¦  s   ù‡ € ÷!!õ !!÷H÷ ó r'   rØ  )=ru   r,   r�  r  Úconcurrent.futuresr   Ú	functoolsr   Útypingr   r   r   r   r	   r‰  rœ  Útorchr!   Útorch.nnr&  r~  Útorch.nn.modules.convr
   Úadapter.adapterr   r   Úmodels._constr   r   Úquantizationr   r   Úutils.backendr   Ú	utils.envr   Úutils.loggerr   Úutils.planar_packingr   r   r   r   r   r   Ú
utils.safer   rJ  r0   r=   rH   rT   rX   r'  rZ   rx  r•  r©  r¯  rÉ  rØ  ro   r'   r%   Ú<module>rî     sÛ   ðó
 Û Û 	Û 
Ý 1Ý ß 3Õ 3ã Û Ý Û Ý )ç @ß -ß *Ý $Ý !Ý (÷÷ õ (ñ ƒn€õ	#õõ&õ$õ$ôU
�b—i‘iô U
ôpM˜ô Mô`=Ð1ô =ô>
˜Oô 
ô@T#Ð.ô T#ônv\˜/ô v\ôH'Ð,ö 'r'   