§
    (¶Õi“\  ã                   ó  — d Z ddlZddlZddlZddlZddlZddlZddlZdZ	dZ
dZdZdZdZdZi Zd	„ Zi Zd
„ Zdd„Z G d„ d¦  «        Z G d„ d¦  «        Zd„ Zedk    r$	  e¦   «         ZdS # e$ r  ed¦  «         Y dS w xY wdS )z3Find modules used by a script, using introspection.é    Né   é   é   é   é   é   c                 ób   — t                                | g ¦  «                             |¦  «         d S ©N)ÚpackagePathMapÚ
setdefaultÚappend)ÚpackagenameÚpaths     ú#/usr/lib/python3.11/modulefinder.pyÚAddPackagePathr      s,   € Ý×Ò˜k¨2Ñ.Ô.×5Ò5°dÑ;Ô;Ð;Ð;Ð;ó    c                 ó   — |t           | <   d S r
   )ÚreplacePackageMap)ÚoldnameÚnewnames     r   ÚReplacePackager   )   s   € Ø!(Õ�gÑÐÐr   c                 ó®  — t           j        j                             ¦   «          t           j        j                             | |¦  «        }|€%t          d                     | ¬¦  «        | ¬¦  «        ‚|j        t           j        j        u rddddt          ffS |j        t           j        j
        u rddddt          ffS |j        }|j                             | ¦  «        r*dt          j                             |¦  «        ddt"          ffS t%          |j        t           j        j        ¦  «        rt(          }net%          |j        t           j        j        ¦  «        rt,          }n9t%          |j        t           j        j        ¦  «        rt0          }nddddt2          ffS t5          j        |¦  «        }t          j                             |¦  «        d         }|||d|ffS )zDAn importlib reimplementation of imp.find_module (for our purposes).NzNo module named {name!r})ÚnameÚ éÿÿÿÿÚrb)Ú	importlibÚ	machineryÚ
PathFinderÚinvalidate_cachesÚ	find_specÚImportErrorÚformatÚloaderÚBuiltinImporterÚ
_C_BUILTINÚFrozenImporterÚ
_PY_FROZENÚoriginÚ
is_packageÚosr   ÚdirnameÚ_PKG_DIRECTORYÚ
isinstanceÚSourceFileLoaderÚ
_PY_SOURCEÚExtensionFileLoaderÚ_C_EXTENSIONÚSourcelessFileLoaderÚ_PY_COMPILEDÚ_SEARCH_ERRORÚioÚ	open_codeÚsplitext)r   r   ÚspecÚ	file_pathÚkindÚfileÚsuffixs          r   Ú_find_moduler>   -   s©  € õ ÔÔ"×4Ò4Ñ6Ô6Ð6åÔÔ)×3Ò3°D¸$Ñ?Ô?€Dà€|ÝÐ4×;Ò;ÀÐ;ÑFÔFÈTÐRÑRÔRÐRð „{•iÔ)Ô9Ð9Ð9Ø�T˜B ¥JÐ/Ð/Ð/à„{•iÔ)Ô8Ð8Ð8Ø�T˜B ¥JÐ/Ð/Ð/à”€Ià„{×Ò˜dÑ#Ô#ð JØ•R”W—_’_ YÑ/Ô/°"°b½.Ð1IÐIÐIå�$”+�yÔ2ÔCÑDÔDð 
3Ýˆˆå	�D”K¥Ô!4Ô!HÑ	IÔ	Ið 3Ýˆˆå	�D”K¥Ô!4Ô!IÑ	JÔ	Jð 3Ýˆˆð �T˜B ¥MÐ2Ð2Ð2åŒ<˜	Ñ"Ô"€DÝŒW×Ò˜iÑ(Ô(¨Ô,€Fà�˜V T¨4Ð0Ð0Ð0r   c                   ó   — e Zd Zdd„Zd„ ZdS )ÚModuleNc                 óZ   — || _         || _        || _        d | _        i | _        i | _        d S r
   )Ú__name__Ú__file__Ú__path__Ú__code__ÚglobalnamesÚstarimports)Úselfr   r<   r   s       r   Ú__init__zModule.__init__\   s8   € ØˆŒØˆŒØˆŒØˆŒð ˆÔð ˆÔÐÐr   c                 ót   — d| j         ›�}| j        �|d| j        ›�z   }| j        �|d| j        ›�z   }|dz   }|S )NzModule(ú, ú))rB   rC   rD   )rH   Úss     r   Ú__repr__zModule.__repr__i   sT   € € Øœ=˜=Ð*ˆØŒ=Ð$Ø�˜dœm˜mÐ-Ñ-ˆAØŒ=Ð$Ø�˜dœm˜mÐ-Ñ-ˆAØ�‰GˆØˆr   )NN)rB   Ú
__module__Ú__qualname__rI   rN   © r   r   r@   r@   Z   s7   € € € € € ðð ð ð ðð ð ð ð r   r@   c                   ó°   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zdd
„Z	dd„Z
d„ Zd„ Zd d„Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd!d„Zd„ Zd„ Zd„ Zd„ ZdS )"ÚModuleFinderNr   c                 ó¢   — |€t           j        }|| _        i | _        i | _        || _        d| _        |�|ng | _        |�|ng | _        g | _        d S )Nr   )	Úsysr   ÚmodulesÚ
badmodulesÚdebugÚindentÚexcludesÚreplace_pathsÚprocessed_paths)rH   r   rX   rZ   r[   s        r   rI   zModuleFinder.__init__t   s`   € Øˆ<Ý”8ˆDØˆŒ	ØˆŒØˆŒØˆŒ
ØˆŒØ$,Ð$8˜˜¸bˆŒØ.;Ð.G˜]˜]ÈRˆÔØ!ˆÔÐÐr   c                 óô   — || j         k    rlt          | j        ¦  «        D ]}t          dd¬¦  «         Œt          |d¬¦  «         |D ] }t          t	          |¦  «        d¬¦  «         Œ!t          ¦   «          d S d S )Nú   ú ©Úend)rX   ÚrangerY   ÚprintÚrepr)rH   ÚlevelÚstrÚargsÚiÚargs         r   ÚmsgzModuleFinder.msg€   s‘   € Ø�D”JÒÐÝ˜4œ;Ñ'Ô'ð &ð &�Ý�e Ð%Ñ%Ô%Ð%Ð%Ý�#˜3ÐÑÔÐØð *ð *�Ý•d˜3‘i”i SÐ)Ñ)Ô)Ð)Ð)Ý‰GŒGˆGˆGˆGð Ðr   c                 ób   — |d         }|| j         k    r| j        dz   | _         | j        |Ž  d S d S ©Nr   r   ©rX   rY   rj   ©rH   rg   re   s      r   ÚmsginzModuleFinder.msgin‰   ó>   € Ø�Q”ˆØ�D”JÒÐØœ+¨™/ˆDŒKØˆDŒH�dˆOˆOˆOˆOð Ðr   c                 ób   — |d         }|| j         k    r| j        dz
  | _         | j        |Ž  d S d S rl   rm   rn   s      r   ÚmsgoutzModuleFinder.msgout�   rp   r   c                 óÒ   — |                       dd|¦  «         t          j        |¦  «        5 }ddt          f}|                      d|||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   Ú
run_scriptr   r   Ú__main__)rj   r6   r7   r0   Úload_module)rH   ÚpathnameÚfpÚstuffs       r   rt   zModuleFinder.run_script•   s¯   € Ø�Š��L (Ñ+Ô+Ð+ÝŒ\˜(Ñ#Ô#ð 	> rØ˜�zÐ*ˆEØ×Ò˜Z¨¨X°uÑ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>s   ¬#AÁA Á#A c                 ó,  — t           j                             |¦  «        \  }}t           j                             |¦  «        \  }}t	          j        |¦  «        5 }|dt          f}|                      ||||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )r+   r   Úsplitr8   r6   r7   r0   rv   )rH   rw   Údirr   Úextrx   ry   s          r   Ú	load_filezModuleFinder.load_file›   sÉ   € Ý”G—M’M (Ñ+Ô+‰	ˆˆTÝ”G×$Ò$ TÑ*Ô*‰	ˆˆcÝŒ\˜(Ñ#Ô#ð 	8 rØ˜$¥
Ð+ˆEØ×Ò˜T 2 x°Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s   Á#B	Â	BÂBr   c                 ó  — |                       dd||||¦  «         |                      ||¬¦  «        }|                      ||¦  «        \  }}|                      ||¦  «        }|s|S |j        r|                      ||¦  «         d S )Nr   Úimport_hook©re   )rj   Údetermine_parentÚfind_head_packageÚ	load_tailrD   Úensure_fromlist)	rH   r   ÚcallerÚfromlistre   ÚparentÚqÚtailÚms	            r   r€   zModuleFinder.import_hook¢   s”   € Ø�Š��M 4¨°¸5ÑAÔAÐAØ×&Ò& v°UÐ&Ñ;Ô;ˆØ×(Ò(¨°Ñ6Ô6‰ˆˆ4Ø�NŠN˜1˜dÑ#Ô#ˆØð 	ØˆHØŒ:ð 	.Ø× Ò   HÑ-Ô-Ð-Øˆtr   c                 óH  — |                       dd||¦  «         |r|dk    r|                      dd¦  «         d S |j        }|dk    r½|j        r|dz  }|dk    r,| j        |         }||u sJ ‚|                      dd|¦  «         |S |                     d¦  «        |k     rt          d¦  «        ‚d                     |                     d¦  «        d | …         ¦  «        }| j        |         }|                      dd|¦  «         |S |j        r,| j        |         }||u sJ ‚|                      dd|¦  «         |S d|v rR| 	                    d¦  «        }|d |…         }| j        |         }|j        |k    sJ ‚|                      dd|¦  «         |S |                      dd¦  «         d S )	Né   r‚   r   zdetermine_parent -> Noner   zdetermine_parent ->ú.zrelative importpath too deep)
ro   rr   rB   rD   rV   Úcountr"   Újoinr{   Úrfind)rH   r†   re   Úpnamerˆ   rh   s         r   r‚   zModuleFinder.determine_parent­   sß  € Ø�
Š
�1Ð(¨&°%Ñ8Ô8Ð8Øð 	˜ !š˜Ø�KŠK˜Ð5Ñ6Ô6Ð6Ø�4Ø”ˆØ�AŠ:ˆ:ØŒð Ø˜‘
�Ø˜ŠzˆzØœ eÔ,�Ø Ð'Ð'Ð'Ð'Ø—’˜AÐ4°fÑ=Ô=Ð=Ø�Ø�{Š{˜3ÑÔ %Ò'Ð'Ý!Ð"@ÑAÔAÐAØ—H’H˜UŸ[š[¨Ñ-Ô-¨g°¨v¨gÔ6Ñ7Ô7ˆEØ”\ %Ô(ˆFØ�KŠK˜Ð0°&Ñ9Ô9Ð9ØˆMØŒ?ð 	Ø”\ %Ô(ˆFØ˜VÐ#Ð#Ð#Ð#Ø�KŠK˜Ð0°&Ñ9Ô9Ð9ØˆMØ�%ˆ<ˆ<Ø—’˜CÑ Ô ˆAØ˜"˜1˜"”IˆEØ”\ %Ô(ˆFØ”? eÒ+Ð+Ð+Ð+Ø�KŠK˜Ð0°&Ñ9Ô9Ð9ØˆMØ�Š�AÐ1Ñ2Ô2Ð2Øˆtr   c                 óô  — |                       dd||¦  «         d|v r-|                     d¦  «        }|d |…         }||dz   d …         }n|}d}|r|j        ›d|›�}n|}|                      |||¦  «        }|r|                      dd||f¦  «         ||fS |r:|}d }|                      |||¦  «        }|r|                      dd||f¦  «         ||fS |                      dd|¦  «         t          d|z   ¦  «        ‚)	Nr�   rƒ   rŽ   r   r   zfind_head_package ->ú"raise ImportError: No module namedúNo module named )ro   ÚfindrB   Úimport_modulerr   r"   )rH   rˆ   r   rh   ÚheadrŠ   Úqnamer‰   s           r   rƒ   zModuleFinder.find_head_packageÐ   sA  € Ø�
Š
�1Ð)¨6°4Ñ8Ô8Ð8Ø�$ˆ;ˆ;Ø—	’	˜#‘”ˆAØ˜˜˜”8ˆDØ˜˜!™˜˜”:ˆDˆDàˆDØˆDØð 	Ø%œ˜˜°°Ð5ˆEˆEàˆEØ×Ò˜t U¨FÑ3Ô3ˆØð 	Ø�KŠK˜Ð1°A°t°9Ñ=Ô=Ð=Ø�d�7ˆNØð 	ØˆEØˆFØ×"Ò" 4¨°Ñ7Ô7ˆAØð Ø—’˜AÐ5¸¸4°yÑAÔAÐAØ˜$�w�Ø�Š�AÐ;¸UÑCÔCÐCÝÐ,¨uÑ4Ñ5Ô5Ð5r   c                 óŽ  — |                       dd||¦  «         |}|r‘|                     d¦  «        }|dk     rt          |¦  «        }|d |…         ||dz   d …         }}|j        ›d|›�}|                      |||¦  «        }|s)|                      dd|¦  «         t          d|z   ¦  «        ‚|°‘|                      dd|¦  «         |S )	Nr�   r„   rŽ   r   r   r”   r•   zload_tail ->)ro   r–   ÚlenrB   r—   rr   r"   )rH   r‰   rŠ   r‹   rh   r˜   Úmnames          r   r„   zModuleFinder.load_tailë   sé   € Ø�
Š
�1�k 1 dÑ+Ô+Ð+ØˆØð 	>Ø—	’	˜#‘”ˆAØ�1Šuˆu�#˜d™)œ)�aØ˜b˜q˜bœ 4¨¨!©¨¨¤:�$ˆDØ œz˜z˜z¨4¨4Ð0ˆEØ×"Ò" 4¨°Ñ2Ô2ˆAØð >Ø—’˜AÐCÀUÑKÔKÐKÝ!Ð"4°uÑ"<Ñ=Ô=Ð=ð ð 	>ð 	�Š�A�~ qÑ)Ô)Ð)Øˆr   c                 ó>  — |                       dd|||¦  «         |D ]€}|dk    r1|s.|                      |¦  «        }|r|                      ||d¦  «         Œ9t          ||¦  «        s7|j        ›d|›�}|                      |||¦  «        }|st          d|z   ¦  «        ‚Œ�d S )Nr�   r…   Ú*r   rŽ   r•   )rj   Úfind_all_submodulesr…   ÚhasattrrB   r—   r"   )rH   r‹   r‡   Ú	recursiveÚsubÚallÚsubnameÚsubmods           r   r…   zModuleFinder.ensure_fromlistú   s×   € Ø�Š�Ð% q¨(°IÑ>Ô>Ð>Øð 
	Dð 
	DˆCØ�cŠzˆzØ ð 8Ø×2Ò2°1Ñ5Ô5�CØð 8Ø×,Ò,¨Q°°QÑ7Ô7Ð7øÝ˜Q ‘_”_ð DØ%&¤Z Z Z°°Ð5�Ø×+Ò+¨C°¸!Ñ<Ô<�Øð DÝ%Ð&8¸7Ñ&BÑCÔCÐCøð
	Dð 
	Dr   c                 ó  — |j         sd S i }g }|t          j        j        d d …         z  }|t          j        j        d d …         z  }|t          j        j        d d …         z  }|j         D ]ƒ}	 t          j        |¦  «        }n'# t          $ r |  	                    dd|¦  «         Y Œ;w xY w|D ]A}d }|D ]-}t          |¦  «        }	||	 d …         |k    r|d |	 …         } nŒ.|r|dk    r|||<   ŒBŒ„|                     ¦   «         S )Nr   zcan't list directoryrI   )rD   r   r   ÚEXTENSION_SUFFIXESÚSOURCE_SUFFIXESÚBYTECODE_SUFFIXESr+   ÚlistdirÚOSErrorrj   r›   Úkeys)
rH   r‹   rV   Úsuffixesr|   Únamesr   ÚmodÚsuffÚns
             r   rŸ   z ModuleFinder.find_all_submodules  sU  € ØŒzð 	ØˆFØˆð ˆØ•IÔ'Ô:¸1¸1¸1Ô=Ñ=ˆØ•IÔ'Ô7¸¸¸Ô:Ñ:ˆØ•IÔ'Ô9¸!¸!¸!Ô<Ñ<ˆØ”:ð 	'ð 	'ˆCðÝœ
 3™œ��øÝð ð ð Ø—’˜Ð2°CÑ8Ô8Ð8Ø�ðøøøð ð 'ð '�Ø�Ø$ð ð �DÝ˜D™	œ	�AØ˜Q˜B˜C˜C”y DÒ(Ð(Ø" 3 Q B 3œi˜Ø˜ð )ð ð '˜3 *Ò,Ð,Ø#&�G˜C‘Løð'ð �|Š|‰~Œ~Ðs   Á,BÂ!B%Â$B%c                 ó®  — |                       dd|||¦  «         	 | j        |         }|                      dd|¦  «         |S # t          $ r Y nw xY w|| j        v r|                      dd¦  «         d S |r|j        €|                      dd¦  «         d S 	 |                      ||o|j        |¦  «        \  }}}n(# t          $ r |                      ddd ¦  «         Y d S w xY w	 |                      ||||¦  «        }|r| 	                    ¦   «          n# |r| 	                    ¦   «          w w xY w|rt          |||¦  «         |                      dd|¦  «         |S )Nr   r—   zimport_module ->zimport_module -> None)ro   rV   rr   ÚKeyErrorrW   rD   Úfind_moduler"   rv   ÚcloseÚsetattr)rH   ÚpartnameÚfqnamerˆ   r‹   rx   rw   ry   s           r   r—   zModuleFinder.import_module$  s·  € Ø�
Š
�1�o x°¸Ñ@Ô@Ð@ð	Ø”˜VÔ$ˆAð �KŠK˜Ð-¨qÑ1Ô1Ð1ØˆHøõ	 ð 	ð 	ð 	ØˆDð	øøøð
 �T”_Ð$Ð$Ø�KŠK˜Ð2Ñ3Ô3Ð3Ø�4Øð 	�f”oÐ-Ø�KŠK˜Ð2Ñ3Ô3Ð3Ø�4ð	Ø"&×"2Ò"2°8Ø39Ð3M¸f¼oÈvñ#Wô #WÑˆB�˜%˜%øåð 	ð 	ð 	Ø�KŠK˜Ð-¨tÑ4Ô4Ð4Ø�4�4ð	øøøð	Ø× Ò  ¨¨X°uÑ=Ô=ˆAàð Ø—’‘
”
�
øøð ð Ø—’‘
”
�
�
ðøøøàð 	)Ý�F˜H aÑ(Ô(Ð(Ø�Š�AÐ)¨1Ñ-Ô-Ð-Øˆs/   ›A Á
AÁAÂ"B7 Â7!CÃCÃ D ÄD(c                 óF  — |\  }}}|                       dd||od|¦  «         |t          k    r/|                      ||¦  «        }|                      dd|¦  «         |S |t          k    r$t          |                     ¦   «         |d¦  «        }	n¨|t          k    r›	 |                     ¦   «         }
t          j	         
                    |
|i ¦  «         n:# t          $ r-}|                      ddt          |¦  «        z   |¦  «         ‚ d }~ww xY wt          j        t          |
¦  «        dd …         ¦  «        }	nd }	|                      |¦  «        }||_        |	r9| j        r|                      |	¦  «        }	|	|_        |                      |	|¦  «         |                      dd|¦  «         |S )Nr   rv   rx   zload_module ->Úexeczraise ImportError: é   )ro   r-   Úload_packagerr   r0   ÚcompileÚreadr4   r   Ú_bootstrap_externalÚ_classify_pycr"   rf   ÚmarshalÚloadsÚ
memoryviewÚ
add_modulerC   r[   Úreplace_paths_in_coderE   Ú	scan_code)rH   r¸   rx   rw   Ú	file_infor=   ÚmodeÚtyper‹   ÚcoÚdataÚexcs               r   rv   zModuleFinder.load_moduleD  s«  € Ø&Ñˆ��dØ�
Š
�1�m V¨R¨[°D¸(ÑCÔCÐCØ•>Ò!Ð!Ø×!Ò! &¨(Ñ3Ô3ˆAØ�KŠK˜Ð+¨QÑ/Ô/Ð/ØˆHØ•:ÒÐÝ˜Ÿš™œ H¨fÑ5Ô5ˆBˆBØ•\Ò!Ð!ðØ—w’w‘y”y�ÝÔ-×;Ò;¸DÀ&È"ÑMÔMÐMÐMøÝð ð ð Ø—’˜AÐ4µs¸3±x´xÑ?ÀÑJÔJÐJØøøøøðøøøõ ”�z¨$Ñ/Ô/°°°Ô4Ñ5Ô5ˆBˆBàˆBØ�OŠO˜FÑ#Ô#ˆØˆŒ
Øð 	"ØÔ!ð 4Ø×/Ò/°Ñ3Ô3�ØˆAŒJØ�NŠN˜2˜qÑ!Ô!Ð!Ø�Š�AÐ'¨Ñ+Ô+Ð+Øˆs   Â5C Ã
DÃ(C?Ã?Dc                 ó~   — || j         vr
i | j         |<   |rd| j         |         |j        <   d S d| j         |         d<   d S )Nr   ú-)rW   rB   )rH   r   r†   s      r   Ú_add_badmodulezModuleFinder._add_badmodulea  sS   € Ø�t”Ð&Ð&Ø$&ˆDŒO˜DÑ!Øð 	+Ø56ˆDŒO˜DÔ! &¤/Ñ2Ð2Ð2à)*ˆDŒO˜DÔ! #Ñ&Ð&Ð&r   c           	      óò  — || j         v r|                      ||¦  «         d S 	 |                      |||¬¦  «         |r™|D ]˜}|dz   |z   }|| j         v r|                      ||¦  «         Œ*	 |                      |||g|¬¦  «         ŒF# t          $ rD}|                      ddt          |¦  «        ¦  «         |                      ||¦  «         Y d }~Œ�d }~ww xY wd S d S # t          $ rE}|                      ddt          |¦  «        ¦  «         |                      ||¦  «         Y d }~d S d }~wt          $ rE}|                      ddt          |¦  «        ¦  «         |                      ||¦  «         Y d }~d S d }~ww xY w)Nr�   rŽ   r   zImportError:zSyntaxError:)rW   rÏ   r€   r"   rj   rf   ÚSyntaxError)rH   r   r†   r‡   re   r¢   Úfullnamerj   s           r   Ú_safe_import_hookzModuleFinder._safe_import_hooki  sñ  € à�4”?Ð"Ð"Ø×Ò  fÑ-Ô-Ð-ØˆFð	>Ø×Ò˜T 6°ÐÑ7Ô7Ð7ð ð 
>Ø#ð 	>ð 	>�CØ# c™z¨CÑ/�HØ 4¤?Ð2Ð2Ø×+Ò+¨H°fÑ=Ô=Ð=Ø ð>Ø×(Ò(¨¨v¸°uÀEÐ(ÑJÔJÐJÐJøÝ&ð >ð >ð >ØŸš  NµC¸±H´HÑ=Ô=Ð=Ø×+Ò+¨H°fÑ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=øøøøð>øøøð
>ð 
>ð	>ð 	>øõ ð 	.ð 	.ð 	.Ø�HŠH�Q˜­¨C©¬Ñ1Ô1Ð1Ø×Ò  fÑ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-øøøøÝð 	.ð 	.ð 	.Ø�HŠH�Q˜­¨C©¬Ñ1Ô1Ð1Ø×Ò  fÑ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-øøøøð	.øøøs;   £C Á*BÂ
CÂ:CÃCÃ
E6Ã$:D$Ä$E6Ä1:E1Å1E6c              #   ó¬   K  — t          j        |¦  «        D ]	}d|ffV — Œ
t          j        |¦  «        D ]\  }}}|dk    r	d||ffV — Œd|||ffV — Œd S )NÚstorer   Úabsolute_importÚrelative_import)ÚdisÚ_find_store_namesÚ_find_imports)rH   rÊ   r   re   r‡   s        r   Úscan_opcodeszModuleFinder.scan_opcodesƒ  s¢   è è € åÔ)¨"Ñ-Ô-ð 	#ð 	#ˆDØ˜D˜7Ð"Ð"Ð"Ð"Ð"Ý%(Ô%6°rÑ%:Ô%:ð 	Að 	AÑ!ˆD�%˜Ø˜ŠzˆzØ'¨(°DÐ)9Ð9Ð9Ð9Ð9Ð9à'¨%°¸4Ð)@Ð@Ð@Ð@Ð@Ð@ð		Að 	Ar   c                 óŒ  — |j         }| j        } ||¦  «        D �]k\  }}|dk    r|\  }d|j        |<   Œ|dk    rÝ|\  }}d}	|�d|v rd}	d„ |D ¦   «         }|                      |||d¬¦  «         |	r¦d }
|j        r%| j                             |j        dz   |z   ¦  «        }
|
€| j                             |¦  «        }
|
�P|j                             |
j        ¦  «         |j	                             |
j	        ¦  «         |
j
        €
d|j	        |<   Œód|j	        |<   Œþ|d	k    rZ|\  }}}|r|                      ||||¬¦  «         �Œ'|                      ||¬¦  «        }|                      |j        d |d¬¦  «         �Œ^t          |¦  «        ‚|j        D ]5}t          |t          |¦  «        ¦  «        r|                      ||¦  «         Œ6d S )
NrÕ   r   rÖ   r   rž   c                 ó   — g | ]
}|d k    ¯|‘ŒS )rž   rQ   )Ú.0Úfs     r   ú
<listcomp>z*ModuleFinder.scan_code.<locals>.<listcomp>š  s   € Ð@Ð@Ð@ a°q¸C²x°x °x°x°xr   r�   rŽ   r×   )Úco_coderÛ   rF   rÓ   rD   rV   ÚgetrB   ÚupdaterG   rE   r‚   ÚRuntimeErrorÚ	co_constsr.   rÉ   rÆ   )rH   rÊ   r‹   ÚcodeÚscannerÚwhatrg   r   r‡   Ú	have_starÚmmre   rˆ   Úcs                 r   rÆ   zModuleFinder.scan_code�  s+  € ØŒzˆØÔ#ˆØ!˜' "™+œ+ð (	)ñ (	)‰JˆD�$Ø�wŠˆØ‘�Ø&'�”˜dÑ#Ð#ØÐ*Ò*Ð*Ø!%‘�˜$Ø�	ØÐ'Ø˜h��Ø$%˜	Ø@Ð@¨8Ð@Ñ@Ô@�HØ×&Ò& t¨Q°ÀÐ&ÑBÔBÐBØð 0ð �BØ”zð Gð "œ\×-Ò-¨a¬j¸3Ñ.>ÀÑ.EÑFÔF˜Ø�zØ!œ\×-Ò-¨dÑ3Ô3˜Ø�~Øœ×,Ò,¨R¬^Ñ<Ô<Ð<Øœ×,Ò,¨R¬^Ñ<Ô<Ð<Øœ;Ð.Ø23˜AœM¨$Ñ/øà./˜œ dÑ+øØÐ*Ò*Ð*Ø(,Ñ%��x Øð UØ×*Ò*¨4°°HÀEÐ*ÑJÔJÐJÑJà!×2Ò2°1¸EÐ2ÑBÔB�FØ×*Ò*¨6¬?¸DÀ(ÐRSÐ*ÑTÔTÐTÑTõ # 4Ñ(Ô(Ð(à”ð 	%ð 	%ˆAÝ˜!�T "™XœXÑ&Ô&ð %Ø—’˜q !Ñ$Ô$Ð$øð	%ð 	%r   c                 ó  — |                       dd||¦  «         t                               |¦  «        }|r|}|                      |¦  «        }||_        |g|_        |j        t                               |g ¦  «        z   |_        |                      d|j        ¦  «        \  }}}	 |                      ||||¦  «         |  	                    dd|¦  «         ||r| 
                    ¦   «          S S # |r| 
                    ¦   «          w w xY w)Nr   r¼   rI   zload_package ->)ro   r   râ   rÄ   rC   rD   r   r´   rv   rr   rµ   )rH   r¸   rw   r   r‹   rx   Úbufry   s           r   r¼   zModuleFinder.load_package¾  s  € Ø�
Š
�1�n f¨hÑ7Ô7Ð7Ý#×'Ò'¨Ñ/Ô/ˆØð 	ØˆFØ�OŠO˜FÑ#Ô#ˆØˆŒ
Ø�ZˆŒ
ð ”Z¥.×"4Ò"4°V¸RÑ"@Ô"@Ñ@ˆŒ
à×)Ò)¨*°a´jÑAÔA‰ˆˆC�ð	Ø×Ò˜V R¨¨eÑ4Ô4Ð4Ø�KŠK˜Ð,¨aÑ0Ô0Ð0Øàð Ø—’‘
”
�
�
ðøˆrð Ø—’‘
”
�
�
ðøøøs   Â#0C+ Ã+Dc                 ód   — || j         v r| j         |         S t          |¦  «        x| j         |<   }|S r
   )rV   r@   )rH   r¸   r‹   s      r   rÄ   zModuleFinder.add_moduleÓ  s8   € Ø�T”\Ð!Ð!Ø”< Ô'Ð'Ý#)¨&¡>¤>Ð1ˆŒ�VÑ˜qØˆr   c                 óì   — |�|j         dz   |z   }n|}|| j        v r&|                      dd|¦  «         t          |¦  «        ‚|€"|t          j        v rd d ddt          ffS | j        }t          ||¦  «        S )NrŽ   r   zfind_module -> Excludedr   )	rB   rZ   rr   r"   rU   Úbuiltin_module_namesr&   r   r>   )rH   r   r   rˆ   rÒ   s        r   r´   zModuleFinder.find_moduleÙ  s�   € ØÐà” sÑ*¨4Ñ/ˆHˆHàˆHØ�t”}Ð$Ð$Ø�KŠK˜Ð4°hÑ?Ô?Ð?Ý˜dÑ#Ô#Ð#àˆ<Ø•sÔ/Ð/Ð/Ø˜d R¨­ZÐ$8Ð9Ð9à”9ˆDå˜D $Ñ'Ô'Ð'r   c           	      óŠ  — t          ¦   «          t          ddz  ¦  «         t          ddz  ¦  «         t          | j                             ¦   «         ¦  «        }|D ]S}| j        |         }|j        rt          dd¬¦  «         nt          dd¬¦  «         t          d|z  |j        pd	¦  «         ŒT|                      ¦   «         \  }}|rst          ¦   «          t          d
¦  «         |D ]S}t          | j        |                              ¦   «         ¦  «        }t          d|dd                     |¦  «        ¦  «         ŒT|r„t          ¦   «          t          dd¬¦  «         t          d¦  «         |D ]U}t          | j        |                              ¦   «         ¦  «        }t          d|dd                     |¦  «        ¦  «         ŒTdS dS )z’Print a report to stdout, listing the found modules with their
        paths, as well as modules that are missing, or seem to be missing.
        z
  %-25s %s)ÚNameÚFile)ú----rô   ÚPr_   r`   r‹   z%-25sr   zMissing modules:ú?zimported fromrK   z7Submodules that appear to be missing, but could also bez#global names in the parent package:N)	rc   ÚsortedrV   r¬   rD   rC   Úany_missing_mayberW   r�   )rH   r¬   Úkeyr‹   ÚmissingÚmayber   Úmodss           r   ÚreportzModuleFinder.reportë  sæ  € õ 	‰ŒˆÝˆlÐ-Ñ-Ñ.Ô.Ð.ÝˆlÐ-Ñ-Ñ.Ô.Ð.å�d”l×'Ò'Ñ)Ô)Ñ*Ô*ˆØð 	3ð 	3ˆCØ”˜SÔ!ˆAØŒzð $Ý�c˜sÐ#Ñ#Ô#Ð#Ð#å�c˜sÐ#Ñ#Ô#Ð#Ý�'˜C‘- ¤Ð!1¨rÑ2Ô2Ð2Ð2ð ×/Ò/Ñ1Ô1‰ˆ�Øð 	CÝ‰GŒGˆGÝÐ$Ñ%Ô%Ð%Øð Cð C�Ý˜dœo¨dÔ3×8Ò8Ñ:Ô:Ñ;Ô;�Ý�c˜4 °$·)²)¸D±/´/ÑBÔBÐBÐBàð 	CÝ‰GŒGˆGÝÐKÐQTÐUÑUÔUÐUÝÐ7Ñ8Ô8Ð8Øð Cð C�Ý˜dœo¨dÔ3×8Ò8Ñ:Ô:Ñ;Ô;�Ý�c˜4 °$·)²)¸D±/´/ÑBÔBÐBÐBð	Cð 	CðCð Cr   c                 ó:   — |                       ¦   «         \  }}||z   S )z½Return a list of modules that appear to be missing. Use
        any_missing_maybe() if you want to know which modules are
        certain to be missing, and which *may* be missing.
        )rø   )rH   rú   rû   s      r   Úany_missingzModuleFinder.any_missing  s#   € ð
 ×/Ò/Ñ1Ô1‰ˆ�Ø˜‰Ðr   c                 ó@  — g }g }| j         D ]ç}|| j        v rŒ|                     d¦  «        }|dk     r|                     |¦  «         Œ=||dz   d…         }|d|…         }| j                             |¦  «        }|�b|| j         |         v r|                     |¦  «         Œ•||j        v rŒŸ|j        r|                     |¦  «         Œ¼|                     |¦  «         ŒÒ|                     |¦  «         Œè|                     ¦   «          |                     ¦   «          ||fS )a®  Return two lists, one with modules that are certainly missing
        and one with modules that *may* be missing. The latter names could
        either be submodules *or* just global names in the package.

        The reason it can't always be determined is that it's impossible to
        tell which names are imported when "from module import *" is done
        with an extension module, short of actually importing it.
        rŽ   r   r   N)	rW   rZ   r‘   r   rV   râ   rF   rG   Úsort)rH   rú   rû   r   rh   r¤   ÚpkgnameÚpkgs           r   rø   zModuleFinder.any_missing_maybe  s>  € ð ˆØˆØ”Oð 	%ð 	%ˆDØ�t”}Ð$Ð$ØØ—
’
˜3‘”ˆAØ�1ŠuˆuØ—’˜tÑ$Ô$Ð$ØØ˜1˜Q™3˜4˜4”jˆGØ˜2˜A˜2”hˆGØ”,×"Ò" 7Ñ+Ô+ˆCØˆØ˜dœo¨dÔ3Ð3Ð3ð —N’N 4Ñ(Ô(Ð(Ð(Ø ¤Ð/Ð/àØ”_ð 
)ð —L’L Ñ&Ô&Ð&Ð&ð —N’N 4Ñ(Ô(Ð(Ð(à—’˜tÑ$Ô$Ð$Ð$Ø�Š‰ŒˆØ�
Š
‰ŒˆØ˜ˆ~Ðr   c                 óÈ  — t           j                             |j        ¦  «        x}}| j        D ]6\  }}|                     |¦  «        r||t          |¦  «        d …         z   } nŒ7| j        r`|| j        vrW||k    r|  	                    dd|›d|›�¦  «         n|  	                    dd|›d�¦  «         | j         
                    |¦  «         t          |j        ¦  «        }t          t          |¦  «        ¦  «        D ]C}t          ||         t          |¦  «        ¦  «        r|                      ||         ¦  «        ||<   ŒD|                     t%          |¦  «        |¬¦  «        S )Nr   zco_filename z changed to z remains unchanged)rå   Úco_filename)r+   r   Únormpathr  r[   Ú
startswithr›   rX   r\   rr   r   Úlistrå   rb   r.   rÉ   rÅ   ÚreplaceÚtuple)rH   rÊ   Únew_filenameÚoriginal_filenamerß   ÚrÚconstsrh   s           r   rÅ   z"ModuleFinder.replace_paths_in_codeC  s�  € Ý+-¬7×+;Ò+;¸B¼NÑ+KÔ+KÐKˆÐ(ØÔ&ð 	ð 	‰DˆAˆqØ ×+Ò+¨AÑ.Ô.ð Ø Ð#4µS¸±V´V°W°WÔ#=Ñ=�Ø�ðð Œ:ð 	;Ð+°4Ô3GÐGÐGØÐ0Ò0Ð0Ø—’˜A˜AØ'8Ð'8Ð'8¸¸ð Hñ Iô Ið Ið Ið —’˜A˜AØ'8Ð'8Ð'8ð ;ñ <ô <ð <àÔ ×'Ò'Ð(9Ñ:Ô:Ð:å�b”lÑ#Ô#ˆÝ•s˜6‘{”{Ñ#Ô#ð 	Bð 	BˆAÝ˜& œ)¥T¨"¡X¤XÑ.Ô.ð BØ ×6Ò6°v¸a´yÑAÔA��q‘	øà�zŠz¥E¨&¡M¤M¸|ˆzÑLÔLÐLr   )Nr   NN)NNr   )r   )r   r
   )rB   rO   rP   rI   rj   ro   rr   rt   r~   r€   r‚   rƒ   r„   r…   rŸ   r—   rv   rÏ   rÓ   rÛ   rÆ   r¼   rÄ   r´   rý   rÿ   rø   rÅ   rQ   r   r   rS   rS   r   s½  € € € € € ð
"ð 
"ð 
"ð 
"ðð ð ðð ð ðð ð ð>ð >ð >ð8ð 8ð 8ð	ð 	ð 	ð 	ð!ð !ð !ð !ðF6ð 6ð 6ð6ð ð ðDð Dð Dð Dðð ð ð8ð ð ð@ð ð ð:+ð +ð +ð>ð >ð >ð >ð4Að Að Að/%ð /%ð /%ðbð ð ð*ð ð ð(ð (ð (ð (ð$ Cð  Cð  CðDð ð ð,ð ,ð ,ð\Mð Mð Mð Mð Mr   rS   c                  óè  — dd l } 	 |                       t          j        dd …         d¦  «        \  }}n'# | j        $ r}t	          |¦  «         Y d }~d S d }~ww xY wd}d}g }g }|D ]c\  }}	|dk    r|dz   }|dk    rd}|dk    r"||	                     t          j        ¦  «        z   }|dk    rd}|dk    r|                     |	¦  «         Œd|sd	}
n|d         }
t          j	        d d …         }t          j	         
                    |
¦  «        |d<   ||z   }|dk    r1t	          d
¦  «         |D ]}t	          dt          |¦  «        ¦  «         Œ t          |||¦  «        }|dd …         D ]g}|dk    rd}Œ|rE|dd …         dk    r!|                     |d d…         d dg¦  «         Œ<|                     |¦  «         ŒR|                     |¦  «         Œh|                     |
¦  «         |                     ¦   «          |S )Nr   r   zdmp:qx:z-dz-mz-pz-qz-xzhello.pyzpath:r^   éþÿÿÿz.*rž   )ÚgetoptrU   ÚargvÚerrorrc   r{   r+   Úpathsepr   r   r,   rd   rS   r€   r~   rt   rý   )r  Úoptsrg   rj   rX   ÚdomodsÚaddpathÚexcludeÚoÚaÚscriptr   ÚitemÚmfri   s                  r   Útestr  [  sN  € à€M€M€MðØ—]’]¥3¤8¨A¨B¨B¤<°Ñ;Ô;‰
ˆˆdˆdøØŒ<ð ð ð Ýˆc‰
Œ
ˆ
Øˆˆˆˆˆøøøøðøøøð
 €EØ€FØ€GØ€GØð 
ð 
‰ˆˆ1Ø�Š9ˆ9Ø˜A‘IˆEØ�Š9ˆ9ØˆFØ�Š9ˆ9Ø §¢­¬
Ñ 3Ô 3Ñ3ˆGØ�Š9ˆ9ØˆEØ�Š9ˆ9Ø�NŠN˜1ÑÔÐøð ð Øˆˆà�a”ˆõ Œ8�A�A�AŒ;€DÝŒg�oŠo˜fÑ%Ô%€Dˆ�GØ�T‰>€DØˆq‚y€yÝˆg‰ŒˆØð 	%ð 	%ˆDÝ�%�˜d™œÑ$Ô$Ð$Ð$õ 
�d˜E 7Ñ	+Ô	+€BØ�A�B�BŒxð 
ð 
ˆØ�$Š;ˆ;ØˆFØØð 	Ø�2�3�3Œx˜4ÒÐØ—’˜s 3 B 3œx¨°¨uÑ5Ô5Ð5Ð5à—’˜sÑ#Ô#Ð#Ð#à�LŠL˜ÑÔÐÐØ‡M‚M�&ÑÔÐØ‡I‚I�K„K€KØ€Is   †+2 ²
A¼AÁAru   z
[interrupted]r
   )Ú__doc__rØ   Úimportlib._bootstrap_externalr   Úimportlib.machineryrÁ   r+   r6   rU   r5   r0   r4   r2   r-   r&   r(   r   r   r   r   r>   r@   rS   r  rB   r  ÚKeyboardInterruptrc   rQ   r   r   ú<module>r#     s†  ðØ 9Ð 9à 
€
€
€
Ø $Ð $Ð $Ð $Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
ð €Ø€
Ø€Ø€Ø€Ø€
Ø€
ð €ð<ð <ð <ð Ð ð)ð )ð )ð*1ð *1ð *1ð *1ðZð ð ð ð ñ ô ð ð0fMð fMð fMð fMð fMñ fMô fMð fMðR8ð 8ð 8ðv ˆzÒÐð!ØˆT‰VŒVˆˆˆøØð !ð !ð !ØˆÐÑ Ô Ð Ð Ð Ð ð!øøøð Ðs   Á
A+ Á+A?Á>A?