__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

�w�g�v���Sr/SQrSSKJrJr SSKrSSKJr SSKrSSK	r	SSK
J
r
 SSKrSSKJ
r
 SSKrSSKJrJrJr SSKrSS	KJr SS
KJrJrJrJr SSKJr SrS
rSr Sr!Sr"\#\$\%4r&Sr'Sr("SS\5r)"SS\5r"SS\5r*"SS5r+"SS\+5r,"SS\+5r-"SS \+5r."S!S"5r/"S#S$\/5r0"S%S&\05r1"S'S(\25r3"S)S*\35r4"S+S,\35r5"S-S.\55r6"S/S0\55r7"S1S2\75r8"S3S4\35r9"S5S6\35r:"S7S8\35r;"S9S:\35r<g);z4launchpadlib credentials and authentication support.)�AccessToken�AnonymousAccessToken� AuthorizeRequestTokenWithBrowser�CredentialStore�RequestTokenAuthorizationEngine�Consumer�Credentials�)�	b64decode�	b64encodeN)�StringIO)�select)�stdin)�	urlencode�urljoin�parse_qs)�	HTTPError)rr�OAuthAuthorizer�SystemWideConsumer)�urisz+request-tokenz
+access-tokenz+authorize-token�i�c�T�[[RRSS55$)z�Whether the user has disabled SSL certificate connection.

Some testing servers have broken certificates.  Rather than raising an
error, we allow an environment variable,
``LP_DISABLE_SSL_CERTIFICATE_VALIDATION`` to disable the check.
�%LP_DISABLE_SSL_CERTIFICATE_VALIDATIONF)�bool�os�environ�get���:/usr/lib/python3/dist-packages/launchpadlib/credentials.py�$_ssl_certificate_validation_disabledr ?s����
�
���F��N�O�Orc��[5n[R"US9RUSU[	U5S9upEUR
S:wa[
XE5eXE4$)z�POST to ``url`` with ``headers`` and a body of urlencoded ``params``.

Wraps it up to make sure we avoid the SSL certificate validation if our
environment tells us to.  Also, raises an error on non-200 statuses.
)�"disable_ssl_certificate_validation�POST)�method�headers�body��)r �httplib2�Http�requestr�statusr)�urlr%�params�
cert_disabled�response�contents      r�
_http_postr1Ls[��9�:�M� �
�
�+8��
�g�c�&�'�	�&�8I�g�J��H����#����*�*���rc��\rSrSrSrSrSrSrSrSr	Sr
\S	5rS\
R\4S
jr\
R4SjrSrg)
r�[z�Standard credentials storage and usage class.

:ivar consumer: The consumer (application)
:type consumer: `Consumer`
:ivar access_token: Access information on behalf of the user
:type access_token: `AccessToken`
N�uri�dictz<BR>�
c��[5nURU5 UR5n[U[5(aURS5nU$)zUTurn this object into a string.

This should probably be moved into OAuthAuthorizer.
�utf-8)r�save�getvalue�
isinstance�str�encode)�self�sio�
serializeds   r�	serialize�Credentials.serializeksD��
�j���	�	�#���\�\�^�
��j�#�&�&�#�*�*�7�3�J��rc��U"5n[U[5(dURS5nUR[	U55 U$)zmCreate a `Credentials` object from a serialized string.

This should probably be moved into OAuthAuthorizer.
r8)r;r<�decode�loadr)�cls�value�credentialss   r�from_string�Credentials.from_stringws>���e���%��%�%��L�L��)�E�����%��)��rc��URcS5eURbS5e[R"U5n[	URR
SSS9nU[-nSU0nX0R:XaSUS'[XVU5upx[U[5(aURS	5nX0R:Xa9[R"U5nUbXS
'[RU5UlU$[R#U5UlU<[$<SUR R
<3nUbXR lUSU--
nU$)
a[Request an OAuth token to Launchpad.

Also store the token in self._request_token.

This method must not be called on an object with no consumer
specified or if an access token has already been obtained.

:param context: The context of this token, that is, its scope of
    validity within Launchpad.
:param web_root: The URL of the website on which the token
    should be requested.
:token_format: How the token should be
    presented. URI_TOKEN_FORMAT means just return the URL to
    the page that authorizes the token.  DICT_TOKEN_FORMAT
    means return a dictionary describing the token
    and the site's authentication policy.

:return: If token_format is URI_TOKEN_FORMAT, the URL for the
    user to authorize the `AccessToken` provided by
    Launchpad. If token_format is DICT_TOKEN_FORMAT, a dict of
    information about the new access token.
zConsumer not specified.zAccess token already obtained.�	PLAINTEXT�&)�oauth_consumer_key�oauth_signature_method�oauth_signature�Refererzapplication/json�Acceptr8�
lp.context�
?oauth_token=z&lp.context=%s)�consumer�access_tokenr�lookup_web_rootr5�key�request_token_page�DICT_TOKEN_FORMATr1r;�bytesrD�json�loadsr�from_params�_request_tokenrI�authorize_token_page�context)	r>ra�web_root�token_formatr-r,r%r/r0s	         r�get_request_token�Credentials.get_request_token�sN��8�}�}�(�C�*C�C�(�� � �(�J�*J�J�(��'�'��1���#�}�}�0�0�#.��
��
�+�+���h�'���1�1�1� 2�G�H��&�s�V�<����g�u�%�%��n�n�W�-�G��1�1�1��Z�Z��(�F��"�'.�|�$�"-�"9�"9�&�"A�D���M�"-�"9�"9�'�"B�D���$��#�#�'�'��C�
�"�.5�#�#�+��'�'�1�1���Jrc�X�URcS5e[R"U5n[URR
SURR
SURR-S9nU[-nSU0n[X4U5upV[RU5Ulg)a4Exchange the previously obtained request token for an access token.

This method must not be called unless get_request_token() has been
called and completed successfully.

The access token will be stored as self.access_token.

:param web_root: The base URL of the website that granted the
    request token.
Nz5get_request_token() doesn't seem to have been called.rLz&%s)rNrO�oauth_tokenrPrQ)r_rrWr5rUrX�secret�access_token_pager1rrIrV)r>rbr-r,r%r/r0s       r�'exchange_request_token_for_access_token�3Credentials.exchange_request_token_for_access_token�s���
���+�	C�B�	C�+��'�'��1���#�}�}�0�0�#.��+�+�/�/�!�D�$7�$7�$>�$>�>�	
���*�*���h�'��&�s�V�<���'�3�3�G�<��r)r_rV)�__name__�
__module__�__qualname__�__firstlineno__�__doc__r_�URI_TOKEN_FORMATrZ�ITEM_SEPARATOR�NEWLINErA�classmethodrIr�STAGING_WEB_ROOTrdrj�__static_attributes__rrrrr[sd����N������N��G�
��	��	���&�&�%�	;�|�,�,�=rrc�8�\rSrSrSr\S5r\S5rSrg)r��zAn OAuth access token.c�J�USnUSnURS5nU"X#U5$)z:Create and return a new `AccessToken` from the given dict.rg�oauth_token_secretrS)r)rFr-rXrhras     rr^�AccessToken.from_params�s4���]�#���,�-���*�*�\�*���3��(�(rc�R�[U[5(dURS5n[USS9nUSn[	U5S:XdS5eUSnUSn[	U5S:XdS	5eUSnURS
5nUb[	U5S:XdS5eUSnU"X4U5$)z<Create and return a new `AccessToken` from the given string.r8F)�keep_blank_valuesrgrz/Query string must have exactly one oauth_token.r	rzz*Query string must have exactly one secret.rSz*Query string must have exactly one context)r;r<rDr�lenr)rF�query_stringr-rXrhras      rrI�AccessToken.from_string�s����,��,�,�'�.�.�w�7�L��,�%�@���]�#���3�x�1�}�O�O�O�}��!�f���,�-���6�{�a��M�!M�M�������*�*�\�*�����G���!�
<�;�
<�!��a�j�G��3��(�(rrN)	rlrmrnrorprtr^rIrvrrrrr�s+�� ��)��)��)��)rrc�,^�\rSrSrSrU4SjrSrU=r$)r�zgAn OAuth access token that doesn't authenticate anybody.

This token can be used for anonymous access.
c�&>�[TU]SS5 g)N���super�__init__)r>�	__class__s �rr��AnonymousAccessToken.__init__s���
����R� rr)rlrmrnrorpr�rv�
__classcell__�r�s@rrr�s����
!�!rrc�:�\rSrSrSrS
SjrSrSrSrSr	S	r
g)riz�Store OAuth credentials locally.

This is a generic superclass. To implement a specific way of
storing credentials locally you'll need to subclass this class,
and implement `do_save` and `do_load`.
Nc��Xlg)z�Constructor.

:param credential_save_failed: A callback to be invoked if the
    save to local storage fails. You should never invoke this
    callback yourself! Instead, you should raise an exception
    from do_save().
N��credential_save_failed)r>r�s  rr��CredentialStore.__init__s
��'=�#rc��URX5 U$![a e[a*nURcUeUR5 SnAU$SnAff=f)z�Save the credentials and invoke the callback on failure.

Do not override this method when subclassing. Override
do_save() instead.
N)�do_save�EXPLOSIVE_ERRORS�	Exceptionr�)r>rH�unique_consumer_id�es    rr9�CredentialStore.saves^��	*��L�L��9����
 �	���	*��*�*�2����'�'�)�)����		*�s��A�A�Ac��[5e)z�Store newly-authorized credentials locally for later use.

:param credentials: A Credentials object to save.
:param unique_consumer_id: A string uniquely identifying an
    OAuth consumer on a Launchpad instance.
��NotImplementedError)r>rHr�s   rr��CredentialStore.do_save)s
��"�#�#rc�$�URU5$)a�Retrieve credentials from a local store.

This method is the inverse of `save`.

There's no special behavior in this method--it just calls
`do_load`. There _is_ special behavior in `save`, and this
way, developers can remember to implement `do_save` and
`do_load`, not `do_save` and `load`.

:param unique_key: A string uniquely identifying an OAuth consumer
    on a Launchpad instance.

:return: A `Credentials` object if one is found in the local
    store, and None otherise.
)�do_load�r>�
unique_keys  rrE�CredentialStore.load2s�� �|�|�J�'�'rc��[5e)aRetrieve credentials from a local store.

This method is the inverse of `do_save`.

:param unique_key: A string uniquely identifying an OAuth consumer
    on a Launchpad instance.

:return: A `Credentials` object if one is found in the local
    store, and None otherise.
r�r�s  rr��CredentialStore.do_loadDs
��"�#�#rr��N)rlrmrnrorpr�r9r�rEr�rvrrrrrs ���=�� $�(�$$rrc�P^�\rSrSrSrSrS	U4Sjjr\S5rSr	Sr
SrU=r$)
�KeyringCredentialStoreiRz�Store credentials in the GNOME keyring or KDE wallet.

This is a good solution for desktop applications and interactive
scripts. It doesn't work for non-interactive scripts, or for
integrating third-party websites into Launchpad.
s<B64>c�b>�[TU]U5 SUlU(a[U5Ulggr�)r�r��	_fallback�MemoryCredentialStore)r>r��fallbackr�s   �rr��KeyringCredentialStore.__init__\s-���
���/�0�����2�3I�J�D�N�rc��S[5;aSSKqS[5;aSSKJq gg![a	 [
qgf=f)aEnsure the keyring module is imported (postponing side effects).

The keyring module initializes the environment-dependent backend at
import time (nasty).  We want to avoid that initialization because it
may do things like prompt the user to unlock their password store
(e.g., KWallet).
�keyringr	N�NoKeyringError)r�)�globalsr��keyring.errorsr��ImportError�RuntimeErrorrrr�_ensure_keyring_imported�/KeyringCredentialStore._ensure_keyring_importedbs>���G�I�%���7�9�,�
.�9�-���
.�!-��
.�s�*�=�=c��UR5 UR5nUR[U5-n[RSX#R
S55 g![aUn[[:XaS[U5;aeUR(a URRX5 SnAgeSnAff=f)z2Store newly-authorized credentials in the keyring.�launchpadlibr8�$No recommended backend was availableN)r�rA�	B64MARKERrr��set_passwordrDr�r�r<r�r9)r>rHr�r@r�s     rr��KeyringCredentialStore.do_saveus����%�%�'� �*�*�,�
��^�^�i�
�&;�;�
�	�� � ��
�,=�,=�g�,F�
���	��,�.�:�#�a�&�H���~�~����#�#�K�<�<���	�s�%A � 
B?�*A
B:�9B:�:B?c�\�UR5 [RSU5nUb�[U[
5(aURS5nURUR5(a"[U[UR5S5n[R!U5nU$g![aUn[[:XaS[U5;aeUR(a URRU5sSnA$eSnAff=f![a gf=f!["a gf=f)z&Retrieve credentials from the keyring.r�r�N�utf8)r�r��get_passwordr�r�r<r�rEr;r=�
startswithr�r
r~�	TypeErrorrrIr�)r>r��credential_stringr�rHs     rr��KeyringCredentialStore.do_load�s���%�%�'�	� '� 4� 4��
�!���(��+�S�1�1�$5�$<�$<�V�$D�!� �+�+�D�N�N�;�;� �(1�)�#�d�n�n�*=�*?�@�)�%�
�)�5�5�6G�H��"�"���A�	��,�.�:�#�a�&�H���~�~��~�~�*�*�:�6�6���	��(!� � � ���
��	
�sH�B,�2!D�D�,
D�6A	D�?D�D�D�
D�D�
D+�*D+)r�)NF)
rlrmrnrorpr�r��staticmethodr�r�r�rvr�r�s@rr�r�Rs8�����I�K��.��.�$�2'�'rr�c�<^�\rSrSrSrSU4SjjrSrSrSrU=r	$)�UnencryptedFileCredentialStorei�z�Store credentials unencrypted in a file on disk.

This is a good solution for scripts that need to run without any
user interaction.
c�0>�[TU]U5 Xlgr�)r�r��filename)r>r�r�r�s   �rr��'UnencryptedFileCredentialStore.__init__�s���
���/�0� �
rc�:�URUR5 g)zSave the credentials to disk.N)�save_to_pathr��r>rHr�s   rr��&UnencryptedFileCredentialStore.do_save�s��� � ����/rc��[RRUR5(aT[R"UR5[R
S:Xd[RUR5$g)zLoad the credentials from disk.r	N)r�path�existsr��stat�ST_SIZEr�load_from_pathr�s  rr��&UnencryptedFileCredentialStore.do_load�sQ��
�G�G�N�N�4�=�=�)�)��G�G�D�M�M�*�4�<�<�8�A�=��-�-�d�m�m�<�<�r)r�r��
rlrmrnrorpr�r�r�rvr�r�s@rr�r��s����!�0��rr�c�<^�\rSrSrSrSU4SjjrSrSrSrU=r	$)r�i�z�CredentialStore that stores keys only in memory.

This can be used to provide a CredentialStore instance without
actually saving any key to persistent storage.
c�2>�[TU]U5 0Ulgr�)r�r��_credentials)r>r�r�s  �rr��MemoryCredentialStore.__init__�s���
���/�0���rc� �XRU'g)z!Store the credentials in our dictN�r�r�s   rr��MemoryCredentialStore.do_save�s��(3���*�%rc�8�URRU5$)z&Retrieve the credentials from our dict)r�rr�s  rr��MemoryCredentialStore.do_load�s��� � �$�$�Z�0�0rr�r�r�r�s@rr�r��s�����4�1�1rr�c�T�\rSrSrSrSrSSjr\S5rSr	Sr
S	rS
rSr
g)
ri�aThe superclass of all request token authorizers.

This base class does not implement request token authorization,
since that varies depending on how you want the end-user to
authorize a request token. You'll need to subclass this class and
implement `make_end_user_authorize_token`.
�UNAUTHORIZEDNc�<�[R"U5Ul[R"U5UlUcUc[S5eUbUb[SU<SU<S35eUcS/n[
U5nO
[U5nUnXPlX l	U=(d /Ul
g)a�Base class initialization.

:param service_root: The root of the Launchpad instance being
    used.

:param application_name: The name of the application that
    wants to use launchpadlib. This is used in conjunction
    with a desktop-wide integration.

    If you specify this argument, your values for
    consumer_name and allow_access_levels are ignored.

:param consumer_name: The OAuth consumer name, for an
    application that wants its own point of integration into
    Launchpad. In almost all cases, you want to specify
    application_name instead and do a desktop-wide
    integration. The exception is when you're integrating a
    third-party website into Launchpad.

:param allow_access_levels: A list of the Launchpad access
    levels to present to the user. ('READ_PUBLIC' and so on.)
    Your value for this argument will be ignored during a
    desktop-wide integration.
:type allow_access_levels: A list of strings.
Nz:You must provide either application_name or consumer_name.zOYou must provide only one of application_name and consumer_name. (You provided z and z.)�DESKTOP_INTEGRATION)r�lookup_service_root�service_root�web_root_for_service_rootrb�
ValueErrorrrrU�application_name�allow_access_levels)r>r�r��
consumer_namer�rUs      rr��(RequestTokenAuthorizationEngine.__init__�s���@!�4�4�\�B����6�6�|�D��
��#�
�(=��L��
��'�M�,E��$�]�4��
�� �$9�"9��)�*:�;�H� �
�.�H�,�� �
� 0��#6�#<�"�� rc�N�URRS-UR-$)z7Return a string identifying this consumer on this host.�@)rUrXr�)r>s rr��2RequestTokenAuthorizationEngine.unique_consumer_id0s$���}�}� � �3�&��):�):�:�:rc��[<SU<3nSn[UR5S:�a X#URUR5--
n[	UR
U5$)z�Return the authorization URL for a request token.

This is the URL the end-user must visit to authorize the
token. How exactly does this happen? That depends on the
subclass implementation.
rTz&allow_permission=r	)r`r~r��joinrrb)r>�
request_token�page�allow_permissions    r�authorization_url�1RequestTokenAuthorizationEngine.authorization_url5s`��';�M�J��/���t�'�'�(�1�,��'7�'<�'<��(�(�(��
�D��t�}�}�d�+�+rc��URU5nURX5 URcgURXR5 U$)a�Authorize a token and associate it with the given credentials.

If the credential store runs into a problem storing the
credential locally, the `credential_save_failed` callback will
be invoked. The callback will not be invoked if there's a
problem authorizing the credentials.

:param credentials: A `Credentials` object. If the end-user
    authorizes these credentials, this object will have its
    .access_token property set.

:param credential_store: A `CredentialStore` object. If the
    end-user authorizes the credentials, they will be
    persisted locally using this object.

:return: If the credentials are successfully authorized, the
    return value is the `Credentials` object originally passed
    in. Otherwise the return value is None.
N)rd�make_end_user_authorize_tokenrVr9r�)r>rH�credential_store�request_token_strings    r�__call__�(RequestTokenAuthorizationEngine.__call__DsL��( $�5�5�k�B���*�*�;�M��#�#�+�����k�+B�+B�C��rc�\�URUR[RS9nUS$)zLGet a new request token from the server.

:param return: The request token.
)rbrcrg)rdrbrrZ)r>rH�authorization_jsons   rrd�1RequestTokenAuthorizationEngine.get_request_tokenbs6��
)�:�:��]�]��1N�1N�;�
��"�-�0�0rc��[5e)a�Authorize the given request token using the given credentials.

Your subclass must implement this method: it has no default
implementation.

Because an access token may expire or be revoked in the middle
of a session, this method may be called at arbitrary points in
a launchpadlib session, or even multiple times during a single
session (with a different request token each time).

In most cases, however, this method will be called at the
beginning of a launchpadlib session, or not at all.
r�)r>rHr�s   rr��=RequestTokenAuthorizationEngine.make_end_user_authorize_tokenls
��"�#�#r)r�r�rUr�rb�NNN)rlrmrnrorp�UNAUTHORIZED_ACCESS_LEVELr��propertyr�r�r�rdr�rvrrrrr�sH���!/��
�� �>=�@�;��;�
,��<1�$rrc�>�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rg)�AuthorizeRequestTokenWithURLi}z�Authorize using a URL.

This authorizer simply shows the URL for the user to open for
authorization, and waits until the server responds.
z�Please open this authorization page:
 (%s)
in your browser. Use your browser to authorize
this program to access Launchpad on your behalf.z.Press Enter after authorizing in your browser.c��[U5 g)z�Display a message.

By default, prints the message to standard output. The message
does not require any user interaction--it's solely
informative.
N)�print)r>�messages  r�output�#AuthorizeRequestTokenWithURL.output�s��	�g�rc�@�URURU-5 g)�Notify the end-user of the URL.N)r�WAITING_FOR_USER)r>r�s  r�!notify_end_user_authorization_url�>AuthorizeRequestTokenWithURL.notify_end_user_authorization_url�s�����D�)�)�,=�=�>rc�b�URUR5 URSL$![aynURRS:Xa[UR5eURRS:wa[S5 [U5 [UR5eSnAff=f)z Check if the end-user authorizedi�i�z#Unexpected response from Launchpad:N)
rjrbrr/r+�EndUserDeclinedAuthorizationr0r�EndUserNoAuthorizationrV)r>rHr�s   r�check_end_user_authorization�9AuthorizeRequestTokenWithURL.check_end_user_authorization�s���
	8��?�?��
�
�N��'�'�t�3�3���	8��z�z� � �C�'�3�1�9�9�=�=��:�:�$�$��+��?�@��!�H�,�Q�Y�Y�7�7��	8�s�+�
B.�A4B)�)B.c��URUR5 [R"5 UR	U5 g)�"Wait for the end-user to authorizeN)r�WAITING_FOR_LAUNCHPADr�readliner)r>rHs  r�wait_for_end_user_authorization�<AuthorizeRequestTokenWithURL.wait_for_end_user_authorization�s,�����D�.�.�/�
�����)�)�+�6rc�j�URU5nURU5 URU5 g)z2Have the end-user authorize the token using a URL.N)r�r
r)r>rHr�r�s    rr��:AuthorizeRequestTokenWithURL.make_end_user_authorize_token�s0�� �2�2�=�A���.�.�/@�A��,�,�[�9rrN)
rlrmrnrorpr	rrr
rrr�rvrrrrr}s3���	;��M���?�4�$7�:rrc�\^�\rSrSrSrSrSrSrSrSr	SU4Sjjr
U4S	jrS
rSr
U=r$)
ri�a;Authorize using a URL that pops-up automatically in a browser.

This authorizer simply opens up the end-user's web browser to a
Launchpad URL and lets the end-user authorize the request token
themselves.

This is the same as its superclass, except this class also
performs the browser automatic opening of the URL.
z�The authorization page:
 (%s)
should be opening in your browser. Use your browser to authorize
this program to access Launchpad on your behalf.z/Press Enter to continue or wait (%d) seconds...�)zwww-browser�links�links2�lynx�elinkszelinks-lite�netrik�w3mz5Waiting to hear from Launchpad about your decision...c�(>�[TU]XSU5 g)aConstructor.

:param service_root: See `RequestTokenAuthorizationEngine`.
:param application_name: See `RequestTokenAuthorizationEngine`.
:param consumer_name: The value of this argument is
    ignored. If we have the capability to open the end-user's
    web browser, we must be running on the end-user's computer,
    so we should do a full desktop integration.
:param credential_save_failed: See `RequestTokenAuthorizationEngine`.
:param allow_access_levels: The value of this argument is
    ignored, for the same reason as consumer_name.
Nr�)r>r�r�r�r�r�r�s      �rr��)AuthorizeRequestTokenWithBrowser.__init__�s���.	����D�2H�	
rc��>�[TU]U5 [R"5n[	USS5nX0R
;nU(aeURURUR-5 [[///UR5un nU(a[R"5 Ub[R"U5 gg![Ra SnSnN�f=f)r�basenameNF)r�r
�
webbrowserr�getattr�TERMINAL_BROWSERS�Errorr�TIMEOUT_MESSAGE�TIMEOUTr
rr�open)r>r��browser_obj�browser�console_browser�rlist�_r�s       �rr
�BAuthorizeRequestTokenWithBrowser.notify_end_user_authorization_url�s����
��1�2C�D�	$�$�.�.�*�K��k�:�t�<�G�%�)?�)?�?�O�
��K�K��,�,�t�|�|�;�<�!�%��"�b�$�,�,�?�K�E�1�a����� ��"��O�O�-�.�#�����	$��K�#�O�	$�s�0C	�	C$�#C$c��URUR5 [R"5nURcu[R"[
5 UR
U5(ag[R"5U[-:�a[S[-5eURcMtgg![a NOf=f)rNzTimed out after %d seconds.)
rr�timerV�sleep�access_token_poll_timerr�access_token_poll_timeout�TokenAuthorizationTimedOut)r>rH�
start_times   rr�@AuthorizeRequestTokenWithBrowser.wait_for_end_user_authorizations������D�.�.�/��Y�Y�[�
��&�&�.��J�J�-�.�
��4�4�[�A�A��B��y�y�{�j�+D�D�D�0�1�4M�M����&�&�.��
*�
��
�s�B4�4
C�Crr�)rlrmrnrorpr	r)r*r'rr�r
rrvr�r�s@rrr�sQ����	;��H�O��G�	��	@���#� �

�6/�.�rrc��\rSrSrSrg)�TokenAuthorizationExceptionirN�rlrmrnrorvrrrr;r;���rr;c��\rSrSrSrg)�RequestTokenAlreadyAuthorizedi rNr<rrrr?r? r=rr?c��\rSrSrSrSrg)�EndUserAuthorizationFailedi$z?Superclass exception for all failures of end-user authorizationrN�rlrmrnrorprvrrrrArA$s��I�rrAc��\rSrSrSrSrg)r
i*zEnd-user declined authorizationrNrBrrrr
r
*s��)�rr
c��\rSrSrSrSrg)ri0z*End-user did not perform any authorizationrNrBrrrrr0s��4�rrc��\rSrSrSrSrg)r7i6z<End-user did not perform any authorization in timeout periodrNrBrrrr7r76s��F�rr7c��\rSrSrSrg)�ClientErrori<rNr<rrrrGrG<r=rrGc��\rSrSrSrg)�ServerErrori@rNr<rrrrIrI@r=rrIc��\rSrSrSrg)�NoLaunchpadAccountiDrNr<rrrrKrKDr=rrKc��\rSrSrSrg)�TooManyAuthenticationFailuresiHrNr<rrrrMrMHr=rrM)=rp�__all__�base64r
rr(�iorr\rr
r��sysrr3�urllib.parserrrr%�lazr.restfulclient.errorsr�"lazr.restfulclient.authorize.oauthr�_AccessTokenrrrr�rrYrir`r5r6�MemoryError�KeyboardInterrupt�
SystemExitr�r r1rrrr�r�r�rrrr�r;r?rAr
rr7rGrIrKrMrrr�<module>rYs���";�������	�����5�5��/����%��#��)����#���!2�J�?��
P��=�/�=�D)�,�)�@!�<�!�H$�H$�Vc�_�c�L�_��21�O�1�(U$�U$�p8:�#B�8:�va�'C�a�H	�)�	�	�$?�	�	�!<�	�	�#=�	�	�7�	�	�!7�	�	�-�	�	�-�	�	�4�	�	�$?�	r

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 393 B 0644
apps.cpython-313.pyc File 1.55 KB 0644
credentials.cpython-313.pyc File 32.89 KB 0644
errors.cpython-313.pyc File 276 B 0644
launchpad.cpython-313.pyc File 23.67 KB 0644
uris.cpython-313.pyc File 3.5 KB 0644
Filemanager