a ‚oeb ã@sÌddlmZmZmZmZmZddlZddlZddlm Z m Z m Z e  d¡Z Gdd„dejƒZGdd „d ejƒZGd d „d ejƒZGd d „d eejƒZGdd„deejƒZee ejdœdd„Ze e¡dS)é)ÚencodeÚdecodeÚalabelÚulabelÚ IDNAErroréN)ÚAnyÚTupleÚOptionalu [.。.。]c@sDeZdZdeeeeefdœdd„Zd eeeeefdœdd„ZdS) ÚCodecÚstrict)ÚdataÚerrorsÚreturncCs.|dkrtd |¡ƒ‚|sdSt|ƒt|ƒfS)Nr úUnsupported error handling "{}"©ór)rÚformatrÚlen©Úselfr r©rú+C:\Program Files\Certbot\pkgs\idna\codec.pyr s z Codec.encodecCs.|dkrtd |¡ƒ‚|sdSt|ƒt|ƒfS)Nr r©Úr)rrrrrrrrrs z Codec.decodeN)r )r ) Ú__name__Ú __module__Ú __qualname__Ústrr ÚbytesÚintrrrrrrr s r c@s(eZdZeeeeeefdœdd„ZdS)ÚIncrementalEncoder©r rÚfinalrc Cs°|dkrtd |¡ƒ‚|sdSt |¡}d}|rV|dsDd}|d=n|sV|d=|rVd}g}d}|D]*}| t|ƒ¡|r€|d7}|t|ƒ7}qbd |¡|} |t|ƒ7}| |fS) Nr rrréÿÿÿÿó.rr)rrÚ_unicode_dots_reÚsplitÚappendrrÚjoin) rr rr#ÚlabelsÚ trailing_dotÚresultÚsizeÚlabelZ result_bytesrrrÚ_buffer_encodes0  z!IncrementalEncoder._buffer_encodeN) rrrrÚboolr rr r/rrrrr!sr!c@s(eZdZeeeeeefdœdd„ZdS)ÚIncrementalDecoderr"c CsÄ|dkrtd |¡ƒ‚|sdSt|tƒs2t|dƒ}t |¡}d}|rj|dsXd}|d=n|sj|d=|rjd}g}d}|D]*}| t|ƒ¡|r”|d 7}|t|ƒ7}qvd  |¡|} |t|ƒ7}| |fS) Nr rrÚasciirr$Ú.rr) rrÚ isinstancerr&r'r(rrr)) rr rr#r*r+r,r-r.Z result_strrrrÚ_buffer_decode>s4    z!IncrementalDecoder._buffer_decodeN) rrrrrr0r r r5rrrrr1=sr1c@s eZdZdS)Ú StreamWriterN©rrrrrrrr6asr6c@s eZdZdS)Ú StreamReaderNr7rrrrr8esr8)Únamerc Cs,|dkr dStj|tƒjtƒjttttd�S)NZidna2008)r9rrÚincrementalencoderÚincrementaldecoderÚ streamwriterÚ streamreader) ÚcodecsÚ CodecInfor rrr!r1r6r8)r9rrrÚsearch_functionisùr@)Zcorerrrrrr>ÚreÚtypingrr r Úcompiler&r ÚBufferedIncrementalEncoderr!ÚBufferedIncrementalDecoderr1r6r8rr?r@ÚregisterrrrrÚs !$