a DOg@sddlZddZddZddZdd Zd d Zd Zd dZddZddZ ddZ ddZ ddZ ddZ GdddejZGdddejZGdd d ejZGd!d"d"eejZGd#d$d$eejZd%d&ZdS)'NcCsPt}t}|D]*}t|dkr0|t|q||qt|}t||fS)N) bytearraysetordappendaddsortedbytes)strbaseextendedcr7/opt/alt/python39/lib64/python3.9/encodings/punycode.py segregate s  rcCs&d}|D]}t||kr|d7}q|S)Nr)r)r maxresr rrr selective_lens   rcCsNt|}|d7}||krdS||}||kr8|d|fS||kr|d7}qdS)Nr)r)len)r charindexposlr rrrselective_finds rc Csd}g}d}|D]r}d}}t|}t||} | d||} t||||\}}|dkrZq~| ||7} || d|}d} q>|}q|S)Nrrrr)rrrr) r r ZoldcharresultZoldindexr rrrZcurlendeltarrrinsertion_unsort0s"  rcCs,d|d|}|dkrdS|dkr(dS|S)N$rr)jbiasrrrrTFs  r#s$abcdefghijklmnopqrstuvwxyz0123456789cCsnt}d}t||}||kr2|t|t|S|t|||d|||d|}|d7}q dS)Nrrr)rr#rdigitsr )Nr"rr!trrrgenerate_generalized_integerNs r'cCsX|r|d}n|d}|||7}d}|dkr@|d}|d7}q&|d||d}|S)Niri#r&r)rfirstnumcharsZ divisionsr"rrradapt[s   r-cCsPt}d}t|D]4\}}t||}||t||dk||d}qt|S)NHrr)r enumerater'extendr-r )Zbaselendeltasrr"Zpointsrsrrrgenerate_integersjs  r3cCs8t|\}}t||}tt||}|r4|d|S|S)N-)rrr3r)textr r r1rrrpunycode_encodeus    r6c Csd}d}d}zt||}Wn.tyJ|dkr:td|ddfYS0|d7}d|krhdkrvnn |d}nHd|krdkrnn |d }n&|dkrtd ||dn|dfSt||} |||7}|| kr||fS|d | }|d7}q dS) Nrrstrictzincomplete punicode stringAZ09z Invalid extended code point '%s'r)r IndexError UnicodeErrorr#) r extposr"errorsrwr!rZdigitr&rrrdecode_generalized_numbers2       rBc Csd}d}d}d}|t|krt||||\}}|dur:|S||d7}||t|d7}|dkr~|dkrvtd|td }|t|d}|d|t|||d}t||dkt|}|}q|S) Nrrr.rrir7zInvalid character U+%x?)rrBr>rchrr-) r r r@rrr"r?Znewposrrrrinsertion_sorts*    rEcCst|tr|d}t|tr&t|}|d}|dkrLd}t|d}n.t|d|d|}t||ddd}t|||S)Nasciir4rr) isinstancer encode memoryviewr rfindupperrE)r5r@rr r rrrpunycode_decodes    rMc@s eZdZdddZdddZdS) Codecr7cCst|}|t|fSN)r6rselfinputr@rrrrrIsz Codec.encodecCs*|dvrtd|t||}|t|fSN)r7replaceignorezUnsupported error handling )r>rMrrPrrrdecodes  z Codec.decodeN)r7)r7)__name__ __module__ __qualname__rIrVrrrrrNs rNc@seZdZdddZdS)IncrementalEncoderFcCst|SrO)r6rQrRfinalrrrrIszIncrementalEncoder.encodeN)F)rWrXrYrIrrrrrZsrZc@seZdZdddZdS)IncrementalDecoderFcCs$|jdvrtd|jt||jSrS)r@r>rMr[rrrrVs zIncrementalDecoder.decodeN)F)rWrXrYrVrrrrr]sr]c@s eZdZdS) StreamWriterNrWrXrYrrrrr^sr^c@s eZdZdS) StreamReaderNr_rrrrr`sr`c Cs tjdtjtjttttdS)NZpunycode)namerIrVincrementalencoderincrementaldecoder streamwriter streamreader) codecs CodecInforNrIrVrZr]r^r`rrrr getregentrysrh)rfrrrrr#r$r'r-r3r6rBrErMrNrZr]r^r`rhrrrrs&