
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a')  ã                   @   s¶   d ddddddddd	d
dgZ ddlZdZdZdZee ZdZed d ZdZdZ	ee e	 e Z
ddd„ZddlZddlmZ i ZG dd„ deƒZG dd„ ded�ZG dd
„ d
ƒZdS )Úascii_lettersÚascii_lowercaseÚascii_uppercaseÚcapwordsÚdigitsÚ	hexdigitsÚ	octdigitsÚ	printableÚpunctuationÚ
whitespaceÚ	FormatterÚTemplateé    Nz 	
ZabcdefghijklmnopqrstuvwxyzZABCDEFGHIJKLMNOPQRSTUVWXYZÚ
0123456789ZabcdefZABCDEFZ01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c                 C   s   |pd  dd„ |  |¡D ƒ¡S )Nú c                 s   s   | ]}|  ¡ V  qd S ©N)Ú
capitalize)Ú.0Úx© r   ú+/opt/alt/python38/lib64/python3.8/string.pyÚ	<genexpr>0   s     zcapwords.<locals>.<genexpr>)ÚjoinÚsplit)ÚsÚsepr   r   r   r   %   s    )ÚChainMapc                       s    e Zd ZdZ‡ fdd„Z‡  ZS )Ú_TemplateMetaclassa/  
    %(delim)s(?:
      (?P<escaped>%(delim)s) |   # Escape sequence of two delimiters
      (?P<named>%(id)s)      |   # delimiter and a Python identifier
      {(?P<braced>%(bid)s)}  |   # delimiter and a braced identifier
      (?P<invalid>)              # Other ill-formed delimiter exprs
    )
    c                    sb   t t| ƒ |||¡ d|kr$| j}n$tjt | j¡| j| jp@| jdœ }t 	|| j
tjB ¡| _d S )NÚpattern)ZdelimÚidZbid)Úsuperr   Ú__init__r   Ú_reÚescapeÚ	delimiterÚ	idpatternÚbraceidpatternÚcompileÚflagsÚVERBOSE)ÚclsÚnameÚbasesZdctr   ©Ú	__class__r   r   r    C   s    

ýz_TemplateMetaclass.__init__)Ú__name__Ú
__module__Ú__qualname__r   r    Ú__classcell__r   r   r,   r   r   9   s   	r   c                   @   sF   e Zd ZdZdZdZejZdd„ Z	dd„ Z
efdd	„Zefd
d„ZdS )r   ú$z(?a:[_a-z][_a-z0-9]*)Nc                 C   s
   || _ d S r   )Útemplate)Úselfr3   r   r   r   r    \   s    zTemplate.__init__c                 C   sd   |  d¡}| jd |… jdd�}|s.d}d}n"|td |d d… ¡ƒ }t|ƒ}td||f ƒ‚d S )NÚinvalidT)Úkeependsé   Ú éÿÿÿÿz.Invalid placeholder in string: line %d, col %d)Ústartr3   Ú
splitlinesÚlenr   Ú
ValueError)r4   ÚmoÚiÚlinesÚcolnoÚlinenor   r   r   Ú_invalida   s    
ÿzTemplate._invalidc                   s:   ˆ t kr|‰ n|rt|ˆ ƒ‰ ‡ ‡fdd„}ˆj |ˆj¡S )Nc                    sd   |   d¡p|   d¡}|d k	r(tˆ | ƒS |   d¡d k	r<ˆjS |   d¡d k	rTˆ | ¡ tdˆjƒ‚d S ©NÚnamedZbracedZescapedr5   z#Unrecognized named group in pattern)ÚgroupÚstrr#   rC   r=   r   ©r>   rE   ©Úmappingr4   r   r   Úconverts   s    
ÿz$Template.substitute.<locals>.convert©Ú_sentinel_dictÚ	_ChainMapr   Úsubr3   ©r4   rJ   ZkwsrK   r   rI   r   Ú
substitutem   s    
zTemplate.substitutec                   s:   ˆ t kr|‰ n|rt|ˆ ƒ‰ ‡ ‡fdd„}ˆj |ˆj¡S )Nc                    s‚   |   d¡p|   d¡}|d k	rHztˆ | ƒW S  tk
rF   |   ¡  Y S X |   d¡d k	r\ˆjS |   d¡d k	rr|   ¡ S tdˆjƒ‚d S rD   )rF   rG   ÚKeyErrorr#   r=   r   rH   rI   r   r   rK   †   s    ÿz)Template.safe_substitute.<locals>.convertrL   rP   r   rI   r   Úsafe_substitute€   s    
zTemplate.safe_substitute)r.   r/   r0   r#   r$   r%   r!   Ú
IGNORECASEr'   r    rC   rM   rQ   rS   r   r   r   r   r   P   s   )Ú	metaclassc                   @   sV   e Zd Zdd„ Zdd„ Zddd„Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )r   c                O   s   |   |||¡S r   )Úvformat)r4   Úformat_stringÚargsÚkwargsr   r   r   Úformat¢   s    zFormatter.formatc                 C   s.   t ƒ }|  ||||d¡\}}|  |||¡ |S )Né   )ÚsetÚ_vformatÚcheck_unused_args)r4   rW   rX   rY   Ú	used_argsÚresultÚ_r   r   r   rV   ¥   s    zFormatter.vformatr   c              	   C   sê   |dk rt dƒ‚g }|  |¡D ]¼\}}	}
}|r8| |¡ |	d k	r|	dkrj|dkrXt dƒ‚t|ƒ}	|d7 }n|	 ¡ r‚|r~t dƒ‚d}|  |	||¡\}}| |¡ |  ||¡}| j|
||||d |d�\}
}| |  	||
¡¡ qd 
|¡|fS )Nr   zMax string recursion exceededr8   FzJcannot switch from manual field specification to automatic field numberingr7   )Úauto_arg_index)r=   ÚparseÚappendrG   ÚisdigitÚ	get_fieldÚaddÚconvert_fieldr]   Úformat_fieldr   )r4   rW   rX   rY   r_   Zrecursion_depthrb   r`   Zliteral_textÚ
field_nameÚformat_specÚ
conversionÚobjZarg_usedr   r   r   r]   «   s<    ÿ


   ý
zFormatter._vformatc                 C   s   t |tƒr|| S || S d S r   )Ú
isinstanceÚint)r4   ÚkeyrX   rY   r   r   r   Ú	get_valueá   s    
zFormatter.get_valuec                 C   s   d S r   r   )r4   r_   rX   rY   r   r   r   r^   è   s    zFormatter.check_unused_argsc                 C   s
   t ||ƒS r   )rZ   )r4   Úvaluerk   r   r   r   ri   ì   s    zFormatter.format_fieldc                 C   sN   |d kr|S |dkrt |ƒS |dkr,t|ƒS |dkr<t|ƒS td |¡ƒ‚d S )Nr   ÚrÚaz"Unknown conversion specifier {0!s})rG   ÚreprÚasciir=   rZ   )r4   rr   rl   r   r   r   rh   ð   s    zFormatter.convert_fieldc                 C   s
   t  |¡S r   )Ú_stringZformatter_parser)r4   rW   r   r   r   rc     s    zFormatter.parsec           	      C   sJ   t  |¡\}}|  |||¡}|D ] \}}|r8t||ƒ}q || }q ||fS r   )rw   Zformatter_field_name_splitrq   Úgetattr)	r4   rj   rX   rY   ÚfirstÚrestrm   Zis_attrr?   r   r   r   rf     s    
zFormatter.get_fieldN)r   )r.   r/   r0   rZ   rV   r]   rq   r^   ri   rh   rc   rf   r   r   r   r   r   ¡   s    ÿ
6	)N)Ú__all__rw   r
   r   r   r   r   r   r   r	   r   r   Úrer!   Úcollectionsr   rN   rM   Útyper   r   r   r   r   r   r   Ú<module>   s4         þ
Q