ó
    e‘Ðh;˜  ã                   óÖ  • S SK Jr  S SKJr  S SKJrJrJrJrJ	r	J
r
JrJrJrJrJrJrJr  SSKrSSKrSSKrSSKrSSKJrJrJrJr  S\S\\\   \\\4   4S	 jrS
\S\S\4S jrS\S\4S jr  " S S\5      r!  S-S\S\S\S\S\S\!4S jjr"S.S\S\SS4S jjr#S\S\S\S\SS4
S jr$S\S\4S  jr% " S! S"\5      r&S/S#\S$\S%\S\&4S& jjr'S'\SS4S( jr( " S) S*\5      r)S+\S\)4S, jr*g)0é   )ÚEmailSyntaxError)ÚValidatedEmail)ÚEMAIL_MAX_LENGTHÚLOCAL_PART_MAX_LENGTHÚDOMAIN_MAX_LENGTHÚDOT_ATOM_TEXTÚDOT_ATOM_TEXT_INTLÚATEXT_REÚATEXT_INTL_DOT_REÚATEXT_HOSTNAME_INTLÚ
QTEXT_INTLÚDNS_LABEL_LENGTH_LIMITÚDOT_ATOM_TEXT_HOSTNAMEÚDOMAIN_NAME_REGEXÚDOMAIN_LITERAL_CHARSé    N)ÚOptionalÚTupleÚ	TypedDictÚUnionÚemailÚreturnc                 ó(  • S[         S[        [         S4   S[        [         [         4   4S jnS[         S[        [         [        4   4S jnU" U S5      u  p4UR                  S5      (       aõ  UR	                  5       nU" U5      u  pVU(       dt  U Vs1 s H7  n[
        R                  " U5      (       d  US	:w  d  US
:X  d  M,  [        U5      iM9     nnU(       a)  [        SSR                  [        U5      5      -   S
-   5      e[        USS9  SU;  a  [        S5      eUR	                  S	5      nUS   S:w  a  [        S5      eUSS  R	                  S5      n	U" U	S5      u  p«OS nX4pºUR                  S5      (       a  USS  nU" U
5      u  p¬XZX¼4$ s  snf )NÚtextÚspecials.r   c                 óÆ  • SnSnSn[        U 5       Hw  u  pV[        R                  " SXS  5      S   U:w  a  XF-  nM+  U(       a,  XF-  nUS:X  a  U(       d  SnMG  US:X  a  U(       d  SnSnMZ  SnM^  US:X  a  XF-  nSnMl  Xa;   a    OXF-  nMy     [        U5      [        U 5      :X  a-  SU ;   a  [	        S	5      eS
U ;   a  [	        S5      e[	        S5      eU [        U5      S  nXG4$ )NFÚ ÚNFCr   Ú\TÚ"u   ï¼ zZThe email address has the "full-width" at-sign (@) character instead of a regular at-sign.u   ï¹«zWThe email address has the "small commercial at" character instead of a regular at-sign.z%An email address must have an @-sign.)Ú	enumerateÚunicodedataÚ	normalizeÚlenr   )r   r   Úinside_quoteÚescapedÚ	left_partÚiÚcÚ
right_parts           ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/email_validator/syntax.pyÚ split_string_at_unquoted_specialÚ5split_email.<locals>.split_string_at_unquoted_special2   s  € ð
 ˆØˆØˆ	Ü˜d–O‰DˆAô ×$Ò$ U¨D°¨HÓ5°aÑ8¸AÓ=Ø‘’	æØ‘�	Ø˜“9¦WØ"’GØ˜#“X¦gà#(�LØ#’Gà#’GØ�c“Ø‘�	Ø#’Ø“áà‘’	ñ5 $ô> ˆy‹>œS ›YÓ&ð ˜‹}Ü&ð  (Fó  Gð  Gð ˜‹}Ü&ð  (Aó  Bð  Bä"Ð#JÓKÐKð œ#˜i›.˜/Ð*ˆ
àÐ$Ð$ó    c           
      ó:  • SnSnSn[        U 5       H„  u  pEU(       ad  U(       a  X5-  nSnM  US:X  a  SnM%  US:X  a?  U[        U 5      S-
  :w  a)  [        SSR                  S	 XS-   S   5       5      -   5      e  X14$ X5-  nMp  US
:X  a
  US:X  a  SnM€  X5-  nM†     X14$ )NFr   r   Tr    r   z,Extra character(s) found after close quote: ú, c              3   ó8   #   • U  H  n[        U5      v •  M     g 7f©N©Úsafe_character_display©Ú.0r)   s     r+   Ú	<genexpr>Ú=split_email.<locals>.unquote_quoted_string.<locals>.<genexpr>…   s   é € Ð:kÒ^jÐYZÔ;QÐRS×;TÐ;TÒ^jùó   ‚r   )r!   r$   r   Újoin)r   Úquotedr&   Úvaluer(   r)   s         r+   Úunquote_quoted_stringÚ*split_email.<locals>.unquote_quoted_strings   sÈ   € ð
 ˆØˆØˆÜ˜d–O‰DˆAÞÞØ‘J�EØ#’GØ˜$“YØ"’GØ˜#“XØœC ›I¨™MÓ)Ü.Ð/]Ø15·±Ñ:kÐ^bÐghÑchÐciÑ^jÓ:kÓ1kñ0ló mð màð ˆ}Ðð ‘J’EØ�a“˜A ›HØ’à‘
’ñ# $ð& ˆ}Ðr.   )Ú@Ú<r@   Ú Ú.z>The display name contains invalid characters when not quoted: r0   T©Úallow_spaceÚ>zoAn open angle bracket at the start of the email address has to be followed by a close angle bracket at the end.éÿÿÿÿz0There can't be anything after the email address.r   )r?   r?   )Ústrr   ÚboolÚ
startswithÚrstripr
   Úmatchr4   r   r:   ÚsortedÚcheck_unsafe_chars)r   r,   r=   r'   r*   Údisplay_nameÚdisplay_name_quotedr)   Ú	bad_charsÚ	addr_specÚ
local_partÚdomain_partÚis_quoted_local_parts                r+   Úsplit_emailrU      sí  € ðH?%¬sð ?%¼eÄCÈÀH¹oð ?%ÔRWÔX[Ô]`ÐX`ÑRaô ?%ðB¤Cð ¬E´#´t°)Ñ,<ô ñ< =¸UÀJÓOÑ€Ið ×Ñ˜S×!Ñ!à×$Ñ$Ó&ˆ	ñ -BÀ)Ó,LÑ)ˆö #ñ &óâ%�AÜ Ÿš q×)Ñ)¨a°3«h¸1À¹8ó *Ô& qÖ)Ù%ð ð ö
 Ü&Ð'gÐjn×jsÑjsÔtzð  |Eó  uFó  kGñ  (Gð  JMñ  (Mó  Nð  Nô 	˜<°TÒ:ð �jÓ Ü"ð  $Uó  Vð  VØ×&Ñ& sÓ+ˆ
Ø�b‰>˜SÓ Ü"Ð#UÓVÐVð ˜q˜r�N×)Ñ)¨#Ó.ˆ	ñ #CÀ9ÈfÓ"UÑˆ
�Kð
 ˆØ"+�Kà×Ñ˜c×"Ñ"Ø! ! "�oˆñ (=¸ZÓ'HÑ$€Jà [ÐFÐFùòKs   Â+FÃFÚaddrÚlimitc                 óD   • [        U 5      U-
  nUS:”  a  SOSnSU SU S3$ )zEHelper function to return an error message related to invalid length.r   Úsr   Ú(ú
 characterú
 too many))r$   )rV   rW   ÚdiffÚsuffixs       r+   Úget_length_reasonr_   É   s2   € äˆt‹9�uÑ€DØ˜1“H‰S "€FØˆtˆf�J˜v˜h jÐ1Ð1r.   r)   c                 ó*  • U S:X  a  SU  S3$ [         R                  " U 5      S   S;   a  [        U 5      $ [        U 5      S:  a  S[        U 5      S 3R	                  5       nOS[        U 5      S 3R	                  5       n[         R
                  " X5      $ )	Nr   r    r   ©ÚLÚNÚPÚSiÿÿ  zU+Ú04xÚ08x)r"   ÚcategoryÚreprÚordÚupperÚname)r)   Úhs     r+   r4   r4   Ð   s�   € àˆDƒyØ�A�3�bˆzÐÜ×Ò˜AÓ˜qÑ!Ð%9Ó9Ü�A‹wˆô ˆ1ƒv�ƒØ”�Q“˜�Ð×#Ñ#Ó%‰à”�Q“˜�Ð×#Ñ#Ó%ˆô ×Ò˜AÓ!Ð!r.   c                   ó:   • \ rS rSr% \\S'   \\   \S'   \\S'   Srg)ÚLocalPartValidationResultéá   rR   Úascii_local_partÚsmtputf8© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rG   Ú__annotations__r   rH   Ú__static_attributes__rs   r.   r+   ro   ro   á   s   ‡ ØƒOØ˜s‘mÓ#Ø†Nr.   ro   ÚlocalÚallow_smtputf8Úallow_empty_localÚquoted_local_partÚstrictc                 ó  • [        U 5      S:X  a  U(       d  [        S5      eU U SS.$ U(       a0  [        U 5      [        :”  a  [        U [        S9n[        SU S35      e[        R
                  " U 5      (       a  U U SS.$ SnSn[        R
                  " U 5      (       a  U(       ds  U  Vs1 s H+  n[        R
                  " U5      (       a  M   [        U5      iM-     n	nU	(       a)  [        S	S
R                  [        U	5      5      -   S-   5      e[        S5      eSnSnOßU(       aØ  U  Vs1 s H+  n[        R
                  " U5      (       a  M   [        U5      iM-     n	nU	(       a)  [        SS
R                  [        U	5      5      -   S-   5      eU  Vs1 s H(  nS[        U5      s=::  a  S::  a  M  O  [        U5      iM*     n	nU	(       a2  SnU(       d)  [        S	S
R                  [        U	5      5      -   S-   5      eSnU(       aT  [        XS:H  S9   U R                  S5        US:X  a  S[         R"                  " SSU 5      -   S-   n U U(       d  U US.$ SUS.$ U  Vs1 s H+  n[$        R
                  " U5      (       a  M   [        U5      iM-     n	nU	(       a)  [        SS
R                  [        U	5      5      -   S-   5      e['        U SSSS9  [        S5      es  snf s  snf s  snf ! [         a  n
[        S5      U
eSn
A
ff = fs  snf )z;Validates the syntax of the local part of an email address.r   z*There must be something before the @-sign.F)rR   rq   rr   ©rW   z0The email address is too long before the @-sign rB   NzBInternationalized characters before the @-sign are not supported: r0   zAInternationalized characters before the @-sign are not supported.zdot-atomTzKThe email address contains invalid characters in quotes before the @-sign: é    é~   r;   rC   Úutf8z0The email address contains an invalid character.r    z(["\\])z\\\1zAThe email address contains invalid characters before the @-sign: z(An email address cannot start with a {}.z@An email address cannot have a {} immediately before the @-sign.©Úis_hostnamez@The email address contains invalid characters before the @-sign.)r$   r   r   r_   r   rK   r	   r
   r4   r:   rL   r   rj   rM   ÚencodeÚ
ValueErrorÚreÚsubr   Úcheck_dot_atom)rz   r{   r|   r}   r~   ÚreasonÚvalidÚrequires_smtputf8r)   rP   Úes              r+   Úvalidate_email_local_partr�   ç   sÌ  € ô ˆ5ƒz�QƒÞ Ü"Ð#OÓPÐPð
  Ø %Øñ
ð 	
ö ”#�e“*Ô4Ó4Ü" 5Ô0EÑFˆÜÐ!QÐRXÐQYÐYZÐ[Ó\Ð\ô ×Ò˜5×!Ñ!ð  Ø %Øñ
ð 	
ð  €EØÐÜ×Ò ×&Ñ&æñ óâ�AÜ—~’~ a×(ó *Ô& qÖ)Ùð ð ö
 Ü&Ð'kÐnr×nwÑnwÔx~ð  @Ió  yJó  oKñ  (Kð  NQñ  (Qó  Rð  Rô #Ð#fÓgÐgð ˆØ Ñö 
ñ ó
â�Ü×#Ò# A×&ó &Ô" 1Ö%Ùð 	ð 
ö
 Ü"Ð#pÐsw×s|Ñs|ô  ~Dð  ENó  ~Oó  tPñ  $Pð  SVñ  $Vó  Wð  Wñ
 ó
â�Øœ#˜a›&Õ' CÑ'ó &á'ô # 1Ö%Ùð 	ð 
ö
 Ø $Ðö "Ü&Ð'kÐnr×nwÑnwÔx~ð  @Ió  yJó  oKñ  (Kð  NQñ  (Qó  Rð  Rð ˆö ô 	˜5¸Ñ/@ÒBð
	^Ø�L‰L˜Ô ð �HÓØœ"Ÿ&š& ¨W°eÓ<Ñ<¸sÑBˆEð  Þ-> Ø)ñ
ð 	
àDHØ)ñ
ð 	
ñ óâˆAÜ ×&Ò& q×)ó 	"Ô˜qÖ!Ùð ð ö
 ÜÐbÐei×enÑenÔouÐvó  pAó  fBñ   Bð  EHñ   Hó  Ið  	Iô �5ÐDð  GIð  W\ò  ]ô Ð]Ó
^Ð^ùòGùò0
ùò
øô< ó 	^Ü"Ð#UÓVÐ\]Ð]ûð	^üò,sH   Â*KÃKÄ)KÅKÆK!Æ/K!ÈK& ÉLÉ?LË&
LË0K<Ë<LrY   rD   c           	      ó  • [        5       n[        U 5       Hµ  u  p4[        R                  " U5      nUS   S;   a  M&  US   S:X  a  US:X  a  UR	                  U5        MH  MJ  US:X  a  U(       d  UR	                  U5        Mj  Ml  US   S:X  a  UR	                  U5        Mˆ  US   S:X  a  UR	                  U5        M¤  UR	                  U5        M·     U(       a0  [        SSR                  S	 [        U5       5       5      -   S
-   5      eg )Nr   ra   ÚMÚZsÚZÚCz.The email address contains unsafe characters: r0   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr2   r3   r5   s     r+   r7   Ú%check_unsafe_chars.<locals>.<genexpr>¹  s   é € Ð*`ÒN_ÈÔ+AÀ!×+DÐ+DÒN_ùr9   rB   )Úsetr!   r"   rh   Úaddr   r:   rL   )rY   rD   rP   r(   r)   rh   s         r+   rM   rM   ˆ  s  € ô “€IÜ˜!–‰ˆÜ×'Ò'¨Ó*ˆØ�A‰;Ð.Ó.áØ�a‰[˜CÓð
 �A‹vØ—‘˜aÖ ñ à˜Óö Ø—‘˜aÖ ñ à�a‰[˜CÓð
 �M‰M˜!ÖØ�a‰[˜CÓð �M‰M˜!Öð �M‰M˜!ÖñU öV ÜÐOØ!%§¡Ñ*`ÌfÐU^ÔN_Ó*`Ó!`ñ aØcfñ gó hð 	hð r.   ÚlabelÚstart_descrÚ	end_descrr…   c                 óä  • U R                  S5      (       a  [        UR                  S5      5      eU R                  S5      (       a  [        UR                  S5      5      eSU ;   a  [        S5      eU(       ax  U R                  S5      (       a  [        UR                  S5      5      eU R                  S5      (       a  [        UR                  S5      5      eSU ;   d  SU ;   a  [        S	5      eg g )
NrB   Úperiodz..z2An email address cannot have two periods in a row.Ú-Úhyphenz.-z-.zFAn email address cannot have a period and a hyphen next to each other.)Úendswithr   ÚformatrI   )r™   rš   r›   r…   s       r+   rŠ   rŠ   ¼  sÓ   € à‡~�~�c×ÑÜ˜y×/Ñ/°Ó9Ó:Ð:Ø×Ñ˜×ÑÜ˜{×1Ñ1°(Ó;Ó<Ð<Øˆuƒ}ÜÐSÓTÐTæà�>‰>˜#×ÑÜ" 9×#3Ñ#3°HÓ#=Ó>Ð>Ø×Ñ˜C× Ñ Ü" ;×#5Ñ#5°hÓ#?Ó@Ð@Ø�5‹=˜D E›MÜ"Ð#kÓlÐlð *ð r.   Úcharc                 ó”  • [        U 5      nSUs=::  a  S::  a   g  SUs=::  a  S::  a"  O  OSUs=::  a  S::  d  O  SUs=::  a  S	::  a)  O  gUS
;   d   SUs=::  a  S::  d  O  SUs=::  a  S::  a   g  Og[        R                  " [        U5      5      S;   a  gS[        R                  " [        U5      5      R                  S5      ;   a  gg)Né€   éŸ   Fi   i`   i$   i&   i(   i.   )é­   id   iÿ  i   i   i ¼ i£¼ T)ÚCfÚCnÚCoÚCsr’   ÚZlÚZpÚ002ErA   )rj   r"   rh   ÚchrÚdecompositionÚsplit)r¢   r)   s     r+   Úuts46_valid_charr±   Ï  sÉ   € ô
 	ˆD‹	€AØˆqÕ�DÔàð ð �QÕ ˜&Ö ¨&°AÕ*?¸Õ*?È&ÐTUÕJ_ÐY_ÕJ_ð ð Ð*Ó*Ø�qÕ"˜FÕ"Ø˜Õ$˜WÔ$ð ñ %ð Ü	×	Ò	œc !›fÓ	%Ð)SÓ	Sð Ø	”;×,Ò,¬S°«VÓ4×:Ñ:¸3Ó?Ó	?àØr.   c                   ó*   • \ rS rSr% \\S'   \\S'   Srg)ÚDomainNameValidationResultií  Úascii_domainÚdomainrs   N)rt   ru   rv   rw   rG   rx   ry   rs   r.   r+   r³   r³   í  s   ‡ ØÓØ†Kr.   r³   rµ   Útest_environmentÚglobally_deliverablec                 óœ	  • U  Vs1 s H+  n[         R                  " U5      (       a  M   [        U5      iM-     nnU(       a)  [        SSR	                  [        U5      5      -   S-   5      e[        U 5        U  Vs1 s H   n[        U5      (       a  M  [        U5      iM"     nnU(       a)  [        SSR	                  [        U5      5      -   S-   5      eU n [        R                  " U SSS9n U  Vs1 s H+  n[         R                  " U5      (       a  M   [        U5      iM-     nnU(       a)  [        S	SR	                  [        U5      5      -   S-   5      e[        U S
SSS9  U R                  S5       H9  n[        R                  " SU[        R                  5      (       d  M0  [        S5      e   [        R                  " U 5      (       a  U nON SR	                  S U R                  S5       5       5      n[        R                  " U5      (       d  [        S5      e[!        U5      ["        :”  aP  X…:X  a  [%        U["        S9n	[        SU	 S35      e[!        U5      ["        -
  n
U
S:X  a  SOSn[        SU
 SU S35      eUR                  S5       H3  n[!        U5      [&        :”  d  M  [%        U[&        S9n	[        SU	 S35      e   U(       aD  SU;  a  US:X  a  U(       d  [        S5      e[(        R*                  " U5      (       d  [        S5      eSSKJn  U H;  nUS:X  a	  U(       a  M  X�:X  d  UR1                  SU-   5      (       d  M2  [        S 5      e    [        R2                  " UR5                  S!5      5      nU Vs1 s H+  n[         R                  " U5      (       a  M   [        U5      iM-     nnU(       a)  [        SSR	                  [        U5      5      -   S-   5      e[        U5         [        R4                  " U5        UUS$.$ s  snf s  snf ! [        R                   a  n[        SU S35      UeSnAff = fs  snf ! [        R                   a  n[        SU S35      UeSnAff = f! [        R                   a  n[        S"U S35      UeSnAff = fs  snf ! [        R                   a  n[        S#U S35      UeSnAff = f)%z<Validates the syntax of the domain part of an email address.z7The part after the @-sign contains invalid characters: r0   rB   F)Ú
std3_rulesÚtransitionalz7The part after the @-sign contains invalid characters (ú).NzSThe part after the @-sign contains invalid characters after Unicode normalization: z?An email address cannot have a {} immediately after the @-sign.z&An email address cannot end with a {}.Tr„   z
(?!xn)..--z€An email address cannot have two letters followed by two dashes immediately after the @-sign or after a period, except Punycode.c              3   ól   #   • U  H*  n[         R                  " U5      R                  S 5      v •  M,     g7f)ÚasciiN)ÚidnaÚalabelÚdecode)r6   r™   s     r+   r7   Ú-validate_email_domain_name.<locals>.<genexpr>G  s.   é € ð $â.�Eô —’˜EÓ"×)Ñ)¨'×2Ð2Ú.ùs   ‚24z&The part after the @-sign is invalid (zSThe email address contains invalid characters after the @-sign after IDNA encoding.r€   z/The email address is too long after the @-sign r   r   rY   z0The email address is too long after the @-sign (ú bytez too many after IDNA encoding).zDAfter the @-sign, periods cannot be separated by so many characters Útestz@The part after the @-sign is not valid. It should have a period.zRThe part after the @-sign is not valid. It is not within a valid top-level domain.)ÚSPECIAL_USE_DOMAIN_NAMESz[The part after the @-sign is a special-use or reserved name that cannot be used with email.r½   z-The part after the @-sign is not valid IDNA (zXThe part after the @-sign became invalid after normalizing to international characters ()r´   rµ   )r   rK   r4   r   r:   rL   rM   r±   r¾   Úuts46_remapÚ	IDNAErrorrŠ   r°   rˆ   ÚIr   r$   r   r_   r   r   Úsearchr   rÄ   r    rÀ   r†   )rµ   r¶   r·   r)   rP   Úoriginal_domainrŽ   r™   r´   r‹   r]   rY   rÄ   ÚdÚdomain_i18ns                  r+   Úvalidate_email_domain_namerÌ   ò  s8  € ñ óâˆAÜ"×(Ò(¨×+ó 	"Ô˜qÖ!Ùð ð ö
 ÜÐXÐ[_×[dÑ[dÔekÐluÓevÓ[wÑwÐz}Ñ}Ó~Ð~ô �vÔñ
 ,2óÚ+1 aÜ ×"ó 	"Ô˜qÖ!©6ð ð ö ÜÐXÐ[_×[dÑ[dÔekÐluÓevÓ[wÑwÐz}Ñ}Ó~Ð~ð €OðgÜ×!Ò! &°UÈÑOˆñ óâˆAÜ"×(Ò(¨×+ó 	"Ô˜qÖ!Ùð ð ö
 ÜÐtÐw{÷  xAñ  xAô  BHð  IRó  BSó  xTñ   Tð  WZñ   Zó  [ð  	[ô �6Ð\ð  _Gð  UYò  Zð —‘˜cÖ"ˆÜ�8Š8�M 5¬"¯$©$×/Ó/Ü"ð  $fó  gð  gñ #ô ×#Ò# F×+Ñ+à‰ð	ZØŸ8™8ñ $à#Ÿ\™\¨#Ô.ó$ó ˆLô &×+Ò+¨L×9Ñ9Ü"Ð#xÓyÐyô ˆ<ÓÔ,Ó,ØÓ*Ü& |Ô;LÑMˆFÜ"Ð%TÐU[ÐT\Ð\]Ð#^Ó_Ð_ä�|Ó$Ô'8Ñ8ˆDØ˜a“i‘ SˆAÜ"Ð%UÐVZÐU[Ð[`ÐabÐ`cð  dCð  $Dó  Eð  Eð ×#Ñ# CÖ(ˆÜˆu‹:Ô.Õ.Ü& uÔ4JÑKˆFÜ"Ð%iÐjpÐiqÐqrÐ#sÓtÐtñ )ö
 ð �lÓ"¨L¸FÓ,BÖGWÜ"Ð#eÓfÐfô !×'Ò'¨×5Ñ5Ü"Ð#wÓxÐxõ +Û%ˆà�‹;Ö+ÙàÓ × 5Ñ 5°c¸A±g× >Ó >Ü"ð  $Aó  Bð  Bñ &ð ]Ü—k’k ,×"5Ñ"5°gÓ">Ó?ˆñ óâˆAÜ"×(Ò(¨×+ó 	"Ô˜qÖ!Ùð ð ö
 ÜÐXÐ[_×[dÑ[dÔekÐluÓevÓ[wÑwÐz}Ñ}Ó~Ð~Ü�{Ô#ðHÜ�Š�KÔ ð %Øñð ùòyùò øô$ �>‰>ó gÜÐ!XÐYZÐX[Ð[]Ð^Ó_ÐefÐfûðgüò
øôZ �~‰~ó 	Zä"Ð%KÈAÈ3ÈbÐ#QÓRÐXYÐYûð	ZûôL �>‰>ó ]ÜÐ!NÈqÈcÐQSÐTÓUÐ[\Ð\ûð]üòøô �>‰>ó HÜÐ!yÐz{Ðy|Ð|~Ðó  Að  GHð  	HûðHúsŽ   …P
¨P
Á8PÂPÃP Ã.Q ÄQ Ç'Q Í%Q1 Í?RÎ"RÏ/R" ÐP=Ð(P8Ð8P=ÑQ.ÑQ)Ñ)Q.Ñ1RÒRÒRÒ"SÒ6SÓSÚaddrinfoc                 ó6  • U R                   S 4U R                  S4U R                  =(       d    U R                  =(       d    SS-   U R                  -   S4/nU H¾  u  p#[        U5      n[        UR                  S5      5      nU[        -
  nUS:”  d  M;  Uc  XE:X  a  [        U[        S9nO_UcF  [        S U 5       5      n[        S	Xg-  5      nUS	:”  a  S
OSn	X†:X  a
  SU SU	 S3nO#SU SU SU	 S3nOUS	:”  a  S
OSn	USU SU	 S3-  n[        SU S35      e   g )Nzafter normalizationr   r?   z9when the part after the @-sign is converted to IDNA ASCIIrƒ   r   r€   c              3   óV   #   • U  H  n[        UR                  S 5      5      v •  M!     g7f)rƒ   N)r$   r†   r5   s     r+   r7   Ú(validate_email_length.<locals>.<genexpr>è  s!   é € Ð?º$°Qœ3˜qŸx™x¨Ó/×0Ð0º$ùs   ‚')r   rY   rZ   r[   r\   rž   z (rÂ   zThe email address is too long rB   )ÚoriginalÚ
normalizedrq   rR   r´   r$   r†   r   r_   Úmaxr   )
rÍ   Úaddresses_to_checkrV   r‹   Úaddr_lenÚaddr_utf8_lenr]   ÚmbpcÚmcharsr^   s
             r+   Úvalidate_email_lengthrÙ   ¹  sV  € ð2 
×	Ñ	˜DÐ!Ø	×	Ñ	Ð3Ð4Ø
×
#Ñ
#×
@ x×':Ñ':×
@¸bÀCÑ	GÈ(×J_ÑJ_Ñ	_ð  b]ð  	^ðÐó +‰ˆÜ�t“9ˆÜ˜DŸK™K¨Ó/Ó0ˆØÔ/Ñ/ˆØ�!�8Ø‰~ (Ó";ô +¨4Ô7GÑH‘Ø‘ô Ñ?¹$Ó?Ó?�Ü˜Q ¡Ó-�Ø $ q£™¨b�Ø“>Ø    j°°¸
ÐC‘Fà   ¨¨$¨¨z¸&¸ÀÐL‘Fð
 !% q£™¨b�Ø˜B˜t˜f E¨&¨°Ð<Ñ<�Ü"Ð%CÀFÀ8È1Ð#MÓNÐNò= +r.   c                   ó\   • \ rS rSr% \\R                  \R                  4   \S'   \	\S'   Sr
g)ÚDomainLiteralValidationResultiø  Údomain_addressrµ   rs   N)rt   ru   rv   rw   r   Ú	ipaddressÚIPv4AddressÚIPv6Addressrx   rG   ry   rs   r.   r+   rÛ   rÛ   ø  s#   ‡ Ø˜)×/Ñ/°×1FÑ1FÐFÑGÓGØ†Kr.   rÛ   Údomain_literalc                 óš  • [         R                  " SU 5      (       a    [        R                  " U 5      nUSU S3S.$ U R                  S5      (       a-   [        R                  " U SS  5      nUSUR                   S3S.$ SU ;  a  [        S5      eU  Vs1 s H+  n[        R                  " U5      (       a  M   [        U5      iM-     nnU(       a)  [        SSR                  [        U5      5      -   S-   5      e[        S5      e! [         a  n[        SU S35      UeS nAff = f! [         a  n[        S	U S
35      UeS nAff = fs  snf )Nz
^[0-9\.]+$zRThe address in brackets after the @-sign is not valid: It is not an IPv4 address (z') or is missing an address literal tag.Ú[Ú])rÜ   rµ   zIPv6:é   z<The IPv6 address in brackets after the @-sign is not valid (r»   z[IPv6:Ú:z\The part after the @-sign in brackets is not an IPv4 address and has no address literal tag.zCThe part after the @-sign contains invalid characters in brackets: r0   rB   zNThe part after the @-sign contains an invalid address literal tag in brackets.)rˆ   rK   rÝ   rÞ   r‡   r   rI   rß   Ú
compressedr   r4   r:   rL   )rà   rV   rŽ   r)   rP   s        r+   Úvalidate_email_domain_literalrç   ý  s¯  € ô 
‡x‚x�˜~×.Ñ.ð	kÜ×(Ò(¨Ó8ˆDð #Ø˜$˜˜q�kñ
ð 	
ð × Ñ  ×)Ñ)ð	pÜ×(Ò(¨¸¸Ð);Ó<ˆDð #Ø˜tŸ™Ð/¨qÐ1ñ
ð 	
ð �.Ó ÜÐ}Ó~Ð~ñ  óâˆAÜ#×)Ò)¨!×,ó 	"Ô˜qÖ!Ùð ð ö
 ÜÐdÐgk×gpÑgpÔqwð  yBó  rCó  hDñ   Dð  GJñ   Jó  Kð  	Kô ÐkÓ
lÐløôY ó 	kÜ"Ð%wÐxyÐwzð  {bð  $có  dð  jkð  kûð	kûô ó 	pÜ"Ð%aÐbcÐadÐdfÐ#gÓhÐnoÐoûð	püò*s;   žD ÁD& ÂEÂ8EÄ
D#ÄDÄD#Ä&
EÄ0E Å E)TFFF)F)FT)+Ú
exceptionsr   Útypesr   Úrfc_constantsr   r   r   r   r	   r
   r   r   r   r   r   r   r   rˆ   r"   r¾   rÝ   Útypingr   r   r   r   rG   rH   rU   Úintr_   r4   ro   r�   rM   rŠ   r±   r³   rÌ   rÙ   rÛ   rç   rs   r.   r+   Ú<module>rí      s¼  ðÝ (Ý !÷\÷ \÷ \õ \ó 
Û Û Û ß 4Ó 4ðxG�sð xG˜u X¨c¡]°C¸¸dÐ%BÑCô xGðv2˜Cð 2¨ð 2°ô 2ð"˜cð " cô "ô" 	ô ð bgØNSñ^_ Sð ^_¸$ð ^_ÐZ^ð ^_Ø15ð^_ØGKð^_ØXqõ^_ñB1h˜#ð 1h¨Dð 1h¸Tõ 1hðhm˜#ð m¨Cð m¸Cð mÈdð mÐW[ô mð&˜3ð  4ô ô< ô ñ
D sð D¸dð DÐbfð Dð  sMõ DðN<O Nð <O°tô <Oô~ Iô ð
9m°#ð 9mÐ:Wõ 9mr.   