RIFFWEBPVP8X ALPHz)NaصE.̱nmwww H5uΜa~ˆ~oeW|aV_:]\iVۦ6ؿ÷i]65b%ymniU]^^|ŇdOZV˗/_V_\nP\Qu<_+*m߮'O$C_}QǹQjEZ;\Q<=)?U(Qc_,Vޛr^˷6Uq(Lߡ9e ;R*7lLݰqkcA׫$O`l^Xlک}jRm*;^~W^\$%W^~_/"^H@G5KIJ A  p)Ax9A+sF+Vd\kUz#\׹*@Γ<:/gTtեiqs$)XҚq臒Q(InDRZj$aKtS.IQ}.2>EX҂OqDIҍ`)X8 qܭDI~Pe'R8 !4XRAubIn38NJ$:xG)Vdw;sEbxP O{h~<3JR@ޑt.Z<)(XJ/W,)/M8Aqi CuJZQ JRjII)VŒKm"I~nBN+$bI4"Œj<8T"AEE&OǨ*%)RjI;SEbQkMw]|LUJR+7J}VW '/h:Krly(WHI4<_XREQKwҜF2$XRU]ၔ(ߩ:o*$)(Thx H˃fU$s\X+[jNWXvť1O DII@ c'Q 3S gDO(Jġ/*RfR#UFxCq9=Y.(H0z~7BREQHn8SJIqq,)z9IaI`ZaE+d&QŒ*fSSG&m)*(SUQbV媬*GIz1.zMo\'8r=+>kpJI&`>JR)5v)(}R{qyr<ٗ=~t$-^  ˦;p :~ɗtgФwٴ'۽.` ]؍4'OpDGyנI'L9MU5jtF:hE&xڍv4ud'bzRw轑߼@ H:{OUw: 6O^0r\GqwU7s>pFU{w9Q\;j;=Γ;-A˶mo[+K;dxLw7. -fK2lII;̧wLI6[͖d/ ͖d٬w:W8oF~@GחRuO&4ҍ(Zmꎽ:c:6fcLsM{ X 4ߴ&y1b9Xۍb8ڏ;N8V@fkTK]f9d]c^,Ǒk;pl8Gߥ0M r6e\)Pu~> Gfܣwv?B?}l3GEmRk;r›k^]0,9jRrIO\ ,desfƳ۽sF8j_Щ`ݝdX2;gJm 𜴰yg `d^rͰ_h&wο6So&?W>sωZAbұu~zqزfOOAI?=Jw}?%Mꆒ pW-;r;Yx=L]s/%e|q'Va:9FY'%2 3b>{|YVYۺ6<6,n@-0{.59>n?>}w||%YV: #ֶ.}7wcuBZ?X޾:1pv]o#sIْL|,9ΞϔOYyQJ9L WȃE)ǯqPc_Oɗ4e4 (M۔@ h跬c5kY W맲×6 Ok`{xzyA;0 hYRS-ál7||s<{RNZ|[f=Y@k88neAK:RN<5;l?7ݹu^]q#Gv%z ÀqD׵/#44/8wl_]1?ω[!0.eYƪF|NQp/9r< !#ӟ3x~+5-qꦴ ~7 [4ß`,PΥN{aE+Nz캡/ qu-=,P54 wjNN>xުQz<ߟ2u킚}7wú< 8m}h_(0:oƭˑ=WO|}lmk<߄ ^7gowCw&}-ꂲoKʎv068zϞOx0u{'ׇ&{vwk@>j^+Cs{ g>p-cyo<-xvXtQt>czLv< O0oG={î[Ÿ_{{j)kgdA_e`C{RuF##׌b:r T#Q|#ՌT]`a93p c y08y9pΜ3Rp 3ͼox7;x;o]8ü<`FfF)`C>RT<`TT3r͠04h~s/\V#׌6R]o.VP8 9*>Q(F#$p Mi%kU~n>{^`?e+;w@{Q'V_?ߵ_?a=;|2u'J 9¨_bōޱ7zXcwnޱ!\59h'B|qY:L!F޵!%t^/'}f_Xԅ]=S~ DŽaP&\q`fv ; D-dYt w%BGPo}7_$|Fq%?)t^n5+WCXF|CNO.'{|[xxkGDV0YvBjx]rw˱|Б݀7gZ#6o ۈ/>Uh8\d< ߭ .gS#H+`#ՒUF4/7۳7\:R8f!*P* OP0LHw͢h>q2}+vO Fxrt3,. |N8PrKi#͑SG}%+$ bQȟ2F_qU ʩG |uZe7~LK.DUN'..M}ґGNݳiwksDxce{/pk 7ރ P*P1A ֨.I=͠#PLuV 1-+$$-?4 At1jS>s}?rU?K>7N8d7=I%_B.)tN0VUӇaP'\ꈱqBC!=r_ ]da_~Uu4 xP$wr)Ǯ&vP-"A"ˏzIʡZe<lyؔvѶRWD%6*v}U^|r5g$Ut朹Zd ٩9ӹvܒ-m"o6NaZ?¯0;_# $6B$nEyCΓN}Qi~5z }[foQ6Ped z0鱫 }g,n&aM>hj89So1Mxx]Qe? FbPB28eJZ^sjFYk~4WUj1fx[܏H8k*1tMҐ%bo Zl];MS򐋋0eBk2L2owS@z MgʔKNJ7=<,̏Udpg\fI9ZEE7PW$Z6 (0{k f/@\7q'_Yg$QII 1fj\jX dxi0}a$XWIIaԢpHI"HM6"doJoUvsB4 )ZlEc˝r=ݢ$/:yX4owQʖ# axӦ7?$W:+Gm)80Bj&"r_p*rᣤF>>e'q|H~20^pSx=Ŗ_( wdê0oBG]$-#|YzWrF<V?m^и/J:5.7c'~AL^['uz (CeI}MK!x.|u>\Օ>sbTKB(OGs{h+gAtW&ߧ?6<1 yE2q|5?*_FӒڻw S :̽b%h,r*A&0;@2j+rteΠEXIFExifII*V^(ifHH02100100XMP a DOgkE@s,gdZddlmZddlmZddlmZeddZ ddZ Gd d d Z d9d dZ ddZ GdddZddlZedjfddZd:ddZddZd;ddZd d!Zd) get_close_matchesndiffrestoreSequenceMatcherDifferIS_CHARACTER_JUNK IS_LINE_JUNK context_diff unified_diff diff_bytesHtmlDiffMatch)nlargest) namedtuple) GenericAliasr za b sizecCs|rd||SdS)Ng@?)matcheslengthrr/usr/lib64/python3.9/difflib.py_calculate_ratio's rc@szeZdZdddZddZdd Zd d Zd d ZdddZddZ ddZ d ddZ ddZ ddZ ddZeeZdS)!rNTcCs(||_d|_|_||_|||dSN)isjunkabautojunkset_seqs)selfrrrrrrr__init__xs; zSequenceMatcher.__init__cCs||||dSr)set_seq1set_seq2)rrrrrrrs zSequenceMatcher.set_seqscCs$||jurdS||_d|_|_dSr)rmatching_blocksopcodes)rrrrrr s zSequenceMatcher.set_seq1cCs2||jurdS||_d|_|_d|_|dSr)rr"r# fullbcount_SequenceMatcher__chain_b)rrrrrr!s   zSequenceMatcher.set_seq2c Cs|j}i|_}t|D]\}}||g}||qt|_}|j}|r~|D]}||rV| |qV|D] }||=qrt|_ }t |} |j r| dkr| dd} | D]\}} t | | kr| |q|D] }||=qdS)Nd)rb2j enumerate setdefaultappendsetbjunkrkeysaddZbpopularlenritems) rrr)ieltindicesZjunkrZpopularnZntestZidxsrrrZ __chain_b s,           zSequenceMatcher.__chain_br cCsT|j|j|j|jjf\}}}}|dur.t|}|dur>t|}||d} } } i} g} t||D]}| j}i}|||| D]\}||krq~||krq||ddd}||<|| kr~||d||d|} } } q~|} q`| |kr@| |kr@||| ds@|| d|| dkr@| d| d| d} } } q| | |kr| | |kr||| | s|| | || | kr| d7} q@| |kr| |kr||| dr|| d|| dkr| d| d| d} } } q| | |krH| | |krH||| | rH|| | || | krH| d} qt| | | SNr r() rrr)r. __contains__r1rangegetr )raloahiblobhirrr)ZisbjunkZbestiZbestjZbestsizeZj2lenZnothingr3Zj2lengetZnewj2lenjkrrrfind_longest_match1sZ:"   z"SequenceMatcher.find_longest_matchcCs||jdur|jSt|jt|j}}d|d|fg}g}|r|\}}}}|||||\} } } } | r8|| || kr|| kr||| || f| | |kr8| | |kr8|| | || | |fq8|d} }}g}|D]V\}}}| ||kr|||kr||7}q|r,|| ||f|||} }}q|rT|| ||f|||dftt t j ||_|jSNr ) r"r1rrpoprAr,sortlistmapr _make)rlalbqueuer"r;r<r=r>r3r?r@xi1j1Zk1Z non_adjacenti2j2Zk2rrrget_matching_blockss8    z#SequenceMatcher.get_matching_blockscCs|jdur|jSd}}g|_}|D]\}}}d}||krN||krNd}n||kr\d}n ||krhd}|r||||||f||||}}|r*|d||||fq*|S)Nr rreplacedeleteinsertequal)r#rPr,)rr3r?Zansweraibjsizetagrrr get_opcodess$  zSequenceMatcher.get_opcodesc csn|}|sdg}|dddkrZ|d\}}}}}|t||||t||||f|d<|dddkr|d\}}}}}||t||||t|||f|d<||}g} |D]\}}}}}|dkr(|||kr(| ||t||||t|||f| Vg} t|||t|||}}| |||||fq| rjt| dkrd| dddksj| VdS)N)rTr r(r r(r rTr()rYmaxminr,r1) rr6ZcodesrXrLrNrMrOnngrouprrrget_grouped_opcodes#s(&&(&z#SequenceMatcher.get_grouped_opcodescCs0tdd|D}t|t|jt|jS)Ncss|]}|dVqdS)r[Nr).0Ztriplerrr kz(SequenceMatcher.ratio..)sumrPrr1rr)rrrrrratioUszSequenceMatcher.ratiocCs|jdur4i|_}|jD]}||dd||<q|j}i}|jd}}|jD]>}||rf||}n ||d}|d||<|dkrP|d}qPt|t|jt|jSr7)r$rr:r8rrr1)rr$r4ZavailZavailhasrZnumbrrr quick_rations         zSequenceMatcher.quick_ratiocCs*t|jt|j}}tt||||Sr)r1rrrr])rrHrIrrrreal_quick_ratiosz SequenceMatcher.real_quick_ratio)NrrT)r Nr N)rZ)__name__ __module__ __qualname__rrr r!r%rArPrYr`rerfrg classmethodr__class_getitem__rrrrr,sL @ ,' tG7 2 rrZ333333?cCs|dkstd|fd|kr*dks:ntd|fg}t}|||D]D}||||krR||krR||krR|||fqRt||}dd|DS)Nr zn must be > 0: %rgrz cutoff must be in [0.0, 1.0]: %rcSsg|] \}}|qSrr)raZscorerKrrr rcz%get_close_matches..) ValueErrorrr!r rgrfrer, _nlargest)ZwordZ possibilitiesr6cutoffresultsrKrrrrs"      rcCsdddt||DS)Nrcss*|]"\}}|dkr|r|n|VqdS) N)isspace)racZtag_crrrrbsz$_keep_original_ws..)joinzip)rsZtag_srrr_keep_original_wss ryc@sFeZdZdddZddZddZdd Zd d Zd d ZddZ dS)rNcCs||_||_dSrlinejunkcharjunk)rr{r|rrrr*szDiffer.__init__c cst|j||}|D]\}}}}}|dkrB|||||||} n\|dkr\|d|||} nB|dkrv|d|||} n(|dkr|d|||} ntd|f| EdHqdS) NrQrR-rS+rTrtunknown tag %r)rr{rY_fancy_replace_dumpro) rrrcruncherrXr;r<r=r>grrrcompareAszDiffer.compareccs&t||D]}d|||fVq dS)Nz%s %s)r9)rrXrKlohir3rrrrjsz Differ._dumpc csn||||kr2|d|||}|d|||}n |d|||}|d|||}||fD]} | EdHqZdS)Nr~r})r) rrr;r<rr=r>firstsecondrrrr_plain_replaceos zDiffer._plain_replaceccs:d\}}t|j} d\} } t||D]} || } | | t||D]j}||}|| krl| durD|| } } qD| || |krD| |krD| |krD| || }}}qDq$||kr| dur|||||||EdHdS| | d}}}nd} | ||||||EdH||||}}| dur d}}| ||| D]\}}}}}||||}}|dkr|d|7}|d|7}nb|dkr|d|7}nJ|d kr|d |7}n2|d kr|d |7}|d |7}nt d |fqH| ||||EdHn d|V| ||d|||d|EdHdS)N)gGz?g?)NNrrrQ^rRr}rSr~rTrtr r()rr|r9r!r rgrfrer _fancy_helperrrYro_qformat)rrr;r<rr=r>Z best_ratiorqrZeqiZeqjr?rVr3rUZbest_iZbest_jZaeltZbeltatagsbtagsrXZai1Zai2Zbj1Zbj2rHrIrrrr}s\                zDiffer._fancy_replaceccsbg}||kr<||kr*|||||||}qT|d|||}n||krT|d|||}|EdHdS)Nr}r~)rr)rrr;r<rr=r>rrrrrszDiffer._fancy_helperccsXt||}t||}d|V|r8d|dVd|V|rTd|dVdS)N- z?  + )ryrstrip)rZalineZblinerrrrrrs  zDiffer._qformat)NN) rhrirjrrrrrrrrrrrrsV )^ rNz \s*(?:#\s*)?$cCs ||duSrr)linepatrrrrsr cCs||vSrr)Zchwsrrrr%srcCs:|d}||}|dkr"d|S|s.|d8}d||SNr(z{}z{},{}formatstartstopZ beginningrrrr_format_range_unified<s rrrccsPt|||||||d}td|||D]} |s|d}|rFd|nd} |rXd|nd} d|| |Vd|| |V| d| d} } t| d | d }t| d | d }d |||V| D]\}}}}}|dkr|||D]}d|Vqq|dvr"|||D]}d|Vq|dvr|||D]}d|Vq6qq*dS)NFT {}r --- {}{}{}z +++ {}{}{}r r[r(rZz@@ -{} +{} @@{}rTrt>rQrRr}>rQrSr~) _check_typesrr`rr)rrfromfiletofile fromfiledate tofiledater6linetermstartedr_fromdatetodaterlast file1_range file2_rangerXrLrNrMrOrrrrr Gs0)  r cCsB|d}||}|s|d8}|dkr.d|Sd|||dSrrrrrr_format_range_contexts rccst|||||||tddddd}d} td|||D]R} | sd} |rVd|nd } |rhd|nd } d || |Vd || |V| d | d } }d|Vt| d|d}d||Vtdd| Dr| D]8\}}}}}|dkr|||D]}|||Vqqt| d|d}d||Vtdd| Dr:| D]<\}}}}}|dkrP|||D]}|||VqtqPq:dS)Nrrz! r)rSrRrQrTFTrrz *** {}{}{}rr r[z***************r(rz *** {} ****{}css |]\}}}}}|dvVqdS)>rQrRNrrarX_rrrrbrczcontext_diff..rSrZrz --- {} ----{}css |]\}}}}}|dvVqdS)>rQrSNrrrrrrbrcrR)rdictrr`rrany)rrrrrrr6rprefixrr_rrrrrrXrLrNrrrrMrOrrrrs4,  rcGs|r0t|dts0tdt|dj|df|r`t|dts`tdt|dj|df|D]}t|tsdtd|fqddS)Nr z)lines to compare must be str, not %s (%r)z"all arguments must be str, not: %r) isinstancestr TypeErrortyperh)rrargsargrrrrs rrc c cs~dd} tt| |}tt| |}| |}| |}| |}| |}| |}|||||||||} | D]} | ddVqfdS)Nc SsTz|ddWStyN}z(dt|j|f}t||WYd}~n d}~00dS)Nasciisurrogateescapez(all arguments must be bytes, not %s (%r))decodeAttributeErrorrrhr)rserrmsgrrrrs zdiff_bytes..decoderr)rErFencode) Zdfuncrrrrrrr6rrlinesrrrrr s r cCst||||Sr)rr)rrr{r|rrrrs#rc#sddl}|dt||||ddgffdd fddfdd}|}|durj|EdHn|d 7}d}ddg|} } d } | d urzt|\} } } WntyYdS0| |}| | | f| |<| d 7} q| |krd V|}n| }d} |r | |}| d 7} | |V|d 8}q|d }z@|rft|\} } } | rN|d }n|d 8}| | | fVq*Wqvty~YdS0qvdS) Nr z (\++|\-+|\^+)c s||d7<|dur2|||dddfS|dkr|d|d}}g}|fdd}||t|D]<\}\} } |d| d||| | d|| d}qt|dd}n*|ddd}|sd }d||d}|||fS) Nr(r r?cSs&||dd|g|dS)Nr(r )r,r_span)Z match_objectsub_inforrrrecord_sub_infosz3_mdiff.._make_line..record_sub_infort)rCsubreversed) rZ format_keysideZ num_linestextZmarkersrrkeyZbeginend) change_rerr _make_linefs   2z_mdiff.._make_linec3sng}d\}}t|dkr*|tdq ddd|D}|drP|}n|dr||dd |dd d fVq n|d r|d 8}|d d dd fVq nl|drֈ|d d d}}|d d }}n>|dr|dd |dd d fVq n|dr0|dd |dd d fVq n|d r\|d 8}|d d dd fVq n|dr|d 7}d|dd d fVq n|drd|dd }}|d d }}n^|dr|d 7}d|dd d fVq n2|dr|dddd |dd dfVq |d kr0|d 7}dVq|d krL|d 8}dVq0|dr\dS||d fVq dS)N)r r rXrcSsg|] }|dqS)r rrarrrrrnrcz2_mdiff.._line_iterator..z-?+?rr r(Tz--++r})z--?+z--+rz-+?z-?+z+--r~)rz+-rtF)NrrT)rNT)r1r,nextrw startswith)rZnum_blanks_pendingZnum_blanks_to_yieldrs from_lineto_line)rdiff_lines_iteratorrr_line_iteratorsd            $     z_mdiff.._line_iteratorc3s}gg}}t|dks(t|dkr~zt|\}}}WntyNYdS0|durf|||f|dur|||fq|d\}}|d\}}|||p|fVqdSrB)r1r StopIterationr,rC)Z line_iterator fromlinestolinesrr found_diffZfromDiffZto_diff)rrr_line_pair_iterators   z#_mdiff.._line_pair_iteratorr(F)NNN)recompilerrr)rrcontextr{r|rrZline_pair_iteratorZlines_to_writeindexZ contextLinesrrrr3r)rrrrr_mdiff<sR" 8X !     ran %(table)s%(legend)s 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 %(header_row)s %(data_rows)s
a
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op
c@seZdZeZeZeZeZdZdddefddZ dd d d d Z d dZ ddZ ddZ ddZddZddZddZdddZdS)r r NcCs||_||_||_||_dSr)_tabsize _wrapcolumn _linejunk _charjunk)rtabsizeZ wrapcolumnr{r|rrrrs zHtmlDiff.__init__rFzutf-8)charsetc Cs:|jt|j|j|j||||||d|d|d|S)N)rnumlines)ZstylesZlegendtablerxmlcharrefreplace)_file_templater_styles_legend make_tablerr)rrrfromdesctodescrrrrrr make_files zHtmlDiff.make_filecs8fddfdd|D}fdd|D}||fS)Ncs6|dd}|j}|dd}|dddS)Nrtr r)rQ expandtabsrr)r)rrr expand_tabss   z2HtmlDiff._tab_newline_replace..expand_tabscsg|] }|qSrrrrrrrnrcz1HtmlDiff._tab_newline_replace..csg|] }|qSrrrrrrrnrcr)rrrr)rrr_tab_newline_replaces zHtmlDiff._tab_newline_replacec Cs|s|||fdSt|}|j}||ksB||dd|krT|||fdSd}d}d}||kr||kr||dkr|d7}||}|d7}q`||dkr|d7}d}q`|d7}|d7}q`|d|} ||d} |r| d} d|| } ||| f||d| dS)NrrZr rr(r>)r,r1rcount _split_line) rZ data_listZline_numrrWr\r3r6ZmarkZline1Zline2rrrrs8        zHtmlDiff._split_linec cs|D]\}}}|dur$|||fVq||\}}\}}gg} } || |||| ||| sd| r| rt| d}nd}| r| d}nd}|||fVq\qdS)Nr )rrt)rrC) rdiffsfromdatatodataflagZfromlineZfromtextZtolineZtotextfromlisttolistrrr _line_wrappers     zHtmlDiff._line_wrapperc Csggg}}}|D]t\}}}z8||jd|g|R||jd|g|RWn&ty||d|dYn0||q|||fSr7)r, _format_liner)rrrrflaglistrrrrrr_collect_lines.s   zHtmlDiff._collect_linescCspzd|}d|j||f}Wnty4d}Yn0|dddddd }|d d }d |||fS) Nz%dz id="%s%s"r&z&rz>%s%s)_prefixrrQr)rrrZlinenumridrrrrCs  zHtmlDiff._format_linecCs0dtj}dtj}tjd7_||g|_dS)Nzfrom%d_zto%d_r()r _default_prefixr )rZ fromprefixtoprefixrrr _make_prefixZs  zHtmlDiff._make_prefixcCs|jd}dgt|}dgt|}d\} } d} t|D]V\} } | r| sd} | } td| |g} d|| f|| <| d7} d|| f|| <q:d} q:|sdg}dg}dg}d} |rd g}|}n d g}}|dsd ||d<d ||| <|||||fS) Nr(r)r Fr Tz id="difflib_chg_%s_%d"z"nFz2 No Differences Found z( Empty File z!fz#t)r r1r*r\)rrrrrrrnext_id next_hrefZnum_chgZ in_changerr3rrrr_convert_flagses<     zHtmlDiff._convert_flagsc CsR||||\}}|r"|}nd}t||||j|jd}|jrL||}||\} } } || | | ||\} } } } } g}d}t t | D]P}| |dur|dkr| dq| || || || || || |fq|s|rddd|dd|f}nd}|j t d|||jd d }|d d d dddddddS)NrzzV %s%s%s%s r z) z %s%s%s%sz!
z+%srr()Z data_rows header_rowrz+zz-zz^zrzrr )rrrrrrrrrr9r1r,_table_templaterrwr rQ)rrrrrrrZ context_linesrrrrrrrsfmtr3rrrrrrsZ        zHtmlDiff.make_table)rrFr)rrFr)rhrirjrrrrrrrrrrrrrrrrrrrrr s.  7 /r ccslzdddt|}Wn ty6td|dYn0d|f}|D]"}|dd|vrD|ddVqDdS)Nrr)r(rz)unknown delta choice (must be 1 or 2): %rrr)intKeyErrorro)ZdeltawhichrXprefixesrrrrrs rcCsddl}ddl}||SrB)doctestdifflibtestmod)rrrrr_testsr__main__)rZrm)r)rrrrrZr)rrrrrZr)rcrcrcrcrZr)%__all__heapqrrp collectionsrZ _namedtupletypesrr rrrryrrrmatchrrrr rrrr rrrrrrobjectr rrrhrrrrs`    r 1 A   I  L %   a