MINI MINI MANI MO

Path : /lib/python2.7/site-packages/urlgrabber/
File Upload :
Current File : //lib/python2.7/site-packages/urlgrabber/progress.pyo

ó
ÅfERc@sÃddlZddlZddlZddlZddlZddlZddlZdd„Zda	da
ddd„ZddGd„ƒYZddHd	„ƒYZ
d
ad
ad
d„Zd„Zd
„Zde
fd„ƒYZeZde
fd„ƒYZddId„ƒYZddJd„ƒYZdefd„ƒYZddKd„ƒYZd
d„Zd
dd„Zd„Zd„Zedkr¿eej ƒd kr-ej dd!kr-edLdMdNfdOdPdQƒedRdSdTfdUdVdWƒedXdYdZfd[d\d]ƒed^d_d`fdadbdcƒej!d
ƒneej ƒd krbej dd1krbedlƒned"dd.d
d#dmdndoƒed$d d.d
d'dpdqdrdsƒ	ed&d3d.d%d'dtdudvdwƒ	ed4d5d.d
d2dxdydzƒed6d7d.d8d2d{d|d}ƒed9d:d.d;d2d~dd€ƒed<d=d.d
d'dƒed>d?d.d@d'd‚ƒedAdBd.dCd'dƒƒedDd.d.d
d2d„d…d†d‡dˆd‰dŠd‹dŒddŽddd‘d’d“d”d•d–ƒndS(—iÿÿÿÿNicCs[yLd}tj|tj|ƒ}tjd|ƒd}|dkrGdS|SWndSXdS(s Get the real terminal width tabcdefghthhhhiiiPN(tfcntltioctlttermiost
TIOCGWINSZtstructtunpack(tfdtbuftret((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytterminal_widthsgð?cCsAtjƒ}tdks(|t|kr=t|ƒa|antS(s6 Get the real terminal width, but cache it for a bit. N(ttimet_term_width_valtNonet_term_width_lastR(Rt
cache_timeouttnow((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytterminal_width_cached-s
	tTerminalLinecBsMeZdZdd
ddd„Zd„Zdd„Zd
d„Zd	„ZRS(sB Help create dynamic progress bars, uses terminal_width_cached(). iigð?cCsX|dkr|}n||_t||ƒ|_|j|krK||_nt|_dS(N(Rt_min_lenRt_llentFalset_fin(tselftmin_resttbeg_lenRR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyt__init__;s		cCs|j|jS(s Usable length for elements. (RR(R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyt__len__DsicCs"|j|krdS|j||S(sw After a fixed length, split the rest of the line length among
            a number of different elements (default=2). i(R(Rtfixedtelements((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyt
rest_splitHscCs_|dkrt|ƒ}nt|ƒ|kr9t|_n|jrFdS|jt|ƒ8_|S(s‹ If there is room left in the line, above min_len, add element.
            Note that as soon as one add fails all the rest will fail too. tN(RtlentTrueRR(Rtelementtfull_len((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytaddOs	cCs|jS(sA Current rest of line, same as .rest_split(fixed=0, elements=1). (R(R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytrest]sN(	t__name__t
__module__t__doc__RRRRR%R&(((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR8s		t	BaseMetercBsheZd„Zddddddd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	RS(cCsad|_d|_d|_d|_d|_d|_d|_d|_d|_	t
ƒ|_dS(Ng333333Ó?i(t
update_periodRtfilenameturltbasenamettexttsizet
start_timetlast_amount_readtlast_update_timet
RateEstimatortre(R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRbs									cCs©||_||_||_||_||_|dk	rOt|ƒd|_n|dkrjtjƒ}n||_	|j
j||ƒd|_||_
|j|ƒdS(NtBi(R,R-R.R/R0Rt
format_numbertfsizeRR1R5tstartR2R3t	_do_start(RR,R-R.R0RR/((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR9os								cCsdS(N((RR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR:scCsw|dkrtjƒ}n|js;||j|jkrs|jj||ƒ||_||_|j||ƒndS(N(RRR3R+R5tupdateR2t
_do_update(Rtamount_readR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR;„s
		cCsdS(N((RR=R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR<scCsT|dkrtjƒ}n|jj||ƒ||_||_|j||ƒdS(N(RRR5R;R2R3t_do_end(RR=R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytend’s		cCsdS(N((RR=R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR>™sN(
R'R(RRR9R:R;R<R?R>(((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR*as	
	icCs|a|adS(N(t_text_meter_total_sizet_text_meter_sofar_size(R0t
downloaded((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyttext_meter_total_size¡scCs_|}dt||ƒ}||t||ƒdkrE|d7}n|jd|||fƒS(Nt=gà?t-s	 [%-*.*s](tintR%(ttltbar_max_lengthtpctblentbar((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyt
_term_add_barÖs

cCsZ|rG||kr%|jdƒtfS||krG|jdƒtfSn|jdƒtfS(Ns !!! s ... t is     (R%R"R(RGtosizeR0((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyt
_term_add_endÝst	TextMetercBs/eZejd„Zdd„Zdd„ZRS(cCstj|ƒ||_dS(N(R*Rtfo(RRQ((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRæs
cCs]|jjƒ}t|ƒ}|jdk	r6|j}n	|j}t|jjƒƒ}d}tr{t|}|dt}nt	ddƒ}	|	j
dkr¢t}
nt}
|	j
d|ƒ}|jdkr6|	j
dt||
ƒƒ}|	j
dƒ}
|	j
d	|ƒ}d
|	jƒ|	jƒ|||||
f}n|jjƒ}t||
ƒ}|jjƒ}|	j
d|ƒ}|	j
dƒ}
|dkršd}n|	j
d
|dtdƒƒ}|	j
d|dƒ}|	j
d	|ƒ}d|	jdƒ}t|	||ƒ}d|	jƒ|	jƒ||||||||
f
}|jj|ƒ|jjƒdS(NidiiiPs | %5sBs %9sRMis %5sB/ss%-*.*s%s%s%s%s
s ETA R s (%i%%)R$s (100%)s %2i%%is
%-*.*s%s%s%s%s%s%s%s
i	is     ii(R5telapsed_timeR7R/RR.taverage_rateR@RARRR"RR%R0tformat_timeR&tremaining_timet
fraction_readR!RRLRQtwritetflush(RR=RtetimetfreadR/tave_dlt
sofar_sizetsofar_pcRGt	use_hourstui_sizetui_timetui_endtui_ratetouttrtimetfrtimetfractui_sofar_pctui_pcRJtui_bar((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR<êsN	
			cCs.t|ƒ}|jdk	r'|j}n	|j}tdƒ}|jdkrTt}nt}|jd|ƒ}|jdt	|j
jƒ|ƒƒ}t||j
|ƒ\}	}
d|jƒ|jƒ||||	f}|jj|ƒ|jjƒ|
rüdStrt|7anttkr*dadandS(NiiPs | %5sBs %9ss
%-*.*s%s%s%s
i(R7R/RR.RRR"RR%RTR5RRROR0R&RQRWRXR@RA(RR=Rt
total_sizeR/RGR^R_R`Ratnot_doneRc((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR> s,		%

N(R'R(tsyststderrRRR<R>(((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRPås6tMultiFileHelpercBsAeZd„Zd„Zd„Zd„Zdd„Zd„ZRS(cCstj|ƒ||_dS(N(R*Rtmaster(RRo((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyREs
cCs|jj||ƒdS(N(Rotstart_meter(RR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR:IscCs|jj||ƒdS(N(Rotupdate_meter(RR=R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR<LscCs?t||jƒ|_t|jƒ|_|jj||ƒdS(N(RTR1tftotal_timeR7R2tftotal_sizeRot	end_meter(RR=R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR>PscCs|jj|||ƒdS(N(Rot
failure_meter(RtmessageR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytfailureUscCs|jj||ƒdS(N(Rot
message_meter(RRv((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRvXsN(	R'R(RR:R<R>RRwRv(((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRnDs				t	_FakeLockcBseZd„Zd„ZRS(cCsdS(N((R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytacquire\scCsdS(N((R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytrelease^s(R'R(RzR{(((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRy[s	tMultiFileMetercBsÈeZeZed„Zdddd„Zd„Zdd„Z	d„Z
d„Zd„Zd„Z
d„Zd	„Zd
„Zd„Zd„Zd
„Zd„Zd„Zd„Zd„Zd„ZRS(cCs g|_g|_|r*tjƒ|_ntƒ|_d|_d|_d|_	d|_
d|_d|_d|_
d|_d|_d|_tƒ|_dS(Ng333333Ó?i(tmeterstin_progress_meterstthreadt
allocate_lockt_lockRyR+Rtnumfilestfinished_filestfailed_filest
open_filesRjtfailed_sizeR1tfinished_file_sizeR3R4R5(Rtthreaded((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRcs 												cCs|dkrtjƒ}n||_d|_d|_d|_||_d|_||_d|_	||_
|jj||ƒ|j
|ƒdS(Ni(RRR‚RƒR„R…RjR†R1R‡R3R5R9R:(RR‚RjR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR9ws									cCsdS(N((RR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR:…scCsE|dkrtjƒ}n|jj|jƒ|ƒ|j|ƒdS(N(RRR5R;t_amount_readR>(RR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR?ˆscCsdS(N((RR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR>scCs|jjƒdS(N(RRz(R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytlockscCs|jjƒdS(N(RR{(R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytunlock‘scCs#|j|ƒ}|jj|ƒ|S(N(thelperclassR}tappend(Rtnewmeter((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytnewMeter•scCs|jj|ƒdS(N(R}tremove(Rtmeter((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pytremoveMeteršscCs…||jkrtdƒ‚n|jjƒz5||jkr_|jj|ƒ|jd7_nWd|jjƒX|j||ƒdS(Nsattempt to use orphaned meteri(	R}t
ValueErrorRRzR~RR…R{t_do_start_meter(RR‘R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRpŸs
cCsdS(N((RR‘R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR”«scCsw||jkrtdƒ‚n|js>||j|jkrs|jj|jƒ|ƒ||_|j||ƒndS(Nsattempt to use orphaned meter(R}R“R3R+R5R;R‰t_do_update_meter(RR‘R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRq®s
	cCsdS(N((RR‘R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR•·scCs¬||jkrtdƒ‚n|jjƒz\y|jj|ƒWntk
rUnX|jd8_|jd7_|j|j	7_Wd|jj
ƒX|j||ƒdS(Nsattempt to use orphaned meteri(R}R“RRzR~RR…RƒR‡R2R{t
_do_end_meter(RR‘R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRtºs

cCsdS(N((RR‘R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR–ÈscCsÓ||jkrtdƒ‚n|jjƒz€y|jj|ƒWntk
rUnX|jd8_|jd7_|jr¡|j	dk	r¡|j	|j7_	n	d|_	Wd|jjƒX|j|||ƒdS(Nsattempt to use orphaned meteri(
R}R“RRzR~RR…R„R0R†RR{t_do_failure_meter(RR‘RvR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRuËs


cCsdS(N((RR‘RvR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR—ÜscCsdS(N((RR‘Rv((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRxßscCs.|j}x|jD]}||j7}qW|S(N(R‡R~R2(Rttottm((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR‰äs	N(R'R(RnRŒR"RRR9R:R?R>RŠR‹RR’RpR”RqR•RtR–RuR—RxR‰(((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR|as(																tTextMultiFileMetercBs>eZejed„Zd„Zd„Zd„Zd„Z	RS(cCs-||_tj||ƒd|_|_dS(Ni(RQR|Rt
index_timetindex(RRQRˆ((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRìs	cCs|jjƒzê|j}|jp%d}|jj}|jj}d|jjƒpUdd}|jjƒ}|jj	ƒ}	|jjƒpd}
d|
}t
|jjƒƒ}||jkrÝ|d|_|j
d7_
n|j
t|jƒkrd|_
n|j|j
}|jp |j}
|dkrPd|d|j
||
f}
ntddƒ}|jdkr}t}d	}nt}d
}|jdt
|ƒƒ}|jjs |jd|t||ƒfƒ}|jdƒ}|jd|ƒ}d|jƒ|jƒ|
||||f}n¹|jd|t|	|ƒfƒ}|jdƒ}|jd|dtdƒƒ}|jd|ƒ}d|jdƒ}t|||
ƒ}d|jƒ|jƒ|
||||||f	}|jj|ƒ|jjƒWd|jjƒXdS(Niidig\Âõ(\ß?gð?s(%u/%u): %siiPi	is | %5sBs %*sRMis %5sB/ss
%-*.*s%s%s%s%s
s ETA s %i%%R$s (100%)is
%-*.*s%s%s%s%s%s%s
i	is     ii(RRzRƒR‚R5R2ttotalRVRRRUR7RSR›RœR!R}R/R.RRR"RR%RTR&RRLRQRWRXR{(RR‘RtdfttftddttdtpdtdttrtRftpfR[R/RGR^ttime_lenR_R`RaRbRcRgRJRi((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR•s`
	

!	""	
cCs–|jjƒztd}|jp%|j}|j}t|ƒd}|jjƒ}t|o`||ƒd}|j}	|j	pd}
t|ƒ}|jp|j}|
dkrÂd|	|
|f}nt
dƒ}
|
jdkrìt}d}nt
}d	}|
jd
|ƒ}|
jd|t||ƒfƒ}t|
|j|ƒ\}}d|
jƒ|
jƒ||||f}|jj|ƒWd|jjƒXdS(
Ns %-30.30s %6.6s    %8.8s    %9.9sR6sB/sis(%u/%u): %siiPi	is | %5sBs %*ss
%-*.*s%s%s%s
(RRzR/R.R2R7R5RRRƒR‚RRR"RR%RTROR0R&RQRWR{(RR‘RtformattfnR0R8tettfrateRžRŸRjR/RGR^R¦R_R`RaRkRc((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR–As6
			"cCsù|jjƒzÔd}|jp%|j}t|ƒtdƒtdƒfkr[|jƒ}n|smdg}nd||d|dp†df}|jjd|dƒx*|d	D]}|jjd
|dƒq±W|jjƒWd|j	||ƒXdS(Ns%-30.30s %6.6s %sR us%-79stFAILEDis
s
is  (
RRzR/R.ttypet
splitlinesRQRWR{R•(RR‘RvRR§R¨RcR™((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR—bs
$!cCs&|jjƒzWd|jjƒXdS(N(RRzR{(RR‘Rv((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRxqs
(
R'R(RlRmR"RR•R–R—Rx(((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRšës
	A	!	R4cBsqeZdd„Zddd„Zdd„Zd„Zd„Zd„Zd„Z	d„Z
d	„Zd
d„ZRS(
g@cCs
||_dS(N(t	timescale(RR®((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR|scCsL|dkrtjƒ}n||_||_||_d|_d|_dS(Ni(RRRR1R3R2tave_rate(RRR((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR9s				cCs²|dkrtjƒ}n|dks6||jkrU||_||_d|_dS||j}||j}|jr¥||_|j|||j|jƒ|_n||_dS(Ni(RRR2R3R¯t_temporal_rolling_aveR®(RR=Rt	time_difft	read_diff((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR;‡s			

		cCs|jS(s/get the average transfer rate (in bytes/second)(R¯(R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRS¡scCs|j|jS(sEthe time between the start of the transfer and the most recent update(R3R1(R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRR¥scCs-|js|jrdS|j|j|jS(sestimated time remainingN(R¯RRR2(R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRU©scCs>|jdkrdS|jdkr&dSt|jƒ|jSdS(s[the fraction of the data that has been read
        (can be None for unknown transfer size)igð?N(RRtfloatR2(R((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRV®s
cCs5||}|dkrd}n|j||||ƒS(sqa temporal rolling average performs smooth averaging even when
        updates come at irregular intervals.  This is performed by scaling
        the "epsilon" according to the time since the last update.
        Specifically, epsilon = time_diff / timescale

        As a general rule, the average will take on a completely new value
        after 'timescale' seconds.igð?(t_rolling_ave(RR±R²tlast_aveR®tepsilon((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR°·s
	cCs\y||}Wntk
r'd}nX|dkr8|S|dkrH|S||d||S(sKperform a "rolling average" iteration
        a rolling average "folds" new data into an existing average with
        some weight, epsilon.  epsilon must be between 0.0 and 1.0 (inclusive)
        a value of 0.0 means only the old value (initial value) counts,
        and a value of 1.0 means only the newest value is considered.iN(tZeroDivisionErrorR(RR±R²RµR¶trecent_rate((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR´Ãs

g.@cCsj|dkrdSttj||ƒtjdƒƒ}t|ƒ}|dkrR|Stt|ƒ|?|>ƒS(s—round the remaining time, depending on its size
        If rt is between n*start_time and (n+1)*start_time round downward
        to the nearest multiple of n (for any counting number n).
        If rt < start_time, round down to the nearest 1.
        For example (for start_time = 15.0):
         2.7  -> 2.0
         25.2 -> 25.0
         26.4 -> 26.0
         35.3 -> 34.0
         63.6 -> 60.0
        igi(RFtmathtlogR³(RR¤R1tshift((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyt_round_remaining_timeÔs
&N(
R'R(RRR9R;RSRRRURVR°R´R¼(((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR4{s							cCsœ|dks|dkr)|r"dSdSno|tdƒkr?dSt|ƒ}|d}|d}|rŠ|d}|d}d|||fSd||fSdS(	Nis--:--:--s--:--tinftInfinitei<s%02i:%02i:%02is	%02i:%02i(RR³RF(tsecondsR^tminutesthours((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyRTès



RMc		Csúddddddddd	g	}|r0d
}nd}d}d
}t|ƒd}x0||kr„||kr„|d}||}qUWt|ƒtdƒksµt|ƒtdƒkr¾d}n|dkrÓd}nd}|t|pèd
ƒ|||fS(s4Turn numbers into human-readable metric-like numbersR tktMtGtTtPtEtZtYg@@g@içiils%i%s%sgfffffæ#@s%.1f%s%ss%.0f%s%s(R!R¬R³(	tnumbertSItspacetsymbolststeptthreshtdeptht	max_depthR§((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyR7ùs0		
0		cGs¿tƒ}d|||f}|j|d|||d|ƒ|}d}	xc|D][\}
}|	d7}	xB|||	t|ƒkr©||
7}|j|ƒtj|ƒqhWqOW|j|ƒdS(Ns(%d/%d): %ss"http://www.example.com/path/to/fn/R/ii(RPR9R!R;RtsleepR?(R¨tcurR˜tbegR0targsttmR/tnumtofftinctdelay((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyt_tst s	 


cGsÓddGHtdtƒ}i}d}d}d}xÔ|D]Ì}d}t|ƒdkrj|\}	}
|
}nt|ƒdkrŽ|\}	}
}n|jƒ}|j|	d|	|	|
d|	ƒ|d	7}||7}|||<|
dksð|dkrùd}q7||
7}q7W|j||ƒd}d}x©|D]¡\}
}|d	7}xˆ|||t|ƒkrÊ||
7}xP|jD]D}|||kr©|j||ƒ|j|ƒqr|j	|ƒqrWt
j|ƒqCWq*WdS(
NREiORˆiiis"http://www.example.com/path/to/fn/R/i(RšRRR!RR9R}R?R’R;RRÒ(tdatasRÕRÖtdl_sizesR×Rjt
dl_total_sizetdatatdl_sizeR¨R0tnmRØRÙRÚ((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyt_mtst.sH	
	


	

t__main__itmultissm-1.0.0-1.fc8.i386.rpmièss-1.0.1-1.fc8.i386.rpmiˆsm-1.0.1-2.fc8.i386.rpmi'idg…ëQ¸Õ?iôgÐ?gš™™™™™¹?i %&i
gš™™™™™É?i2Ri@Bis1large-file-name-Foo-11.8.7-4.5.6.1.fc8.x86_64.rpmis2large-file-name-Foo2-11.8.7-4.5.6.2.fc8.x86_64.rpmii!¡s2large-file-name-Foo3-11.8.7-4.5.6.3.fc8.x86_64.rpmii²qs2large-file-name-Foo4-10.8.7-4.5.6.1.fc8.x86_64.rpmis2large-file-name-Foo5-10.8.7-4.5.6.2.fc8.x86_64.rpmii‰s2large-file-name-Foo6-10.8.7-4.5.6.3.fc8.x86_64.rpmi	iNs1large-file-name-Foox-9.8.7-4.5.6.1.fc8.x86_64.rpmgà?i †((((((ssm-1.0.0-1.fc8.i386.rpmiè(ss-1.0.1-1.fc8.i386.rpmiˆ(sm-1.0.1-2.fc8.i386.rpmi'(idg…ëQ¸Õ?(iôgÐ?(iègš™™™™™¹?(ssm-1.0.0-1.fc8.i386.rpmiè(ss-1.0.1-1.fc8.i386.rpmiˆ(sm-1.0.1-2.fc8.i386.rpmNi'(idg…ëQ¸Õ?(iôgÐ?(iègš™™™™™¹?(ssm-1.0.0-1.fc8.i386.rpmiè(ss-1.0.1-1.fc8.i386.rpmi %&(sm-1.0.1-2.fc8.i386.rpmi'(i
gš™™™™™É?(i2gš™™™™™¹?(iègš™™™™™¹?(ssm-1.0.0-1.fc8.i386.rpmiè(ss-1.0.1-1.fc8.i386.rpmNi %&(sm-1.0.1-2.fc8.i386.rpmNi'(i
gš™™™™™É?(i2gš™™™™™¹?(iègš™™™™™¹?iø*iRiH”iˆÖiÈ.iØ?.ièf.iø.i8Ð=(i
gš™™™™™É?(i
gš™™™™™¹?(idgÐ?(i
gš™™™™™É?(idgš™™™™™¹?(idgš™™™™™¹?(idgÐ?(i
gš™™™™™É?(idgš™™™™™¹?(idgš™™™™™¹?(idgÐ?(iègš™™™™™É?(iègš™™™™™¹?(i'gš™™™™™¹?(iègš™™™™™É?(iègš™™™™™¹?(i'gš™™™™™¹?(iègš™™™™™É?(iègš™™™™™¹?(i'gš™™™™™¹?(idgš™™™™™¹?(idgš™™™™™¹?(igš™™™™™¹?(i
gà?(i †gš™™™™™¹?(i'gš™™™™™¹?(i'gš™™™™™¹?(i'gš™™™™™¹?(i †gš™™™™™¹?(i'gš™™™™™¹?(i'gš™™™™™¹?(i'gš™™™™™¹?(i †gš™™™™™¹?(i'gš™™™™™¹?(i'gš™™™™™¹?(i'gš™™™™™¹?(i †gš™™™™™¹?(i'gš™™™™™¹?(i'gš™™™™™¹?(i'gš™™™™™¹?(i †gš™™™™™¹?(igš™™™™™¹?("RlRR¹RRRRRRR
RRRR*R@RARCRLRORPttext_progress_meterRnRyR|RšR4RTR7RÛRâR'R!targvtexit(((s7/usr/lib/python2.7/site-packages/urlgrabber/progress.pyt<module>s–
)>5		]Šm'		,(



(




	

OHA YOOOO