Ë
    Kæõi¡e  ã                   óF  — U d Z ddlm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mZmZmZmZmZ ddlmZ ddlmZmZmZ dZej4                  Zej6                  Zej8                  Zej:                  Zej<                  Zej>                  Zej@                  Z ejB                  Z!ejD                  Z"ejF                  Z#ejH                  Z$ejJ                  Z%ejL                  Z& G d	„ d
e
«      Z' ejP                  d«      Z)i Z*eee+e+f   e'f   e,d<   ddœd„Z-d„ Z.dddœd„Z/d„ Z0d„ Z1dZ2 e0de2z   dz   «      Z3 e0de2z   dz   «      Z4 e0d«      Z5 e0d«      Z6d„ Z7 G d„ de
«      Z8 G d„ de8«      Z9 G d „ d!«      Z:d"„ Z;d#„ Z<d$d%œd&e=d'ee+e+f   d(ee+e+f   d)ee9   fd*„Z>d+„ Z?dd$d,d-œd.ee=   d'ee+e+f   d/ee+   d(ee+e+f   d)ee9   f
d0„Z@d1„ ZAeBd2k(  rNej†                  d3   ZD eEeD«      5 ZFeFj�                  «       ZHddd«        e>eH ed4«      ¬5«      D ]
  ZI eJeI«       Œ yy# 1 sw Y   Œ(xY w)6a¼  
This tokenizer has been copied from the ``tokenize.py`` standard library
tokenizer. The reason was simple: The standard library tokenizer fails
if the indentation is not right. To make it possible to do error recovery the
    tokenizer needed to be rewritten.

Basically this is a stripped down version of the standard library module, so
you can read the documentation there. Additionally we included some speed and
memory optimizations here.
é    )Úabsolute_importN)ÚBOM_UTF8)	Ú
NamedTupleÚTupleÚIteratorÚIterableÚListÚDictÚPatternÚSetÚAny)ÚPythonTokenTypes)Úsplit_linesÚPythonVersionInfoÚparse_version_stringu   ô�¿¿c                   óz   — e Zd ZU eed<   ee   ed<   ee   ed<   eeef   ed<   eed<   eeef   ed<   ee   ed<   y)	ÚTokenCollectionÚpseudo_tokenÚsingle_quotedÚtriple_quotedÚendpatsÚ
whitespaceÚfstring_pattern_mapÚalways_break_tokensN)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r   Ústrr
   © ó    úf/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/parso/python/tokenize.pyr   r   +   sI   … ØÓØ�s‘8ÓØ�s‘8ÓØ�#�w�,ÑÓØÓØ˜c 3˜h™Ó'Ø˜S™Ô!r!   r   zutf-8Ú_token_collection_cacheF©Úcapturec                 óJ   — |rJ ‚d}| s|dz  }|dj                  |«      z   dz   S )NÚ(z?:Ú|Ú))Újoin)r%   ÚchoicesÚkwargsÚstarts       r"   Úgroupr.   :   s4   € ÙÐˆ:à€EÙØ�‰ˆØ�3—8‘8˜GÓ$Ñ$ sÑ*Ð*r!   c                  ó   — t        | Ž dz   S )NÚ?)r.   )r+   s    r"   Úmayber1   C   s   € Ü�'ˆ?˜SÑ Ð r!   ©Úinclude_fstringÚonly_fstringc                 óØ   — d„ }g d¢}dh}| rddg}|r|}t        «       }n||z  }n|r
t        «       S |D ]3  }t        j                  |«      D ]  }|j                   ||«      «       Œ Œ5 |S )Nc              3   ó¦   K  — t        j                  | D �cg c]  }||j                  «       f‘Œ c}Ž D ]  }dj                  |«      –— Œ y c c}w ­w)NÚ )Ú
_itertoolsÚproductÚupperr*   )ÚprefixÚcÚss      r"   Údifferent_case_versionsz5_all_string_prefixes.<locals>.different_case_versionsI   sF   è ø€ Ü×#Ñ#¹fÓ%E¹f¸ q¨!¯'©'«)¢n¸fÑ%EÓFˆAØ—'‘'˜!“*Óñ GùÒ%Eùs   ‚A–A¯"A)ÚbÚrÚuÚbrr7   ÚfÚfr)Úsetr8   ÚpermutationsÚupdate)r3   r4   r>   Úvalid_string_prefixesÚresultrC   r;   Úts           r"   Ú_all_string_prefixesrK   H   sƒ   € òò 2ÐàˆT€FÙØ�$ˆKˆÙØ$%Ð!Ü“U‰Fà! QÑ&Ñ!Ù	Ü‹uˆó (ˆÜ×(Ñ(¨Ö0ˆAð �M‰MÑ1°!Ó4Õ5ñ 1ð (ð
 €Mr!   c                 óJ   — t        j                  | t         j                  «      S ©N)ÚreÚcompileÚUNICODE)Úexprs    r"   Ú_compilerR   e   s   € Ü�:‰:�dœBŸJ™JÓ'Ð'r!   c                 ó„   — 	 t         t        | «         S # t        $ r" t        | «      xt         t        | «      <   }|cY S w xY wrM   )r#   ÚtupleÚKeyErrorÚ_create_token_collection)Úversion_inforI   s     r"   Ú_get_token_collectionrX   i   sG   € ðÜ&¤u¨\Ó':Ñ;Ð;øÜò ä$ \Ó2ð	3Ô¤ lÓ 3Ñ4°vàŠðús   ‚ ”(?¾?z"[A-Za-z0-9\-]+(?: [A-Za-z0-9\-]+)*z(?:\{\{|\}\}|\\N\{z*\}|\\(?:\r\n?|\n)|\\[^\r\nN]|[^{}\r\n\\])+z\}|\\[^N]|[^{}\\])+z(?:\\(?:\r\n?|\n)|[^{}\r\n])+z[^{}]+c                 óð  — d}t        |«      }d}dt        z   dz   }d}d}d}d}t        ||||«      }	d	}
t        d
d«      t        |
«      z   }d|
z   }t        ||«      }t        d|dz   «      }t        |||	«      }t	        «       }t        |Ž }t        t	        d¬«      Ž }t	        dd¬«      }t        |Ž }d}d}d}d}t        |dz   |dz   «      }t        ddddddd«      }d}g d ¢}| d!k\  r|j                  d"d#«       n|j                  d"d$«       t        |Ž }t        |||«      }t        |d%z   t        d&d'«      z   |d(z   t        d)d'«      z   «      }||g} d*}!|r| j                  |t        |!Ž z   «       t        d+g| ¢­Ž }"t        |d¬,«      t        |"||||d¬,«      z   }#i }$|D ]F  }%t        |«      |$|%d&z   <   t        |«      |$|%d)z   <   t        |«      |$|%dz   <   t        |«      |$|%dz   <   ŒH t        «       }&t        «       }'i }(|D ]8  })d-D ]  }*|&j                  |)|*z   «       Œ d.D ]  }*|'j                  |)|*z   «       Œ Œ: |D ]  })|!D ]
  }*|*|(|)|*z   <   Œ Œ d/}+t        |#«      },t        |,|&|'|$||(t        |+«      «      S )0Nz[ \f\t]*z	#[^\r\n]*u   ([A-Za-z_0-9Â€-z]+)z0[xX](?:_?[0-9a-fA-F])+z0[bB](?:_?[01])+z0[oO](?:_?[0-7])+z(?:0(?:_?0)*|[1-9](?:_?[0-9])*)z[eE][-+]?[0-9](?:_?[0-9])*z)[0-9](?:_?[0-9])*\.(?:[0-9](?:_?[0-9])*)?z\.[0-9](?:_?[0-9])*z[0-9](?:_?[0-9])*z[0-9](?:_?[0-9])*[jJ]z[jJ]T)r3   r2   z(?:\\.|[^'\\])*'z(?:\\.|[^"\\])*"z(?:\\.|'(?!'')|[^'\\])*'''z(?:\\.|"(?!"")|[^"\\])*"""ú'''ú"""z\*\*=?z>>=?z<<=?z//=?z->z[+\-*/%&@`|^!=<>]=?Ú~z[][(){}])z\.\.\.z\r\n?z\nz[;.,@])é   é   r   z:=?Ú:z'[^\r\n'\\]*(?:\\.[^\r\n'\\]*)*Ú'z\\(?:\r\n?|\n)z"[^\r\n"\\]*(?:\\.[^\r\n"\\]*)*Ú")ra   r`   r[   rZ   z\\(?:\r\n?|\n)|\Zr$   )ra   r`   )r[   rZ   )Ú;ÚimportÚclassÚdefÚtryÚexceptÚfinallyÚwhileÚwithÚreturnÚcontinueÚbreakÚdelÚpassÚglobalÚassertÚnonlocal)
rR   ÚMAX_UNICODEr.   r1   rK   ÚinsertÚappendrE   Úaddr   )-rW   Ú
Whitespacer   ÚCommentÚNameÚ	HexnumberÚ	BinnumberÚ	OctnumberÚ	DecnumberÚ	IntnumberÚExponentÚ
PointfloatÚExpfloatÚFloatnumberÚ
ImagnumberÚNumberÚpossible_prefixesÚStringPrefixÚStringPrefixWithFÚfstring_prefixesÚFStringStartÚSingleÚDoubleÚSingle3ÚDouble3ÚTripleÚOperatorÚBracketÚspecial_argsÚSpecialÚFunnyÚContStrÚpseudo_extra_poolÚ
all_quotesÚPseudoExtrasÚPseudoTokenr   Ú_prefixr   r   r   rJ   ÚquoteÚALWAYS_BREAK_TOKENSÚpseudo_token_compileds-                                                r"   rV   rV   ~   s.  € ð €JÜ˜*Ó%€JØ€GØ ¤;Ñ.°Ñ6€Dà*€IØ#€IØ$€IØ2€IÜ�i ¨I°yÓA€IØ,€HÜÐCØ-ó/Ü16°x³ñA€Jà# hÑ.€HÜ˜
 HÓ-€KÜÐ/°¸wÑ1FÓG€JÜ�:˜{¨IÓ6€Fô -Ó.ÐÜÐ+Ð,€LÜÔ3ÀDÔIÐJÐÜ+¸DÈtÔTÐÜÐ*Ð+€Lð !€Fà €Fà+€Gà+€GÜÐ$ uÑ,Ð.?À%Ñ.GÓH€Fô
 �Y ¨Ø˜eØ+Øó€Hð
 €Gâ:€LØ�vÒØ×Ñ˜A˜uÕ%à×Ñ˜A˜sÔ#Ü�\Ð"€Gä�(˜G WÓ-€Eô �LÐ#EÑEÜ˜CÐ!2Ó3ñ4à Ð#EÑEÜ˜CÐ!2Ó3ñ4ó5€Gð ! &Ð)ÐØ'€JÙØ× Ñ  ´°zÐ0BÑ!BÔCäÐ-ÐBÐ0AÒB€LÜ˜
¨DÔ1Üˆl˜F E¨7°DÀ$ÔGñH€Kð €GÛ$ˆÜ!)¨&Ó!1ˆ�˜#‘ÑÜ!)¨&Ó!1ˆ�˜#‘ÑÜ#+¨GÓ#4ˆ�˜%‘Ñ Ü#+¨GÓ#4ˆ�˜%‘Ò ð	 %ô “E€MÜ“E€MØÐÛˆÛˆEØ×Ñ˜a %™iÕ(ð ó "ˆEØ×Ñ˜a %™iÕ(ñ "ð	 ó ˆÛˆEØ-2Ð  E¡	Ò*ñ  ð ðSÐô % [Ó1ÐÜØ˜}¨m¸WØÐ'¬Ð-@Ó)Aóð r!   c                   ó`   — e Zd ZU eed<   eed<   eeef   ed<   eed<   edeeef   fd„«       Z	y)ÚTokenÚtypeÚstringÚ	start_posr;   rk   c                 óð   — t        | j                  «      }t        |«      dkD  r | j                  d   t        |«      z   dz
  dfS | j                  d   | j                  d   t        | j                  «      z   fS ©Né   r   )r   r    Úlenr¡   )ÚselfÚliness     r"   Úend_poszToken.end_posð   sh   € ä˜DŸK™KÓ(ˆÜˆu‹:˜Š>Ø—>‘> !Ñ$¤s¨5£zÑ1°AÑ5°qÐ8Ð8à—>‘> !Ñ$ d§n¡n°QÑ&7¼#¸d¿k¹kÓ:JÑ&JÐJÐJr!   N)
r   r   r   r   r   r   r   ÚintÚpropertyr¨   r    r!   r"   rž   rž   ê   sD   … Ø
ÓØƒKØ�S˜#�X‰ÓØƒKàðK˜˜s C˜x™ò Kó ñKr!   rž   c                   ó   — e Zd Zd„ Zy)ÚPythonTokenc                 óT   — d| j                  | j                  j                  ¬«      z  S )Nz6TokenInfo(type=%s, string=%r, start_pos=%r, prefix=%r))rŸ   )Ú_replacerŸ   Úname©r¦   s    r"   Ú__repr__zPythonToken.__repr__ú   s%   € ØHØ—‘ 4§9¡9§>¡>�Ó2ñ3ð 	4r!   N)r   r   r   r±   r    r!   r"   r¬   r¬   ù   s   „ ó4r!   r¬   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚFStringNodec                 óJ   — || _         d| _        d| _        d | _        d| _        y )Nr   r7   )rš   Úparentheses_countÚprevious_linesÚlast_string_start_posÚformat_spec_count)r¦   rš   s     r"   Ú__init__zFStringNode.__init__   s+   € ØˆŒ
Ø!"ˆÔØ ˆÔØ*.ˆÔ"ð "#ˆÕr!   c                 ó.   — | xj                   dz  c_         y )Nr¤   )rµ   ©r¦   Ú	characters     r"   Úopen_parentheseszFStringNode.open_parentheses	  s   € Ø×Ò !Ñ#Ör!   c                 ó\   — | xj                   dz  c_         | j                   dk(  rd| _        y y r£   ©rµ   r¸   r»   s     r"   Úclose_parentheseszFStringNode.close_parentheses  s.   € Ø×Ò !Ñ#ÕØ×!Ñ! QÒ&à%&ˆDÕ"ð 'r!   c                 ó2   — t        | j                  «      dk(  S )Nr]   )r¥   rš   r°   s    r"   Úallow_multilinezFStringNode.allow_multiline  s   € Ü�4—:‘:‹ !Ñ#Ð#r!   c                 ó4   — | j                   | j                  kD  S rM   r¿   r°   s    r"   Ú
is_in_exprzFStringNode.is_in_expr  s   € Ø×%Ñ%¨×(>Ñ(>Ñ>Ð>r!   c                 ó@   — | j                  «        xr | j                  S rM   )rÄ   r¸   r°   s    r"   Úis_in_format_speczFStringNode.is_in_format_spec  s   € Ø—?‘?Ó$Ð$Ò?¨×)?Ñ)?Ð?r!   N)	r   r   r   r¹   r½   rÀ   rÂ   rÄ   rÆ   r    r!   r"   r³   r³   ÿ   s!   „ ò#ò$ò'ò$ò?ó@r!   r³   c           
      ój  — t        | «      D ]¡  \  }}|j                  «       }t        |«      t        |«      z
  }|j                  |j                  «      sŒIt        t        |j                  |||z   f||d | z   ¬«      }	d}|j                  rJ ‚| |d …= |	dt        |j                  «      |z   fc S  d |dfS )N©r;   r7   r   )Ú	enumerateÚlstripr¥   Ú
startswithrš   r¬   ÚFSTRING_ENDr¶   )
Úfstring_stackr    Úline_nrÚcolumnÚadditional_prefixÚfstring_stack_indexÚnodeÚlstripped_stringÚ
len_lstripÚtokens
             r"   Ú_close_fstring_if_necessaryrÖ     sÆ   € Ü%.¨}Ö%=Ñ!Ð˜TØ!Ÿ=™=›?ÐÜ˜“[¤3Ð'7Ó#8Ñ8ˆ
Ø×&Ñ& t§z¡zÕ2ÜÜØ—
‘
Ø˜& :Ñ-Ð.Ø(¨°°Ð)<Ñ<ô	ˆEð !#ÐØ×*Ò*Ð*Ð*ØÐ1Ñ2Ð3Ø˜"œc $§*¡*›o°
Ñ:Ð:Ò:ð &>ð Ð" AÐ%Ð%r!   c                 óz  — |d   }|j                  «       }|j                  «       r|rt        }nt        }n|rt        }nt
        }|j                  ||«      }|€|j                  |fS |j                  s	||f|_        |j                  d«      }	|D ]K  }
| |
j                     j                  |	«      }|€Œ$|j                  d«      d t        |
j                  «        }	ŒM |}|t        |	«      z  }|	j                  d«      s|	j                  d«      r|xj                  |	z  c_        d}	|	|fS |j                  |	z   }	|	|fS )Néÿÿÿÿr   Ú
Úr7   )rÂ   rÆ   Úfstring_format_spec_multi_lineÚfstring_format_spec_single_lineÚfstring_string_multi_lineÚfstring_string_single_lineÚmatchr¶   r·   r.   rš   r¥   Úendswith)r   rÍ   ÚlineÚlnumÚposÚtosrÂ   Úregexrß   r    Úfstring_stack_nodeÚ	end_matchÚnew_poss                r"   Ú_find_fstring_stringré   .  sF  € Ø
˜Ñ
€CØ×)Ñ)Ó+€OØ
×ÑÔÙÜ2‰Eä3‰EáÜ-‰Eä.ˆEà�K‰K˜˜cÓ"€EØ€}Ø×!Ñ! 3Ð&Ð&à×ÒØ%)¨3 KˆÔ!à�[‰[˜‹^€FÛ+ÐØÐ.×4Ñ4Ñ5×;Ñ;¸FÓCˆ	ØÑ Ø—_‘_ QÓ'Ð(G¬#Ð.@×.FÑ.FÓ*GÐ)GÐH‰Fð ,ð
 €GØŒs�6‹{Ñ€Gð ‡��tÔ §¡°Ô 5Ø×Ò˜fÑ$ÕØˆð �7ˆ?Ðð ×#Ñ# fÑ,ˆà�7ˆ?Ðr!   )r¤   r   )r¡   ÚcoderW   r¡   rk   c                ó8   — t        | d¬«      }t        |||¬«      S )z0Generate tokens from a the source code (string).T)Úkeepends)rW   r¡   )r   Útokenize_lines)rê   rW   r¡   r§   s       r"   Útokenizerî   V  s   € ô ˜ tÔ,€EÜ˜%¨lÀiÔPÐPr!   c                 ó   ‡ — ˆ fd„}|S )zL
    A small helper function to help debug the tokenize_lines function.
    c               ?   óF   •K  —  ‰| i |¤ŽD ]  }t        |«       |–— Œ y ­wrM   )Úprint)Úargsr,   rÕ   Úfuncs      €r"   Úwrapperz_print_tokens.<locals>.wrapperb  s'   øè ø€ Ù˜4Ð* 6Ô*ˆEÜ�%ŒLØ‹Kñ +ùs   ƒ!r    )ró   rô   s   ` r"   Ú_print_tokensrõ   ^  s   ø€ ôð
 €Nr!   T)Úindentsr¡   Úis_first_tokenr§   rö   c          
   #   óö  ‡‡.‡/K  — ˆˆ.ˆ/fd„}t        |«      \  }}}}	}
}}d}‰€dgŠd}d}d}d}d}d}|d   dz
  Š.g }| D �]m  }‰.dz  Š.d}t        |«      }|rE|j                  t        «      rt        }|dd }t        |«      }d|d   z  |z   }|d   }||d   z  }d	}|rNj	                  |«      }|r0|j                  d«      }t        t        ||d| z   |«      –— d}d}n||z   }|z   }Œ­||k  sŒ³|r{|d
   }|j                  «       sBt        |	||‰.|«      \  }}|r't        t        ||j                  d¬«      –— d|_        ŒX||k(  r�Œ||d }t        ||‰.||«      \  }}}||z  }|�|–— Œƒ|r�|} |D ]s  }!|!j                  }"|	|"   j	                  ||«      }#|#€Œ'|#j                  d«      }$t        |$«      t        |"«      z
  |z   t        | «      k  sŒ_|d| |$dt        |"«        z   } Œu |j	                  | |«      }%n|j	                  ||«      }%|%rR||%j                  d«      z   }d}|%j!                  d«      \  }&}‰.|&fŠ/|%j                  d«      }'|'dk(  r|sJ ‚|}�Œ|'d   }(n9|
j	                  ||«      })||)j                  «          }(|)j                  «       }&‰.|&fŠ/|rS|(dvrO|(dk7  s|%€Hd	}|dk(  rA|s?|&}*|*‰d
   kD  r%t        t"        d‰/d«      –— ‰j%                  |*«        ||*«      E d{  –—†  |%s|
j	                  ||«      })|r%|dk(  r |s ||)j                  «       «      E d{  –—†  |)j                  «       }d	}t        t&        ||   ‰.|f||)j                  d«      z   «      –— d}|dz  }�Œ‡|(|v s|(dk(  r 'dk7  r|'dk7  rt        t(        '‰/|«      –— �n
|%j                  d«      �…'|v rD|s|r@g |dd d}t+        j                  d|d|& «      }+|+� ||+j                  «       «      E d{  –—†  |'j-                  «       rt        t.        |'‰/|«      –— �n‹t1        |'‰/|«      E d{  –—†  �nt|(dv rIt3        d„ |D «       «      r|j5                  «        |s|dk(  r|st        t6        '‰/|«      –— n|'z   }d}�n'|(dk(  r['j9                  d«      s|'j9                  d«      rJ ‚|r.|d
   j                  «       rt        t&        |(‰/|«      –— |&dz   }�nÎ||'z   }�nÇ'|v rP|	|'   }|j	                  ||«      }|r,|j                  d«      }||&| }'t        t        |'‰/|«      –— �n~‰/}||&d }|}�Œô|(|v s|'dd |v s|'dd |v rf|'d
   dv rJ‰.|&f}|	j;                  |(«      xs* |	j;                  |'d   «      xs |	j;                  |'d   «      }||&d }|}�ŒWt        t        |'‰/|«      –— nû|'|v r2|j%                  t=        ||'   «      «       t        t>        |'‰/|«      –— nÅ|(dk(  r||&d dv r||||&d z   z  }�Œ»|'dv r|r|d
   jA                  |'«       n}|dz  }nw|'dv r|r|d
   jC                  |'«       n\|rZ|dz  }nT|'j                  d«      rC|rA|d
   jD                  |d
   jF                  z
  dk(  r|d
   xjF                  dz  c_#        d}'|&dz   }t        tH        |'‰/|«      –— ||k  r�Œ»�Œp |r8t        t&        ||«      –— |j9                  d«      s|j9                  d«      rd}|r:|d
   }|j                  r)t        t        |j                  |j                  d¬«      –— ‰.|f},‰dd D ]&  }-‰jK                  «        t        tL        d|,d«      –— Œ( t        tN        d|,|«      –— y7 �Œ€7 �ŒH7 �Œƒ7 �ŒK­w)a)  
    A heavily modified Python standard library tokenizer.

    Additionally to the default information, yields also the prefix of each
    token. This idea comes from lib2to3. The prefix contains all information
    that is irrelevant for the parser like newlines in parentheses or comments.
    c              3   óÂ   •K  — | ‰d   k  rR| ‰d   kD  rt        t        d‰| fd«      –— | ‰d<   y ‰j                  «        t        t        d‰d«      –— | ‰d   k  rŒQy y ­w)NrØ   éþÿÿÿr7   )r¬   ÚERROR_DEDENTÚpopÚDEDENT)r-   rö   râ   Úsposs    €€€r"   Údedent_if_necessaryz+tokenize_lines.<locals>.dedent_if_necessaryz  sh   øè ø€ Ø�g˜b‘kÒ!Ø�w˜r‘{Ò"Ü!¤,°°T¸5°MÀ2ÓFÒFØ#�˜‘ØØ�K‰KŒMÜœf b¨$°Ó3Ò3ð �g˜b‘kÕ!ùs   ƒAAÁAr   NÚ
0123456789r7   Tr¤   Ú^FrØ   rÈ   é   z
#Ú\Ú.z...r]   z	[ \f\t]*$z
c              3   ó>   K  — | ]  }|j                  «        –— Œ y ­wrM   )rÂ   )Ú.0rC   s     r"   Ú	<genexpr>z!tokenize_lines.<locals>.<genexpr>  s   è ø€ ÐF¹°1˜1×,Ñ,Ó.Ô.¹ùs   ‚Ú#rÙ   rÚ   )z\
z\
z\z([{z)]}r_   )(rX   r¥   rË   ÚBOM_UTF8_STRINGrß   Úendr¬   ÚSTRINGrÄ   ré   ÚFSTRING_STRINGr·   r¶   rÖ   rš   r.   ÚspanÚINDENTru   Ú
ERRORTOKENÚNUMBERrN   ÚisidentifierÚNAMEÚ_split_illegal_unicode_nameÚanyÚclearÚNEWLINErà   Úgetr³   ÚFSTRING_STARTr½   rÀ   rµ   r¸   ÚOPrü   rý   Ú	ENDMARKER)0r§   rW   rö   r¡   r÷   rÿ   r   r   r   r   r   r   r   Úparen_levelÚmax_ÚnumcharsÚcontstrÚnew_liner;   rÐ   rÍ   rá   rã   ÚendprogÚendmatchÚcontstr_startÚcontlinerä   r    ÚrestÚfstring_end_tokenÚquote_lengthÚstring_lineræ   rš   rç   Úend_match_stringÚpseudomatchr-   rÕ   Úinitialrß   Úindent_startÚmr¨   Úindentrâ   rþ   s0     `                                           @@r"   rí   rí   k  s§  úè ø€ ö4ô 	˜lÓ+ñ2€L�- °¸ØÐ0à€KØ€Ø�#ˆØ€DØ€HØ€Gð €HØ€FØÐØ�Q‰<˜!Ñ€DØ')€MÜˆØ�‰	ˆØˆÜ�4‹yˆÙØ�‰œÔ/Ü$3Ð!Ø˜A˜B�x�Ü˜4“y�ð ˜ 1™Ñ%¨Ñ,ˆDØ˜A‘,ˆCØ�I˜a‘LÑ ˆDà"ˆNáØ—}‘} TÓ*ˆHÙØ—l‘l 1“o�Ü!Ü˜G d¨4¨C jÑ0Ø! 6ó+ò +ð �Ø‘à! D™.�Ø# d™?�Øà�D‹jÙØ# BÑ'�Ø—~‘~Ô'Ü"6°wÀÈtÐUYÐ[^Ó"_‘K�F˜CÙÜ)Ü*¨FØ×5Ñ5ð $&ôò ð .0˜Ô*Ø Ø˜d’{Ùà˜C˜D�z�ÜE`Ø!ØØØØ%óFÑBÐ!Ð#4°lð �|Ñ#�Ø$Ð0Ø+Ò+Øñ Ø"�Û*7Ð&Ø.×4Ñ4�EØ '¨¡× 4Ñ 4°T¸3Ó ?�IØ Ñ,Ø+4¯?©?¸1Ó+=Ð(ÜÐ/Ó0´3°u³:Ñ=ÀÑCÄcÈ+ÓFVÓVØ*.¨t°¨*Ð7GÈÌ#ÈeË*ÈÐ7UÑ*U™Kð +8ð +×0Ñ0°¸cÓB‘à*×0Ñ0°°sÓ;�áØ*¨[×->Ñ->¸qÓ-AÑA�Ø$&Ð!Ø(×-Ñ-¨aÓ0‘
��sØ˜e�}�Ø#×)Ñ)¨!Ó,�Ø˜B’;Ù!�M˜6Ø(.Ð%ñ Ø ™(‘à"×(Ñ(¨¨sÓ3�Ø˜uŸy™y›{Ñ+�ØŸ	™	›�Ø˜e�}�á˜G¨7Ñ2¸À4ºÈ;ÐK^Ø �Ø !Ò#©MØ#(�LØ# g¨b¡kÒ1Ü)¬&°"°d¸BÓ?Ò?ØŸ™ |Ô4Ù2°<Ó@×@Ð@áØ"×(Ñ(¨¨sÓ3�Ù ¨qÒ 0¹Ù2°5·9±9³;Ó?×?Ð?Ø—i‘i“k�Ø �Ü!Ü  S¡	¨D°#¨;Ø%¨¯©°A«Ñ6óò ð %'Ð!Ø�q‘�Ùà˜8Ñ#Ø 3š¨5°Cª<¸EÀUºNÜ!¤&¨%°°vÓ>Ô>Ø×"Ñ" 1Ó%Ð1ØÐ/Ñ/±]ÁkØ')�M¡!Ð$Ø"#�KäŸ™ ¨t°F°U¨|Ó<�AØ�}Ù#6°q·u±u³wÓ#?×?Ð?Ø×%Ñ%Ô'Ü%¤d¨E°4¸Ó@Ô@ä:¸5À$ÈÓO×OÒOØ˜FÑ"ÜÑF¹ÓFÔFØ!×'Ñ'Ô)á K°1Ò$4¹]Ü%¤g¨u°d¸FÓCÓCà(.°©Ð%Ø’Ø˜C’Ø Ÿ>™>¨$Ô/¸¿¹ÀtÔ8LÐLÐLÙ  ]°2Ñ%6×%AÑ%AÔ%Cä%¤j°'¸4ÀÓHÒHØ !™)’Cà(.°©Ò%Ø˜-Ñ'Ø! %™.�Ø"Ÿ=™=¨¨sÓ3�ÙØ"Ÿ,™, q›/�CØ   s˜O�EÜ%¤f¨e°T¸6ÓBÔBà$(�MØ" 5 6˜l�GØ#�HÙð ˜MÑ)Ø˜"˜1�I Ñ.Ø˜"˜1�I Ñ.Ø˜‘9 Ñ&ð %)¨% K�MØ&Ÿ{™{¨7Ó3ò  8°w·{±{À5ÈÁ8Ó7Lò  8Ø")§+¡+¨e°A©hÓ"7ð à" 5 6˜l�GØ#�HÙä%¤f¨e°T¸6ÓBÓBØÐ-Ñ-Ø×$Ñ$¤[Ð1DÀUÑ1KÓ%LÔMÜ!¤-°¸¸fÓEÓEØ˜D’ T¨%¨& \Ð5OÑ%OØ! V¨d°5°6¨lÑ%:Ñ:Ð!Ùà˜E‘>Ù$Ø% bÑ)×:Ñ:¸5ÕAà# qÑ(™Ø˜e‘^Ù$Ø% bÑ)×;Ñ;¸EÕBá&Ø'¨1Ñ,™KØ×%Ñ% cÔ*©}Ø)¨"Ñ-×?Ñ?Ø'¨Ñ+×=Ñ=ñ>ØABòCð " "Ñ%×7Ò7¸1Ñ<Õ7Ø�EØ !™)�Cä!¤" e¨T°6Ó:Ò:ðm �DŽjð? ñn Üœ* g¨}¸fÓEÒEØ×Ñ˜DÔ! W×%5Ñ%5°dÔ%;ØˆHáØ˜BÑˆØ×ÒÜÜ × 2Ñ 2Ø×)Ñ)ð ôò ð �Dˆj€Gð ˜!˜"“+ˆØ�‰ŒÜœ& " g¨rÓ2Ó2ð ô ”i  WÐ.?Ó
@Ó@ðO Aùð
 @ùð* @ùð Pûse   …C,]9Ã2B)]9Æ7]9ÇD]9Ë-]-Ë.:]9Ì(]0Ì)C]9Ï0]3Ï1:]9Ð+]6Ð,I?]9Ú-C]9Ý0]9Ý3]9Ý6]9c              #   óD  ‡‡‡‡	K  — ˆˆˆ	ˆfd„}dŠdŠ|Š	t        | «      D ]p  \  }}‰r3|j                  «       r |«       –— |ŠdŠdŠ|d   |d   |z   fŠ	Œ5‰|z  ŠŒ;‰|z   }|j                  «       r|ŠŒS‰r |«       –— dŠ|d   |d   |z   fŠ	|ŠdŠŒr ‰r
 |«       –— y y ­w)Nc                  ó8   •— t        ‰rt        nt        ‰ ‰‰«      S rM   )r¬   r  r  )ÚfoundÚ
is_illegalrã   r;   s   €€€€r"   Úcreate_tokenz1_split_illegal_unicode_name.<locals>.create_token‰  s   ø€ Ü©�:¼¸uÀcÈ6ÓRÐRr!   r7   Fr   r¤   T)rÉ   r  )
rÕ   r¡   r;   r2  ÚiÚcharÚ	new_foundr0  r1  rã   s
     `    @@@r"   r  r  ˆ  sÔ   ûè ø€ ÷Sð €EØ€JØ
€CÜ˜UÖ#‰ˆˆ4ÙØ× Ñ Ô"Ù"“nÒ$Ø�Ø"�
Ø�Ø ‘l I¨a¡L°1Ñ$4Ð4‘à˜‘‘à ™ˆIØ×%Ñ%Ô'Ø!‘áÙ&›.Ò(Ø�FØ# A™,¨	°!©°qÑ(8Ð8�CØ�Ø!‘
ð) $ñ, Ù‹nÓð ùs   †BB Ú__main__r¤   z3.10)rW   )KÚ__doc__Ú
__future__r   ÚsysrN   Ú	itertoolsr8   Úcodecsr   Útypingr   r   r   r   r	   r
   r   r   r   Úparso.python.tokenr   Úparso.utilsr   r   r   rs   r  r  r  r  r  r  rý   r  r  rû   r  r  rÌ   r   Údecoder	  r#   r©   r   r.   r1   rK   rR   rX   Úunicode_character_namerÞ   rÝ   rÜ   rÛ   rV   rž   r¬   r³   rÖ   ré   r   rî   rõ   rí   r  r   ÚargvÚpathÚopenrC   Úreadrê   rÕ   rñ   r    r!   r"   Ú<module>rE     sÓ  ðò	õ 'ã 
Û 	Û Ý ÷÷ õ õ 0ß LÑ Lð €à	×	 Ñ	 €Ø×Ñ€Ø	×	 Ñ	 €Ø×Ñ€Ø
×
"Ñ
"€Ø	×	 Ñ	 €Ø	×	 Ñ	 €Ø×&Ñ&€	Ø×(Ñ(€
Ø×,Ñ,€Ø ×.Ñ.€Ø!×0Ñ0€Ø×*Ñ*€ô"�jô "ð "�(—/‘/ 'Ó*€àBDÐ ˜˜e C¨ H™o¨Ð>Ñ?Ó Dð "ô +ò!ð
 -2Àô ò:(òð ?Ð Ù%ØÐ2Ñ2Ø3ñ4óÐ ñ %ØÐ2Ñ2Ð5KÑKóÐ ñ #+Ð+KÓ"LÐ Ù!)¨)Ó!4Ð òiôXKˆJô Kô4�%ô 4÷@ñ @ò:&ò$%ðR OUòQØ
ðQØ % c¨3 h¡ðQØ<AÀ#ÀsÀ(¹OðQàˆkÑóQò	ð" Ø!'ØòZAØ�C‰=ðZAð ˜˜S˜‘/ðZAð �#‰Yð	ZAð
 �S˜#�X‰ðZAð ˆkÑóZAòzðB ˆzÒØ�8‰8�A‰;€DÙ	ˆdŒ�qØ�v‰v‹xˆ÷ 
ñ ˜$Ñ-AÀ&Ó-I×JˆÙˆe�ñ Kð ç	ˆús   ÇHÈH 