ñÕYfÒ#ã@sddlZddlZddlZddlmZejdƒZdZdZdd„Z dd „Z d d „Z Gd d „d ej ƒZ Gdd„dej ƒZGdd„dejƒZGdd„de ejƒZGdd„de ejƒZdd„ZdS)éN)Ú ucd_3_2_0u [.。.。]sxn--zxn--cCs}g}x6|D].}tj|ƒr%q |jtj|ƒƒq Wdj|ƒ}tjd|ƒ}x¥|D]�}tj|ƒsôtj|ƒsôtj |ƒsôtj |ƒsôtj |ƒsôtj |ƒsôtj |ƒsôtj|ƒsôtj|ƒrgtd|ƒ‚qgWdd„|Dƒ}x[|D]S}|r"tdd„|DƒƒrStdƒ‚|d  si|d  r"td ƒ‚q"W|S) NÚZNFKCzInvalid character %rcSsg|]}tj|ƒ‘qS©)Ú stringprepZ in_table_d1)Ú.0Úxrrú3/opt/alt/python35/lib64/python3.5/encodings/idna.pyú )s znameprep..css|]}tj|ƒVqdS)N)rZ in_table_d2)rrrrrú 2sznameprep..zViolation of BIDI requirement 2rézViolation of BIDI requirement 3éÿÿÿÿ)rZ in_table_b1ÚappendZ map_table_b2ÚjoinÚ unicodedataZ normalizeZ in_table_c12Z in_table_c22Z in_table_c3Z in_table_c4Z in_table_c5Z in_table_c6Z in_table_c7Z in_table_c8Z in_table_c9Ú UnicodeErrorÚany)ÚlabelZnewlabelÚcZRandALrrrÚnamepreps4    rcCs*y|jdƒ}Wntk r'Yn3Xdt|ƒkoEdknrN|Stdƒ‚t|ƒ}y|jdƒ}Wntk r�Yn3Xdt|ƒko«dknr´|Stdƒ‚|jtƒrÛtdƒ‚|jdƒ}t|}dt|ƒkodknr|Stdƒ‚dS)NÚasciiré@zlabel empty or too longzLabel starts with ACE prefixÚpunycode)ÚencoderÚlenrÚ startswithÚ sace_prefixÚ ace_prefix)rrrrÚToASCII>s, "   "   "rcCst|tƒrd}n4y|jdƒ}d}Wntk rKd}YnX|s’t|ƒ}y|jdƒ}Wntk r‘tdƒ‚YnX|jtƒs®t|dƒS|ttƒd…}|j dƒ}t |ƒ}t|dƒj ƒt|dƒkrtd||ƒ‚|S)NTrFzInvalid character in IDN labelrzIDNA does not round-trip) Ú isinstanceÚbytesrrrrrÚstrrÚdecoderÚlower)rZ pure_asciiZlabel1ÚresultZlabel2rrrÚ ToUnicodeis*        $r$c@s.eZdZddd„Zddd„ZdS)ÚCodecÚstrictc Csh|dkrtd|ƒ‚|s&d Sy|jdƒ}Wntk rMYn‹X|jdƒ}xF|dd …D]4}dt|ƒko‘dknsntd ƒ‚qnWt|d ƒdkrÈtd ƒ‚|t|ƒfStƒ}tj|ƒ}|r|d rd}|d=nd}x4|D],}|r7|jdƒ|jt|ƒƒqWt ||ƒt|ƒfS)Nr&zunsupported error handling órró.r rzlabel empty or too longzlabel too long)r'rr r r r ) rrÚUnicodeEncodeErrorÚsplitrÚ bytearrayÚdotsÚextendrr)ÚselfÚinputÚerrorsr#ÚlabelsrÚ trailing_dotrrrr“s4  "     z Codec.encodec Cs|dkrtd|ƒ‚|s&d St|tƒsAt|ƒ}t|kry|jdƒt|ƒfSWntk r~YnX|jdƒ}|rºt|d ƒdkrºd}|d =nd}g}x!|D]}|jt |ƒƒqÍWdj |ƒ|t|ƒfS) Nr&zUnsupported error handling rrrr(r Ú.)rrr r ) rrrrr!rÚUnicodeDecodeErrorr*r r$r)r.r/r0r1r2r#rrrrr!¸s(      z Codec.decodeN)Ú__name__Ú __module__Ú __qualname__rr!rrrrr%’s %r%c@seZdZdd„ZdS)ÚIncrementalEncoderc Csþ|dkrtd|ƒ‚|s&dStj|ƒ}d}|rt|ds[d}|d =n|st|d =|rtd}tƒ}d}xN|D]F}|r­|jdƒ|d7}|jt|ƒƒ|t|ƒ7}qŠW||7}|t|ƒ7}t|ƒ|fS) Nr&zunsupported error handling r'rr r()r'rr r r )rr,r*r+r-rrr) r.r/r0Úfinalr1r2r#ÚsizerrrrÚ_buffer_encodeÛs2        z!IncrementalEncoder._buffer_encodeN)r5r6r7r;rrrrr8Ús r8c@seZdZdd„ZdS)ÚIncrementalDecoderc Cs!|dkrtd|ƒ‚|s&dSt|tƒrGtj|ƒ}nt|dƒ}|jdƒ}d}|r¤|d s‹d}|d =n|s¤|d =|r¤d}g}d}xA|D]9}|jt|ƒƒ|rà|d7}|t|ƒ7}q·Wdj|ƒ|}|t|ƒ7}||fS) Nr&zUnsupported error handling rrrr3r )rrr r r ) rrr r,r*r r$rr) r.r/r0r9r1r2r#r:rrrrÚ_buffer_decodeþs6     z!IncrementalDecoder._buffer_decodeN)r5r6r7r=rrrrr<ýs r<c@seZdZdS)Ú StreamWriterN)r5r6r7rrrrr>$s r>c@seZdZdS)Ú StreamReaderN)r5r6r7rrrrr?'s r?cCs@tjdddtƒjdtƒjdtdtdtdtƒS) NÚnameZidnarr!ÚincrementalencoderÚincrementaldecoderÚ streamwriterÚ streamreader) ÚcodecsÚ CodecInfor%rr!r8r<r>r?rrrrÚ getregentry,s   rG)rÚrerErrÚcompiler,rrrrr$r%ÚBufferedIncrementalEncoderr8ÚBufferedIncrementalDecoderr<r>r?rGrrrrÚs$ 0 + )H#'