ó
    ‘Rj¿P  ã                  ó>  • S SK Jr  S SKrS SKrS SKrS SKJrJrJrJ	r	J
r
  SSKJrJrJrJrJrJrJrJrJr  SSKJrJr  SSKJr  SS	KJrJrJrJrJr  \(       a  SS
K J!r!J"r"  SSK#J$r$  SS jr% " S S\\\\4   5      r& " S S\\\\4   5      r'          SS jr(g)é    )ÚannotationsN)ÚTYPE_CHECKINGÚ
CollectionÚGenericÚIterableÚMappingé   )	ÚCTÚKTÚRTÚDirectedGraphÚIterableViewÚIteratorMappingÚRequirementInformationÚStateÚbuild_iter_viewé   )ÚAbstractResolverÚResult)Ú	Criterion)ÚInconsistentCandidateÚRequirementsConflictedÚResolutionImpossibleÚResolutionTooDeepÚResolverException)ÚAbstractProviderÚ
Preference)ÚBaseReporterc                óÎ  • U R                   nUR                  5        VVs0 s H  u  p#[        U5      U_M     nnnS U[        S 5      '   [        5       nUR	                  S 5        S 1nU R
                  R                  5        H†  u  px[        U R
                  XtU5      (       d  M#  Xu;  a  UR	                  U5        UR                  5        H9  n	 U[        U	5         n
X¥;  a  UR	                  U
5        UR                  X§5        M;     Mˆ     [        UR                  5        VVs0 s H  u  p#X&;   d  M  X#_M     snnUU R
                  S9$ s  snnf ! [         a     M“  f = fs  snnf )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              ÚWD:\diplom_project\venv\Lib\site-packages\pip/_vendor/resolvelib/resolvers/resolution.pyÚ_build_resultr4   "   s4  € Ø�m‰m€GØ;B¿=¹=¼?Ô%Kº?±4°1¤b¨£e¨Q¢h¹?€HÑ%KØ€HŒR�‹XÑä&3£o€EØ	‡I�Iˆd„Oà!% €IØŸ.™.×.Ñ.Ö0‰ˆÜ! %§.¡.°#À×KÑKÙØÓØ�I‰I�cŒNØ×&Ñ&Ö(ˆAðØ¤ 1£‘�ð Ó Ø—	‘	˜$”Ø�M‰M˜$Ö$ó )ñ 1ô Ø")§-¡-¤/ÔD¢/™$˜!°Q±^“�’¡/ÒDØØ—‘ñð ùó+ &Løô ó Úðüó Es#    E
ÃEÄ#E!
Ä2E!
Å
EÅEc                  óè   • \ rS rSrSr      SS jr\SS j5       rSS jr        SS jr	      SS jr
SS jr      SS	 jrSS
 jrSS jr    SS jrSS jr    SS jrSS jrSrg)Ú
Resolutioné@   z¡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                ó*   • Xl         X l        / U l        g ©N©Ú_pÚ_rÚ_states)ÚselfÚproviderÚreporters      r3   Ú__init__ÚResolution.__init__G   s   € ð
 ŒØŒØ02ˆ�ó    c                ó^   •  U R                   S   $ ! [         a  n[        S5      UeS nAff = f)Néÿÿÿÿr*   )r=   Ú
IndexErrorÚAttributeError)r>   Úes     r3   r*   ÚResolution.stateP   s3   € ð	1Ø—<‘< Ñ#Ð#øÜó 	1Ü  Ó)¨qÐ0ûð	1ús   ‚ ‘
,›'§,c                óè   • U R                   S   n[        UR                  R                  5       UR                  R                  5       UR
                  SS S9nU R                   R                  U5        g)zqPush a new state into history.

This new state will be used to hold resolution results of the next
coming round.
rE   N©r    r"   Úbacktrack_causes)r=   r   r    Úcopyr"   rL   Úappend)r>   Úbaser*   s      r3   Ú_push_new_stateÚResolution._push_new_stateW   s^   € ð �|‰|˜BÑˆÜØ—L‘L×%Ñ%Ó'Ø—]‘]×'Ñ'Ó)Ø!×2Ñ2±1Ð5ñ
ˆð
 	�‰×Ñ˜EÕ"rC   c           
     ón  • U R                   R                  X#S9  U R                  R                  US9nUR	                  U5      nU(       a  [        UR                  5      nO/ nU R                  R                  U[        U[        R                  " S5      XB/05      [        U[        R                  " S5      XF05      S9nU(       a0  [        UR                  5      nUR                  [        X#5      5        O[        X#5      /n[        [!        U5      UUS9nUR"                  (       d  [%        U5      eXQU'   g )N)ÚrequirementÚparent)Úrequirement_or_candidateÚiter_requirementÚincompatibilities©Ú
identifierÚrequirementsrW   ©Ú
candidatesÚinformationrW   )r<   Úadding_requirementr;   ÚidentifyÚgetÚlistrW   Úfind_matchesr   ÚoperatorÚmethodcallerÚ
attrgetterr]   rN   r   r   r   r\   r   )	r>   r"   rS   rT   rY   r0   rW   Úmatchesr]   s	            r3   Ú_add_to_criteriaÚResolution._add_to_criteriae   s$  € ð 	�‰×"Ñ"¨{Ð"ÑJà—W‘W×%Ñ%¸{Ð%ÐKˆ
Ø—L‘L Ó,ˆ	ÞÜ $ Y×%@Ñ%@Ó AÑà "Ðà—'‘'×&Ñ&Ø!Ü(ØÜ×%Ò%Ð&8Ó9Ø˜]Ð+óô
 .ØÜ×#Ò#Ð$7Ó8ØÐ/óð 'ð 
ˆö Ü˜y×4Ñ4Ó5ˆKØ×ÑÔ5°kÓJÕKä1°+ÓFÐGˆKäÜ& wÓ/Ø#Ø/ñ
ˆ	ð
 ×#×#Ü(¨Ó3Ð3Ø(�ÒrC   c           
     ó<  • U(       d  gUR                  5        H{  u  p4[        UR                  UR                   Vs/ s H=  nUR                  b+  U R
                  R                  UR                  5      U;  d  M;  UPM?     snUR                  5      X'   M}     gs  snf )a/  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   )r>   r"   Úparentsr/   r0   r]   s         r3   Ú!_remove_information_from_criteriaÚ,Resolution._remove_information_from_criteria‘   sŽ   € ö ØØ&Ÿn™nÖ.‰NˆCÜ%Ø×$Ñ$ð (1×'<Ò'<óâ'<˜à#×*Ñ*Ñ2ØŸ7™7×+Ñ+¨K×,>Ñ,>Ó?ÀwÑN÷	  Ù'<ñð ×+Ñ+óˆH‹Mò /ùòs   ¼:BÁ:Bc                óT  • U R                   R                  UU R                  R                  [	        U R                  R
                  [        R                  " S5      5      [	        U R                  R
                  [        R                  " S5      5      U R                  R                  S9$ )Nr\   r]   )rY   Úresolutionsr\   r]   rL   )	r;   Úget_preferencer*   r    r   r"   rc   re   rL   )r>   Únames     r3   Ú_get_preferenceÚResolution._get_preference¬   s…   € Ø�w‰w×%Ñ%ØØŸ
™
×*Ñ*Ü&Ø—
‘
×#Ñ#Ü×#Ò# LÓ1óô (Ø—
‘
×#Ñ#Ü×#Ò# MÓ2óð "ŸZ™Z×8Ñ8ð &ð 
ð 	
rC   c                ó¢   ^ ^•  T R                   R                  U   m[        UU 4S jUR	                  5        5       5      $ ! [         a     gf = f)NFc              3  óX   >#   • U  H  nTR                   R                  UTS 9v •  M!     g7f©)rS   Ú	candidateN©r;   Úis_satisfied_by)Ú.0ÚrÚcurrent_pinr>   s     €€r3   Ú	<genexpr>Ú8Resolution._is_current_pin_satisfying.<locals>.<genexpr>Â   s,   øé € ð 
â1�ð �G‰G×#Ñ#°¸[Ð#ÕIÚ1ùó   ƒ'*)r*   r    r(   ÚallrV   )r>   rp   r0   r{   s   `  @r3   Ú_is_current_pin_satisfyingÚ%Resolution._is_current_pin_satisfying»   sU   ù€ ð	ØŸ*™*×,Ñ,¨TÑ2ˆKô õ 
à×/Ñ/Ô1ó
ó 
ð 	
øô ó 	Ùð	ús   „A Á
AÁAc                ó®   • U R                   R                  R                  5       nU R                  R	                  US9 H  nU R                  X#US9  M     U$ )N©rv   ©rT   )r*   r"   rM   r;   Úget_dependenciesrg   )r>   rv   r"   rS   s       r3   Ú_get_updated_criteriaÚ Resolution._get_updated_criteriaÇ   sO   € Ø—:‘:×&Ñ&×+Ñ+Ó-ˆØŸ7™7×3Ñ3¸iÐ3ÓHˆKØ×!Ñ! (À	Ð!ÓJñ IàˆrC   c                óª  ^ ^• T R                   R                  U   n/ nUR                   HË  m T R                  T5      n[        UU 4S jUR                  5        5       5      nU(       d  [        TU5      eT R
                  R                  TS9  T R                   R                  R                  U5        T R                   R                  R                  US 5        TT R                   R                  U'   / s  $    U$ ! [         aM  nT R
                  R                  UR                  T5        UR                  UR                  5         S nAGM#  S nAff = f)Nc              3  óX   >#   • U  H  nTR                   R                  UTS 9v •  M!     g7fru   rw   )ry   rz   rv   r>   s     €€r3   r|   Ú7Resolution._attempt_to_pin_criterion.<locals>.<genexpr>Ý   s,   øé € ð â5�Að —‘×'Ñ'°AÀÐ'ÕKÚ5ùr~   rƒ   )r*   r"   r\   r†   r   r<   Úrejecting_candidater0   rN   r   rV   r   ÚpinningÚupdater    Úpop)r>   rp   r0   Úcausesr"   rH   Ú	satisfiedrv   s   `      @r3   Ú_attempt_to_pin_criterionÚ$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   ®C;Ã;
EÄAEÅEc                óR  • U GH  u  p#U(       d  M   U R                   R                  U   nU R                  R	                  U[        U R                   R                  [        R                  " S5      5      [        U R                   R                  [        R                  " S5      X#05      S9n[        U5      nU(       d    gUR                  UR                  5        [        U[        UR                  5      US9U R                   R                  U'   GM     g! [         a     GM"  f = f)NrV   rW   rX   Fr[   T)r*   r"   r(   r;   rb   r   rc   rd   re   r   ÚextendrW   r   ra   r]   )r>   Úincompatibilities_from_brokenr+   rW   r0   rf   r\   s          r3   Ú_patch_criteriaÚ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×Ñ Ô"ñ/ %Bð8 øô/ ó Ûðús   “DÄ
D&Ä%D&c                óö  • [         R                  " S U 5       S U 5       5      nU Vs1 s H  o0R                  R                  U5      iM     nn[	        U R
                  5      S:¼  Ga`  U R
                  S	 U R                  n  U R
                  R                  5       nUR                  R                  5       u  pgXd;  a  OnU R                  R                  U5       Vs1 s H  o€R                  R                  U5      iM     n	nU	R                  U5      (       d  OUR                  (       d  OM«  UR                  R!                  5        V
Vs/ s H  u  p«U
[#        UR$                  5      4PM     nn
nUR'                  Xg/45        U R)                  5         U R+                  U5      nU(       a  g[	        U R
                  5      S:¼  a  GM`  gs  snf ! [        [        4 a    [        U5      Sef = fs  snf s  snn
f )ar  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  óV   #   • U  H  oR                   c  M  UR                   v •  M!     g 7fr9   r„   ©ry   Úcs     r3   r|   Ú'Resolution._backjump.<locals>.<genexpr>5  s   é € Ð>šv˜!¯©‹XˆQ�XŽXšvùs   ‚)–)c              3  ó8   #   • U  H  oR                   v •  M     g 7fr9   )rS   rš   s     r3   r|   rœ   6  s   é € Ð+¢F˜q�]Ž]¢Fùs   ‚é   rE   TNF)Ú	itertoolsÚchainr;   r_   Úlenr=   r*   rŽ   r    ÚpopitemrF   r(   r   r…   Ú
isdisjointr"   r#   ra   rW   rN   rP   r–   )r>   r�   Úincompatible_reqsrz   Úincompatible_depsÚbroken_staterp   rv   ÚdÚcurrent_dependenciesr+   r,   r•   Úsuccesss                 r3   Ú	_backjumpÚResolution._backjump  sÝ  € ô> 09¯ªÙ>™vÓ>Ù+¡FÓ+ó0
Ðñ ;LÓLÒ:K°QŸW™W×-Ñ-¨aÖ0Ñ:KÐÐLÜ�$—,‘,Ó 1Ô$à—‘˜RÐ ð  Ÿ:™:ˆLØðAØ#'§<¡<×#3Ñ#3Ó#5�LØ&2×&:Ñ&:×&BÑ&BÓ&D‘O�Dð Ó0Øð
 26·±×1IÑ1IÈ)Ô1Tó(Ú1T¨A—G‘G×$Ñ$ QÖ'Ñ1Tð %ð (ð ,×6Ñ6Ð7H×IÑIØð
 $×+×+Øñ3 ð8 <H×;PÑ;P×;VÑ;VÔ;Xô-Ú;X±4°1�”D˜×,Ñ,Ó-Ó.Ñ;Xð *ñ -ð
 *×0Ñ0°$¸Ð1DÔEà× Ñ Ô"Ø×*Ñ*Ð+HÓIˆGö Øô[ �$—,‘,Ó 1Ö$ðf ùòi Møô #¤HÐ-ó AÜ.¨vÓ6¸DÐ@ðAüò(ùó-s   ª$GÂ6G Ã$G0Å#G5ÇG-c           
     ó    • [        U VVs0 s H"  o"R                    H  n[        U5      U_M     M$     snnR                  5       5      $ s  snnf )z5Extract causes from list of criterion and deduplicate)ra   r]   r$   Úvalues)r>   Úcriteronr›   Úis       r3   Ú_extract_causesÚResolution._extract_causesn  s<   € ô ¡xÔG¢x !¿½°A”R˜“U˜A’X¹‘U¡xÒG×NÑNÓPÓQÐQùÓGs   ‹)A

c                ó"  • U R                   (       a  [        S5      eU R                  R                  5         [	        [
        R                  " 5       0 / S9/U l         U H)  n U R                  U R                  R                  US S9  M+     U R                  5         [        U5       GH  nU R                  R!                  US9  U R                  R                  R#                  5        VVs/ s H  u  pgU R%                  Xg5      (       a  M  UPM!     nnnU(       d1  U R                  R'                  U R                  S9  U R                  s  $ [)        U R                  R                  R+                  5       5      [)        U5      -
  n	[-        U5      S:”  a³  [/        U R0                  R3                  UU R                  R4                  [7        U R                  R                  [8        R:                  " S5      5      [7        U R                  R                  [8        R:                  " S5      5      U R                  R<                  S	95      n
OUn
U
(       d  [        S
5      e[-        U
5      S:”  a  [?        X R@                  S9nOU
S   nU RC                  U5      nU(       az  U RE                  U5      nU R                  RG                  US9  U RI                  U5      nXÐR                  R<                  S S & U(       d  [        U R                  R<                  5      eO�U R                  R                  R#                  5        VVs1 s H&  u  pgXi;   d  M  U R%                  Xg5      (       a  M$  UiM(     nnnU RK                  U R                  R                  U5        U R                  5         U R                  RM                  XPR                  S9  GM!     [O        U5      e! [         a%  n[        UR                  R                  5      UeS nAff = fs  snnf s  snnf )Nzalready resolvedrK   r„   )Úindex)r*   r   r\   r]   )Úidentifiersrn   r\   r]   rL   z-narrow_requirement_selection returned 0 names)r/   r   )r�   )r³   r*   )(r=   ÚRuntimeErrorr<   Ústartingr   ÚcollectionsÚOrderedDictrg   r*   r"   r   r   r0   r]   rP   ÚrangeÚstarting_roundr#   r€   ÚendingÚsetÚkeysr¡   ra   r;   Únarrow_requirement_selectionr    r   rc   re   rL   Úminrq   r‘   r°   Úresolving_conflictsrª   rk   Úending_roundr   )r>   rZ   Ú
max_roundsrz   rH   Úround_indexr/   r0   Úunsatisfied_namesÚsatisfied_namesÚnarrowed_unstatisfied_namesrp   Úfailure_criterionr�   r©   Únewly_unsatisfied_namess                   r3   ÚresolveÚResolution.resolvet  sv  € Ø�<�<ÜÐ1Ó2Ð2à�‰×ÑÔô Ü#×/Ò/Ó1ØØ!#ñð
ˆŒó ˆAðKØ×%Ñ% d§j¡j×&9Ñ&9¸1ÀTÐ%ÓJñ ð 	×ÑÔä  ×,ˆKØ�G‰G×"Ñ"¨Ð"Ñ5ð '+§j¡j×&9Ñ&9×&?Ñ&?Ô&Aô!â&A‘N�CØ×6Ñ6°s×F÷ Ù&Að ñ !ö %Ø—‘—‘ 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×<PÑ<PÑQ‘à2°1Ñ5�à $× >Ñ >¸tÓ DÐæ Ø×-Ñ-Ð.?Ó@�ð —‘×+Ñ+°6Ð+Ñ:ØŸ.™.¨Ó0�Ø17—
‘
×+Ñ+©AÐ.ö Ü.¨t¯z©z×/JÑ/JÓKÐKð ð +/¯*©*×*=Ñ*=×*CÑ*CÔ*Eô+â*E™˜ØÑ-ó ð !×;Ñ;¸C×K÷ Ù*Eð (ñ +ð ×6Ñ6Ø—J‘J×'Ñ'Ð)@ôð ×$Ñ$Ô&à�G‰G× Ñ  {¿*¹*Ð ÔEñW -ôZ   
Ó+Ð+øôk *ó KÜ*¨1¯;©;×+BÑ+BÓCÈÐJûðKüó!ùóx+s6   Á!%OÃ)PÄ	PÌ:PÍ	PÍ!PÏ
PÏ O=Ï=Pr:   N)r?   zAbstractProvider[RT, CT, KT]r@   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Î   rj   zCollection[KT]rË   rÌ   )rp   r   rË   r   )rp   r   r0   zCriterion[RT, CT]rË   Úbool)rv   r
   rË   rÎ   )rp   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Â   ÚintrË   rÍ   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rA   Úpropertyr*   rP   rg   rk   rq   r€   r†   r‘   r–   rª   r°   rÉ   Ú__static_attributes__© rC   r3   r6   r6   @   sò   † ñð3à.ð3ð +ð3ð 
ô	3ð ó1ó ð1ô#ð*)à-ð*)ð ð*)ð ð	*)ð
 
ô*)ðXØ3ðØ>Lðà	ôô6
ð

Øð

Ø#4ð

à	ô

ôô#ðJ!Ø-Fð!à	ô!ôFWðrRØ/ðRà	-ôR÷f,rC   r6   c                  ó6   • \ rS rSrSr\r S     SS jjrSrg)ÚResolveriÝ  z3The thing that performs the actual resolution work.c                óv   • [        U R                  U R                  5      nUR                  XS9n[	        U5      $ )af  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Â   )r6   r?   r@   rÉ   r4   )r>   rZ   rÂ   Ú
resolutionr*   s        r3   rÉ   ÚResolver.resolveâ  s7   € ô@   §¡¨t¯}©}Ó=ˆ
Ø×"Ñ" <Ð"ÐGˆÜ˜UÓ#Ð#rC   rÛ   N)éd   )rZ   rÒ   rÂ   rÓ   rË   úResult[RT, CT, KT])	rÔ   rÕ   rÖ   r×   rØ   r   Úbase_exceptionrÉ   rÚ   rÛ   rC   r3   rÝ   rÝ   Ý  s5   † Ù=à&€Nð
 ð"$à"ð"$ð ð"$ð 
÷	"$ð "$rC   rÝ   c                ó  • X;   a  gX;  a  gUc   eX   R                  5        HN  n U[        U5         nXS;   a  UR                  U5          g[	        XX#5      (       d  M=  UR                  U5          g   g! [         a     M`  f = f)NTF)r'   r$   r(   r%   r&   )r"   r/   r-   r.   r1   r2   s         r3   r&   r&     s“   € ð ÓØØ
ÓØØ‰?Ðˆ?Ø‰]×&Ñ&Ö(ˆð	ØœB˜q›E‘?ˆDð ÓØ�M‰M˜#ÔÙÜ˜h¨h×BÓBØ�M‰M˜#ÔÙñ )ð øô ó 	Úð	ús   ¨A7Á7
BÂB)r*   rÍ   rË   râ   )
r"   zMapping[KT, Criterion[RT, CT]]r/   z	KT | Noner-   zdict[int, KT | None]r.   zset[KT | None]rË   rÏ   ))Ú
__future__r   r·   rŸ   rc   Útypingr   r   r   r   r   Ústructsr
   r   r   r   r   r   r   r   r   Úabstractr   r   r0   r   Ú
exceptionsr   r   r   r   r   Ú	providersr   r   Ú	reportersr   r4   r6   rÝ   r&   rÛ   rC   r3   Ú<module>rì      s®   ðÝ "ã Û Û ß HÕ H÷
÷ 
õ 
÷ /Ý  ÷õ ö ß8Ý(ôô<Z,�˜˜R ˜Ñ$ô Z,ôz'$Ð  B¨ 
Ñ+ô '$ðTØ,ðà	ðð #ðð ð	ð
 
õrC   