+
    i                         R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt  ^ RIHt  ! R R]P                  4      t	R	 t
 ! R
 R]P                  ]P                  ]P                  4      tR#   ] d    Rt LPi ; i)a  Google App Engine standard environment support.

This module provides authentication and signing for applications running on App
Engine in the standard environment using the `App Identity API`_.


.. _App Identity API:
    https://cloud.google.com/appengine/docs/python/appidentity/
)_helpers)credentials)crypt)
exceptions)app_identityNc                   x   a  ] tR t^'t o Rt]R 4       t]P                  ! ]	P                  4      R 4       tRtV tR# )SignerzSigns messages using the App Engine App Identity service.

This can be used in place of :class:`google.auth.crypt.Signer` when
running in the App Engine standard environment.
c                    R# )zOptional[str]: The key ID used to identify this private key.

.. warning::
   This is always ``None``. The key ID used by App Engine can not
   be reliably determined ahead of time.
N selfs   &i/Users/igloo/.openclaw/workspace/scratch/fb_ad_env/lib/python3.14/site-packages/google/auth/app_engine.pykey_idSigner.key_id.   s         c                b    \         P                  ! V4      p\        P                  ! V4      w  r#V# N)r   to_bytesr   	sign_blob)r   message_	signatures   &&  r   signSigner.sign8   s*    ##G,#--g6r   r
   N)__name__
__module____qualname____firstlineno____doc__propertyr   r   copy_docstringr   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r   '   sA        U\\* +r   r   c                 h    \         f   \        P                  ! R4      h\         P                  ! 4       # )zGets the project ID for the current App Engine application.

Returns:
    str: The project ID

Raises:
    google.auth.exceptions.OSError: If the App Engine APIs are unavailable.
&The App Engine APIs are not available.)r   r   OSErrorget_application_idr
   r   r   get_project_idr(   ?   s+       !IJJ**,,r   c                   
  a a ] tR t^Pt oRtRV 3R llt]P                  ! ]P                  4      R 4       t
]R 4       t]R 4       t]P                  ! ]P                  4      RR l4       t]P                  ! ]P                   4      R 4       t]P                  ! ]P$                  4      R 4       t]]P                  ! ]P$                  4      R	 4       4       t]]P                  ! ]P$                  4      R
 4       4       tRtVtV ;t# )Credentialsz}App Engine standard environment credentials.

These credentials use the App Engine App Identity API to obtain access
tokens.
c                   < \         f   \        P                  ! R4      h\        \        V `  4        Wn        W n        W0n        \        4       V n
        W@n        R# )aj  
Args:
    scopes (Sequence[str]): Scopes to request from the App Identity
        API.
    default_scopes (Sequence[str]): Default scopes passed by a
        Google client library. Use 'scopes' for user-defined scopes.
    service_account_id (str): The service account ID passed into
        :func:`google.appengine.api.app_identity.get_access_token`.
        If not specified, the default application service account
        ID will be used.
    quota_project_id (Optional[str]): The project ID used for quota
        and billing.

Raises:
    google.auth.exceptions.OSError: If the App Engine APIs are unavailable.
Nr%   )r   r   r&   superr*   __init___scopes_default_scopes_service_account_idr   _signer_quota_project_id)r   scopesdefault_scopesservice_account_idquota_project_id	__class__s   &&&&&r   r-   Credentials.__init__Y   sJ    4 $$%MNNk4)+-#5 x!1r   c                    V P                   e   V P                   MV P                  p\        P                  ! W P                  4      w  r4\
        P                  ! V4      pW5uV n        V n        R # r   )	r.   r/   r   get_access_tokenr0   r   utcfromtimestamptokenexpiry)r   requestr3   r<   ttlr=   s   &&    r   refreshCredentials.refresh}   sR    !%!9t?S?S!226;S;ST
**3/"'
DKr   c                j    V P                   f   \        P                  ! 4       V n         V P                   # )zThe service account email.)r0   r   get_service_account_namer   s   &r   service_account_email!Credentials.service_account_email   s-     ##+'3'L'L'ND$'''r   c                V    V P                   '       * ;'       d    V P                  '       * # )zpChecks if the credentials requires scopes.

Returns:
    bool: True if there are no scopes set otherwise False.
)r.   r/   r   s   &r   requires_scopesCredentials.requires_scopes   s"     <<<<(<(<$<<r   c                T    V P                  VVV P                  V P                  R 7      # ))r3   r4   r5   r6   )r7   r0   r6   )r   r3   r4   s   &&&r   with_scopesCredentials.with_scopes   s0    ~~)#77!22	  
 	
r   c                R    V P                  V P                  V P                  VR 7      # ))r3   r5   r6   )r7   r.   r0   )r   r6   s   &&r   with_quota_projectCredentials.with_quota_project   s+    ~~<<#77-  
 	
r   c                8    V P                   P                  V4      # r   )r1   r   )r   r   s   &&r   
sign_bytesCredentials.sign_bytes   s    ||  ))r   c                    V P                   # r   )rD   r   s   &r   signer_emailCredentials.signer_email   s     )))r   c                    V P                   # r   )r1   r   s   &r   signerCredentials.signer   s     ||r   )r/   r2   r.   r0   r1   r=   r<   )NNNNr   )r   r   r   r   r   r-   r   r    r   r*   r@   r   rD   rG   ScopedrJ   CredentialsWithQuotaProjectrM   SigningrP   rS   rV   r!   r"   __classcell__)r7   r#   s   @@r   r*   r*   P   s,    "2H [4450 60 ( ( = = [//0
 1
 [DDE
 F
 [001* 2* [001* 2 * [001 2  r   r*   )r   google.authr   r   r   r   google.appengine.apir   ImportErrorr   r(   rX   rZ   rY   r*   r
   r   r   <module>r_      sq    ! #  "1U\\ 0-"c++[-T-Tc]  Ls   A' '	A32A3