
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \á  ã               @   sÖ   d dl Z dd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdZdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZG dd„ de jƒZG dd„ de jƒZG dd „ d e jƒZG d!d"„ d"ee jƒZG d#d$„ d$ee jƒZd%d&„ ZdS )'é    Nc             C   sT   t ƒ }tƒ }x2| D ]*}t|ƒdk r2|jt|ƒƒ q|j|ƒ qW t|ƒ}t|ƒ|fS )Né€   )Ú	bytearrayÚsetÚordÚappendÚaddÚsortedÚbytes)ÚstrÚbaseÚextendedÚc© r   ú*/usr/lib64/python3.6/encodings/punycode.pyÚ	segregate
   s    
r   c             C   s*   d}x | D ]}t |ƒ|k r
|d7 }q
W |S )Nr   é   )r   )r
   ÚmaxÚresr   r   r   r   Úselective_len   s
    
r   c             C   sR   t | ƒ}xD|d7 }||krdS | | }||kr:|d |fS ||k r
|d7 }q
W d S )Nr   éÿÿÿÿr   )r   r   )Úlen)r
   ÚcharÚindexÚposÚlr   r   r   r   Úselective_find   s    r   c             C   s�   d}g }d}x~|D ]v}d }}t |ƒ}t| |ƒ}	|	d ||  }
xBt| |||ƒ\}}|dkr^P |
|| 7 }
|j|
d ƒ |}d}
qBW |}qW |S )Nr   r   r   r   r   r   )r   r   r   r   )r
   r   ZoldcharÚresultZoldindexr   r   r   r   ZcurlenÚdeltar   r   r   Úinsertion_unsort0   s$    

r   c             C   s,   d| d  | }|dk rdS |dkr(dS |S )Né$   r   é   r   )ÚjÚbiasr   r   r   r   ÚTF   s      r#   s$   abcdefghijklmnopqrstuvwxyz0123456789c             C   sr   t ƒ }d}xbt||ƒ}| |k r4|jt|  ƒ t|ƒS |jt|| | d|    ƒ | | d|  } |d7 }qW d S )Nr   r   r   )r   r#   r   Údigitsr	   )ÚNr"   r   r!   Útr   r   r   Úgenerate_generalized_integerN   s    
r'   c             C   s\   |r| d } n| d } | | | 7 } d}x| dkrB| d } |d7 }q(W |d|  | d   }|S )Ni¼  é   r   iÇ  é#   r   é&   r   )r   ÚfirstÚnumcharsZ	divisionsr"   r   r   r   Úadapt[   s    

r-   c             C   sT   t ƒ }d}x@t|ƒD ]4\}}t||ƒ}|j|ƒ t||dk| | d ƒ}qW t|ƒS )NéH   r   r   )r   Ú	enumerater'   Úextendr-   r	   )ZbaselenÚdeltasr   r"   Zpointsr   Úsr   r   r   Úgenerate_integersj   s    

r3   c             C   s8   t | ƒ\}}t| |ƒ}tt|ƒ|ƒ}|r4|d | S |S )Nó   -)r   r   r3   r   )Útextr   r   r1   r   r   r   Úpunycode_encodeu   s    
r6   c       
      C   sü   d}d}d}xêyt | | ƒ}W n, tk
rJ   |dkr>tdƒ‚|d d fS X |d7 }d|  kofdkn  rv|d }nDd|  koˆdkn  r˜|d	 }n"|dkr²td
| |  ƒ‚n|d fS t||ƒ}	||| 7 }||	k rà||fS |d|	  }|d7 }qW d S )Nr   r   Ústrictzincomplete punicode stringéA   éZ   é0   é9   é   z Invalid extended code point '%s'r   )r   Ú
IndexErrorÚUnicodeErrorr#   )
r   Úextposr"   Úerrorsr   Úwr!   r   Údigitr&   r   r   r   Údecode_generalized_number   s2    


rC   c       	      C   sÐ   d}d	}d}d}xº|t |ƒk rÊt||||ƒ\}}|d kr<| S ||d 7 }||t | ƒd  7 }|dkr€|dkrxtd| ƒ‚tdƒ}|t | ƒd  }| d |… t|ƒ | |d …  } t||dkt | ƒƒ}|}qW | S )
Nr   r   r.   r   iÿÿ r7   zInvalid character U+%xú?r   )r   rC   r>   r   Úchrr-   )	r   r   r@   r   r   r"   r?   Znewposr   r   r   r   Úinsertion_sort�   s(     rF   c             C   s†   t | tƒr| jdƒ} t | tƒr&t| ƒ} | jdƒ}|dkrLd}t| dƒjƒ }n.t| d |… d|ƒ}t| |d d … dƒjƒ }t|||ƒS )NÚasciir4   r   Ú r   )Ú
isinstancer
   ÚencodeÚ
memoryviewr	   ÚrfindÚupperrF   )r5   r@   r   r   r   r   r   r   Úpunycode_decode¶   s    



rN   c               @   s    e Zd Zddd„Zddd„ZdS )	ÚCodecr7   c             C   s   t |ƒ}|t|ƒfS )N)r6   r   )ÚselfÚinputr@   r   r   r   r   rJ   È   s    zCodec.encodec             C   s*   |dkrt d| ƒ‚t||ƒ}|t|ƒfS )Nr7   ÚreplaceÚignorezUnsupported error handling )r7   rR   rS   )r>   rN   r   )rP   rQ   r@   r   r   r   r   ÚdecodeÌ   s    
zCodec.decodeN)r7   )r7   )Ú__name__Ú
__module__Ú__qualname__rJ   rT   r   r   r   r   rO   Æ   s   
rO   c               @   s   e Zd Zddd„ZdS )ÚIncrementalEncoderFc             C   s   t |ƒS )N)r6   )rP   rQ   Úfinalr   r   r   rJ   Ó   s    zIncrementalEncoder.encodeN)F)rU   rV   rW   rJ   r   r   r   r   rX   Ò   s   rX   c               @   s   e Zd Zddd„ZdS )ÚIncrementalDecoderFc             C   s$   | j dkrtd| j  ƒ‚t|| j ƒS )Nr7   rR   rS   zUnsupported error handling )r7   rR   rS   )r@   r>   rN   )rP   rQ   rY   r   r   r   rT   ×   s    
zIncrementalDecoder.decodeN)F)rU   rV   rW   rT   r   r   r   r   rZ   Ö   s   rZ   c               @   s   e Zd ZdS )ÚStreamWriterN)rU   rV   rW   r   r   r   r   r[   Ü   s   r[   c               @   s   e Zd ZdS )ÚStreamReaderN)rU   rV   rW   r   r   r   r   r\   ß   s   r\   c            	   C   s    t jdtƒ jtƒ jttttd�S )NZpunycode)ÚnamerJ   rT   ÚincrementalencoderÚincrementaldecoderÚstreamwriterÚstreamreader)	ÚcodecsÚ	CodecInforO   rJ   rT   rX   rZ   r[   r\   r   r   r   r   Úgetregentryä   s    rd   )rb   r   r   r   r   r#   r$   r'   r-   r3   r6   rC   rF   rN   rO   rX   rZ   r[   r\   rd   r   r   r   r   Ú<module>   s&   
