PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  lYN. @sdZddddddddd d d d g Zd dlZdZdZdZeeZdZeddZdZ dZ eee eZ dddZ d dl Zd dlmZGdddeZGdd d deZGdd d ZdS)anA collection of string constants. Public module variables: whitespace -- a string containing all ASCII whitespace ascii_lowercase -- a string containing all ASCII lowercase letters ascii_uppercase -- a string containing all ASCII uppercase letters ascii_letters -- a string containing all ASCII letters digits -- a string containing all ASCII decimal digits hexdigits -- a string containing all ASCII hexadecimal digits octdigits -- a string containing all ASCII octal digits punctuation -- a string containing all ASCII punctuation characters printable -- a string containing all ASCII characters considered printable ascii_lettersascii_lowercaseascii_uppercasecapwordsdigits hexdigits octdigits printable punctuation whitespace FormatterTemplateNz abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789ZabcdefZABCDEF01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~cCs)|p djdd|j|DS)acapwords(s [,sep]) -> string Split the argument into words using split, capitalize each word using capitalize, and join the capitalized words using join. If the optional second argument sep is absent or None, runs of whitespace characters are replaced by a single space and leading and trailing whitespace are removed, otherwise sep is used to split and join the words.  css|]}|jVqdS)N) capitalize).0xr%/opt/python35/lib/python3.5/string.py 0szcapwords..)joinsplit)sseprrrr%s )ChainMapcs(eZdZdZfddZS)_TemplateMetaclassa/ %(delim)s(?: (?P%(delim)s) | # Escape sequence of two delimiters (?P%(id)s) | # delimiter and a Python identifier {(?P%(id)s)} | # delimiter and a braced identifier (?P) # Other ill-formed delimiter exprs ) cstt|j|||d|kr4|j}n(tjdtj|jd|ji}tj||j tj B|_dS)Npatterndelimid) superr__init__r_reescape delimiter idpatterncompileflagsVERBOSE)clsnamebasesdctr) __class__rrr#As  z_TemplateMetaclass.__init__)__name__ __module__ __qualname__rr#rr)r/rr7s rc@s[eZdZdZdZdZejZddZ ddZ dd Z d d Z d S) r z.A string class for supporting $-substitutions.$z[_a-z][_a-z0-9]*cCs ||_dS)N)template)selfr4rrrr#TszTemplate.__init__cCs|jd}|jd|jdd}|sCd}d}n/|tdj|dd}t|}td||fdS)NinvalidkeependsTz.Invalid placeholder in string: line %d, col %d)startr4 splitlineslenr ValueError)r5moilinescolnolinenorrr_invalidYs # zTemplate._invalidcs|std|^}t|dkr<td|sK|n&|rgt||dn |dfdd}jj|jS)Nz>descriptor 'substitute' of 'Template' object needs an argumentr8zToo many positional argumentsr cs|jdp|jd}|dk r?|}d|fS|jddk r[jS|jddk r}j|tdjdS)Nnamedbracedz%sescapedr6z#Unrecognized named group in pattern)groupr&rDr>r)r?rEval)mappingr5rrconvertss    z$Template.substitute..convert) TypeErrorr= _ChainMaprsubr4)argskwsrKr)rJr5r substitutees     zTemplate.substitutecs|std|^}t|dkr<td|sK|n&|rgt||dn |dfdd}jj|jS)NzCdescriptor 'safe_substitute' of 'Template' object needs an argumentr8zToo many positional argumentsr c s|jdp|jd}|dk r\yd|fSWntk r[|jSYnX|jddk rxjS|jddk r|jStdjdS)NrErFz%srGr6z#Unrecognized named group in pattern)rHKeyErrorr&r>r)r?rE)rJr5rrrKs   z)Template.safe_substitute..convert)rLr=rMrrNr4)rOrPrKr)rJr5rsafe_substitutes     zTemplate.safe_substituteN) r0r1r2__doc__r&r'r$ IGNORECASEr)r#rDrQrSrrrrr Ms     metaclassc@seZdZddZddZdddZdd Zd d Zd d ZddZ ddZ ddZ dS)r c Os|std|^}}y|^}}Wnatk rd|kr~|jd}ddl}|jdtddntddYnX|j|||S)Nz;descriptor 'format' of 'Formatter' object needs an argument format_stringr z9Passing 'format_string' as keyword argument is deprecated stacklevelz@format() missing 1 required positional argument: 'format_string')rLr>popwarningswarnDeprecationWarningvformat)rOkwargsr5rWr[rrrformats        zFormatter.formatcCsAt}|j||||d\}}|j||||S)NrY)set_vformatcheck_unused_args)r5rWrOr_ used_argsresult_rrrr^s !zFormatter.vformatr c CsU|dkrtdg}x!|j|D]\}} } } |rS|j|| dk r.| dkr|dkrtdt|} |d7}n$| jr|rtdd}|j| ||\} } |j| |j| | } |j| ||||dd|\} }|j|j | | q.Wdj ||fS)Nr zMax string recursion exceededr9FzJcannot switch from manual field specification to automatic field numberingr8auto_arg_index) r>parseappendstrisdigit get_fieldadd convert_fieldrb format_fieldr)r5rWrOr_rdrecursion_depthrgre literal_text field_name format_spec conversionobjarg_usedrrrrbs4              zFormatter._vformatcCs#t|tr||S||SdS)N) isinstanceint)r5keyrOr_rrr get_valueszFormatter.get_valuecCsdS)Nr)r5rdrOr_rrrrcszFormatter.check_unused_argscCs t||S)N)r`)r5valuersrrrroszFormatter.format_fieldcCsk|dkr|S|dkr&t|S|dkr<t|S|dkrRt|Stdj|dS)Nrraz"Unknown conversion specifier {0!s})rjreprasciir>r`)r5r{rtrrrrn s       zFormatter.convert_fieldcCs tj|S)N)_stringformatter_parser)r5rWrrrrh szFormatter.parsec Csmtj|\}}|j|||}x6|D].\}}|rUt||}q1||}q1W||fS)N)rformatter_field_name_splitrzgetattr) r5rrrOr_firstrestruis_attrr@rrrrl)szFormatter.get_fieldN) r0r1r2r`r^rbrzrcrornrhrlrrrrr s   5     )rT__all__rr rrrrrrr rrrer$ collectionsrrMtyperr r rrrrs&    a