����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
python38
/
lib64
/
python3.8
/
__pycache__
/
Filename :
difflib.cpython-38.opt-2.pyc
back
Copy
U ����i�fZH���������������������@���s4��d�ddddddddd d dgZ�dd lmZ�ddlmZ�edd�Zdd��ZG�dd��d�Z d7dd��Z dd��ZG�dd��d�Zddl Z e �d�jfdd�Zd8dd�Zdd��Zd9d"d�Zd#d$��Zd:d%d�Zd&d'��Zd;d*d �Zdefd+d�Zddefd,d-�Zd.Zd/Zd0Zd1ZG�d2d ��d e�Z[ d3d��Z d4d5��Z!e"d6k�r0e!���dS�)<�get_close_matches�ndiff�restore�SequenceMatcher�Differ�IS_CHARACTER_JUNK�IS_LINE_JUNK�context_diff�unified_diff� diff_bytes�HtmlDiff�Match�����)�nlargest)� namedtupleza b sizec�����������������C���s���|rd|��|�S�dS�)Ng�������@��������?��)�matches�lengthr���r����,/opt/alt/python38/lib64/python3.8/difflib.py�_calculate_ratio&���s����r���c�������������������@���sp���e�Zd�Zddd�Zdd��Zdd ��Zd d��Zdd ��Zdd��Zdd��Z dd��Z ddd�Zdd��Zdd��Z dd��ZdS�)r���N��Tc�����������������C���s(���||�_�d��|�_|�_||�_|��||��d�S��N)�isjunk�a�b�autojunk�set_seqs)�selfr���r���r���r���r���r���r����__init__����s����;zSequenceMatcher.__init__c�����������������C���s���|���|��|��|��d�S�r���)�set_seq1�set_seq2)r���r���r���r���r���r���r�������s���� zSequenceMatcher.set_seqsc�����������������C���s$���||�j�krd�S�||�_�d��|�_|�_d�S�r���)r����matching_blocks�opcodes)r���r���r���r���r���r�������s���� zSequenceMatcher.set_seq1c�����������������C���s2���||�j�krd�S�||�_�d��|�_|�_d�|�_|�����d�S�r���)r���r!���r"���� fullbcount�_SequenceMatcher__chain_b)r���r���r���r���r���r �������s���� zSequenceMatcher.set_seq2c�����������������C���s����|�j�}i��|�_}t|�D�]\}}|�|g��}|�|��qt���|�_}|�j}|r~|���D�]}||�rV|� |��qV|D�] }||=�qrt���|�_ }t|�} |�jr�| dkr�| d�d�} |� ��D�]\}}t|�| kr�|� |��q�|D�] }||=�q�d�S�)N������d�������)r����b2j� enumerate� setdefault�append�set�bjunkr����keys�addZbpopular�lenr����items)r���r���r(����i�elt�indicesZjunkr���Zpopular�nZntestZidxsr���r���r���Z __chain_b)��s,���� zSequenceMatcher.__chain_bc�����������������C���s4��|�j�|�j|�j|�jjf\}}}}||d��} } }i�}g�} t||�D�]�}|j}i�}|�||�| �D�]\}||k�rlq^||krx�q�||d�d�d��}||<�||kr^||�d�||�d�|��} } }q^|}q@| |k�r | |k�r ||| d����s || d��|| d��k�r | d�| d�|d���} } }q�| |�|k��rt| |�|k��rt||| |����st|| |��|| |��k�rt|d7�}�q | |k�r�| |k�r�||| d����r�|| d��|| d��k�r�| d�| d�|d���} } }�qt| |�|k��r(| |�|k��r(||| |����r(|| |��|| |��k�r(|d�}�q�t| | |�S��Nr ���r'���)r���r���r(���r-����__contains__�range�getr���)r����alo�ahi�blo�bhir���r���r(���ZisbjunkZbestiZbestjZbestsizeZj2lenZnothingr2���Zj2lengetZnewj2len�j�kr���r���r����find_longest_matchP��sR����8"���� �� ��z"SequenceMatcher.find_longest_matchc�����������������C���s|��|�j�d�k r|�j�S�t|�j�t|�j��}}d|d|fg}g�}|r�|���\}}}}|��||||��\} } }}|r8|�|��|| k�r�|| k�r�|�|| || f��| |�|k�r8| |�|k�r8|�| |�|| |�|f��q8|����d�} �}}g�}|D�]V\}}}| |�|k�r||�|k�r||7�}q�|�r,|�| ||f��|||��} }}q�|�rT|�| ||f��|�||df��tt t j|��|�_�|�j�S��Nr ���)r!���r0���r���r����popr@���r+����sort�list�mapr����_make)r����la�lbZqueuer!���r:���r;���r<���r=���r2���r>���r?����x�i1�j1Zk1Znon_adjacent�i2�j2Zk2r���r���r����get_matching_blocks���s8���� z#SequenceMatcher.get_matching_blocksc�����������������C���s����|�j�d�k r|�j�S�d�}}g��|�_�}|����D�]�\}}}d}||k�rN||k�rNd}n||k�r\d}n||k�rhd}|r�|�|||||f��||�||��}}|r*|�d||||f��q*|S�)Nr ���r����replace�delete�insert�equal)r"���rN���r+���)r���r2���r>���Zanswer�ai�bj�size�tagr���r���r����get_opcodes��s$���� zSequenceMatcher.get_opcodes����c����������� ������c���sn��|�����}|sdg}|d�d�dkrZ|d�\}}}}}|t|||��|t|||��|f|d<�|d�d�dkr�|d�\}}}}}||t|||��|t|||��f|d<�||�}g�} |D�]�\}}}}}|dk�r(||�|k�r(| �||t|||��|t|||��f��| V��g�} t|||��t|||���}}| �|||||f��q�| �rjt| �dk�rd| d�d�dk�sj| V��d�S�)N)rR���r ���r'���r ���r'���r ���rR������r'���)rW����max�minr+���r0���) r���r5���ZcodesrV���rJ���rL���rK���rM���Znn�groupr���r���r����get_grouped_opcodes<��s(����&&(&z#SequenceMatcher.get_grouped_opcodesc�����������������C���s0���t�dd��|����D���}t|t|�j�t|�j���S�)Nc�����������������s���s���|�]}|d��V��qdS�)rY���Nr���)�.0Ztripler���r���r���� <genexpr>���s�����z(SequenceMatcher.ratio.<locals>.<genexpr>)�sumrN���r���r0���r���r���)r���r���r���r���r����ration��s����zSequenceMatcher.ratioc�����������������C���s����|�j�d�kr4i��|�_�}|�jD�]}|�|d�d�||<�q|�j�}i�}|jd�}}|�jD�]>}||�rf||�}n|�|d�}|d�||<�|dkrP|d�}qPt|t|�j�t|�j���S�r6���)r#���r���r9���r7���r���r���r0���)r���r#���r3���ZavailZavailhasr���Znumbr���r���r����quick_ratio���s���� zSequenceMatcher.quick_ratioc�����������������C���s*���t�|�j�t�|�j��}}tt||�||��S�r���)r0���r���r���r���r[���)r���rG���rH���r���r���r����real_quick_ratio���s����z SequenceMatcher.real_quick_ratio)Nr���r���T)rX���)�__name__� __module__�__qualname__r���r���r���r ���r$���r@���rN���rW���r]���ra���rb���rc���r���r���r���r���r���+���s���l @,'nG7 2rX����333333�?c�����������������C���s����|dkst�d|f���d|��kr*dks:n�t�d|f���g�}t��}|�|���|D�]D}|�|��|���|krR|���|krR|���|krR|�|���|f��qRt||�}dd��|D��S�)Nr ���zn must be > 0: %rg��������r���z cutoff must be in [0.0, 1.0]: %rc�����������������S���s���g�|�]\}}|�qS�r���r���)r^���ZscorerI���r���r���r���� <listcomp>���s�����z%get_close_matches.<locals>.<listcomp>) � ValueErrorr���r ���r���rc���rb���ra���r+���� _nlargest)ZwordZ possibilitiesr5����cutoff�result�srI���r���r���r���r������s"���� � � c�����������������C���s���d��dd��t|�|�D���S�)Nr���c�����������������s���s*���|�]"\}}|d�kr|����r|n|V��qdS�)� N)�isspace)r^����cZtag_cr���r���r���r_������s����z$_keep_original_ws.<locals>.<genexpr>)�join�zip)rm���Ztag_sr���r���r����_keep_original_ws���s���� �rs���c�������������������@���sF���e�Zd�Zddd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dS�)r���Nc�����������������C���s���||�_�||�_d�S�r�����linejunk�charjunk)r���ru���rv���r���r���r���r���H��s����zDiffer.__init__c����������� ��� ���c���s����t�|�j||�}|���D�]�\}}}}}|dkrB|��||||||�} n\|dkr\|��d|||�} nB|dkrv|��d|||�} n(|dkr�|��d|||�} ntd|f���| E�d�H��qd�S�) NrO���rP����-rQ����+rR���rn����unknown tag %r)r���ru���rW����_fancy_replace�_dumpri���) r���r���r����cruncherrV���r:���r;���r<���r=����gr���r���r����compare_��s����zDiffer.comparec�����������������c���s&���t�||�D�]}d|||�f�V��q d�S�)Nz%s %s)r8���)r���rV���rI����lo�hir2���r���r���r���r{������s����zDiffer._dumpc����������� ������c���sn���||�||�k�r2|���d|||�}|���d|||�}n |���d|||�}|���d|||�}||fD�]} | E�d�H��qZd�S�)Nrx���rw���)r{���) r���r���r:���r;���r���r<���r=����first�secondr}���r���r���r����_plain_replace���s����zDiffer._plain_replacec�����������������c���s:��d\}}t�|�j�} d\} }t||�D�]�}||�} | �| ��t||�D�]j}||�}|| krl| d�krD||�} }qD| �|��| ���|krD| ���|krD| ���|krD| ���||��}}}qDq$||k�r�| d�kr�|��||||||�E�d�H��d�S�| |d��}}}nd�} |�� ||||||�E�d�H��||�||��}}| d�k�r d�}}| � ||��| ���D�]�\}}}}}||�||��}}|dk�r�|d|�7�}|d|�7�}nb|dk�r�|d|�7�}nJ|d k�r�|d |�7�}n2|dk�r�|d|�7�}|d|�7�}ntd |f����qH|�� ||||�E�d�H��n d|�V��|�� ||d�|||d�|�E�d�H��d�S�)N)g�G�z��?g�������?)NNr���r���rO����^rP���rw���rQ���rx���rR���rn���ry���� r'���)r���rv���r8���r ���r���rc���rb���ra���r����� _fancy_helperr���rW���ri����_qformat)r���r���r:���r;���r���r<���r=���Z best_ratiork���r|���ZeqiZeqjr>���rT���r2���rS���Zbest_iZbest_jZaeltZbelt�atags�btagsrV���Zai1Zai2Zbj1Zbj2rG���rH���r���r���r���rz������s\���� � � zDiffer._fancy_replacec�����������������c���sb���g�}||k�r<||k�r*|���||||||�}qT|��d|||�}n||k�rT|��d|||�}|E�d�H��d�S�)Nrw���rx���)rz���r{���)r���r���r:���r;���r���r<���r=���r}���r���r���r���r�������s����zDiffer._fancy_helperc�����������������c���sX���t�||����}t�||����}d|�V��|r8d|��d�V��d|�V��|rTd|��d�V��d�S�)N�- z? � �+ )rs����rstrip)r���ZalineZbliner����r����r���r���r���r������s���� zDiffer._qformat)NN) rd���re���rf���r���r~���r{���r����rz���r����r����r���r���r���r���r������s���^ )^Nz \s*(?:#\s*)?$c�����������������C���s���||��d�k S�r���r���)�lineZpatr���r���r���r���3��s����� c�����������������C���s���|�|kS�r���r���)ZchZwsr���r���r���r���C��s����c�����������������C���s:���|�d�}||��}|dkr"d��|�S�|s.|d8�}d��||�S��Nr'���z{}z{},{}��format��start�stopZ beginningr���r���r���r����_format_range_unifiedZ��s���� r����r���r����c�����������������c���sP��t�|�||||||��d}td�|�|��|�D��]} |s|d}|rFd�|�nd} |rXd�|�nd}d�|| |�V��d�|||�V��| d�| d��}} t|d �| d ��}t|d�| d��}d �|||�V��| D�]�\}}}}}|dkr�|�||��D�]}d|�V��q�q�|dk�r"|�||��D�]}d|�V���q|dkr�|||��D�]}d|�V���q6q�q*d�S�)NFT� {}r���� --- {}{}{}z +++ {}{}{}r ���rY���r'�������rX�������z@@ -{} +{} @@{}rR���rn���>���rO���rP���rw���>���rO���rQ���rx���)�_check_typesr���r]���r����r����)r���r����fromfile�tofile�fromfiledate� tofiledater5����lineterm�startedr\����fromdate�todater�����last�file1_range�file2_rangerV���rJ���rL���rK���rM���r����r���r���r���r ���e��s0����) c�����������������C���sB���|�d�}||��}|s|d8�}|dkr.d��|�S�d��|||�d��S�r����r����r����r���r���r����_format_range_context���s���� r����c�����������������c���s���t�|�||||||��tddddd�}d} td�|�|��|�D��]R} | s�d} |rVd�|�nd }|rhd�|�nd }d �|||�V��d�|||�V��| d�| d ��} }d|�V��t| d�|d��}d�||�V��tdd��| D����r| D�]8\}}}}}|dkr�|�||��D�]}||�|�V���qq�t| d�|d��}d�||�V��tdd��| D���r:| D�]<\}}}}}|dk�rP|||��D�]}||�|�V���qt�qPq:d�S�)Nr����r����z! r����)rQ���rP���rO���rR���FTr����r���z *** {}{}{}r����r ���rY���z***************r'���r����z *** {} ****{}c�����������������s���s ���|�]\}}}}}|d�kV��qdS�)>���rO���rP���Nr����r^���rV����_r���r���r���r_������s�����zcontext_diff.<locals>.<genexpr>rQ���rX���r����z --- {} ----{}c�����������������s���s ���|�]\}}}}}|d�kV��qdS�)>���rO���rQ���Nr���r����r���r���r���r_������s�����rP���)r�����dictr���r]���r����r�����any)r���r���r����r����r����r����r5���r�����prefixr����r\���r����r����r����r����r����rV���rJ���rL���r����r����r����rK���rM���r���r���r���r������s4����, c�����������������G���s����|�r0t�|�d�t�s0tdt|�d��j|�d�f���|r`t�|d�t�s`tdt|d��j|d�f���|D�]}t�|t�sdtd|f���qdd�S�)Nr ���z)lines to compare must be str, not %s (%r)z"all arguments must be str, not: %r)� isinstance�str� TypeError�typerd���)r���r����args�argr���r���r���r������s������ r������������� c �������������� ���c���s~���dd��} t�t| |��}t�t| |��}| |�}| |�}| |�}| |�}| |�}|�||||||||�} | D�]}|�dd�V��qfd�S�)Nc�������������� ���S���sR���z|���dd�W�S��tk rL�}�z dt|��j|�f�}t|�|�W�5�d�}~X�Y�nX�d�S�)N�ascii�surrogateescapez(all arguments must be bytes, not %s (%r))�decode�AttributeErrorr����rd���r����)rm����err�msgr���r���r���r����"��s�����zdiff_bytes.<locals>.decoder����r����)rD���rE����encode)Zdfuncr���r���r����r����r����r����r5���r����r�����linesr����r���r���r���r �����s����c�����������������C���s���t�||��|�|�S�r���)r���r~���)r���r���ru���rv���r���r���r���r���5��s����#c�����������������#���s���dd�l�}|�d��t|�|||��ddgf�fdd� ���fdd�����fdd�}|��}|d�krj|E�d�H���n|d 7�}d}dd�g|��} } d }|d kr�zt|�\}} }W�n�tk r����Y�d�S�X�| |�}|| |f| |<�| d 7�} q�| |kr�dV��|}n| }d} |�r"| |�}| d 7�} | |�V��|d 8�}q�|d �}z@|�rht|�\}} }|�rP|d �}n|d 8�}|| |fV���q,W�qv�tk �r����Y�d�S�X�qvd�S�)Nr ���z (\++|\-+|\^+)c��������������������s����||��d7��<�|d�kr2||�|���d�dd���fS�|dkr�|���d�|���d��}}g�}|fdd�}���||��t|�D�]<\}\} } |d| ��d�|�|| | ���d�|| d����}qt|dd���}n*|���d�dd���}|s�d }d|�|�d�}||�|fS�) Nr'���r ���r�����?c�����������������S���s&���|��|��d�d�|����g��|��d�S�)Nr'���r ���)r+���r\����span)Zmatch_object�sub_infor���r���r����record_sub_info���s����z3_mdiff.<locals>._make_line.<locals>.record_sub_info���rn���)rB����sub�reversed)r����Z format_key�sideZ num_lines�textZmarkersr����r�����keyZbegin�end)� change_rer���r���� _make_line���s ����2z_mdiff.<locals>._make_linec������������������3���sn��g�}�d\}}t�|��dk�r*|��t�d���qd�dd��|�D���}|�d�rP|}�n�|�d�r|��|�dd ���|�dd �dfV��q�n�|�d�r�|d 8�}��|�d d �d�dfV��q�nl|�d�rֈ�|�d d �d��}}|d �d �}}�n>|�d��r��|�d�d ���|�dd �dfV��q�n|�d��r0��|�dd ���|�d�d �dfV��qn�|�d ��r\|d 8�}��|�d d �d�dfV��qn�|�d��r�|d 7�}d���|�dd �dfV��qn�|�d��r�d���|�dd ��}}|d �d �}}n^|�d��r�|d 7�}d���|�dd �dfV��qn2|�d��r��|�d�d���d�d ���|�d�d �dfV��q|d k��r0|d 7�}dV���q|d k�rL|d 8�}dV���q0|�d��r\d�S�||dfV��qd�S�)N)r ���r ���r�����Xr���c�����������������S���s���g�|�]}|d���qS�)r ���r����r^���r����r���r���r���rh������s�����z2_mdiff.<locals>._line_iterator.<locals>.<listcomp>z-?+?r����r ���r'���Tz--++rw���)z--?+z--+r����z-+?z-?+z+--rx���)r����z+-rn���F)N�r���r����T)r����NT)r0���r+����nextrq���� startswith)r����Znum_blanks_pendingZnum_blanks_to_yieldrm���� from_line�to_line)r�����diff_lines_iteratorr���r����_line_iterator���sd���� $ z_mdiff.<locals>._line_iteratorc������������������3���s��������}�g�g��}}t�|�dks(t�|�dkr�zt|��\}}}W�n�tk rP���Y�d�S�X�|d�k rh|�||f��|d�k r|�||f��q|�d�\}}|�d�\}}|||p�|fV��qd�S�rA���)r0���r����� StopIterationr+���rB���)Z line_iterator� fromlines�tolinesr����r����� found_diffZfromDiffZto_diff)r����r���r����_line_pair_iterator��s���� z#_mdiff.<locals>._line_pair_iteratorr'���F)NNN)�re�compiler���r����r����)r����r�����contextru���rv���r����r����Zline_pair_iteratorZlines_to_write�indexZcontextLinesr����r����r����r2���r���)r����r����r����r����r����_mdiffZ��sR����" 8X! r����an�� <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=%(charset)s" /> <title></title> <style type="text/css">%(styles)s </style> </head> <body> %(table)s%(legend)s </body> </html>aH�� table.diff {font-family:Courier; border:medium;} .diff_header {background-color:#e0e0e0} td.diff_header {text-align:right} .diff_next {background-color:#c0c0c0} .diff_add {background-color:#aaffaa} .diff_chg {background-color:#ffff77} .diff_sub {background-color:#ffaaaa}aZ�� <table class="diff" id="difflib_chg_%(prefix)s_top" cellspacing="0" cellpadding="0" rules="groups" > <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> %(header_row)s <tbody> %(data_rows)s </tbody> </table>a��� <table class="diff" summary="Legends"> <tr> <th colspan="2"> Legends </th> </tr> <tr> <td> <table border="" summary="Colors"> <tr><th> Colors </th> </tr> <tr><td class="diff_add"> Added </td></tr> <tr><td class="diff_chg">Changed</td> </tr> <tr><td class="diff_sub">Deleted</td> </tr> </table></td> <td> <table border="" summary="Links"> <tr><th colspan="2"> Links </th> </tr> <tr><td>(f)irst change</td> </tr> <tr><td>(n)ext change</td> </tr> <tr><td>(t)op</td> </tr> </table></td> </tr> </table>c�������������������@���s����e�Zd�ZeZeZeZeZdZdddefdd�Z dd d �dd�Z d d��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Zddd�ZdS�)r���r �������Nc�����������������C���s���||�_�||�_||�_||�_d�S�r���)�_tabsize�_wrapcolumn� _linejunk� _charjunk)r����tabsizeZ wrapcolumnru���rv���r���r���r���r������s����zHtmlDiff.__init__r���F����zutf-8)�charsetc����������������C���s:���|�j�t|�j|�j|�j||||||d�|d���|d��|�S�)N)r�����numlines)ZstylesZlegend�tabler�����xmlcharrefreplace)�_file_templater�����_styles�_legend� make_tabler����r����)r���r����r�����fromdesc�todescr����r����r����r���r���r���� make_file���s����������zHtmlDiff.make_filec��������������������s8����fdd�����fdd�|D��}��fdd�|D��}||fS�)Nc��������������������s6���|���dd�}�|����j�}�|���dd�}�|���dd��d�S�)Nrn���r����� r����)rO���� expandtabsr����r����)r����)r���r���r����expand_tabs���s����z2HtmlDiff._tab_newline_replace.<locals>.expand_tabsc��������������������s���g�|�]}��|��qS�r���r���r�����r����r���r���rh������s�����z1HtmlDiff._tab_newline_replace.<locals>.<listcomp>c��������������������s���g�|�]}��|��qS�r���r���r����r����r���r���rh������s�����r���)r���r����r����r���)r����r���r����_tab_newline_replace���s���� zHtmlDiff._tab_newline_replacec�����������������C���s��|s|��||f��d�S�t|�}|�j}||ksB||�d�d��|krT|��||f��d�S�d}d}d}||k�r�||k�r�||�dkr�|d7�}||�}|d7�}q`||�dkr�|d7�}d}q`|d7�}|d7�}q`|d�|��} ||d���} |r�| d�} d|�| �} |��|| f��|��|d| ��d�S�)Nr����rX���r ���r���r'���r�����>)r+���r0���r�����count�_split_line)r���Z data_listZline_numr����rU���rZ���r2���r5���ZmarkZline1Zline2r���r���r���r�������s8���� zHtmlDiff._split_linec�����������������c���s����|D�]�\}}}|d�kr$|||fV��q||�\}}\}}g�g��} } |���| ||��|���| ||��| sd| r| rt| �d�}nd}| r�| �d�}nd}|||fV��q\qd�S�)Nr ���)r���rn���)r����rB���)r����diffs�fromdata�todata�flagZfromlineZfromtextZtolineZtotext�fromlist�tolistr���r���r���� _line_wrapper0��s ���� zHtmlDiff._line_wrapperc�������������� ���C���s����g�g�g���}}}|D�]r\}}}z4|��|�jd|f|�����|��|�jd|f|�����W�n(�tk rz���|��d���|��d���Y�nX�|��|��q|||fS�r6���)r+����_format_liner����)r���r����r����r�����flaglistr����r����r����r���r���r����_collect_linesL��s���� zHtmlDiff._collect_linesc�����������������C���sr���zd|�}d|�j�|�|f�}W�n�tk r6���d}Y�nX�|�dd��dd��dd �}|�d d����}d|||f�S�) Nz%dz id="%s%s"r����&z&r����z>�<z<rn���� z<<td class="diff_header"%s>%s</td><td nowrap="nowrap">%s</td>)�_prefixr����rO���r����)r���r����r����Zlinenumr�����idr���r���r���r����a��s���� �zHtmlDiff._format_linec�����������������C���s0���dt�j�}dt�j�}t��jd7��_||g|�_d�S�)Nzfrom%d_zto%d_r'���)r����_default_prefixr��)r���Z fromprefix�toprefixr���r���r����_make_prefixx��s���� zHtmlDiff._make_prefixc�����������������C���s����|�j�d�}dgt|��}dgt|��}d\} } d}t|�D�]V\}} | r�| s�d} |}td||�g�}d|| f�||<�| d7�} d|| f�||<�q:d} q:|s�dg}dg}dg}d}|r�d g}|}n d g�}}|d�s�d|�|d<�d|�||<�|||||fS�) Nr'���r���)r ���Fr ���Tz id="difflib_chg_%s_%d"z"<a href="#difflib_chg_%s_%d">n</a>Fz2<td></td><td> No Differences Found </td>z(<td></td><td> Empty File </td>z!<a href="#difflib_chg_%s_0">f</a>z#<a href="#difflib_chg_%s_top">t</a>)r��r0���r)���rZ���)r���r����r����r���r����r����r���next_id� next_hrefZnum_chgZ in_changer����r2���r����r���r���r����_convert_flags���s>���� �� zHtmlDiff._convert_flagsc�������������� ���C���sR��|������|��||�\}}|r"|}nd�}t||||�j|�jd�}|�jrL|��|�}|��|�\} } }|��| | |||�\} } }}} g�}d}t t |��D�]P}||�d�kr�|dkr�|�d��q�|�|| |�||�| |�||�| |�f���q�|s�|�rddd|�dd|�f�}nd}|�jt d�|�||�jd �d ��}|�dd��d d��dd��dd��dd�S�)Nrt���zV <tr><td class="diff_next"%s>%s</td>%s<td class="diff_next">%s</td>%s</tr> r ���z) </tbody> <tbody> z <thead><tr>%s%s%s%s</tr></thead>z!<th class="diff_next"><br /></th>z+<th colspan="2" class="diff_header">%s</th>r���r'���)Z data_rows� header_rowr����z�+z<span class="diff_add">z�-z<span class="diff_sub">z�^z<span class="diff_chg">r����z</span>r����r��)r ��r����r����r����r����r����r����r��r��r8���r0���r+����_table_templater����rq���r��rO���)r���r����r����r����r����r����r����Z context_linesr����r����r����r���r��r ��rm���Zfmtr2���r ��r����r���r���r���r�������sl����� ������� ����������zHtmlDiff.make_table)r���r���Fr����)r���r���Fr����)rd���re���rf���r����r����r��r����r��r���r���r����r����r����r����r��r����r ��r��r����r���r���r���r���r������s0���� ������7/���c�����������������c���sn���zddd�t�|��}W�n"�tk r8���td|��d��Y�nX�d|f}|�D�]"}|d�d��|krF|dd���V��qFd�S�)Nr����r����)r'���r����z)unknown delta choice (must be 1 or 2): %rr����r����)�int�KeyErrorri���)ZdeltaZwhichrV����prefixesr����r���r���r���r�����s������c������������������C���s���dd�l�}�dd�l}|��|�S�rA���)�doctest�difflibZtestmod)r��r��r���r���r����_test!��s����r���__main__)rX���rg���)r����)r���r���r���r���rX���r����)r���r���r���r���rX���r����)r����r����r����r����rX���r����)#�__all__�heapqr���rj����collectionsr���Z_namedtupler���r���r���r���rs���r���r����r�����matchr���r���r����r ���r����r���r����r ���r���r����r����r����r��r�����objectr���r���r��rd���r���r���r���r����<module>���s����������� ����� 1 ��I ������� I��������� L��������� %� �� ��a