� c��j����� gd�ZddlZddlZddlZddlZd d�Zd d�Zejje_ ejje_ Gd�dej�Z d�Z d�Z ed k(re �yy) )�run�runctx�Profile�Nc�V�tjt�j|||�S�N)� _pyprofile�_Utilsrr)� statement�filename�sorts �!/usr/lib64/python3.12/cProfile.pyrrs"�� � � �W� %� )� )�)�X�t� D�D�c�Z�tjt�j|||||�Sr)rr rr)r �globals�localsr r s r rrs+�� � � �W� %� ,� ,�Y���-5�t� =�=rc�F�eZdZ d d�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z d �Z y ) rc��ddl}|j|�j�j|�j �y�Nr)�pstats�Stats� strip_dirs� sort_stats� print_stats)�selfr rs r rzProfile.print_stats*s.���� � �T��%�%�'�2�2�4�8�D�D�Frc��ddl}t|d�5}|j�|j|j|�ddd�y#1swYyxYw)Nr�wb)�marshal�open� create_stats�dump�stats)r�filer�fs r � dump_statszProfile.dump_stats.s;��� �$�� �� � � � � �L�L����Q� '�� � �s �-A�Ac�D�|j�|j�yr)�disable�snapshot_stats�rs r rzProfile.create_stats4s�� � � �� ���rc��|j�}i|_i}|D]x}t|j�}|j}||j z }|j }|j}i} | |t|j�<||||| f|j|<�z|D]�}|js�t|j�}|jD]�} |t| j�} | j}|| j z }| j }| j}|| vr%| |} || dz }|| dz }|| dz }|| dz }||||f| |<����y#t$rY��wxYw)Nr���) �getstatsr!�label�code� callcount� reccallcount� inlinetime� totaltime�id�calls�KeyError) r�entries� callersdicts�entry�func�nc�cc�tt�ct�callers�subentry�prevs r r'zProfile.snapshot_stats8sq���-�-�/���� �� ��E�����$�D����B��e�(�(�(�B��!�!�B����B��G�+2�L��E�J�J�� (�!�2�r�2�w�6�D�J�J�t� ���E��{�{��U�Z�Z�(�� %� � �H�!�".�r�(�-�-�/@�"A��"�+�+�B��h�3�3�3�B�!�,�,�B�!�+�+�B��w��&�t�}���d�1�g� ���d�1�g� ���d�1�g� ���d�1�g� ��$&��B��N�G�D�M�!,��� $�!� �!�s�E� E�Ec�H�ddl}|j}|j|||�Sr)�__main__�__dict__r)r�cmdrC�dicts r rz Profile.run^s#���� � ���{�{�3��d�+�+rc��|j� t|||�|j�|S#|j�wxYwr)�enable�execr&)rrErrs r rzProfile.runctxcs7�� � � � � � ��g�v� &� �L�L�N�� �� �L�L�N�s � 1�Ac�~�|j� ||i|��|j�S#|j�wxYwr)rHr&)rr:�args�kws r �runcallzProfile.runcallls0�� � � � � ���$��$� �L�L�N��D�L�L�N�s�*�<c�&�|j�|Sr)rHr(s r � __enter__zProfile.__enter__ss�� � � � �� rc�$�|j�yr)r&)r�exc_infos r �__exit__zProfile.__exit__ws �� � � �rN)�����) �__name__� __module__� __qualname__rr$rr'rrrMrOrR�rr rrs6���G�(� �!3�L,� ���rrc�r�t|t�rdd|fS|j|j|jfS)N�~r)� isinstance�str� co_filename�co_firstlineno�co_name)r/s r r.r.|s5���$����Q��~��� � �$�"5�"5�t�|�|�D�Drc ���ddl}ddl}ddl}ddl}ddlm}d}||��}d|_|jdddd d� �|jd d d ddt|jj���|jddddd��|jdds!|j�|jd�|j�\}}||jdd|j�*|j j#|j�|_t%|�dkDr�|j&rd} |j(|dd�} n�|d} |j j+d|j j-| ��t/j0| �5} t3| j5�| d�} ddd�t6j8j;dd| ��} | | j<| j>ddd�} tA | d|j|jB�|S|j�|S#1swY�xYw#tD$r-}d|_#|j|jH�Yd}~|Sd}~wwxYw)Nr)� OptionParserzNcProfile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ...)�usageFz-oz --outfile�outfilezSave stats to )�dest�help�defaultz-sz--sortr z?Sort order when printing to stdout, based on pstats.Stats classr+)rcrdre�choicesz-m�module� store_truezProfile a library module)rc�actionrdrer*z(run_module(modname, run_name='__main__'))� run_module�modnamerIrC)�name�loader�origin)�__spec__�__file__rT� __package__� __cached__)%�os�sys�runpyr�optparser`�allow_interspersed_args� add_option�sortedr�sort_arg_dict_default�argv� print_usage�exit� parse_argsrb�path�abspath�lenrgrj�insert�dirname�io� open_code�compile�read� importlib� machinery� ModuleSpecrnrlrr �BrokenPipeError�stdout�errno)rsrtrurr`ra�parser�optionsrKr/�globs�progname�fp�spec�excs r �mainr��s4�� ����%� \�E� �� &�F�%*�F�"� ���d�K�i� &���6� ���d�H�6� N���v�|�|�9�9�:��<� ���d��,� '���8� �8�8�A�B�<����� ���� ��'�'�)�O�W�d��C�H�H�Q�K����"��'�'�/�/�'�/�/�:��� �4�y�1�}� �>�>�=�D�#�.�.���7��E� �A�w�H� �H�H�O�O�A�r�w�w���x�8� 9����h�'�2��r�w�w�y�(�F�;��(��&�&�1�1�z�$�9A�2�C�D�!� �K�K� �I�I�#�"� �E� � �4���g�o�o�w�|�|� D� �M� ���� �M�'(�'��� ��C�J� �H�H�S�Y�Y� � � �M��  �s$�H)�2#H5�)H2�5 I+�>"I&�&I+rC)NrS)�__all__�_lsprof�importlib.machineryr�r��profilerrr�__doc__�Profilerrr.r�rTrWrr �r�s���� '���� �� E�=��n�n�$�$�� ��"�"�*�*���[�g���[�~E�;�| �z���F�r