
    <Bhi                    Z   S r SSKJr  SSKrSSKrSSKJr  SSKJrJ	r	  SSK
JrJr  SSKJr  SSKJr  SS	KJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJrJrJrJr  S
SK J!r!  S
SK"J#r#J$r$  S
SK%J&r&J'r'  S
SK(J)r*  S
SK+J,r,J-r-  S
SK.J/r/J0r0J1r1  S
SK2J3r3  S
SK4J5r5  S
SK6J7r7  S
SK8J9r9  S
SK:J;r;  S
SK<J=r=  S
SK>J?r?  S
SK@JArA  SSKBJCrCJDrD  SS KEJFrFJGrG  SS!KHJIrI  SS"KJJKrK   SS#KLJLrL  \(       a  SS$KOJPrP  S
S%KQJRrR  \	" \S5      rT " S& S'5      rU " S( S)5      rVS* rWS+\#4 S-S, jjrXg! \M a	    S
S#KNJLrL   NKf = f).z"The classic solver implementation.    )annotationsN)chain)DEBUG	getLogger)existsjoin)dedent)TYPE_CHECKING)
IndexedSet   )
CondaError)__version__)memoizedproperty)dals)REPODATA_FNUNKNOWN_CHANNELDepsModifierUpdateModifier)context)NULLTRACE)dashlisttime_recorder)groupby_to_dict)get_major_minor_versionpaths_equal)PackagesNotFoundErrorSpecsConfigurationConflictErrorUnsatisfiableError)HistoryChannel)
NoarchType	MatchSpec)PrefixGraph)VersionOrder)get_spinner)Resolve   )_supplement_index_with_systemget_reduced_index)PrefixSetupUnlinkLinkTransaction)
PrefixData)
SubdirData)
frozendict)Iterable)PackageRecordc                     \ rS rSrSrSSS\\4           SS jjr\\\\\\S4S jr\\\\\\S4 SS jjr	\\\\\S4S jr
S	 rS
 rS r\" \ S9S 5       rS r\" \ S9S 5       rS rS rS r\" \ S9S 5       rS rS rS rSrg)Solver:   z
A high-level API to conda's solving logic. Three public methods are provided to access a
solution in various forms.

  * :meth:`solve_final_state`
  * :meth:`solve_for_diff`
  * :meth:`solve_for_transaction`
 c                p   Xl         U=(       d    [        R                  U l        [	        S U R                  5       5      U l        [        S U=(       d    [        R                  5       5      U l        [        [        R                  " S U5       5      5      U l
        [        S U R                  5       5      U l        [        [        R                  " S U5       5      5      U l        SU l        Xpl        [        S U R                  5       5      (       d   eX`l        SU l        SU l        S	U l        0 U l        g)
a  
Args:
    prefix (str):
        The conda prefix / environment location for which the :class:`Solver`
        is being instantiated.
    channels (Sequence[:class:`Channel`]):
        A prioritized list of channels to use for the solution.
    subdirs (Sequence[str]):
        A prioritized list of subdirs to use for the solution.
    specs_to_add (set[:class:`MatchSpec`]):
        The set of package specs to add to the prefix.
    specs_to_remove (set[:class:`MatchSpec`]):
        The set of package specs to remove from the prefix.

c              3  8   #    U  H  n[        U5      v   M     g 7fNr!   ).0cs     0lib/python3.13/site-packages/conda/core/solve.py	<genexpr>"Solver.__init__.<locals>.<genexpr>_   s     "F~!71::~   c              3  $   #    U  H  ov   M     g 7fr:   r7   r;   ss     r=   r>   r?   `   s     C(B1Q(B   c              3  $   #    U  H  ov   M     g 7fr:   r7   rB   s     r=   r>   r?   a   s     5NAarD   c              3  8   #    U  H  oR                   v   M     g 7fr:   namer;   _s     r=   r>   r?   b   s     +N<MqFF<Mr@   c              3  $   #    U  H  ov   M     g 7fr:   r7   rB   s     r=   r>   r?   c   s     8TOqOrD   r7   c              3  F   #    U  H  o[         R                  ;   v   M     g 7fr:   )r   known_subdirsrB   s     r=   r>   r?   g   s     D|!---|s   !NF)prefixr   channels	_channelsr   tuplesubdirs	frozensetr%   mergespecs_to_addspecs_to_add_namesspecs_to_removeneutered_specs_commandall_repodata_fn_index_r	_prepared_pool_cache)selfrN   rO   rR   rU   rW   repodata_fncommands           r=   __init__Solver.__init__D   s    2 !5W%5%5""Ft~~"FFC(B7??CC%ioo5N5N&NO"++ND<M<M+N"N(8TO8T)TU Dt||DDDDD'    Fc           
        U R                   [        R                  :X  a  [        R                  (       a
  [	        5       e[        R
                  R                  U R                  U R                  5        U R                  UUUUUUU5      u  p[        R
                  R                  U R                  UU	5        U R                  U	5        [        [        U R                   UU	U R                  U R                  U R                  5      5      $ )a  Gives an UnlinkLinkTransaction instance that can be used to execute the solution
on an environment.

Args:
    deps_modifier (DepsModifier):
        See :meth:`solve_final_state`.
    prune (bool):
        See :meth:`solve_final_state`.
    ignore_pinned (bool):
        See :meth:`solve_final_state`.
    force_remove (bool):
        See :meth:`solve_final_state`.
    force_reinstall (bool):
        See :meth:`solve_for_diff`.
    should_retry_solve (bool):
        See :meth:`solve_final_state`.

Returns:
    UnlinkLinkTransaction:

)rN   r   root_prefixenable_private_envsNotImplementedErrorplugin_managerinvoke_pre_solvesrU   rW   solve_for_diffinvoke_post_solvesr[   _notify_conda_outdatedr.   r-   rX   )
r`   update_modifierdeps_modifierpruneignore_pinnedforce_removeforce_reinstallshould_retry_solveunlink_precs
link_precss
             r=   solve_for_transactionSolver.solve_for_transactionn   s    > ;;'---'2M2M &'' 	00  	

 $(#6#6$
  	11	
 	##J/$$$!!##	
 		
re   c                    U R                  UUUUUU5      n[        U R                  XR                  U5      u  p[	        S U	5      R                  S5      nU(       a  [        S[        S U5       5       35      eX4$ )an  Gives the package references to remove from an environment, followed by
the package references to add to an environment.

Args:
    deps_modifier (DepsModifier):
        See :meth:`solve_final_state`.
    prune (bool):
        See :meth:`solve_final_state`.
    ignore_pinned (bool):
        See :meth:`solve_final_state`.
    force_remove (bool):
        See :meth:`solve_final_state`.
    force_reinstall (bool):
        For requested specs_to_add that are already satisfied in the environment,
            instructs the solver to remove the package and spec from the environment,
            and then add it back--possibly with the exact package instance modified,
            depending on the spec exactness.
    should_retry_solve (bool):
        See :meth:`solve_final_state`.

Returns:
    tuple[PackageRef], tuple[PackageRef]:
        A two-tuple of PackageRef sequences.  The first is the group of packages to
        remove from the environment, in sorted dependency order from leaves to roots.
        The second is the group of packages to add to the environment, in sorted
        dependency order from roots to leaves.

c                    U R                   $ r:   )is_unmanageable)precs    r=   <lambda>'Solver.solve_for_diff.<locals>.<lambda>   s
    D,@,@re   Tz$Cannot unlink unmanageable packages:c              3  @   #    U  H  oR                  5       v   M     g 7fr:   )	record_idr;   r}   s     r=   r>   (Solver.solve_for_diff.<locals>.<genexpr>   s     ?j]iUY@P@P]i   )solve_final_statediff_for_unlink_link_precsrN   rU   groupbygetRuntimeErrorr   )r`   ro   rp   rq   rr   rs   rt   ru   final_precsrv   rw   unmanageables               r=   rl   Solver.solve_for_diff   s    L ,,
 $>KK&7&7$
 
 @,OSS
 6x?j]i?j7j6kl  ''re   c           	     n  ^  U(       a  U[         R                  :X  a  [        nU[        L a  [        R                  nO"[        [        U5      R                  5       5      nU[        L a  [        R                  nO"[        [        U5      R                  5       5      nU[        L a  [        R                  OUnU[        L a  [        R                  OUn[        R                  ST R                  T R                  T R                  U5        [!        T S5      nU(       d#  [#        T R                  UUUUUU5      nUT l        OT R$                  nXl        X(l        Xhl        T R                  (       a^  U(       aW  T R                  (       a
  [)        5       e[+        U 4S jUR,                  5       5      n	[/        [1        U	5      R2                  5      $ U[         R4                  :X  a  T R                  (       dn  U(       dg  T R                   H/  n
[7        UR8                  R;                  U
5      S5      (       a  M/    O*   [/        [1        UR,                  5      R2                  5      $ UR<                  (       d3  [?        ST R@                   S35         T RC                  U5      nSSS5        U(       a  U[         R                  :X  a  SnO'T R@                  [D        :w  a  ST R@                   S	3nOS
n[?        SUS9   T RG                  U5      nT RI                  U5      n[J        RJ                  " UR,                  5      nT RM                  UR,                  URN                  5      nT RQ                  U5      nT RS                  U5      nT RM                  UR,                  URN                  5      nUR                  [         RT                  :X  a]  T RW                  XURX                  R[                  5       5      n[]        U5      S:  a$  U H  n
T R_                  XR,                  5        M      UR`                  (       a  [c        U5      [c        UR,                  5      -
  [c        UR`                  5      -
  nUR,                  Vs/ s H  nURd                  PM     nnUR,                  Rg                  UVs/ s H3  nURd                  URN                  ;  d  M  URd                  U;  d  M1  UPM5     sn5        T Ri                  U5      nSSS5        [j        Rl                  " 5         [/        [1        UR,                  5      R2                  5      Ul        [        R                  ST R                  SRo                  S UR,                  5       5      5        UR,                  $ ! , (       d  f       GN= fs  snf s  snf ! , (       d  f       N= f)a  Gives the final, solved state of the environment.

Args:
    update_modifier (UpdateModifier):
        An optional flag directing how updates are handled regarding packages already
        existing in the environment.

    deps_modifier (DepsModifier):
        An optional flag indicating special solver handling for dependencies. The
        default solver behavior is to be as conservative as possible with dependency
        updates (in the case the dependency already exists in the environment), while
        still ensuring all dependencies are satisfied.  Options include
        * NO_DEPS
        * ONLY_DEPS
        * UPDATE_DEPS
        * UPDATE_DEPS_ONLY_DEPS
        * FREEZE_INSTALLED
    prune (bool):
        If ``True``, the solution will not contain packages that were
        previously brought into the environment as dependencies but are no longer
        required as dependencies and are not user-requested.
    ignore_pinned (bool):
        If ``True``, the solution will ignore pinned package configuration
        for the prefix.
    force_remove (bool):
        Forces removal of a package without removing packages that depend on it.
    should_retry_solve (bool):
        Indicates whether this solve will be retried. This allows us to control
        whether to call find_conflicts (slow) in ssc.r.solve

Returns:
    tuple[PackageRef]:
        In sorted dependency order from roots to leaves, the package references for
        the solved state of the environment.

zFsolving prefix %s
  specs_to_remove: %s
  specs_to_add: %s
  prune: %ssscc              3  t   >^#    U  H,  m[        U4S  jTR                  5       5      (       a  M(  Tv   M.     g7f)c              3  D   >#    U  H  oR                  T5      v   M     g 7fr:   match)r;   specr}   s     r=   r>   5Solver.solve_final_state.<locals>.<genexpr>.<genexpr>S  s     M8L::d++8Ls    N)anyrW   )r;   r}   r`   s    @r=   r>   +Solver.solve_final_state.<locals>.<genexpr>P  s.      .DM8L8LMM .s   '8	8NzCollecting package metadata ()zOunsuccessful initial attempt using frozen solve. Retrying with flexible solve.
z)unsuccessful attempt using repodata from z&, retrying with next repodata source.
zfailed
zSolving environment)fail_messager   z/solved prefix %s
  solved_linked_dists:
    %s
z
    c              3  @   #    U  H  oR                  5       v   M     g 7fr:   )dist_strr   s     r=   r>   r     s     I6Hd--//6Hr   )8r   FREEZE_INSTALLEDr   r   ro   strlowerrp   r   rr   rs   logdebugrN   rW   rU   hasattrSolverStateContainerr   ru   ri   rQ   solution_precsr   r&   graphSPECS_SATISFIED_SKIP_SOLVEnextprefix_dataqueryrr(   r[   _collect_all_metadatar   _remove_specs
_add_specscopyget_request_package_in_solution	specs_map_find_inconsistent_packages_run_satUPDATE_SPECSget_constrained_packagesindexkeyslendetermine_constricting_specsadd_back_mapsetrH   extend_post_sat_handlingr   
log_totalsr   )r`   ro   rp   rq   rr   rs   ru   retryingr   solutionr   r   r   pre_packagespost_packagesconstrainedorphan_precsrJ   solution_prec_namess   `                  r=   r   Solver.solve_final_state   s   Z _(G(GG"Od"%55O,S-A-G-G-IJOD #11M(]);)A)A)CDM%2d%:G!! 	 0<t/Cw++		WKK  	
 4'&"C DH((C"1 -%7" L  )++ .. H
 k(399:: ~HHH(())COO11$7>> * "+c.@.@"A"G"GHHuu<T=N=N<OqQR005 S /^5T5T"T*  +-;D<M<M;N O0 0 
 &L.\J$$S)C//#&C!YYs'9'9:N??""CMML 2237C--$C @@""CMMM ""n&A&AA";; 1A {#a' +99$@R@RS !, '#,,-.#**+, 
 8;7I7I&J7I!qvv7I#&J"")) ".!-A666  FF*== !- ))#.CQ KT 	  "'C4F4F(G(M(MN		@KKMMIc6H6HII	
 !!!G SR\ 'KA KJsC   V
1FV&2VV&"V!
V!
V!
V&

V
V&&
V4c                `  ^ UVs/ s H3  o3R                   TR                   :X  d  M  [        UR                  5      PM5     snS   n/ nU GHO  n[        U4S jUR                  5       5      (       d  M)  UR                   GH  n[        U5      nUR                   TR                   :X  d  M+  UR                  c  M:  UR                  R                  (       d  SUR                  R                  ;   d  Mq  SUR                  R                  ;   am  UR                  UR                  R                  V	s/ s H;  n	SU	R                  ;   d  M  UR                   [        UR                    SU	 35      4PM=     sn	5        M  UR                  UR                   U45        GM     GMR     UV
s/ s H#  oS   R                  R                  U::  d  M!  U
PM%     nn
[        U5      S:X  a  g [        STR                    S35        U H  n[        US    S	US    35        M     [        S
5        U$ s  snf s  sn	f s  sn
f )Nr   c              3  L   >#    U  H  nTR                   U;   d  M  Uv   M     g 7fr:   rG   )r;   jr   s     r=   r>   6Solver.determine_constricting_specs.<locals>.<genexpr>  s     =ldii1n11l   $	$<, r*   z

Updating z is constricted by 
z -> requires z
If you are sure you want an update of your package either try `conda update --all` or install a specific version of the package you want using `conda install <pkg>=<version>`
)rH   r'   versionr   dependsr%   exact_valuer   r   tupappend
matcher_vor   print)r`   r   r   sphighest_versionconstrictingr}   depm_depvihard_constrictingconsts    `           r=   r   #Solver.determine_constricting_specs  s   /=
/=DIIAU$L$~

 "D=dll===<<C%cNE

dii/!MM5"]]66#ASAS:S%--"4"44(// .3]]->->!"->'*aff} %PTYY	UZZL!:M0N$O->!" )//E0BC! ( #* $
#!t||'>'>/'QA| 	 
  !Q&dii[(=>?&EU1XJmE!H:67 'G	

 ! M
!"
s"   H!H!+H&*H&  H+H+c                   0 nU R                    H  nUR                  nUVs/ s HE  nUR                  U:X  d  M  UR                  c  M$  UR                  [        UR                  5      4PMG     snX5'   X5   R	                  UR                  5       VVs/ s H<  u  pxXu:X  d  M  UR                  c  M  UR                  [        UR                  5      4PM>     snn5        M     U$ s  snf s  snnf r:   )rU   rH   r   r   r   items)	r`   r   r   requested_packagespkgupdate_pkg_requestr   kr   s	            r=   r   &Solver.get_request_package_in_solution  s    $$C!$ (6'A66// )45II )QYY('62
 299 !* 1 1. -3499 -QVVS^, 1 %  "!6s"   C"C"%C"C' C'/%C'c                N  ^ [        5       nS nU" U5      (       d  U" U5      (       a  U$ U R                   Hj  mTR                  R                  S5      (       a  M%  [	        S UTR                     5       5      nU[	        U4S jU5       5      :X  a  M]  X!:X  d  Md  UT1-  nMl     U$ )Nc                X    U R                  5        H  u  p[        U5      S:X  d  M    g   g)Nr   TF)r   r   )r   r   r   s      r=   empty_package_list;Solver.get_constrained_packages.<locals>.empty_package_list  s'    		q6Q; $ re   __c              3  *   #    U  H	  oS    v   M     g7f)r*   Nr7   r;   r   s     r=   r>   2Solver.get_constrained_packages.<locals>.<genexpr>  s     !G0F1A$0Fs   c              3  r   >#    U  H,  oR                   TR                   :X  d  M  UR                  v   M.     g 7fr:   rH   r   )r;   r   r   s     r=   r>   r     s'      &#-a3881C			:s   77)r   rU   rH   
startswithmax)r`   r   r   
index_keysupdate_constrainedr   current_versionr   s          @r=   r   Solver.get_constrained_packages  s     U	 l++/A-/P/P%%$$Cxx""4((!!GSXX0F!GGO# &#-& #   0);se)C& % "!re   )module_namec                &   UR                   (       a  1 U R                  kU R                  knGOUR                  R	                  UR
                  5        S HO  nX1R                  ;  d  M  UR                  R                  US 5      (       d  M7  [        U5      UR                  U'   MQ     0 n[        U5        UR                  5       Vs/ s H  oUR                  PM     nnU H,  nXqR                  ;  d  M  [        U5      UR                  U'   M.     UR                  R                  5        H  nUR
                  (       a9  [        UR                  5      [        R                  ;   d  UR                  S:X  d  MM  UR                  R	                  UR                  [        UR                  5      05        M     1 U R                  kU R                  kUR
                  R!                  5       knU R#                  U5      u  pUR%                  X5        U$ s  snf )N)anacondacondazconda-buildz
python.appconsole_shortcutpowershell_shortcutpypi)rq   rW   rU   r   updatespecs_from_history_mapr   r   r%   r+   r   rH   iter_recordsr   aggressive_update_packagessubdirvalues_prepareset_repository_metadata)r`   r   prepared_specspkg_namevirtual_pkg_indexpvirtual_pkgsvirtual_pkgs_namer}   r   r   s              r=   r   Solver._collect_all_metadata  s   99Ht33Hd6G6GHN MM  !;!;<
 ==0S__5H5Hd6 6 /8.ACMM(+ !#)*;<,=,B,B,DE,DqFF,DLE%1!$MM97@AR7SCMM"34 &2 446 22 +w/Q/QQ{{f,MM(($))Ytyy5I)JK! 7$%%"" ++224N ==0##E-
? Fs   Hc           	       ^ U R                   (       Ga5  S U R                   5       n[        [        R                  " S U5       5      5      n[	        UR
                  UR                  R                  5       5      n/ m/ nU R                    HZ  n[        R                  [        SU5        UR                  U5      nU(       a  TR                  U5        MI  UR                  U5        M\     [        U4S jU5       5      nU(       a#  [        [        [        S U5       5      5      5      eT GH  n	[        U	R                   =(       d    S5      U-  n
U
(       a  U	R"                  UR$                  ;   a  UR                  R'                  U	R"                  [)        U	R"                  5      5      n[+        UR,                  R/                  5       VVs0 s H  u  pUS:w  d  M  X_M     snn5      Ul        XaR                  UR"                  '   M  UR                  R1                  U	R"                  S 5        GM     [        UR2                  5      Ul        U$ s  snnf )Nc              3  6   #    U  H  nS U;   d  M  Uv   M     g7ftrack_featuresNr7   r;   r   s     r=   r>   'Solver._remove_specs.<locals>.<genexpr>E  s       !59IT9Q!5s   
	c              3  B   #    U  H  oR                  S 5      v   M     g7fr  )get_raw_valuer  s     r=   r>   r  I  s!      $EUT&&'788EUs   z*using PrefixGraph to remove records for %sc              3  `   >^#    U  H"  m[        U4S  jT5       5      (       a  M  Tv   M$     g7f)c              3  F   >#    U  H  nTR                  U5      v   M     g 7fr:   r   r;   recr   s     r=   r>   1Solver._remove_specs.<locals>.<genexpr>.<genexpr>`  s     J6Is4::c??6I   !N)r   )r;   r   all_removed_recordss    @r=   r>   r  ]  s)      .4DJ6IJJ 4s   .	.c              3  8   #    U  H  n[        U5      v   M     g 7fr:   r   rB   s     r=   r>   r  d  s      K1JAQ1Jr@   r7   features)rW   r   r   from_iterabler&   r   r   r   r   r   remove_specr   r   rQ   r   sortedr  rH   r   r   r%   r1   _match_componentsr   popr   )r`   r   _track_fts_specsfeature_namesr   no_removed_records_specsr   removed_recordsunmatched_specs_to_remover  rec_has_a_featurekeyvaluer  s                @r=   r   Solver._remove_specs>  s    !%!5!5   ## $EU$ M
   2 2CMM4H4H4JKE"$')$,, KTR"'"3"3D"9"'..?,33D9 - ). .4. )%
 )+& K1J KKL  + %((:$;m$K!$S5O5O)O==,,SXXy7JKD-7 /3.D.D.J.J.L.L
"j0 'CJ.L.D* 04MM$)),MM%%chh5 +" "'u{{!3C
s   IIc                  ^^ TR                   R                  TR                  S5      u  nmT(       aL  [        U4S jTR                  5       5      Tl        TR                   R                  TR                  S5      u  nm[        R                  [        5      (       a(  [        R                  ST(       a  [        T5      OS5        T(       Ga  [        [        S5      [        R                  S9  [        [        T5      [        R                  S9  T H  nTR                  R                  UR                  S 5      nX44TR                   UR                  '   [#        UR                  UR%                  5       S9TR                  UR                  '   UR                  S:X  d  M  U(       d  M  UTR                  S'   M     [        U4S	 jTR                  5       5      Tl        T$ )
Nr7   c              3  Z   >#    U  H   nTR                   R                  X5      v   M"     g 7fr:   )r   r   )r;   r   r   s     r=   r>   5Solver._find_inconsistent_packages.<locals>.<genexpr>  s#     &WDVqsyy}}Q':':DVs   (+zinconsistent precs: %sNonez
            The environment is inconsistent, please check the package plan carefully
            The following packages are causing the inconsistency:filetargetpythonc              3  6   >#    U  H  oT;  d  M
  Uv   M     g 7fr:   r7   )r;   r}   inconsistent_precss     r=   r>   r,    s      '!3CU7U!3s   		)r   bad_installedr   rQ   r   isEnabledForr   r   r   r   r	   sysstderrr   r   rH   r   r%   r   )r`   r   rJ   r}   r   r4  s    `   @r=   r   "Solver._find_inconsistent_packages{  sv   
 !$ 3 3C4F4F K "'&WCDVDV&W!WC$'EE$7$78J8JB$O!A!E""II(0B+, E
 ZZ (-.SZZ@*}}((D9/3l  + ,5TYYt}}+Wdii( 99(TT.2CMM(+ + "' '!$!3!3' "C 
re   c                   UR                  UR                  5      nSnU(       a  US   nUR                  R                  R                  UR                  / 5       H[  nUR                  UR                  :  a  Sn  O>UR                  UR                  :X  d  M=  UR
                  UR
                  :  d  MY  Sn  O   U(       a)  [        UR                  WR                  UR
                  S9$ U$ )NFr   T)r   build_number)r   rH   r   groupsr   r;  r%   )r`   r   r   installed_poolinstalled_prec
has_updater}   s          r=   _package_has_updatesSolver._package_has_updates  s    '++DII6
+A.N((B7<<."8"88!%JLLN$:$::))N,G,GG!%J 8  diiDDUDUV	
 	
re   c                    UR                   (       d  gUR                  [        R                  :w  a  gUR                  nXc;  =(       a    Xd;  =(       d    X$U   ;   nU$ )NF)r   ro   r   r   rH   )r`   r   target_precconflict_specsexplicit_poolr=  r  no_conflicts           r=   _should_freezeSolver._should_freeze  s_     ))."A"AA ##4 
)S[(<S-S 	 re   c                  ^ ^^^^^ [        S TR                  R                  5       5      mTR                  R	                  T R
                  5      nTR                  (       a  SnO6TR                  R                  5       Vs/ s H  oDR                  5       PM     nnTR                  R                  UT R
                  5      =(       d
    [        5       nUVs1 s H  ofR                  iM     nnTR                  R                  5        GHs  u  nm[        U4S jTR                  5       5      nU(       d  M.  [        U5      S:w  a(  [        [!        S5      UT[#        S U5       SS94-  5      eUS	   n	U	R$                  (       a  U	R                  5       TR                  U'   M  ['        U5      [(        R*                  ;   a  ['        U5      TR                  U'   M  T R-                  TXUT5      (       a   U	R                  5       TR                  U'   GM
  UTR.                  ;   a5  ['        TR.                  U   U	R1                  5       S
9TR                  U'   GMO  ['        XyR1                  5       S
9TR                  U'   GMv     [3        5       mTR4                   GH
  n
U
R                  U;   d  M  U
R                  T R6                  ;  a4  TR8                  (       d#  ['        U
SS9TR                  U
R                  '   Md  X*R                     TR                  R	                  U
/5      R;                  U
R                  [3        5       5      -  (       a>  ['        U
SS9TR                  U
R                  '   TR=                  U
R                  5        M  [>        RA                  SU
5        GM     TRB                  [D        RF                  :X  a  TR                  R                  5       Vs/ s H   oR                  TR                  ;  d  M  UPM"     nnU Hv  nUR                  U;  a)  UR                  5       TR                  UR                  '   M<  ['        UR                  UR                  5       SS9TR                  UR                  '   Mx     [>        RI                  STR                  5        TRB                  [D        RJ                  :X  Ga+  TR.                  (       a  [M        U4S jTR.                  5       5      Tl        TR                  R                  5        HO  nURN                  S:X  d  M  TR                  RQ                  UR                  ['        UR                  5      05        MQ     GOTR                  R                  5       Vs0 s H\  nUR                  UR                  S TR4                  5       ;  a  ['        UR                  5      OTR                  UR                     _M^     snTl        GO+TRB                  [D        RR                  :X  Ga  UU4S jm[        UU UU4S jT R
                  5       5      nTR                  R                  [        S TR                  RU                  5       5       5      U5      nU=(       d    S H  nUR                  TR                  ;   d  M  ['        USS9TR4                  ;  d  TR8                  (       d  MJ  UR                  TR.                  ;  d  Mf  ['        UR                  5      TR                  UR                  '   M     [W        S TR                  5       5      n[W        S T R
                  5       5      nU(       Ga  U(       Gdw  TR                  R;                  S5      nTRB                  [D        RF                  :H  nSU;  a&  U(       a  UR                  5       TR                  S'   GOTR                  R;                  S['        S5      5      nUR;                  S5      (       d"  [Y        URZ                  5      S-   n['        UUS9nU4[        T R
                  5      -   nTR                  R                  UT R
                  5      (       ac  T R\                  S:w  d,  T R^                  [`        :X  a4  TRb                  (       a  U(       d  TR                  Re                  U5        O[g        0 5      eUTR                  S'   [(        Rh                  (       dL  [(        R*                   H8  mTR                  TR                  ;   d  M  TTR                  TR                  '   M:     TR                  RQ                  U4S jT R
                  5       5        STR                  ;   a  [k        T Rl                  [(        Rn                  5      (       a  TR                  R;                  S5      nU(       a  S URZ                   3n[W        S! T R
                  5       5      nTR                  S   nTR                  R;                  S0 5      R;                  S5      nU(       d
  ['        UUS9n[(        Rp                  (       a  U(       d  ['        SUS S"9nUTR                  S'   T$ s  snf s  snf s  snf s  snf )#Nc                    U R                   $ r:   rG   xs    r=   r~   #Solver._add_specs.<locals>.<lambda>  s    166re   r7   c              3  X   >#    U  H  nTR                  U5      (       d  M  Uv   M!     g 7fr:   r   )r;   r}   r   s     r=   r>   $Solver._add_specs.<locals>.<genexpr>  s"      %!3tzz$7G!3   *	*r*   a  
                    Conda encountered an error with your environment.  Please report an issue
                    at https://github.com/conda/conda/issues.  In your report, please include
                    the output of 'conda info' and 'conda list' for the active environment, along
                    with the command you invoked that resulted in this error.
                      pkg_name: %s
                      spec: %s
                      matches_for_spec: %s
                    c              3  8   #    U  H  n[        U5      v   M     g 7fr:   r  rB   s     r=   r>   rO    s     %G6Fc!ff6Fr@      )indentr   r0  FoptionalzFpinned spec %s conflicts with explicit specs.  Overriding pinned spec.T)r1  rU  zspecs_map with targets: %sc              3     >#    U  Hr  n[        U5      R                  S  TR                  5       ;  a  U[        U5      4O6[        U5      R                  TR                  [        U5      R                     4v   Mt     g7f)c              3  8   #    U  H  oR                   v   M     g 7fr:   rG   rI   s     r=   r>   .Solver._add_specs.<locals>.<genexpr>.<genexpr>J  s     3UDTqFFDTr@   N)r%   rH   pinned_specsr   )r;   r   r   s     r=   r>   rO  H  sp      % !; !++3UCDTDT3UU 9T?+#D/..io>R>R0STU !;s   A:A=r   c              3  8   #    U  H  oR                   v   M     g 7fr:   rG   rI   s     r=   r>   rO  V  s     ,N=MVV=Mr@   c                   >^  T R                   T;  =(       a6    [        U 4S jTR                  5       5      =(       a    TR                  (       + =(       d    T R                   TR                  ;   $ )Nc              3  V   >#    U  H  nTR                   UR                   :H  v   M      g 7fr:   rG   )r;   rJ   rL  s     r=   r>   6Solver._add_specs.<locals>.<lambda>.<locals>.<genexpr>c  s      G6FAFFaff,6Fs   &))rH   r   rY  rr   r   )rL  pin_overridesr   s   `r=   r~   rM  `  sW    FF-/ .Gc6F6FGG.---8
 66S7778re   c              3  h   >#    U  H'  nT" U5      (       a  M  TR                  TUT5      v   M)     g 7fr:   )r@  )r;   rJ   r=  r`   skipr   s     r=   r>   rO  i  s4      !*AAw B))#q.AA*s   22c              3  8   #    U  H  n[        U5      v   M     g 7fr:   r$   rI   s     r=   r>   rO  p  s     C,Bqill,Br@   c              3  >   #    U  H  oR                   S :H  v   M     g7fr2  NrG   rI   s     r=   r>   rO    s     J7I!66X-7I   c              3  >   #    U  H  oR                   S :H  v   M     g7frc  rG   rB   s     r=   r>   rO    s     %TBSQff&8BSrd  r2  r   .*r   installc              3  b   >#    U  H$  oR                   T;  d  M  UR                   U4v   M&     g 7fr:   rG   )r;   rC   r^  s     r=   r>   rO    s(      
!2AffM6QKQVVQK!2s   //r   z>=c              3  >   #    U  H  oR                   S :H  v   M     g7f)r   NrG   rB   s     r=   r>   rO    s      1/@!FFg%/@rd  )r   r1  )9r   r   r   r   _get_package_poolrU   rq   to_match_specget_conflicting_specsrQ   rH   r   r   r   r   r   r   r   r|   r%   r   r   rG  r   r   r   rY  rV   rr   r   addr   warningro   r   r   r   
UPDATE_ALLdictr   r   r   r   r   r   r   rY   r[   r   ru   find_conflictsr   offliner   rN   conda_prefixauto_update_conda) r`   r   rE  installed_specsrecordrD  r   r  matches_for_specrC  rC   rJ   precsr}   rU   	conflictsconflictpy_in_prefixpy_requested_explicitlypython_prefix_recfreeze_installedpython_specpinned_versionspec_setconda_prefix_recversion_reqconda_requested_explicitly
conda_specconda_in_specs_to_add_versionr=  r^  r`  s    ``    `                      @@@r=   r   Solver._add_specs  sU    !!13??3O3O3QR //0A0AB99 O 69__5Q5Q5S5S6$$&5S  
 EE''9J9JKVuw 	 1??))?!mm113NHd$ %!$!3!3%    '(A-$
 % $%G6F%GPQR $ /q1...9.G.G.ICMM(+x(G,N,NN.7.ACMM(+((m^  /:.G.G.ICMM(+!;!;;.7228<*335/CMM(+
 /8 )=)=)?/CMM(+O 4V !!Avv&66!8!88ARAR,5a%,HCMM!&&)"66*SUU-D-DaS-I-M-MFFCE.  -6a%,HCMM!&&)!%%aff-KK2 ", ."A"AA??7799aVV3===X9   99N2/3/A/A/CCMM$)),/8		$*<*<*>0CMM$)),	  			.> .";";; )) $ % !$ : :	% !  OO88:D{{f,,,dii4999M-NO ; !$ < < >! !? II99,NS=M=M,NN "$)), ]]49956
 !?!   N$?$??D ! !**! L 33CCMM,@,@,BCC\I &OO MMS]]2 "(T:#BRBRR,,, S-G-GG3<X]]3KCMM(--0 , Js7I7IJJ"%%T$BSBS%T"T 7 # 3 3H ="22n6U6UU~-2B*;*I*I*Kh' "mm//)H:MN"y11/0A0I0IJTQ # #,K"PK'>E$2C2C,DD55..x9J9JKK}}	1))[8!$!7!7?O ,,X6044*5h' ::99-/3CMM$)), ; 	 
!%!2!2
 	
 cmm#DKKAUAU(V(V"227; "#3#;#;"<=-0 1/3/@/@1 .* !]]73
030A0A'20N0R0R1- 5!*:{!KJ,,5O!*7KPT!UJ)3g&
q @JB!s    i*i/i4=i4>A#i9c           
     f	  ^^ [        / TR                  R                  5       QTR                  Q75      nTR                  R                  5       Vs/ s H'  nTR                  R                  U5      (       a  M%  UPM)     nnU(       a  [        U5      e[        TR                  R                  [        U5      U R                  5      =(       d    / 5      nU(       Ga4  Sn[        R                  [        5      (       a%  [        R                  S[        S U5       5      5        [        TR                  R                  5       5      m[!        U4S jU5      n[!        U4S jU5      nUR#                  S5      (       a  UR#                  SS5      n	UR#                  SS5      n
[        U	5      [        U R                  5      -  [        U
5      -
  n[%        ['        S U5       5      ['        S	 U
Vs1 s H  o3iM     sn5       5      U R(                  5      eU H  nUR*                  (       d  M  UR,                  (       a  M)  SnUR/                  U5        UR#                  S
5      (       a  [1        UR2                  UR4                  S9nO[1        UR2                  5      nUR7                  U5        UTR                  UR2                  '   M     U(       a9  [        TR                  R                  [        U5      U R                  5      5      nOO
U(       a  GM4  [        R                  [        5      (       a.  [        R                  S[        ['        S U5       5      5      5        U(       a  [8        R:                  (       aI  TR                  R=                  [        U5      U R                  TR>                  TR@                  S9Tl!        O[E        0 5      e[        U4S jTR                  RG                  5       5       5      U l$        TRJ                  (       a  TRJ                  RG                  5        Hp  u  nu  pU(       a  M  TRB                  Vs/ s H  nUR2                  U:w  d  M  UPM     snTl!        TRB                  RM                  U5        UR7                  U5        Mr     UTl'        T$ s  snf s  snf s  snf )NFzconflicting specs: %sc              3  J   #    U  H  oR                   =(       d    Uv   M     g 7fr:   r0  rB   s     r=   r>   "Solver._run_sat.<locals>.<genexpr>  s     F4EqXX]]4Es   !#c                   > U T;   $ r:   r7   )rC   specs_map_sets    r=   r~   !Solver._run_sat.<locals>.<lambda>  s
    a=.@re   c                2   > [        U SS9TR                  ;   $ )NTrT  )r%   rY  )rC   r   s    r=   r~   r    s    )A59I9IIre   Tr7   c              3  @   #    U  H  oR                  5       v   M     g 7fr:   __str__rB   s     r=   r>   r    s     M0L199;;0Lr   c              3  @   #    U  H  oR                  5       v   M     g 7fr:   r  rB   s     r=   r>   r    s     N0M199;;0Mr   r   rg  zfinal specs to add: %sc              3  8   #    U  H  n[        U5      v   M     g 7fr:   r  rB   s     r=   r>   r    s     H0G1A0Gr@   )rU   history_specsru   c              3     >#    U  HD  u  pUTR                   ;   d  M  UR                  TR                   U   R                  :  d  M@  Uv   MF     g 7fr:   )r   
strictness)r;   r   r   r   s      r=   r>   r  )  sN      $
-C...  s99!<GGG A-s   A%A	A)(r   r   r   track_features_specsr   find_matchesr   r   rm  rQ   rU   r   r6  r   r   r   r   r   r   r  rN   r1  rU  remover%   rH   r   rn  r   unsatisfiable_hintssolver   ru   r   r   r   rX   r   r   final_environment_specs)r`   r   r  rC   absent_specsconflicting_specsspecs_modifiedgrouped_specsconflicting_pinned_specsin_specs_mappinned_conflictsin_specs_map_or_specs_to_addr   neutered_specrH   r}   rJ   r  s    `               @r=   r   Solver._run_sat  s   ",%%'))#
 $'==#7#7#9W#9aASASTUAV#9W'55  EE''-.0A0A  	
  "N&&		+F4EFF   4 4 67M#$@BSTM
 (/I!($
 (++D11,00r:#;#?#?b#I %D,=,=(>>()0*, 6M0LMMN<L0M<Lq<L0MNNKK 
 *;;;t}}}%)N+2248xx	**(1$))T\\(R(1$))(<+//>/<CMM$)), * $'EE//568I8I%! g  l E""II(H0GHHI !G$?$?!$-.!..!88#&#9#9	 "- "C %R((# $
++-$
 
 &)&6&6&<&<&>"lt t $'#5#5*#5a4#5*C& &&--d3+//5 '? '>#
m Xh 1Nv*s   $R$8R$)R)R.R.c           	     	  ^^^ TR                   nTR                  [        R                  :X  a  [	        TR
                  R                  5       5      nU R                  VVs1 s H'  nU  H  nUR                  U5      (       d  M  UiM     M)     nnnX6-  nU R                  VVs1 s H1  nTR                    H  nUR                  U5      (       d  M  UiM     M3     nnnUVs1 s H  oUR                  iM     snm[	        U4S jU5       5      nX7-  nUTl
        GO[TR                  [        R                  :X  GaY  TR                  [        R                  :w  Ga:  [!        TR                  U R                  5      nUR#                  5       n	[%        U R                  5      U l	        U	 HX  nUR&                   HE  n
[)        U
5      n
U
R                  TR*                  ;  d  M*  U R                  R-                  U
5        MG     MZ     [/        U R                  5      U l	        U R                  Vs1 s H  oDR                  iM     snm[1        UU4S jU	5       5      n[1        [!        / UR2                  Q[5        S U5      Q75      R2                  5      Tl
        GOTR                  [        R                  :X  Ga  [!        TR                  5      n[%        5       nU R                   HD  nUR7                  UR                  5      nUR9                  S UR;                  U5      5       5        MF     UVs0 s H  o[)        U5      _M     nnTR<                   H  nUR?                  UR                  S 5        M!     SU;   aX  TR
                  RA                  S5      nSRC                  URD                  RG                  S5      S S 5      S-   n[)        SUS9US'   UR9                  U R                  Vs0 s H  oDR                  U_M     sn5        [1        URI                  5       5      nUU l	        U RK                  [        RL                  TR                  TRN                  TRP                  TRR                  S	9Tl
        S
Tl'        TRN                  (       a@  [!        TR                  U5      nURO                  5         [1        UR2                  5      Tl
        T$ s  snnf s  snnf s  snf s  snf s  snf s  snf )Nc              3  L   >#    U  H  nUR                   T;  d  M  Uv   M     g 7fr:   rG   )r;   r}   remove_before_adding_backs     r=   r>   ,Solver._post_sat_handling.<locals>.<genexpr>\  s'      +-D99$== -r   c              3     >#    U  H=  nUR                   T;  d  M  TR                  R                  UR                   S 5      v   M?     g 7fr:   )rH   r   r   )r;   nodespecs_to_remove_namesr   s     r=   r>   r    s?      )D99$99 5##DIIt44)s
   A-Ac              3  8   #    U  H  oR                   v   M     g 7fr:   rG   )r;   
ancest_recs     r=   r>   r    s      $6O
OO6Or@   r2  .r   rf  r   )ro   rp   rq   rr   rs   F)*r  rp   r   NO_DEPSr   r   r   rW   r   rU   r   rH   	ONLY_DEPSro   r   UPDATE_DEPSr&   +remove_youngest_descendant_nodes_with_specsr   r   r%   r   rn  rS   rQ   r   filterget_node_by_namer   all_ancestorsrY  r   r   r   r   splitr   r   r   rq   rr   rs   )r`   r   r  _no_deps_solutionr   r}   only_remove_theseonly_add_theser   removed_nodesr   add_backupdate_namesr  rH   r   
python_recpy_vernew_specs_to_addr  r  s    `                 @@r=   r   Solver._post_sat_handlingB  sF   "%"="= 4 44 !+3??+G+G+I J !00!0D-D::d# - 0  ! 2 !---D..D::d# . -   @N(N~t~(N% * +-+ !
 /!2C
 !7!77##~'A'AA   2 2D4E4EFE!MMOM #D$5$5 6D%<<C#C.Cxxs}}4))--c2 ( & !*$*;*; <D <@;O;O$P;O4YY;O$P! ) H
 "'CekkCF4,BCDJJ"C   N$>$>>   2 23E5L))--dii8## $6;6I6I$6O$  *
 <HH<4y.<IH ((dii. )9$ __00:
*"4"4":":3"?"CDtK&/Xv&N	(#$:K:KL:K$iio:KLM$Y%5%5%78 !1D!%!7!7 . ; ;!//ii!// -- "8 "C CI99 2 24KLEKKM!&u{{!3C
[! )OJ %Q: I Ms0    S
S"*S
S S&S&S"S"c                  ^ [         R                  (       a  [         R                  (       a  g [        [         R                  5      R                  SS 5      nU(       Ga  UR                  R                  nU[        :X  a  Sn[        U S[         35      m[        U R                  [         R                  5      (       a  [        U4S jU5       5      (       a  g [        [        R                   " TU R"                  U R$                  U R&                  S9S S9nU(       aB  US   R(                  n[+        [-        S	[         S
U SU SU S3	5      [.        R0                  S9  g g g )Nr   defaultsz::conda>c              3  F   >#    U  H  nTR                  U5      v   M     g 7fr:   r   )r;   r}   conda_newer_specs     r=   r>   0Solver._notify_conda_outdated.<locals>.<genexpr>  s      K
'--d33
r  )ra   c                ,    [        U R                  5      $ r:   )r'   r   rK  s    r=   r~   /Solver._notify_conda_outdated.<locals>.<lambda>  s    l1995re   r'  zg

                ==> WARNING: A newer version of conda exists. <==
                  current version: z#
                  latest version: z`

                Please update conda by running

                    $ conda update -n base -c z conda

                Or to minimize the number of packages updated during conda update use

                     conda install conda=z

                r.  )r   notify_outdated_condaquietr/   rt  r   channelcanonical_namer   r%   CONDA_VERSIONr   rN   r   r  r0   	query_allrO   rR   r[   r   r   r	   r7  r8  )r`   rw   current_conda_prefix_recchannel_nameconda_newer_precslatest_versionr  s         @r=   rn   Solver._notify_conda_outdated  sD   ,,#-g.B.B#C#G#GQU#V #3;;JJL.)  )L>-)QR4;;(<(<==K
KKK &$$$MMLL $ 1 1	 6
! !!22!6!>!> $ %2? 3##1"2 3/ 0<n =* +9)9 :" %	 !/ $re   c                   U R                   (       a'  XR                  :X  a  U R                  U R                  4$ [	        U S5      (       aP  U R                  (       a?  Xl        [        U R                  5        [        U R                  U R                  S9U l        O[        5       nU R                   H7  nUR                  S5      nU(       d  M  UR                  [        U5      5        M9     U R                  R                  U5        [        U R                  U R                  U R                   UU R"                  5      n[        U5        Xl        XPl        [        XPR                  S9U l        SU l         U R                  U R                  4$ )Nr\   )rO   r  T)r^   _prepared_specsr\   r]   r   r+   r)   rO   r   rU   get_exact_valuern  r"   r   r,   rN   rR   r[   )r`   r  additional_channelsr   r  reduced_indexs         r=   r  Solver._prepare  s%    >>n0D0DD;;''4""t{{#1 )$++6dkkDMMBDG #&%))..y97'++GG,<=	 * MM  !45-!!M *-8#1 'KmmmDDG{{DGG##re   )rP   rY   r\   r_   r^   r  r]   r[   rO   rX   rN   rU   rV   rW   r   rR   N)rN   r   rO   zIterable[Channel]rR   zIterable[str]rU   Iterable[MatchSpec]rW   r  ra   r   returnz;tuple[tuple[PackageRecord, ...], tuple[PackageRecord, ...]])__name__
__module____qualname____firstlineno____doc__r   r   rc   rx   rl   r   r   r   r   r   r   r   r   r@  rG  r   r   r   rn   r  __static_attributes__r7   re   r=   r5   r5   :   sB    "$,./1&(( $( 	(
 *( -( (X  H
X  ;( 
E;(~  t"l'!R"("2 x(: ):x;z x(+ )+Z
.$l\ x( )Bxt2h)$re   r5   c                  l    \ rS rSrS r\S 5       r\S 5       r\S 5       r\S 5       r	S r
S rS	 rS
rg)r   i  c                    X l         X0l        X@l        XPl        X`l        Xpl        Xl        S U l        S U l        0 U l	        S U l
        U R                  5         0 U l        S U l        g r:   )ro   rp   rq   rr   rs   ru   rN   r   r   r   r   _init_solution_precsr   r  )r`   rN   ro   rp   rq   rr   rs   ru   s           r=   rc   SolverStateContainer.__init__   sk    $  /*
*("4  
 "!!#'+$re   c                ,    [        U R                  5      $ r:   )r/   rN   r`   s    r=   r    SolverStateContainer.prefix_dataK  s    $++&&re   c                H    [        U R                  5      R                  5       $ r:   )r    rN   get_requested_specs_mapr  s    r=   r   +SolverStateContainer.specs_from_history_mapO  s    t{{#;;==re   c                @    [        S [        R                  5       5      $ )Nc              3  >   #    U  H  n[        US -   5      v   M     g7f)@Nr$   )r;   rL  s     r=   r>   <SolverStateContainer.track_features_specs.<locals>.<genexpr>U  s     H1GAYq3w''1Grd  )rQ   r   r  r  s    r=   r  )SolverStateContainer.track_features_specsS  s    H1G1GHHHre   c                R    U R                   (       a  S$ [        U R                  5      $ )Nr7   )rr   get_pinned_specsrN   r  s    r=   rY  !SolverStateContainer.pinned_specsW  s    ''rJ-=dkk-JJre   c                     XsU l         U l        g r:   )r   r   )r`   r   r   s      r=   r  ,SolverStateContainer.set_repository_metadata[  s    "
DFre   c                    U R                   (       a  [        5       U l        g [        U R                  R	                  5       5      U l        g r:   )rq   rQ   r   r   r   r  s    r=   r  )SolverStateContainer._init_solution_precs^  s/    ::"''D"'(8(8(E(E(G"HDre   c                N    0 U l         U R                  5         0 U l        S U l        g r:   )r   r  r   r  r  s    r=   working_state_reset(SolverStateContainer.working_state_resete  s%    !!#'+$re   )r   rp   r  rs   rr   r   rN   rq   r   ru   r   r   ro   N)r  r  r  r  rc   r   r   r   r  rY  r  r  r  r  r7   re   r=   r   r     sl    ),V ' ' > > I I K K&I,re   r   c                8   [        U SS5      n[        U5      (       aG  [        U5       nS UR                  5       R	                  5       R                  5       5       nSSS5        OSn[        S / [        R                  QWQ75       5      $ ! , (       d  f       N2= f)z<Find pinned specs from file and return a tuple of MatchSpec.z
conda-metapinnedc              3     #    U  H6  nU(       d  M  UR                  5       R                  S 5      (       a  M2  Uv   M8     g7f)#N)stripr   r   s     r=   r>   #get_pinned_specs.<locals>.<genexpr>q  s5      6A WWY11#6 6s   A "A 	A Nr7   c              3  6   #    U  H  n[        US S9v   M     g7f)TrT  Nr$   r  s     r=   r>   r  y  s      :D 	$&:s   )	r   r   openreadr  
splitlinesrQ   r   pinned_packages)rN   pinfilef	from_files       r=   r  r  l  s    6<2Gg']a)446I ] 	 :g--:	:   ]s   3B
Br7   c           	     v  ^^	^
^^^^ [        T[        5      (       d0  [        TS5      (       d   S5       e[        TS5      (       d   S5       e[        [        [	        U 5      R                  5       5      R                  5      mU[        L a  [        R                  OUnTT-
  mTT-
  m	U	U
UU4S jnU(       a/  U H)  m[        U4S jT5       S 5      m
T
(       d   eU" T
5        M+     [        S5      m[        U4S jT5       S 5      n[        U4S	 jT5       S 5      n[        nU(       aF  U(       a?  U" UR                  5      U" UR                  5      :w  a  S
 T5       nU H  m
U" T
5        M     [        [        [        TU4S jS95      5      m[        [        T	U4S jS95      m	[!        T5      [!        T	5      4$ )N__getitem__z&final_precs must support list indexing__sub__z'final_precs must support set differencec                X   > TR                  U 5        TT;   a  TR                  U 5        g g r:   )rn  )r  rw   r}   previous_recordsrv   s    r=   _add_to_unlink_and_link;diff_for_unlink_link_precs.<locals>._add_to_unlink_and_link  s+    s##S! $re   c              3  X   >#    U  H  nTR                  U5      (       d  M  Uv   M!     g 7fr:   r   r  s     r=   r>   -diff_for_unlink_link_precs.<locals>.<genexpr>  s     Gtzz#rP  r2  c              3  X   >#    U  H  nTR                  U5      (       d  M  Uv   M!     g 7fr:   r   r;   r  r  s     r=   r>   r    s"     C(K,=,=c,B(rP  c              3  X   >#    U  H  nTR                  U5      (       d  M  Uv   M!     g 7fr:   r   r  s     r=   r>   r    s      M{k6G6G6L{rP  c              3  d   #    U  H&  oR                   [        R                  :X  d  M"  Uv   M(     g 7fr:   )noarchr#   r2  )r;   r  s     r=   r>   r    s!     W+QZEVEV9Vqq+s   !0	0c                &   > TR                  U 5      $ r:   r   )rL  r  s    r=   r~   ,diff_for_unlink_link_precs.<locals>.<lambda>  s    4D4J4J14Mre   r  c                &   > TR                  U 5      $ r:   r  )rL  r   s    r=   r~   r    s    [=N=Nq=Qre   )
isinstancer   r   r&   r/   r   r   r   r   rt   r   r%   r   r   reversedr  rQ   )rN   r   rU   rt   r  prev_pythoncurr_pythongmmnoarch_python_precsrw   r}   r  r  r   rv   s    `       @@@@@@r=   r   r     s    k:..{M22 	
4	
2 {I.. 	
5	
. "+j.@.M.M.O"P"V"VW#2d#:  $k1L//J" "  DGGNDK4#D) ! H%KC(CTK M{MtTK
!C##$K,?,?(@@W+W'D#D) ( *MNOL F:3QRSJj 111re   r  )Yr  
__future__r   r   r7  	itertoolsr   loggingr   r   os.pathr   r   textwrapr	   typingr
   boltons.setutilsr    r   r   r  auxlib.decoratorsr   
auxlib.ishr   base.constantsr   r   r   r   base.contextr   common.constantsr   r   	common.ior   r   common.iteratorsr   r   common.pathr   r   
exceptionsr   r   r   historyr    models.channelr"   models.enumsr#   models.match_specr%   models.prefix_graphr&   models.versionr'   	reportersr(   resolver)   r   r+   r,   linkr-   r.   r   r/   subdir_datar0   r1   ImportErrorauxlib.collectioncollections.abcr2   models.recordsr3   r  r   r5   r   r  r   r7   re   r=   <module>rE     s    ) "  
  $      '  + 0  W W " * / 9 > 
  $ % ) - ) #  C 4 # #/% (._$ _$D'M, M,`, 	82
 A82a*  /./s   D D*)D*