+
    G-jc  ã                  óŽ   € ^ RI Ht ^ RIHt ^ RIt^ RIt^RIHtH	t	H
t
HtHt ^RIHt ^RIHt  ! R R]4      t ! R	 R
]4      tR# )é    )Úannotations)ÚAnyN)ÚTENSOR_NAME_QUANT_SUFFIXÚQuantizedValueÚQuantizedValueTypeÚattribute_to_kwargÚquantize_nparray)ÚQuantOperatorBase)ÚQDQOperatorBasec                  ó4   a € ] tR t^tV 3R ltV 3R ltRtV ;t# )ÚQPadc                	ó&   <€ \         SV `  W4       R # ©N©ÚsuperÚ__init__©ÚselfÚonnx_quantizerÚ	onnx_nodeÚ	__class__s   &&&€Úw/Volumes/fast/ai/experiments/nudenet-smoke/.venv/lib/python3.14/site-packages/onnxruntime/quantization/operators/pad.pyr   ÚQPad.__init__   ó   ø€ Ü‰Ñ˜Ö3ó    c           	     	ó`
  <€ V P                   pVP                  R 8X  g   Q hV P                  P                  ^8  g-   VP                  ^ ,          V P                  P
                  9  d   \        SV `  4        R# V P                  P
                  VP                  ^ ,          ,          p/ pVP                   F  p\        V4      pVP                  V4       K!  	  RV9  g   VR,          R8X  Edd   \        VP                  4      ^8”  EdÖ   VP                  ^,          R8w  Ed½   V P                  P                  P                  VP                  4      pV P                  P                  P                  VP                  4      pVe   Vf   \        SV `  4        R# V P                  P                  P                  VP                  ^,          4      pVEel   \         P"                  P%                  V4      p	V	P&                  ^ 8X  d   V	P)                  4       MV	^ ,          p
\         P"                  P%                  V4      pVP&                  ^ 8X  d   VP)                  4       MV^ ,          p\         P"                  P%                  V4      p\+        V P                  P,                  VVV
4      pVP                  ^,          \.        ,           p\         P"                  P1                  VV4      pV P                  P                  P3                  V4       V P                  P                  P5                  V4       WñP                  ^&   EMV P                  P7                  V^V P                  P,                  VP                  VP                  VP8                  R7      pV P                  P:                  P=                  V4       V^ ,          P>                  ^ ,          VP                  ^&   Ms\        VP                  4      ^8X  d'   VP                  PA                  VP                  4       M3VP                  ^,          R8X  g   Q hVP                  VP                  ^&   \C        VP>                  ^ ,          VP>                  ^ ,          \.        ,           VP                  VP                  \D        PF                  4      pVV P                  P
                  VP>                  ^ ,          &   VPH                  VP                  ^ &   VPH                  VP>                  ^ &   V P                  ;P:                  V.,          un        R# )ÚPadNÚmodeó   constantÚ )Úinitial_type)%ÚnodeÚop_typeÚ	quantizerÚopset_versionÚinputÚquantized_value_mapr   ÚquantizeÚ	attributer   ÚupdateÚlenÚmodelÚget_initializerÚzp_nameÚ
scale_nameÚonnxÚnumpy_helperÚto_arrayÚndimÚitemr	   Úactivation_qTyper   Ú
from_arrayÚremove_initializerÚadd_initializerÚ_get_quantize_input_nodesÚ	data_typeÚ	new_nodesÚextendÚoutputÚappendr   r   ÚInputÚq_name)r   r"   Úquantized_input_valueÚkwargsr)   ÚkvÚ	zp_tensorÚscale_tensorÚpadding_constant_initializerÚzp_arrayÚzp_valueÚscale_arrayÚscale_valueÚpadding_constant_arrayÚ quantized_padding_constant_arrayÚquantized_padding_constant_nameÚ&quantized_padding_constant_initializerÚpad_value_qnodesÚquantized_output_valuer   s   &                  €r   r(   ÚQPad.quantize   sí  ø€ Ø�y‰yˆØ�|‰|˜uÔ$Ð$Ð$ð �N‰N×(Ñ(¨2Ô-°4·:±:¸aµ=ÈÏÉ×HjÑHjÔ3jÜ‰GÑÔÙØ $§¡× BÑ BÀ4Ç:Á:ÈaÅ=Õ QÐàˆØŸœˆIÜ# IÓ.ˆBØ�M‰M˜"Öñ (ð ˜Ô 6¨&¥>°[Õ#@Ü�4—:‘:‹ Õ" t§z¡z°!¥}¸Õ':Ø ŸN™N×0Ñ0×@Ñ@ÐAV×A^ÑA^Ó_�	Ø#Ÿ~™~×3Ñ3×CÑCÐDY×DdÑDdÓe�ØÒ$¨Ò(<Ü‘GÑ$Ô&Ùà/3¯~©~×/CÑ/C×/SÑ/SÐTX×T^ÑT^Ð_`ÕTaÓ/bÐ,Ø/Ó;Ü#×0Ñ0×9Ñ9¸)ÓD�HØ2:·-±-À1Ô2D˜xŸ}™}œÈ(ÐSTÍ+�HÜ"&×"3Ñ"3×"<Ñ"<¸\Ó"J�KØ8C×8HÑ8HÈAÔ8M +×"2Ñ"2Ô"4ÐS^Ð_`ÕSa�KÜ-1×->Ñ->×-GÑ-GÐHdÓ-eÐ*Ü7GØŸ™×7Ñ7Ø.Ø#Ø ó	8Ð4ð 7;·j±jÀµmÔF^Õ6^Ð3Ü=A×=NÑ=N×=YÑ=YØ8Ø7ó>Ð:ð
 —N‘N×(Ñ(×;Ñ;Ð<XÔYØ—N‘N×(Ñ(×8Ñ8Ð9_Ô`Ø$C—J‘J˜q“Mð (,§~¡~×'OÑ'OØØØŸ™×7Ñ7Ø-×8Ñ8Ø-×5Ñ5Ø%1×%;Ñ%;ð (Pó (Ð$ð —N‘N×,Ñ,×3Ñ3Ð4DÔEØ$4°QÕ$7×$>Ñ$>¸qÕ$A�D—J‘J˜q’Mô �t—z‘z“? aÔ'à—J‘J×%Ñ%Ð&;×&CÑ&CÕDð  Ÿ:™: a�=¨BÔ.Ð.Ð.Ø$9×$AÑ$A�D—J‘J˜q‘Mô "0Ø�K‰K˜�NØ�K‰K˜�NÔ5Õ5Ø!×,Ñ,Ø!×)Ñ)Ü×$Ñ$ó"
Ðð >Tˆ�‰×*Ñ*¨4¯;©;°q­>Ñ:à-×4Ñ4ˆ�
‰
�1‰Ø/×6Ñ6ˆ�‰�A‰Ø�‰× Ò  T FÕ*× r   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r(   Ú__static_attributes__Ú__classcell__©r   s   @r   r   r      s   ø† õ4÷S+ó S+r   r   c                  óF   a € ] tR t^qtV 3R ltR R ltR R ltR tRtV ;t	# )ÚQDQPadc                	ó&   <€ \         SV `  W4       R # r   r   r   s   &&&€r   r   ÚQDQPad.__init__r   r   r   c               ó    € V ^8„  d   QhRRRR/# )é   Ú
attrs_dictzdict[str, Any]Úreturnznp.ndarray | NonerR   )Úformats   "r   Ú__annotate__ÚQDQPad.__annotate__u   s   € ÷ ñ ¨^ð Ð@Qñ r   c                ó´  € RpV P                   P                  P                  V P                  P                  ^ ,          4      pVf   R# \
        P                  P                  VP                  4      pV P                   P                  ^8  d+   \        P                  ! VP                  R^ 4      VR7      pV# \        V P                  P                  4      ^8¼  df   V P                  P                  ^,          '       dC   V P                   P                  P                  V P                  P                  ^,          4      pV# \        P                  ! ^ VR7      pV# )zƒ
Returns the Pad's constant padding value. Returns `None` if the padding value is
not constant (i.e., comes from a dynamic input).
NÚvalue)Údtype)r$   r,   Úget_tensor_typer"   r&   r0   ÚhelperÚtensor_dtype_to_np_dtypeÚ	elem_typer%   ÚnpÚarrayÚgetr+   Úget_constant_value)r   r`   Ú	const_valÚonnx_tensor_typeÚnp_dtypes   &&   r   Ú_get_pad_const_valÚQDQPad._get_pad_const_valu   sü   € ð
 ˆ	ØŸ>™>×/Ñ/×?Ñ?ÀÇ	Á	ÇÁÐPQÕ@RÓSÐØÒ#Ùä—;‘;×7Ñ7Ð8H×8RÑ8RÓSˆØ�>‰>×'Ñ'¨"Ô,ÜŸš §¡°¸Ó!;À8ÔLˆIð Ðô �—‘—‘Ó! QÔ&¨4¯9©9¯?©?¸1×+=Ô+=ØŸ™×,Ñ,×?Ñ?ÀÇ	Á	ÇÁÐPQÕ@RÓSˆIð Ðô Ÿš ¨(Ô3ˆIàÐr   c               ó   € V ^8„  d   QhRR/# )r_   ra   ÚboolrR   )rb   s   "r   rc   rd   ‰   s   € ÷ ñ °tñ r   c                ó€  € / pV P                   P                   F  p\        V4      pVP                  V4       K!  	  VP	                  RR4      pVR9   d   R# VR8X  da   V P                  V4      pVeL   VP                  \        P                  \        P                  39   d   \        VP                  4       4      ^ 8H  # R# )zV
Returns true if Pad's output should use the same quantization parameters as input[0]
r   r   TF)s   reflects   edges   wrap)r"   r)   r   r*   rn   rs   rg   rl   Úfloat32Úfloat16Úfloatr4   )r   r`   r)   rC   Úpad_modeÚpad_vals   &     r   Ú%_should_quantize_output_same_as_inputÚ,QDQPad._should_quantize_output_same_as_input‰   s¦   € ð ˆ
ØŸ™×,Ô,ˆIÜ# IÓ.ˆBØ×Ñ˜bÖ!ñ -ð —>‘> &¨+Ó6ˆØÐ5Ô5ñ ð �{Ô"Ø×-Ñ-¨jÓ9ˆGØÒ" w§}¡}¼¿¹ÄRÇZÁZÐ8PÔ'PÜ˜WŸ\™\›^Ó,°Ñ1Ð1ár   c                	óV  € V P                   P                  R 8X  g   Q hV P                   P                   F(  pV'       g   K  V P                  P	                  V4       K*  	  V P
                  '       g¸   V P                  4       '       dj   V P                  P                  V P                   P                  ^ ,          V P                   P                  ^ ,          V P                   P                  4       R# V P                  P	                  V P                   P                  ^ ,          4       R# R# )r   N)
r"   r#   r&   r$   Úquantize_activation_tensorÚdisable_qdq_for_node_outputr}   Úquantize_output_same_as_inputr=   Úname)r   Ú
input_names   & r   r(   ÚQDQPad.quantize¡   sË   € Ø�y‰y× Ñ  EÔ)Ð)Ð)àŸ)™)Ÿ/œ/ˆJß‰zØ—‘×9Ñ9¸*ÖEñ *ð ×/×/Ð/Ø×9Ñ9×;Ò;Ø—‘×<Ñ<¸T¿Y¹Y×=MÑ=MÈaÕ=PÐRV×R[ÑR[×RaÑRaÐbcÕRdÐfj×foÑfo×ftÑftÖuà—‘×9Ñ9¸$¿)¹)×:JÑ:JÈ1Õ:MÖNñ	 0r   rR   )
rS   rT   rU   rV   r   rs   r}   r(   rW   rX   rY   s   @r   r[   r[   q   s   ø† õ4õõ(÷0Oð Or   r[   )Ú
__future__r   Útypingr   Únumpyrl   r0   Úquant_utilsr   r   r   r   r	   Úbase_operatorr
   Úqdq_base_operatorr   r   r[   rR   r   r   Ú<module>rŒ      sC   ðõ
 #å ã Û ÷õ õ -Ý .ôW+Ðô W+ôt;Oˆ_ö ;Or   