o ?Og#@sddlZddlZddlZddlmZedZdZdZddZ dd Z d d Z Gd d d ej Z Gdddej ZGdddejZGddde ejZGddde ejZddZdS)N) ucd_3_2_0u [.。.。]sxn--zxn--cCsg}|D]}t|r q|t|qd|}td|}|D]5}t|sQt|sQt |sQt |sQt |sQt |sQt |sQt|sQt|rWtd|q"dd|D}t|r|tdd|Drptd|d rx|d s|td |S) NZNFKCzInvalid character %rcSsg|]}t|qS) stringprepZ in_table_d1.0xrr5/opt/alt/python310/lib64/python3.10/encodings/idna.py )sznameprep..css|]}t|VqdS)N)rZ in_table_d2rrrr 1sznameprep..zViolation of BIDI requirement 2rzViolation of BIDI requirement 3)rZ in_table_b1appendZ map_table_b2join 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 UnicodeErrorany)labelZnewlabelcZRandALrrr nameprepsD      rcCsz|d}Wn tyYnwdt|krdkr#|Stdtdt|}z|d}Wn ty;Ynwdt|krIdkrN|Stdtd|tr[td|d}t|}dt|krqdkrv|Stdtd)Nasciir@label empty or too longzLabel starts with ACE prefixpunycode)encoderlenr startswith sace_prefix ace_prefix)rrrr ToASCII<s6    rcCst|trd}nz |d}d}Wn tyd}Ynw|s6t|}z|d}Wn ty5tdw|ts@t|dS|ttd}| d}t |}t|d t|dkrctd|||S)NTrFzInvalid character in IDN labelrzIDNA does not round-trip) isinstancebytesrrrrrstrrdecoderlower)rZ pure_asciiZlabel1resultZlabel2rrr ToUnicodegs.        r%c@s eZdZdddZdddZdS)CodecstrictcCs |dkr td||sdSz|d}Wn tyYn5w|d}|ddD]}dt|kr;dks@td td q*t|ddkrMtd |t|fSt}t|}|rg|dsgd}|d=nd }|D]}|rt|d|t|qkt ||t|fS) Nr'unsupported error handling rr.r rrrzlabel too longr*) rrUnicodeEncodeErrorsplitr bytearraydotsextendrr )selfinputerrorsr$labelsr trailing_dotrrr rs<       z Codec.encodecCs|dkr td||sdSt|tst|}t|vr/z |dt|fWSty.Ynw|d}|rDt|ddkrDd}|d=nd }g}|D] }|t |qJd ||t|fS) Nr'Unsupported error handling rrrr+r r.r) rrr rr"rUnicodeDecodeErrorr-r r%r)r1r2r3r4r5r$rrrr r"s*    z Codec.decodeN)r')__name__ __module__ __qualname__rr"rrrr r&s %r&c@eZdZddZdS)IncrementalEncoderc Cs|dkr td||sdSt|}d}|r*|ds!d}|d=n |s*|d=|r*d}t}d}|D]}|r>|d|d7}|t||t|7}q1||7}|t|7}t||fS) Nr'r(r)r*r r+r)rr/r-r.r0rrr r1r2r3finalr4r5r$sizerrrr _buffer_encodes2     z!IncrementalEncoder._buffer_encodeN)r:r;r<rCrrrr r> r>c@r=)IncrementalDecoderc Cs|dkr td||sdSt|trt|}n t|d}|d}d}|r:|ds1d}|d=n |s:|d=|r:d}g}d}|D]}|t||rO|d 7}|t|7}q@d||}|t|7}||fS) Nr'r6r7rr8rr rr?) rrr!r/r-r r%rrr@rrr _buffer_decodes6      z!IncrementalDecoder._buffer_decodeN)r:r;r<rFrrrr rErDrEc@ eZdZdS) StreamWriterNr:r;r<rrrr rH"rHc@rG) StreamReaderNrIrrrr rK%rJrKc Cs tjdtjtjttttdS)NZidna)namerr"incrementalencoderincrementaldecoder streamwriter streamreader) codecs CodecInfor&rr"r>rErHrKrrrr getregentry*srS)rrerQrrcompiler/rrrrr%r&BufferedIncrementalEncoderr>BufferedIncrementalDecoderrErHrKrSrrrr s  .+)H#'