ó
    Ž(ph   ã                   óD   • S r SSKrSSKrSSKJr  SSKJr  SS jrSS jrg)zEHelper functions for loading data from a Google service account file.é    N)Úcrypt)Ú
exceptionsc                 óh  • [        Ub  UO/ 5      nUR                  U R                  5       5      nU(       a4  [        R                  " SR                  SR                  U5      5      5      eU(       a!  [        R                  R                  U 5      nU$ [        R                  R                  U 5      nU$ )aœ  Validates a dictionary containing Google service account data.

Creates and returns a :class:`google.auth.crypt.Signer` instance from the
private key specified in the data.

Args:
    data (Mapping[str, str]): The service account data
    require (Sequence[str]): List of keys required to be present in the
        info.
    use_rsa_signer (Optional[bool]): Whether to use RSA signer or EC signer.
        We use RSA signer by default.

Returns:
    google.auth.crypt.Signer: A signer created from the private key in the
        service account file.

Raises:
    MalformedError: if the data was in the wrong format, or if one of the
        required keys is missing.
zGService account info was not in the expected format, missing fields {}.z, )ÚsetÚ
differenceÚkeysr   ÚMalformedErrorÚformatÚjoinr   Ú	RSASignerÚfrom_service_account_infoÚES256Signer)ÚdataÚrequireÚuse_rsa_signerÚkeys_neededÚmissingÚsigners         ÚT/var/www/html/venv/lib/python3.13/site-packages/google/auth/_service_account_info.pyÚ	from_dictr      s–   € ô*  Ñ!4‘g¸"Ó=€Kà×$Ñ$ T§Y¡Y£[Ó1€GæÜ×'Ò'ðß™ §	¡	¨'Ó 2Ó3ó
ð 	
ö Ü—‘×:Ñ:¸4Ó@ˆð €Mô ×"Ñ"×<Ñ<¸TÓBˆà€Mó    c                 ó¨   • [         R                  " U SSS9 n[        R                  " U5      nU[	        XAUS94sSSS5        $ ! , (       d  f       g= f)aË  Reads a Google service account JSON file and returns its parsed info.

Args:
    filename (str): The path to the service account .json file.
    require (Sequence[str]): List of keys required to be present in the
        info.
    use_rsa_signer (Optional[bool]): Whether to use RSA signer or EC signer.
        We use RSA signer by default.

Returns:
    Tuple[ Mapping[str, str], google.auth.crypt.Signer ]: The verified
        info and a signer instance.
Úrzutf-8)Úencoding)r   r   N)ÚioÚopenÚjsonÚloadr   )Úfilenamer   r   Ú	json_filer   s        r   Úfrom_filenamer!   @   s?   € ô 
Š˜3¨Ò	1°YÜyŠy˜Ó#ˆØ”Y˜tÀ^ÑTÐT÷ 
2×	1×	1ús   —"AÁ
A)NT)Ú__doc__r   r   Úgoogle.authr   r   r   r!   © r   r   Ú<module>r%      s#   ðñ Lã 	Û å Ý "ô%õPUr   