Ë
    äO´j”^  ã                  óH  — U d dl mZ d dlZd dlZd dlZd dlmZmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZ ddlmZmZ ddlmZ dd	lmZmZmZmZmZ erd d
lmZmZm Z  ddl!m"Z"m#Z# ddl$m%Z% dZ&de'd<   dd„Z( G d„ deee	e
f   «      Z) G d„ deee	e
f   «      Z*	 	 	 	 	 	 	 	 	 	 dd„Z+y)é    )ÚannotationsN)ÚTYPE_CHECKINGÚGenericé   )	ÚCTÚKTÚRTÚDirectedGraphÚIterableViewÚIteratorMappingÚRequirementInformationÚStateÚbuild_iter_viewé   )ÚAbstractResolverÚResult)Ú	Criterion)ÚInconsistentCandidateÚRequirementsConflictedÚResolutionImpossibleÚResolutionTooDeepÚResolverException)Ú
CollectionÚIterableÚMapping)ÚAbstractProviderÚ
Preference)ÚBaseReportergš™™™™™¹?ÚfloatÚ_OPTIMISTIC_BACKJUMPING_RATIOc                ó´  — | j                   }|j                  «       D ��ci c]  \  }}t        |«      |“Œ }}}d |t        d «      <   t        «       }|j	                  d «       d h}| j
                  j                  «       D ]~  \  }}t        | j
                  |||«      sŒ||vr|j	                  |«       |j                  «       D ]8  }		 |t        |	«         }
|
|vr|j	                  |
«       |j                  |
|«       Œ: Œ€ t        |j                  «       D ��ci c]  \  }}||v sŒ||“Œ c}}|| j
                  ¬«      S c c}}w # t        $ r Y Œ�w xY wc c}}w )N)ÚmappingÚgraphÚcriteria)r"   ÚitemsÚidr
   Úaddr$   Ú_has_route_to_rootÚiter_parentÚKeyErrorÚconnectr   )Ústater"   ÚkÚvÚall_keysr#   Ú	connectedÚkeyÚ	criterionÚpÚpkeys              ú‚/var/www/origus_pro_usr/data/www/origus.pro/core/.venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/resolution.pyÚ_build_resultr6   &   sF  € Ø�m‰m€GØ;B¿=¹=»?×%K±4°1°a¤b¨£e¨Q¡hÐ%K€HÑ%KØ€HŒR�‹XÑä&3£o€EØ	‡I�Iˆd„Oà!% €IØŸ.™.×.Ñ.Ó0ò %‰ˆˆYÜ! %§.¡.°#°xÀÔKØØ�eÑØ�I‰I�cŒNØ×&Ñ&Ó(ò 	%ˆAðØ¤ 1£‘�ð ˜5Ñ Ø—	‘	˜$”Ø�M‰M˜$ Õ$ñ	%ð%ô Ø")§-¡-£/×D™$˜!˜Q°Q¸)²^��A‘ÓDØØ—‘ôð ùó+ &Løô ò Ùðüó Es#    D?ÃEÄE
Ä%E
Å	EÅEc                  óÖ   — e Zd ZdZ	 	 	 	 	 	 dd„Zedd„«       Zdd„Z	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	dd„Z
	 	 	 	 	 	 dd„Zdd	„Zdd
„Z	 	 	 	 dd„Zdd„Zdd„Zdd„Z	 	 	 	 dd„Zdd„Zy)Ú
Resolutionz­Stateful resolution object.

    This is designed as a one-off object that holds information to kick start
    the resolution process, and holds the results afterwards.
    c                ó`   — || _         || _        g | _        t        | _        d | _        d | _        y ©N)Ú_pÚ_rÚ_statesr    Ú_optimistic_backjumping_ratioÚ_save_statesÚ_optimistic_start_round)ÚselfÚproviderÚreporters      r5   Ú__init__zResolution.__init__K   s4   € ð
 ˆŒØˆŒØ02ˆŒô .KˆÔ*Ø<@ˆÔØ37ˆÕ$ó    c                ó\   — 	 | j                   d   S # t        $ r}t        d«      |‚d }~ww xY w)Néÿÿÿÿr,   )r=   Ú
IndexErrorÚAttributeError)rA   Úes     r5   r,   zResolution.stateY   s3   € ð	1Ø—<‘< Ñ#Ð#øÜò 	1Ü  Ó)¨qÐ0ûð	1ús   ‚ ‘	+š&¦+c                óî   — | j                   d   }t        |j                  j                  «       |j                  j                  «       |j
                  dd ¬«      }| j                   j                  |«       y)z‰Push a new state into history.

        This new state will be used to hold resolution results of the next
        coming round.
        rG   N©r"   r$   Úbacktrack_causes)r=   r   r"   Úcopyr$   rM   Úappend)rA   Úbaser,   s      r5   Ú_push_new_statezResolution._push_new_state`   s^   € ð �|‰|˜BÑˆÜØ—L‘L×%Ñ%Ó'Ø—]‘]×'Ñ'Ó)Ø!×2Ñ2±1Ð5ô
ˆð
 	�‰×Ñ˜EÕ"rE   c           
     óp  — | j                   j                  ||¬«       | j                  j                  |¬«      }|j	                  |«      }|rt        |j                  «      }ng }| j                  j                  |t        |t        j                  d«      ||gi«      t        |t        j                  d«      ||i«      ¬«      }|r1t        |j                  «      }|j                  t        ||«      «       nt        ||«      g}t        t!        |«      ||¬«      }|j"                  st%        |«      ‚|||<   y )N)ÚrequirementÚparent)Úrequirement_or_candidateÚiter_requirementÚincompatibilities©Ú
identifierÚrequirementsrW   ©Ú
candidatesÚinformationrW   )r<   Úadding_requirementr;   ÚidentifyÚgetÚlistrW   Úfind_matchesr   ÚoperatorÚmethodcallerÚ
attrgetterr]   rO   r   r   r   r\   r   )	rA   r$   rS   rT   rY   r2   rW   Úmatchesr]   s	            r5   Ú_add_to_criteriazResolution._add_to_criterian   s1  € ð 	�‰×"Ñ"¨{À6Ð"ÔJà—W‘W×%Ñ%¸{Ð%ÓKˆ
Ø—L‘L Ó,ˆ	ÙÜ $ Y×%@Ñ%@Ó AÑà "Ðà—'‘'×&Ñ&Ø!Ü(ØÜ×%Ñ%Ð&8Ó9Ø˜k˜]Ð+óô
 .ØÜ×#Ñ#Ð$7Ó8ØÐ.Ð/óð 'ó 
ˆñ Ü˜y×4Ñ4Ó5ˆKØ×ÑÔ5°kÀ6ÓJÕKä1°+¸vÓFÐGˆKäÜ& wÓ/Ø#Ø/ô
ˆ	ð
 ×#Ò#Ü(¨Ó3Ð3Ø(ˆ�ÒrE   c           
     ó"  — |sy|j                  «       D ]t  \  }}t        |j                  |j                  D �cg c]7  }|j                  �'| j
                  j                  |j                  «      |vr|‘Œ9 c}|j                  «      ||<   Œv yc c}w )aW  Remove information from parents of criteria.

        Concretely, removes all values from each criterion's ``information``
        field that have one of ``parents`` as provider of the requirement.

        :param criteria: The criteria to update.
        :param parents: Identifiers for which to remove information from all criteria.
        N)r%   r   r\   r]   rT   r;   r_   rW   )rA   r$   Úparentsr1   r2   r]   s         r5   Ú!_remove_information_from_criteriaz,Resolution._remove_information_from_criteriaš   s’   € ñ ØØ&Ÿn™nÓ.ò 	‰NˆC�Ü%Ø×$Ñ$ð (1×'<Ñ'<öà#à#×*Ñ*Ð2ØŸ7™7×+Ñ+¨K×,>Ñ,>Ó?ÀwÑNò	  òð ×+Ñ+óˆH�SŠMñ	ùòs   ¸<Bc                óV  — | j                   j                  || j                  j                  t	        | j                  j
                  t        j                  d«      «      t	        | j                  j
                  t        j                  d«      «      | j                  j                  ¬«      S )Nr\   r]   )rY   Úresolutionsr\   r]   rM   )	r;   Úget_preferencer,   r"   r   r$   rc   re   rM   )rA   Únames     r5   Ú_get_preferencezResolution._get_preferenceµ   s…   € Ø�w‰w×%Ñ%ØØŸ
™
×*Ñ*Ü&Ø—
‘
×#Ñ#Ü×#Ñ# LÓ1óô (Ø—
‘
×#Ñ#Ü×#Ñ# MÓ2óð "ŸZ™Z×8Ñ8ð &ó 
ð 	
rE   c                óž   ‡ ‡— 	 ‰ j                   j                  |   Št        ˆˆ fd„|j	                  «       D «       «      S # t        $ r Y yw xY w)NFc              3  óX   •K  — | ]!  }‰j                   j                  |‰¬ «      –— Œ# y­w©)rS   Ú	candidateN©r;   Úis_satisfied_by)Ú.0ÚrÚcurrent_pinrA   s     €€r5   ú	<genexpr>z8Resolution._is_current_pin_satisfying.<locals>.<genexpr>Ë   s-   øè ø€ ò 
àð �G‰G×#Ñ#°¸[Ð#×Iñ
ùó   ƒ'*)r,   r"   r*   ÚallrV   )rA   rn   r2   rx   s   `  @r5   Ú_is_current_pin_satisfyingz%Resolution._is_current_pin_satisfyingÄ   sU   ù€ ð	ØŸ*™*×,Ñ,¨TÑ2ˆKô ô 
à×/Ñ/Ó1ô
ó 
ð 	
øô ò 	Ùð	ús   „A  Á 	AÁAc                ó¸   — | j                   j                  j                  «       }| j                  j	                  |¬«      D ]  }| j                  |||¬«       Œ |S )N©rs   ©rT   )r,   r$   rN   r;   Úget_dependenciesrg   )rA   rs   r$   rS   s       r5   Ú_get_updated_criteriaz Resolution._get_updated_criteriaÐ   sW   € Ø—:‘:×&Ñ&×+Ñ+Ó-ˆØŸ7™7×3Ñ3¸iÐ3ÓHò 	KˆKØ×!Ñ! (¨KÀ	Ð!ÕJð	KàˆrE   c                óž  ‡ ‡— ‰ j                   j                  |   }g }|j                  D ]È  Š	 ‰ j                  ‰«      }t        ˆˆ fd„|j                  «       D «       «      }|st        ‰|«      ‚‰ j
                  j                  ‰¬«       ‰ j                   j                  j                  |«       ‰ j                   j                  j                  |d «       ‰‰ j                   j                  |<   g c S  |S # t        $ rL}‰ j
                  j                  |j                  ‰«       |j                  |j                  «       Y d }~�Œd }~ww xY w)Nc              3  óX   •K  — | ]!  }‰j                   j                  |‰¬ «      –— Œ# y­wrr   rt   )rv   rw   rs   rA   s     €€r5   ry   z7Resolution._attempt_to_pin_criterion.<locals>.<genexpr>æ   s-   øè ø€ ò àð —‘×'Ñ'°AÀÐ'×Kñùrz   r~   )r,   r$   r\   r�   r   r<   Úrejecting_candidater2   rO   r{   rV   r   ÚpinningÚupdater"   Úpop)rA   rn   r2   Úcausesr$   rJ   Ú	satisfiedrs   s   `      @r5   Ú_attempt_to_pin_criterionz$Resolution._attempt_to_pin_criterionÖ   s  ù€ Ø—J‘J×'Ñ'¨Ñ-ˆ	à*,ˆØ"×-Ñ-ò 	ˆIðØ×5Ñ5°iÓ@�ô ô à"×3Ñ3Ó5ôó ˆIñ Ü+¨I°yÓAÐAà�G‰G�O‰O iˆOÔ0Ø�J‰J×Ñ×&Ñ& xÔ0ð �J‰J×Ñ×"Ñ" 4¨Ô.Ø'0ˆD�J‰J×Ñ˜tÑ$àŠIð7	ð> ˆøô9 *ò Ø—‘×+Ñ+¨A¯K©K¸ÔCØ—‘˜aŸk™kÔ*Ýûðús   ®C7Ã7	EÄ AEÅEc                ó@  — |D �]  \  }}|sŒ
	 | j                   j                  |   }| j                  j	                  |t        | j                   j                  t        j                  d«      «      t        | j                   j                  t        j                  d«      ||i«      ¬«      }t        |«      }|s y|j                  |j                  «       t        |t        |j                  «      |¬«      | j                   j                  |<   �Œ y# t        $ r Y �Œw xY w)NrV   rW   rX   Fr[   T)r,   r$   r*   r;   rb   r   rc   rd   re   r   ÚextendrW   r   ra   r]   )rA   Úincompatibilities_from_brokenr-   rW   r2   rf   r\   s          r5   Ú_patch_criteriazResolution._patch_criteriaû   s  € ð
 %Bó 	Ñ ˆAÐ Ù$ØðØ ŸJ™J×/Ñ/°Ñ2�	ð —g‘g×*Ñ*ØÜ,Ø—J‘J×'Ñ'Ü×)Ñ)Ð*<Ó=óô #2Ø—J‘J×'Ñ'Ü×'Ñ'Ð(;Ó<ØÐ)Ð*ó#ð +ó ˆGô ,;¸7Ó+CˆJÙÙØ×$Ñ$ Y×%@Ñ%@ÔAÜ%.Ø%Ü  ×!6Ñ!6Ó7Ø"3ô&ˆD�J‰J×Ñ Ó"ð/	ð8 øô/ ò Úðús   ŽDÄ	DÄDc           
     óø   — | j                   €i| j                  D �cg c]M  }t        |j                  j	                  «       |j
                  j	                  «       |j                  dd ¬«      ‘ŒO c}| _         yyc c}w )zCSave states for potential rollback if optimistic backjumping fails.NrL   )r?   r=   r   r"   rN   r$   rM   )rA   Úss     r5   Ú_save_statezResolution._save_state  sj   € à×ÑÐ$ð Ÿ™ö!ð ô ØŸI™IŸN™NÓ,ØŸZ™ZŸ_™_Ó.Ø%&×%7Ñ%7¹Ð%:öò!ˆDÕð %ùò!s   ›AA7c                ó\   — d| _         | j                  r| j                  | _        d| _        yy)z3Rollback states and disable optimistic backjumping.g        N)r>   r?   r=   )rA   s    r5   Ú_rollback_stateszResolution._rollback_states*  s-   € à-0ˆÔ*Ø×ÒØ×,Ñ,ˆDŒLØ $ˆDÕð rE   c                óx  — t        j                  d„ |D «       d„ |D «       «      }|D �ch c]  }| j                  j                  |«      ’Œ }}t	        | j
                  «      dk\  �r¦| j
                  d= | j                  }	 	 | j
                  j                  «       }|j                  j                  «       \  }}| j                  s||vrn°| j                  r | j                  €||vr| j                  «        | j                  j!                  |«      D �ch c]  }| j                  j                  |«      ’Œ }	}|	j#                  |«      sn1|j                  sn$t	        | j
                  «      dk  rt        |«      ‚Œù|j$                  j'                  «       D �
�cg c]  \  }
}|
t)        |j*                  «      f‘Œ }}
}|j-                  ||gf«       | j/                  «        | j1                  |«      }|ryt	        | j
                  «      dk\  r�Œ¦yc c}w # t        t        f$ r t        |«      d‚w xY wc c}w c c}}
w )	a2  Perform backjumping.

        When we enter here, the stack is like this::

            [ state Z ]
            [ state Y ]
            [ state X ]
            .... earlier states are irrelevant.

        1. No pins worked for Z, so it does not have a pin.
        2. We want to reset state Y to unpinned, and pin another candidate.
        3. State X holds what state Y was before the pin, but does not
           have the incompatibility information gathered in state Y.

        Each iteration of the loop will:

        1.  Identify Z. The incompatibility is not always caused by the latest
            state. For example, given three requirements A, B and C, with
            dependencies A1, B1 and C1, where A1 and B1 are incompatible: the
            last state might be related to C, so we want to discard the
            previous state.
        2.  Discard Z.
        3.  Discard Y but remember its incompatibility information gathered
            previously, and the failure we're dealing with right now.
        4.  Push a new state Y' based on X, and apply the incompatibility
            information from Y to Y'.
        5a. If this causes Y' to conflict, we need to backtrack again. Make Y'
            the new Z and go back to step 2.
        5b. If the incompatibilities apply cleanly, end backtracking.
        c              3  óN   K  — | ]  }|j                   €Œ|j                   –— Œ y ­wr:   r   ©rv   Úcs     r5   ry   z'Resolution._backjump.<locals>.<genexpr>Q  s   è ø€ Ò>˜!¨¯©Ñ)=ˆQ�X�XÑ>ùs   ‚%”%c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr:   )rS   r–   s     r5   ry   z'Resolution._backjump.<locals>.<genexpr>R  s   è ø€ Ò+˜qˆQ�]�]Ñ+ùs   ‚é   rG   TNr   F)Ú	itertoolsÚchainr;   r_   Úlenr=   r,   r‡   r"   ÚpopitemrH   r*   r   r>   r?   r‘   r€   Ú
isdisjointr$   r%   ra   rW   rO   rQ   rŽ   )rA   rˆ   Úincompatible_reqsrw   Úincompatible_depsÚbroken_statern   rs   ÚdÚcurrent_dependenciesr-   r.   r�   Úsuccesss                 r5   Ú	_backjumpzResolution._backjump1  s7  € ô> 09¯©Ù>˜vÔ>Ù+ FÔ+ó0
Ðð ;LÖL°Q˜TŸW™W×-Ñ-¨aÕ0ÐLÐÐLÜ�$—,‘,Ó 1Ó$à—‘˜RÐ ð  Ÿ:™:ˆLØðAØ#'§<¡<×#3Ñ#3Ó#5�LØ&2×&:Ñ&:×&BÑ&BÓ&D‘O�D˜)ð
 ×:Ò:ØÐ$5Ñ5ð ð
 ×6Ò6Ø×)Ñ)Ð1ØÐ$5Ñ5à×$Ñ$Ô&ð 26·±×1IÑ1IÈ)Ó1Tö(Ø,-�D—G‘G×$Ñ$ QÕ'ð(Ð$ð (ð ,×6Ñ6Ð7HÔIØð
 $×+Ò+Øô �t—|‘|Ó$¨Ò)Ü.¨vÓ6Ð6ðW ð\ <H×;PÑ;P×;VÑ;VÓ;X÷-Ù37°1°a�”D˜×,Ñ,Ó-Ò.ð-Ð)ñ -ð
 *×0Ñ0°$¸¸Ð1DÔEà× Ñ Ô"Ø×*Ñ*Ð+HÓIˆGñ Øô �$—,‘,Ó 1Ô$ðJ ùòM Møô #¤HÐ-ò AÜ.¨vÓ6¸DÐ@ðAüò.(ùó"-s   ©"HÂ7H Ä"H1Æ!H6ÈH.c           
     ó–   — t        |D ��ci c]  }|j                  D ]  }t        |«      |“Œ Œ! c}}j                  «       «      S c c}}w )z5Extract causes from list of criterion and deduplicate)ra   r]   r&   Úvalues)rA   Úcriteronr—   Úis       r5   Ú_extract_causeszResolution._extract_causesœ  s>   € ô  x×G !¸¿¹ÒG°A”R˜“U˜A‘XÐG�UÓG×NÑNÓPÓQÐQùÓGs   ‹$A
c                óª	  — | j                   rt        d«      ‚| j                  j                  «        t	        t        j                  «       i g ¬«      g| _         |D ]+  }	 | j                  | j                  j                  |d ¬«       Œ- | j                  «        d }d }t        |«      D �]¶  }| j                  j!                  |¬«       | j"                  r\| j$                  �P|€3|}t'        ||z
  | j"                  z  «      }|dk  r,| j)                  «        Œm|�||z
  |k\  r| j)                  «        Œˆ| j                  j                  j+                  «       D ��	cg c]  \  }}	| j-                  ||	«      s|‘Œ }
}}	|
s4| j                  j/                  | j                  ¬«       | j                  c S t1        | j                  j                  j3                  «       «      t1        |
«      z
  }t5        |
«      dkD  r´t7        | j8                  j;                  |
| j                  j<                  t?        | j                  j                  tA        jB                  d«      «      t?        | j                  j                  tA        jB                  d	«      «      | j                  jD                  ¬
«      «      }n|
}|st        d«      ‚t5        |«      dkD  rtG        || jH                  ¬«      }n|d   }| jK                  |«      }|rÀ| jM                  |«      }| j                  jO                  |¬«       	 | jQ                  |«      }tS        | xr | j"                  xr | j$                  «      }|r| j$                  r| j)                  «        n¼|| j                  jD                  d d  s¡t        | j                  jD                  «      ‚| j                  j                  j+                  «       D ��	ch c]  \  }}	||v r| j-                  ||	«      s|’Œ }}}	| jU                  | j                  j                  |«       | j                  «        | j                  jW                  || j                  ¬«       �Œ¹ tY        |«      ‚# t        $ r%}t        |j                  j                  «      |‚d }~ww xY wc c}	}w # t        $ r  | j"                  r| j$                  rd}n‚ Y �Œow xY wc c}	}w )Nzalready resolvedrL   r   )Úindexr   )r,   r   r\   r]   )Úidentifiersrl   r\   r]   rM   z-narrow_requirement_selection returned 0 names)r1   )rˆ   T)r¬   r,   )-r=   ÚRuntimeErrorr<   Ústartingr   ÚcollectionsÚOrderedDictrg   r,   r$   r   r   r2   r]   rQ   ÚrangeÚstarting_roundr>   r?   Úintr“   r%   r|   ÚendingÚsetÚkeysrœ   ra   r;   Únarrow_requirement_selectionr"   r   rc   re   rM   Úminro   rŠ   rª   Úresolving_conflictsr¥   Úboolrj   Úending_roundr   )rA   rZ   Ú
max_roundsrw   rJ   Úoptimistic_rounds_cutoffÚ"optimistic_backjumping_start_roundÚround_indexr1   r2   Úunsatisfied_namesÚsatisfied_namesÚnarrowed_unstatisfied_namesrn   Úfailure_criterionrˆ   r¤   Úfailed_optimistic_backjumpingÚnewly_unsatisfied_namess                      r5   ÚresolvezResolution.resolve¢  s‘  € Ø�<Š<ÜÐ1Ó2Ð2à�‰×ÑÔô Ü#×/Ñ/Ó1ØØ!#ôð
ˆŒð ò 	KˆAðKØ×%Ñ% d§j¡j×&9Ñ&9¸1ÀTÐ%ÕJð	Kð 	×ÑÔð 04Ð Ø9=Ð*ä  Ó,ó o	FˆKØ�G‰G×"Ñ"¨Ð"Ô5ð ×1Ò1°d×6GÑ6GÐ6SØ5Ð=Ø9DÐ6Ü/2Ø# kÑ1°T×5WÑ5WÑWó0Ð,ð 0°1Ò4Ø×-Ñ-Ô/Ø Ø-Ð9à#Ð&HÑHØ3ò4ð ×-Ñ-Ô/Ø ð '+§j¡j×&9Ñ&9×&?Ñ&?Ó&A÷!á"�C˜Ø×6Ñ6°s¸IÔFò ð!Ðñ !ñ %Ø—‘—‘ T§Z¡Z�Ô0Ø—z‘zÒ!ô " $§*¡*×"5Ñ"5×":Ñ":Ó"<Ó=ÄÐDUÓ@VÑVˆOäÐ$Ó%¨Ò)Ü.2Ø—G‘G×8Ñ8Ø$5Ø$(§J¡J×$6Ñ$6Ü#2Ø ŸJ™J×/Ñ/Ü$×/Ñ/°Ó=ó$ô %4Ø ŸJ™J×/Ñ/Ü$×/Ñ/°Ó>ó%ð *.¯©×)DÑ)Dð 9ó ó/Ñ+ð  /@Ð+ñ /Ü"Ð#RÓSÐSô Ð.Ó/°!Ò3äÐ6¸D×<PÑ<PÔQ‘à2°1Ñ5�à $× >Ñ >¸tÓ DÐá Ø×-Ñ-Ð.?Ó@�ð —‘×+Ñ+°6Ð+Ô:ðØ"Ÿn™n¨VÓ4�Gô 59Ø#˜ò .Ø ×>Ñ>ò.à ×-Ñ-ó5Ð1ñ 1°T×5FÒ5FØ×)Ñ)Õ+à5;�D—J‘J×/Ñ/±Ð2ñ #Ü2°4·:±:×3NÑ3NÓOÐOð +/¯*©*×*=Ñ*=×*CÑ*CÓ*E÷+á&˜˜YØ˜oÑ-Ø ×;Ñ;¸CÀÔKò ð+Ð'ñ +ð ×6Ñ6Ø—J‘J×'Ñ'Ð)@ôð ×$Ñ$Ô&à�G‰G× Ñ  {¸$¿*¹*Ð ÖEð_o	Fôb   
Ó+Ð+øô{ *ò KÜ*¨1¯;©;×+BÑ+BÓCÈÐJûðKüóD!øôl ,ò Ø×9Ò9¸d×>OÒ>OØ8<Ñ5àò 6ðüó.+s6   Á(Q,ÅRÌ#R#Ï"SÑ,	RÑ5 RÒRÒ#%SÓSN)rB   zAbstractProvider[RT, CT, KT]rC   zBaseReporter[RT, CT, KT]ÚreturnÚNone)rÈ   úState[RT, CT, KT])rÈ   rÉ   )r$   údict[KT, Criterion[RT, CT]]rS   r	   rT   z	CT | NonerÈ   rÉ   )r$   rË   ri   zCollection[KT]rÈ   rÉ   )rn   r   rÈ   r   )rn   r   r2   zCriterion[RT, CT]rÈ   r»   )rs   r   rÈ   rË   )rn   r   rÈ   úlist[Criterion[RT, CT]])r�   zlist[tuple[KT, list[CT]]]rÈ   r»   )rˆ   ú$list[RequirementInformation[RT, CT]]rÈ   r»   )r¨   rÌ   rÈ   rÍ   )rZ   úIterable[RT]r½   r´   rÈ   rÊ   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rD   Úpropertyr,   rQ   rg   rj   ro   r|   r�   rŠ   rŽ   r‘   r“   r¥   rª   rÇ   © rE   r5   r8   r8   D   sü   „ ñð8à.ð8ð +ð8ð 
ó	8ð ò1ó ð1ó#ð*)à-ð*)ð ð*)ð ð	*)ð
 
ó*)ðXØ3ðØ>Lðà	óó6
ð

Øð

Ø#4ð

à	ó

óó#ðJ!Ø-Fð!à	ó!óF
ó%óiðVRØ/ðRà	-óRôN,rE   r8   c                  ó*   — e Zd ZdZeZ	 d	 	 	 	 	 dd„Zy)ÚResolverz3The thing that performs the actual resolution work.c                ó~   — t        | j                  | j                  «      }|j                  ||¬«      }t	        |«      S )a  Take a collection of constraints, spit out the resolution result.

        The return value is a representation to the final resolution result. It
        is a tuple subclass with three public members:

        * `mapping`: A dict of resolved candidates. Each key is an identifier
            of a requirement (as returned by the provider's `identify` method),
            and the value is the resolved candidate.
        * `graph`: A `DirectedGraph` instance representing the dependency tree.
            The vertices are keys of `mapping`, and each edge represents *why*
            a particular package is included. A special vertex `None` is
            included to represent parents of user-supplied requirements.
        * `criteria`: A dict of "criteria" that hold detailed information on
            how edges in the graph are derived. Each key is an identifier of a
            requirement, and the value is a `Criterion` instance.

        The following exceptions may be raised if a resolution cannot be found:

        * `ResolutionImpossible`: A resolution cannot be found for the given
            combination of requirements. The `causes` attribute of the
            exception is a list of (requirement, parent), giving the
            requirements that could not be satisfied.
        * `ResolutionTooDeep`: The dependency tree is too deeply nested and
            the resolver gave up. This is usually caused by a circular
            dependency, but you can try to resolve this by increasing the
            `max_rounds` argument.
        )r½   )r8   rB   rC   rÇ   r6   )rA   rZ   r½   Ú
resolutionr,   s        r5   rÇ   zResolver.resolve8  s9   € ô@   §¡¨t¯}©}Ó=ˆ
Ø×"Ñ" <¸JÐ"ÓGˆÜ˜UÓ#Ð#rE   N)éd   )rZ   rÎ   r½   r´   rÈ   úResult[RT, CT, KT])rÏ   rÐ   rÑ   rÒ   r   Úbase_exceptionrÇ   rÔ   rE   r5   rÖ   rÖ   3  s0   „ Ù=à&€Nð
 ð"$à"ð"$ð ð"$ð 
ô	"$rE   rÖ   c                óü   — ||v ry|| vry|€J ‚| |   j                  «       D ]I  }	 |t        |«         }||v r|j                  |«        yt	        | |||«      sŒ8|j                  |«        y y# t        $ r Y ŒXw xY w)NTF)r)   r&   r*   r'   r(   )r$   r1   r/   r0   r3   r4   s         r5   r(   r(   ]  s¡   € ð ˆiÑØØ
�(ÑØØˆ?Ðˆ?Ø�c‰]×&Ñ&Ó(ò 
ˆð	ØœB˜q›E‘?ˆDð �9ÑØ�M‰M˜#ÔÙÜ˜h¨¨h¸	ÕBØ�M‰M˜#ÔÙð
ð øô ò 	Ùð	ús   ¦A/Á/	A;Á:A;)r,   rÊ   rÈ   rÚ   )
r$   zMapping[KT, Criterion[RT, CT]]r1   z	KT | Noner/   zdict[int, KT | None]r0   zset[KT | None]rÈ   r»   ),Ú
__future__r   r°   rš   rc   Útypingr   r   Ústructsr   r   r	   r
   r   r   r   r   r   Úabstractr   r   r2   r   Ú
exceptionsr   r   r   r   r   Úcollections.abcr   r   r   Ú	providersr   r   Ú	reportersr   r    Ú__annotations__r6   r8   rÖ   r(   rÔ   rE   r5   ú<module>ræ      s¼   ðÞ "ã Û Û ß )÷
÷ 
õ 
÷ /Ý  ÷õ ñ ß=Ñ=ç8Ý(à'*Ð ˜uÓ *óô<l,�˜˜R ˜Ñ$ô l,ô^'$Ð  B¨ 
Ñ+ô '$ðTØ,ðà	ðð #ðð ð	ð
 
ôrE   