+
    öÙ†j[;  ã                  óX  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHt ^ RIHt R	t]'       d   ^ R
IHtHtHtHt RR.RR.RRR./tR R lt ! R R4      t ! R R4      t ! R R]4      t]! RR7       ! R R4      4       t ! R R4      t R# ) é    )ÚannotationsN)Ú
FileFinder)ÚStringIO)Úcontextmanager)Ú	dataclass)Úchain)Ú	TokenInfoF)ÚAnyÚIterableÚIteratorÚMappingÚcollectionsÚabcÚosÚpathzxml.parsers.expatÚerrorsÚmodelc               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚModuleCompleter© )Úformats   "Ú0/usr/lib/python3.14/_pyrepl/_module_completer.pyÚ__annotate__r      s   € ÷ <ñ < ñ <ó    c                 ó   € \        R R/R7      # )Ú__package__N)Ú	namespace)r   r   r   r   Úmake_default_module_completerr       s   € ä m°TÐ%:Ô;Ð;r   c                  ó¸   € ] tR t^$tRtRR R lltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R lt]R R l4       tRtR# )r   a$  A completer for Python import statements.

Examples:
    - import <tab>
    - import foo<tab>
    - import foo.<tab>
    - import foo as bar, baz<tab>

    - from <tab>
    - from foo<tab>
    - from foo import <tab>
    - from foo import bar<tab>
    - from foo import (bar as baz, qux<tab>
Nc               ó    € V ^8„  d   QhRRRR/# )r   r   zMapping[str, Any] | Noner   ÚNoner   )r   s   "r   r   ÚModuleCompleter.__annotate__4   s   € ÷ Cñ CÐ":ð CÀdñ Cr   c                	óà   € T;'       g    / V n         . V n        \        P                  R ,          V n        \
        P                  P                  \        P                  ^ ,          4      V n	        R# )ºNNNN)
r   Ú_global_cacheÚsysr   Ú_curr_sys_pathr   ÚdirnameÚ	importlibÚ__path__Ú_stdlib_path)Úselfr   s   &&r   Ú__init__ÚModuleCompleter.__init__4   sG   € Ø"Ÿ˜ bˆŒØ79ˆÔÜ),¯©°!­ˆÔÜŸG™GŸO™O¬I×,>Ñ,>¸qÕ,AÓBˆÖr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚlineÚstrr   zlist[str] | Noner   )r   s   "r   r   r$   :   s   € ÷ 
ñ 
 Cð 
Ð,<ñ 
r   c                ó�   € \        V4      P                  4       pV'       g   R#  V P                  ! V!  #   \         d    . u # i ; i)z7Return the next possible import completions for 'line'.N)ÚImportParserÚparseÚcompleteÚ	Exception)r.   r2   Úresults   && r   Úget_completionsÚModuleCompleter.get_completions:   sE   € ä˜dÓ#×)Ñ)Ó+ˆßÙð	Ø—=’= &Ñ)Ð)øÜô 	ð ŠIð	ús   ¥5 µAÁAc               ó$   € V ^8„  d   QhRRRRRR/# )r   Ú	from_nameú
str | NoneÚnamer   ú	list[str]r   )r   s   "r   r   r$   F   s!   € ÷ 2ñ 2 *ð 2°Jð 2À9ñ 2r   c                	ód  € VfK   Vf   Q hV P                  V4      w  r4V P                  W44      pV Uu. uF  q`P                  W64      NK  	  up# VfE   V P                  V4      w  r4V P                  W44      pV Uu. uF  q`P                  W64      NK  	  up# V P                  W4      # u upi u upi ©N)Úget_path_and_prefixÚfind_modulesÚformat_completion)r.   r=   r?   r   ÚprefixÚmodulesÚmodules   &&&    r   r7   ÚModuleCompleter.completeF   s¸   € ØÒàÒ#Ð#Ð#Ø×3Ñ3°DÓ9‰LˆDØ×'Ñ'¨Ó5ˆGÙGNÓOÁw¸V×*Ñ*¨4Ö8ÁwÑOÐOàŠ<à×3Ñ3°IÓ>‰LˆDØ×'Ñ'¨Ó5ˆGÙGNÓOÁw¸V×*Ñ*¨4Ö8ÁwÑOÐOð × Ñ  Ó1Ð1ùò Pùò Ps   ³B(Á;B-c               ó$   € V ^8„  d   QhRRRRRR/# ©r   r   r3   rF   r   r@   r   )r   s   "r   r   r$   W   s!   € ÷ >ñ > ð >¨cð >°iñ >r   c                ó€   € V P                  W4      pV Uu. uF  qDP                  4       '       g   K  VNK  	  up# u upi )z7Find all modules under 'path' that start with 'prefix'.)Ú_find_modulesÚisidentifier)r.   r   rF   rG   Úmods   &&&  r   rD   ÚModuleCompleter.find_modulesW   s7   € à×$Ñ$ TÓ2ˆñ  'Ó=™w˜×*:Ñ*:×*<—�™wÑ=Ð=ùÒ=s   –;²;c               ó$   € V ^8„  d   QhRRRRRR/# rK   r   )r   s   "r   r   r$   ^   s&   € ÷ ,Bñ ,B #ð ,B¨sð ,B°yñ ,Br   c                	ó¦  a € V'       g“   \         P                   Uu. uF  pS P                  W24      '       g   K  VNK   	  ppS P                   Uu. uF3  pS P                  VP                  V4      '       g   K'  VP                  NK5  	  pp\        WF,           4      # VP                  R 4      '       d4   S P                  P                  RR4      pS P                  W4      pVf   . # S P                  p\         P                  P                  VP                  R 4      ^ ,          4      p	V	'       ds   V	P                  p
V
'       d]   V Uu. uFO  pVP                  V
P                  8X  g   K   VP                  P                  VP                  R4      V
8X  g   KM  VNKQ  	  ppM. pRpVP                  R 4       FŠ  pV Uu. uF,  pVP                  '       g   K  VP                  V8X  g   K*  VNK.  	  ppVf;   \         ;QJ d    V 3R lV 4       F  '       d   K   RM	  RM! V 3R lV 4       4      pS P#                  V4      pKŒ  	  V Uu. uF  qUP                  NK  	  ppV'       d&   VP%                  \&        P                  VR4      4       V Uu. uF  pS P                  VV4      '       g   K  VNK!  	  up# u upi u upi u upi u upi u upi u upi )Ú.r   Ú Nc              3  óF   <"  € T F  pSP                  V4      x € K  	  R # 5irB   )Ú_is_stdlib_module)Ú.0Úmod_infor.   s   & €r   Ú	<genexpr>Ú0ModuleCompleter._find_modules.<locals>.<genexpr>�   s"   øé € ð 'ÙEL¸�D×*Ñ*¨8×4Ð4ÃWùs   ƒ!FTr   )r(   Úbuiltin_module_namesÚis_suggestion_matchÚglobal_cacher?   ÚsortedÚ
startswithr   ÚgetÚresolve_relative_namerG   ÚsplitÚ__spec__Úmodule_finderÚ	find_specÚispkgÚallÚiter_submodulesÚextendÚHARDCODED_SUBMODULES)r.   r   rF   r?   Úbuiltin_modulesrH   Úthird_party_modulesÚpackagerG   Úimported_moduleÚspecrO   Úis_stdlib_importÚsegmentrX   Úmodule_namesÚmodule_names   f&&              r   rM   ÚModuleCompleter._find_modules^   sƒ  ø€ ßä03×0HÒ0Hó JÑ0H¨Ø"&×":Ñ":¸4×"H÷  $˜tÑ0HˆOð Jà=A×=NÒ=Nó #UÑ=N°6Ø&*×&>Ñ&>¸v¿{¹{ÈF×&Sô $/ 6§;¤;Ñ=NÐð #Uä˜/Õ?Ó@Ð@à�?‰?˜3×Òà—n‘n×(Ñ(¨¸Ó;ˆGØ×-Ñ-¨dÓ<ˆDØŠ|Ø�	à04×0AÑ0AˆÜŸ+™+Ÿ/™/¨$¯*©*°S«/¸!Õ*<Ó=ˆßð #×+Ñ+ˆDßÙ*1ó T©' 3Ø!Ÿh™h¨$¯)©)Ñ3ô à"×0Ñ0×:Ñ:¸3¿8¹8ÀTÓJÈdÑR÷ ˜3©'�ð T�ð �à(,ÐØ—z‘z #–ˆGÙ07ó G± HØ"Ÿ.�.ô  Ø-5¯]©]¸gÑ-E÷  �x±ˆGð GàÒ'ç#&£3ô 'ÙELó'§3§3¢3ô 'ÙELó'ó $Ð ð ×*Ñ*¨7Ó3ŠGñ 'ñ 3:Ó:±'¨Ÿœ±'ˆÐ:ßØ×ÑÔ 4× 8Ñ 8¸¸rÓ BÔCÙ/;ó B©| Ø×+Ñ+¨K¸×@÷ �©|ñ Bð 	BùòQJùò#Uùò$TùòGùò ;ùòBsL   œJ5ºJ5Á$J:Á9J:ÅJ?Å)(J?ÆJ?Æ;KÇKÇ'KÉK	ÊKÊ,Kc               ó    € V ^8„  d   QhRRRR/# )r   Úmodule_infozpkgutil.ModuleInfor   Úboolr   )r   s   "r   r   r$   Œ   s   € ÷ Iñ IÐ-?ð IÀDñ Ir   c                	óŒ   € \        VP                  \        4      ;'       d$    VP                  P                  V P                  8H  # rB   )Ú
isinstancerd   r   r   r-   )r.   rv   s   &&r   rV   Ú!ModuleCompleter._is_stdlib_moduleŒ   s>   € Ü˜;×4Ñ4´jÓA÷ Hð HØ×-Ñ-×2Ñ2°d×6GÑ6GÑGð	Ir   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rs   r3   rF   r   rw   r   )r   s   "r   r   r$   �   s!   € ÷ /ñ /¨sð /¸Cð /ÀDñ /r   c                	ó`   € V'       d   VP                  V4      # VP                  R 4      '       * # )Ú_)r_   )r.   rs   rF   s   &&&r   r\   Ú#ModuleCompleter.is_suggestion_match�   s,   € ßØ×)Ñ)¨&Ó1Ð1ð ×)Ñ)¨#Ó.Ô.Ð.r   c               ó    € V ^8„  d   QhRRRR/# )r   Úparent_modulesúlist[pkgutil.ModuleInfo]r   zIterator[pkgutil.ModuleInfo]r   )r   s   "r   r   r$   —   s   € ÷ 6ñ 6Ð.Fð 6ÐKgñ 6r   c                ó  € V Uu. uF<  q"P                   '       g   K  VP                  P                  VP                  R4      NK>  	  pp\	        \
        P                  ! R V 4       4      4      p\        P                  ! V4      # u upi )z8Iterate over all submodules of the given parent modules.Nc              3  óN   "  € T F  q'       g   K  \        VR . 4      x € K  	  R# 5i)Úsubmodule_search_locationsN)Úgetattr)rW   ro   s   & r   rY   Ú2ModuleCompleter.iter_submodules.<locals>.<genexpr>›   s(   é € ð 3
á�£ô <ŒG�DÐ6¸×;Ð;Ûùs   ‚	%�%)	rf   rd   re   r?   Úsetr   Úfrom_iterableÚpkgutilÚiter_modules)r.   r€   ÚinfoÚspecsÚsearch_locationss   &&   r   rh   ÚModuleCompleter.iter_submodules—   s   € ñ ,ó;Ù+�T¯z­zô ?�×#Ñ#×-Ñ-¨d¯i©i¸Ö>Ù+ð 	ð ;äœu×2Ò2ñ 3
áó3
ó  
ó Ðô ×#Ò#Ð$4Ó5Ð5ùò;s
   …B�*Bc               ó    € V ^8„  d   QhRRRR/# )r   Údotted_namer3   r   ztuple[str, str]r   )r   s   "r   r   r$   ¡   s   € ÷ ñ ¨sð °ñ r   c                ó*  € RV9  d   RV3# VP                  R4      '       d\   VP                  R4      pR\        V4      \        V4      ,
          ,          pRV9  d   W23# VP                  R^4      w  rEW4,           V3# VP                  R^4      w  rEWE3# )z¯
Split a dotted name into an import path and a
final prefix that is to be completed.

Examples:
    'foo.bar' -> 'foo', 'bar'
    'foo.' -> 'foo', ''
    '.foo' -> '.', 'foo'
rS   rT   )r_   ÚlstripÚlenÚrsplit)r.   r�   ÚstrippedÚdotsr   rF   s   &&    r   rC   Ú#ModuleCompleter.get_path_and_prefix¡   sš   € ð �kÔ!Ø�{�?Ð"Ø×!Ñ! #×&Ò&Ø"×)Ñ)¨#Ó.ˆHØœ#˜kÓ*¬S°«]Õ:Õ;ˆDØ˜(Ô"Ø�~Ð%Ø#Ÿ?™?¨3°Ó2‰LˆDØ•; Ð&Ð&Ø"×)Ñ)¨#¨qÓ1‰ˆØˆ|Ðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r3   rH   r   r   )r   s   "r   r   r$   ·   s!   € ÷ "ñ " cð "°3ð "¸3ñ "r   c                	óX   € VR 8X  g   VP                  R4      '       d   V V 2# V RV 2# )rT   rS   )Úendswith)r.   r   rH   s   &&&r   rE   Ú!ModuleCompleter.format_completion·   s7   € Ø�2Œ:˜Ÿ™ s×+Ò+Ø�V˜F˜8Ð$Ð$Ø��q˜˜Ð!Ð!r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r?   r3   rm   r   r>   r   )r   s   "r   r   r$   ¼   s!   € ÷ 2ñ 2¨#ð 2¸ð 2À
ñ 2r   c                óÎ   € ^ pV F  pVR8w  d    MV^,          pK  	  VP                  RV^,
          4      p\        V4      V8  d   R# V^ ,          pWR pV'       d   V RV 2# T# )zpResolve a relative module name to an absolute name.

Example: resolve_relative_name('.foo', 'bar') -> 'bar.foo'
rS   N)r”   r“   )r.   r?   rm   ÚlevelÚ	characterÚbitsÚbases   &&&    r   ra   Ú%ModuleCompleter.resolve_relative_name¼   sv   € ð ˆÛˆIØ˜CÔÙØ�Q�JŠEñ ð �~‰~˜c 5¨1¥9Ó-ˆÜˆt‹9�uÔÙØ�A�wˆØ�Fˆ|ˆß#'�$��q˜˜ÐÐ1¨TÐ1r   c               ó   € V ^8„  d   QhRR/# )r   r   r�   r   )r   s   "r   r   r$   Ï   s   € ÷ "ñ "Ð6ñ "r   c                óú   € V P                   '       d    V P                  \        P                  8w  d@   \        P                  R,          V n        \	        \
        P                  ! 4       4      V n         V P                   # )zGlobal module cacher&   )r'   r)   r(   r   Úlistr‰   rŠ   ©r.   s   &r   r]   ÚModuleCompleter.global_cacheÎ   sS   € ð ×!×!Ð! T×%8Ñ%8¼C¿H¹HÔ%DÜ"%§(¡(¨1¥+ˆDÔÜ!%¤g×&:Ò&:Ó&<Ó!=ˆDÔØ×!Ñ!Ð!r   )r)   r'   r-   r   rB   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r/   r:   r7   rD   rM   rV   r\   rh   rC   rE   ra   Úpropertyr]   Ú__static_attributes__r   r   r   r   r   $   sV   † ñ÷Cõ
õ2õ">õ,Bõ\Iõ/õ6õõ,"õ
2ð$ ô"ó ô"r   r   c                  ó.  € ] tR t^×tRt]P                  ]P                  ]P                  ]P                  ]P                  ]P                  0t0 RmtR R ltR R ltR R ltR R	 ltR
 R ltR R ltR R ltR R ltR R ltR R ltR R ltRtR# )r5   aE  
Parses incomplete import statements that are
suitable for autocomplete suggestions.

Examples:
    - import foo          -> Result(from_name=None, name='foo')
    - import foo.         -> Result(from_name=None, name='foo.')
    - from foo            -> Result(from_name='foo', name=None)
    - from foo import bar -> Result(from_name='foo', name='bar')
    - from .foo import (  -> Result(from_name='.foo', name='')

Note that the parser works in reverse order, starting from the
last token in the input string. This makes the parser more robust
when parsing multiple statements.
c               ó    € V ^8„  d   QhRRRR/# )r   Úcoder3   r   r#   r   )r   s   "r   r   ÚImportParser.__annotate__í   s   € ÷ /ñ /˜Sð / Tñ /r   c                	óŒ  € Wn         . p \        P                  ! \        V4      P                  4       F1  pVP
                  V P                  9  g   K   VP                  V4       K3  	  \        VRRR1,          4      V n        R#   \        P                   d   pR \        T4      9  d   . p Rp?LHRp?i\         d    . p LZi ; i)zunexpected EOFNéÿÿÿÿ)r±   ÚtokenizeÚgenerate_tokensr   ÚreadlineÚtypeÚ_ignored_tokensÚappendÚ
TokenErrorr3   ÚSyntaxErrorÚ
TokenQueueÚtokens)r.   r±   r¾   ÚtÚes   &&   r   r/   ÚImportParser.__init__í   sž   € ØŒ	Øˆð	Ü×-Ò-¬h°t«n×.EÑ.EÖF�Ø—6‘6 ×!5Ñ!5Ö5Ø—M‘M !Ö$ñ Gô ! ©¨"¨¥Ó.ˆŽøô ×"Ñ"ô 	Ø¤s¨1£vÔ-ð
 �ÿøÜô 	ØŠFð	ús*   ŠAB ÁB ÂCÂB0Â0CÂ=CÃCc               ó   € V ^8„  d   QhRR/# )r   r   z$tuple[str | None, str | None] | Noner   )r   s   "r   r   r²   ÿ   s   € ÷ 'ñ 'Ð;ñ 'r   c                	óf   € V P                  4       ;p'       g   R # VP                  VP                  3# rB   )Ú_parser=   r?   )r.   Úress   & r   r6   ÚImportParser.parseÿ   s)   € Ø—{‘{“}Ð$�Ö$ÙØ�}‰}˜cŸh™hÐ&Ð&r   c               ó   € V ^8„  d   QhRR/# )r   r   zResult | Noner   )r   s   "r   r   r²     s   € ÷ 'ñ '˜ñ 'r   c                	óD  € V P                   P                  4       ;_uu_ 4        V P                  4       uuR R R 4       #   + '       g   i     M; iT P                   P                  4       ;_uu_ 4        T P                  4       uuR R R 4       #   + '       g   i     R # ; irB   )r¾   Ú
save_stateÚparse_from_importÚparse_importr¦   s   &r   rÄ   ÚImportParser._parse  s^   € Ø�[‰[×#Ñ#×%Õ%Ø×)Ñ)Ó+÷ &×%×%Ò%úà�[‰[×#Ñ#×%Õ%Ø×$Ñ$Ó&÷ &×%×%Ó%ús   £>¾A	Á3BÂB	c               ó   € V ^8„  d   QhRR/# ©r   r   ÚResultr   )r   s   "r   r   r²   
  s   € ÷ )ñ )˜fñ )r   c                	óÈ  € V P                   P                  4       P                  R 4      '       d.   V P                   P                  R4      '       d   \        RR7      # V P                  P                  R4      '       d   RpM<V P                   P                  R4      '       d   \        R4      hV P                  4       pVP                  R4      '       d   \        R4      hV P                  P                  R4      '       d-   V P                  P                  4        V P                  4        KM  V P                  P                  R 4      '       d   \        VR7      # \        R4      h)ÚimportÚ rT   )r?   Ú,rË   rS   )r±   Úrstriprš   rÏ   r¾   Úpeek_stringÚ
ParseErrorÚparse_dotted_namer_   ÚpopÚparse_dotted_as_name)r.   r?   s   & r   rË   ÚImportParser.parse_import
  sú   € Ø�9‰9×ÑÓ×&Ñ& x×0Ò0°T·Y±Y×5GÑ5GÈ×5LÒ5LÜ˜r”?Ð"Ø�;‰;×"Ñ" 3×'Ò'Ø‰Dà�y‰y×!Ñ! #×&Ò&Ü  Ó0Ð0Ø×)Ñ)Ó+ˆDØ�?‰?˜3×ÒÜ˜^Ó,Ð,Ø�k‰k×%Ñ% c×*Ò*Ø�K‰K�O‰OÔØ×%Ñ%Ö'Ø�;‰;×"Ñ" 8×,Ò,Ü˜tÔ$Ð$Ü˜Ó(Ð(r   c               ó   € V ^8„  d   QhRR/# rÎ   r   )r   s   "r   r   r²     s   € ÷ 6ñ 6 6ñ 6r   c                	ó„  € V P                   P                  4       pVP                  R 4      '       d=   V P                   P                  R4      '       d   \        V P	                  4       RR7      # VP                  R4      '       d.   V P                   P                  R4      '       d   \        RR7      # V P
                  P                  R4      '       g"   V P
                  P                  R4      '       d   \        V P	                  4       RR7      # V P                   P                  R4      '       d   \        R4      hV P                  4       pR	V9   d(   V P
                  P                  R4       \        VR7      # V P
                  P                  R4      '       d   \        VR7      # V P	                  4       p\        W2R7      # )
rÑ   rÒ   rT   )r=   r?   Úfrom)r=   Ú(rÓ   rÊ   rS   )
r±   rÔ   rš   rÏ   Úparse_empty_from_importr¾   rÕ   rÖ   r×   Ú
pop_string)r.   r•   r?   r=   s   &   r   rÊ   ÚImportParser.parse_from_import  sJ  € Ø—9‘9×#Ñ#Ó%ˆØ×Ñ˜X×&Ò&¨4¯9©9×+=Ñ+=¸c×+BÒ+BÜ D×$@Ñ$@Ó$BÈÔLÐLØ×Ñ˜V×$Ò$¨¯©×);Ñ);¸C×)@Ò)@Ü BÔ'Ð'Ø�;‰;×"Ñ" 3×'Ò'¨4¯;©;×+BÑ+BÀ3×+GÒ+GÜ D×$@Ñ$@Ó$BÈÔLÐLØ�9‰9×Ñ˜c×"Ò"ÜÐ0Ó1Ð1Ø×%Ñ%Ó'ˆØ�$Œ;Ø�K‰K×"Ñ" 6Ô*Ü DÔ)Ð)Ø�;‰;×"Ñ" 6×*Ò*Ü DÔ)Ð)Ø×0Ñ0Ó2ˆ	Ü 	Ô5Ð5r   c               ó   € V ^8„  d   QhRR/# ©r   r   r3   r   )r   s   "r   r   r²   /  s   € ÷ !ñ !¨ñ !r   c                	ód  € V P                   P                  R 4      '       d+   V P                   P                  4        V P                  4        V P                   P                  R4      '       d   V P                   P                  4        V P                   P	                  R4       V P                  4       # )rÓ   rÞ   rÑ   )r¾   rÕ   rØ   Úparse_as_namesrà   Ú
parse_fromr¦   s   &r   rß   Ú$ImportParser.parse_empty_from_import/  ss   € Ø�;‰;×"Ñ" 3×'Ò'Ø�K‰K�O‰OÔØ×ÑÔ!Ø�;‰;×"Ñ" 3×'Ò'Ø�K‰K�O‰OÔØ�‰×Ñ˜xÔ(Ø�‰Ó Ð r   c               ó   € V ^8„  d   QhRR/# rã   r   )r   s   "r   r   r²   8  s   € ÷ ñ ˜Cñ r   c                	ó\   € V P                  4       pV P                  P                  R 4       V# )rÝ   )r×   r¾   rà   )r.   r=   s   & r   ræ   ÚImportParser.parse_from8  s(   € Ø×*Ñ*Ó,ˆ	Ø�‰×Ñ˜vÔ&ØÐr   c               ó   € V ^8„  d   QhRR/# rã   r   )r   s   "r   r   r²   =  s   € ÷ ,ñ , cñ ,r   c                	óN  € V P                   P                  4        V P                   P                  R 4      '       d   V P                   P                  4        V P                   P	                  4       ;_uu_ 4        V P                  4       uuRRR4       #   + '       g   i     R# ; i©ÚasN)r¾   Úpop_namerÕ   rØ   rÉ   r×   r¦   s   &r   rÙ   Ú!ImportParser.parse_dotted_as_name=  sc   € Ø�‰×ÑÔØ�;‰;×"Ñ" 4×(Ò(Ø�K‰K�O‰OÔØ�[‰[×#Ñ#×%Õ%Ø×)Ñ)Ó+÷ &×%×%Ó%ús   Á8BÂB$	c               ó   € V ^8„  d   QhRR/# rã   r   )r   s   "r   r   r²   D  s   € ÷ #ñ # 3ñ #r   c                	óL  € . pV P                   P                  R 4      '       d,   VP                  R 4       V P                   P                  4        V P                   P	                  4       '       dg   V P                   P                  4       ;p'       dE   VP                  V P                  9  d*   VP                  V P                   P                  4       4       V'       g   \        R4      hV P                   P                  R 4      '       dµ   VP                  R 4       V P                   P                  4        V P                   P	                  4       '       di   V P                   P                  4       ;p'       dG   VP                  V P                  9  d,   VP                  V P                   P                  4       4       KÔ   V P                   P                  R 4      '       d.   VP                  R 4       V P                   P                  4        KN  RP                  VRRR1,          4      # )rS   r×   rT   Nr´   )r¾   rÕ   rº   rØ   Ú	peek_nameÚpeekÚstringÚ	_keywordsrï   rÖ   Újoin)r.   r?   Útoks   &  r   r×   ÚImportParser.parse_dotted_nameD  se  € ØˆØ�;‰;×"Ñ" 3×'Ò'Ø�K‰K˜ÔØ�K‰K�O‰OÔØ�K‰K×!Ñ!×#Ò#ØŸ™×(Ñ(Ó*Ð*�Ö*Ø—
‘
 $§.¡.Ô0Ø�K‰K˜Ÿ™×,Ñ,Ó.Ô/ßÜÐ0Ó1Ð1Ø�k‰k×%Ñ% c×*Ò*Ø�K‰K˜ÔØ�K‰K�O‰OÔØ—‘×%Ñ%×'Ò'Ø ŸK™K×,Ñ,Ó.Ð.�SÖ.Ø—J‘J d§n¡nÔ4Ø—‘˜DŸK™K×0Ñ0Ó2Ö3àà�k‰k×%Ñ% c×*Ò*Ø�K‰K˜ÔØ�K‰K�O‰OÖØ�w‰w�t™D˜b˜D•zÓ"Ð"r   c               ó   € V ^8„  d   QhRR/# ©r   r   r#   r   )r   s   "r   r   r²   ^  s   € ÷ !ñ ! ñ !r   c                	óÀ   € V P                  4        V P                  P                  R 4      '       d-   V P                  P                  4        V P                  4        KM  R# )rÓ   N)Úparse_as_namer¾   rÕ   rØ   r¦   s   &r   rå   ÚImportParser.parse_as_names^  sB   € Ø×ÑÔØ�k‰k×%Ñ% c×*Ò*Ø�K‰K�O‰OÔØ×ÑÖ ñ +r   c               ó   € V ^8„  d   QhRR/# rû   r   )r   s   "r   r   r²   d  s   € ÷ #ñ #˜tñ #r   c                	óè   € V P                   P                  4        V P                   P                  R 4      '       d7   V P                   P                  4        V P                   P                  4        R# R# rí   )r¾   rï   rÕ   rØ   r¦   s   &r   rý   ÚImportParser.parse_as_named  sJ   € Ø�‰×ÑÔØ�;‰;×"Ñ" 4×(Ò(Ø�K‰K�O‰OÔØ�K‰K× Ñ Ö"ñ )r   )r±   r¾   N>   rî   rÝ   rÑ   )r¨   r©   rª   r«   r¬   ÚtokenÚINDENTÚDEDENTÚCOMMENTÚNLÚNEWLINEÚ	ENDMARKERr¹   rö   r/   r6   rÄ   rË   rÊ   rß   ræ   rÙ   r×   rå   rý   r®   r   r   r   r5   r5   ×   sy   † ñð  	�‰�e—l‘l E§M¡MØ�‰�%—-‘- §¡ð€Oò )€Iõ/õ$'õ
'õ)õ$6õ&!õõ
,õ#õ4!÷#ñ #r   r5   c                  ó   € ] tR tRtRtR# )rÖ   ik  r   N)r¨   r©   rª   r«   r®   r   r   r   rÖ   rÖ   k  s   † Ûr   rÖ   T)Úfrozenc                  ó4   € ] tR tRt$ RtR]R&   RtR]R&   RtR# )rÏ   io  Nr>   r=   r?   r   )r¨   r©   rª   r«   r=   Ú__annotations__r?   r®   r   r   r   rÏ   rÏ   o  s   ‡ à €IˆzÓ Ø€Dˆ*×r   rÏ   c                  ó�   € ] tR tRtRtR R lt]R R l4       tR R ltR	 R
 lt	R R lt
R R ltR R ltR R ltR R ltRtR# )r½   iu  z@Provides helper functions for working with a sequence of tokens.c               ó    € V ^8„  d   QhRRRR/# )r   r¾   zlist[TokenInfo]r   r#   r   )r   s   "r   r   ÚTokenQueue.__annotate__x  s   € ÷ #ñ #˜ð #°4ñ #r   c                	ó.   € Wn         ^ V n        . V n        R# )r   N)r¾   ÚindexÚstack)r.   r¾   s   &&r   r/   ÚTokenQueue.__init__x  s   € Ø'-ŒØˆŒ
Ø "ˆŽ
r   c               ó   € V ^8„  d   QhRR/# )r   r   r
   r   )r   s   "r   r   r  ~  s   € ÷ ñ ˜Cñ r   c              #  	óø   "  €  V P                   P                  V P                  4       R x € V P                   P                  4        R #   \         d$    T P                   P                  4       T n         R # i ; i5irB   )r  rº   r  rØ   rÖ   r¦   s   &r   rÉ   ÚTokenQueue.save_state}  sU   é € ð	Ø�J‰J×Ñ˜dŸj™jÔ)Ûð �J‰J�N‰NÖøô ô 	*ØŸ™Ÿ™Ó)ˆD�Jð	*üs'   ‚A:„)A	 ­A:Á	*A7Á3A:Á6A7Á7A:c               ó   € V ^8„  d   QhRR/# ©r   r   rw   r   )r   s   "r   r   r  ‡  s   € ÷ -ñ -˜$ñ -r   c                	óF   € V P                   \        V P                  4      8  # rB   )r  r“   r¾   r¦   s   &r   Ú__bool__ÚTokenQueue.__bool__‡  s   € Ø�z‰zœC §¡Ó,Ñ,Ð,r   c               ó   € V ^8„  d   QhRR/# )r   r   zTokenInfo | Noner   )r   s   "r   r   r  Š  s   € ÷ 'ñ 'Ð&ñ 'r   c                	óP   € V '       g   R # V P                   V P                  ,          # rB   )r¾   r  r¦   s   &r   rô   ÚTokenQueue.peekŠ  s   € ßÙØ�{‰{˜4Ÿ:™:Õ&Ð&r   c               ó   € V ^8„  d   QhRR/# r  r   )r   s   "r   r   r  �  s   € ÷ &ñ &˜4ñ &r   c                	óp   € V P                  4       ;p'       g   R # VP                  \        P                  8H  # ©F)rô   r¸   r  ÚNAME©r.   rø   s   & r   ró   ÚTokenQueue.peek_name�  s)   € Ø—y‘y“{Ð"�Ö"ÙØ�x‰xœ5Ÿ:™:Ñ%Ð%r   c               ó   € V ^8„  d   QhRR/# rã   r   )r   s   "r   r   r  ”  s   € ÷ ñ ˜#ñ r   c                	óŽ   € V P                  4       pVP                  \        P                  8w  d   \	        R 4      hVP
                  # )rï   )rØ   r¸   r  r"  rÖ   rõ   r#  s   & r   rï   ÚTokenQueue.pop_name”  s2   € Ø�h‰h‹jˆØ�8‰8”u—z‘zÔ!Ü˜ZÓ(Ð(Ø�z‰zÐr   c               ó    € V ^8„  d   QhRRRR/# )r   rõ   r3   r   rw   r   )r   s   "r   r   r  š  s   € ÷ $ñ $ #ð $¨$ñ $r   c                	óT   € V P                  4       ;p'       g   R # VP                  V8H  # r!  )rô   rõ   ©r.   rõ   rø   s   && r   rÕ   ÚTokenQueue.peek_stringš  s%   € Ø—y‘y“{Ð"�Ö"ÙØ�z‰z˜VÑ#Ð#r   c               ó    € V ^8„  d   QhRRRR/# )r   rõ   r3   r   r   )r   s   "r   r   r  Ÿ  s   € ÷ ñ  ð ¨ñ r   c                	ór   € V P                  4       pVP                  V8w  d   \        R 4      hVP                  # )rà   )rØ   rõ   rÖ   r*  s   && r   rà   ÚTokenQueue.pop_stringŸ  s.   € Ø�h‰h‹jˆØ�:‰:˜ÔÜ˜\Ó*Ð*Ø�z‰zÐr   c               ó   € V ^8„  d   QhRR/# )r   r   r	   r   )r   s   "r   r   r  ¥  s   € ÷ ñ �Yñ r   c                	ó˜   € V '       g   \        R 4      hV P                  V P                  ,          pV ;P                  ^,          un        V# )rØ   )rÖ   r¾   r  r#  s   & r   rØ   ÚTokenQueue.pop¥  s4   € ßÜ˜UÓ#Ð#Ø�k‰k˜$Ÿ*™*Õ%ˆØ�
Š
�a��
Øˆ
r   )r  r  r¾   N)r¨   r©   rª   r«   r¬   r/   r   rÉ   r  rô   ró   rï   rÕ   rà   rØ   r®   r   r   r   r½   r½   u  sF   † ÙJõ#ð
 ôó ðõ-õ'õ
&õ
õ$õ
÷ñ r   r½   )!Ú
__future__r   r+   r   r‰   r(   r  rµ   Úimportlib.machineryr   Úior   Ú
contextlibr   Údataclassesr   Ú	itertoolsr   r	   ÚTYPE_CHECKINGÚtypingr
   r   r   r   rj   r    r   r5   r8   rÖ   rÏ   r½   r   r   r   Ú<module>r:     s¯   ðÝ "ã Û 	Û Û 
Û Û Ý *Ý Ý %Ý !Ý Ý à€çß7Ó7ð �E�7Øˆ6ˆ(Ø˜( GÐ,ðÐ õ<÷
p"ñ p"÷fQ#ñ Q#ôh	�ô 	ñ �$Ô÷ð ó ð÷
5ó 5r   