
    5fw1                     r   d dl mZ ddlZddlZddlZddlmZmZ d dlm	Z	 dZ
dZ ej                  d      Z G d	 d
e      Z G d de      Z G d de      Z G d de      ZdedefdZdededefdZdedefdZdedefdZdeeef   defdZdeeef   dedefdZd1dededefdZdedefdZdedefd Zdeddfd!Z ded"edefd#Z!d1ded"ed$edefd%Z"deeee#f   ddfd&Z$dedefd'Z%deeee#f   defd(Z&d2d)ed*ed+edefd,Z'd3deeee#f   d-ed.ed*ed+edefd/Z(d4deeee#f   d-ed.ed*edef
d0Z)y)5   )idnadata    N)UnionOptional)intranges_contain	   s   xn--u   [.。．｡]c                       e Zd ZdZy)	IDNAErrorz7 Base exception for all IDNA-encoding related problems N__name__
__module____qualname____doc__     D/root/indophilia_feed/venv/lib/python3.12/site-packages/idna/core.pyr
   r
      s    Ar   r
   c                       e Zd ZdZy)IDNABidiErrorz= Exception when bidirectional requirements are not satisfied Nr   r   r   r   r   r      s    Gr   r   c                       e Zd ZdZy)InvalidCodepointz> Exception when a disallowed or unallocated codepoint is used Nr   r   r   r   r   r      s    Hr   r   c                       e Zd ZdZy)InvalidCodepointContextzE Exception when the codepoint is not valid in the context it is used Nr   r   r   r   r   r      s    Or   r   cpreturnc                     t        j                  t        |             }|dk(  r)t        j                  t        |             st	        d      |S )Nr   z Unknown character in unicodedata)unicodedata	combiningchrname
ValueError)r   vs     r   _combining_classr"       s@    c"g&AAvB(?@@Hr   scriptc                 N    t        t        |       t        j                  |         S )N)r   ordr   scripts)r   r#   s     r   
_is_scriptr'   '   s    SWh&6&6v&>??r   sc                 $    | j                  d      S )Npunycode)encoder(   s    r   	_punycoder-   *   s    88Jr   c                 $    dj                  |       S )NzU+{:04X})formatr,   s    r   _unotr0   -   s    Qr   labelc                 "    t        |       dkD  ryy)N?   FTlenr1   s    r   valid_label_lengthr7   1   s    
5zBr   trailing_dotc                 *    t        |       |rdndkD  ryy)N      FTr4   )r1   r8   s     r   valid_string_lengthr<   7   s    
5zLSc2r   	check_ltrc                    d}t        | d      D ]J  \  }}t        j                  |      }|dk(  r$t        dj	                  t        |       |            |dv sId}L |s|syt        j                  | d         }|dv rd}n+|d	k(  rd}n#t        d
j	                  t        |                   d}d }t        | d      D ]  \  }}t        j                  |      }|rG|dvrt        dj	                  |            |dv rd}n|dk7  rd}|dv sN|s|}S||k7  sYt        d      |dvrt        dj	                  |            |dv rd}|dk7  sd} |st        d      y)NFr    z1Unknown directionality in label {} at position {})RALANTr   )r@   rA   Lz=First codepoint in label {} must be directionality L, R or AL)
r@   rA   rB   ENESCSETONBNNSMzGInvalid direction for codepoint at position {} in a right-to-left label)r@   rA   rD   rB   rJ   )rB   rD   z2Can not mix numeral types in a right-to-left label)rC   rD   rE   rF   rG   rH   rI   rJ   zGInvalid direction for codepoint at position {} in a left-to-right label)rC   rD   z0Label ends with illegal codepoint directionality)	enumerater   bidirectionalr   r/   repr)	r1   r=   
bidi_labelidxr   	directionrtlvalid_endingnumber_types	            r   
check_bidirT   =   s   Jua( 	b--b1	? S Z Z[_`e[fhk lmm))J i ))%(3IK	c	[bbcghmcnoppLKua( %	b--b1	 \\#$m$t$tux$yzz33#e#$L(""+K"i/+,`aa  PP#$m$t$tux$yzzK'#e#$7%: NOOr   c                 V    t        j                  | d         d   dk(  rt        d      y)Nr   Mz0Label begins with an illegal combining characterT)r   categoryr
   r6   s    r   check_initial_combinerrX   x   s-    E!H%a(C/JKKr   c                 `    | dd dk(  rt        d      | d   dk(  s| d   dk(  rt        d      y	)
N      z--z4Label has disallowed hyphens in 3rd and 4th positionr   -z)Label must not start or end with a hyphenT)r
   r6   s    r   check_hyphen_okr^   ~   sA    QqzTNOOQx3%)s*CDDr   c                 L    t        j                  d|       | k7  rt        d      y )NNFCz%Label must be in Normalization Form C)r   	normalizer
   r6   s    r   	check_nfcrb      s(    UE*e3?@@ 4r   posc                    t        | |         }|dk(  r|dkD  r"t        t        | |dz
                 t        k(  ryd}t        |dz
  dd      D ]Y  }t        j
                  j                  t        | |               }|t        d      k(  r=|t        d      t        d	      fv rd} n n |syd}t        |dz   t        |             D ][  }t        j
                  j                  t        | |               }|t        d      k(  r=|t        d
      t        d	      fv rd} |S  |S  |S |dk(  r(|dkD  r"t        t        | |dz
                 t        k(  ryyy)Ni   r   r   TFr]   TrC   Dr@   i   )r%   r"   _virama_combining_classranger   joining_typesgetr5   )r1   rc   cp_valueokijoining_types         r   valid_contextjro      sl   5:H67E#'N 348OOs1ub"% 	A#1155c%(mDLs3x'#c(CH!55	 s1uc%j) 	A#1155c%(mDLs3x'#c(CH!55 	 		 	67E#'N 348OO r   	exceptionc                    t        | |         }|dk(  rDd|cxk  rt        |       dz
  k  r,n yt        | |dz
           dk(  rt        | |dz            dk(  ryy|dk(  r2|t        |       dz
  k  r t        |       dkD  rt        | |dz      d      S y|d	k(  s|d
k(  r|dkD  rt        | |dz
     d      S y|dk(  r4| D ].  }|dk(  r	t        |d      st        |d      st        |d      s. y yd|cxk  rdk  r#n n | D ]  }dt        |      cxk  rdk  s y  yd|cxk  rdk  r#n y| D ]  }dt        |      cxk  rdk  s y  yy)N   r   r   l   TFiu  Greeki  i  Hebrewi0  u   ・HiraganaKatakanaHani`  ii  i  i  )r%   r5   r'   )r1   rc   rp   rk   r   s        r   valid_contextory      s   5:H6s!SZ\!  5q>"f,U37^1D1N	V	UA#e*q.eC!Gng66	V	x617eC!Gnh77	V	 	BX~"j)ZJ-G:VXZ_K`		
 	(	#e	# 	BB)6) *	 	(	#e	#   	BB)6) *	 r   c           
      "   t        | t        t        f      r| j                  d      } t	        |       dk(  rt        d      t        |        t        |        t        |        t        |       D ]  \  }}t        |      }t        |t        j                  d         r0t        |t        j                  d         r>t        | |      rZt        dj!                  t#        |      |dz   t%        |                   t        |t        j                  d         r>t'        | |      rt        d	j!                  t#        |      |dz   t%        |                   t)        d
j!                  t#        |      |dz   t%        |                    t+        |        y )Nzutf-8r   zEmpty LabelPVALIDCONTEXTJz*Joiner {} not allowed at position {} in {}r   CONTEXTO-Codepoint {} not allowed at position {} in {}z-Codepoint {} at position {} of {} not allowed)
isinstancebytes	bytearraydecoder5   r
   rb   r^   rX   rK   r%   r   r   codepoint_classesro   r   r/   r0   rM   ry   r   rT   )r1   rc   r   rk   s       r   check_labelr      ss   %%+,W%
5zQ&&eE5!u% @	br7Xx'A'A('KLx)C)CJ)OP!%--.Z.a.a(OSUDK/9 : :x)C)CJ)OP!%--.].d.dejksetvyz{v{  ~B  CH  ~I  /J  K  K"#R#Y#YZ_`hZiknopkprvw|r}#~@ ur   c                     	 | j                  d      }t        |       t        |      st        d      |S # t        $ r Y nw xY wt        |        t        t        |       z   }t        |      st        d      |S )NasciizLabel too long)r+   ulabelr7   r
   UnicodeEncodeErrorr   _alabel_prefixr-   r1   label_bytess     r   alabelr      s|    ll7+{!+.,--   9U#33Kk*())s   36 	AAc                    t        | t        t        f      s	 | j                  d      }n| }|j                         }|j                  t              rA|t        t              d  }|st        d      |j                  d      d   dk(  r't        d      t        |       |j                  d      S 	 |j                  d      } t        |        | S # t        $ r t        |        | cY S w xY w# t        $ r t        d      w xY w)Nr   z5Malformed A-label, no Punycode eligible content foundr]   r\   z"A-label must not end with a hyphenr*   zInvalid A-label)r   r   r   r+   r   r   lower
startswithr   r5   r
   r   UnicodeErrorr   s     r   r   r     s   eeY/0	,,w/K
 ##%Kn-!#n"5"67STTg&r*c1@AAK !!'**+"":. L- " 	L	&  +)**+s   C /C) C&%C&)C>domain
std3_rulestransitionalc                     ddl m } d}t        |       D ]  \  }}t        |      }	 ||dk  r|nt        j                  ||df      dz
     }|d   }	d}
t        |      dk(  r|d   }
|	d	k(  s|	d
k(  r|r	|	dk(  r
|s|
||z  }n*|
|	dk(  s|	dk(  r|r|	d
k(  r|r||
z  }n|	dk7  r
t                t        j                  d|      S # t        $ r2 t        dj                  t        |      |dz   t        |                   w xY w)zBRe-map the characters in the string according to UTS46 processing.r   )	uts46datar?      ZN   rZ   Vrf   3rV   Ir~   r`   )r   rK   r%   bisectbisect_leftr5   
IndexErrorr   r/   r0   rM   r   ra   )r   r   r   r   outputrc   char
code_pointuts46rowstatusreplacements              r   uts46_remapr   /  s5   $Fv& ;	TY
	; zC/?""9z3.?@1DFHa[FK8}!&qk#s]<s]:+:M$(fms]:s]|+%3 l"%;0   //  	;"?FFj!37DL:; ;	;s   BC;C=strictuts46c                    t        | t              s	 t        | d      } |rt	        | ||      } d}g }|r| j                  d      }nt        j                  |       }|r|dgk(  rt        d      |d   dk(  r|d= d}|D ]+  }t        |      } | r|j                  |        "t        d	       |r|j                  d
       dj                  |      } t        | |      st        d      | S # t        $ r t        d      w xY w)Nr   zGshould pass a unicode string to the function rather than a byte string.F.r?   Empty domainr]   TEmpty labelr      .zDomain too long)r   strUnicodeDecodeErrorr
   r   split_unicode_dots_rer   appendjoinr<   )	r(   r   r   r   r   r8   resultlabelsr1   s	            r   r+   r+   O  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   C' 'C<c                    	 t        | t              st        | d      } |rt	        | |d      } d}g }|st
        j                  |       }n| j                  d      }|r|dgk(  rt        d      |d   s|d= d}|D ]+  }t        |      } | r|j                  |        "t        d	       |r|j                  d       dj                  |      S # t        $ r t        d      w xY w)
Nr   zInvalid ASCII in A-labelFr   r?   r   r]   Tr   )
r   r   r   r
   r   r   r   r   r   r   )r(   r   r   r   r8   r   r   r1   s           r   r   r   p  s    4!S!AwA :u-LF!''*Vt^''":2J +5MMM!M**+ b88F/  42334s   C C )F)TF)FFFF)FFF)*r?   r   r   r   retypingr   r   	intrangesr   rg   r   compiler   r   r
   r   r   r   intr"   r   boolr'   r   r-   r0   r7   r<   rT   rX   r^   rb   ro   ry   r   r   r   r   r   r+   r   r   r   r   <module>r      s      	 " ( 2:::; 	 	
	I 	
	y 	
	i 	
  @3 @ @ @      S  S  eE3J/ D uUCZ0   8c 8d 8t 8v# $ 3 4 AS AT A
,# ,C ,D ,^'# 'C 'D 'T 'TuS%23  6# % &%UI-. 3 :0 0 0D 0UX 0@eC	)* D  cg   @D   QV BeC	)* D  cg tw r   