\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c @@sddlmZddlZddlZddlZddlmZddlmZm Z m Z m Z m Z m Z mZmZddlmZmZejZejZe jreZniZe jeZedded Zd drdfddtdfddvdfddwdfdxdydzgZedde jedZed ded!Z ed"d#Z!ed$d%Z"ed&ded'Z#ed(ded)Z$ed*ded+Z%ed,ded-Z&da(da)d.d.d/Z*ed0ded1Z+ed2ded3Z,ed4ded5Z-ed6ded7Z.ed8de jd9Z/ed:de jd;Z0ed<de jd=Z1d>Z2ed?e3d@Z4edAdedBZ5edCdedDZ6edEdedFZ7edGdedHZ8edIdedJZ9edKdedLZ:edMde jdNZ;edOde jdPZ<edQdedRZ=edSdedTZ>edUde jdVZ?edWdedXZ@edYdedZZAed[ded\ZBed]ded^ZCed_ded`ZDedadedbZEedcdeddZFedededfZGedgdedhZHedidedjZIedkdedlZJedmdednZKdoZLdpZMejNZOdS({i(tabsolute_importNi(t_(tencodingterrortnodetpycompatt registrart templateutilturltutil(tdateutilt stringutilt addbreakstintypecC@s|jddS(sZAny text. Add an XHTML "
" tag before the end of every line except the last. s s
(treplace(ttext((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR ,styeariiimtYtmonthitMtweekitWtdaytdthourthtminutei<tmtsecondtstagec @s-dfd}tj}|d}t}||krt}tdt||}|tdddkrdSn>tdt||}|tdddkrtj|SxgtD]_\}}} ||} | dks|dkr|rd||| | Sd ||| | SqWd S( ssDate. Returns a human-readable date/time difference between the given date/time and the current date/time. cS@s|dkr|S|dS(NiR((tttc((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pytpluralAs c@s+rd||fSd|||fS(Ns%d%ss%d %s((RR ta(tabbrevR!(s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pytfmtEsiiisin the distant futureis %s from nows%s agoN(ttimetFalsetTruetmaxtintt agescalesR t shortdate( tdateR#R$tnowtthentfuturetdeltaRRR"tn((R#R!s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR;s&      tbasenamecC@stjj|S(sAny text. Treats the text as a path, and returns the last component of the path after splitting by the path separator. For example, "foo/bar/baz" becomes "baz" and "foo/bar//" becomes "". (tostpathR2(R4((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR2^st commondircC@sd}y|sdSg|D]"}|jdjdd ^q}t|dkrhdj|dSt|}t|}dj|||SWn&tk rtjt dnXdS( sList of text. Treats each list item as file name with / as path separator and returns the longest common directory prefix shared by all list items. Returns the empty string if no common prefix exists. The list items are not normalized, i.e. "foo/../bar" is handled as file "bar" in the directory "foo/..". Leading slashes are ignored. For example, ["foo/bar/baz", "foo/baz/bar"] becomes "foo" and ["foo/bar", "baz"] becomes "". cS@st|t|kr+|t| }n+t|t|krV|t| }n||krf|Sx9tjt|D]"}||||kr||| Sq|W|S(N(tlenRtxrange(R"tbti((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pytcommonss  tt/iiisargument is not a list of textN( tlstriptsplitR6tjointminR(t TypeErrorRt ParseErrorR(tfilelistR:tftdirlistR"R8((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR5fs /   tcountcC@s;yt|SWn&tk r6tjtdnXdS(s/List or text. Returns the length as an integer.s not countableN(R6RARRBR(R9((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRFs tdirnamecC@stjj|S(s~Any text. Treats the text as a path, and strips the last component of the path after splitting by the path separator. (R3R4RG(R4((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRGstdomaincC@sY|jd}|dkrdS||d}|jd}|dkrU|| }n|S(sAny text. Finds the first string that looks like an email address, and extracts just the domain component. Example: ``User `` becomes ``example.com``. t@iR;it>i(tfind(tauthorRD((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRHs   temailcC@s tj|S(sAny text. Extracts the first string that looks like an email address. Example: ``User `` becomes ``user@example.com``. (R RM(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRMstescapecC@stj|jddtS(sAny text. Replaces the special XML/XHTML characters "&", "<" and ">" with XML entities, and filters out NUL characters. sR;(RRNRR'(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRNsR;c @stdkr3tjdtjatjdanfd}djg|D]@\}}tjtj dtj||||||^qRS(s/fill many paragraphs with optional indentation.s( | \s*[-*]\s*)s +c3@sd}xtrtj|}|stj|}t|}x.|dkrv||djrv|d8}qIWtj|| tj||fVPn||jd!|j dfV|j d}q WdS(Nii( R'tpara_retsearchRt unifromlocalR6tisspacet unitolocaltstarttgrouptend(RTRtuctexttw(R(s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyt findparass  #$R;t N( ROtNonetretcompileRtspace_reR?R twraptsub(Rtwidtht initindentt hangindentRYtparatrest((Rs?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pytfills   tfill68cC@s t|dS(s.Any text. Wraps the text to fit in 68 columns.iD(Rf(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRgstfill76cC@s t|dS(s.Any text. Wraps the text to fit in 76 columns.iL(Rf(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRhst firstlinecC@s7y|jtdjdSWntk r2dSXdS(s)Any text. Returns the first line of text.is R;N(t splitlinesR'trstript IndexError(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRis thexcC@s tj|S(sgAny text. Convert a binary Mercurial node identifier into its long hexadecimal representation. (RRm(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyt hexfiltersthgdatecC@sd|S(skDate. Returns the date as a pair of numbers: "1157407993 25200" (Unix timestamp, timezone offset). s%d %d((R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRostisodatecC@stj|dS(sMDate. Returns the date in ISO 8601 format: "2009-08-18 13:00 +0200". s%Y-%m-%d %H:%M %1%2(R tdatestr(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRpst isodateseccC@stj|dS(sDate. Returns the date in ISO 8601 format, including seconds: "2009-08-18 13:00:13 +0200". See also the rfc3339date filter. s%Y-%m-%d %H:%M:%S %1%2(R Rq(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRrsc@sP|jt|ddkfd}dj|S(s;indent each non-empty line of text after first with prefix.is c3@sex^tjD]M}|}|r:|jr:Vn|V|dksUrdVqqWdS(Nis (RR7tstrip(R9tl(tendswithnewlinetlinest num_linestprefix(s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pytindenter s R;(RjR6R?(RRxRy((RuRvRwRxs?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pytindents   tjsoncC@sz|dkrdS|tkr dS|tkr0dSt|tttfrUtj|St|t r{dt j |d|St|t drt jd|ntj|drgt|jD]4\}}d t j |d|t||f^q}d d j|d Stj|d rcg|D]}t||^q3}dd j|dSt jd|dS(s;Any object. Serializes the object to a JSON formatted text.tnulltfalsettrues"%s"tparanoidus)Mercurial only does output with bytes: %rtkeyss"%s": %st{s, t}t__iter__t[t]scannot encode %rN(R[R&R't isinstanceR)tlongtfloatRtbytestrtbytesRt jsonescapettypeRtProgrammingErrorR t safehasattrtsortedt iteritemsR{R?(tobjRtktvtoutR9((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR{s*    J"tlowercC@s tj|S(s)Any text. Converts the text to lowercase.(RR(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR0stnonemptycC@s |p dS(s2Any text. Returns '(none)' if the string is empty.s(none)((R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR5st obfuscatecC@sHt|tjtjd}djg|D]}dt|^q+S(sQAny text. Returns the input text rendered as a sequence of XML entities. RR;s&#%d;(tunicodeRtsysstrRR?tord(RR ((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR:st permissionscC@s$d|krdSd|kr dSdS(NRtt lrwxrwxrwxtxs -rwxr-xr-xs -rw-r--r--((tflags((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRBs   tpersoncC@s tj|S(s]Any text. Returns the name before an email address, interpreting it as per RFC 5322. (R R(RL((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRJst revescapecC@stj|ddjddS(sAny text. Escapes all "special" characters, except @. Forward slashes are escaped twice to prevent web servers from prematurely unescaping them. For example, "@foo bar/baz" becomes "@foo%20bar%252Fbaz". tsafes/@R<s%252F(turlreqtquoteR(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRQst rfc3339datecC@stj|dS(spDate. Returns a date using the Internet date format specified in RFC 3339: "2009-08-18T13:00:13+02:00". s%Y-%m-%dT%H:%M:%S%1:%2(R Rq(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRYst rfc822datecC@stj|dS(smDate. Returns a date using the same format used in email headers: "Tue, 18 Aug 2009 13:00:13 +0200". s%a, %d %b %Y %H:%M:%S %1%2(R Rq(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR`stshortcC@s|d S(shChangeset hash. Returns the short form of a changeset hash, i.e. a 12 hexadecimal digit string. i ((R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRgst shortbisectcC@s|r|dd!jSdS(sAny text. Treats `label` as a bisection status, and returns a single-character representing the status (G: good, B: bad, S: skipped, U: untested, I: ignored). Returns single space if `text` is not a valid bisection status. iiRZ(tupper(tlabel((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRnsR+cC@s tj|S(s'Date. Returns a date like "2006-09-18".(R R+(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR+yst slashpathcC@s tj|S(s8Any text. Replaces the native path separator with slash.(R tpconvert(R4((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyR~sRjcC@stj|jddS(s*Any text. Split text into a list of lines.tnametline(Rt hybridlistRj(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRjst stringescapecC@s tj|S(N(R t escapestr(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRst stringifycC@s|S(scAny type. Turns the value into text by converting values into text and concatenating them. ((tthing((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRststripdircC@s6tjj|}|dkr.tjj|S|SdS(syTreat the text as path and strip a directory level, if possible. For example, "foo" and "foo/bar" becomes "foo". R;N(R3R4RGR2(Rtdir((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRs t tabindentcC@s t|dS(snAny text. Returns the text, with every non-empty line except the first starting with a tab character. s (Rz(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRsRcC@s tj|S(s)Any text. Converts the text to uppercase.(RR(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRst urlescapecC@s tj|S(s`Any text. Escapes all "special" characters. For example, "foo bar" becomes "foo%20bar". (RR(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRstusercC@s tj|S(sMAny text. Returns a short representation of a user name or email address.(R t shortuser(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyt userfilterst emailusercC@s tj|S(s7Any text. Returns the user portion of an email address.(R R(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRstutf8cC@s tj|S(s>Any text. Converts from the local character encoding to UTF-8.(Rt fromlocal(R((s?/usr/lib64/python2.7/site-packages/mercurial/templatefilters.pyRst xmlescapecC@sU|jddjddjddjddjd d }tjd d |S( Nt&s&ts   :          "'