Ë
    [üàgÝ  ã                   óH   — d dl Zd dlZddgZ G d„ de«      Z G d„ de«      Zy)é    NÚJwtÚJwtDecodeErrorc                   ó   — e Zd Zy)r   N)Ú__name__Ú
__module__Ú__qualname__© ó    úQ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/twilio/jwt/__init__.pyr   r      s   „ Ør
   c                   ó’   — e Zd ZdZ e«       ZdZddeddfd„Zd„ Zd„ Z	e
dd„«       Zed	„ «       Zed
„ «       Zdd„Ze
dd„«       Zd„ Zy)r   z(Base class for building a Json Web TokenÚHS256Ni  c                 ó¬   — || _         	 || _        	 || _        	 |xs | j                  | _        	 || _        	 || _        	 || _        	 d | _        d | _	        y ©N)
Ú
secret_keyÚissuerÚsubjectÚ	ALGORITHMÚ	algorithmÚnbfÚttlÚvalid_untilÚ_Jwt__decoded_payloadÚ_Jwt__decoded_headers)Úselfr   r   r   r   r   r   r   s           r   Ú__init__zJwt.__init__   sd   € ð %ˆŒØ:ØˆŒØ/ØˆŒØQØ"Ò4 d§n¡nˆŒØRØˆŒØdØˆŒØOØ&ˆÔØcà!%ˆÔØ!%ˆÕr
   c                 ó   — t        d«      ‚)z+:rtype: dict the payload of the JWT to sendz Subclass must provide a payload.)ÚNotImplementedError©r   s    r   Ú_generate_payloadzJwt._generate_payload.   s   € ä!Ð"DÓEÐEr
   c                 ó   — i S )zP:rtype dict: Additional headers to include in the JWT, defaults to an empty dictr	   r   s    r   Ú_generate_headerszJwt._generate_headers2   s   € àˆ	r
   c                 óä   — t        ||j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      |j                  dd«      ¬«      }||_        ||_        |S )zë
        Class specific implementation of from_jwt which should take jwt components and return
        and instance of this Class with jwt information loaded.
        :return: Jwt object containing the headers, payload and key
        ÚissNÚsubÚalgÚexpr   )r   r   r   r   r   r   )r   Úgetr   r   )ÚclsÚheadersÚpayloadÚkeyÚjwts        r   Ú	_from_jwtzJwt._from_jwt6   sn   € ô ØØ—;‘;˜u dÓ+Ø—K‘K  tÓ,Ø—k‘k %¨Ó.ØŸ™ E¨4Ó0Ø—‘˜E 4Ó(ô
ˆð !(ˆÔØ 'ˆÔØˆ
r
   c                 ó   — | j                   r| j                   S | j                  «       j                  «       }| j                  |d<   t	        t        j
                  «       «      | j                  z   |d<   | j                  �I| j                  | j                  k(  r!t	        t        j
                  «       «      |d<   n| j                  |d<   | j                  r| j                  |d<   | j                  r| j                  |d<   |S )Nr#   r&   r   r$   )r   r   Úcopyr   ÚintÚtimer   r   ÚGENERATEr   r   )r   r*   s     r   r*   zJwt.payloadI   sÄ   € à×!Ò!Ø×)Ñ)Ð)à×(Ñ(Ó*×/Ñ/Ó1ˆØŸ™ˆ�‰ÜœTŸY™Y›[Ó)¨D¯H©HÑ4ˆ�‰Ø�8‰8ÐØ�x‰x˜4Ÿ=™=Ò(Ü!$¤T§Y¡Y£[Ó!1�˜’à!%§¡�˜‘Ø×ÒØ!×-Ñ-ˆG�E‰NØ�<Š<Ø!Ÿ\™\ˆG�E‰Nàˆr
   c                 óš   — | j                   r| j                   S | j                  «       j                  «       }d|d<   | j                  |d<   |S )NÚJWTÚtypr%   )r   r!   r/   r   )r   r)   s     r   r)   zJwt.headers]   sI   € à×!Ò!Ø×)Ñ)Ð)à×(Ñ(Ó*×/Ñ/Ó1ˆØˆ�‰ØŸ™ˆ�‰Øˆr
   c                 ó<  — | j                   st        d«      ‚| j                  j                  «       }| j                  j                  «       }|r#t        t        j                  «       «      |z   |d<   t        j                  || j                   | j                  |¬«      S )z¤
        Encode this JWT object into a JWT string
        :param int ttl: override the ttl configured in the constructor
        :rtype: str The JWT string
        z+JWT does not have a signing key configured.r&   )r   r)   )
r   Ú
ValueErrorr)   r/   r*   r0   r1   Újwt_libÚencoder   )r   r   r)   r*   s       r   Úto_jwtz
Jwt.to_jwtg   sy   € ð �ŠÜÐJÓKÐKà—,‘,×#Ñ#Ó%ˆà—,‘,×#Ñ#Ó%ˆÙÜ ¤§¡£Ó-°Ñ3ˆG�E‰Nä�~‰~Ø�T—_‘_°·±Èô
ð 	
r
   c           
      óˆ  — |rdnd}	 t        j                  |«      }|j                  d«      }|| j                  k7  rt	        d|› d| j                  › d�«      ‚t        j
                  ||| j                  g|dddœ¬«      }| j                  |||«      S # t        $ r$}t        t        |d	t        |«      «      «      ‚d
}~ww xY w)av  
        Decode a JWT string into a Jwt object
        :param str jwt: JWT string
        :param Optional[str] key: key used to verify JWT signature, if not provided then validation
                                  is skipped.
        :raises JwtDecodeError if decoding JWT fails for any reason.
        :return: A DecodedJwt object containing the jwt information.
        TFr%   zIncorrect decoding algorithm z, expecting ú.)Úverify_signatureÚ
verify_expÚ
verify_nbf)Ú
algorithmsÚoptionsÚmessageN)r8   Úget_unverified_headerr'   r   r7   ÚdecodeÚ	Exceptionr   ÚgetattrÚstrr-   )r(   r,   r+   Úverifyr)   r%   r*   Úes           r   Úfrom_jwtzJwt.from_jwt{   sÔ   € ñ ‘ %ˆð	@Ü×3Ñ3°CÓ8ˆGà—+‘+˜eÓ$ˆCØ�c—m‘mÒ#Ü Ø3°C°5ð 9!Ø!$§¡ ¨qð2óð ô
 —n‘nØØØŸM™M˜?à(.Ø"&Ø"&ñô		ˆGð �}‰}˜W g¨sÓ3Ð3øô ò 	@Ü ¤¨¨I´s¸1³vÓ!>Ó?Ð?ûð	@ús   ˆA9B Â	CÂB<Â<Cc                 ó@   — dj                  | j                  «       «      S )Nz<JWT {}>)Úformatr:   r   s    r   Ú__str__zJwt.__str__    s   € Ø× Ñ  §¡£Ó/Ð/r
   r   )Ú )r   r   r   Ú__doc__Úobjectr2   r   r   r   r!   Úclassmethodr-   Úpropertyr*   r)   r:   rJ   rM   r	   r
   r   r   r      s�   „ Ù2á‹x€HØ€Ið ØØØØó&ò8Fòð òó ðð$ ñó ðð& ñó ðó
ð( ò"4ó ð"4óH0r
   )r,   r8   r1   Ú__all__rE   r   rP   r   r	   r
   r   ú<module>rT      s2   ðÛ Û ð Ð"Ð
#€ô	�Yô 	ôU0ˆ&õ U0r
   