ó
    |ch|]  ã                   ó´   • S SK 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
r
\ R                  " \5      r " S S\5      r " S S	\
R                   5      rg)
é    N)Úgenerate_tokenÚ	urldecode)ÚWebApplicationClientÚInsecureTransportError)ÚLegacyApplicationClient)ÚTokenExpiredErrorÚis_secure_transportc                   ó(   ^ • \ rS rSrU 4S jrSrU =r$ )ÚTokenUpdatedé   c                 ó6   >• [         [        U ]  5         Xl        g ©N)Úsuperr   Ú__init__Útoken)Úselfr   Ú	__class__s     €Úi/var/www/djangovue.mamus.xyz/django/venv/lib/python3.13/site-packages/requests_oauthlib/oauth2_session.pyr   ÚTokenUpdated.__init__   s   ø€ ÜŒl˜DÑ*Ô,Ø�
ó    ©r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__Ú__classcell__©r   s   @r   r   r      s   ø† ÷ó r   r   c                   óä  ^ • \ rS rSrSr          SU 4S jjr\S 5       r\R                  S 5       rS r	\S 5       r
\
R                  S 5       r
\
R                  S	 5       r
\S
 5       r\R                  S 5       r\S 5       r\R                  S 5       r\R                  S 5       r\S 5       rSS jr               SS jrS r       SS jr      SU 4S jjrS rSrU =r$ )ÚOAuth2Sessioné   aþ  Versatile OAuth 2 extension to :class:`requests.Session`.

Supports any grant type adhering to :class:`oauthlib.oauth2.Client` spec
including the four core OAuth 2 grants.

Can be used to create authorization urls, fetch tokens and access protected
resources using the :class:`requests.Session` interface you are used to.

- :class:`oauthlib.oauth2.WebApplicationClient` (default): Authorization Code Grant
- :class:`oauthlib.oauth2.MobileApplicationClient`: Implicit Grant
- :class:`oauthlib.oauth2.LegacyApplicationClient`: Password Credentials Grant
- :class:`oauthlib.oauth2.BackendApplicationClient`: Client Credentials Grant

Note that the only time you will be using Implicit Grant from python is if
you are driving a user agent able to obtain URL fragments.
c                 ó  >• [         [        U ]
  " S0 UD6  U=(       d	    [        XS9U l        U=(       d    0 U l        XPl        X`l        U=(       d    [        U l	        X€l
        X0l        U=(       d    0 U l        X�l        X l        U R                  S;  a/  [        SR!                  U R"                  U R                  5      5      eS U l        ['        5       ['        5       ['        5       ['        5       ['        5       S.U l        g)aÐ  Construct a new OAuth 2 client session.

:param client_id: Client id obtained during registration
:param client: :class:`oauthlib.oauth2.Client` to be used. Default is
               WebApplicationClient which is useful for any
               hosted application but not mobile or desktop.
:param scope: List of scopes you wish to request access to
:param redirect_uri: Redirect URI you registered as callback
:param token: Token dictionary, must include access_token
              and token_type.
:param state: State string used to prevent CSRF. This will be given
              when creating the authorization url and must be supplied
              when parsing the authorization response.
              Can be either a string or a no argument callable.
:auto_refresh_url: Refresh token endpoint URL, must be HTTPS. Supply
                   this if you wish the client to automatically refresh
                   your access tokens.
:auto_refresh_kwargs: Extra arguments to pass to the refresh token
                      endpoint.
:token_updater: Method with one argument, token, to be used to update
                your token database on automatic token refresh. If not
                set a TokenUpdated warning will be raised when a token
                has been refreshed. This warning will carry the token
                in its token argument.
:param pkce: Set "S256" or "plain" to enable PKCE. Default is disabled.
:param kwargs: Arguments to pass to the Session constructor.
r   )ÚS256ÚplainNzWrong value for {}(.., pkce={})c                 ó   • U $ r   © )Úrs    r   Ú<lambda>Ú(OAuth2Session.__init__.<locals>.<lambda>^   s   € ™ar   )Úaccess_token_responseÚrefresh_token_responseÚprotected_requestÚrefresh_token_requestÚaccess_token_requestNr&   )r   r    r   r   Ú_clientr   Ú_scopeÚredirect_urir   ÚstateÚ_stateÚauto_refresh_urlÚauto_refresh_kwargsÚtoken_updaterÚ_pkceÚAttributeErrorÚformatr   ÚauthÚsetÚcompliance_hook)r   Ú	client_idÚclientr4   r5   Úscoper1   r   r2   r6   ÚpkceÚkwargsr   s               €r   r   ÚOAuth2Session.__init__$   sÎ   ø€ ôR 	Œm˜TÒ+Ñ5¨fÒ5Ø×MÔ!5°iÑ!MˆŒØ—[˜bˆŒ
ØŒØ(ÔØ×,œnˆŒ
ØŒØ 0ÔØ#6×#<¸"ˆÔ Ø*ÔØŒ
à�:‰:Ð4Ó4Ü Ð!B×!IÑ!IÈ$Ï.É.ÐZ^×ZdÑZdÓ!eÓfÐfñ  ˆŒ	ô
 &)£UÜ&)£eÜ!$£Ü%(£UÜ$'£Eñ 
ˆÕr   c                 ó|   • U R                   b  U R                   $ U R                  b  U R                  R                  $ g)zBBy default the scope from the client is used, except if overriddenN)r0   r/   r?   ©r   s    r   r?   ÚOAuth2Session.scopej   s5   € ð �;‰;Ñ"Ø—;‘;ÐØ�\‰\Ñ%Ø—<‘<×%Ñ%Ð%àr   c                 ó   • Xl         g r   )r0   )r   r?   s     r   r?   rE   t   s   € à�r   c                 ó  •  U R                  5       U l        [        R                  SU R                  5        U R                  $ ! [         a?    U R                   U l        [        R                  SU R                  5         U R                  $ f = f)z6Generates a state string to be used in authorizations.zGenerated new state %s.z&Re-using previously supplied state %s.)r2   r3   ÚlogÚdebugÚ	TypeErrorrD   s    r   Ú	new_stateÚOAuth2Session.new_statex   so   € ð	MØŸ*™*›,ˆDŒKÜ�I‰IÐ/°·±Ô=ð �{‰{Ðøô ó 	MØŸ*™*ˆDŒKÜ�I‰IÐ>ÀÇÁÕLØ�{‰{Ðð	Mús   ‚5A Á;BÂBc                 ó0   • [        U R                  SS 5      $ )Nr=   ©Úgetattrr/   rD   s    r   r=   ÚOAuth2Session.client_id‚   s   € ä�t—|‘| [°$Ó7Ð7r   c                 ó$   • XR                   l        g r   ©r/   r=   ©r   Úvalues     r   r=   rP   †   s   € à!&�‰Õr   c                 ó   • U R                   ?g r   rR   rD   s    r   r=   rP   Š   s   € à�L‰LÑ"r   c                 ó0   • [        U R                  SS 5      $ )Nr   rN   rD   s    r   r   ÚOAuth2Session.tokenŽ   s   € ä�t—|‘| W¨dÓ3Ð3r   c                 óZ   • XR                   l        U R                   R                  U5        g r   )r/   r   Úpopulate_token_attributesrS   s     r   r   rW   ’   s   € à"�‰ÔØ�‰×.Ñ.¨uÕ5r   c                 ó0   • [        U R                  SS 5      $ )NÚaccess_tokenrN   rD   s    r   r[   ÚOAuth2Session.access_token—   s   € ä�t—|‘| ^°TÓ:Ð:r   c                 ó$   • XR                   l        g r   ©r/   r[   rS   s     r   r[   r\   ›   s   € à$)�‰Õ!r   c                 ó   • U R                   ?g r   r^   rD   s    r   r[   r\   Ÿ   s   € à�L‰LÑ%r   c                 ó,   • [        U R                  5      $ )aP  Boolean that indicates whether this session has an OAuth token
or not. If `self.authorized` is True, you can reasonably expect
OAuth-protected requests to the resource to succeed. If
`self.authorized` is False, you need the user to go through the OAuth
authentication dance before OAuth-protected requests to the resource
will succeed.
)Úboolr[   rD   s    r   Ú
authorizedÚOAuth2Session.authorized£   s   € ô �D×%Ñ%Ó&Ð&r   c                 ó„  • U=(       d    U R                  5       nU R                  (       a`  U R                  R                  S5      U l        U R                  US'   U R                  R                  U R                  U R                  S9US'   U R                  R                  " U4U R                  U R                  US.UD6U4$ )a  Form an authorization URL.

:param url: Authorization endpoint url, must be HTTPS.
:param state: An optional state string for CSRF protection. If not
              given it will be generated for you.
:param kwargs: Extra parameters to include.
:return: authorization_url, state
é+   Úcode_challenge_method)Úcode_verifierrf   Úcode_challenge)r1   r?   r2   )	rK   r7   r/   Úcreate_code_verifierÚ_code_verifierÚcreate_code_challengeÚprepare_request_urir1   r?   )r   Úurlr2   rA   s       r   Úauthorization_urlÚOAuth2Session.authorization_url®   sº   € ð ×)˜Ÿ™Ó)ˆØ�:�:Ø"&§,¡,×"CÑ"CÀBÓ"GˆDÔØ.2¯j©jˆFÐ*Ñ+Ø'+§|¡|×'IÑ'IØ"×1Ñ1Ø&*§j¡jð (Jð (ˆFÐ#Ñ$ð
 �L‰L×,Ò,Øðà!×.Ñ.Ø—j‘jØñ	ð
 ñð ð	
ð 		
r   c                 ó€  • [        U5      (       d
  [        5       eU(       dA  U(       a:  U R                  R                  X0R                  S9  U R                  R
                  nONU(       dG  [        U R                  [        5      (       a(  U R                  R
                  nU(       d  [        S5      eU R                  (       a'  U R                  c  [        S5      eU R                  US'   [        U R                  [        5      (       a  Uc  [        S5      eUc  [        S5      eUb  UUS'   Ub  UUS'   Ub  Uc  S	nOUUS
LaP  U R                  nU(       a=  [        R                  SU5        Ub  UOSn[        R                   R#                  UU5      nU(       a  Ub  UUS'   U R                  R$                  " S$UUU R&                  US.UD6nU=(       d    SSS.n0 U l        0 nUR+                  5       S:X  a!  [-        [/        U5      5      UU	(       a  SOS'   O7UR+                  5       S:X  a  [-        [/        U5      5      US'   O[        S5      eU R0                  S    H%  n[        R                  SU5        U" XU5      u  pnM'     U R2                  " S$UUU
UUUUUS.UD6n[        R                  SUR4                  5        [        R                  SUR2                  R6                  5        [        R                  SUR2                  R8                  5        [        R                  SUR2                  R:                  5        [        R                  SUR8                  UR<                  5        [        R                  S[?        U R0                  S    5      5        U R0                  S     H!  n[        R                  S!U5        U" U5      nM#     U R                  RA                  UR<                  U RB                  S"9  U R                  R(                  U l        [        R                  S#U R(                  5        U R(                  $ )%aÎ	  Generic method for fetching an access token from the token endpoint.

If you are using the MobileApplicationClient you will want to use
`token_from_fragment` instead of `fetch_token`.

The current implementation enforces the RFC guidelines.

:param token_url: Token endpoint URL, must use HTTPS.
:param code: Authorization code (used by WebApplicationClients).
:param authorization_response: Authorization response URL, the callback
                               URL of the request back to you. Used by
                               WebApplicationClients instead of code.
:param body: Optional application/x-www-form-urlencoded body to add the
             include in the token request. Prefer kwargs over body.
:param auth: An auth tuple or method as accepted by `requests`.
:param username: Username required by LegacyApplicationClients to appear
                 in the request body.
:param password: Password required by LegacyApplicationClients to appear
                 in the request body.
:param method: The HTTP method used to make the request. Defaults
               to POST, but may also be GET. Other methods should
               be added as needed.
:param force_querystring: If True, force the request body to be sent
    in the querystring instead.
:param timeout: Timeout of the request in seconds.
:param headers: Dict to default request headers with.
:param verify: Verify SSL certificate.
:param proxies: The `proxies` argument is passed onto `requests`.
:param include_client_id: Should the request body include the
                          `client_id` parameter. Default is `None`,
                          which will attempt to autodetect. This can be
                          forced to always include (True) or never
                          include (False).
:param client_secret: The `client_secret` paired to the `client_id`.
                      This is generally required unless provided in the
                      `auth` tuple. If the value is `None`, it will be
                      omitted from the request, however if the value is
                      an empty string, an empty string will be sent.
:param cert: Client certificate to send for OAuth 2.0 Mutual-TLS Client
             Authentication (draft-ietf-oauth-mtls). Can either be the
             path of a file containing the private key and certificate or
             a tuple of two filenames for certificate and key.
:param kwargs: Extra parameters to include in the token request.
:return: A token dict
©r2   z?Please supply either code or authorization_response parameters.zFCode verifier is not found, authorization URL must be generated beforerg   zQ`LegacyApplicationClient` requires both the `username` and `password` parameters.zGThe required parameter `username` was supplied, but `password` was not.ÚusernameÚpasswordFTzIEncoding `client_id` "%s" with `client_secret` as Basic auth credentials.Ú Úclient_secret)ÚcodeÚbodyr1   Úinclude_client_idúapplication/jsonú!application/x-www-form-urlencoded©ÚAcceptzContent-TypeÚPOSTÚparamsÚdataÚGETz%The method kwarg must be POST or GET.r.   z&Invoking access_token_request hook %s.)Úmethodrm   ÚtimeoutÚheadersr:   ÚverifyÚproxiesÚcertz0Request to fetch token completed with status %s.zRequest url was %szRequest headers were %szRequest body was %sú(Response headers were %s and content %s.ú!Invoking %d token response hooks.r*   úInvoking hook %s.©r?   zObtained token %s.r&   )"r	   r   r/   Úparse_request_uri_responser3   rv   Ú
isinstancer   Ú
ValueErrorr7   rj   r   r=   rH   rI   Úrequestsr:   ÚHTTPBasicAuthÚprepare_request_bodyr1   r   ÚupperÚdictr   r<   ÚrequestÚstatus_coderm   rƒ   rw   ÚtextÚlenÚparse_request_body_responser?   )r   Ú	token_urlrv   Úauthorization_responserw   r:   rr   rs   r�   Úforce_querystringr‚   rƒ   r„   r…   rx   ru   r†   rA   r=   Úrequest_kwargsÚhookr'   s                         r   Úfetch_tokenÚOAuth2Session.fetch_tokenÊ   sÛ  € ôB # 9×-Ñ-Ü(Ó*Ð*æÖ.Ø�L‰L×3Ñ3Ø&¯k©kð 4ñ ð —<‘<×$Ñ$‰DÞœ* T§\¡\Ô3G×HÑHØ—<‘<×$Ñ$ˆDÞÜ ØXóð ð �:�:Ø×"Ñ"Ñ*Ü Ø\óð ð '+×&9Ñ&9ˆF�?Ñ#ô �d—l‘lÔ$;×<Ñ<ØÑÜ ð<óð ð ÑÜ ð.óð ð ÑØ!)ˆF�:ÑØÑØ!)ˆF�:Ñð Ñð !Ñ(Ø$)Ð!øð !¨Ò,Ø ŸN™N�	ÞÜ—I‘Ið5à!ôð
 6CÑ5N¡MÐTV�MÜ#Ÿ=™=×6Ñ6°yÀ-ÓP�Dæð Ñ(Ø*7��Ñ'à�|‰|×0Ò0ð 
ØØØ×*Ñ*Ø/ñ	
ð
 ñ
ˆð ÷ 
Ø(Ø?ñ
ˆð ˆŒ
ØˆØ�<‰<‹>˜VÓ#ÜHLÜ˜$“óIˆNÖ'8™8¸fÒEð �\‰\‹^˜uÓ$Ü'+¬I°d«OÓ'<ˆN˜8Ò$äÐDÓEÐEà×(Ñ(Ð)?Ô@ˆDÜ�I‰IÐ>ÀÔEÙ15Ø Nó2Ñ.ˆI¢ñ Að �LŠLð 

ØØØØØØØØñ

ð ñ

ˆô 	�	‰	ÐDÀaÇmÁmÔTÜ�	‰	Ð&¨¯	©	¯©Ô6Ü�	‰	Ð+¨Q¯Y©Y×->Ñ->Ô?Ü�	‰	Ð'¨¯©¯©Ô8Ü�	‰	Ð<¸a¿i¹iÈÏÉÔPÜ�	‰	Ø/Ü�×$Ñ$Ð%<Ñ=Ó>ô	
ð ×(Ñ(Ð)@ÔAˆDÜ�I‰IÐ)¨4Ô0Ù�Q“ŠAñ Bð 	�‰×0Ñ0°·±¸t¿z¹zÐ0ÑJØ—\‘\×'Ñ'ˆŒ
Ü�	‰	Ð&¨¯
©
Ô3Ø�z‰zÐr   c                 ó–   • U R                   R                  XR                  S9  U R                   R                  U l        U R                  $ )z¤Parse token from the URI fragment, used by MobileApplicationClients.

:param authorization_response: The full URL of the redirect back to you
:return: A token dict
rq   )r/   r‹   r3   r   )r   r™   s     r   Útoken_from_fragmentÚ!OAuth2Session.token_from_fragment›  s?   € ð 	�‰×/Ñ/Ø"¯+©+ð 	0ñ 	
ð —\‘\×'Ñ'ˆŒ
Ø�z‰zÐr   c	                 ó   • U(       d  [        S5      e[        U5      (       d
  [        5       eU=(       d    U R                  R	                  S5      n[
        R                  SU R                  5        U	R                  U R                  5        U R                  R                  " SX2U R                  S.U	D6n[
        R                  SU5        Uc  SSS.nU R                  S	    H%  n
[
        R                  S
U
5        U
" XU5      u  pnM'     U R                  U[        [        U5      5      UUUUSUS9n[
        R                  SUR                   5        [
        R                  SUR"                  UR$                  5        [
        R                  S['        U R                  S   5      5        U R                  S    H!  n
[
        R                  SU
5        U
" U5      nM#     U R                  R)                  UR$                  U R                  S9U l        SU R                  ;  a#  [
        R                  S5        X R                  S'   U R                  $ )a”  Fetch a new access token using a refresh token.

:param token_url: The token endpoint, must be HTTPS.
:param refresh_token: The refresh_token to use.
:param body: Optional application/x-www-form-urlencoded body to add the
             include in the token request. Prefer kwargs over body.
:param auth: An auth tuple or method as accepted by `requests`.
:param timeout: Timeout of the request in seconds.
:param headers: A dict of headers to be used by `requests`.
:param verify: Verify SSL certificate.
:param proxies: The `proxies` argument will be passed to `requests`.
:param kwargs: Extra parameters to include in the token request.
:return: A token dict
z'No token endpoint set for auto_refresh.Úrefresh_tokenz*Adding auto refresh key word arguments %s.)rw   r£   r?   z&Prepared refresh token request body %sry   rz   r{   r-   z'Invoking refresh_token_request hook %s.T)r   r:   r‚   rƒ   r„   Úwithhold_tokenr…   z2Request to refresh token completed with status %s.r‡   rˆ   r+   r‰   rŠ   z)No new refresh token given. Re-using old.r&   )r�   r	   r   r   ÚgetrH   rI   r5   Úupdater/   Úprepare_refresh_bodyr?   r<   Úpostr’   r   r”   rƒ   r•   r–   r—   )r   r˜   r£   rw   r:   r‚   rƒ   r„   r…   rA   rœ   r'   s               r   r£   ÚOAuth2Session.refresh_token§  sû  € ö4 ÜÐFÓGÐGä" 9×-Ñ-Ü(Ó*Ð*à%×H¨¯©¯©¸Ó)Hˆä�	‰	Ø8¸$×:RÑ:Rô	
ð 	�‰�d×.Ñ.Ô/Ø�|‰|×0Ò0ð 
Ø¸$¿*¹*ñ
ØHNñ
ˆô 	�	‰	Ð:¸DÔAà‰?à,Ø!DñˆGð
 ×(Ñ(Ð)@ÔAˆDÜ�I‰IÐ?ÀÔFÙ'+¨IÀÓ'EÑ$ˆI¢ñ Bð �I‰IØÜ”i “oÓ&ØØØØØØð ð 	
ˆô 	�	‰	ÐFÈÏÉÔVÜ�	‰	Ð<¸a¿i¹iÈÏÉÔPÜ�	‰	Ø/Ü�×$Ñ$Ð%=Ñ>Ó?ô	
ð ×(Ñ(Ð)AÔBˆDÜ�I‰IÐ)¨4Ô0Ù�Q“ŠAñ Cð —\‘\×=Ñ=¸a¿f¹fÈDÏJÉJÐ=ÐWˆŒ
Ø $§*¡*Ó,Ü�I‰IÐAÔBØ*7�J‰J�Ñ'Ø�z‰zÐr   c	                 ó¬  >• [        U5      (       d
  [        5       eU R                  (       a©  U(       d¢  [        R	                  S[        U R                  S   5      5        U R                  S    H%  n
[        R	                  SU
5        U
" X$U5      u  p$nM'     [        R	                  SU R                  5         U R                  R                  X!X4S9u  p$n[        R	                  SX!5        [        R	                  SXC5        [        R	                  SU	5        [$        [&        U ]R  " X4XCUS.U	D6$ ! [         Ga    U R                  (       Ga  [        R	                  SU R                  5        U	R                  SS5      nU(       a?  U(       a8  Uc5  [        R	                  S	U5        [        R                  R                  Xg5      nU R                  " U R                  4SU0U	D6nU R                   (       aQ  [        R	                  S
XÀR                   5        U R!                  U5        U R                  R                  X!X4S9u  p$n GNp[#        U5      ee f = f)z<Intercept all requests and add the OAuth 2 token if present.z-Invoking %d protected resource request hooks.r,   r‰   zAdding token %s to request.)Úhttp_methodrw   rƒ   z1Auto refresh is set, attempting to refresh at %s.r:   NzEEncoding client_id "%s" with client_secret as Basic auth credentials.zUpdating token to %s using %s.z"Requesting url %s using method %s.z Supplying headers %s and data %sz&Passing through key word arguments %s.)rƒ   r   Úfiles)r	   r   r   rH   rI   r–   r<   r/   Ú	add_tokenr   r4   ÚpoprŽ   r:   r�   r£   r6   r   r   r    r“   )r   r�   rm   r   rƒ   r¤   r=   ru   r¬   rA   rœ   r:   r   r   s                €r   r“   ÚOAuth2Session.requestö  s  ø€ ô # 3×'Ñ'Ü(Ó*Ð*Ø�:�:žnÜ�I‰IØ?Ü�D×(Ñ(Ð)<Ñ=Ó>ôð ×,Ñ,Ð-@ÔA�Ü—	‘	Ð-¨tÔ4Ù%)¨#¸Ó%=Ñ"�šdñ Bô �I‰IÐ3°T·Z±ZÔ@ð"Ø%)§\¡\×%;Ñ%;Ø°$ð &<ð &Ñ"�˜dôF 	�	‰	Ð6¸ÔDÜ�	‰	Ð4°gÔDÜ�	‰	Ð:¸FÔCÜ”] DÒ1Øð
Ø!(¸5ñ
ØDJñ
ð 	
øôE %ô Ø×(×(Ð(Ü—I‘IØKØ×-Ñ-ôð "Ÿ:™: f¨dÓ3�DÞ ¦]¸¹ÜŸ	™	ØcØ%ôô  (Ÿ}™}×:Ñ:¸9ÓT˜Ø ×.Ò.Ø×-Ñ-ñØ48ðØ<Bñ�Eð ×)×)ÜŸ	™	Ø<¸e×EWÑEWôð ×*Ñ*¨5Ô1Ø-1¯\©\×-CÑ-CØ¸$ð .Dð .Ñ*˜£dô +¨5Ó1Ð1àð;ús   Â9D0 Ä0DIÉIc                 óŠ   • XR                   ;  a  [        SXR                   5      eU R                   U   R                  U5        g)aÒ  Register a hook for request/response tweaking.

Available hooks are:
    access_token_response invoked before token parsing.
    refresh_token_response invoked before refresh token parsing.
    protected_request invoked before making a request.
    access_token_request invoked before making a token fetch request.
    refresh_token_request invoked before making a refresh request.

If you find a new hook is needed please send a GitHub PR request
or open an issue.
zHook type %s is not in %s.N)r<   r�   Úadd)r   Ú	hook_typerœ   s      r   Úregister_compliance_hookÚ&OAuth2Session.register_compliance_hook:  sC   € ð ×0Ñ0Ó0ÜØ,¨i×9MÑ9Móð ð 	×Ñ˜YÑ'×+Ñ+¨DÕ1r   )r/   rj   r7   r0   r3   r:   r5   r4   r<   r1   r2   r   r6   )
NNNNNNNNNNr   )NNrt   NNNr}   FNNNNNNN)Nrt   NNNNN)NNFNNN)r   r   r   r   Ú__doc__r   Úpropertyr?   ÚsetterrK   r=   Údeleterr   r[   rb   rn   r�   r    r£   r“   r³   r   r   r   s   @r   r    r       s³  ø† ñð& ØØØ ØØØØØØ÷D
ðL ñó ðð ‡\�\ñó ðòð ñ8ó ð8ð ×Ññ'ó ð'ð ×Ññ#ó ð#ð ñ4ó ð4ð ‡\�\ñ6ó ð6ð ñ;ó ð;ð ×Ññ*ó ð*ð ×Ññ&ó ð&ð ñ'ó ð'ô
ð> Ø#ØØØØØØØØØØØØØô#Oòb
ð ØØØØØØôMðf ØØØØØ÷B
÷H2ð 2r   r    )ÚloggingÚoauthlib.commonr   r   Úoauthlib.oauth2r   r   r   r   r	   rŽ   Ú	getLoggerr   rH   ÚWarningr   ÚSessionr    r&   r   r   Ú<module>r¿      sG   ðÛ ç 5ß HÝ 3ß BÛ à×Ò˜Ó!€ô�7ô ôy2�H×$Ñ$õ y2r   