� !A?hlE � � � g d �Z ddlmZ ddlmZ ddlmZ edd� � Z d� Z G d� d � � Zd*d�Zd � Z G d� d� � ZddlZ ej d� � j fd�Zd+d�Zd� Z d,d�Zd� Z d,d�Zd� Z d-d�Zdefd�Zddefd �Zd!Zd"Zd#Zd$Z G d%� d&e � � Z![d'� Z"d(� Z#e$d)k r e#� � dS dS ).)�get_close_matches�ndiff�restore�SequenceMatcher�Differ�IS_CHARACTER_JUNK�IS_LINE_JUNK�context_diff�unified_diff� diff_bytes�HtmlDiff�Match� )�nlargest)� namedtuple)�GenericAliasr za b sizec � � |rd| z |z S dS )Ng @� �?� )�matches�lengths �4/opt/alt/python-internal/lib64/python3.11/difflib.py�_calculate_ratior ' s � � � &��W�}�v�%�%��3� c �t � e Zd Z dd�Zd� Zd� Zd� Zd� Zdd �Zd� Z d� Z dd�Zd� Zd� Z d� Z ee� � ZdS )r N� Tc �l � || _ d x| _ | _ || _ | � ||� � d S �N)�isjunk�a�b�autojunk�set_seqs)�selfr r r r! s r �__init__zSequenceMatcher.__init__x s@ � � �t ��������� �� �� � �a������r c �\ � | � |� � | � |� � d S r )�set_seq1�set_seq2)r# r r s r r" zSequenceMatcher.set_seqs� s3 � � � � � �a����� � �a�����r c �H � || j u rd S || _ d x| _ | _ d S r )r �matching_blocks�opcodes)r# r s r r&