§
    OŠtjE  ã                   ó`   — d dl mZmZ  G d„ de¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
fd	„Zd
„ ZdS )é   )Ú	_toposortÚgroupbyc                   ó   — e Zd ZdS )ÚAmbiguityWarningN)Ú__name__Ú
__module__Ú__qualname__© ó    ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/multipledispatch/conflict.pyr   r      s   € € € € € Ø€Dr   r   c                 óˆ   — t          | ¦  «        t          |¦  «        k    o"t          t          t          | |¦  «        ¦  «        S )z3 A is consistent and strictly more specific than B )ÚlenÚallÚmapÚ
issubclass©ÚaÚbs     r   Ú
supercedesr      s2   € åˆq‰6Œ6•S˜‘V”VÒÐ:¥¥C­
°A°qÑ$9Ô$9Ñ :Ô :Ð:r   c                 ó�   — t          | ¦  «        t          |¦  «        k    o&t          d„ t          | |¦  «        D ¦   «         ¦  «        S )z= It is possible for an argument list to satisfy both A and B c              3   ó\   K  — | ]'\  }}t          ||¦  «        pt          ||¦  «        V — Œ(d S ©N)r   )Ú.0ÚaaÚbbs      r   ú	<genexpr>zconsistent.<locals>.<genexpr>   sS   è è € ð 4ð 4Ù%˜r 2õ ˜2˜rÑ"Ô"Ð8¥j°°RÑ&8Ô&8ð 4ð 4ð 4ð 4ð 4ð 4r   )r   r   Úzipr   s     r   Ú
consistentr      sQ   € å�‰FŒF•c˜!‘f”fÒð 4Ýð 4ð 4Ý),¨Q°©¬ð4ñ 4ô 4ñ 4ô 4ð5r   c                 ód   — t          | |¦  «        o t          | |¦  «        pt          || ¦  «         S )z> A is consistent with B but neither is strictly more specific )r   r   r   s     r   Ú	ambiguousr       s3   € å�a˜ÑÔÐJ¥Z°°1Ñ%5Ô%5Ð%I½ÀAÀqÑ9IÔ9IÐ JÐJr   c                 ód   ‡ — t          t          t          ‰ ¦  «        ¦  «        Š ˆ fd„‰ D ¦   «         S )z5 All signature pairs such that A is ambiguous with B c                 ó¾   •‡‡— h | ]WŠ‰D ]RŠt          ‰¦  «        t          ‰¦  «        k     ¯"t          ‰‰¦  «        ¯2t          ˆˆfd „‰D ¦   «         ¦  «        °N‰‰f’ŒSŒXS )c              3   óX   •K  — | ]$}t          |‰¦  «        ot          |‰¦  «        V — Œ%d S r   ©r   )r   Úcr   r   s     €€r   r   z(ambiguities.<locals>.<setcomp>.<genexpr>   sP   øè è € ð #9ð #9Ø()õ $.¨a°Ñ#3Ô#3Ð#H½
À1ÀaÑ8HÔ8Hð #9ð #9ð #9ð #9ð #9ð #9r   )Úhashr    Úany©r   r   r   Ú
signaturess    @@€r   ú	<setcomp>zambiguities.<locals>.<setcomp>   s�   øøø€ ð :ð :ð :�q°
ð :ð :¨1Ý˜q™'œ'¥D¨¡G¤GÒ+Ð+Ý$ Q¨™?œ?ð ,å"ð #9ð #9ð #9ð #9ð #9Ø-7ð#9ñ #9ô #9ñ  9ô  9ð ,ð �ˆFØ+Ð+Ð+Ð+r   )Úlistr   Útuple)r)   s   `r   Úambiguitiesr-      sD   ø€ å•c�% Ñ,Ô,Ñ-Ô-€Jð:ð :ð :ð :˜Jð :ñ :ô :ð :r   c                 ó    ‡ ‡— t          ‰ d         ¦  «        Št          ˆfd„‰ D ¦   «         ¦  «        sJ ‚ˆ fd„t          ‰¦  «        D ¦   «         S )z* A signature that would break ambiguities é    c              3   ó>   •K  — | ]}t          |¦  «        ‰k    V — Œd S r   )r   )r   ÚsÚns     €r   r   z"super_signature.<locals>.<genexpr>%   s-   øè è € Ð/Ð/˜q�s�1‰vŒv˜Š{Ð/Ð/Ð/Ð/Ð/Ð/r   c                 ób   •‡— g | ]*Št          ˆfd „‰D ¦   «         t          ¬¦  «        d         ‘Œ+S )c                 óP   •— g | ]"}t                                |‰         ¦  «        ‘Œ#S r
   )ÚtypeÚmro)r   ÚsigÚis     €r   ú
<listcomp>z.super_signature.<locals>.<listcomp>.<listcomp>'   s)   ø€ Ð8Ð8Ð8 c•—’˜#˜aœ&Ñ!Ô!Ð8Ð8Ð8r   )Úkeyr/   )Úmaxr   )r   r8   r)   s    @€r   r9   z#super_signature.<locals>.<listcomp>'   sQ   øø€ ð "ð "ð "Øõ Ð8Ð8Ð8Ð8¨ZÐ8Ñ8Ô8½cÐBÑBÔBÀ1ÔEð "ð "ð "r   )r   r   Úrange)r)   r2   s   `@r   Úsuper_signaturer=   "   so   øø€ åˆJ�qŒMÑÔ€AÝÐ/Ð/Ð/Ð/ JÐ/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/ð"ð "ð "ð "Ý˜a™œð"ñ "ô "ð "r   c                 óz   — t          | |¦  «        r*t          || ¦  «        r || ¦  «         ||¦  «        k    S dS dS )zW A should be checked before B

    Tie broken by tie_breaker, defaults to ``hash``
    TFr$   )r   r   Útie_breakers      r   Úedger@   +   sM   € õ
 �!�QÑÔð Ý�a˜ÑÔð 	Ø�;˜q‘>”> K K°¡N¤NÒ2Ð2à�4Øˆ5r   c                 óü   ‡ — t          t          t          ‰ ¦  «        ¦  «        Š ˆ fd„‰ D ¦   «         }t          d„ |¦  «        }‰ D ]}||vrg ||<   Œd„ |                     ¦   «         D ¦   «         }t          |¦  «        S )zƒ A sane ordering of signatures to check, first to last

    Topoological sort of edges as given by ``edge`` and ``supercedes``
    c                 óB   •— g | ]}‰D ]}t          ||¦  «        ¯||f‘ŒŒS r
   )r@   r(   s      €r   r9   zordering.<locals>.<listcomp>>   s7   ø€ ÐJÐJÐJ˜°ÐJÐJ¨A½tÀAÀq¹z¼zÐJˆa�ˆVÐJÐJÐJÐJr   c                 ó   — | d         S )Nr/   r
   )Úxs    r   ú<lambda>zordering.<locals>.<lambda>?   s
   € ˜a œd€ r   c                 ó.   — i | ]\  }}|d „ |D ¦   «         “ŒS )c                 ó   — g | ]\  }}|‘ŒS r
   r
   )r   r   r   s      r   r9   z'ordering.<locals>.<dictcomp>.<listcomp>C   s   € Ð!Ð!Ð!‘t�q˜!�Ð!Ð!Ð!r   r
   )r   ÚkÚvs      r   ú
<dictcomp>zordering.<locals>.<dictcomp>C   s-   € Ð<Ð<Ð<¡d a¨ˆQÐ!Ð!˜qÐ!Ñ!Ô!Ð<Ð<Ð<r   )r+   r   r,   r   Úitemsr   )r)   Úedgesr1   s   `  r   ÚorderingrM   8   s‘   ø€ õ
 •c�% Ñ,Ô,Ñ-Ô-€JØJÐJÐJÐJ˜ZÐJÑJÔJ€EÝ�N�N EÑ*Ô*€EØð ð ˆØ�Eˆ>ˆ>ØˆE�!‰HøØ<Ð<¨e¯kªk©m¬mÐ<Ñ<Ô<€EÝ�UÑÔÐr   N)Úutilsr   r   ÚWarningr   r   r   r    r-   r=   r&   r@   rM   r
   r   r   ú<module>rP      sÇ   ðØ %Ð %Ð %Ð %Ð %Ð %Ð %Ð %ð	ð 	ð 	ð 	ð 	�wñ 	ô 	ð 	ð;ð ;ð ;ð
5ð 5ð 5ðKð Kð Kð
:ð :ð :ð"ð "ð "ð  ð 
ð 
ð 
ð 
ðð ð ð ð r   