a [f2@s0ddlmZddlZddlZddlZddlmZmZddlm Z dZ dZ e dZ Gd d d eZGd d d eZGd ddeZGdddeZddZddZddZddZddZddZd7ddZd d!Zd"d#Zd$d%Zd&d'Zd8d(d)Zd*d+Zd,d-Z d.d/Z!d9d1d2Z"d:d3d4Z#d;d5d6Z$dS)<)idnadataN)UnionOptional)intranges_contain sxn--u [.。.。]c@seZdZdZdS) IDNAErrorz7 Base exception for all IDNA-encoding related problems N__name__ __module__ __qualname____doc__rr9/usr/lib/python3.9/site-packages/pip/_vendor/idna/core.pyr src@seZdZdZdS) IDNABidiErrorz= Exception when bidirectional requirements are not satisfied Nr rrrrrsrc@seZdZdZdS)InvalidCodepointz> Exception when a disallowed or unallocated codepoint is used Nr rrrrrsrc@seZdZdZdS)InvalidCodepointContextzE Exception when the codepoint is not valid in the context it is used Nr rrrrrsrcCs0tt|}|dkr,tt|s,td|S)Nrz Unknown character in unicodedata) unicodedataZ combiningchrname ValueError)cpvrrr_combining_class s rcCstt|tj|S)N)rordrZscripts)rZscriptrrr _is_script(srcCs |dS)Npunycode)encodesrrr _punycode,sr cCs d|S)NzU+{:04X})formatrrrr_unot0sr"cCst|dkrdSdS)N?FTlenlabelrrrvalid_label_length5s r(cCst||rdndkrdSdS)NFTr$)r' trailing_dotrrrvalid_string_length<sr,Fc Cs^d}t|dD]:\}}t|}|dkrd}q|dkrd}q|sZtddS)NFrz1Unknown directionality in label {} at position {})RALANTr)r.r/Lz=First codepoint in label {} must be directionality L, R or AL) r.r/r0ENESCSETONBNNSMzGInvalid direction for codepoint at position {} in a right-to-left label)r.r/r2r0r8)r0r2z2Can not mix numeral types in a right-to-left label)r1r2r3r4r5r6r7r8zGInvalid direction for codepoint at position {} in a left-to-right label)r1r2z0Label ends with illegal codepoint directionality) enumeraterZ bidirectionalrr!repr) r'Z check_ltrZ bidi_labelidxr directionZrtlZ valid_endingZ number_typerrr check_bidiCsP       r=cCs"t|dddkrtddS)NrMz0Label begins with an illegal combining characterT)rcategoryrr&rrrcheck_initial_combinersr@cCs<|dddkrtd|ddks0|ddkr8tdd S) Nz--z4Label has disallowed hyphens in 3rd and 4th positionr-z)Label must not start or end with a hyphenT)rr&rrrcheck_hyphen_oks rEcCstd||krtddS)NNFCz%Label must be in Normalization Form C)r normalizerr&rrr check_nfcsrHcCs4t||}|dkr|dkr8tt||dtkr8dSd}t|dddD]B}tjt||}|tdkrrqL|tdtd fvrLd}qqL|sdSd}t|dt|D]B}tjt||}|tdkrq|td td fvrd}qq|S|d kr,|dkr(tt||dtkr(dSdSdSdS) Ni rrTFrDTr1Dr.i )rr_virama_combining_classrangerZ joining_typesgetr%)r'poscp_valueokiZ joining_typerrrvalid_contextjs<     rRcCst||}|dkrdd|kr0t|dkr`nn,t||ddkr`t||ddkr`dSdS|dkr|t|dkrt|dkrt||ddSdS|d ks|d kr|dkrt||dd SdS|d kr|D]6}|d krqt|ds t|ds t|drdSqdSd|kr.dkrhnn6|D],}dt|krVdkr6nndSq6dSd|krdkrnn6|D],}dt|krdkrnndSqdSdS)NrrlTFiuZGreekiiZHebrewi0u・ZHiraganaZKatakanaZHani`iiii)rr%r)r'rN exceptionrOrrrrvalid_contextos@  ( "    rVc CsJt|ttfr|d}t|dkr,tdt|t|t|t |D]\}}t |}t |t j drpqLqLt |t j drz,t||stdt||dt|Wn0tytdt||dt|Yn0qLt |t j d rt||sz|d}WqBty:t||YS0n|}|}|tr|t td}|spt d| dddkrt dnt|| dS| d}t||S)Nr]z5Malformed A-label, no Punycode eligible content foundrDrCz"A-label must not end with a hyphenr) rXrYrZrr_r\lower startswithrar%rr[rbrrrr^%s&      r^Tc Cs$ddlm}d}t|D]\}}t|}z||dkr8|nt||dfd}|d} d} t|dkrn|d} | d ks| d kr|r| d kr|s| dur||7}n@| dur| d ks| d kr|r| d kr|r|| 7}n| d krtWqtytdt ||dt |Yq0qt d|S)zBRe-map the characters in the string according to UTS46 processing.r) uts46datar-ZNrAVrJ3r>IrWrF) rfr9rbisectZ bisect_leftr% IndexErrorrr!r"r:rrG) domain std3_rules transitionalrfoutputrNcharZ code_pointZuts46rowstatusZ replacementrrr uts46_remap@sV      ruc Cst|ttfr|d}|r(t|||}d}g}|r@|d}n t|}|rX|dgkr`td|ddkrv|d=d}|D]$}t|}|r| |qztdqz|r| d d |}t ||std |S) Nr]F.r- Empty domainrDT Empty label.zDomain too long) rXrYrZr[rusplit_unicode_dots_rerrcappendjoinr,) rstrictuts46rprqr+resultlabelsr'rrrras2          rcCst|ttfr|d}|r(t||d}d}g}|s@t|}n |d}|rX|dgkr`td|dsr|d=d}|D]$}t|}|r| |qvtdqv|r| dd |S) Nr]Frvr-rwrDTrx) rXrYrZr[rur|r{rr^r}r~)rrrrpr+rrr'rrrr[s,       r[)F)F)TF)FFFF)FFF)%r-rrmrretypingrrZ intrangesrrKracompiler| UnicodeErrorrrrrrrr r"r(r,r=r@rErHrRrVr\rcr^rurr[rrrrs<    < , +  !