Ë
    KæõiÙ¿  ã                   óP	  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlmZ dZdZdZdZd	Zd
Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z G d„ d«      Z  G d„ de«      Z! G d„ de
«      Z"e!jG                  d¬«       G d „ d!e"«      «       Z$ G d"„ d#e«      Z% G d$„ d%e
«      Z&e!jG                  d¬«       G d&„ d'e&«      «       Z'e!jG                  d(¬)«       G d*„ d+e&«      «       Z(e!jG                  d,¬)«       G d-„ d.e&«      «       Z)e!jG                  d/¬)«       G d0„ d1e&«      «       Z*e!jG                  d2¬)«       G d3„ d4e&«      «       Z+e!jG                  d5¬«       G d6„ d7e&«      «       Z,e!jG                  d8¬«       G d9„ d:e&«      «       Z-e!jG                  d;¬)«       G d<„ d=e&«      «       Z.e!jG                  d>¬)«       G d?„ d@e&«      «       Z/e!jG                  dA¬)«      e!jG                  dB¬)«       G dC„ dDe&«      «       «       Z0e!jG                  dE¬«       G dF„ dGe&«      «       Z1e!jG                  dH¬«       G dI„ dJe&«      «       Z2e!jG                  dK¬«       G dL„ dMe&«      «       Z3e!jG                  dK¬«       G dN„ dOe&«      «       Z4e!jG                  dP¬«       G dQ„ dRe&«      «       Z5e!jG                  e¬S«       G dT„ dUe&«      «       Z6e!jG                  dV¬«       G dW„ dXe&«      «       Z7e!jG                  dY¬«       G dZ„ d[e&«      «       Z8e!jG                  d\¬«       G d]„ d^e&«      «       Z9e!jG                  d_¬«       G d`„ dae&«      «       Z:e!jG                  db¬«      e!jG                  dc¬«       G dd„ dee&«      «       «       Z;e!jG                  df¬«       G dg„ dhe&«      «       Z<e!jG                  di¬«       G dj„ dke&«      «       Z= G dl„ dme&«      Z>e!jG                  dn¬«       G do„ dpe>«      «       Z?e!jG                  dq¬«       G dr„ dse>«      «       Z@e!jG                  dt¬«       G du„ dve>«      «       ZAe!jG                  dw¬«       G dx„ dye>«      «       ZBe!jG                  dz¬«       G d{„ d|e>«      «       ZCe!jG                  d}¬«       G d~„ de>«      «       ZDe!jG                  d€¬«       G d�„ d‚e>«      «       ZEy)ƒé    N)Úcontextmanager)Ú
NormalizerÚNormalizerConfigÚIssueÚRule)Ú_get_token_collection)Úif_stmtÚ
while_stmtÚfor_stmtÚtry_stmtÚ	with_stmt)Útestlist_star_exprÚtestlist_compÚexprlisté   éd   )Únested_scopesÚ
generatorsÚdivisionÚabsolute_importÚwith_statementÚprint_functionÚunicode_literalsÚgenerator_stop)Úcomp_forÚsync_comp_forc                 ó(  — | j                   }|dk(  ry|dk(  rót        | «      }| j                  d d \  }}|�|S |j                   dk(  r2|dk  ry|j                  d   d	k(  s|j                  d
   dk(  r|dk  ryyy|dk(  r:|dk(  s4t        | j                  «      dk(  r| j                  d   j                   dk(  ry|dk(  rt	        t        | «      |¬«      S |dk(  ry|dk(  r|dk(  r|dk  ryy|dk(  rt        | j                  «      dkD  ry|S |dk(  r*d| j                  v ry|dk  ryt        | j                  «      S |dk(  r| j                  dk(  r|dk  ryy |d!k(  ry!|d"v ry|d#k(  ry|d$k(  ry%|d&v ry| j                  d
   d'k(  ry(| j                  d)   j                   d*k(  rH| j                  d)   }|j                  d
   dk(  ry+|j                  d
   dk(  ry,|j                  d
   d-k(  ry.|S d/|v rd0|vsd1|v s|d2v r|dk  ryy3|d0k(  ry4|d5k(  ry|d6k(  ry7|S )8NÚlambdefÚlambdaÚatomé   Údictorsetmaker©é   é   Úliteralé   Ú:r   ú**©r$   é
   údict displayúdict literalúset displayÚ(Ú)r$   r   Útuple)ÚversionÚ[ÚlistÚ{Ú}ÚkeywordÚyieldúyield expressionÚoperatorú...ÚEllipsisÚellipsisÚ
comparison©ÚstringÚnumberÚstringsÚ
yield_exprÚtestúconditional expression©Ú	atom_exprÚpowerÚawaitúawait expressionéÿÿÿÿÚtrailerúfunction callÚ	subscriptÚ.Ú	attributeÚexprÚ	star_exprÚ_test©ÚtermÚfactorÚ
expressionÚstarredr   Úfstringúf-string expression)ÚtypeÚ_get_comprehension_typeÚchildrenÚlenÚ_get_rhs_nameÚ_remove_parensÚvalueÚstr)Únoder2   Útype_ÚcomprehensionÚfirstÚsecondrL   s          úd/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/parso/python/errors.pyr_   r_      sŠ  € Ø�I‰I€EØ�	ÒØØ	�&ŠÜ/°Ó5ˆØŸ™ b qÐ)‰ˆˆvØÐ$Ø Ð Ø�[‰[Ð,Ò,Ø˜ÒØ à—?‘? 1Ñ%¨Ò,°·±ÀÑ0BÀdÒ0JØ Ò(Ø-à-à(à�SŠLØ˜3’Ü˜Ÿ™Ó'¨1Ò,°·±¸qÑ1A×1FÑ1FÈ/Ò1YàØ�cŠ\Ü ¤°Ó!5¸wÔGÐGØ�cŠ\ØØ�cŠ\˜f¨šmØ˜Ò Ø%à%Ø�cŠ\œc $§-¡-Ó0°1Ò4Ø ð^ €Lð] 
�)Ò	Ø�d—j‘jÑ Ø%Ø�VÒØä�t—z‘z“?Ð"Ø	�*Ò	 §¡¨uÒ!4Ø�WÒØàØ	�,Ò	ØØ	Ð1Ñ	1ØØ	�,Ò	Ø!Ø	�&ŠØ'Ø	Ð(Ñ	(Ø�=‰=˜Ñ˜wÒ&Ø%Ø�]‰]˜2Ñ×#Ñ# yÒ0Ø—m‘m BÑ'ˆGØ×Ñ Ñ" cÒ)Ø&Ø×!Ñ! !Ñ$¨Ò+Ø"Ø×!Ñ! !Ñ$¨Ò+Ø"ð  €Lð 
�5‰˜[°Ñ5Ø�eÑØÐ&Ñ&à�WÒØàØ	�+Ò	ØØ	Ð&Ò	&ØØ	�)Ò	Ø$Ø€Ló    c              #   óª   K  — | j                   D ]@  }|j                  dk(  r+|j                   D ]  }|j                  dk(  s|dk(  rŒ|–— Œ Œ=|–— ŒB y­w)zB
    Iterates over all statements and splits up  simple_stmt.
    Úsimple_stmtÚnewlineÚ;N©r]   r[   )ÚscopeÚchildÚchild2s      rh   Ú_iter_stmtsrr   m   sQ   è ø€ ð —”ˆØ�:‰:˜Ò&ØŸ.œ.�Ø—;‘; )Ò+¨v¸ª}ØØ“ñ )ð
 ‹Kñ  ùs   ‚AAc                 ó  — | j                   d d \  }}|j                  dk(  r&|j                   d   j                  t        v r|dk(  ryy|j                  dk(  r3|j                   d   j                  t        v r|j                   d   d	k(  ry
yy )Nr!   r   r'   r3   zlist comprehensionzgenerator expressionr"   rK   r(   zdict comprehensionzset comprehension©r]   r[   Ú_COMP_FOR_TYPES)r    rf   rg   s      rh   r\   r\   {   s‚   € Ø—M‘M " 1Ð%�M€Eˆ6Ø‡{�{�oÒ%¨&¯/©/¸!Ñ*<×*AÑ*AÄ_Ñ*TØ�CŠ<Ø'à)Ø	�‰Ð(Ò	(¨V¯_©_¸RÑ-@×-EÑ-EÌÑ-XØ�?‰?˜1Ñ Ò$Ø'à&Øri   c                 óh   — | j                  «       }|D �cg c]  }|j                  ‘Œ c}dgk(  S c c}w )NÚ
__future__)Úget_from_namesra   )Úimport_fromÚ
from_namesÚns      rh   Ú_is_future_importr|   Š   s5   € ð
 ×+Ñ+Ó-€JÙ'Ó(™Z˜ˆA�G‹G˜ZÑ(¨\¨NÑ:Ð:ùÒ(s   •/c                 óœ   — 	 | j                   }t        |«      dk(  r |d   dk(  rt        | j                   d   «      S | S # t        $ r Y | S w xY w)z_
    Returns the inner part of an expression like `(foo)`. Also removes nested
    parens.
    r$   r   r/   r'   )r]   r^   r`   ÚAttributeError)r    r]   s     rh   r`   r`   “   s]   € ð
4Ø—=‘=ˆô ˆx‹=˜AÒ (¨1¡+°Ò"4Ü! $§-¡-°Ñ"2Ó3Ð3Ø€Køô ò Øð €Kðús   ‚> ¾	AÁ
Ac                 ó”   — | j                   �<| j                   } | j                  dk7  s| j                  d   dk7  r| S | j                   �Œ<y)za
    Returns an ancestor node of an expression, skipping all levels of parens
    bottom-up.
    Nr    r   r/   ©Úparentr[   r]   ©rc   s    rh   Ú_skip_parens_bottom_uprƒ   ¢   sI   € ð
 �+‰+Ð
!Ø�{‰{ˆØ�9‰9˜Ò $§-¡-°Ñ"2°cÒ"9ØˆKð �+‰+Ñ
!ð ri   c                 ó(   — d„ | j                   D «       S )Nc              3   ó^   K  — | ]%  }|j                   d k(  s|j                   dk(  sŒ"|–— Œ' y­w)Úparamr:   N©r[   )Ú.0r{   s     rh   Ú	<genexpr>z_iter_params.<locals>.<genexpr>¯   s)   è ø€ ÐYÑ+�!¨q¯v©v¸Ò/@ÀAÇFÁFÈjÓDXŒAÑ+ùs   ‚#-¦-)r]   )Úparent_nodes    rh   Ú_iter_paramsr‹   ®   s   € ÙY�{×+Ò+ÓYÐYri   c                 ó²   — d}t        | j                  «       «      D ]9  }|j                  dk(  r|sŒd}|| k(  r y|j                  dk(  rt        |«      rŒ9 y y)z@
    Checks if the import is the first statement of a file.
    Fr@   Try   N)rr   Úget_root_noder[   r|   )ry   Úfound_docstringÚstmts      rh   Ú_is_future_import_firstr�   ²   s\   € ð €OÜ˜K×5Ñ5Ó7Ö8ˆØ�9‰9˜Ò ©ØØˆà�;ÒÙØ�9‰9˜Ò%Ô*;¸DÔ*AØÙñ 9ri   c              #   ó´   ‡K  — ˆfd„Š| j                   t        v r(| j                  d d d…   D ]  } ‰|«      E d {  –—†  Œ y  ‰| «      E d {  –—†  y 7 Œ7 Œ­w)Nc              3   ó  •K  — | j                   dk(  rl| j                  d   dk(  rC| j                  d   }|j                   dk(  rt        |«      E d {  –—†  y  ‰|«      E d {  –—†  y | j                  d   dk(  r–— y | –— y 7 Œ27 Œ#­w)Nr    r   r/   r'   r   r3   )r[   r]   Ú!_iter_definition_exprs_from_lists)rp   r   Ú
check_exprs     €rh   r”   z5_iter_definition_exprs_from_lists.<locals>.check_exprÄ   s�   øè ø€ Ø�:‰:˜ÒØ�~‰~˜aÑ  CÒ'Ø %§¡¨qÑ 1�Ø ×%Ñ%¨Ò8Ü@ÀÓO×OÐOØñ  *¨-Ó8×8Ð8ØØ—‘ Ñ" cÒ)Ø#Ò#ØØ‹ð Pøð 9ús$   ƒABÁBÁBÁ"BÁ#"BÂBr!   )r[   Ú_STAR_EXPR_PARENTSr]   )r   rp   r”   s     @rh   r“   r“   Ã   s[   øè ø€ ôð  ‡}�}Ô*Ñ*Ø×&Ñ&¡s¨ sÔ+ˆEÙ! %Ó(×(Ñ(ñ ,ñ ˜hÓ'×'Ñ'ð )øà'ús!   ƒ8A»A¼AÁAÁAÁAc                 ó”   — g }| j                   d dd…   D ]0  }|j                  dv r|t        |«      z  }Œ |j                  |«       Œ2 |S )Néþÿÿÿr!   )r   Útestlist)r]   r[   r“   Úappend)Ú	expr_stmtÚexprsÚlist_s      rh   Ú_get_expr_stmt_definition_exprsr�   Û   sR   € Ø€EØ×#Ñ# E R¨ EÔ*ˆØ�:‰:Ð;Ñ;ØÔ6°uÓ=Ñ=‰Eà�L‰L˜Õð	 +ð
 €Lri   c                 óH   — | j                   d   }t        t        |«      «      S ©Nr'   )r]   r4   r“   )r   r   s     rh   Ú_get_for_stmt_definition_exprsr    å   s#   € Ø× Ñ  Ñ#€HÜÔ1°(Ó;Ó<Ð<ri   c                 ó@   — | j                   d   j                  t        v S rŸ   rt   )Úarguments    rh   Ú_is_argument_comprehensionr£   ê   s   € Ø×Ñ˜QÑ×$Ñ$¬Ð7Ð7ri   c                 óª   — | dk  s|€y|j                   dk(  rt        d„ |j                  D «       «      S |j                   dk(  ry|j                  d«      S )N©r$   é	   FÚ
error_nodec              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)Úfstring_startNr‡   )rˆ   rp   s     rh   r‰   z%_any_fstring_error.<locals>.<genexpr>ò   s   è ø€ ÐL¹m°U�5—:‘: Õ0¹mùs   ‚rY   T)r[   Úanyr]   Úsearch_ancestor)r2   rc   s     rh   Ú_any_fstring_errorr¬   î   sR   € Ø�Ò˜4˜<ØØ‡y�y�LÒ ÜÑL¸d¿mºmÓLÓLÐLØ	�‰�iÒ	Øà×#Ñ# IÓ.Ð.ri   c                   óN   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Ze	d„ «       Z
d	„ Zd
„ Zy)Ú_ContextNc                 ó‚   — || _         g | _        || _        i | _        g | _        g | _        g | _        g | _        || _        y ©N)	rc   ÚblocksÚparent_contextÚ_used_name_dictÚ_global_namesÚ_local_params_namesÚ_nonlocal_namesÚ_nonlocal_names_in_subscopesÚ_add_syntax_error)Úselfrc   Úadd_syntax_errorr²   s       rh   Ú__init__z_Context.__init__ú   sH   € ØˆŒ	ØˆŒØ,ˆÔØ!ˆÔØˆÔØ#%ˆÔ Ø!ˆÔØ,.ˆÔ)Ø!1ˆÕri   c                 ój   — | j                  «       xr" | j                  j                  j                  dv S )N)Úasync_funcdefÚ
async_stmt)Úis_functionrc   r�   r[   ©r¹   s    rh   Úis_async_funcdefz_Context.is_async_funcdef  s5   € ð ×ÑÓ!ò IØ—	‘	× Ñ ×%Ñ%Ð)HÐHð	Iri   c                 ó4   — | j                   j                  dk(  S )NÚfuncdef)rc   r[   rÀ   s    rh   r¿   z_Context.is_function  s   € Ø�y‰y�~‰~ Ñ*Ð*ri   c                 óê  — |j                   j                  }|dk(  ry |dk(  r| j                  j                  |«       y |dk(  r| j                  j                  |«       y |dk(  rV| j
                  j                  |j                   j                  «       D �cg c]  }|j                  j                  ‘Œ c}«       y | j                  j                  |j                  g «      j                  |«       y c c}w )NrL   Úglobal_stmtÚnonlocal_stmtrÃ   )r�   r[   r´   r™   r¶   rµ   ÚextendÚ
get_paramsÚnamera   r³   Ú
setdefault)r¹   rÉ   Úparent_typer†   s       rh   Úadd_namez_Context.add_name  sÈ   € Ø—k‘k×&Ñ&ˆØ˜)Ò#àà˜-Ò'Ø×Ñ×%Ñ% dÕ+Ø˜OÒ+Ø× Ñ ×'Ñ'¨Õ-Ø˜IÒ%Ø×$Ñ$×+Ñ+Ø/3¯{©{×/EÑ/EÔ/GÓHÑ/G e�—‘×!Ó!Ð/GÑHõð × Ñ ×+Ñ+¨D¯J©J¸Ó;×BÑBÀ4ÕHùò Is   ÂC0c                 óö  — | j                  | j                  d«       | j                  | j                  d«       | j                  D �ci c]  }|j                  |“Œ }}| j                  D ]Q  }	 ||j                     }d|j                  z  }|j
                  |j
                  k  r|}n|}| j                  ||«       ŒS g }| j                  D ]‰  }|j                  }|| j                  v rŒ||v s| j                  €"d|j                  z  }| j                  ||«       ŒP| j                  «       r|j                  | j                  vsŒy|j                  |«       Œ‹ | j                  |z   S c c}w # t        $ r Y �Œw xY w)zV
        Returns a list of nonlocal names that need to be part of that scope.
        ÚglobalÚnonlocalz name '%s' is nonlocal and globalz"no binding for nonlocal '%s' found)Ú_analyze_namesr´   r¶   ra   ÚKeyErrorÚ	start_posr¸   r·   rµ   r²   r¿   r³   r™   )	r¹   r{   Úglobal_name_strsÚnonlocal_nameÚglobal_nameÚmessageÚ
error_nameÚnonlocals_not_handledÚsearchs	            rh   Úfinalizez_Context.finalize  s~  € ð 	×Ñ˜D×.Ñ.°Ô9Ø×Ñ˜D×0Ñ0°*Ô=à04×0BÒ0BÓCÑ0B¨1˜AŸG™G Q™JÐ0BÐÐCØ!×1Ô1ˆMðØ.¨}×/BÑ/BÑC�ð 9¸;×;LÑ;LÑLˆGØ×$Ñ$ }×'>Ñ'>Ò>Ø(‘
à*�
Ø×"Ñ" :¨wÕ7ð 2ð !#ÐØ!×>Ô>ˆMØ"×(Ñ(ˆFØ˜×1Ñ1Ñ1ØØÐ)Ñ)¨T×-@Ñ-@Ð-HØ>À×ATÑATÑT�Ø×&Ñ& }°gÕ>Ø×%Ñ%Ô'Ø!×'Ñ'¨t×/CÑ/CÒCØ%×,Ñ,¨]Õ;ð ?ð ×#Ñ#Ð&;Ñ;Ð;ùò3 Døô ò Úðús   ÁE&Á-E+Å+	E8Å7E8c                 ó¨  ‡ ‡‡
— ˆ
ˆ ˆfd„}g }‰ j                   j                  dk(  r‰ j                   j                  «       }|D �]  Š
d}t        ‰ j                  j                  ‰
j                  g «      «      D ]¢  }|j                  ‰
j                  kD  rd}|j                  }|j                  dk(  r|j                  |k(  rŒI|j                  «       r<|j                  dk(  r*|j                  d   j                  dk(  r|r|Š
 |d	«        nd
}nd}|rŒš ||«        n |D ]/  }	|	j                  j                  ‰
j                  k(  sŒ' |d«      f Œ1 �Œ y )Nc                 óH   •— ‰j                  ‰| ‰j                  ‰fz  «       y r°   )r¸   ra   )rÖ   Ú	base_namer¹   rd   s    €€€rh   Úraise_z'_Context._analyze_names.<locals>.raise_B  s!   ø€ Ø×"Ñ" 9¨g¸¿¹È%Ð8PÑ.PÕQri   rÃ   FTr†   rš   r'   Ú	annassignzannotated name '%s' can't be %sz.name '%s' is assigned to before %s declarationz)name '%s' is used prior to %s declarationzname '%s' is parameter and %s)rc   r[   rÈ   Úreversedr³   Úgetra   rÒ   r�   rÉ   Úis_definitionr]   )r¹   Úglobals_or_nonlocalsrd   rÞ   ÚparamsÚfound_global_or_nonlocalrÉ   r�   rÖ   r†   rÝ   s   ` `       @rh   rÐ   z_Context._analyze_namesA  s1  ú€ ö	Rð ˆØ�9‰9�>‰>˜YÒ&Ø—Y‘Y×)Ñ)Ó+ˆFä-ˆIØ',Ð$ä  ×!5Ñ!5×!9Ñ!9¸)¿/¹/È2Ó!NÖO�Ø—>‘> I×$7Ñ$7Ò7à/3Ð,àŸ™�Ø—;‘; 'Ò)¨f¯k©k¸TÒ.Að à×%Ñ%Ô'Ø—{‘{ kÒ1Ø &§¡°Ñ 2× 7Ñ 7¸;Ò FÙ3ð )-˜IÙÐ@ÔAÙà"R™àI�Gâ/Ù˜7”Oáð9 Pó<  �Ø—:‘:×#Ñ# y§¡Ó6ÙÐ:Ó;Ò<ò  ñC .ri   c              #   ó~   K  — | j                   j                  |«       d –— | j                   j                  «        y ­wr°   )r±   r™   Úpop©r¹   rc   s     rh   Ú	add_blockz_Context.add_blockn  s)   è ø€ à�‰×Ñ˜4Ô ÛØ�‰�‰Õùs   ‚;=c                 ó2   — t        || j                  | ¬«      S )N)r²   )r®   r¸   rè   s     rh   Úadd_contextz_Context.add_contextt  s   € Ü˜˜d×4Ñ4ÀTÔJÐJri   c                 óJ   — | xj                   |j                  «       z  c_         y r°   )r·   rÚ   )r¹   Úchild_contexts     rh   Úclose_child_contextz_Context.close_child_contextw  s   € Ø×)Ò)¨]×-CÑ-CÓ-EÑEÖ)ri   r°   )Ú__name__Ú
__module__Ú__qualname__r»   rÁ   r¿   rÌ   rÚ   rÐ   r   ré   rë   rî   © ri   rh   r®   r®   ù   sD   „ ó	2òIò+òIò" <òD+=ðZ ñó ðò
KóFri   r®   c                   ód   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ fd„Zed„ «       Zˆ fd„Z	d„ Z
d„ Zd	„ Zd
„ Zˆ xZS )ÚErrorFinderz1
    Searches for errors in the syntax tree.
    c                 óh   •— t        ‰| �  |i |¤Ž i | _        | j                  j                  | _        y r°   )Úsuperr»   Ú_error_dictÚgrammarÚversion_infor2   )r¹   ÚargsÚkwargsÚ	__class__s      €rh   r»   zErrorFinder.__init__  s.   ø€ Ü‰Ñ˜$Ð) &Ò)ØˆÔØ—|‘|×0Ñ0ˆ�ri   c                 ól   ‡ ‡— ˆˆ fd„Š ‰|«      xs t        |‰ j                  «      ‰ _        d‰ _        y )Nc                 ó|   •— | €y  ‰| j                   «      }| j                  dv rt        | ‰j                  |«      S |S )N)ÚclassdefrÃ   Ú
file_input)r�   r[   r®   r¸   )rc   r²   Úcreate_contextr¹   s     €€rh   r  z.ErrorFinder.initialize.<locals>.create_context…  sA   ø€ Øˆ|Øá+¨D¯K©KÓ8ˆNØ�y‰yÐAÑAÜ  d×&<Ñ&<¸nÓMÐMØ!Ð!ri   r   )r®   r¸   ÚcontextÚ_indentation_count)r¹   rc   r  s   ` @rh   Ú
initializezErrorFinder.initialize„  s0   ù€ õ	"ñ & dÓ+ÒU¬x¸¸d×>TÑ>TÓ/UˆŒØ"#ˆÕri   c                 ó�   •— |j                   dk(  r| j                  |«      5  	 d d d «       yt        ‰| �  |«      S # 1 sw Y   ŒxY w)Nr§   Ú )r[   Ú
visit_noderö   Úvisit)r¹   rc   rü   s     €rh   r  zErrorFinder.visit‘  sB   ø€ Ø�9‰9˜Ò$Ø—‘ Õ&ð ÷	 'Ð&ô
 ‰w‰}˜TÓ"Ð"÷ 'Ð&ús	   ¢<¼Ac              #   ó¸  K  — | j                  |«       |j                  t        v ra| j                  j	                  |«      5  t        | j                  j                  «      t        k(  r| j                  |d«       d –— d d d «       y |j                  dk(  rG| xj                  dz  c_	        | j                  t        k(  r| j                  |j                  d   d«       d –— |j                  dk(  r| xj                  dz  c_	        y |j                  dv r9| j                  }|j                  | _        | j                  j                  |«       y y # 1 sw Y   y xY w­w)Nz!too many statically nested blocksÚsuiter'   ztoo many levels of indentation©rÿ   rÃ   )Ú_check_type_rulesr[   Ú_BLOCK_STMTSr  ré   r^   r±   Ú_MAX_BLOCK_SIZEr¸   r  Ú_MAX_INDENT_COUNTÚ_add_indentation_errorr]   r²   rî   )r¹   rc   r  s      rh   r  zErrorFinder.visit_nodeš  s  è ø€ à×Ñ˜tÔ$à�9‰9œÑ$Ø—‘×'Ñ'¨Õ-Ü�t—|‘|×*Ñ*Ó+¬Ò>Ø×*Ñ*¨4Ð1TÔUÛ÷ .ð Ø�Y‰Y˜'Ò!Ø×#Ò# qÑ(Õ#Ø×&Ñ&Ô*;Ò;Ø×+Ñ+¨D¯M©M¸!Ñ,<Ð>^Ô_ãà�9‰9˜ÒØ×#Ò# qÑ(Ö#Ø�Y‰YÐ1Ñ1Ø—l‘lˆGØ"×1Ñ1ˆDŒLØ�L‰L×,Ñ,¨WÕ5ð 2÷ .ð üs   ‚?EÁ=EÁ>CEÅEÅEc                 ó   •— |j                   dk(  �r|j                  dv rQt        |j                  «       j	                  «       «      d   }|j                  dk(  rd}nd}| j                  ||«       y|j                  j                  d«      rd}n†t        j                  d	|j                  «      }|€Bd
}| j                  dk\  rS|j                  t        | j                  «      j                  v r(d|z   }n"t        |j                  d«      «      dk(  rd}nd}| j                  ||«       y|j                  dk(  r:|j                   }|j                   dv r | j"                  j%                  |«      | _        t&        ‰| �Q  |«      S )NÚ
error_leaf)ÚINDENTÚERROR_DEDENTrK   r  zunexpected indentz3unindent does not match any outer indentation levelÚ\z6unexpected character after line continuation characterz\w{,2}("{1,3}|'{1,3})úinvalid syntaxr¥   ú
f-string: r'   z!EOL while scanning string literalz/EOF while scanning triple-quoted string literalr  r(   r  )r[   Ú
token_typer4   Úget_next_leafÚ_split_prefixr  ra   Ú
startswithÚreÚmatchr2   r   Úalways_break_tokensr^   Úgroupr¸   r�   r  rë   rö   Ú
visit_leaf)r¹   ÚleafÚspacingrÖ   r  r�   rü   s         €rh   r   zErrorFinder.visit_leaf²  sW  ø€ Ø�9‰9˜Ó$Ø�‰Ð"<Ñ<ô ˜t×1Ñ1Ó3×AÑAÓCÓDÀRÑH�Ø—?‘? hÒ.Ø1‘GàS�GØ×+Ñ+¨G°WÔ=ð* ð' —:‘:×(Ñ(¨Ô.ØV‘GäŸH™HÐ%>ÀÇ
Á
ÓK�EØ�}Ø"2˜à ŸL™L¨FÒ2Ø $§
¡
Ô.CØ $§¡ó/ç1Ñ1ñ!2ð '3°WÑ&<™Gä˜uŸ{™{¨1›~Ó.°!Ò3Ø&I™Gà&W˜GØ×&Ñ& t¨WÔ5ØØ�Z‰Z˜3ÒØ—[‘[ˆFØ�{‰{Ð5Ñ5Ø#Ÿ|™|×7Ñ7¸Ó?�”ô ‰wÑ! $Ó'Ð'ri   c                 ó0   — | j                  |dd|z   «       y )Né‡  úIndentationError: ©Ú	add_issue)r¹   r"  rÖ   s      rh   r  z"ErrorFinder._add_indentation_errorÛ  s   € Ø�‰�w Ð%9¸GÑ%CÕDri   c                 ó0   — | j                  |dd|z   «       y )Né…  úSyntaxError: r&  )r¹   rc   rÖ   s      rh   r¸   zErrorFinder._add_syntax_errorÞ  s   € Ø�‰�t˜S /°GÑ";Õ<ri   c                 ód   — |j                   d   }|||f}| j                  j                  ||«       y )Nr   )rÒ   r÷   rÊ   )r¹   rc   ÚcoderÖ   Úlinerú   s         rh   r'  zErrorFinder.add_issueá  s4   € ð �~‰~˜aÑ ˆØ�g˜tÐ$ˆØ×Ñ×#Ñ# D¨$Õ/ri   c                 óÊ   — | j                   j                  «        | j                  j                  «       D ],  \  }}}| j                  j                  t        |||«      «       Œ. y r°   )r  rÚ   r÷   ÚvaluesÚissuesr™   r   )r¹   r,  rÖ   rc   s       rh   rÚ   zErrorFinder.finalizeè  sM   € Ø�‰×ÑÔà#'×#3Ñ#3×#:Ñ#:Ö#<ÑˆD�'˜4Ø�K‰K×Ñœu T¨4°Ó9Õ:ñ $=ri   )rï   rð   rñ   Ú__doc__r»   r  r  r   r  r   r  r¸   r'  rÚ   Ú__classcell__©rü   s   @rh   rô   rô   {  sF   ø„ ñô1ò
$ô#ð ñ6ó ð6ô.'(òREò=ò0ö;ri   rô   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚIndentationRuler$  c                 ó.   •— t         ‰| �  ||«      }d|z   S )Nr%  )rö   Ú_get_message©r¹   rÖ   rc   rü   s      €rh   r7  zIndentationRule._get_messageò  s   ø€ Ü‘'Ñ& w°Ó5ˆØ# gÑ-Ð-ri   ©rï   rð   rñ   r,  r7  r2  r3  s   @rh   r5  r5  ï  s   ø„ Ø€D÷.ð .ri   r5  r§   r‡   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú_ExpectIndentedBlockzexpected an indented blockc                 óZ   — |j                  «       }t        |j                  «       «      d   S )NrK   )r  r4   r  )r¹   rc   r!  s      rh   Úget_nodez_ExpectIndentedBlock.get_nodeû  s)   € Ø×!Ñ!Ó#ˆÜ�D×&Ñ&Ó(Ó)¨"Ñ-Ð-ri   c                 ó:   — |j                   d   j                  dk(  S )NrK   rl   rn   rè   s     rh   Úis_issuez_ExpectIndentedBlock.is_issueÿ  s   € à�}‰}˜RÑ ×%Ñ%¨Ñ2Ð2ri   N©rï   rð   rñ   rÖ   r=  r?  rò   ri   rh   r;  r;  ÷  s   „ à*€Gò.ó3ri   r;  c                   ó   — e Zd ZeZy)ÚErrorFinderConfigN)rï   rð   rñ   rô   Únormalizer_classrò   ri   rh   rB  rB    s   „ Ø"Ñri   rB  c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )Ú
SyntaxRuler)  c                 ó€   •— t         ‰| �  ||«      }d|vr%t        | j                  j                  |«      rd|z   }d|z   S )Nzf-stringr  r*  )rö   r7  r¬   Ú_normalizerr2   r8  s      €rh   r7  zSyntaxRule._get_message  sG   ø€ Ü‘'Ñ& w°Ó5ˆà˜gÑ%Ü" 4×#3Ñ#3×#;Ñ#;¸TÔBà" WÑ,ˆGØ Ñ(Ð(ri   r9  r3  s   @rh   rE  rE    s   ø„ Ø€D÷)ð )ri   rE  c                   ó    — e Zd ZdZdZd„ Zd„ Zy)Ú_InvalidSyntaxRuler  zf-string: invalid syntaxc                 ó"   — |j                  «       S r°   )r  rè   s     rh   r=  z_InvalidSyntaxRule.get_node  s   € Ø×!Ñ!Ó#Ð#ri   c                 óÀ   — |j                  «       j                  dk7  }|r>t        | j                  j                  |«      r| j                  || j                  ¬«       y |S )Nr  ©rÖ   )r  r[   r¬   rG  r2   r'  Úfstring_message)r¹   rc   Úerrors      rh   r?  z_InvalidSyntaxRule.is_issue  sQ   € Ø×"Ñ"Ó$×)Ñ)¨\Ñ9ˆáÜ" 4×#3Ñ#3×#;Ñ#;¸TÔBà�N‰N˜4¨×)=Ñ)=ˆNÕ>ð ˆLri   N)rï   rð   rñ   rÖ   rM  r=  r?  rò   ri   rh   rI  rI    s   „ à€GØ0€Oò$ó	ri   rI  rI   )ra   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú_AwaitOutsideAsyncz'await' outside async functionc                 óL   — | j                   j                  j                  «        S r°   )rG  r  rÁ   ©r¹   r!  s     rh   r?  z_AwaitOutsideAsync.is_issue-  s    € Ø×#Ñ#×+Ñ+×<Ñ<Ó>Ð>Ð>ri   c                 ó   — |j                   S r°   ©r�   rè   s     rh   Úget_error_nodez!_AwaitOutsideAsync.get_error_node0  s   € à�{‰{Ðri   N)rï   rð   rñ   rÖ   r?  rU  rò   ri   rh   rP  rP  )  s   „ à.€Gò?óri   rP  Úbreakc                   ó   — e Zd ZdZd„ Zy)Ú_BreakOutsideLoopz'break' outside loopc                 óx   — d}| j                   j                  j                  D ]  }|j                  dv sŒd}Œ | S )NF©r   r
   T)rG  r  r±   r[   )r¹   r!  Úin_loopÚblocks       rh   r?  z_BreakOutsideLoop.is_issue9  s?   € ØˆØ×%Ñ%×-Ñ-×4Ô4ˆEØ�z‰zÐ7Ò7Ø‘ð 5ð ˆ{Ðri   N©rï   rð   rñ   rÖ   r?  rò   ri   rh   rX  rX  5  s   „ à$€Góri   rX  Úcontinuec                   ó   — e Zd ZdZdZd„ Zy)Ú_ContinueChecksz'continue' not properly in loopz0'continue' not supported inside 'finally' clausec                 óf  — d}| j                   j                  j                  D ]‰  }|j                  dv rd}|j                  dk(  sŒ#|j                  d   }|dk(  sŒ8|j
                  |j
                  kD  sŒR| j                   j                  dk  sŒl| j                  || j                  ¬«        y |syy )	NFrZ  Tr   éýÿÿÿÚfinallyr#   rL  )	rG  r  r±   r[   r]   rÒ   r2   r'  Úmessage_in_finally)r¹   r!  r[  r\  Ú
last_blocks        rh   r?  z_ContinueChecks.is_issueF  s£   € ØˆØ×%Ñ%×-Ñ-×4Ô4ˆEØ�z‰zÐ7Ñ7Ø�Ø�z‰z˜ZÓ'Ø"Ÿ^™^¨BÑ/�
à )Ó+ØŸ™¨×)=Ñ)=Ó=Ø×(Ñ(×0Ñ0°6Ó9à—N‘N 4°×1HÑ1H�NÔIÙ ð 5ñ Øð ri   N)rï   rð   rñ   rÖ   rd  r?  rò   ri   rh   r`  r`  A  s   „ à/€GØKÐóri   r`  Úfromc                   ó   — e Zd ZdZd„ Zd„ Zy)Ú_YieldFromCheckz"'yield from' inside async functionc                 ó.   — |j                   j                   S r°   rT  rR  s     rh   r=  z_YieldFromCheck.get_node\  s   € Ø�{‰{×!Ñ!Ð!ri   c                 ó€   — |j                   j                  dk(  xr$ | j                  j                  j	                  «       S )NÚ	yield_arg)r�   r[   rG  r  rÁ   rR  s     rh   r?  z_YieldFromCheck.is_issue_  s6   € Ø�{‰{×Ñ ;Ñ.ò <Ø× Ñ ×(Ñ(×9Ñ9Ó;ð	<ri   Nr@  rò   ri   rh   rh  rh  X  s   „ à2€Gò"ó<ri   rh  rÉ   c                   ó   — e Zd ZdZdZd„ Zy)Ú_NameCheckszcannot assign to __debug__zcannot assign to Nonec                 ó�   — | j                   j                  j                  |«       |j                  dk(  r|j	                  «       ryy y )NÚ	__debug__T)rG  r  rÌ   ra   râ   rR  s     rh   r?  z_NameChecks.is_issuei  s>   € Ø×Ñ× Ñ ×)Ñ)¨$Ô/à�:‰:˜Ò$¨×);Ñ);Ô)=Øð *>Ð$ri   N)rï   rð   rñ   rÖ   Úmessage_noner?  rò   ri   rh   rm  rm  d  s   „ à*€GØ*€Lóri   rm  r@   c                   ó@   — e Zd Zej                  dk  rdZd„ ZydZd„ Zy)Ú_StringChecksr*   z0bytes can only contain ASCII literal characters.z/bytes can only contain ASCII literal charactersc                 óh  — |j                   j                  «       }d|v rt        d„ |j                  D «       «      ryd|vr‚|j	                  «       }d|v r"|j                  d«      }t        j                  }nt        j                  }	 t        j                  «       5  t        j                  d«        ||«       d d d «       y y # 1 sw Y   y xY w# t        $ r)}| j                  |dt        |«      z   ¬«       Y d }~y d }~wt        $ r)}| j                  |d	t        |«      z   ¬«       Y d }~y d }~ww xY w)
NÚbc              3   ó>   K  — | ]  }t        |«      d kD  sŒ|–— Œ y­w)é   N)Úord)rˆ   Úcs     rh   r‰   z)_StringChecks.is_issue.<locals>.<genexpr>z  s   è ø€ Ð>¡:˜a´°Q³¸#³œ¡:ùs   ‚–TÚrzutf-8Úignorez(unicode error) rL  z(value error) )Ústring_prefixÚlowerrª   ra   Ú_get_payloadÚencodeÚcodecsÚescape_decodeÚunicode_escape_decodeÚwarningsÚcatch_warningsÚfilterwarningsÚUnicodeDecodeErrorr'  rb   Ú
ValueError)r¹   r!  r{  ÚpayloadÚfuncÚes         rh   r?  z_StringChecks.is_issuew  s  € Ø×*Ñ*×0Ñ0Ó2ˆØ�-ÑÜÑ> 4§:¢:Ó>Ô>àà�mÑ#ð ×'Ñ'Ó)ˆGØ�mÑ#Ø!Ÿ.™.¨Ó1�Ü×+Ñ+‘ä×3Ñ3�ðHÜ×,Ñ,Õ.ä×+Ñ+¨HÔ5Ù˜”M÷ /Ð.ð $÷ /Ð.ûô &ò JØ—‘˜tÐ-?Ä#ÀaÃ&Ñ-H�×IÑIûÜò HØ—‘˜tÐ-=ÄÀAÃÑ-F�×GÑGûðHúsB   ÂC ÂCÂ9C ÃCÃC ÃC Ã	D1ÃC<Ã<D1ÄD,Ä,D1N)rï   rð   rñ   Úsysrù   rÖ   r?  rò   ri   rh   rr  rr  p  s)   „ à
×Ñ˜'Ò!ØDˆóHð DˆóHri   rr  Ú*c                   ó   — e Zd ZdZd„ Zy)Ú
_StarCheckz"named arguments must follow bare *c                 óú   — |j                   }|j                  dk(  r[|rX|j                  |j                  j                  |«      dz   d  }|D �cg c]  }|dvr|j                  s|‘Œ }}t        |«      dk(  S y y c c}w )NÚ
parametersr'   )Ú,r0   r   )r�   r[   r]   ÚindexÚ
star_countr^   )r¹   r!  rä   Úafterrp   s        rh   r?  z_StarCheck.is_issue˜  s‡   € Ø—‘ˆØ�;‰;˜,Ò&©6Ø—O‘O F§O¡O×$9Ñ$9¸$Ó$?À!Ñ$CÐ$DÐEˆEÙ(-ó J©˜uØ ZÑ/¸×8HÒ8Hò ¨ˆEð Jä�u“: ‘?Ð"ð	 ,2Ð&ùòJs   ÁA8Nr]  rò   ri   rh   r�  r�  ”  s   „ à2€Gó#ri   r�  r)   c                   ó   — e Zd ZdZd„ Zy)Ú_StarStarCheckz3dict unpacking cannot be used in dict comprehensionc                 ó¢   — |j                   j                  dk(  r6|j                  «       j                  «       }|d uxr |j                  t        v S y )Nr"   )r�   r[   Úget_next_siblingru   )r¹   r!  r   s      rh   r?  z_StarStarCheck.is_issue¨  sJ   € Ø�;‰;×ÑÐ/Ò/Ø×,Ñ,Ó.×?Ñ?ÓAˆHØ 4Ð'ÒL¨H¯M©M¼_Ð,LÐLð 0ri   Nr]  rò   ri   rh   r•  r•  ¡  s   „ ð
 D€GóMri   r•  r8   Úreturnc                   ó    — e Zd ZdZdZd„ Zd„ Zy)Ú_ReturnAndYieldChecksz&'return' with value in async generatorz'yield' inside async functionc                 ó   — |j                   S r°   rT  rR  s     rh   r=  z_ReturnAndYieldChecks.get_node´  ó   € Ø�{‰{Ðri   c                 óÌ  — | j                   j                  j                  j                  dk7  r0| j	                  | j                  |«      d|j                  z  ¬«       y | j                   j                  j                  «       rct        | j                   j                  j                  j                  «       «      r+|j                  dk(  r|j                  j                  dk(  ryy y y y )NrÃ   z'%s' outside functionrL  r˜  Úreturn_stmtT)rG  r  rc   r[   r'  r=  ra   rÁ   rª   Úiter_yield_exprsr�   rR  s     rh   r?  z_ReturnAndYieldChecks.is_issue·  s·   € Ø×Ñ×#Ñ#×(Ñ(×-Ñ-°Ò:Ø�N‰N˜4Ÿ=™=¨Ó.Ð8OÐRV×R\ÑR\Ñ8\ˆNÕ]Ø×Ñ×%Ñ%×6Ñ6Ô8Ü˜×(Ñ(×0Ñ0×5Ñ5×FÑFÓHÔIØ�z‰z˜XÒ%¨$¯+©+×*:Ñ*:¸mÒ*KØð +LÐ%ð Jð 9ri   N)rï   rð   rñ   rÖ   Úmessage_async_yieldr=  r?  rò   ri   rh   rš  rš  ®  s   „ ð 7€GØ9Ðòóri   rš  rB   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú_BytesAndStringMixz&cannot mix bytes and nonbytes literalsc                 óZ   — |j                   dk(  ryd|j                  j                  «       v S )NrY   Frt  )r[   r{  r|  )r¹   r@   s     rh   Ú_is_bytes_literalz$_BytesAndStringMix._is_bytes_literalÅ  s+   € Ø�;‰;˜)Ò#ØØ�f×*Ñ*×0Ñ0Ó2Ð2Ð2ri   c                 ó˜   — |j                   d   }| j                  |«      }|j                   dd  D ]  }|| j                  |«      k7  sŒ y y )Nr   r'   T)r]   r¤  )r¹   rc   rf   Úfirst_is_bytesr@   s        rh   r?  z_BytesAndStringMix.is_issueÊ  sK   € Ø—‘˜aÑ ˆØ×/Ñ/°Ó6ˆØ—m‘m A BÓ'ˆFØ ×!7Ñ!7¸Ó!?Ó?Ùñ (ri   N)rï   rð   rñ   rÖ   r¤  r?  rò   ri   rh   r¢  r¢  À  s   „ ð 7€Gò3ó
ri   r¢  Úimport_as_namesc                   ó   — e Zd ZdZd„ Zy)Ú_TrailingImportCommaz:trailing comma not allowed without surrounding parenthesesc                 ód   — |j                   d   dk(  r|j                  j                   d   dk7  ryy y )NrK   r�  r0   T)r]   r�   rè   s     rh   r?  z_TrailingImportComma.is_issue×  s5   € Ø�=‰=˜Ñ Ò#¨¯©×(<Ñ(<¸RÑ(@ÀCÒ(GØð )HÐ#ri   Nr]  rò   ri   rh   r©  r©  Ò  s   „ ð K€Góri   r©  ry   c                   ó   — e Zd ZdZd„ Zy)Ú_ImportStarInFunctionz%import * only allowed at module levelc                 ój   — |j                  «       xr" | j                  j                  j                  d uS r°   )Úis_star_importrG  r  r²   rè   s     rh   r?  z_ImportStarInFunction.is_issueà  s.   € Ø×"Ñ"Ó$Ò\¨×)9Ñ)9×)AÑ)A×)PÑ)PÐX\Ð)\Ð\ri   Nr]  rò   ri   rh   r¬  r¬  Ü  s   „ à5€Gó]ri   r¬  c                   ó   — e Zd ZdZd„ Zy)Ú_FutureImportRulez?from __future__ imports must occur at the beginning of the filec                 ó�  — t        |«      r»t        |«      sy|j                  «       D ]›  \  }}|j                  }t	        t
        «      }| j                  j                  dk\  r|j                  d«       |dk(  r| j                  |d¬«       Œd|dk(  rd}| j                  ||¬«       Œ||vsŒ„d	|z  }| j                  ||¬«       Œ� y y )
NT©r$   é   ÚannotationsÚbracesznot a chancerL  Úbarry_as_FLUFLz-Seriously I'm not implementing this :) ~ Davez future feature %s is not defined)
r|   r�   Ú	get_pathsra   r4   ÚALLOWED_FUTURESrG  r2   r™   r'  )r¹   rc   Ú	from_nameÚfuture_namerÉ   Úallowed_futuresÚmrÖ   s           rh   r?  z_FutureImportRule.is_issueè  s¿   € Ü˜TÔ"Ü*¨4Ô0Øà*.¯.©.Ö*:Ñ&�	˜;Ø"×(Ñ(�Ü"&¤Ó"7�Ø×#Ñ#×+Ñ+¨vÒ5Ø#×*Ñ*¨=Ô9Ø˜8Ò#Ø—N‘N 4°�NÕ@ØÐ-Ò-ØG�AØ—N‘N 4°�NÕ3Ø Ò0Ø@À4ÑG�GØ—N‘N 4°�NÕ9ñ +;ð	 #ri   Nr]  rò   ri   rh   r°  r°  ä  s   „ àO€Gó:ri   r°  rR   c                   ó   — e Zd ZdZd„ Zy)Ú_StarExprRulez2iterable unpacking cannot be used in comprehensionc                 óX  — d„ }| j                   j                  dk\  r|j                  }nt        |«      }|j                  g t
        ¢d‘­vr5|j                  dk(  r|j                  d   dk7  s| j                  |d¬«       y  ||«      rA| j                   j                  dk\  r| j                  |d	¬«       y | j                  |d¬«       y |j                  j                  d
k(  rH|j                  j                  d   j                  t        v r| j                  || j                  ¬«       y y y )Nc                 óž   — | j                   �A| j                   } | j                  dk(  ry| j                  g t        ¢d‘­vry| j                   �ŒAy)NÚdel_stmtTr    F)r�   r[   r•   r‚   s    rh   Úcheck_delete_starredz4_StarExprRule.is_issue.<locals>.check_delete_starred  sP   € Ø—+‘+Ð)Ø—{‘{�Ø—9‘9 
Ò*ØØ—9‘9Ð$AÔ&8Ð$A¸&Ñ$AÑAØ ð —+‘+Ñ)ð ri   r¥   r"   r    r   r/   ú!can't use starred expression hererL  zcannot delete starredr   r'   )
rG  r2   r�   rƒ   r[   r•   r]   r'  ru   Úmessage_iterable_unpacking)r¹   rc   rÂ  Úancestors       rh   r?  z_StarExprRule.is_issue   s  € ò	ð ×Ñ×#Ñ# vÒ-Ø—{‘{‰Hä-¨dÓ3ˆHà�=‰=Ð GÔ"4Ð GÐ6FÑ GÑGØ!Ÿ™¨&Ò0°X×5FÑ5FÀqÑ5IÈSÒ5PØ�N‰N˜4Ð)LˆNÔMØá Ô%Ø×Ñ×'Ñ'¨6Ò1Ø—‘˜tÐ-D�ÔEð ð —‘˜tÐ-P�ÔQØà�;‰;×Ñ˜Ò.à�{‰{×#Ñ# AÑ&×+Ñ+¬Ñ>Ø—‘˜t¨T×-LÑ-L�ÕMð ?ð /ri   N)rï   rð   rñ   rÄ  r?  rò   ri   rh   r¾  r¾  ü  s   „ à!UÐóNri   r¾  )Útypesc                   ó   — e Zd Zd„ Zy)Ú_StarExprParentRulec                 ó¸  ‡— ˆfd„Š ‰||j                   «      r·|j                  D �cg c]
  }|dk7  sŒ	|‘Œ }}|D �cg c]  }|j                  dk(  sŒ|‘Œ }}t        |«      dkD  r5| j                  j
                  dk  rd}nd}| j                  |d   |¬«       y |r3|j                  |d	   «      }|d
k\  rd}| j                  |d	   |¬«       y y y y c c}w c c}w )Nc                 óª   •— |€y|j                   }|dk(  ry|dk(  r&| j                  |j                  d   j                  k  S  ‰| |j                  «      S )NFrL   rš   rK   )r[   rÒ   r]   r�   )rc   rÅ  rd   râ   s      €rh   râ   z3_StarExprParentRule.is_issue.<locals>.is_definition$  sY   ø€ ØÐØà—M‘MˆEØ˜	Ò!Øà˜Ò#Ø—~‘~¨×(9Ñ(9¸"Ñ(=×(GÑ(GÑGÐGá   x§¡Ó7Ð7ri   r�  rR   r'   r¥   z%two starred expressions in assignmentz*multiple starred expressions in assignmentrL  r   é   z1too many expressions in star-unpacking assignment)r�   r]   r[   r^   rG  r2   r'  r‘  )r¹   rc   rx  rú   rX   rÖ   Úcountrâ   s          @rh   r?  z_StarExprParentRule.is_issue#  sÝ   ø€ ô	8ñ ˜˜tŸ{™{Ô+Ø#Ÿ}š}Ó9™}˜!°°S³’A˜}ˆDÐ9Ù"&Ó@¡$˜Q¨!¯&©&°KÓ*?’q $ˆGÐ@Ü�7‹|˜aÒØ×#Ñ#×+Ñ+¨fÒ4ØE‘GàJ�GØ—‘˜w q™z°7�Õ;ÙØŸ
™
 7¨1¡:Ó.�Ø˜C’<ØQ�GØ—N‘N 7¨1¡:°w�NÕ?ð  ð ð ,ùÚ9ùÚ@s   ¨
C³C½CÁCN©rï   rð   rñ   r?  rò   ri   rh   rÈ  rÈ  !  s   „ ó@ri   rÈ  rß   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú_AnnotatorRulezillegal target for annotationc                 ó   — |j                   S r°   rT  rè   s     rh   r=  z_AnnotatorRule.get_nodeG  rœ  ri   c                 óÊ  — d }|j                   j                  d   }t        |«      }	 |j                  }d|v s|j                  dk(  r|d   dk(  rd}n|j                  dk(  r
|d   dk(  rd}|d   }|€A|j                  d	k(  s1|j                  d
v r!j                  dk(  r|j                  d   dk7  syy y d}| j                  |j                   ||z  ¬«       y # t        $ r Y Œqw xY w)Nr   r�  r    r/   r1   r3   r4   rK   rÉ   rF   rL   Tz,only single target (not %s) can be annotatedrL  )r�   r]   r`   r[   r~   r'  )r¹   rc   rd   Úlhsr]   rL   rÖ   s          rh   r?  z_AnnotatorRule.is_issueJ  sú   € ØˆØ�k‰k×"Ñ" 1Ñ%ˆÜ˜SÓ!ˆð		#Ø—|‘|ˆHð �h‰ #§(¡(¨fÒ"4¸À!¹ÈÒ9KØ‘Ø—‘˜VÒ#¨°©°sÒ(:Ø�Ø˜r‘lˆGàˆ=Ø—H‘H Ò&à—x‘xÐ#9Ñ9ØŸ™¨	Ò1Ø×(Ñ(¨Ñ+¨sÒ2Øð 3ð	 'ð EˆGØ�N‰N˜3Ÿ:™:¨w¸©ˆNÕ?øô' ò 	Ùð	ús   ¨C Ã	C"Ã!C"Nr@  rò   ri   rh   rÏ  rÏ  A  s   „ ð .€Gòó@ri   rÏ  r¢   c                   ó   — e Zd Zd„ Zy)Ú_ArgumentRulec                 óÜ  — |j                   d   }| j                  j                  dk  rt        |«      }|j                   d   dk(  rn|j                  dk7  r_|j                  dk(  r| j                  j                  dk  rd}n!d}n| j                  j                  dk  rd	}nd}| j                  ||¬
«       t        |«      r.|j                  j                  dk(  r| j                  |d¬
«       y y y )Nr   r#   r'   Ú=rÉ   r   z lambda cannot contain assignmentz=expression cannot contain assignment, perhaps you meant "=="?zkeyword can't be an expressionrL  rÿ   r  )r]   rG  r2   r`   r[   r'  r£   r�   )r¹   rc   rf   rÖ   s       rh   r?  z_ArgumentRule.is_issueh  s×   € Ø—‘˜aÑ ˆØ×Ñ×#Ñ# fÒ,ä" 5Ó)ˆEØ�=‰=˜Ñ˜sÒ" u§z¡z°VÒ';Ø�z‰z˜YÒ&à×#Ñ#×+Ñ+¨fÒ4Ø@‘Gà]‘Gð ×#Ñ#×+Ñ+¨fÒ4Ø>‘Gà]�GØ�N‰N˜5¨'ˆNÔ2ä% dÔ+°·±×0@Ñ0@ÀJÒ0NØ�N‰N˜4Ð)9ˆNÕ:ð 1OÐ+ri   NrÍ  rò   ri   rh   rÔ  rÔ  f  s   „ ó;ri   rÔ  rÆ   c                   ó   — e Zd ZdZd„ Zy)Ú_NonlocalModuleLevelRulez0nonlocal declaration not allowed at module levelc                 óF   — | j                   j                  j                  d u S r°   )rG  r  r²   rè   s     rh   r?  z!_NonlocalModuleLevelRule.is_issue„  s   € Ø×Ñ×'Ñ'×6Ñ6¸$Ð>Ð>ri   Nr]  rò   ri   rh   rØ  rØ  €  s   „ à@€Gó?ri   rØ  Úarglistc                   ó"   — e Zd Zed„ «       Zd„ Zy)Ú_ArglistRulec                 ó8   — | j                   j                  dk  ryy)Nr²  z?Generator expression must be parenthesized if not sole argumentz*Generator expression must be parenthesized)rG  r2   rÀ   s    rh   rÖ   z_ArglistRule.messageŠ  s   € à×Ñ×#Ñ# fÒ,ØTà?ri   c                 ó˜  — t        «       }d}d}|j                  D �],  }|dk(  rŒ
|j                  dk(  râ|j                  d   }t        |«      rt	        |j                  «      dk\  r y|dv r!|dk(  r|sŒYd	}| j                  ||¬
«       Œod}Œrd}|j                  dk(  sŒ„|j                  |v rMd}| j                  j                  dk\  r|dj                  |j                  «      z  }| j                  ||¬
«       Œß|j                  |j                  «       Œû|rd}| j                  ||¬
«       �Œ|s�Œd}| j                  ||¬
«       �Œ/ y )NFr�  r¢   r   r!   T)r‹  r)   r‹  z>iterable argument unpacking follows keyword argument unpackingrL  rÉ   zkeyword argument repeatedr¥   z: {}z6positional argument follows keyword argument unpackingz,positional argument follows keyword argument)Úsetr]   r[   r£   r^   r'  ra   rG  r2   ÚformatÚadd)r¹   rc   Úarg_setÚkw_onlyÚkw_unpacking_onlyr¢   rf   rÖ   s           rh   r?  z_ArglistRule.is_issue‘  s2  € Ü“%ˆØˆØ!ÐØŸ�ˆHØ˜3ŠØà�}‰} 
Ò*Ø ×)Ñ)¨!Ñ,�Ü-¨hÔ7¼CÀÇÁÓ<NÐRSÒ<Sáà˜KÑ'Ø ’|Ú,ð'K˜Gà ŸN™N¨8¸W˜NÕEà,0Ñ)à"�GØ—z‘z VÓ+Ø Ÿ;™;¨'Ñ1à&A˜GØ#×/Ñ/×7Ñ7¸6ÒAØ '¨6¯=©=¸¿¹Ó+EÑ E Ø ŸN™N¨5¸'˜NÕBà#ŸK™K¨¯©Õ4á$àV�GØ—N‘N 8°W�NÖ=ÛàL�GØ—N‘N 8°W�NÖ=ñM &ri   N)rï   rð   rñ   ÚpropertyrÖ   r?  rò   ri   rh   rÜ  rÜ  ˆ  s   „ àñ@ó ð@ó*>ri   rÜ  r�  r   c                   ó   — e Zd ZdZd„ Zy)Ú_ParameterRulez-non-default argument follows default argumentc                 óÒ  — t        «       }d}d}t        |«      D ]Ë  }|j                  dk(  r|j                  dk(  rd}d}Œ&|j                  j                  |v r6d}| j                  |j                  ||j                  j                  z  ¬«       |j                  |j                  j                  «       |rŒœ|j                  €|j                  s|sŒ· y|j                  rd}d}ŒÊd}ŒÍ y )NFr:   r‹  Tz.duplicate argument '%s' in function definitionrL  )	rß  r‹   r[   ra   rÉ   r'  rá  Údefaultr’  )r¹   rc   Úparam_namesÚdefault_onlyÚ	star_seenÚprÖ   s          rh   r?  z_ParameterRule.is_issueÄ  s¿   € Ü“eˆØˆØˆ	Ü˜dÖ#ˆAØ�v‰v˜Ò#Ø—7‘7˜c’>Ø $�IØ#(�LØà�v‰v�|‰|˜{Ñ*ØJ�Ø—‘˜qŸv™v¨w¸¿¹¿¹Ñ/E�ÔFØ�O‰O˜AŸF™FŸL™LÔ)âØ—9‘9Ð$¨Q¯\ª\Ú#Ù#Ø—\’\Ø $�IØ#(‘Là#'‘Lñ) $ri   Nr]  rò   ri   rh   rç  rç  ¾  s   „ ð >€Gó(ri   rç  r   c                   ó   — e Zd ZdZd„ Zy)Ú_TryStmtRulezdefault 'except:' must be lastc                 ó’   — d }|j                   dd d…   D ]0  }|dv r y |dk(  r|}Œ|€Œ| j                  || j                  ¬«       Œ2 y )Nr$   )Úelserc  ÚexceptrL  )r]   r'  rÖ   )r¹   r   Údefault_exceptÚexcept_clauses       rh   r?  z_TryStmtRule.is_issueã  sU   € ØˆØ%×.Ñ.¨q¨t°!¨tÔ4ˆMØÐ 3Ñ3ÙØ Ò(Ø!.‘ØÑ+Ø—‘˜~°t·|±|�ÕDñ 5ri   Nr]  rò   ri   rh   rï  rï  ß  s   „ à.€GóEri   rï  rY   c                   ó6   — e Zd ZdZdZdZdZd„ Zd„ Zd„ Z	d	d„Z
y)
Ú_FStringRuleNz3f-string expression part cannot include a backslashz'f-string: expressions nested too deeplyzAf-string: invalid conversion character: expected 's', 'r', or 'a'c                 óB   — | j                  |j                  dd  |«       y rŸ   ©Ú_check_fstring_contentsr]   )r¹   Úformat_specÚdepths      rh   Ú_check_format_specz_FStringRule._check_format_specõ  s   € Ø×$Ñ$ [×%9Ñ%9¸!¸"Ð%=¸uÕEri   c                 ó<  — |dk\  r| j                  || j                  ¬«       |j                  d   }d|j                  «       v r| j                  || j                  ¬«       |j                  d   }|j
                  dk(  r|j                  dk(  r|j                  d   }n|}|j
                  dk(  r:|j                  d   }|j                  d	vr| j                  || j                  ¬«       |j                  d
   }|j
                  dk(  r| j                  ||dz   «       y y )Nr!   rL  r'   r  r:   rÖ  r$   Úfstring_conversion)Úsry  Úar—   Úfstring_format_spec)	r'  Úmessage_nestedr]   Úget_codeÚmessage_exprr[   ra   Úmessage_conversionrü  )r¹   Úfstring_exprrû  rQ   Ú
children_2Ú
conversionrÉ   rú  s           rh   Ú_check_fstring_exprz _FStringRule._check_fstring_exprø  s  € Ø�AŠ:Ø�N‰N˜<°×1DÑ1DˆNÔEà×$Ñ$ QÑ'ˆØ�4—=‘=“?Ñ"Ø�N‰N˜4¨×):Ñ):ˆNÔ;à!×*Ñ*¨1Ñ-ˆ
Ø�?‰?˜jÒ(¨Z×-=Ñ-=ÀÒ-DØ%×.Ñ.¨qÑ1‰Jà#ˆJØ�?‰?Ð2Ò2Ø×&Ñ& qÑ)ˆDØ�z‰z Ñ0Ø—‘˜t¨T×-DÑ-D�ÔEà"×+Ñ+¨BÑ/ˆØ×ÑÐ4Ò4Ø×#Ñ# K°¸±Õ;ð 5ri   c                 ó@   — | j                  |j                  dd «       y )Nr'   rK   rø  )r¹   rY   s     rh   r?  z_FStringRule.is_issue  s   € Ø×$Ñ$ W×%5Ñ%5°a¸Ð%;Õ<ri   c                 óV   — |D ]$  }|j                   dk(  sŒ| j                  ||«       Œ& y )Nr  )r[   r	  )r¹   r]   rû  Úfstring_contents       rh   rù  z$_FStringRule._check_fstring_contents  s*   € Û'ˆOØ×#Ñ# ~Ó5Ø×(Ñ(¨¸%Õ@ñ  (ri   )r   )rï   rð   rñ   Ú_fstring_grammarr  r  r  rü  r	  r?  rù  rò   ri   rh   rö  rö  î  s.   „ àÐØH€LØ>€NØ\ÐòFò<ò,=ôAri   rö  c                   ó   — e Zd Zdd„Zy)Ú_CheckAssignmentRulec                 ót	  — d }|j                   }|dk(  rd}�nN|dk(  �r„|j                  d d \  }}t        |«      }|�€(|j                   dk(  rT| j                  j                  dk  rd}�nü|j                  d   d	k(  r!| j                  j                  d
k  rd}�nÍd}�nÉd}�nÅ|dk(  rC|dk(  r>| j                  j                  dk  rd}�nž| j                  j                  d
k  rd}�n�d}�n}|dk(  r9t        |j                  «      dkD  r!| j                  j                  dk  rd}�nCd}�n?|dv �r:|j                   dk(  rd}�n'|j                   dk(  r>|r|dk(  rd}n|dk(  rd}|j                  d d d…   D ]  }	| j                  |	|||«       Œ �nÚ| j                  ||||«       �nÄ|dk(  rG|j                  dk(  rd}�n¬| j                  j                  dk  rd}�n�t        |j                  «      }�nx|dk(  r1|j                  dk(  �rc| j                  j                  d
k  rd}�nFd}�nB|dk(  rd}�n9|dv rd}�n1|dk(  rd }
| j                  ||
¬!«       �n|d"k(  rd#}�n|d$v r±|j                  d%   d&k(  rd'}�nò|j                  d(   d)k(  r!| j                  j                  d
k  rd}�nÃd*}�n¿|j                  d+   }|j                   d,k(  sJ ‚|j                  d%   dk(  rd-}�n‰|r|j                  d%   dk(  rd.}�nq|�rn|j                  d%   d/k(  �r[d0}�nW|d1k(  r!| j                  j                  dk  rd}�n5d2}�n1|d3v r-|j                  d d d…   D ]  }	| j                  |	|||«       Œ �n d4|v r|d5k7  sd6|v s|d7v r| j                  j                  d
k  rd}nÓd*}nÐ|d5k(  rË|r0| j                  j                  d8k\  rd9}n�| j                  |d:¬!«       n{| j                  j                  d8k\  r|j                  }nt        |«      }|j                   t        vr8|s6|j                   dk(  r|j                  d%   dk(  sd;}
| j                  ||
¬!«       | j                  |j                  d   «       |�Q|rd<|z  }
n5| j                  j                  dk  rd=nd>}d?j                  ||rd@ndA|g«      }
| j                  ||
¬!«       y y )BNr   r   r    r!   r"   r#   r&   r'   r(   r*   r,   r-   r.   r5   r6   )r/   r3   rC   r9   r   r/   r1   r3   r4   r7   r8   r:   r;   r<   r=   r>   r?   z+assignment to yield expression not possiblerL  rD   rE   rF   r   rI   rJ   r—   r)   rW   rK   rL   rM   rN   rO   rP   rY   rZ   )r   r   r˜   rQ   rR   rS   rT   r¥   rX   rÃ  z4starred assignment target must be in a list or tuplez)cannot use assignment expressions with %szcan'tÚcannotÚ Údeletez	assign to)r[   r]   r\   rG  r2   r^   Ú_check_assignmentra   rb   r'  r�   rƒ   r•   Újoin)r¹   rc   Úis_deletionÚis_namedexprÚis_aug_assignrN  rd   rf   rg   rp   rÖ   rL   rÅ  r  s                 rh   r  z&_CheckAssignmentRule._check_assignment  s»  € ØˆØ—	‘	ˆØ�IÒØŠEØ�f‹_Ø ŸM™M¨"¨1Ð-‰MˆE�6Ü+¨DÓ1ˆEØ‰}Ø—;‘;Ð"2Ò2Ø×'Ñ'×/Ñ/°&Ò8Ø )šà!Ÿ?™?¨1Ñ-°Ò4Ø#×/Ñ/×7Ñ7¸'ÒAØ(6¢à(6¢à$1šEØ˜c’\ f°¢mØ×'Ñ'×/Ñ/°&Ò8Ø )šà×+Ñ+×3Ñ3°gÒ=Ø$2šEà$2šEØ˜c’\¤c¨$¯-©-Ó&8¸1Ò&<Ø×'Ñ'×/Ñ/°&Ò8Ø )šà -šØ˜jÒ(Ø—{‘{ lÒ2Ø 2šØŸ™¨Ò7ñ (Ø$¨š|Ø(/¡Ø!&¨#¢Ø(. ð &,§_¡_±S°q°SÔ%9˜EØ ×2Ñ2°5¸+À|ÐUbÕcò &:ð ×.Ñ.¨v°{ÀLÐR_Ö`Ø�iÒØ�z‰z˜WÒ$Ø*’Ø×!Ñ!×)Ñ)¨FÒ2Ø!’ä˜DŸJ™J›’Ø�jÒ Ø�z‰z˜UÓ"Ø×#Ñ#×+Ñ+¨gÒ5Ø&’Eà&’EØ�lÒ"Ø ŠEØÐ5Ñ5ØŠEØ�lÒ"àCˆGØ�N‰N˜4¨ˆNÖ1Ø�fŠ_Ø,ŠEØÐ,Ñ,Ø�}‰}˜QÑ 7Ò*Ø*’Ø—‘˜rÑ" dÒ*Ø×#Ñ#×+Ñ+¨gÒ5Ø&’Eà(’Eð Ÿ-™-¨Ñ+�Ø—|‘| yÒ0Ð0Ð0Ø×#Ñ# AÑ&¨#Ò-Ø+’EÙ! g×&6Ñ&6°qÑ&9¸SÒ&@Ø'’EÚ! g×&6Ñ&6°qÑ&9¸SÓ&@Ø'’EØ�iÒØ×Ñ×'Ñ'¨&Ò0Ø!’à-’ØÐDÑDØŸ™¡s¨ sÔ+�Ø×&Ñ& u¨k¸<ÈÕWò ,à˜‰o %¨;Ò"6Ø˜EÑ!ØÐ,Ñ,Ø×Ñ×'Ñ'¨'Ò1Ø"‘à$‘Ø�kÒ!ÙØ×#Ñ#×+Ñ+¨vÒ5Ø%‘Eà—N‘N 4Ð1T�NÕUà×#Ñ#×+Ñ+¨vÒ5Ø#Ÿ{™{‘Hä5°dÓ;�HØ—=‘=Ô(:Ñ:Á=Ø!)§¡°&Ò!8¸X×=NÑ=NÈqÑ=QÐUXÒ=XØT�GØ—N‘N 4°�NÔ9à×"Ñ" 4§=¡=°Ñ#3Ô4àÐÙØEÈÑM‘à$(×$4Ñ$4×$<Ñ$<¸vÒ$E™È8�ØŸ(™( F¹©HÈÐV[Ð#\Ó]�Ø�N‰N˜4¨ˆNÕ1ð ri   N)FFF)rï   rð   rñ   r  rò   ri   rh   r  r    s   „ ôC2ri   r  r   c                   ó   — e Zd ZdZd„ Zy)Ú_CompForRulez>asynchronous comprehension outside of an asynchronous functionc                 óæ   — |j                   d   }|j                  dk7  r| j                  |«       |j                  j                   d   dk(  xr% | j                  j
                  j                  «        S )Nr'   Ú	expr_listr   Úasync)r]   r[   r  r�   rG  r  rÁ   )r¹   rc   r  s      rh   r?  z_CompForRule.is_issue¢  sh   € Ø—M‘M !Ñ$ˆ	Ø�>‰>˜[Ò(Ø×"Ñ" 9Ô-à�{‰{×#Ñ# AÑ&¨'Ñ1ò @Ø×$Ñ$×,Ñ,×=Ñ=Ó?Ð?ð	@ri   Nr]  rò   ri   rh   r  r  ž  s   „ àN€Gó@ri   r  rš   c                   ó    — e Zd ZdZdez   Zd„ Zy)Ú_ExprStmtRulez+illegal expression for augmented assignmentz'{target}' is an c           	      ó¤  — |j                   d   }|dk7  xr |j                  dk7  }| j                  j                  dk  s|s*|j                   d dd…   D ]  }| j	                  ||¬«       Œ |rät        |j                   d   «      }|j                  d	k(  sI|j                  d
v r<|j                   d   j                  dk(  r |j                   d   j                   d   dk7  ry| j                  j                  dk  ry| j                  || j                  j                  t        |j                   d   | j                  j                  «      ¬«      ¬«       y y )Nr'   rÖ  rß   r#   r—   r!   )r  r   rÉ   rF   rL   rK   r/   FT)ÚtargetrL  )
r]   r[   rG  r2   r  r`   r'  Úextended_messagerà  r_   )r¹   rc   Ú	augassignr  Úbefore_equalr!  s         rh   r?  z_ExprStmtRule.is_issue°  s;  € Ø—M‘M !Ñ$ˆ	Ø! SÑ(ÒJ¨Y¯^©^¸{Ñ-Jˆà×Ñ×#Ñ# vÒ-±]Ø $§¡¨e¨r°!¨eÔ 4�Ø×&Ñ& |À=Ð&ÕQð !5ñ Ü# D§M¡M°!Ñ$4Ó5ˆFð �{‰{˜fÒ$Ø—‘Ð5Ñ5Ø—O‘O AÑ&×+Ñ+¨yÒ8Ø—O‘O BÑ'×0Ñ0°Ñ3°sÒ:àà×Ñ×'Ñ'¨6Ò1Øà—‘ØØ ×1Ñ1×8Ñ8Ü,¨T¯]©]¸1Ñ-=¸t×?OÑ?O×?WÑ?WÓXð 9ó ð õ ð ri   N)rï   rð   rñ   rÖ   r"  r?  rò   ri   rh   r  r  «  s   „ à;€GØ*¨WÑ4Ðóri   r  Ú	with_itemc                   ó   — e Zd Zd„ Zy)Ú_WithItemRulec                 ó@   — | j                  |j                  d   «       y ©Nr!   )r  r]   )r¹   r%  s     rh   r?  z_WithItemRule.is_issueÐ  s   € Ø×Ñ˜y×1Ñ1°!Ñ4Õ5ri   NrÍ  rò   ri   rh   r'  r'  Î  s   „ ó6ri   r'  rÁ  c                   ó   — e Zd Zd„ Zy)Ú_DelStmtRulec                 óh   — |j                   d   }|j                  dk7  r| j                  |d¬«       y y )Nr'   r  T)r  ©r]   r[   r  )r¹   rÁ  rp   s      rh   r?  z_DelStmtRule.is_issueÖ  s6   € Ø×!Ñ! !Ñ$ˆà�:‰:˜Ò$Ø×"Ñ" 5°dÐ"Õ;ð %ri   NrÍ  rò   ri   rh   r+  r+  Ô  s   „ ó<ri   r+  r  c                   ó   — e Zd Zd„ Zy)Ú_ExprListRulec                 óT   — |j                   d d d…   D ]  }| j                  |«       Œ y r)  )r]   r  )r¹   r  rQ   s      rh   r?  z_ExprListRule.is_issueß  s)   € Ø×&Ñ&¡s¨ sÔ+ˆDØ×"Ñ" 4Õ(ñ ,ri   NrÍ  rò   ri   rh   r/  r/  Ý  s   „ ó)ri   r/  r   c                   ó   — e Zd Zd„ Zy)Ú_ForStmtRulec                 ód   — |j                   d   }|j                  dk7  r| j                  |«       y y )Nr'   r  r-  )r¹   r   r  s      rh   r?  z_ForStmtRule.is_issueæ  s1   € à×%Ñ% aÑ(ˆ	Ø�>‰>˜[Ò(Ø×"Ñ" 9Õ-ð )ri   NrÍ  rò   ri   rh   r2  r2  ä  s   „ ó.ri   r2  Únamedexpr_testc                   ó   — e Zd Zd„ Zy)Ú_NamedExprRulec                 ó&  ‡	‡
— |j                   d   }d„ } ||«      rd}| j                  ||¬«       t        «       Š	ˆ	fd„Š
ˆ
fd„} ||«      }|rª| j                  j                  j
                  j                  dk(  rd}| j                  ||¬«       ‰	D �cg c]  }|j                  d	k(  sŒ|j                  ‘Œ  }}|j                  d	k(  r0|j                  |v r"d
|j                  z  }| j                  ||¬«       | j                  |d¬«       y c c}w )Nr   c                 óp   — 	 | j                   }|€|S |j                  dk(  r|j                  d   | k(  r|S |} Œ6)Nr   r$   r€   )rc   r�   s     rh   Úsearch_namedexpr_in_comp_forz=_NamedExprRule.is_issue.<locals>.search_namedexpr_in_comp_forõ  sC   € ØØŸ™�Ø�>Ø!�MØ—;‘; /Ò1°f·o±oÀaÑ6HÈDÒ6PØ!�MØ�ð ri   zKassignment expression cannot be used in a comprehension iterable expressionrL  c                 óš   •— | j                   dk(  r| }n| j                   dk(  r| j                  d   }‰j                  t        «      «       y )Nr   r   r'   )r[   r]   rÇ   r    )r   Úcompr   s     €rh   Úprocess_comp_forz1_NamedExprRule.is_issue.<locals>.process_comp_for  sB   ø€ Ø�}‰} Ò/Ø‘Ø—‘ *Ò,Ø×(Ñ(¨Ñ+�Ø�O‰OÔ:¸4Ó@ÕAri   c                 ó˜   •— d}	 | j                  dd«      } | €	 |S | j                  D ]   }|j                  t        v sŒ ‰|«       d} n ŒG)NFTr   r"   )r«   r]   r[   ru   )rc   Úhas_ancestorsrp   r<  s      €rh   Úsearch_all_comp_ancestorsz:_NamedExprRule.is_issue.<locals>.search_all_comp_ancestors  s_   ø€ Ø!ˆMØØ×+Ñ+¨OÐ=MÓN�Ø�<Øð !Ð ð "Ÿ]œ]�EØ—z‘z¤_Ò4Ù(¨Ô/Ø(,˜Ùð	 +ð	 ri   rÿ   zKassignment expression within a comprehension cannot be used in a class bodyrÉ   zGassignment expression cannot rebind comprehension iteration variable %rT)r  )	r]   r'  r4   rG  r  rc   r[   ra   r  )r¹   r4  rf   r9  rÖ   r?  Ú
search_allrQ   Únamelistr   r<  s            @@rh   r?  z_NamedExprRule.is_issueñ  s  ù€ à×'Ñ'¨Ñ*ˆò	ñ (¨Ô7ð dˆGØ�N‰N˜>°7ˆNÔ;ô “6ˆô	Bô	!ñ /¨~Ó>ˆ
ÙØ×Ñ×'Ñ'×,Ñ,×1Ñ1°ZÒ?ð;�à—‘˜~°w�Ô?á/7ÓO©x t¸4¿9¹9ÈÓ;N˜Ÿ
›
¨xˆHÐOØ�z‰z˜VÒ#¨¯©°xÑ(?ð
@ØBGÇ+Á+ñN�à—‘˜~°w�Ô?à×Ñ˜u°4ÐÕ8ùò Ps   ÂDÂ+DNrÍ  rò   ri   rh   r6  r6  í  s   „ ó=9ri   r6  )Fr  rŠ  r‚  r  Ú
contextlibr   Úparso.normalizerr   r   r   r   Úparso.python.tokenizer   r  r•   r  r  r¸  ru   r_   rr   r\   r|   r`   rƒ   r‹   r�   r“   r�   r    r£   r¬   r®   rô   r5  Úregister_ruler;  rB  rE  rI  rP  rX  r`  rh  rm  rr  r�  r•  rš  r¢  r©  r¬  r°  r¾  rÈ  rÏ  rÔ  rØ  rÜ  rç  rï  rö  r  r  r  r'  r+  r/  r2  r6  rò   ri   rh   Ú<module>rF     s(  ðã Û 
Û Û 	Ý %ç FÓ FÝ 7àM€ØHÐ à€ØÐ ð€ð 0€òSòlòò;òò	òZòò"(ò0ò=ò
8ò/÷Fñ FôDq;�*ô q;ôh.�dô .ð ×Ñ ÐÓ-ô	3˜?ó 	3ó .ð	3ô#Ð(ô #ô
)�ô 
)ð ×Ñ ÐÓ-ô˜ó ó .ðð& ×Ñ ÐÓ)ô˜ó ó *ðð ×Ñ ÐÓ)ô˜
ó ó *ðð ×Ñ ÐÓ,ô�jó ó -ðð, ×Ñ ÐÓ(ô<�jó <ó )ð<ð ×Ñ ÐÓ'ô�*ó ó (ðð ×Ñ ÐÓ)ô H�Jó  Hó *ð HðF ×Ñ ÐÓ%ô	#�ó 	#ó &ð	#ð ×Ñ ÐÓ&ô	M�Zó 	Mó 'ð	Mð ×Ñ ÐÓ)Ø×Ñ ÐÓ*ô˜Jó ó +ó *ðð  ×Ñ 	ÐÓ*ô˜ó ó +ðð" ×ÑÐ 1ÐÓ2ô˜:ó ó 3ðð ×Ñ ÐÓ.ô]˜Jó ]ó /ð]ð ×Ñ ÐÓ.ô:˜
ó :ó /ð:ð. ×Ñ ÐÓ,ô!N�Jó !Nó -ð!NðH ×ÑÐ!3ÐÓ4ô@˜*ó @ó 5ð@ð> ×Ñ ÐÓ,ô!@�Zó !@ó -ð!@ðH ×Ñ 
ÐÓ+ô;�Jó ;ó ,ð;ð2 ×Ñ ÐÓ0ô?˜zó ?ó 1ð?ð ×Ñ 	ÐÓ*ô2>�:ó 2>ó +ð2>ðj ×Ñ ÐÓ-Ø×Ñ 	ÐÓ*ô(�Zó (ó +ó .ð(ð> ×Ñ 
ÐÓ+ôE�:ó Eó ,ðEð ×Ñ 	ÐÓ*ô%A�:ó %Aó +ð%AôPD2˜:ô D2ðN ×Ñ ÐÓ0ô	@Ð'ó 	@ó 1ð	@ð ×Ñ ÐÓ,ôÐ(ó ó -ððD ×Ñ ÐÓ,ô6Ð(ó 6ó -ð6ð
 ×Ñ 
ÐÓ+ô<Ð'ó <ó ,ð<ð ×Ñ ÐÓ,ô)Ð(ó )ó -ð)ð ×Ñ 
ÐÓ+ô.Ð'ó .ó ,ð.ð ×ÑÐ 0ÐÓ1ô@9Ð)ó @9ó 2ñ@9ri   