§
    Ÿj§2  ã                   óÜ   — d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	  e¦   «         Z
 G d„ d¦  «        Z G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )Úsync_to_async)Úget_user_model)Ú
Permission)ÚExistsÚOuterRefÚQc                   óf   — e Zd Zd„ Zd„ Zd„ Z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S )ÚBaseBackendc                 ó   — d S ©N© ©ÚselfÚrequestÚkwargss      úi/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/django/contrib/auth/backends.pyÚauthenticatezBaseBackend.authenticate   ó   € Øˆtó    c              ‹   óH   K  —  t          | j        ¦  «        |fi |¤Žƒ d {V —†S r   )r   r   r   s      r   ÚaauthenticatezBaseBackend.aauthenticate   s;   è è € Ø5•] 4Ô#4Ñ5Ô5°gÐHÐHÀÐHÐHÐHÐHÐHÐHÐHÐHÐHr   c                 ó   — d S r   r   ©r   Úuser_ids     r   Úget_userzBaseBackend.get_user   r   r   c              ƒ   óL   K  —  t          | j        ¦  «        |¦  «        ƒ d {V —†S r   )r   r   r   s     r   Ú	aget_userzBaseBackend.aget_user   s2   è è € Ø1•] 4¤=Ñ1Ô1°'Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:r   Nc                 ó   — t          ¦   «         S r   ©Úset©r   Úuser_objÚobjs      r   Úget_user_permissionsz BaseBackend.get_user_permissions   ó   € Ý‰uŒuˆr   c              ƒ   óN   K  —  t          | j        ¦  «        ||¦  «        ƒ d {V —†S r   )r   r$   r!   s      r   Úaget_user_permissionsz!BaseBackend.aget_user_permissions   s5   è è € Ø=•] 4Ô#<Ñ=Ô=¸hÈÑLÔLÐLÐLÐLÐLÐLÐLÐLr   c                 ó   — t          ¦   «         S r   r   r!   s      r   Úget_group_permissionsz!BaseBackend.get_group_permissions   r%   r   c              ƒ   óN   K  —  t          | j        ¦  «        ||¦  «        ƒ d {V —†S r   )r   r)   r!   s      r   Úaget_group_permissionsz"BaseBackend.aget_group_permissions    s5   è è € Ø>•] 4Ô#=Ñ>Ô>¸xÈÑMÔMÐMÐMÐMÐMÐMÐMÐMr   c                 ób   — h |                       ||¬¦  «        £|                      ||¬¦  «        £S ©N)r#   )r$   r)   r!   s      r   Úget_all_permissionszBaseBackend.get_all_permissions#   sB   € ð
Ø×&Ò& x°SÐ&Ñ9Ô9ð
à×'Ò'¨°cÐ'Ñ:Ô:ð
ð 	
r   c              ƒ   ó~   K  — h |                       ||¬¦  «        ƒ d {V —†£|                      ||¬¦  «        ƒ d {V —†£S r-   )r'   r+   r!   s      r   Úaget_all_permissionsz BaseBackend.aget_all_permissions)   sj   è è € ð
Ø×-Ò-¨h¸CÐ-Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@ð
à×.Ò.¨x¸SÐ.ÑAÔAÐAÐAÐAÐAÐAÐAð
ð 	
r   c                 ó4   — ||                       ||¬¦  «        v S r-   )r.   ©r   r"   Úpermr#   s       r   Úhas_permzBaseBackend.has_perm/   s    € Ø�t×/Ò/°¸cÐ/ÑBÔBÐBÐBr   c              ƒ   óB   K  — ||                       ||¦  «        ƒ d {V —†v S r   )r0   r2   s       r   Ú	ahas_permzBaseBackend.ahas_perm2   s3   è è € Ø˜T×6Ò6°xÀÑEÔEÐEÐEÐEÐEÐEÐEÐEÐEr   r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r$   r'   r)   r+   r.   r0   r4   r6   r   r   r   r
   r
   
   s  € € € € € ðð ð ðIð Ið Iðð ð ð;ð ;ð ;ðð ð ð ðMð Mð Mð Mðð ð ð ðNð Nð Nð Nð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ðCð Cð Cð CðFð Fð Fð Fð Fð Fr   r
   c                   óª   ‡ — e Zd ZdZdd„Zdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
dd
„Zdd„Zdd„Zdd„Zdˆ fd„	Zdˆ fd„	Zdˆ fd„	Zd„ Zd„ Zdd„Zd„ Zd„ Zˆ xZS )ÚModelBackendz9
    Authenticates against settings.AUTH_USER_MODEL.
    Nc                 ó^  — |€|                      t          j        ¦  «        }|�|€d S 	 t          j                             |¦  «        }|                     |¦  «        r|                      |¦  «        r|S d S d S # t          j        $ r% t          ¦   «                              |¦  «         Y d S w xY wr   )	ÚgetÚ	UserModelÚUSERNAME_FIELDÚ_default_managerÚget_by_natural_keyÚcheck_passwordÚuser_can_authenticateÚDoesNotExistÚset_password©r   r   ÚusernameÚpasswordr   Úusers         r   r   zModelBackend.authenticate;   sÐ   € ØÐØ—z’z¥)Ô":Ñ;Ô;ˆHØÐ˜xÐ/ØˆFð	ÝÔ-×@Ò@ÀÑJÔJˆDð ×"Ò" 8Ñ,Ô,ð °×1KÒ1KÈDÑ1QÔ1Qð Ø�ðð ð ð øõ Ô%ð 	/ð 	/ð 	/õ ‰KŒK×$Ò$ XÑ.Ô.Ð.Ð.Ð.Ð.ð	/øøøs   ©A8 Á80B,Â+B,c              ‹   óz  K  — |€|                      t          j        ¦  «        }|�|€d S 	 t          j                             |¦  «        ƒ d {V —†}|                     |¦  «        ƒ d {V —†r|                      |¦  «        r|S d S d S # t          j        $ r% t          ¦   «                              |¦  «         Y d S w xY wr   )	r=   r>   r?   r@   Úaget_by_natural_keyÚacheck_passwordrC   rD   rE   rF   s         r   r   zModelBackend.aauthenticateJ   sÿ   è è € ØÐØ—z’z¥)Ô":Ñ;Ô;ˆHØÐ˜xÐ/ØˆFð
	Ý"Ô3×GÒGÈÑQÔQÐQÐQÐQÐQÐQÐQˆDð ×)Ò)¨(Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3ð ¸×8RÒ8RØñ9ô 9ð ð �ðð ð ð øõ Ô%ð 	/ð 	/ð 	/õ ‰KŒK×$Ò$ XÑ.Ô.Ð.Ð.Ð.Ð.ð	/øøøs   «%B Â0B:Â9B:c                 ó$   — t          |dd¦  «        S )z{
        Reject users with is_active=False. Custom user models that don't have
        that attribute are allowed.
        Ú	is_activeT)Úgetattr©r   rI   s     r   rC   z"ModelBackend.user_can_authenticate[   s   € õ
 �t˜[¨$Ñ/Ô/Ð/r   c                 ó4   — |j                              ¦   «         S r   )Úuser_permissionsÚall©r   r"   s     r   Ú_get_user_permissionsz"ModelBackend._get_user_permissionsb   s   € ØÔ(×,Ò,Ñ.Ô.Ð.r   c                 óp   — t           j                             |j                             ¦   «         ¬¦  «        S )N)Ú	group__in)r   ÚobjectsÚfilterÚgroupsrS   rT   s     r   Ú_get_group_permissionsz#ModelBackend._get_group_permissionse   s*   € ÝÔ!×(Ò(°8´?×3FÒ3FÑ3HÔ3HÐ(ÑIÔIÐIr   c                 ó’  — |j         r	|j        s|�t          ¦   «         S d|z  }t          ||¦  «        s…|j        rt
          j                             ¦   «         }n t          | d|z  ¦  «        |¦  «        }| 	                    dd¦  «         
                    ¦   «         }t          ||d„ |D ¦   «         ¦  «         t          ||¦  «        S )zá
        Return the permissions of `user_obj` from `from_name`. `from_name` can
        be either "group" or "user" to return permissions from
        `_get_group_permissions` or `_get_user_permissions` respectively.
        Nú_%s_perm_cacheú_get_%s_permissionsÚcontent_type__app_labelÚcodenamec                 ó"   — h | ]\  }}|›d |›�’ŒS )ú.r   ©Ú.0ÚctÚnames      r   ú	<setcomp>z0ModelBackend._get_permissions.<locals>.<setcomp>y   s'   € Ð+WÐ+WÐ+WÁXÀRÈ°r°r°r¸4¸4Ð,@Ð+WÐ+WÐ+Wr   ©rN   Úis_anonymousr    ÚhasattrÚis_superuserr   rX   rS   rO   Úvalues_listÚorder_byÚsetattr©r   r"   r#   Ú	from_nameÚperm_cache_nameÚpermss         r   Ú_get_permissionszModelBackend._get_permissionsh   sà   € ð Ô!ð 	 XÔ%:ð 	¸c¸oÝ‘5”5ˆLà*¨YÑ6ˆÝ�x Ñ1Ô1ð 	ØÔ$ð SÝ"Ô*×.Ò.Ñ0Ô0��àH� Ð&;¸iÑ&GÑHÔHÈÑRÔR�Ø×%Ò%Ð&?ÀÑLÔL×UÒUÑWÔWˆEÝØ˜/Ð+WÐ+WÐQVÐ+WÑ+WÔ+Wñô ð õ �x Ñ1Ô1Ð1r   c              ƒ   ó¢  K  — |j         r	|j        s|�t          ¦   «         S d|z  }t          ||¦  «        s‹|j        rt
          j                             ¦   «         }n t          | d|z  ¦  «        |¦  «        }| 	                    dd¦  «         
                    ¦   «         }t          ||d„ |2 ¦   «         ƒ d{V —†¦  «         t          ||¦  «        S )zSee _get_permissions().Nr]   r^   r_   r`   c              “   ó2   K  — h | 3 d {V —†\  }}|›d|›�’Œ6 S ©Nrb   r   rc   s      r   rg   z1ModelBackend._aget_permissions.<locals>.<setcomp>Œ   s=   è è € ÐBÐBÐBÐBÐBÐBÐBÐB±°°D˜B˜B˜B  Ð%ÐBÐBÐBÐBs   …rh   ro   s         r   Ú_aget_permissionszModelBackend._aget_permissions}   sô   è è € àÔ!ð 	 XÔ%:ð 	¸c¸oÝ‘5”5ˆLà*¨YÑ6ˆÝ�x Ñ1Ô1ð 
	ØÔ$ð SÝ"Ô*×.Ò.Ñ0Ô0��àH� Ð&;¸iÑ&GÑHÔHÈÑRÔR�Ø×%Ò%Ð&?ÀÑLÔL×UÒUÑWÔWˆEÝØØØBÐB¸EÐBÑBÔBÐBÐBÐBÐBÐBÐBñô ð õ
 �x Ñ1Ô1Ð1r   c                 ó0   — |                       ||d¦  «        S )zs
        Return a set of permission strings the user `user_obj` has from their
        `user_permissions`.
        rI   ©rs   r!   s      r   r$   z!ModelBackend.get_user_permissions�   s   € ð
 ×$Ò$ X¨s°FÑ;Ô;Ð;r   c              ƒ   ó@   K  — |                       ||d¦  «        ƒ d{V —†S )zSee get_user_permissions().rI   N©rw   r!   s      r   r'   z"ModelBackend.aget_user_permissions—   s0   è è € à×+Ò+¨H°c¸6ÑBÔBÐBÐBÐBÐBÐBÐBÐBr   c                 ó0   — |                       ||d¦  «        S )zq
        Return a set of permission strings the user `user_obj` has from the
        groups they belong.
        Úgroupry   r!   s      r   r)   z"ModelBackend.get_group_permissions›   s   € ð
 ×$Ò$ X¨s°GÑ<Ô<Ð<r   c              ƒ   ó@   K  — |                       ||d¦  «        ƒ d{V —†S )zSee get_group_permissions().r}   Nr{   r!   s      r   r+   z#ModelBackend.aget_group_permissions¢   s0   è è € à×+Ò+¨H°c¸7ÑCÔCÐCÐCÐCÐCÐCÐCÐCr   c                 óº   •— |j         r	|j        s|�t          ¦   «         S t          |d¦  «        s&t	          ¦   «                              |¦  «        |_        |j        S )NÚ_perm_cache)rN   ri   r    rj   Úsuperr.   r€   )r   r"   r#   Ú	__class__s      €r   r.   z ModelBackend.get_all_permissions¦   s[   ø€ ØÔ!ð 	 XÔ%:ð 	¸c¸oÝ‘5”5ˆLÝ�x Ñ/Ô/ð 	IÝ#(¡7¤7×#>Ò#>¸xÑ#HÔ#HˆHÔ ØÔ#Ð#r   c                 óZ   •— |j         o#t          ¦   «                              |||¬¦  «        S r-   )rN   r�   r4   ©r   r"   r3   r#   r‚   s       €r   r4   zModelBackend.has_perm­   s*   ø€ ØÔ!ÐO¥e¡g¤g×&6Ò&6°xÀÈ3Ð&6Ñ&OÔ&OÐOr   c              ƒ   ój   •K  — |j         o)t          ¦   «                              |||¬¦  «        ƒ d {V —†S r-   )rN   r�   r6   r„   s       €r   r6   zModelBackend.ahas_perm°   sA   øè è € ØÔ!ÐV­E©G¬G×,=Ò,=¸hÈÐRUÐ,=Ñ,VÔ,VÐ&VÐ&VÐ&VÐ&VÐ&VÐ&VÐVr   c                 ón   ‡— |j         o-t          ˆfd„|                      |¦  «        D ¦   «         ¦  «        S )zU
        Return True if user_obj has any permissions in the given app_label.
        c              3   óZ   •K  — | ]%}|d |                      d¦  «        …         ‰k    V — Œ&d S rv   ©Úindex©rd   r3   Ú	app_labels     €r   ú	<genexpr>z0ModelBackend.has_module_perms.<locals>.<genexpr>·   óQ   øè è € ð *
ð *
àð Ð"�4—:’:˜c‘?”?Ð"Ô# yÒ0ð*
ð *
ð *
ð *
ð *
ð *
r   )rN   Úanyr.   ©r   r"   r‹   s     `r   Úhas_module_permszModelBackend.has_module_perms³   sU   ø€ ð Ô!ð 
¥cð *
ð *
ð *
ð *
à×0Ò0°Ñ:Ô:ð*
ñ *
ô *
ñ '
ô '
ð 	
r   c              ƒ   ó~   ‡K  — |j         o3t          ˆfd„|                      |¦  «        ƒ d{V —†D ¦   «         ¦  «        S )zSee has_module_perms()c              3   óZ   •K  — | ]%}|d |                      d¦  «        …         ‰k    V — Œ&d S rv   rˆ   rŠ   s     €r   rŒ   z1ModelBackend.ahas_module_perms.<locals>.<genexpr>¾   r�   r   N)rN   rŽ   r0   r�   s     `r   Úahas_module_permszModelBackend.ahas_module_perms¼   si   øè è € àÔ!ð 
¥cð *
ð *
ð *
ð *
à"×7Ò7¸ÑAÔAÐAÐAÐAÐAÐAÐAð*
ñ *
ô *
ñ '
ô '
ð 	
r   Tc                 ó  — t          |t          ¦  «        r7	 |                     d¦  «        \  }}nA# t          $ r t          d¦  «        ‚w xY wt          |t          ¦  «        st          d¦  «        ‚|�t          j                             ¦   «         S t          t          d¦  «        ¬¦  «        t          t          d¦  «        ¬¦  «        z  }t          |t          ¦  «        r|t          |j        ¬¦  «        z  }n|t          ||¬	¦  «        z  }t          t          j                             |¦  «        ¦  «        }|r|t          d
¬¦  «        z  }|�|t          |¬¦  «        z  }t          j                             |¦  «        S )z�
        Return users that have permission "perm". By default, filter out
        inactive users and include superusers.
        rb   zDPermission name should be in the form app_label.permission_codename.z>The `perm` argument must be a string or a permission instance.NÚpk)Úgroup__user)rI   ©r•   )r`   r_   T)rk   )rN   )Ú
isinstanceÚstrÚsplitÚ
ValueErrorr   Ú	TypeErrorr>   r@   Únoner   r   r•   r   rX   rY   )	r   r3   rN   Úinclude_superusersr#   r‹   r`   Úpermission_qÚuser_qs	            r   Ú	with_permzModelBackend.with_permÃ   s�  € õ
 �d�CÑ Ô ð 	ðØ&*§j¢j°¡o¤oÑ#�	˜8˜8øÝð ð ð Ý ð5ñô ð ðøøøõ
 ˜D¥*Ñ-Ô-ð 	ÝØPñô ð ð ˆ?ÝÔ-×2Ò2Ñ4Ô4Ð4å¥X¨d¡^¤^Ð4Ñ4Ô4µq½hÀt¹n¼nÐ7MÑ7MÔ7MÑMˆÝ�d�JÑ'Ô'ð 	TØ�A ¤˜M™MœMÑ)ˆLˆLà�A xÈÐSÑSÔSÑSˆLå�
Ô*×1Ò1°,Ñ?Ô?Ñ@Ô@ˆØð 	+Ø•a TÐ*Ñ*Ô*Ñ*ˆFØÐ Ø•a )Ð,Ñ,Ô,Ñ,ˆFåÔ)×0Ò0°Ñ8Ô8Ð8s	   —0 °A
c                 ó¤   — 	 t           j                             |¬¦  «        }n# t           j        $ r Y d S w xY w|                      |¦  «        r|nd S ©Nr—   )r>   r@   r=   rD   rC   ©r   r   rI   s      r   r   zModelBackend.get_useræ   sd   € ð	ÝÔ-×1Ò1°WÐ1Ñ=Ô=ˆDˆDøÝÔ%ð 	ð 	ð 	Ø�4�4ð	øøøà×1Ò1°$Ñ7Ô7ÐAˆtˆt¸TÐAs   ‚ # £6µ6c              ƒ   ó´   K  — 	 t           j                             |¬¦  «        ƒ d {V —†}n# t           j        $ r Y d S w xY w|                      |¦  «        r|nd S r£   )r>   r@   ÚagetrD   rC   r¤   s      r   r   zModelBackend.aget_userí   sz   è è € ð	Ý"Ô3×8Ò8¸GÐ8ÑDÔDÐDÐDÐDÐDÐDÐDˆDˆDøÝÔ%ð 	ð 	ð 	Ø�4�4ð	øøøà×1Ò1°$Ñ7Ô7ÐAˆtˆt¸TÐAs   „&+ «>½>)NNr   )TTN)r7   r8   r9   Ú__doc__r   r   rC   rU   r[   rs   rw   r$   r'   r)   r+   r.   r4   r6   r�   r“   r¡   r   r   Ú__classcell__)r‚   s   @r   r;   r;   6   s¸  ø€ € € € € ðð ðð ð ð ðð ð ð ð"0ð 0ð 0ð/ð /ð /ðJð Jð Jð2ð 2ð 2ð*2ð 2ð 2ð&<ð <ð <ð <ðCð Cð Cð Cð=ð =ð =ð =ðDð Dð Dð Dð$ð $ð $ð $ð $ð $ðPð Pð Pð Pð Pð PðWð Wð Wð Wð Wð Wð
ð 
ð 
ð
ð 
ð 
ð!9ð !9ð !9ð !9ðFBð Bð BðBð Bð Bð Bð Bð Bð Br   r;   c                   ó   — e Zd Zd„ ZdS )ÚAllowAllUsersModelBackendc                 ó   — dS ©NTr   rP   s     r   rC   z/AllowAllUsersModelBackend.user_can_authenticateö   r   r   N©r7   r8   r9   rC   r   r   r   rª   rª   õ   ó#   € € € € € ðð ð ð ð r   rª   c                   ó8   — e Zd ZdZdZd„ Zd„ Zd„ Zd	d„Zd	d„Z	dS )
ÚRemoteUserBackendaÆ  
    This backend is to be used in conjunction with the ``RemoteUserMiddleware``
    found in the middleware module of this package, and is used when the server
    is handling authentication outside of Django.

    By default, the ``authenticate`` method creates ``User`` objects for
    usernames that don't already exist in the database.  Subclasses can disable
    this behavior by setting the ``create_unknown_user`` attribute to
    ``False``.
    Tc                 ód  — |sdS d}d}|                       |¦  «        }| j        r&t          j        j        di t          j        |i¤Ž\  }}n6	 t          j                             |¦  «        }n# t          j        $ r Y nw xY w|                      |||¬¦  «        }|  	                    |¦  «        r|ndS )ai  
        The username passed as ``remote_user`` is considered trusted. Return
        the ``User`` object with the given username. Create a new ``User``
        object if ``create_unknown_user`` is ``True``.

        Return None if ``create_unknown_user`` is ``False`` and a ``User``
        object with the given username is not found in the database.
        NF©Úcreatedr   )
Úclean_usernameÚcreate_unknown_userr>   r@   Úget_or_creater?   rA   rD   Úconfigure_userrC   ©r   r   Úremote_userr³   rI   rG   s         r   r   zRemoteUserBackend.authenticate	  sâ   € ð ð 	ØˆFØˆØˆØ×&Ò& {Ñ3Ô3ˆð
 Ô#ð 	Ý%Ô6ÔDð ð ÝÔ+¨XÐ6ðð ‰MˆD�'�'ðÝ Ô1×DÒDÀXÑNÔN��øÝÔ)ð ð ð Ø�ðøøøà×"Ò" 7¨D¸'Ð"ÑBÔBˆØ×1Ò1°$Ñ7Ô7ÐAˆtˆt¸TÐAs   ÁA, Á,A>Á=A>c              ƒ   óŒ  K  — |sdS d}d}|                       |¦  «        }| j        r,t          j        j        di t          j        |i¤Žƒ d{V —†\  }}n<	 t          j                             |¦  «        ƒ d{V —†}n# t          j        $ r Y nw xY w|                      |||¬¦  «        ƒ d{V —†}|  	                    |¦  «        r|ndS )zSee authenticate().NFr²   r   )
r´   rµ   r>   r@   Úaget_or_creater?   rK   rD   Úaconfigure_userrC   r¸   s         r   r   zRemoteUserBackend.aauthenticate'  s&  è è € àð 	ØˆFØˆØˆØ×&Ò& {Ñ3Ô3ˆð
 Ô#ð 	Ý"+Ô"<Ô"Kð #ð #ÝÔ+¨XÐ6ð#ð #ð ð ð ð ð ð ‰MˆD�'�'ðÝ&Ô7×KÒKÈHÑUÔUÐUÐUÐUÐUÐUÐU��øÝÔ)ð ð ð Ø�ðøøøà×)Ò)¨'°4ÀÐ)ÑIÔIÐIÐIÐIÐIÐIÐIˆØ×1Ò1°$Ñ7Ô7ÐAˆtˆt¸TÐAs   Á%A: Á:BÂBc                 ó   — |S )zÆ
        Perform any cleaning on the "username" prior to using it to get or
        create the user object.  Return the cleaned username.

        By default, return the username unchanged.
        r   )r   rG   s     r   r´   z RemoteUserBackend.clean_username>  s	   € ð ˆr   c                 ó   — |S )zp
        Configure a user and return the updated user.

        By default, return the user unmodified.
        r   ©r   r   rI   r³   s       r   r·   z RemoteUserBackend.configure_userG  s	   € ð ˆr   c              ƒ   óP   K  —  t          | j        ¦  «        |||¦  «        ƒ d{V —†S )zSee configure_user()N)r   r·   r¿   s       r   r¼   z!RemoteUserBackend.aconfigure_userO  s7   è è € à7•] 4Ô#6Ñ7Ô7¸ÀÀwÑOÔOÐOÐOÐOÐOÐOÐOÐOr   N)T)
r7   r8   r9   r§   rµ   r   r   r´   r·   r¼   r   r   r   r°   r°   ú   s‡   € € € € € ð	ð 	ð ÐðBð Bð Bð<Bð Bð Bð.ð ð ðð ð ð ðPð Pð Pð Pð Pð Pr   r°   c                   ó   — e Zd Zd„ ZdS )ÚAllowAllUsersRemoteUserBackendc                 ó   — dS r¬   r   rP   s     r   rC   z4AllowAllUsersRemoteUserBackend.user_can_authenticateU  r   r   Nr­   r   r   r   rÂ   rÂ   T  r®   r   rÂ   N)Úasgiref.syncr   Údjango.contrib.authr   Údjango.contrib.auth.modelsr   Údjango.db.modelsr   r   r   r>   r
   r;   rª   r°   rÂ   r   r   r   ú<module>rÈ      sl  ðØ &Ð &Ð &Ð &Ð &Ð &à .Ð .Ð .Ð .Ð .Ð .Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0àˆNÑÔ€	ð)Fð )Fð )Fð )Fð )Fñ )Fô )Fð )FðX|Bð |Bð |Bð |Bð |B�;ñ |Bô |Bð |Bð~ð ð ð ð  ñ ô ð ð
WPð WPð WPð WPð WP˜ñ WPô WPð WPðtð ð ð ð Ð%6ñ ô ð ð ð r   