__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
�
�֦i� � �t � d Z ddlZddlZddlmZ ddlmZ ddlmZ G d� de � Z
G d � d
e � Zi ad� Z
y)z+George Boutsioukis <gboutsioukis@gmail.com>� N)�defaultdict� )�pytree)�reduce_treec �6 � e Zd Z ej � Zd� Zy)�BMNodec �j � i | _ g | _ t t j � | _ d| _ y )N� )�transition_table�fixers�nextr �count�id�content��selfs �,/usr/lib64/python3.12/lib2to3/btm_matcher.py�__init__zBMNode.__init__ s( � � "�������v�|�|�$������ N)�__name__�
__module__�__qualname__� itertoolsr r � r r r r s � �I��I�O�O��E�r r c �, � e Zd Z d� Zd� Zd� Zd� Zd� Zy)�
BottomMatcherc � � t � | _ t � | _ | j g| _ g | _ t
j d� | _ y )N�RefactoringTool) �set�matchr �root�nodesr �logging� getLogger�loggerr s r r zBottomMatcher.__init__ s; � ��U��
��H�� ��i�i�[��
�����'�'�(9�:��r c � � | j j |� t |j � }|j � }| j || j �� }|D ] }|j j |� � y )N��start)r �appendr �pattern_tree�get_linear_subpattern�addr! )r �fixer�tree�linear�match_nodes�
match_nodes r � add_fixerzBottomMatcher.add_fixer% sm � � �
�����5�!��5�-�-�.���+�+�-���h�h�v�T�Y�Y�h�7��%�J����$�$�U�+� &r c � � |s|gS t |d t � rLg }|d D ]@ }| j ||�� }|D ]&