
    h3                        S SK r S SKrS SKrS SKJrJr  SSKJr  SSKJ	r	  Sr
Sr\R                  " S5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      rS\S\4S jrS\S\S\4S jrS\S\4S jrS\S\4S jrS\\\4   S\4S jrS\\\4   S\S\4S jrS1S\S\S\4S jjrS\S\4S jrS\S\4S  jrS\SS4S! jr S\S"\S\4S# jr!S1S\S"\S$\S\4S% jjr"S\\\\#4   SS4S& jr$S\S\4S' jr%S\\\\#4   S\4S( jr&S2S)\S*\S+\S\4S, jjr'    S3S\\\\#4   S-\S.\S*\S+\S\4S/ jjr(   S4S\\\\#4   S-\S.\S*\S\4
S0 jjr)g)5    N)OptionalUnion   )idnadata)intranges_contain	   s   xn--u   [.。．｡]c                       \ rS rSrSrSrg)	IDNAError   z5Base exception for all IDNA-encoding related problems N__name__
__module____qualname____firstlineno____doc____static_attributes__r       ;/var/www/html/env/lib/python3.13/site-packages/idna/core.pyr
   r
      s    ?r   r
   c                       \ rS rSrSrSrg)IDNABidiError   z;Exception when bidirectional requirements are not satisfiedr   Nr   r   r   r   r   r      s    Er   r   c                       \ rS rSrSrSrg)InvalidCodepoint   z<Exception when a disallowed or unallocated codepoint is usedr   Nr   r   r   r   r   r      s    Fr   r   c                       \ rS rSrSrSrg)InvalidCodepointContext    zCException when the codepoint is not valid in the context it is usedr   Nr   r   r   r   r   r       s    Mr   r   cpreturnc                     [         R                  " [        U 5      5      nUS:X  a/  [         R                  " [        U 5      5      (       d  [	        S5      eU$ )Nr   z Unknown character in unicodedata)unicodedata	combiningchrname
ValueError)r   vs     r   _combining_classr(   &   sC    c"g&AAvB((?@@Hr   scriptc                 N    [        [        U 5      [        R                  U   5      $ )N)r   ordr   scripts)r   r)   s     r   
_is_scriptr-   .   s    SWh&6&6v&>??r   sc                 $    U R                  S5      $ )Npunycode)encoder.   s    r   	_punycoder3   2   s    88Jr   c                 $    SR                  U 5      $ )NzU+{:04X})formatr2   s    r   _unotr6   6   s    Qr   labelc                 $    [        U 5      S:  a  gg)N?   FTlenr7   s    r   valid_label_lengthr=   :   s    
5zBr   trailing_dotc                 6    [        U 5      U(       a  SOS:  a  gg)N      FTr:   )r7   r>   s     r   valid_string_lengthrB   @   s    
5zLSc2r   	check_ltrc                 $   Sn[        U S5       HO  u  p4[        R                  " U5      nUS:X  a$  [        SR	                  [        U 5      U5      5      eUS;   d  MM  SnMQ     U(       d  U(       d  g[        R                  " U S   5      nUS;   a  SnO,US	:X  a  SnO#[        S
R	                  [        U 5      5      5      eSnS n[        U S5       H  u  p4[        R                  " U5      nU(       aV  US;  a  [        SR	                  U5      5      eUS;   a  SnOUS:w  a  SnUS;   a  U(       d  UnMd  X:w  a  [        S5      eMv  Mx  US;  a  [        SR	                  U5      5      eUS;   a  SnM  US:w  d  M  SnM     U(       d  [        S5      eg)NFr    z1Unknown directionality in label {} at position {})RALANTr   )rF   rG   Lz=First codepoint in label {} must be directionality L, R or AL)
rF   rG   rH   ENESCSETONBNNSMzGInvalid direction for codepoint at position {} in a right-to-left label)rF   rG   rJ   rH   rP   )rH   rJ   z2Can not mix numeral types in a right-to-left label)rI   rJ   rK   rL   rM   rN   rO   rP   zGInvalid direction for codepoint at position {} in a left-to-right label)rI   rJ   z0Label ends with illegal codepoint directionality)	enumerater"   bidirectionalr   r5   repr)	r7   rC   
bidi_labelidxr   	directionrtlvalid_endingnumber_types	            r   
check_bidirZ   F   s   JUA&--b1	? S Z Z[_`e[fhk lmm))J ' i ))%(3IK	c	[bbcghmcnoppL!%KUA&--b1	 !  $$m$t$tux$yzz33#e#$L(""+K"/+,`aa 0	 )  PP#$m$t$tux$yzzK'#e#$M 'P NOOr   c                 Z    [         R                  " U S   5      S   S:X  a  [        S5      eg)Nr   Mz0Label begins with an illegal combining characterT)r"   categoryr
   r<   s    r   check_initial_combinerr^      s-    E!H%a(C/JKKr   c                 f    U SS S:X  a  [        S5      eU S   S:X  d	  U S   S:X  a  [        S5      eg	)
N      z--z4Label has disallowed hyphens in 3rd and 4th positionr   -z)Label must not start or end with a hyphenT)r
   r<   s    r   check_hyphen_okrd      sA    QqzTNOOQx3%)s*CDDr   c                 P    [         R                  " SU 5      U :w  a  [        S5      eg )NNFCz%Label must be in Normalization Form C)r"   	normalizer
   r<   s    r   	check_nfcrh      s(    UE*e3?@@ 4r   posc                    [        X   5      nUS:X  Ga   US:  a"  [        [        XS-
     5      5      [        :X  a  gSn[        US-
  SS5       H\  n[        R
                  R                  [        X   5      5      nU[        S5      :X  a  M>  U[        S5      [        S	5      4;   a  Sn  O  O   U(       d  gSn[        US-   [        U 5      5       H^  n[        R
                  R                  [        X   5      5      nU[        S5      :X  a  M>  U[        S
5      [        S	5      4;   a  Sn  U$   U$    U$ US:X  a)  US:  a"  [        [        XS-
     5      5      [        :X  a  ggg)Ni   r   r   TFrc   TrI   DrF   i   )r+   r(   _virama_combining_classranger   joining_typesgetr;   )r7   ri   cp_valueokijoining_types         r   valid_contextjru      sX   5:H67E'N 348OOsQwB'A#1155c%(mDLs3x'#c(CH!55 ( sQwE
+A#1155c%(mDLs3x'#c(CH!55 	 	 , 	67E'N 348OO r   	exceptionc                    [        X   5      nUS:X  aF  SUs=:  a  [        U 5      S-
  :  a,  O  g[        XS-
     5      S:X  a  [        XS-      5      S:X  a  ggUS:X  a3  U[        U 5      S-
  :  a   [        U 5      S:  a  [        XS-      S5      $ gUS	:X  d  US
:X  a  US:  a  [        XS-
     S5      $ gUS:X  aG  U  H@  nUS:X  a  M  [        US5      (       d$  [        US5      (       d  [        US5      (       d  M@    g   gSUs=::  a  S::  a)  O  O&U  H  nS[        U5      s=::  a
  S::  d  M     g  M!     gSUs=::  a  S::  a)  O  gU  H  nS[        U5      s=::  a
  S::  d  M     g  M!     gg)N   r   r   l   TFiu  Greeki  i  Hebrewi0  u   ・HiraganaKatakanaHani`  ii  i  i  )r+   r;   r-   )r7   ri   rv   rq   r   s        r   valid_contextor      s   5:H6s#SZ!^#  5q>"f,U7^1D1N	V	UaCJNe!Gng66	V	x617e!Gnh77	V	BX~"j))ZJ-G-G:VXZ_K`K`	 
 	(	#e	#BB)6) *  	(	#e	#  BB)6) *  r   c                    [        U [        [        45      (       a  U R                  S5      n [	        U 5      S:X  a  [        S5      e[        U 5        [        U 5        [        U 5        [        U 5       GH/  u  p[        U5      n[        U[        R                  S   5      (       a  M5  [        U[        R                  S   5      (       aD   [        X5      (       d1  [        SR!                  [#        U5      US-   [%        U 5      5      5      eM  [        U[        R                  S	   5      (       aD  [)        X5      (       d1  [        S
R!                  [#        U5      US-   [%        U 5      5      5      eGM  [+        SR!                  [#        U5      US-   [%        U 5      5      5      e   [-        U 5        g ! [&         a2    [        SR!                  [#        U5      US-   [%        U 5      5      5      ef = f)Nzutf-8r   zEmpty LabelPVALIDCONTEXTJz*Joiner {} not allowed at position {} in {}r   z<Unknown codepoint adjacent to joiner {} at position {} in {}CONTEXTO-Codepoint {} not allowed at position {} in {}z-Codepoint {} at position {} of {} not allowed)
isinstancebytes	bytearraydecoder;   r
   rh   rd   r^   rQ   r+   r   r   codepoint_classesru   r   r5   r6   rS   r&   r   r   rZ   )r7   ri   r   rq   s       r   check_labelr      s   %%+,,W%
5zQ&&eE5!U#r7Xx'A'A('KLLx)C)CJ)OPP
%e111DKKERZO]`cd]dfjkpfqr  2 x)C)CJ)OPP!%---CJJ5QY?\_bc\ceijoepq  .
 #?FFuXX[^_X_aefkalm - $4 u!  RYYhq$u+ s   AF33<G/c                 
    U R                  S5      n[        U5        [        U5      (       d  [        S5      eU$ ! [         a     Of = f[        U 5        [        [        U 5      -   n[        U5      (       d  [        S5      eU$ )NasciizLabel too long)r1   ulabelr=   r
   UnicodeEncodeErrorr   _alabel_prefixr3   r7   label_bytess     r   alabelr     s    ll7+{!+..,--   9U#33Kk**())s   8; 
AAc                 (   [        U [        [        45      (       d   U R                  S5      nOU nUR                  5       nUR                  [        5      (       aH  U[        [        5      S  nU(       d  [        S5      eUR                  S5      S   S:X  a  [        S5      eO[        U5        UR                  S5      $  UR                  S5      n [        U 5        U $ ! [         a    [        U 5        U s $ f = f! [         a    [        S5      ef = f)Nr   z5Malformed A-label, no Punycode eligible content foundrc   rb   z"A-label must not end with a hyphenr0   zInvalid A-label)r   r   r   r1   r   r   lower
startswithr   r;   r
   r   UnicodeErrorr   s     r   r   r   /  s   eeY/00	,,w/K
 ##%Kn--!#n"5"78STTg&r*c1@AA 2 	K !!'**+"":. L- " 	L	&  +)**+s   C  C; C87C8;Ddomain
std3_rulestransitionalc                 B   SSK J n  Sn[        U 5       H  u  pV[        U5      n X7S:  a  UO[        R                  " X7S45      S-
     nUS   n	Sn
[        U5      S:X  a  US   n
U	S	:X  d  U	S
:X  a  U(       a  U	S:X  a  U(       d	  U
c  XF-  nMz  U
b&  U	S:X  d  U	S:X  a  U(       a  U	S
:X  a  U(       a  XJ-  nM  U	S:w  a
  [        5       eM     [        R                  " SU5      $ ! [         a2    [        SR                  [        U5      US-   [        U 5      5      5      ef = f)zBRe-map the characters in the string according to UTS46 processing.r   )	uts46datarE      ZN   r`   Vrl   3r\   Ir   rf   )r   rQ   r+   bisectbisect_leftr;   
IndexErrorr   r5   r6   rS   r"   rg   )r   r   r   r   outputri   char
code_pointuts46rowstatusreplacements              r   uts46_remapr   L  s-   $Fv&	Y
	 C/?VEWEWXapsctEuxyEyzHa[F)-K8}!&qk#cM,cM*9L(#&C-
RUZf%3 l" % '2   //  	"?FFuZGXZ]`aZacghncop 	s   A'C"'C"7C""<Dstrictuts46c                 J   [        U [        5      (       d   [        U S5      n U(       a  [	        XU5      n Sn/ nU(       a  U R                  S5      nO[        R                  U 5      nU(       a  US/:X  a  [        S5      eUS   S:X  a  US	 SnU H1  n[        U5      n U (       a  UR                  U 5        M(  [        S	5      e   U(       a  UR                  S
5        SR                  U5      n [        X5      (       d  [        S5      eU $ ! [         a    [        S5      ef = f)Nr   zGshould pass a unicode string to the function rather than a byte string.F.rE   Empty domainrc   TEmpty labelr      .zDomain too long)r   strUnicodeDecodeErrorr
   r   split_unicode_dots_rer   appendjoinrB   )	r.   r   r   r   r   r>   resultlabelsr7   s	            r   r1   r1   n  s    a	gAwA |4LF!''*Vt^''bzR2J5MMM!M**  c		&Aq//)**H5 " 	geff	gs   D D"c                     [        U [        5      (       d  [        U S5      n U(       a  [	        XS5      n Sn/ nU(       d  [
        R                  U 5      nOU R                  S5      nU(       a  US/:X  a  [        S5      eUS   (       d  US	 SnU H1  n[        U5      n U (       a  UR                  U 5        M(  [        S	5      e   U(       a  UR                  S5        SR                  U5      $ ! [         a    [        S5      ef = f)
Nr   zInvalid ASCII in A-labelFr   rE   r   rc   Tr   )
r   r   r   r
   r   r   r   r   r   r   )r.   r   r   r   r>   r   r   r7   s           r   r   r     s    4!S!!AwA u-LF!''*Vt^''":2J5MMM!M**  b88F/  42334s   !C0 0D)F)TF)FFFF)FFF)*r   rer"   typingr   r   rE   r   	intrangesr   rm   r   compiler   r   r
   r   r   r   intr(   r   boolr-   r   r3   r6   r=   rB   rZ   r^   rd   rh   ru   r   r   r   r   r   r   r1   r   r   r   r   <module>r      s    	  "  ( :::; 	 		I 		y 		i 	  @3 @ @ @      S  S  eE3J/ D uUCZ0   Cc Cd Ct CL# $ 3 4 AS AT A
)# )C )D )X'# 'C 'D 'T 'T$uS%23 $ $N# % &%UI-. 3 :0 0 0D 0UX 0H $S%"#$$ $ 	$
 $ $R 	 S%"#     	 
 	 r   