Hacked By AnonymousFox

Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/astroid/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/astroid/__pycache__/rebuilder.cpython-311.pyc

�

�܋fs7��2�UdZddlmZddlZddlZddlZddlmZmZddl	m
Z
ddlmZm
Z
ddlmZmZmZmZmZddlmZdd	lmZmZmZdd
lmZmZmZmZmZddl m!Z!ddl"m#Z#dd
l$m%Z%ddl&m'Z'ej(dkrddlm)Z)nddl*m)Z)dddddddd�Z+de,d<eddded��Z-edej.ej/��Z0edej1ej2��Z3edej4ej5��Z6eej7ej8ej.fZ9Gd �d!��Z:dS)"zlThis module contains utilities for rebuilding an _ast tree in
order to get a single Astroid representation.
�)�annotationsN)�Callable�	Generator)�StringIO)�	TokenInfo�generate_tokens)�
TYPE_CHECKING�TypeVar�Union�cast�overload)�nodes)�ParserModule�get_parser_module�parse_function_type_comment)�IS_PYPY�PY38�	PY38_PLUS�	PY39_PLUS�Context)�AstroidManager)�NodeNG)�Position)�SuccessfulInferenceResult���)�Final�	Arguments�
Comprehension�
ExceptHandler�Keyword�	MatchCase)�	arguments�
comprehension�ListCompFor�
GenExprFor�
excepthandler�keyword�
match_casezFinal[dict[str, str]]�REDIRECT�T_Doc�
ast.Module�ast.ClassDef)�ast.FunctionDef�ast.AsyncFunctionDef�
_FunctionT�_ForT�_WithTc��eZdZdZ		�d��d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d�Z	�d�d$�Z
e�r2e�d�d(���Z
e�d�d+���Z
e�d�d.���Z
e�d�d1���Z
e�d�d4���Z
e�d�d7���Z
e�d�d:���Z
e�d�d=���Z
e�d�d@���Z
e�d�dC���Z
e�d�dF���Z
e�d�dI���Z
e�d�dL���Z
e�d�dO���Z
e�d�dR���Z
e�d�dU���Z
e�d�dX���Z
e�d�d[���Z
e�d�d^���Z
e�d�da���Z
e�d�dd���Z
e�d�dg���Z
e�d�dj���Z
e�d�dm���Z
e�d�dp���Z
e�d�ds���Z
e�d�dv���Z
e�d�dy���Z
e�d�d|���Z
e�d�d���Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
ejd�kr
e�d�d����Z
ejd�kre�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
ejd�krAe�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�d�dĄ��Z
e�d�dDŽ��Z
e�d�dɄ��Z
e�d�d̄��Z
e�d�dτ��Z
ejd�kr
e�d�dӄ��Z
e�d�dՄ��Z
e�d�d؄��Z
e�d�dۄ��Z
e�d�dބ��Z
e�d�d���Z
e�d�d���Z
ejd�kr�e�d�d���Z
e�d�d���Z
e�d�d���Z
e�d�d���Z
e�d�d���Z
e�d�d����Z
e�d�d����Z
e�d�d����Z
e�dِd���Z
e�dڐd���Z
e�dېd���Z
e�dܐd���Z
e�dݐd	���Z
�dސd�Z
�dߐd�Z�d��d�Z�d��d�Z�d��d�Z�d�d�Z�d�d�Z�d��d�Z�d��d�Z�d��d�Z�d��d�Z�d��d�Z�d��d�Ze�d�d���Ze�d�d ���Z�d�d"�Z�d��d#�Z�d��d$�Z�d��d%�Z�d��d&�Z �d��d'�Z!	�d�d�d*�Z"�d��d+�Z#�d��d,�Z$�d��d-�Z%�d�d/�Z&�d��d0�Z'�d�d2�Z(�d��d3�Z)�d��d4�Z*�d��d5�Z+�d��d6�Z,e�d�d9���Z-e�d�d;���Z-�d�d?�Z-�d��d@�Z.�d��dA�Z/e�d�dC���Z0e�d�dE���Z0�d�dH�Z0�d��dI�Z1�d��dJ�Z2�d�dL�Z3�d��dM�Z4�d��dN�Z5�d��dO�Z6�d��dP�Z7�d��dQ�Z8�d��dR�Z9ejd�kr�d��dS�Z:ejd�kr�d��dT�Z;�d��dU�Z<�d��dV�Z=�d��dW�Z>�d��dX�Z?�d��dY�Z@�d�d[�ZA�d��d\�ZB�d��d]�ZCejd�kr�d��d^�ZD�d��d_�ZE�d�da�ZFeFZG�d��db�ZH�d��dc�ZI�ddd�ZJ�dÐde�ZK�dĐdf�ZL�dŐdg�ZM�dƐdh�ZN�dǐdi�ZO�dȐdj�ZP�d�dl�ZQ�d�dn�ZR�dʐdo�ZS�dːdp�ZT�d̐dq�ZU�d͐dr�ZVe�d�dt���ZWe�d��dv���ZW�d��dz�ZW�d��d{�ZX�d��d|�ZY�d��d}�ZZejd�kr>�dѐd~�Z[�dҐd�Z\�dӐd��Z]�dԐd��Z^�dՐd��Z_�d֐d��Z`�dאd��Za�dؐd��Zb�dِd��Zc�dڐd��ZddSdS(��
TreeRebuilderz1Rebuilds the _ast tree to become an Astroid tree.N�managerr�
parser_module�ParserModule | None�data�
str | None�return�Nonec���||_|r|�d��nd|_g|_g|_g|_i|_|�t��|_n||_|jj	|_
dS)N�
)�_manager�split�_data�
_global_names�_import_from_nodes�_delayed_assattr�_visit_methsr�_parser_module�module�_module)�selfr6r7r9s    �b/builddir/build/BUILD/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/astroid/rebuilder.py�__init__zTreeRebuilder.__init__<sx�� ��
�)-�7�T�Z�Z��%�%�%�4��
�BD���:<���8:���VX���� �"3�"5�"5�D���"/�D���*�1������noder,�+tuple[T_Doc, ast.Constant | ast.Str | None]c��	|jr�t|jd|jj��r�|jdj}t||jj��s;tr`t||jj��rFt|jt��r,|}|jdd�|_|j	dkrd|_	||fSn#t$rYnwxYw|dfS)zReturn the doc ast node.r�N���)�body�
isinstancerH�Expr�value�Strr�Constant�str�
col_offset�
IndexError)rIrM�first_value�doc_ast_nodes    rJ�_get_doczTreeRebuilder._get_docOs���	��y�

.�Z��	�!��d�l�6G�H�H�

.�"�i��l�0���k�4�<�+;�<�<�.��.�"�;���0E�F�F�.�#�;�#4�c�:�:�.�
$/�L� $�	�!�"�"�
�D�I�$�.�"�4�4�26��/���-�-����	�	�	��D�	�����T�z�s�B>C�
C�C�Mast.Attribute | ast.List | ast.Name | ast.Subscript | ast.Starred | ast.Tuplerc�z�|jj�t|j��t
j��S�N)rF�context_classes�get�type�ctxr�Load�rIrMs  rJ�_get_contextzTreeRebuilder._get_contextds*���"�2�6�6�t�D�H�~�~�w�|�T�T�TrL�5ast.ClassDef | ast.FunctionDef | ast.AsyncFunctionDef�parent�;nodes.ClassDef | nodes.FunctionDef | nodes.AsyncFunctionDef�Position | Nonec���|jsdSt|dd��}|jr|jdj}d�|j|jdz
|���}d}t
jf}t|tj	��rd}nt|tj
��rd}nd}tt|��j
��D]N}|�'|jt
jkr|j|jkrn&|j|vr|j|kr|}�B|jd	vr�Ld}�OdSt#|j|jdzdz
|jd|j|jdzdz
|jd�
��S)a*Return position information for ClassDef and FunctionDef nodes.

        In contrast to AST positions, these only include the actual keyword(s)
        and the class / function name.

        >>> @decorator
        >>> async def some_func(var: int) -> None:
        >>> ^^^^^^^^^^^^^^^^^^^
        N�
end_linenorr>rP�async�def�class>ro)�linenorYrm�end_col_offset)rA�getattrrRrq�join�token�NAMErSr�AsyncFunctionDef�FunctionDefrr�readlinerc�string�namer�start�end)	rIrMrirmr9�start_token�keyword_tokens�search_token�ts	         rJ�_get_position_infoz TreeRebuilder._get_position_infoqs����z�	��4�!(��|�T�!B�!B�
��9�	-���1��,�J��y�y���D�K�!�O�j�$@�A�B�B��(,��+0�:�-���f�e�4�5�5�	#�"�L�L�
��� 1�
2�
2�	#� �L�L�"�L� ��$���!8�9�9�	�	�A��'��F�e�j�(�(��H��	�)�)����v��'�'��8�|�+�+�"#�K���8�w�&�&���K�K��4���;��!2�1�!5�5��9�"�(��+��{�Q�U�1�X�-��1��5��8�	
�
�
�	
rL�NodesWithDocsTypec�
�|jr|jr|j�dStrdS|jpd}|jj}tr	t
sd}d�|j|dz
|���}d\}}d}tjtj	tj
tjh}t|tj��rd}tt!|��j��D]�}	|dur�|dur!|	jtjkr|	jdvrd}nl|durh|	jtjkrS|	jtjkr	|dkrd}n5|	jtjkr|dz
}n|	jtjkr|dz}��|	j|vr��|	jtjkrndSdS||	jdzdz
|j_|	jd|j_||	jdzdz
|j_|	jd|j_dS)	z9Fix start and end position of doc nodes for Python < 3.8.NrPr>)FFrTF>rorp) rA�doc_noderqrrrrtru�NEWLINE�INDENT�NL�COMMENTrSr�Modulerrryrcrvrz�OP�
exact_type�COLON�LPAR�RPAR�STRINGr|rYr}rmrr)
rIrMrq�	end_ranger9�found_start�	found_end�
open_brackets�
skip_tokenr�s
          rJ�_fix_doc_node_positionz$TreeRebuilder._fix_doc_node_position�s���z�	���	�$�+�2E��F��	��F���!��� $�
� 4�	��	�9�	��I��y�y���F�Q�J��$:�;�<�<��!-���Y��
� %�
�u�|�U�X�u�}�U�
��d�E�L�)�)�	��I� ��$���!8�9�9�	�	�A��E�!�!��5�(�(���%�*�,�,���$4�4�4�"&�K�K� �D�(�(�Q�V�u�x�-?�-?��|�u�{�2�2�}��7I�7I�$(�	�	�����3�3�%��*�
�
�����3�3�%��*�
���v��#�#���v���%�%����F�F��F�%����
�2�Q�6��
��#$�7�1�:��
� �#)�A�E�!�H�#4�q�#8��
� �'(�u�Q�x��
�$�$�$rL�newnode�nodes.NodeNGc�z�d|_d|_|���D]}|�|���dS)a$Reset end_lineno and end_col_offset attributes for PyPy 3.8.

        For some nodes, these are either set to -1 or only partially assigned.
        To keep consistency across astroid and pylint, reset all.

        This has been fixed in PyPy 3.9.
        For reference, an (incomplete) list of nodes with issues:
            - ClassDef          - For
            - FunctionDef       - While
            - Call              - If
            - Decorators        - TryExcept
            - With              - TryFinally
            - Assign
        N)rmrr�get_children�_reset_end_lineno)rIr��
child_nodes   rJr�zTreeRebuilder._reset_end_lineno�sP��"���!%���!�.�.�0�0�	/�	/�J��"�"�:�.�.�.�.�	/�	/rLr-�modnamerX�modpath�package�bool�nodes.Modulec�X�����|��\}}tj|||g|d��������fd�|jD����|�����������trtr��	����S)zmVisit a Module node by returning a fresh instance of it.

        Note: Method not called by 'visit'
        N)r{�file�pathr�ric�<��g|]}��|�����S���visit��.0�childr�rIs  ��rJ�
<listcomp>z.TreeRebuilder.visit_module.<locals>.<listcomp>��'���?�?�?�E�T�Z�Z��w�
'�
'�?�?�?rL)r�)
r]rr��postinitrRr�r�rrr�)rIrMr�r�r�r\r�s`     @rJ�visit_modulezTreeRebuilder.visit_module�s�����"�]�]�4�0�0���l��,�������
�
�
��	���?�?�?�?�?�T�Y�?�?�?��Z�Z��g�6�6�	�	
�	
�	
�	
�#�#�G�,�,�,��	,�t�	,��"�"�7�+�+�+��rL�ast.argr�nodes.AssignNamec��dSr`r��rIrMris   rJr�zTreeRebuilder.visit����CrL�
ast.arguments�nodes.Argumentsc��dSr`r�r�s   rJr�zTreeRebuilder.visitr�rL�
ast.Assert�nodes.Assertc��dSr`r�r�s   rJr�zTreeRebuilder.visitr�rLr0�nodes.AsyncFunctionDefc��dSr`r�r�s   rJr�zTreeRebuilder.visit�	��
�CrL�ast.AsyncFor�nodes.AsyncForc��dSr`r�r�s   rJr�zTreeRebuilder.visitr�rL�	ast.Await�nodes.Awaitc��dSr`r�r�s   rJr�zTreeRebuilder.visitr�rL�
ast.AsyncWith�nodes.AsyncWithc��dSr`r�r�s   rJr�zTreeRebuilder.visit"r�rL�
ast.Assign�nodes.Assignc��dSr`r�r�s   rJr�zTreeRebuilder.visit&r�rL�
ast.AnnAssign�nodes.AnnAssignc��dSr`r�r�s   rJr�zTreeRebuilder.visit*r�rL�
ast.AugAssign�nodes.AugAssignc��dSr`r�r�s   rJr�zTreeRebuilder.visit.r�rL�	ast.BinOp�nodes.BinOpc��dSr`r�r�s   rJr�zTreeRebuilder.visit2r�rL�
ast.BoolOp�nodes.BoolOpc��dSr`r�r�s   rJr�zTreeRebuilder.visit6r�rL�	ast.Break�nodes.Breakc��dSr`r�r�s   rJr�zTreeRebuilder.visit:r�rL�ast.Call�
nodes.Callc��dSr`r�r�s   rJr�zTreeRebuilder.visit>r�rLr.�nodes.ClassDefc��dSr`r�r�s   rJr�zTreeRebuilder.visitBr�rL�ast.Continue�nodes.Continuec��dSr`r�r�s   rJr�zTreeRebuilder.visitFr�rL�ast.Compare�
nodes.Comparec��dSr`r�r�s   rJr�zTreeRebuilder.visitJr�rL�ast.comprehension�nodes.Comprehensionc��dSr`r�r�s   rJr�zTreeRebuilder.visitNr�rL�
ast.Delete�nodes.Deletec��dSr`r�r�s   rJr�zTreeRebuilder.visitRr�rL�ast.Dict�
nodes.Dictc��dSr`r�r�s   rJr�zTreeRebuilder.visitVr�rL�ast.DictComp�nodes.DictCompc��dSr`r�r�s   rJr�zTreeRebuilder.visitZr�rL�ast.Expr�
nodes.Exprc��dSr`r�r�s   rJr�zTreeRebuilder.visit^r�rL�ast.ExceptHandler�nodes.ExceptHandlerc��dSr`r�r�s   rJr�zTreeRebuilder.visitbr�rL�ast.For�	nodes.Forc��dSr`r�r�s   rJr�zTreeRebuilder.visitfr�rL�ast.ImportFrom�nodes.ImportFromc��dSr`r�r�s   rJr�zTreeRebuilder.visitjr�rLr/�nodes.FunctionDefc��dSr`r�r�s   rJr�zTreeRebuilder.visitnr�rL�ast.GeneratorExp�nodes.GeneratorExpc��dSr`r�r�s   rJr�zTreeRebuilder.visitrr�rL�
ast.Attribute�nodes.Attributec��dSr`r�r�s   rJr�zTreeRebuilder.visitvr�rL�
ast.Global�nodes.Globalc��dSr`r�r�s   rJr�zTreeRebuilder.visitzr�rL�ast.If�nodes.Ifc��dSr`r�r�s   rJr�zTreeRebuilder.visit~r�rL�	ast.IfExp�nodes.IfExpc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�
ast.Import�nodes.Importc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�
ast.JoinedStr�nodes.JoinedStrc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.FormattedValue�nodes.FormattedValuec��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rLr�
ast.NamedExpr�nodes.NamedExprc��dSr`r�r�s   rJr�zTreeRebuilder.visit�����rL)r�	�ast.ExtSlice�nodes.Subscript�nodes.Tuplec��dSr`r�r�s   rJr�zTreeRebuilder.visit�rrL�	ast.Indexc��dSr`r�r�s   rJr�zTreeRebuilder.visit�rrL�ast.keyword�
nodes.Keywordc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�
ast.Lambda�nodes.Lambdac��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.List�
nodes.Listc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.ListComp�nodes.ListCompc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.Name�;nodes.Name | nodes.Const | nodes.AssignName | nodes.DelNamec��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.Nonlocal�nodes.Nonlocalc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.Ellipsis�nodes.Constc��dSr`r�r�s   rJr�zTreeRebuilder.visit�rrL�ast.NameConstantc��dSr`r�r�s   rJr�zTreeRebuilder.visit�rrL�ast.Strc��dSr`r�r�s   rJr�zTreeRebuilder.visit�rrL�	ast.Bytesc��dSr`r�r�s   rJr�zTreeRebuilder.visit�rrL�ast.Numc��dSr`r�r�s   rJr�zTreeRebuilder.visit�rrL�ast.Constantc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.Pass�
nodes.Passc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�	ast.Raise�nodes.Raisec��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�
ast.Return�nodes.Returnc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.Set�	nodes.Setc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.SetComp�
nodes.SetCompc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�	ast.Slice�nodes.Slicec��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�
ast.Subscriptc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.Starred�
nodes.Starredc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL�ast.Try�"nodes.TryExcept | nodes.TryFinallyc��dSr`r�r�s   rJr�zTreeRebuilder.visit�r�rL)r��ast.TryStar�
nodes.TryStarc��dSr`r�r�s   rJr�zTreeRebuilder.visitrrL�	ast.Tuplec��dSr`r�r�s   rJr�zTreeRebuilder.visitr�rL�ast.UnaryOp�
nodes.UnaryOpc��dSr`r�r�s   rJr�zTreeRebuilder.visitr�rL�	ast.While�nodes.Whilec��dSr`r�r�s   rJr�zTreeRebuilder.visitr�rL�ast.With�
nodes.Withc��dSr`r�r�s   rJr�zTreeRebuilder.visitr�rL�	ast.Yield�nodes.Yieldc��dSr`r�r�s   rJr�zTreeRebuilder.visitr�rL�
ast.YieldFrom�nodes.YieldFromc��dSr`r�r�s   rJr�zTreeRebuilder.visitr�rL)r�
�	ast.Match�nodes.Matchc��dSr`r�r�s   rJr�zTreeRebuilder.visitrrL�ast.match_case�nodes.MatchCasec��dSr`r�r�s   rJr�zTreeRebuilder.visit"rrL�ast.MatchValue�nodes.MatchValuec��dSr`r�r�s   rJr�zTreeRebuilder.visit&rrL�ast.MatchSingleton�nodes.MatchSingletonc��dSr`r�r�s   rJr�zTreeRebuilder.visit*�	���rL�ast.MatchSequence�nodes.MatchSequencec��dSr`r�r�s   rJr�zTreeRebuilder.visit0r|rL�ast.MatchMapping�nodes.MatchMappingc��dSr`r�r�s   rJr�zTreeRebuilder.visit6r|rL�ast.MatchClass�nodes.MatchClassc��dSr`r�r�s   rJr�zTreeRebuilder.visit<rrL�
ast.MatchStar�nodes.MatchStarc��dSr`r�r�s   rJr�zTreeRebuilder.visit@rrL�ast.MatchAs�
nodes.MatchAsc��dSr`r�r�s   rJr�zTreeRebuilder.visitDrrL�ast.MatchOr�
nodes.MatchOrc��dSr`r�r�s   rJr�zTreeRebuilder.visitHrrL�ast.pattern�
nodes.Patternc��dSr`r�r�s   rJr�zTreeRebuilder.visitLrrL�ast.ASTc��dSr`r�r�s   rJr�zTreeRebuilder.visitPr�rLc��dSr`r�r�s   rJr�zTreeRebuilder.visitTr�rL�ast.AST | None�
NodeNG | Nonec��|�dS|j}||jvr|j|}nQ|j}dt�||�����z}t
||��}||j|<|||��S)N�visit_)�	__class__rE�__name__r+rb�lowerrs)rIrMri�cls�visit_method�cls_name�
visit_names       rJr�zTreeRebuilder.visitXs����<��4��n���$�#�#�#��,�S�1�L�L��|�H�!�H�L�L��8�$D�$D�$J�$J�$L�$L�L�J�"�4��4�4�L�%1�D��c�"��|�D�&�)�)�)rL� nodes.AssignName | nodes.DelNamec��|jrC|j|jdvr/|����|j|��dS|jsJ�|jsJ�|j�|j|��dS)zASave assignment situation since node.parent is not available yet.rQN)rBr{�root�	set_localrirfs  rJ�_save_assignmentzTreeRebuilder._save_assignmentes�����	3�$�)�t�/A�"�/E�"E�"E��I�I�K�K�!�!�$�)�T�2�2�2�2�2��;���;��9���9��K�!�!�$�)�T�2�2�2�2�2rLc�:�|�|||j��S)z8Visit an arg node by returning a fresh AssName instance.)�visit_assignname�argr�s   rJ�	visit_argzTreeRebuilder.visit_argns���$�$�T�6�4�8�<�<�<rLc�|���d}d}tj|jr|jjnd|jr|jjnd|�����fd�|jD��}��fd�|jD��}d}d}g}	|jr,|jj}��|jj���}|jr,|jj}��|jj���}tr3|j
D]+}
|
j�"|
jj|
_|
jj|
_�,��fd�|j
D��}��fd�|j
D��}��fd�|jD��}
��fd�|j
D��}g}tr(��fd�|jD��}	��fd	�|jD��}��fd
�|jD��}��fd�|j
D��}g}tr��fd�|jD��}��||||	||
|||||||�
�
�
�jsJ�|r�j�|���|r�j�|����S)z<Visit an Arguments node by returning a fresh instance of it.Nc�<��g|]}��|�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>{s'���B�B�B�u��
�
�5�'�*�*�B�B�BrLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>|s'���J�J�J�5�D�J�J�u�g�.�.�J�J�JrLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>�s'���N�N�N�U�d�j�j���0�0�N�N�NrLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>�s'���P�P�P�e�t�z�z�%��1�1�P�P�PrLc�F��g|]}��|j�����Sr��r��
annotation�r�r�r�rIs  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>�s)���P�P�P�s�t�z�z�#�.�'�:�:�P�P�PrLc�F��g|]}��|j�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>�s6���"
�"
�"
�47�D�J�J�s�~�w�/�/�"
�"
�"
rLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>�s'���T�T�T�%�4�:�:�e�W�5�5�T�T�TrLc�F��g|]}��|j�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>�s6���'�'�'�8;��
�
�3�>�7�3�3�'�'�'rLc�>��g|]}��|������S��ri��check_type_commentr�s  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>�s9���
�
�
�?D�D�#�#�E�'�#�:�:�
�
�
rLc�>��g|]}��|������Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>�s9���#
�#
�#
�?D�D�#�#�E�'�#�:�:�#
�#
�#
rLc�>��g|]}��|������Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_arguments.<locals>.<listcomp>�s<���(�(�(���'�'��g�'�>�>�(�(�(rL)
�args�defaults�
kwonlyargs�posonlyargs�kw_defaultsr�kwonlyargs_annotations�posonlyargs_annotations�varargannotation�kwargannotation�type_comment_args�type_comment_kwonlyargs�type_comment_posonlyargs)rr�varargr��kwargr�r�r�r�rr�rmrrr�rr�r�rir�)rIrMrir�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�s`                  @rJ�visit_argumentszTreeRebuilder.visit_argumentsrsT����!�� ���/�#�{�4�D�K�O�O��"�j�2�D�J�N�N�d��
�
��
C�B�B�B�B��	�B�B�B��J�J�J�J�J�D�M�J�J�J��*.��)-��.0���;�	K��[�_�F�#�z�z�$�+�*@�'�J�J���:�	I��J�N�E�"�j�j���)>��H�H�O��	G���
G�
G���>�-�%(�^�%>�C�N�),��)F�C�&��N�N�N�N�N�d�o�N�N�N�
�P�P�P�P�P�t�?O�P�P�P��P�P�P�P�P�d�i�P�P�P��"
�"
�"
�"
�"
�;?�?�"
�"
�"
��8:���	�T�T�T�T�T�4�CS�T�T�T�K�'�'�'�'�'�?C�?O�'�'�'�#�
�
�
�
�
�HL�	�
�
�
��#
�#
�#
�#
�#
�HL��#
�#
�#
��9;� ��	�(�(�(�(�(�!�-�(�(�(�$�
	�����!�#�#�#�#9�$;�-�+�/�$;�%=�	�	
�	
�	
� �~���~��	6��N�$�$�V�W�5�5�5��	5��N�$�$�U�G�4�4�4��rLc
�.�tj|j|jt	|dd��t	|dd��|���}d}|jr|�|j|��}|�|�|j|��|��|S)z8Visit a Assert node by returning a fresh instance of it.rmNrr�rqrYrmrrri)	r�AssertrqrYrs�msgr�r��test)rIrMrir�r�s     rJ�visit_assertzTreeRebuilder.visit_assert�s����,��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��"���8�	0��*�*�T�X�w�/�/�C�������D�I�w�7�7��=�=�=��rL�Hast.Assign | ast.arg | ast.For | ast.AsyncFor | ast.With | ast.AsyncWith�Znodes.Assign | nodes.Arguments | nodes.For | nodes.AsyncFor | nodes.With | nodes.AsyncWithc�"�t|dd��}|sdS	|j�|��}n#t$rYdSwxYw|jsdS|�|jd|���}t
|tj��sdS|j	S)N�type_commentrr�)
rsrF�parse�SyntaxErrorrRr�rSrrTrU)rIrMrir��type_comment_ast�type_objects      rJr�z TreeRebuilder.check_type_comment�s����t�^�T�:�:���	��4�	�#�2�8�8��F�F�����	�	�	��4�4�	���� �$�	��4��j�j�!1�!6�q�!9�&�j�I�I���+�u�z�2�2�	��4�� � s�2�
A�A�&ast.FunctionDef | ast.AsyncFunctionDef�)tuple[NodeNG | None, list[NodeNG]] | Nonec����t|dd��}|sdS	t|��}n#t$rYdSwxYw|sdSd}��fd�|jpgD��}|jr��|j���}||fS)Nr�c�<��g|]}��|�����Sr�r�)r��elemrirIs  ��rJr�z=TreeRebuilder.check_function_type_comment.<locals>.<listcomp>s4���"
�"
�"
�)-�D�J�J�t�V�$�$�"
�"
�"
rL)rsrr��argtypes�returnsr�)rIrMrir�r�r�r�s` `    rJ�check_function_type_commentz)TreeRebuilder.check_function_type_comment�s������t�^�T�:�:���	��4�	�:�<�H�H�����	�	�	��4�4�	���� �	��4�!%��"
�"
�"
�"
�"
�2B�2K�2Q�r�"
�"
�"
���#�	C��j�j�!1�!9�6�B�B�G��� � s�)�
7�7c�D�|�tj||��Sr`)�_visit_functiondefrrwr�s   rJ�visit_asyncfunctiondefz$TreeRebuilder.visit_asyncfunctiondefs���&�&�u�'=�t�V�L�L�LrLc�D�|�tj||��Sr`)�
_visit_forr�AsyncForr�s   rJ�visit_asyncforzTreeRebuilder.visit_asyncfors�����u�~�t�V�<�<�<rLc
���tj|j|jt	|dd��t	|dd��|���}|�|�|j|�����|S)Nrmrrr��rU)r�AwaitrqrYrsr�r�rU�rIrMrir�s    rJ�visit_awaitzTreeRebuilder.visit_awaitsr���+��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	���t�z�z�$�*�g�>�>��?�?�?��rLc�D�|�tj||��Sr`)�_visit_withr�	AsyncWithr�s   rJ�visit_asyncwithzTreeRebuilder.visit_asyncwith s��������v�>�>�>rLc
�@���tj|j|jt	|dd��t	|dd��|������|����}����fd�|jD����|j	���|����S)z8Visit a Assign node by returning a fresh instance of it.rmNrrr�r�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z.TreeRebuilder.visit_assign.<locals>.<listcomp>/s'���J�J�J�E�T�Z�Z��w�/�/�J�J�JrL)�targetsrU�type_annotation)
r�AssignrqrYrsr�r�r�r�rU)rIrMrir�r�s`   @rJ�visit_assignzTreeRebuilder.visit_assign#s������,��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
���1�1�$�w�1�G�G�����J�J�J�J�J�T�\�J�J�J��*�*�T�Z��1�1�+�	�	
�	
�	
�
�rLc
�Z�tj|j|jt	|dd��t	|dd��|���}|�|�|j|��|�|j|��|j	|�|j
|�����|S)z<Visit an AnnAssign node by returning a fresh instance of it.rmNrrr�)�targetr��simplerU)r�	AnnAssignrqrYrsr�r�r�r�r�rUr�s    rJ�visit_annassignzTreeRebuilder.visit_annassign5s����/��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����:�:�d�k�7�3�3��z�z�$�/�7�;�;��;��*�*�T�Z��1�1�		�	
�	
�	
��rL�	node_namec��dSr`r��rIrMrir�s    rJr�zTreeRebuilder.visit_assignnameG�	��	�rLc��dSr`r�r�s    rJr�zTreeRebuilder.visit_assignnameMs���rL�nodes.AssignName | Nonec��|�dStj||j|jt	|dd��t	|dd��|���}|�|��|S)z_Visit a node and return a AssignName node.

        Note: Method not called by 'visit'
        Nrmrr�r{rqrYrmrrri)r�
AssignNamerqrYrsr�)rIrMrir�r�s     rJr�zTreeRebuilder.visit_assignnameQsp�����4��"���;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	
���g�&�&�&��rLc�d�tj|jjt	|j��dz|j|jt|dd��t|dd��|���}|�	|�
|j|��|�
|j|����|S)z;Visit a AugAssign node by returning a fresh instance of it.�=rmNrr��oprqrYrmrrri)
r�	AugAssignrF�bin_op_classesrcrrqrYrsr�r�r�rUr�s    rJ�visit_augassignzTreeRebuilder.visit_augassignfs����/��"�1�$�t�w�-�-�@�3�F��;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	����J�J�t�{�G�,�,�d�j�j���W�.M�.M�	
�	
�	
��rLc�^�tj|jjt	|j��|j|jt|dd��t|dd��|���}|�	|�
|j|��|�
|j|����|S)z7Visit a BinOp node by returning a fresh instance of it.rmNrrr)
r�BinOprFr
rcrrqrYrsr�r��left�rightr�s    rJ�visit_binopzTreeRebuilder.visit_binopvs����+��"�1�$�t�w�-�-�@��;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	����J�J�t�y�'�*�*�D�J�J�t�z�7�,K�,K�	
�	
�	
��rLc� ���tj�jjt	|j��|j|jt|dd��t|dd��|������	��fd�|j
D�����S)z8Visit a BoolOp node by returning a fresh instance of it.rmNrrrc�<��g|]}��|�����Sr�r�r�s  ��rJr�z.TreeRebuilder.visit_boolop.<locals>.<listcomp>��'���N�N�N��$�*�*�U�G�4�4�N�N�NrL)r�BoolOprF�bool_op_classesrcrrqrYrsr��valuesr�s`  @rJ�visit_boolopzTreeRebuilder.visit_boolop�s������,��"�2�4���=�=�A��;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	���N�N�N�N�N�$�+�N�N�N�O�O�O��rLc
��tj|j|jt	|dd��t	|dd��|���S)z7Visit a Break node by returning a fresh instance of it.rmNrrr�)r�BreakrqrYrsr�s   rJ�visit_breakzTreeRebuilder.visit_break�sG���{��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
�	
rLc
�6���tj|j|jt	|dd��t	|dd��|��������|j�����fd�|jD����fd�|j	D������S)z:Visit a CallFunc node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z,TreeRebuilder.visit_call.<locals>.<listcomp>��'���D�D�D��$�*�*�U�G�,�,�D�D�DrLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z,TreeRebuilder.visit_call.<locals>.<listcomp>�s'���L�L�L�U�d�j�j���0�0�L�L�LrL)�funcr��keywords)
r�CallrqrYrsr�r�rr�r r�s`  @rJ�
visit_callzTreeRebuilder.visit_call�s������*��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	������D�I�w�/�/�D�D�D�D�D�$�)�D�D�D�L�L�L�L�L�d�m�L�L�L�	�	
�	
�	
�
�rLT�newstylec
�|�����|��\}}tj|j|j|jt
|dd��t
|dd��|����d}|jD]*}|jdkr��	|���j
}n�+��|���}����fd�|j
D����fd�|jD��|||��fd�|jD����|�����	|����	��������S)
z(Visit a ClassDef node to become astroid.rmNrrr�	metaclassc�<��g|]}��|�����Sr�r�r�s  ��rJr�z0TreeRebuilder.visit_classdef.<locals>.<listcomp>�s'���@�@�@�E�T�Z�Z��w�
'�
'�@�@�@rLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z0TreeRebuilder.visit_classdef.<locals>.<listcomp>�r�rLc�R��g|]#}|jdk�
��|�����$S)r%)r�r�)r��kwdr�rIs  ��rJr�z0TreeRebuilder.visit_classdef.<locals>.<listcomp>�s>���
�
�
���7�k�)�)��
�
�3��(�(�)�)�)rL)�positionr�)r]r�ClassDefr{rqrYrsr r�r�rU�visit_decoratorsr��basesrRr�r�)	rIrMrir#r\r%r)�
decoratorsr�s	`       @rJ�visit_classdefzTreeRebuilder.visit_classdef�s�����"�]�]�4�0�0���l��.����;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
���	��}�	�	�G��{�k�)�)� �J�J�w��8�8�>�	���*��*�*�4��9�9�
����@�@�@�@�@�T�Z�@�@�@�?�?�?�?�?�T�Y�?�?�?����
�
�
�
�
��=�
�
�
�
�,�,�T�7�;�;��Z�Z��g�6�6�	�
	
�
	
�
	
�	
�#�#�G�,�,�,��rLc
��tj|j|jt	|dd��t	|dd��|���S)z:Visit a Continue node by returning a fresh instance of it.rmNrrr�)r�ContinuerqrYrsr�s   rJ�visit_continuezTreeRebuilder.visit_continue�sG���~��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
�	
rLc
�4���tj|j|jt	|dd��t	|dd��|��������|j�����fd�t|j	|j
��D�����S)z9Visit a Compare node by returning a fresh instance of it.rmNrrr�c�p��g|]2\}}�jj|j��|���f��3Sr�)rF�cmp_op_classesr�r�)r�r�exprr�rIs   ��rJr�z/TreeRebuilder.visit_compare.<locals>.<listcomp>�sR���
�
�
�
�R���'�6�r�|�D��J�J�t�W�-�-��
�
�
rL)r�ComparerqrYrsr�r�r�zip�ops�comparatorsr�s`  @rJ�
visit_comparezTreeRebuilder.visit_compare�s������-��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����J�J�t�y�'�*�*�
�
�
�
�
�
#&�d�h��0@�"A�"A�
�
�
�		
�		
�		
��rLc����tj|�������|j�����|j�����fd�|jD��t|j�����S)z?Visit a Comprehension node by returning a fresh instance of it.c�<��g|]}��|�����Sr�r�r�s  ��rJr�z5TreeRebuilder.visit_comprehension.<locals>.<listcomp>�s'���>�>�>�E�T�Z�Z��w�
'�
'�>�>�>rL)	rr r�r�r��iter�ifsr��is_asyncr�s`  @rJ�visit_comprehensionz!TreeRebuilder.visit_comprehension�s������%�f�-�-������J�J�t�{�G�,�,��J�J�t�y�'�*�*�>�>�>�>�>�T�X�>�>�>������		
�	
�	
��rL�nodes.Decorators | Nonec�J���|jsdStjdkr7|jdj}|jdj}|jdj}n|j}d}d}t
j||j|||������	��fd�|jD�����S)zqVisit a Decorators node by returning a fresh instance of it.

        Note: Method not called by 'visit'
        NrrrQr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z2TreeRebuilder.visit_decorators.<locals>.<listcomp> s'���V�V�V��$�*�*�U�G�4�4�V�V�VrL)
�decorator_list�sys�version_inforqrmrrr�
DecoratorsrYr�)rIrMrirqrmrrr�s`     @rJr,zTreeRebuilder.visit_decoratorss������"�	��4���v�%�%��(��+�2�F��,�R�0�;�J�!�0��4�C�N�N��[�F��J�!�N��"����!�)��
�
�
��	���V�V�V�V�V�$�BU�V�V�V�W�W�W��rLc
�����tj|j|jt	|dd��t	|dd��|��������fd�|jD�����S)z8Visit a Delete node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z.TreeRebuilder.visit_delete.<locals>.<listcomp>-s'���O�O�O��$�*�*�U�G�4�4�O�O�OrL)r�DeleterqrYrsr�r�r�s`  @rJ�visit_deletezTreeRebuilder.visit_delete#s{�����,��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	���O�O�O�O�O�$�,�O�O�O�P�P�P��rL�,Generator[tuple[NodeNG, NodeNG], None, None]c#�6K�t|j|j��D]{\}}|�||��}|sBt	j|j|jt|dd��t|dd��|���}n|�||��}||fV��|dS�Nrmrrr�)	r8�keysrr�r�
DictUnpackrqrYrs)rIrMrir��keyrU�
rebuilt_value�rebuilt_keys        rJ�_visit_dict_itemszTreeRebuilder._visit_dict_items0s������d�i���5�5�	-�	-�J�C�� �J�J�u�g�6�6�M��
7�#�.�(�/�,�7�&�}�l�D�I�I�#*�=�:J�D�#Q�#Q�!�
�����#�j�j��g�6�6���}�,�,�,�,�,�	-�	-rLc
��tj|j|jt	|dd��t	|dd��|���}t|�|||����}|�|��|S)z6Visit a Dict node by returning a fresh instance of it.rmNrrr�)r�DictrqrYrs�listrUr�)rIrMrir��itemss     rJ�
visit_dictzTreeRebuilder.visit_dictDs����*��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��TX��"�"�4���9�9�T
�T
��	��������rLc
�B���tj|j|jt	|dd��t	|dd��|��������|j�����|j�����fd�|j	D�����S)z:Visit a DictComp node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z0TreeRebuilder.visit_dictcomp.<locals>.<listcomp>a�'���E�E�E�E�T�Z�Z��w�
'�
'�E�E�ErL)
r�DictComprqrYrsr�r�rRrU�
generatorsr�s`  @rJ�visit_dictcompzTreeRebuilder.visit_dictcompTs������.��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����J�J�t�x��)�)��J�J�t�z�7�+�+�E�E�E�E�E�T�_�E�E�E�	
�	
�	
�
�rLc
���tj|j|jt	|dd��t	|dd��|���}|�|�|j|����|S)z6Visit a Expr node by returning a fresh instance of it.rmNrrr�)rrTrqrYrsr�r�rUr�s    rJ�
visit_exprzTreeRebuilder.visit_expreso���*��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	������D�J��8�8�9�9�9��rLc
�D���tj|j|jt	|dd��t	|dd��|��������|j�����|�|j	����fd�|j
D�����S)z@Visit an ExceptHandler node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z5TreeRebuilder.visit_excepthandler.<locals>.<listcomp>�r�rL)rr!rqrYrsr�r�rcr�r{rRr�s`  @rJ�visit_excepthandlerz!TreeRebuilder.visit_excepthandlerrs������%��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����J�J�t�y�'�*�*��!�!�$����;�;�?�?�?�?�?�T�Y�?�?�?�	
�	
�	
�
�rLr��type[nodes.For]c��dSr`r��rIr�rMris    rJr�zTreeRebuilder._visit_for�r�rL�type[nodes.AsyncFor]c��dSr`r�rhs    rJr�zTreeRebuilder._visit_for�r�rL�type[_ForT]�ast.For | ast.AsyncForr2c
�:���|j}trPtsIt|tj��r/�jr(�j|jdz
�d��}||j|t|dd��t|dd��|������
|����}����|j
�����|j�����fd�|jD����fd	�|jD��|�
���S)z5Visit a For node by returning a fresh instance of it.rPrnrmNrrr�r�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z,TreeRebuilder._visit_for.<locals>.<listcomp>�rrLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z,TreeRebuilder._visit_for.<locals>.<listcomp>�s'���H�H�H�5�D�J�J�u�g�.�.�H�H�HrL)r�r>rR�orelser�)rYrrrS�astr�rArq�indexrsr�r�r�r�r>rRrp)rIr�rMrirYr�r�s`     @rJr�zTreeRebuilder._visit_for�s;�����_�
��	D�9�	D��D�#�,�)G�)G�	D�D�J�	D���D�K�!�O�4�:�:�7�C�C�J��#��;�!��t�\�4�8�8�"�4�)9�4�@�@��

�
�
���1�1�$�w�1�G�G������:�:�d�k�7�3�3����D�I�w�/�/�D�D�D�D�D�$�)�D�D�D�H�H�H�H�H�D�K�H�H�H�+�	�	
�	
�	
��rLc�D�|�tj||��Sr`)r�r�Forr�s   rJ�	visit_forzTreeRebuilder.visit_for�s�����u�y�$��7�7�7rLc
��d�|jD��}tj|jpd||jpd|j|jt|dd��t|dd��|���}|j�	|��|S)z=Visit an ImportFrom node by returning a fresh instance of it.c�*�g|]}|j|jf��Sr��r{�asname�r��aliass  rJr�z2TreeRebuilder.visit_importfrom.<locals>.<listcomp>��!��D�D�D��%�*�e�l�+�D�D�DrL�Nrmrr)�fromname�names�levelrqrYrmrrri)
rr�
ImportFromrGr�rqrYrsrC�append)rIrMrirr�s     rJ�visit_importfromzTreeRebuilder.visit_importfrom�s���E�D���D�D�D���"��[�&�B���*�$���;����t�\�4�8�8�"�4�)9�4�@�@��

�

�

��	
��&�&�w�/�/�/��rL�type[nodes.FunctionDef]c��dSr`r�rhs    rJr�z TreeRebuilder._visit_functiondef�r�rL�type[nodes.AsyncFunctionDef]c��dSr`r�rhs    rJr�z TreeRebuilder._visit_functiondef�s	��	�rL�type[_FunctionT]r1c
�"����j�i����|��\}}|j}tr|jr|jdj}||j||jt|dd��t|dd��|������	|���}|j
r��|j
���}nd}dx}}	��|���}
|
r|
\}	}��
��|j�����fd�|jD��|||	|��|�����|������������j����S)z,Visit an FunctionDef node to become astroid.rrmNrrrc�<��g|]}��|�����Sr�r�r�s  ��rJr�z4TreeRebuilder._visit_functiondef.<locals>.<listcomp>�rrL)r�rRr.r��type_comment_returnsr�r*r�)rBr�r]rqrrEr{rYrsr,r�r�r�r�r�rRr�r��pop)rIr�rMrir\rqr.r�r�r��type_comment_annotationr�s`          @rJr�z TreeRebuilder._visit_functiondef�s�����	
��!�!�"�%�%�%�!�]�]�4�0�0���l�����	3��,�	3��(��+�2�F��#�������t�\�4�8�8�"�4�)9�4�@�@��
�
�
���*�*�4��9�9�
��<�	��j�j���w�7�7�G�G��G�37�7��0�"&�"B�"B�4��"Q�"Q��"�	N�6M�3� �"3�������D�I�w�/�/�D�D�D�D�D�$�)�D�D�D�!��!5�/��,�,�T�7�;�;��Z�Z��g�6�6�	�		
�		
�		
�	
�#�#�G�,�,�,����� � � ��rLc�D�|�tj||��Sr`)r�rrxr�s   rJ�visit_functiondefzTreeRebuilder.visit_functiondef	s���&�&�u�'8�$��G�G�GrLc
����tj|j|jt	|dd��t	|dd��|��������|j�����fd�|jD�����S)z>Visit a GeneratorExp node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z4TreeRebuilder.visit_generatorexp.<locals>.<listcomp>r]rL)	r�GeneratorExprqrYrsr�r��eltr_r�s`  @rJ�visit_generatorexpz TreeRebuilder.visit_generatorexps������$��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����J�J�t�x��)�)�E�E�E�E�E�T�_�E�E�E�	
�	
�	
��rL�2nodes.Attribute | nodes.AssignAttr | nodes.DelAttrc���|�|��}|tjkrHtj|j|j|jt|dd��t|dd��|���}n�|tj	kr|tj
|j|j|jt|dd��t|dd��|���}t|tj��s|j
�|��nGtj|j|j|jt|dd��t|dd��|���}|�|�|j|����|S)z<Visit an Attribute node by returning a fresh instance of it.rmNrr)�attrnamerqrYrmrrri)rgr�Delr�DelAttr�attrrqrYrs�Store�
AssignAttrrSr!rDr��	Attributer�r�rU�rIrMri�contextr�s     rJ�visit_attributezTreeRebuilder.visit_attribute si���#�#�D�)�)���g�k�!�!��m����{��?�"�4��t�<�<�&�t�-=�t�D�D�����G�G���
�
%�
%��&����{��?�"�4��t�<�<�&�t�-=�t�D�D�����G��f�e�&9�:�:�
6��%�,�,�W�5�5�5���o����{��?�"�4��t�<�<�&�t�-=�t�D�D�����G�	������D�J��8�8�9�9�9��rLc��tj|j|j|jt|dd��t|dd��|���}|jr>|jD]6}|jd�|g���|���7|S)z&Visit a Global node to become astroid.rmNrr�rrqrYrmrrrirQ)	r�GlobalrrqrYrsrB�
setdefaultr�)rIrMrir�r{s     rJ�visit_globalzTreeRebuilder.visit_globalOs����,��*��;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
����	L��
�
L�
L���"�2�&�1�1�$��;�;�B�B�7�K�K�K�K��rLc
�4���tj|j|jt	|dd��t	|dd��|��������|j�����fd�|jD����fd�|j	D�����S)z5Visit an If node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z*TreeRebuilder.visit_if.<locals>.<listcomp>kr�rLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z*TreeRebuilder.visit_if.<locals>.<listcomp>l�'���A�A�A�E�T�Z�Z��w�
'�
'�A�A�ArL)
r�IfrqrYrsr�r�r�rRrpr�s`  @rJ�visit_ifzTreeRebuilder.visit_if_s������(��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����J�J�t�y�'�*�*�?�?�?�?�?�T�Y�?�?�?�A�A�A�A�A�T�[�A�A�A�	
�	
�	
�
�rLc
�L�tj|j|jt	|dd��t	|dd��|���}|�|�|j|��|�|j|��|�|j	|����|S)z7Visit a IfExp node by returning a fresh instance of it.rmNrrr�)
r�IfExprqrYrsr�r�r�rRrpr�s    rJ�visit_ifexpzTreeRebuilder.visit_ifexpps����+��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����J�J�t�y�'�*�*��J�J�t�y�'�*�*��J�J�t�{�G�,�,�	
�	
�	
�
�rLc�,�d�|jD��}tj||j|jt|dd��t|dd��|���}|jD]8\}}|p|}|�|�d��d|���9|S)z8Visit a Import node by returning a fresh instance of it.c�*�g|]}|j|jf��Sr�rxrzs  rJr�z.TreeRebuilder.visit_import.<locals>.<listcomp>�r|rLrmNrrr��.r)rr�ImportrqrYrsr�r@)rIrMrirr�r{rys       rJ�visit_importzTreeRebuilder.visit_import�s���D�D���D�D�D���,���;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��$�M�	:�	:�L�D�&��>�T�D����T�Z�Z��_�_�Q�/��9�9�9�9��rLc
�����tj|j|jt	|dd��t	|dd��|��������fd�|jD�����S)Nrmrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_joinedstr.<locals>.<listcomp>�rrL)r�	JoinedStrrqrYrsr�rr�s`  @rJ�visit_joinedstrzTreeRebuilder.visit_joinedstr�s{�����/��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	���N�N�N�N�N�$�+�N�N�N�O�O�O��rLc
�&�tj|j|jt	|dd��t	|dd��|���}|�|�|j|��|j|�|j	|�����|S)Nrmrrr�)rU�
conversion�format_spec)
r�FormattedValuerqrYrsr�r�rUr�r�r�s    rJ�visit_formattedvaluez"TreeRebuilder.visit_formattedvalue�s����&��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����*�*�T�Z��1�1����
�
�4�#3�W�=�=�	�	
�	
�	
�
�rLc
��tj|j|jt	|dd��t	|dd��|���}|�|�|j|��|�|j|����|SrO)	r�	NamedExprrqrYrsr�r�r�rUr�s    rJ�visit_namedexprzTreeRebuilder.visit_namedexpr�s����o��{��?�"�4��t�<�<�&�t�-=�t�D�D��
���G�
����
�
�4�;��0�0�$�*�*�T�Z��2Q�2Q�
�
�
��NrLc����tjtj|��������fd�|jD�����S)z>Visit an ExtSlice node by returning a fresh instance of Tuple.)rdric�<��g|]}��|�����Sr�r�)r��dimr�rIs  ��rJr�z0TreeRebuilder.visit_extslice.<locals>.<listcomp>�s'���L�L�L�3�d�j�j��g�6�6�L�L�LrL)r�Tuplerrer��dimsr�s`  @rJ�visit_extslicezTreeRebuilder.visit_extslice�sO����
�k�g�l�6�B�B�B�G����L�L�L�L�L�$�)�L�L�L�M�M�M��NrLc�8�|�|j|��S)z;Visit a Index node by returning a fresh instance of NodeNG.)r�rUr�s   rJ�visit_indexzTreeRebuilder.visit_index�s���:�:�d�j�&�1�1�1rLc��tj|jt|dd��t|dd��t|dd��t|dd��|���}|�|�|j|����|S)z9Visit a Keyword node by returning a fresh instance of it.rqNrYrmrr)r�rqrYrmrrri)rr"r�rsr�r�rUr�s    rJ�
visit_keywordzTreeRebuilder.visit_keyword�s����-����4��4�0�0��t�\�4�8�8��t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	������D�J��8�8�9�9�9��rLc
��tj|j|jt	|dd��t	|dd��|���}|�|�|j|��|�|j|����|S)z8Visit a Lambda node by returning a fresh instance of it.rmNrrr�)	r�LambdarqrYrsr�r�r�rRr�s    rJ�visit_lambdazTreeRebuilder.visit_lambda�s����,��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	������D�I�w�7�7����D�I�w�9W�9W�X�X�X��rLc������|��}tj||j|jt|dd��t|dd��|��������fd�|jD�����S)z6Visit a List node by returning a fresh instance of it.rmNrr�rdrqrYrmrrric�<��g|]}��|�����Sr�r�r�s  ��rJr�z,TreeRebuilder.visit_list.<locals>.<listcomp>��'���L�L�L��$�*�*�U�G�4�4�L�L�LrL)rgr�ListrqrYrsr��eltsr�s`   @rJ�
visit_listzTreeRebuilder.visit_list�s������#�#�D�)�)���*���;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	���L�L�L�L�L�$�)�L�L�L�M�M�M��rLc
����tj|j|jt	|dd��t	|dd��|��������|j�����fd�|jD�����S)z:Visit a ListComp node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z0TreeRebuilder.visit_listcomp.<locals>.<listcomp>r]rL)	r�ListComprqrYrsr�r�r�r_r�s`  @rJ�visit_listcompzTreeRebuilder.visit_listcomp�s������.��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����J�J�t�x��)�)�E�E�E�E�E�T�_�E�E�E�	
�	
�	
��rL�-nodes.Name | nodes.AssignName | nodes.DelNamec���|�|��}|tjkrHtj|j|j|jt|dd��t|dd��|���}n�|tj	krHtj
|j|j|jt|dd��t|dd��|���}nGtj|j|j|jt|dd��t|dd��|���}|tjtj	fvrFtttj
tjf|��}|�|��|S)z6Visit a Name node by returning a fresh instance of it.rmNrrr)rgrr�r�DelName�idrqrYrsr�r�Namerrr�r�s     rJr�zTreeRebuilder.visit_names\���#�#�D�)�)���g�k�!�!��m��W��{��?�"�4��t�<�<�&�t�-=�t�D�D�����G�G���
�
%�
%��&��W��{��?�"�4��t�<�<�&�t�-=�t�D�D�����G�G��j��W��{��?�"�4��t�<�<�&�t�-=�t�D�D�����G��w�{�G�M�2�2�2��5��!1�5�=�!@�A�7�K�K�G��!�!�'�*�*�*��rLc��tj|j|j|jt|dd��t|dd��|���S)z6Visit a Nonlocal node and return a new instance of it.rmNrrr�)r�NonlocalrrqrYrsr�s   rJ�visit_nonlocalzTreeRebuilder.visit_nonlocal6sL���~��*��;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
�	
rLc��tj|j|j|j|jt
|dd��t
|dd��|���S)z=Visit a Constant node by returning a fresh instance of Const.rmNrr)rU�kindrqrYrmrrri)r�ConstrUr�rqrYrsr�s   rJ�visit_constantzTreeRebuilder.visit_constantBsQ���{��*����;����t�\�4�8�8�"�4�)9�4�@�@��	
�	
�	
�		
rLc�P�tjt|j|j|���S)z>Visit an Ellipsis node by returning a fresh instance of Const.)rUrqrYri)rr��EllipsisrqrYr�s   rJ�visit_ellipsiszTreeRebuilder.visit_ellipsisQs+���;���{��?��	���
rLc�N�tj|j|j|j|��Sr`)rr�rUrqrYr�s   rJ�visit_nameconstantz TreeRebuilder.visit_nameconstantZs*���;��
������	��
rL�ast.Str | ast.Bytesc�N�tj|j|j|j|��S)zAVisit a String/Bytes node by returning a fresh instance of Const.)rr��srqrYr�s   rJ�	visit_strzTreeRebuilder.visit_stre�(���;��������	��
rLc�N�tj|j|j|j|��S)z8Visit a Num node by returning a fresh instance of Const.)rr��nrqrYr�s   rJ�	visit_numzTreeRebuilder.visit_numpr�rLc
��tj|j|jt	|dd��t	|dd��|���S)z6Visit a Pass node by returning a fresh instance of it.rmNrrr�)r�PassrqrYrsr�s   rJ�
visit_passzTreeRebuilder.visit_passysG���z��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
�	
rLc
��tj|j|jt	|dd��t	|dd��|���}|�|�|j|��|�|j|�����|S)z7Visit a Raise node by returning a fresh instance of it.rmNrrr�)�exc�cause)	r�RaiserqrYrsr�r�r�r�r�s    rJ�visit_raisezTreeRebuilder.visit_raise�s����+��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����
�
�4�8�W�-�-��*�*�T�Z��1�1�	�	
�	
�	
��rLc
���tj|j|jt	|dd��t	|dd��|���}|j�.|�|�|j|����|S)z8Visit a Return node by returning a fresh instance of it.rmNrrr�)r�ReturnrqrYrsrUr�r�r�s    rJ�visit_returnzTreeRebuilder.visit_return�sw���,��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
���:�!����T�Z�Z��
�G�<�<�=�=�=��rLc
�����tj|j|jt	|dd��t	|dd��|��������fd�|jD�����S)z5Visit a Set node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z+TreeRebuilder.visit_set.<locals>.<listcomp>�r�rL)r�SetrqrYrsr�r�r�s`  @rJ�	visit_setzTreeRebuilder.visit_set�s{�����)��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	���L�L�L�L�L�$�)�L�L�L�M�M�M��rLc
����tj|j|jt	|dd��t	|dd��|��������|j�����fd�|jD�����S)z9Visit a SetComp node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z/TreeRebuilder.visit_setcomp.<locals>.<listcomp>�r]rL)	r�SetComprqrYrsr�r�r�r_r�s`  @rJ�
visit_setcompzTreeRebuilder.visit_setcomp�s������-��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����J�J�t�x��)�)�E�E�E�E�E�T�_�E�E�E�	
�	
�	
��rLc
�v�tjt|dd��t|dd��t|dd��t|dd��|���}|�|�|j|��|�|j|��|�|j|�����|S)z7Visit a Slice node by returning a fresh instance of it.rqNrYrmrrr�)r��upper�step)r�Slicersr�r�r�rrr�s    rJ�visit_slicezTreeRebuilder.visit_slice�s����+��4��4�0�0��t�\�4�8�8��t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����*�*�T�Z��1�1��*�*�T�Z��1�1����D�I�w�/�/�	�	
�	
�	
�
�rLc�D�|�|��}tj||j|jt|dd��t|dd��|���}|�|�|j|��|�|j	|����|S)z;Visit a Subscript node by returning a fresh instance of it.rmNrrr�)
rgr�	SubscriptrqrYrsr�r�rU�slicer�s     rJ�visit_subscriptzTreeRebuilder.visit_subscript�s����#�#�D�)�)���/���;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	����J�J�t�z�7�+�+�T�Z�Z��
�G�-L�-L�	
�	
�	
��rLc��|�|��}tj||j|jt|dd��t|dd��|���}|�|�|j|����|S)z5Visit a Starred node and return a new instance of it.rmNrrr�)	rgr�StarredrqrYrsr�r�rUr�s     rJ�
visit_starredzTreeRebuilder.visit_starred�s����#�#�D�)�)���-���;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	������D�J��8�8�9�9�9��rL�nodes.TryExceptc�����tjdkri|j}|j}g|j�|j�|j�}t|��D]}|j}|j}tj	|j
|j|||����n tj	|j
|j|�������fd�|jD����fd�|jD����fd�|jD�����S)z;Visit a TryExcept node by returning a fresh instance of it.rr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_tryexcept.<locals>.<listcomp>r�rLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_tryexcept.<locals>.<listcomp>	s'���C�C�C�E�T�Z�Z��w�
'�
'�C�C�CrLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_tryexcept.<locals>.<listcomp>
r�rL)
rFrGrmrrrR�handlersrp�reversedr�	TryExceptrqrYr�)rIrMrirmrr�all_childrenr�r�s`      @rJ�visit_tryexceptzTreeRebuilder.visit_tryexcept�s������v�%�%���J�!�0�N�*T�D�I�*T��
�*T���*T�L�!�,�/�/�
�
��"�-�
�!&�!5����o��{��?�%�-�����G�G��o�d�k�4�?�F�K�K�G����?�?�?�?�?�T�Y�?�?�?�C�C�C�C�C�T�]�C�C�C�A�A�A�A�A�T�[�A�A�A�	
�	
�	
�
�rL�)nodes.TryExcept | nodes.TryFinally | Nonec
����|jr�tj|j|jt|dd��t|dd��|����|jr��|���g}n��fd�|jD��}��	|��fd�|jD�����S|jr��||��SdS)Nrmrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z+TreeRebuilder.visit_try.<locals>.<listcomp> s'���J�J�J�u��
�
�5�'�2�2�J�J�JrLc�<��g|]}��|�����Sr�r��r�r�r�rIs  ��rJr�z+TreeRebuilder.visit_try.<locals>.<listcomp>!s'���#S�#S�#S�q�D�J�J�q�'�$:�$:�#S�#S�#SrL)
�	finalbodyr�
TryFinallyrqrYrsrrrRr�)rIrMrirRr�s`   @rJ�	visit_tryzTreeRebuilder.visit_trys�����
�>�	��&��{��?�"�4��t�<�<�&�t�-=�t�D�D��
���G��}�
K��,�,�T�7�;�;�<���J�J�J�J�J��	�J�J�J�����T�#S�#S�#S�#S�#S�D�N�#S�#S�#S�T�T�T��N��=�	6��'�'��f�5�5�5��trLc
�N���tj|j|jt	|dd��t	|dd��|��������fd�|jD����fd�|jD����fd�|jD����fd�|j	D������S)	Nrmrrr�c�<��g|]}��|�����Sr�r�rs  ��rJr�z/TreeRebuilder.visit_trystar.<locals>.<listcomp>0s'���<�<�<�Q�$�*�*�Q��(�(�<�<�<rLc�<��g|]}��|�����Sr�r�rs  ��rJr�z/TreeRebuilder.visit_trystar.<locals>.<listcomp>1s'���D�D�D��d�j�j��G�,�,�D�D�DrLc�<��g|]}��|�����Sr�r�rs  ��rJr�z/TreeRebuilder.visit_trystar.<locals>.<listcomp>2s'���@�@�@�q�D�J�J�q�'�*�*�@�@�@rLc�<��g|]}��|�����Sr�r�rs  ��rJr�z/TreeRebuilder.visit_trystar.<locals>.<listcomp>3s'���F�F�F�!�t�z�z�!�W�-�-�F�F�FrL)rRrrpr)
r�TryStarrqrYrsr�rRrrprr�s`  @rJ�
visit_trystarzTreeRebuilder.visit_trystar's������-��;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	���<�<�<�<�<�$�)�<�<�<�D�D�D�D�D�d�m�D�D�D�@�@�@�@�@�D�K�@�@�@�F�F�F�F�F�t�~�F�F�F�		�	
�	
�	
��rLc������|��}tj||j|jt|dd��t|dd��|��������fd�|jD�����S)z7Visit a Tuple node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z-TreeRebuilder.visit_tuple.<locals>.<listcomp>Cr�rL)rgrr�rqrYrsr�r�r�s`   @rJ�visit_tuplezTreeRebuilder.visit_tuple7s������#�#�D�)�)���+���;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	���L�L�L�L�L�$�)�L�L�L�M�M�M��rLc��tj|jj|jj|j|jt|dd��t|dd��|���}|�	|�
|j|����|S)z9Visit a UnaryOp node by returning a fresh instance of it.rmNrrr)r�UnaryOprF�unary_op_classesrr�rqrYrsr�r��operandr�s    rJ�
visit_unaryopzTreeRebuilder.visit_unaryopFs����-��"�3�D�G�4E�F��;����t�\�4�8�8�"�4�)9�4�@�@��
�
�
��	������D�L�'�:�:�;�;�;��rLc
�4���tj|j|jt	|dd��t	|dd��|��������|j�����fd�|jD����fd�|j	D�����S)z7Visit a While node by returning a fresh instance of it.rmNrrr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z-TreeRebuilder.visit_while.<locals>.<listcomp>`r�rLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z-TreeRebuilder.visit_while.<locals>.<listcomp>ar�rL)
r�WhilerqrYrsr�r�r�rRrpr�s`  @rJ�visit_whilezTreeRebuilder.visit_whileTs������+��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	����J�J�t�y�'�*�*�?�?�?�?�?�T�Y�?�?�?�A�A�A�A�A�T�[�A�A�A�	
�	
�	
�
�rL�type[nodes.With]c��dSr`r�rhs    rJr�zTreeRebuilder._visit_wither�rL�type[nodes.AsyncWith]c��dSr`r�rhs    rJr�zTreeRebuilder._visit_withkr�rL�type[_WithT]�ast.With | ast.AsyncWithr3c
������|j}trPtsIt|tj��r/�jr(�j|jdz
�d��}||j|t|dd��t|dd��|����d��fd
����
|����}���fd�|jD����fd
�|j
D��|����S)NrPrnrmrrr�r��ast.withitemr;�tuple[NodeNG, NodeNG | None]c�x����|j���}��|j���}||fSr`)r��context_expr�
optional_vars)r�r6�varr�rIs   ��rJ�visit_childz.TreeRebuilder._visit_with.<locals>.visit_child�s9����:�:�e�0�'�:�:�D��*�*�U�0�'�:�:�C���9�rLr�c�&��g|]
}�|����Sr�r�)r�r�rCs  �rJr�z-TreeRebuilder._visit_with.<locals>.<listcomp>�s#���>�>�>�%�;�;�u�%�%�>�>�>rLc�<��g|]}��|�����Sr�r�r�s  ��rJr�z-TreeRebuilder._visit_with.<locals>.<listcomp>�rrL)rYrRr�)r�r=r;r>)rYrrrSrqr�rArqrrrsr�r�rYrR)rIr�rMrirYr�r�rCs`     @@rJr�zTreeRebuilder._visit_withqs6������_�
��	D�9�	D��D�#�-�)H�)H�	D�T�Z�	D���D�K�!�O�4�:�:�7�C�C�J��#��;�!��t�\�4�8�8�"�4�)9�4�@�@��

�
�
��	�	�	�	�	�	�	�
�1�1�$�w�1�G�G�����>�>�>�>�4�:�>�>�>�D�D�D�D�D�$�)�D�D�D�+�	�	
�	
�	
�
�rLc�D�|�tj||��Sr`)r�r�Withr�s   rJ�
visit_withzTreeRebuilder.visit_with�s������
�D�&�9�9�9rLc
���tj|j|jt	|dd��t	|dd��|���}|j�.|�|�|j|����|S)z7Visit a Yield node by returning a fresh instance of it.rmNrrr�)r�YieldrqrYrsrUr�r�r�s    rJ�visit_yieldzTreeRebuilder.visit_yield�sw���+��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
���:�!����T�Z�Z��
�G�<�<�=�=�=��rLc
���tj|j|jt	|dd��t	|dd��|���}|j�.|�|�|j|����|SrO)r�	YieldFromrqrYrsrUr�r�r�s    rJ�visit_yieldfromzTreeRebuilder.visit_yieldfrom�sw���/��;����t�\�4�8�8�"�4�)9�4�@�@��

�
�
���:�!����T�Z�Z��
�G�<�<�=�=�=��rLc�����tj|j|j|j|j|��������|j�����fd�|j	D������S)Nr�c�<��g|]}��|�����Sr�r�)r��caser�rIs  ��rJr�z-TreeRebuilder.visit_match.<locals>.<listcomp>�s'���H�H�H�T�t�z�z�$��0�0�H�H�HrL)�subject�cases)
r�MatchrqrYrmrrr�r�rRrSr�s`  @rJ�visit_matchzTreeRebuilder.visit_match�s������k��{��?��?�#�2�����G�
����
�
�4�<��9�9�H�H�H�H�H�T�Z�H�H�H�
�
�
�
��NrLc�����tj|��������|j�����|j�����fd�|jD������S)Nr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z1TreeRebuilder.visit_matchcase.<locals>.<listcomp>��'���H�H�H�U�d�j�j���0�0�H�H�HrL)�pattern�guardrR)rr#r�r�rYrZrRr�s`  @rJ�visit_matchcasezTreeRebuilder.visit_matchcase�s~�����o�V�4�4�4�G�����
�
�4�<��9�9��j�j���W�5�5�H�H�H�H�H�d�i�H�H�H�
�
�
�
�
�NrLc��tj|j|j|j|j|���}|�|�|j|�����|S)Nr�r�)	r�
MatchValuerqrYrmrrr�r�rUr�s    rJ�visit_matchvaluezTreeRebuilder.visit_matchvalue�sa���&��{��?��?�#�2�����G�
���4�:�:�d�j�'�#B�#B��C�C�C��NrLc�h�tj|j|j|j|j|j|���S)N)rUrqrYrmrrri)r�MatchSingletonrUrqrYrmrrr�s   rJ�visit_matchsingletonz"TreeRebuilder.visit_matchsingleton�s;���'��j��{��?��?�#�2��
���
rLc����tj|j|j|j|j|��������fd�|jD������S)Nr�c�<��g|]}��|�����Sr�r��r�rYr�rIs  ��rJr�z5TreeRebuilder.visit_matchsequence.<locals>.<listcomp>��'���T�T�T�7�$�*�*�W�g�6�6�T�T�TrL��patterns)r�
MatchSequencerqrYrmrrr�rgr�s`  @rJ�visit_matchsequencez!TreeRebuilder.visit_matchsequence�sw�����)��{��?��?�#�2�����G�
���T�T�T�T�T�d�m�T�T�T�
�
�
�
��NrLc	����tj|j|j|j|j|��������fd�|jD����fd�|jD����	|�|j
������S)Nr�c�<��g|]}��|�����Sr�r�r�s  ��rJr�z4TreeRebuilder.visit_matchmapping.<locals>.<listcomp>rXrLc�<��g|]}��|�����Sr�r�rds  ��rJr�z4TreeRebuilder.visit_matchmapping.<locals>.<listcomp>rerL)rPrg�rest)r�MatchMappingrqrYrmrrr�rPrgr�rmr�s`  @rJ�visit_matchmappingz TreeRebuilder.visit_matchmapping�s������(��{��?��?�#�2�����G�
���H�H�H�H�H�d�i�H�H�H�T�T�T�T�T�d�m�T�T�T��*�*�4��$�)�D�D�
�
�
�
�
�NrLc����tj|j|j|j|j|��������|j�����fd�|j	D��|j
��fd�|jD������S)Nr�c�<��g|]}��|�����Sr�r�rds  ��rJr�z2TreeRebuilder.visit_matchclass.<locals>.<listcomp>rerLc�<��g|]}��|�����Sr�r�rds  ��rJr�z2TreeRebuilder.visit_matchclass.<locals>.<listcomp>s4������5<�D�J�J�w��0�0���rL)r�rg�	kwd_attrs�kwd_patterns)r�
MatchClassrqrYrmrrr�r�r�rgrsrtr�s`  @rJ�visit_matchclasszTreeRebuilder.visit_matchclasss������&��{��?��?�#�2�����G�
����J�J�t�x��1�1�T�T�T�T�T�d�m�T�T�T��.������@D�@Q����	
�
�
�
��NrLc��tj|j|j|j|j|���}|�|�|||j�����|S)Nr�)r{)	r�	MatchStarrqrYrmrrr�r�r{r�s    rJ�visit_matchstarzTreeRebuilder.visit_matchstarsd���o��{��?��?�#�2�����G�
���$�"7�"7��g�t�y�"Q�"Q��R�R�R��NrLc���tj|j|j|j|j|���}|�|�|j|��|�	|||j
�����|S)Nr�)rYr{)r�MatchAsrqrYrmrrr�r�rYr�r{r�s    rJ�
visit_matchaszTreeRebuilder.visit_matchas)s����m��{��?��?�#�2�����G�
����
�
�4�<��9�9��*�*�4��$�)�D�D�
�
�
�
��NrLc����tj|j|j|j|j|��������fd�|jD������S)Nr�c�<��g|]}��|�����Sr�r�rds  ��rJr�z/TreeRebuilder.visit_matchor.<locals>.<listcomp>BrerLrf)r�MatchOrrqrYrmrrr�rgr�s`  @rJ�
visit_matchorzTreeRebuilder.visit_matchor9st�����m��{��?��?�#�2�����G�
���T�T�T�T�T�d�m�T�T�T�
�
�
�
��NrL)NN)r6rr7r8r9r:r;r<)rMr,r;rN)rMr^r;r)rMrhrirjr;rk)rMr�r;r<)r�r�r;r<)
rMr-r�rXr�rXr�r�r;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr0rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr.rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr/rirr;r�)rMr�rirr;r�)rMrrirr;r)rMrrirr;r)rMrrirr;r)rMr
rirr;r)rMr
rirr;r)rMrrirr;r)rMrrirr;r)rMrrirr;r)rMrrirr;r)rMrrirr;r)rMr!rirr;r")rMr$rirr;r%)rMr'rirr;r()rMr*rirr;r+)rMr-rirr;r.)rMr0rirr;r1)rMr3rirr;r4)rMr6rirr;r4)rMr8rirr;r4)rMr:rirr;r4)rMr<rirr;r4)rMr>rirr;r4)rMr@rirr;rA)rMrCrirr;rD)rMrFrirr;rG)rMrIrirr;rJ)rMrLrirr;rM)rMrOrirr;rP)rMrRrirr;r)rMrTrirr;rU)rMrWrirr;rX)rMr[rirr;r\)rMr^rirr;r)rMr`rirr;ra)rMrcrirr;rd)rMrfrirr;rg)rMririrr;rj)rMrlrirr;rm)rMrprirr;rq)rMrsrirr;rt)rMrvrirr;rw)rMryrirr;rz)rMr}rirr;r~)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r�)rMr�rirr;r)rMr<rirr;r<)rMr�rirr;r�)rMr�r;r<)rMr�rir�r;r�)rMr�rirr;r�)rMr�rirr�rXr;r�)rMr�rirr�r<r;r<)rMr�rirr�r:r;r)T)rMr.rirr#r�r;r�)rMrhrirr;rB)rMr�rirr�r�r;rM)r�rfrMr�rirr;r�)r�rirMr�rirr;r�)r�rkrMrlrirr;r2)r�r�rMr/rirr;r�)r�r�rMr0rirr;r�)r�r�rMr�rirr;r1)rMrrirr;r�)rMr-rirr;r�)rMr�rirr;r4)rMrWrirr;r)rMrWrirr;r)r�r6rMrfrirr;rg)r�r8rMr�rirr;r�)r�r:rMr;rirr;r3)rMrfrirr;r)rMririrr;r)rMrlrirr;r)er��
__module__�__qualname__�__doc__rKr]rgr�r�r�r�r	r
r�rFrGr�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr"r/r2r;rAr,rLrUrZr`rbrer�rur�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��visit_bytesr�r�r�r�r�rrrrrr!r(r+r0r5r�rHrKrNrUr[r^rarirorvryr|r�r�rLrJr5r59s�������;�;�
.2��	2�2�2�2�2�&����*U�U�U�U�5
�5
�5
�5
�n00�00�00�00�d/�/�/�/�(����0�P�	�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�

�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
��v�%�%�
�
�
�
��X�
���f�$�$�
�
�
�
��X�
��
�
�
��X�
�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�

�	�	�	�
��	���f�$�$�
�
�
�
��X�
��
�
�
��X�
��
�
�
��X�
��
�
�
��X�
��
�
�
��X�
�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
��w�&�&�
�
�
�
��X�
�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	�
�	�	�	�
��	���w�&�&�
�
�
�
��X�
��
�
�
��X�
��
�
�
��X�
��
�
�
��X�
�
�
�
�
��X�
�
�
�
�
��X�
�
�
�
�
��X�
��
�
�
��X�
��
�
�
��X�
��
�
�
��X�
��
�
�
��X�
�
�	�	�	�
��	�
�	�	�	�
��	�*�*�*�*�3�3�3�3�=�=�=�=�L�L�L�L�\���� !!�!!�!!�!!�F!�!�!�!�2M�M�M�M�
=�=�=�=�
�
�
�
�?�?�?�?�����$����$�����X��
�����X������*���� ���� ����	
�	
�	
�	
�����$DH�#�#�#�#�#�J	
�	
�	
�	
�����,��������@����-�-�-�-�(���� ����"��������&�����X��
�����X��
����68�8�8�8�����(�����X��
�����X��5�5�5�5�nH�H�H�H�
����$-�-�-�-�^���� ����"����"����$
�
�
�
�����$��6�!�!�	�	�	�	� ��&� � �	�	�	�	�	2�	2�	2�	2���������
�
�
�
����� (�(�(�(�T

�

�

�

�
�
�
�
���&� � �	�	�	�	�		�		�		�		�	�	�	�	� ��	�	�	�	�	
�	
�	
�	
�����"������������ ����"����"
�
�
�
�����:����2���� 
�
�
�
���������"�����X��
�����X��
����B:�:�:�:�����������7�"�"�	�	�	�	�		�		�		�		�	�	�	�	�
	�
	�
	�
	�
	�
	�
	�
	�	�	�	�	�&	�	�	�	�(
	�
	�
	�
	�	�	�	�	� 	�	�	�	�	�	�S#�"rLr5);r��
__future__rrqrFru�collections.abcrr�ior�tokenizerr�typingr	r
rrr
�astroidr�astroid._astrrr�
astroid.constrrrrr�astroid.managerr�
astroid.nodesr�astroid.nodes.utilsr�astroid.typingrrGr�typing_extensionsr+�__annotations__r,rxrwr1rtr�r2rGr�r3r�r+r�r5r�rLrJ�<module>r�s���
���#�"�"�"�"�"�
�
�
�
�
�
�
�
�����/�/�/�/�/�/�/�/�������/�/�/�/�/�/�/�/�@�@�@�@�@�@�@�@�@�@�@�@�@�@�������U�U�U�U�U�U�U�U�U�U�F�F�F�F�F�F�F�F�F�F�F�F�F�F�*�*�*�*�*�*� � � � � � �(�(�(�(�(�(�4�4�4�4�4�4���v����������'�'�'�'�'�'��$�"�!�$���#�#������	�����	�
3�4�		�	���W�\�5�#4�e�6L�
M�
M�
������E�N�3�3��	���5�:�u��	7�	7���%�,����8I�I�J��K �K �K �K �K �K �K �K �K �K rL

Hacked By AnonymousFox1.0, Coded By AnonymousFox