+
    Îip                    \   R t ^ RIH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	IHt ^ R
IHt ^ RIHtHtHtHtHtHtHt ^ RIHt ^ RI H!t!H"t" ^ RI#H$t$ ^ RI%H&t& ^ RI'H(t( ^ RI)H*t* ^ RI+H,t,H-t- ^ RI.H/t/ ^ RI0H1t1 ^ RI2H3t3 ^ RI4H5t5 ^ RI6H7t7H8t8 ^ RI9H:t:H;t; ^ RI<H=t= ^ RI>H?t?H@t@HAtAHBtB ^ RICHDtD ^ RIEHFtF ^ RIGHHtH ]'       d   ^ RIIHJtJ ]5! ]K4      tLR R  ltMR! R" ltN]	 ! R# R$4      4       tOR/R% R& lltPR/R' R( lltQR/R) R* lltRR0R+ R, lltS ! R- R.4      tTR# )1z(Prepares a distribution for installation)annotationsN)Iterable)	dataclass)Path)TYPE_CHECKING)canonicalize_name)BuildEnvironmentInstaller))make_distribution_for_install_requirement)InstalledDistribution)DirectoryUrlHashUnsupportedHashMismatchHashUnpinnedInstallationErrorMetadataInconsistentNetworkConnectionErrorVcsHashUnsupported)PackageFinder)BaseDistributionget_metadata_distribution)ArchiveInfo)Link)Wheel)
Downloader)HTTPRangeRequestUnsupporteddist_from_wheel_url)
PipSession)BuildTracker)InstallRequirement)	getLogger)direct_url_for_editabledirect_url_from_link)HashesMissingHashes)
indent_log)display_path	hash_filehide_urlredact_auth_from_requirement)TempDirectory)unpack_file)vcs)BarTypec               0    V ^8  d   QhRRRRRRRRR	RR
R/# )   reqr   build_trackerr   build_env_installerr   build_isolationboolcheck_build_depsreturnr    )formats   "o/Users/ahmad/.openclaw/workspace/scripts/.venv/lib/python3.14/site-packages/pip/_internal/operations/prepare.py__annotate__r8   A   sD     5 5	55 35 	5
 5 5    c                $   \        V 4      pVP                  pVeE   VP                  W4      ;_uu_ 4        VP                  W#V4       RRR4       VP	                  4       # VP	                  4       #   + '       g   i     TP	                  4       # ; i)z(Prepare a distribution for installation.N)r	   build_tracker_idtrackprepare_distribution_metadatar   )r.   r/   r0   r1   r3   abstract_dist
tracker_ids   &&&&&  r7   _get_prepared_distributionr@   A   s     >cBM//J  1177#6F 2 2244=2244	 21 2244s   A00B	c               (    V ^8  d   QhRRRRRRRR/# )	r-   linkr   locationstr	verbosityintr4   Noner5   )r6   s   "r7   r8   r8   S   s.     N N$ N# N# N$ Nr9   c                    \         P                  ! V P                  4      pVf   Q hVP                  V\	        V P
                  4      VR7       R # )N)urlrE   )r*   get_backend_for_schemeschemeunpackr&   rI   )rB   rC   rE   vcs_backends   &&& r7   unpack_vcs_linkrN   S   s@    ,,T[[9K"""xXdhh%79Mr9   c                  <    ] tR t^Yt$ R]R&   RtR]R&   R R ltRtR# )	FilerD   pathN
str | Nonecontent_typec                   V ^8  d   QhRR/# )r-   r4   rG   r5   )r6   s   "r7   r8   File.__annotate__^   s      t r9   c                	    V P                   f0    \        P                  ! V P                  4      ^ ,          V n         R # R #   \         d     R # i ; i)N)rS   	mimetypes
guess_typerQ   OSError)selfs   &r7   __post_init__File.__post_init__^   sH    $$-$8$8$CA$F!	 %
  s   ,A   AArS   )__name__
__module____qualname____firstlineno____annotations__rS   r[   __static_attributes__r5   r9   r7   rP   rP   Y   s    
I#L*# r9   rP   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r-   rB   r   downloadr   download_dirrR   hashesHashes | Noner4   rP   r5   )r6   s   "r7   r8   r8   h   s:     ) )
)) ) 	)
 
)r9   c                    \        R RR7      pRpV'       d   \        WV4      pV'       d   TpRpM-V! WP                  4      w  rgV'       d   VP                  V4       \	        Wg4      # )rL   Tkindglobally_managedN)r(   _check_download_dirrQ   check_against_pathrP   )rB   re   rf   rg   temp_diralready_downloaded_path	from_pathrS   s   &&&&    r7   get_http_urlrr   h   sb     (TBH""5d&"Q+	 #+4"?	%%i0	((r9   c               (    V ^8  d   QhRRRRRRRR/# )	r-   rB   r   rf   rR   rg   rh   r4   rP   r5   )r6   s   "r7   r8   r8      s,     ! !
!(!9F!	!r9   c                    RpV'       d   \        WV4      pV'       d   TpMV P                  pV'       d   VP                  V4       \        VR4      # )z'Get file and optionally check its hash.N)rm   	file_pathrn   rP   )rB   rf   rg   rp   rq   s   &&&  r7   get_file_urlrv      sK    
 #"5d&"Q+	NN	 !!),	4  r9   c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r-   rB   r   rC   rD   re   r   rE   rF   rf   rR   rg   rh   r4   zFile | Noner5   )r6   s   "r7   r8   r8      sN     ( (
(( ( 	(
 ( ( (r9   c                :   V P                   '       d   \        WVR7       R# V P                  4       '       d   Q hV P                  '       d   \	        WVR7      pM\        V VVVR7      pV P                  '       g!   \        VP                  WP                  4       V# )aK  Unpack link into location, downloading if required.

:param hashes: A Hashes object, one of whose embedded hashes must match,
    or HashMismatch will be raised. If the Hashes is empty, no matches are
    required, and unhashable types of requirements (like VCS ones, which
    would ordinarily raise HashUnsupported) are allowed.
)rE   Nrg   )
is_vcsrN   is_existing_diris_filerv   rr   is_wheelr)   rQ   rS   )rB   rC   re   rE   rf   rg   files   &&&&&& r7   
unpack_urlr      s      {{{)<##%%%% |||Dv> 	
 ===DIIx):):;Kr9   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r-   rB   r   rf   rD   rg   rh   warn_on_hash_mismatchr2   r4   rR   r5   )r6   s   "r7   r8   r8      s:      
   	
 r9   c                   \         P                  P                  WP                  4      p\         P                  P	                  V4      '       g   R# \
        P                  RV4       V'       d    VP                  V4       V# V#   \         d9    T'       d   \
        P                  RT4       \         P                  ! T4        R# i ; i)zyCheck download_dir for previously downloaded file with correct hash
If a correct file is found return its path else None
NzFile was already downloaded %sz;Previously-downloaded file %s has bad hash. Re-downloading.)osrQ   joinfilenameexistsloggerinforn   r   warningunlink)rB   rf   rg   r   download_paths   &&&& r7   rm   rm      s     GGLL}}=M77>>-(( KK0-@		%%m4 =  	$Q! IIm$	s   0B C,CCc                     a  ] tR t^tRtR V 3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 R lltRR R lltRR R lltR R ltR R ltR R ltR R ltRtV ;t# ) RequirementPreparerzPrepares a Requirementc                X    V ^8  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRRRR/# )r-   	build_dirrD   rf   rR   src_dirr1   r2   build_isolation_installerr   r3   r/   r   sessionr   progress_barr+   finderr   require_hashesuse_user_site
lazy_wheelrE   rF   legacy_resolverr4   rG   r5   )r6   s   "r7   r8    RequirementPreparer.__annotate__   s     :5 :5 :5 !	:5
 :5 :5 $=:5 :5 $:5 :5 :5 :5 :5 :5 :5  !:5" #:5$ 
%:5r9   c               	  < \         SV `  4        W0n        Wn        Wpn        Wn        \        W4      V n        Wn        W n	        W@n
        WPn        W`n        Wn        Wn        Wn        Wn        Wn        / V n        RV n        R# ) N)r   r   )super__init__r   r   r/   _sessionr   	_downloadr   rf   r1   r0   r3   r   r   use_lazy_wheelrE   r   _downloaded_previous_requirement_header)rZ   r   rf   r   r1   r   r3   r/   r   r   r   r   r   r   rE   r   	__class__s   &$$$$$$$$$$$$$$$r7   r   RequirementPreparer.__init__   s    & 	"*#G: )  /#<  !1 - + ) #  / ,. -5)r9   c                    V ^8  d   QhRRRR/# r-   r.   r   r4   rG   r5   )r6   s   "r7   r8   r      s     B B'9 Bd Br9   c                X   VP                   P                  '       d>   VP                  '       g,   Rp\        \	        VP                   P
                  4      4      pM4RpVP                  '       d   \        VP                  4      M
\        V4      pVP                  '       do   VP                  '       d]   \        VP                  \        4      '       d   VP                  pMVP                  P                  4       pV'       d   VRV R2,          pW#3V P                  8w  d   W#3V n        \        P                  W#4       VP                  '       dH   \        4       ;_uu_ 4        \        P                  RVP                   P                  4       RRR4       R# R#   + '       g   i     R# ; i)z3Provide context for the requirement being prepared.zProcessing %szCollecting %sz (from )zUsing cached %sN)rB   r|   is_wheel_from_cacherD   r$   ru   r.   r'   
comes_from
isinstancerq   r   r   r   r#   r   )rZ   r.   messageinformationr   s   &&   r7   _log_preparing_link'RequirementPreparer._log_preparing_link   s   88C$;$;$;%Gl388+=+=>?K%GCF7776sww?PSTWPXK 777s~~~#..#..),
 ^^557
A66!T%F%FF180FD-KK-"""-sxx/@/@A  #s   !+FF)	c               $    V ^8  d   QhRRRRRR/# )r-   r.   r   parallel_buildsr2   r4   rG   r5   )r6   s   "r7   r8   r   ;  s$     . .%.8<.	.r9   c                8   VP                   P                  '       d   R# VP                  e   Q hVP                   P                  4       '       d   VP                   P                  Vn        R# VP                  V P                  RVR7       VP                  4        R# )z1Ensure source_dir of a linked InstallRequirement.NT)
autodeleter   )rB   r}   
source_dirr{   ru   ensure_has_source_dirr   ensure_pristine_source_checkout)rZ   r.   r   s   &&&r7   _ensure_link_req_src_dir,RequirementPreparer._ensure_link_req_src_dir;  s    
 88 ~~%%%88##%% XX//CN 	!!NN+ 	" 	

 	++-r9   c                    V ^8  d   QhRRRR/# )r-   r.   r   r4   r!   r5   )r6   s   "r7   r8   r   R  s     C C*< C Cr9   c                	   V P                   '       g   VP                  R R7      # VP                  P                  '       d   \	        4       hVP                  P                  4       '       d   \        4       hVP                  '       g   VP                  '       g   \        4       hVP                  RR7      ;'       g    \        4       # )T)trust_internetF)r   rg   rB   rz   r   r{   r   	is_direct	is_pinnedr   r"   rZ   r.   s   &&r7   _get_linked_req_hashes*RequirementPreparer._get_linked_req_hashesR  s     """::T:22 88???$&&88##%%-// }}}S]]].  zzz/BB=?Br9   c                    V ^8  d   QhRRRR/# r-   r.   r   r4   BaseDistribution | Noner5   )r6   s   "r7   r8   r   r  s     = == 
!=r9   c                	   V P                   '       d   \        P                  R 4       R# V P                  '       d   \        P                  R4       R# V P	                  V4      ;'       g    V P                  VP                  4      # )z9Metadata-only fetching is not used in the legacy resolverNz?Metadata-only fetching is not used as hash checking is required)r   r   debugr   $_fetch_metadata_using_link_data_attr _fetch_metadata_using_lazy_wheelrB   r   s   &&r7   _fetch_metadata_only(RequirementPreparer._fetch_metadata_onlyr  sv     LLK LLQ 88
 = =22388<	=r9   c                    V ^8  d   QhRRRR/# r   r5   )r6   s   "r7   r8   r     s     ' '' 
!'r9   c                   VP                   P                  4       pVf   R# VP                  f   Q h\        P	                  RVP                  V4       \        VV P                  VP                  4       R7      p\        VP                  R4      ;_uu_ 4       pVP                  4       pRRR4       \        XVP                   P                  VP                  P                  4      p\        VP                  4      \        VP                  P                  4      8w  d-   \!        VRVP                  P                  VP                  4      hV#   + '       g   i     L; i)zGFetch metadata from the data-dist-info-metadata attribute, if possible.Nz/Obtaining dependency information for %s from %sry   rbName)rB   metadata_linkr.   r   verboserr   r   	as_hashesopenrQ   readr   r   namer   raw_namer   )rZ   r.   r   metadata_filefmetadata_contentsmetadata_dists   &&     r7   r   8RequirementPreparer._fetch_metadata_using_link_data_attr  s    ..0 ww"""=GG	
 %NN **,

 -$$d++q ! , 2HHGGLL
 ]3348I#'',,8WW&VSWW\\=+A+A  % ,+s   E		E	c                    V ^8  d   QhRRRR/# )r-   rB   r   r4   r   r5   )r6   s   "r7   r8   r     s       
!r9   c                   V P                   '       g   R# VP                  '       g   VP                  '       g   \        P	                  RV4       R# \        VP                  4      pVP                  p\        P                  RVVP                  4       VP                  P                  R^4      ^ ,          p \        W4V P                  4      #   \         d    \        P	                  RT4        R# i ; i)z-Fetch metadata using lazy wheel, if possible.Nz=Lazy wheel is not used as %r does not point to a remote wheelz+Obtaining dependency information from %s %s#z"%s does not support range requests)r   r|   r}   r   r   r   r   r   r   versionrI   splitr   r   r   )rZ   rB   wheelr   rI   s   &&   r7   r   4RequirementPreparer._fetch_metadata_using_lazy_wheel  s     """<<<t}}}LLO dmm$zz9MM	

 hhnnS!$Q'	&t$--@@* 	LL=sC	s   7C !C21C2c               $    V ^8  d   QhRRRRRR/# )r-   partially_downloaded_reqsIterable[InstallRequirement]r   r2   r4   rG   r5   )r6   s   "r7   r8   r     s-     'C 'C#?'C 'C 
	'Cr9   c                   \        RRR7      P                  p/ pV F%  pVP                  '       g   Q hWTVP                  &   K'  	  V P                  P	                  VP                  4       V4      pV F|  w  pw  r\        P                  RWx4       WG,          pWn        WP                  VP                  P                  &   VP                  '       d   Kb  VP                  \        V4      4       K~  	  V F  pV P                  WR4       K  	  R# )z>Download any requirements which were only fetched by metadata.rL   Trj   zDownloading link %s to %sN)r(   rQ   rB   r   batchkeysr   r   local_file_pathr   rI   r}   needs_unpacked_archiver   _prepare_linked_requirement)
rZ   r   r   ro   links_to_fully_downloadr.   batch_downloadrB   filepath_s
   &&&       r7   _complete_partial_requirements2RequirementPreparer._complete_partial_requirements  s     !hFKK
 CE,C888O803CHH- - --.E.J.J.LhW#1D-8LL4dE)/C #+ .6SXX\\* <<<**4>: $2& -C,,SB -r9   c               $    V ^8  d   QhRRRRRR/# r-   r.   r   r   r2   r4   r   r5   )r6   s   "r7   r8   r     s)     *J *J%*J8<*J	*Jr9   c           	        VP                   '       g   Q hV P                  V4       \        4       ;_uu_ 4        RpV P                  e`   VP                   P                  '       dD   V P                  V4      p\        VP                   V P                  VVP                  '       * R7      pVe$   W0P                  VP                   P                  &   MlV P                  V4      pVeX   RVn        VP                  V4       VP                  f&   \        VP                   VP                  4      Vn        VuuRRR4       # V P!                  W4      uuRRR4       #   + '       g   i     R# ; i)z3Prepare a requirement to be obtained from req.link.N)r   T)rB   r   r#   rf   r}   r   rm   r   r   rI   r   needs_more_preparationset_distdownload_infor    r   r   )rZ   r.   r   ru   rg   r   s   &&&   r7   prepare_linked_requirement.RequirementPreparer.prepare_linked_requirement  s    xxxx  %\\ I  ,1B1B1B44S9/HH%% /2.E.E*E	 $1:  . !% 9 9# > ,15C.LL/((0,@HHcnn-) )C \H 33CII \\\s   ,E%CE;EE'	c               $    V ^8  d   QhRRRRRR/# )r-   reqsr   r   r2   r4   rG   r5   )r6   s   "r7   r8   r      s$     
 
0
CG
	
r9   c                0   V Uu. uF  q3P                   '       g   K  VNK  	  ppV F  pV P                  f   K  VP                  P                  '       g   K1  V P	                  V4      p\        VP                  V P                  V4      pVf   Ki  WPP                  VP                  P                  &   RVn         K  	  . pV F9  pVP                   '       d   VP                  V4       K(  V P                  W24       K;  	  V P                  VVR7       R# u upi )z,Prepare linked requirements more, if needed.NF)r   )r   rf   rB   r}   r   rm   r   rI   appendr   r   )rZ   r   r   r.   rg   ru   r   s   &&&    r7    prepare_linked_requirements_more4RequirementPreparer.prepare_linked_requirements_more   s      $Bt'A'AtBC  ,1B1B1B44S9/$:K:KVT	(5>$$SXX\\216C.  ?A!C))))00500F	  	++%+ 	, 	
+ Cs
   DDc               $    V ^8  d   QhRRRRRR/# r   r5   )r6   s   "r7   r8   r   >  s)     Z Z%Z8<Z	Zr9   c           	     	   VP                   '       g   Q hVP                   pV P                  V4      pV'       Ed   VP                  '       d   VP                  f   Q hVP                  '       g   Q hVP
                  '       g   Q h\        VP                  P                  \        4      '       d_   VP                  P                  P                  '       d9   VP                  VP                  P                  P                  4      '       d   R pM2\        P                  R4       VP                  Vn         VP                   pV P                  W4       VP                  4       '       d   R pMVP                   V P"                  9  d;    \%        VVP&                  V P(                  V P*                  V P,                  V4      pMCV P"                  VP                   ,          pV'       d   VP3                  V4       \5        VR R7      pVP                  f   VP6                  '       d   Q h\9        W1P&                  4      Vn        \        VP                  P                  \        4      '       dw   VP                  P                  P                  '       gQ   V'       dI   \;        VP<                  4      ^ ,          P?                  4       pRV 2VP                  P                  n         V'       d   VP<                  Vn!        \E        VV PF                  V PH                  V PJ                  V PL                  4      p	V	#   \.         d   p\1        RT RT RT 24      hR p?ii ; i)NzyThe hashes of the source archive found in cache entry don't match, ignoring cached built wheel and re-downloading source.zCould not install requirement z because of HTTP error z	 for URL r]   zsha256=)'rB   r   r   r   r}   r|   r   r   r   rg   
has_one_ofr   r   cached_wheel_source_linkr   r{   rI   r   r   r   r   rE   rf   r   r   rn   rP   editabler    r%   rQ   	hexdigesthashr   r@   r/   r0   r1   r3   )
rZ   r.   r   rB   rg   
local_fileexcru   r  dists
   &&&       r7   r   /RequirementPreparer._prepare_linked_requirement>  s    xxxxxx,,S16c---$$000=== =<<<< 3,,11;??%%**111%%c&7&7&<&<&C&CDD 1
 77xx%%c;!!JXXT---'NNNNNN%%
 ((2I)))4id;J $ |||## 4T>> JC 3,,11;??))..555 1!4>>@ 18v.>!!&&+ ",//C)$$  !!
 W * '4SE : E4&2 s   8L/ /M:MMc                    V ^8  d   QhRRRR/# r   r5   )r6   s   "r7   r8   r     s     3 3+= 3$ 3r9   c                	   V P                   f   Q hVP                  f   Q hVP                  pVP                  '       g)   VP                  4       '       d0   VP                  '       d   VP                  V P                   4       R # VP                  4       '       d   \        P                  RV4       R # VP                  f   R # \        P                  P                  V P                   VP                  4      p\        P                  P                  V4      '       gE   \        P                  ! VP                  V4       \!        V4      p\        P#                  RV4       R # R # )NzENot copying link to destination directory since it is a directory: %szSaved %s)rf   rB   rz   r{   r  archiver   r   r   r   rQ   r   r   r   shutilcopyr$   r   )rZ   r.   rB   download_locationr   s   &&   r7   save_linked_requirement+RequirementPreparer.save_linked_requirement  s      ,,,xx###xx;;;4//11clllKK))*!!LL.
 &GGLL):):DMMJww~~/00KK++->?():;MKK
M2 1r9   c                    V ^8  d   QhRRRR/# )r-   r.   r   r4   r   r5   )r6   s   "r7   r8   r     s       
r9   c           	     Z   VP                   '       g   Q R4       h\        P                  RV4       \        4       ;_uu_ 4        V P                  '       d   \        RV R24      hVP                  V P                  4       VP                  4        VP                  '       g   Q h\        VP                  4      Vn        \        VV P                  V P                  V P                   V P"                  4      pVP%                  V P&                  4       RRR4       V#   + '       g   i     X# ; i)z Prepare an editable requirement.z-cannot prepare a non-editable req as editablezObtaining %szThe editable requirement zT cannot be installed when requiring hashes, because there is no single file to hash.N)r  r   r   r#   r   r   r   r   update_editabler   r   unpacked_source_directoryr   r@   r/   r0   r1   r3   check_if_existsr   )rZ   r.   r  s   && r7   prepare_editable_requirement0RequirementPreparer.prepare_editable_requirement  s    
 |||LLL|NC(\\"""'/u 5  
 %%dll3!>>>!> 78U8U VC-""(($$%%D  2 23) , - \, s   AD!A.DD*	c               $    V ^8  d   QhRRRRRR/# )r-   r.   r   skip_reasonrD   r4   r   r5   )r6   s   "r7   r8   r     s-     J JJ J 
	Jr9   c                   VP                   '       g   Q R4       hVf   Q RVP                    24       h\        P                  RW!VP                   P                  4       \	        4       ;_uu_ 4        V P
                  '       d   \        P                  R4       \        V4      P                  4       uuRRR4       #   + '       g   i     R# ; i)z)Prepare an already-installed requirement.z(req should have been satisfied but isn'tNz?did not get skip reason skipped but req.satisfied_by is set to zRequirement %s: %s (%s)zSince it is already installed, we are trusting this package without checking its hash. To ensure a completely repeatable environment, install into an empty virtualenv.)	satisfied_byr   r   r   r#   r   r   r
   r   )rZ   r.   r  s   &&&r7   prepare_installed_requirement1RequirementPreparer.prepare_installed_requirement  s     K!KK& 	
))*,	
& 	%{9I9I9Q9Q	
 \\"""( )-GGI \\\s   /A B::C	)r   r   r   r   r   r0   r1   r/   r3   rf   r   r   r   r   r   r   rE   )F)r^   r_   r`   ra   __doc__r   r   r   r   r   r   r   r   r   r   r   r  r  r  rc   __classcell__)r   s   @r7   r   r      sd     :5 :5xB6..C@=&'R:'CR*JX
<Zx34BJ Jr9   r   )NN)T)Ur  
__future__r   rW   r   r  collections.abcr   dataclassesr   pathlibr   typingr   pip._vendor.packaging.utilsr   pip._internal.build_envr   pip._internal.distributionsr	   %pip._internal.distributions.installedr
   pip._internal.exceptionsr   r   r   r   r   r   r   "pip._internal.index.package_finderr   pip._internal.metadatar   r   pip._internal.models.direct_urlr   pip._internal.models.linkr   pip._internal.models.wheelr   pip._internal.network.downloadr    pip._internal.network.lazy_wheelr   r   pip._internal.network.sessionr   ,pip._internal.operations.build.build_trackerr   pip._internal.req.req_installr   pip._internal.utils._logr   &pip._internal.utils.direct_url_helpersr   r    pip._internal.utils.hashesr!   r"   pip._internal.utils.loggingr#   pip._internal.utils.miscr$   r%   r&   r'   pip._internal.utils.temp_dirr(   pip._internal.utils.unpackingr)   pip._internal.vcsr*   pip._internal.cli.progress_barsr+   r^   r   r@   rN   rP   rr   rv   r   rm   r   r5   r9   r7   <module>r=     s    . #  	  $ !    9 = Q G   = N 7 * , 5 5 E < . = 2  7 5 !7	8	5$N   )0!0(V<JJ JJr9   