AlkantarClanX12

Your IP : 18.116.15.22


Current Path : /opt/alt/python37/lib64/python3.7/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/__pycache__/difflib.cpython-37.opt-2.pyc

B

YI~d�I�@s4dddddddddd	d
dgZdd
lmZddlmZedd�Zdd�ZGdd�d�Z	d7dd�Z
dd�ZGdd�d�Zddl
Z
e
�d�jfdd�Zd8dd�Zdd�Zd9d"d�Zd#d$�Zd:d%d�Zd&d'�Zd;d*d	�Zdefd+d�Zddefd,d-�Zd.Zd/Zd0Zd1ZGd2d
�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 sizecCs|rd||SdS)Ng@g�?�)�matches�lengthrr�,/opt/alt/python37/lib64/python3.7/difflib.py�_calculate_ratio&src@speZdZddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Zdd�Z	dd�Z
ddd�Zdd�Zdd�Z
dd�ZdS)rN�TcCs(||_d|_|_||_|�||�dS)N)�isjunk�a�b�autojunk�set_seqs)�selfrrrrrrr�__init__�s;zSequenceMatcher.__init__cCs|�|�|�|�dS)N)�set_seq1�set_seq2)rrrrrrr�s	
zSequenceMatcher.set_seqscCs$||jkrdS||_d|_|_dS)N)r�matching_blocks�opcodes)rrrrrr�s
zSequenceMatcher.set_seq1cCs2||jkrdS||_d|_|_d|_|��dS)N)rrr �
fullbcount�_SequenceMatcher__chain_b)rrrrrr�s
zSequenceMatcher.set_seq2cCs�|j}i|_}x*t|�D]\}}|�|g�}|�|�qWt�|_}|j}|r�x"|��D]}||�r\|�	|�q\Wx|D]
}||=q|Wt�|_
}t|�}	|jr�|	dkr�|	dd}
x*|�
�D]\}}t|�|
kr�|�	|�q�Wx|D]
}||=q�WdS)N���d�)r�b2j�	enumerate�
setdefault�append�set�bjunkr�keys�addZbpopular�lenr�items)rrr&�i�elt�indicesZjunkrZpopular�nZntestZidxsrrrZ	__chain_b)s,



zSequenceMatcher.__chain_bcCsJ|j|j|j|jjf\}}}}||d}	}
}i}g}
x�t||�D]�}|j}i}xn|�|||
�D]Z}||krpqb||krzP||dd�d}||<||krb||d||d|}	}
}qbW|}qBWx`|	|k�r(|
|k�r(|||
d��s(||	d||
dk�r(|	d|
d|d}	}
}q�WxV|	||k�r�|
||k�r�|||
|��s�||	|||
|k�r�|d7}�q,Wxb|	|k�r�|
|k�r�|||
d��r�||	d||
dk�r�|	d|
d|d}	}
}�q�WxV|	||k�r<|
||k�r<|||
|��r<||	|||
|k�r<|d}�q�Wt|	|
|�S)Nr
r%)rrr&r+�__contains__�range�getr)r�alo�ahi�blo�bhirrr&ZisbjunkZbestiZbestjZbestsizeZj2lenZnothingr0Zj2lengetZnewj2len�j�krrr�find_longest_matchPsB8$ 	"z"SequenceMatcher.find_longest_matchcCs�|jdk	r|jSt|j�t|j�}}d|d|fg}g}x�|r�|��\}}}}|�||||�\}	}
}}|r:|�|�||	kr�||
kr�|�||	||
f�|	||kr:|
||kr:|�|	|||
||f�q:W|��d}
}}g}x^|D]V\}}}|
||k�r|||k�r||7}q�|�r2|�|
||f�|||}
}}q�W|�r\|�|
||f�|�||df�tt	t
j|��|_|jS)Nr
)rr.rr�popr=r)�sort�list�mapr�_make)r�la�lbZqueuerr7r8r9r:r0r;r<�x�i1�j1Zk1Znon_adjacent�i2�j2Zk2rrr�get_matching_blocks�s8


z#SequenceMatcher.get_matching_blockscCs�|jdk	r|jSd}}g|_}x�|��D]�\}}}d}||krP||krPd}n||kr^d}n||krjd}|r�|�|||||f�||||}}|r,|�d||||f�q,W|S)Nr
r�replace�delete�insert�equal)r rJr))rr0r;Zanswer�ai�bj�size�tagrrr�get_opcodess$

zSequenceMatcher.get_opcodes�c
csr|��}|sdg}|dddkrZ|d\}}}}}|t|||�|t|||�|f|d<|dddkr�|d\}}}}}||t|||�|t|||�f|d<||}g}	x�|D]�\}}}}}|dk�r*|||k�r*|	�||t|||�|t|||�f�|	Vg}	t|||�t|||�}}|	�|||||f�q�W|	�rnt|	�dk�rh|	dddk�sn|	VdS)N)rNr
r%r
r%r
rN���r%)rS�max�minr)r.)
rr3ZcodesrRrFrHrGrI�nn�grouprrr�get_grouped_opcodes<s(&&(&z#SequenceMatcher.get_grouped_opcodescCs0tdd�|��D��}t|t|j�t|j��S)Ncss|]}|dVqdS)rUNr)�.0Ztriplerrr�	<genexpr>�sz(SequenceMatcher.ratio.<locals>.<genexpr>)�sumrJrr.rr)rrrrr�rationszSequenceMatcher.ratiocCs�|jdkr8i|_}x"|jD]}|�|d�d||<qW|j}i}|jd}}xH|jD]>}||�rl||}n|�|d�}|d||<|dkrV|d}qVWt|t|j�t|j��S)Nr
r%)r!rr6r4rrr.)rr!r1ZavailZavailhasrZnumbrrr�quick_ratio�s



zSequenceMatcher.quick_ratiocCs*t|j�t|j�}}tt||�||�S)N)r.rrrrW)rrCrDrrr�real_quick_ratio�sz SequenceMatcher.real_quick_ratio)NrrT)rT)�__name__�
__module__�__qualname__rrrrr"r=rJrSrZr^r_r`rrrrr+sl
@,'nG7
2rT�333333�?cCs�|dkstd|f��d|kr*dks:ntd|f��g}t�}|�|�xL|D]D}|�|�|��|krT|��|krT|��|krT|�|��|f�qTWt||�}dd�|D�S)Nr
zn must be > 0: %rgg�?z cutoff must be in [0.0, 1.0]: %rcSsg|]\}}|�qSrr)r[ZscorerErrr�
<listcomp>�sz%get_close_matches.<locals>.<listcomp>)	�
ValueErrorrrrr`r_r^r)�	_nlargest)ZwordZ
possibilitiesr3�cutoff�result�srErrrr�s



cCs4dt|�}}x ||kr.|||kr.|d7}qW|S)Nr
r%)r.)�line�chr0r3rrr�_count_leading�s
rmc@sFeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dS)rNcCs||_||_dS)N)�linejunk�charjunk)rrnrorrrrMszDiffer.__init__c
	cs�t|j||�}x�|��D]�\}}}}}|dkrD|�||||||�}	n\|dkr^|�d|||�}	nB|dkrx|�d|||�}	n(|dkr�|�d|||�}	ntd|f��|	EdHqWdS)	NrKrL�-rM�+rN� zunknown tag %r)rrnrS�_fancy_replace�_dumprf)
rrr�cruncherrRr7r8r9r:�grrr�comparedszDiffer.compareccs*x$t||�D]}d|||fVqWdS)Nz%s %s)r5)rrRrE�lo�hir0rrrrt�szDiffer._dumpc
csr||||kr2|�d|||�}|�d|||�}n |�d|||�}|�d|||�}x||fD]}	|	EdHq\WdS)Nrqrp)rt)
rrr7r8rr9r:�first�secondrvrrr�_plain_replace�szDiffer._plain_replaceccsFd\}}t|j�}	d\}
}x�t||�D]�}||}
|	�|
�xxt||�D]j}||}||
krp|
dkrH||}
}qH|	�|�|	��|krH|	��|krH|	��|krH|	��||}}}qHWq&W||kr�|
dkr�|�||||||�EdHdS|
|d}}}nd}
|�	||||||�EdH||||}}|
dk�rd}}|	�
||�x�|	��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}ntd
|f���qRW|�
||||�EdHn
d|V|�	||d|||d|�EdHdS)N)g�G�z��?g�?)NNg�?rrK�^rLrprMrqrNrrzunknown tag %rz  r%)rror5rrr`r_r^r|�
_fancy_helperrrSrf�_qformat)rrr7r8rr9r:Z
best_ratiorhruZeqiZeqjr;rPr0rOZbest_iZbest_jZaeltZbelt�atags�btagsrRZai1Zai2Zbj1Zbj2rCrDrrrrs�sX









zDiffer._fancy_replaceccsbg}||kr<||kr*|�||||||�}qT|�d|||�}n||krT|�d|||�}|EdHdS)Nrprq)rsrt)rrr7r8rr9r:rvrrrr~�szDiffer._fancy_helperccs�tt|d�t|d��}t|t|d|�d��}t|t|d|�d��}||d���}||d���}d|V|r�dd||fVd|V|r�dd||fVdS)N�	rrz- z? %s%s
z+ )rWrm�rstrip)rZalineZbliner�r��commonrrrr
s


zDiffer._qformat)NN)
rarbrcrrwrtr|rsr~rrrrrr�s^
)^Nz
\s*(?:#\s*)?$cCs||�dk	S)Nr)rkZpatrrrr>s� 	cCs||kS)Nr)rlZwsrrrrNscCs:|d}||}|dkr"d�|�S|s.|d8}d�||�S)Nr%z{}z{},{})�format)�start�stop�	beginningrrrr�_format_range_unifiedes
r�r�
ccsht|||||||�d}�xHtd||��|�D�]0}	|s�d}|rJd�|�nd}
|r\d�|�nd}d�||
|�Vd�|||�V|	d|	d}}
t|d	|
d
�}t|d|
d�}d
�|||�Vx�|	D]�\}}}}}|dk�rx|||�D]}d|Vq�Wq�|dk�r2x |||�D]}d|V�qW|dkr�x |||�D]}d|V�qHWq�Wq.WdS)NFTz	{}rz
--- {}{}{}z
+++ {}{}{}r
rUr%�rT�z@@ -{} +{} @@{}rNrr>rLrKrp>rMrKrq)�_check_typesrrZr�r�)rr�fromfile�tofile�fromfiledate�
tofiledater3�lineterm�startedrY�fromdate�todaterz�last�file1_range�file2_rangerRrFrHrGrIrkrrrr	ps0)

cCsB|d}||}|s|d8}|dkr.d�|�Sd�|||d�S)Nr%z{}z{},{})r�)r�r�r�rrrr�_format_range_context�s
r�ccs�t|||||||�tddddd�}d}	�xztd||��|�D�]b}
|	s�d}	|rZd�|�nd	}|rld�|�nd	}d
�|||�Vd�|||�V|
d|
d
}
}d|Vt|
d|d�}d�||�Vtdd�|
D���r&xD|
D]<\}}}}}|dkr�x$|||�D]}|||V�q
Wq�Wt|
d|d�}d�||�Vtdd�|
D��r>xH|
D]@\}}}}}|dk�r^x$|||�D]}|||V�q�W�q^Wq>WdS)Nz+ z- z! z  )rMrLrKrNFTz	{}rz
*** {}{}{}z
--- {}{}{}r
rUz***************r%r�z
*** {} ****{}css |]\}}}}}|dkVqdS)>rLrKNr)r[rR�_rrrr\szcontext_diff.<locals>.<genexpr>rMrTr�z
--- {} ----{}css |]\}}}}}|dkVqdS)>rMrKNr)r[rRr�rrrr\srL)r��dictrrZr�r��any)rrr�r�r�r�r3r��prefixr�rYr�r�rzr�r�rRrFrHr�rkr�rGrIrrrr�s4,

cGs�|r0t|dt�s0tdt|d�j|df��|r`t|dt�s`tdt|d�j|df��x$|D]}t|t�sftd|f��qfWdS)Nr
z)lines to compare must be str, not %s (%r)z"all arguments must be str, not: %r)�
isinstance�str�	TypeError�typera)rr�args�argrrrr�s

r���
c		cs�dd�}	tt|	|��}tt|	|��}|	|�}|	|�}|	|�}|	|�}|	|�}|||||||||�}
x|
D]}|�dd�VqhWdS)Nc
SsPy|�dd�Stk
rJ}z dt|�j|f}t|�|�Wdd}~XYnXdS)N�ascii�surrogateescapez(all arguments must be bytes, not %s (%r))�decode�AttributeErrorr�rar�)rj�err�msgrrrr�-szdiff_bytes.<locals>.decoder�r�)r@rA�encode)Zdfuncrrr�r�r�r�r3r�r��linesrkrrrr
"s
cCst||��||�S)N)rrw)rrrnrorrrr@s#c#s�ddl}|�d��t||||��ddgf�fdd�	���fdd���fdd�}|�}|dkrj|EdH�n,|d	7}d}�xddg|}	}
d
}xR|d
kr�yt|�\}}
}Wntk
r�dSX|	|}||
|f|
|<|	d	7}	q�W|	|kr�dV|}n|	}d}	x.|�r,|	|}|	d	7}	|
|V|d	8}�qW|d	}yDx>|�rvt|�\}}
}|�r^|d	}n|d	8}||
|fV�q:WWqztk
�r�dSXqzWdS)Nr
z
(\++|\-+|\^+)cs�||d7<|dkr2|||�d�dd�fS|dkr�|�d�|�d�}}g}|fdd�}��||�xHt|�D]<\}\}	}
|d|	�d|||	|
�d||
d�}qvW|dd�}n*|�d�dd�}|s�d	}d||d}|||fS)
Nr%r
r��?cSs&|�|�d�d|��g�|�d�S)Nr%r
)r)rY�span)Zmatch_object�sub_inforrr�record_sub_info�sz3_mdiff.<locals>._make_line.<locals>.record_sub_info��rr)r>�sub�reversed)r�Z
format_key�sideZ	num_lines�textZmarkersr�r��keyZbegin�end)�	change_rerr�
_make_line�s 4z_mdiff.<locals>._make_linec3s�g}d\}}�xlx t|�dkr0|�t�d��qWd�dd�|D��}|�d�rX|}�n�|�d�r��|dd	��|dd
�dfVq�n�|�d�r�|d
8}�|d
d	�ddfVq�nl|�d�rވ|d
d	�d}}|d
d	}}�n>|�d��r�|dd	��|dd
�dfVq�n|�d��r8�|dd	��|dd
�dfVqn�|�d
��rd|d
8}�|d
d	�ddfVqn�|�d��r�|d
7}d�|dd
�dfVqn�|�d��r�d�|dd
�}}|d
d	}}n^|�d��r�|d
7}d�|dd
�dfVqn2|�d��r�|dd�dd	��|dd
�dfVqx|d	k�r:|d
7}dV�qWx|d	k�rZ|d
8}dV�q>W|�d��rldS||dfVqWdS)N)r
r
r��XrcSsg|]}|d�qS)r
r)r[rkrrrre�sz2_mdiff.<locals>._line_iterator.<locals>.<listcomp>z-?+?r�r
r%Tz--++rp)z--?+z--+z- z-+?z-?+z+--rq)z+ z+-rrF)N)rr�T))rr�NT)r.r)�next�join�
startswith)r�Znum_blanks_pendingZnum_blanks_to_yieldrj�	from_line�to_line)r��diff_lines_iteratorrr�_line_iterator�sf



$z_mdiff.<locals>._line_iteratorc3s���}gg}}x�xpt|�dks,t|�dkr�yt|�\}}}Wntk
rRdSX|dk	rj|�||f�|dk	r|�||f�qW|�d�\}}|�d�\}}|||p�|fVqWdS)Nr
)r.r��
StopIterationr)r>)Z
line_iterator�	fromlines�tolinesr�r��
found_diffZfromDiffZto_diff)r�rr�_line_pair_iterators

z#_mdiff.<locals>._line_pair_iteratorr%F)NNN)�re�compilerr�r�)r�r��contextrnror�r�Zline_pair_iteratorZlines_to_write�indexZcontextLinesr�r�r�r0r)r�r�r�r�r�_mdiffesT"
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">&nbsp;Added&nbsp;</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�eZdZeZeZeZeZdZdddefdd�Z	dd	d
�dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zddd�ZdS)rr
�NcCs||_||_||_||_dS)N)�_tabsize�_wrapcolumn�	_linejunk�	_charjunk)r�tabsizeZ
wrapcolumnrnrorrrr�szHtmlDiff.__init__rF�zutf-8)�charsetcCs:|jt|j|j|j||||||d�|d��|d��|�S)N)r��numlines)ZstylesZlegend�tabler��xmlcharrefreplace)�_file_templater��_styles�_legend�
make_tabler�r�)rr�r��fromdesc�todescr�r�r�rrr�	make_file�s
zHtmlDiff.make_filecs8�fdd���fdd�|D�}�fdd�|D�}||fS)Ncs6|�dd�}|��j�}|�dd�}|�dd��d�S)Nrrr�r�r�)rK�
expandtabsr�r�)rk)rrr�expand_tabs�sz2HtmlDiff._tab_newline_replace.<locals>.expand_tabscsg|]}�|��qSrr)r[rk)r�rrresz1HtmlDiff._tab_newline_replace.<locals>.<listcomp>csg|]}�|��qSrr)r[rk)r�rrresr)rr�r�r)r�rr�_tab_newline_replace�s
	zHtmlDiff._tab_newline_replacecCs|s|�||f�dSt|�}|j}||ksB||�d�d|krT|�||f�dSd}d}d}xd||kr�||kr�||dkr�|d7}||}|d7}qb||dkr�|d7}d}qb|d7}|d7}qbW|d|�}	||d�}
|r�|	d}	d||
}
|�||	f�|�|d|
�dS)Nr�rTr
rr%r��>)r)r.r��count�_split_line)rZ	data_listZline_numr�rQrVr0r3ZmarkZline1Zline2rrrr�s8

zHtmlDiff._split_lineccs�x�|D]�\}}}|dkr&|||fVq||\}}\}}gg}	}
|�|	||�|�|
||�x@|	sh|
r�|	rx|	�d�}nd}|
r�|
�d�}nd}|||fVq`WqWdS)Nr
)rrr)r�r>)r�diffs�fromdata�todata�flagZfromlineZfromtextZtolineZtotext�fromlist�tolistrrr�
_line_wrapper;s 

zHtmlDiff._line_wrapperc	Cs�ggg}}}xz|D]r\}}}y4|�|jd|f|���|�|jd|f|���Wn(tk
r||�d�|�d�YnX|�|�qW|||fS)Nr
r%)r)�_format_liner�)rr�r�r��flaglistr�r�r�rrr�_collect_linesWs
zHtmlDiff._collect_linescCsryd|}d|j||f}Wntk
r6d}YnX|�dd��dd��dd	�}|�d
d���}d|||fS)
Nz%dz
 id="%s%s"r�&z&amp;r�z&gt;�<z&lt;rrz&nbsp;z<<td class="diff_header"%s>%s</td><td nowrap="nowrap">%s</td>)�_prefixr�rKr�)rr�r�Zlinenumr��idrrrr�ls
zHtmlDiff._format_linecCs0dtj}dtj}tjd7_||g|_dS)Nzfrom%d_zto%d_r%)r�_default_prefixr�)rZ
fromprefix�toprefixrrr�_make_prefix�s

zHtmlDiff._make_prefixcCs�|jd}dgt|�}dgt|�}d\}	}
d}xbt|�D]V\}}
|
r�|
s�d}
|}td||g�}d||	f||<|	d7}	d||	f||<q<d}
q<W|s�dg}dg}dg}d}|r�d	g}|}n
d
g}}|ds�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>&nbsp;No Differences Found&nbsp;</td>z(<td></td><td>&nbsp;Empty File&nbsp;</td>z!<a href="#difflib_chg_%s_0">f</a>z#<a href="#difflib_chg_%s_top">t</a>)r�r.r'rV)rr�r�r�r�r�r��next_id�	next_hrefZnum_chgZ	in_changer�r0r�rrr�_convert_flags�s:

zHtmlDiff._convert_flagsc
CsV|��|�||�\}}|r"|}nd}t||||j|jd�}|jrL|�|�}|�|�\}	}
}|�|	|
|||�\}	}
}}}
g}d}x`t	t
|��D]P}||dkr�|dkr�|�d�q�|�||
||||	||||
|f�q�W|s�|�rddd|dd|f}nd}|jt
d�|�||jd	d
�}|�dd��d
d��dd��dd��dd�S)N)rnrozV            <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>rr%)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�z&nbsp;)r�r�r�r�r�r�r�r�r�r5r.r)�_table_templater�r�r�rK)rr�r�r�r�r�r�Z
context_linesr�r�r�r�r�r�rjZfmtr0r�r�rrrr��sH


zHtmlDiff.make_table)rrFr�)rrFr�)rarbrcr�r�r�r�r�rrr�r�r�r�r�r�r�r�r�rrrrr�s$7/ccsryddd�t|�}Wn"tk
r8td|�d�YnXd|f}x*|D]"}|dd�|krH|dd�VqHWdS)Nz- z+ )r%r�z)unknown delta choice (must be 1 or 2): %rz  r�)�int�KeyErrorrf)ZdeltaZwhichrR�prefixesrkrrrrs
cCsddl}ddl}|�|�S)Nr
)�doctest�difflibZtestmod)rrrrr�_test,sr�__main__)rTrd)r�)rrrrrTr�)rrrrrTr�)r�r�r�r�rTr�)#�__all__�heapqrrg�collectionsrZ_namedtuplerrrrrmrr�r��matchrrr�r	r�rr�r
rr�r�r�r�r��objectrrrrarrrr�<module>s\


0O

H
K
%!	
a