+
    ïHÐjÂ8  ã                  ó<  € ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHtHt ^ RI	H	t	H
t
Ht ^ RIHtHt ^RIHt ^RIHtHtHtHtHtHtHtHtHt ^R	IHt ]'       d   ^R
IHtHt ^RIH t   ! R R4      t!]!! 4       t"]"PF                  t#]"PH                  t$]"PJ                  t%R# )é    )ÚannotationsN)Útimegm)ÚIterableÚSequence)ÚdatetimeÚ	timedeltaÚtimezone)ÚTYPE_CHECKINGÚAny)Úapi_jws)	ÚDecodeErrorÚExpiredSignatureErrorÚImmatureSignatureErrorÚInvalidAudienceErrorÚInvalidIssuedAtErrorÚInvalidIssuerErrorÚInvalidJTIErrorÚInvalidSubjectErrorÚMissingRequiredClaimError)ÚRemovedInPyjwt3Warning)ÚAllowedPrivateKeysÚAllowedPublicKeys)ÚPyJWKc                  ó  € ] tR t^tR%R R llt]R R l4       tR&R R lltR'R R	 lltR(R
 R llt	R R lt
R(R R lltR)R R lltR R ltR%R R lltR R ltR R ltR R ltR R ltRR/R  R! lltR" R# ltR$tR# )*ÚPyJWTNc               ó    € V ^8„  d   QhRRRR/# )é   Úoptionsúdict[str, Any] | NoneÚreturnÚNone© )Úformats   "Ú-/usr/lib/python3/dist-packages/jwt/api_jwt.pyÚ__annotate__ÚPyJWT.__annotate__   s   € ÷ Rñ RÐ 5ð RÀñ Ró    c                	óD   € Vf   / p/ V P                  4       CVCV n        R # ©N)Ú_get_default_optionsr   )Úselfr   s   &&r$   Ú__init__ÚPyJWT.__init__   s&   € ØŠ?ØˆGØ'Q¨$×*CÑ*CÓ*EÐ'QÈÐ'QˆŽr'   c               ó   € V ^8„  d   QhRR/# )r   r    zdict[str, bool | list[str]]r"   )r#   s   "r$   r%   r&   $   s   € ÷ 
ñ 
Ð"=ñ 
r'   c                 	ó*   € R RRRRRRRRRRRRRRRR	. /	# )
Úverify_signatureTÚ
verify_expÚ
verify_nbfÚ
verify_iatÚ
verify_audÚ
verify_issÚ
verify_subÚ
verify_jtiÚrequirer"   r"   r'   r$   r*   ÚPyJWT._get_default_options#   s;   € ð  Ø˜$Ø˜$Ø˜$Ø˜$Ø˜$Ø˜$Ø˜$Ø�rð

ð 
	
r'   c               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# )r   Úpayloadúdict[str, Any]Úkeyz(AllowedPrivateKeys | PyJWK | str | bytesÚ	algorithmú
str | NoneÚheadersr   Újson_encoderútype[json.JSONEncoder] | NoneÚsort_headersÚboolr    Ústrr"   )r#   s   "r$   r%   r&   1   sP   € ÷ $
ñ $
àð$
ð 6ð$
ð ð	$
ð
 'ð$
ð 4ð$
ð ð$
ð 
ñ$
r'   c           	     	óf  € \        V\        4      '       g   \        R 4      hVP                  4       pR FK  p\        VP	                  V4      \
        4      '       g   K*  \        W,          P                  4       4      W&   KM  	  V P                  VVVR7      p\        P                  ! VVVVVVR7      # )zGExpecting a dict object, as JWT only supports JSON objects as payloads.)r@   rA   )rC   )ÚexpÚiatÚnbf)Ú
isinstanceÚdictÚ	TypeErrorÚcopyÚgetr   r   ÚutctimetupleÚ_encode_payloadr   Úencode)	r+   r;   r=   r>   r@   rA   rC   Ú
time_claimÚjson_payloads	   &&&&&&&  r$   rQ   ÚPyJWT.encode1   s®   € ô ˜'¤4×(Ò(Üð,óð ð —,‘,“.ˆÛ/ˆJä˜'Ÿ+™+ jÓ1´8×<Ô<Ü&,¨WÕ-@×-MÑ-MÓ-OÓ&P�Ó#ñ 0ð
 ×+Ñ+ØØØ%ð ,ó 
ˆô �~Š~ØØØØØØ%ô
ð 	
r'   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r;   r<   r@   r   rA   rB   r    Úbytesr"   )r#   s   "r$   r%   r&   W   s2   € ÷ ñ àðð 'ðð 4ð	ð
 
ñr'   c                óR   € \         P                  ! VRVR7      P                  R4      # )zº
Encode a given payload to the bytes to be signed.

This method is intended to be overridden by subclasses that need to
encode the payload in a different way, e.g. compress the payload.
)Ú
separatorsÚclszutf-8)Ú,Ú:)ÚjsonÚdumpsrQ   )r+   r;   r@   rA   s   &&&&r$   rP   ÚPyJWT._encode_payloadW   s)   € ô �zŠzØØ!Øô
÷ ‰&�‹/ð		r'   c               óH   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRR/# )r   Újwtústr | bytesr=   ú'AllowedPublicKeys | PyJWK | str | bytesÚ
algorithmsúSequence[str] | Noner   r   Úverifyúbool | NoneÚdetached_payloadúbytes | NoneÚaudienceústr | Iterable[str] | NoneÚissuerústr | Sequence[str] | NoneÚsubjectr?   Úleewayúfloat | timedeltaÚkwargsr   r    r<   r"   )r#   s   "r$   r%   r&   i   s�   € ÷ Hñ HàðHð 5ðHð )ð	Hð
 'ðHð ðHð 'ðHð -ðHð +ðHð ðHð "ðHð" ð#Hð$ 
ñ%Hr'   c           	     	óö  € V'       d8   \         P                  ! R \        VP                  4       4       2\        ^R7       \        T;'       g    / 4      pVP                  RR4       Ve+   WTR,          8w  d   \         P                  ! R\        ^R7       VR,          '       g   VP                  RR4       VP                  RR4       VP                  R	R4       VP                  R
R4       VP                  RR4       VP                  RR4       VP                  RR4       \        P                  ! VVVVVR7      pV P                  V4      p/ V P                  CVCpV P                  VVVVV
V	R7       WÜR&   V# )zypassing additional kwargs to decode_complete() is deprecated and will be removed in pyjwt version 3. Unsupported kwargs: ©Ú
stacklevelr0   TzàThe `verify` argument to `decode` does nothing in PyJWT 2.0 and newer. The equivalent is setting `verify_signature` to False in the `options` dictionary. This invocation has a mismatch between the kwarg and the option entry.)Úcategoryrs   r1   Fr2   r3   r4   r5   r6   r7   )r=   rc   r   rg   )ri   rk   rn   rm   r;   )ÚwarningsÚwarnÚtupleÚkeysr   rK   Ú
setdefaultÚDeprecationWarningr   Údecode_completeÚ_decode_payloadr   Ú_validate_claims)r+   r`   r=   rc   r   re   rg   ri   rk   rm   rn   rp   Údecodedr;   Úmerged_optionss   &&&&&&&&&&&,   r$   r{   ÚPyJWT.decode_completei   s|  € ÷& Ü�MŠMð'ä',¨V¯[©[«]Ó';Ð&<ð>ô 'Øõô �w—}�} "Ó%ˆØ×ÑÐ-¨tÔ4ð
 Ò &Ð4FÕ,GÔ"GÜ�MŠMðYô ,Øõð Ð)×*Ô*Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3Ø×Ñ˜|¨UÔ3ä×)Ò)ØØØ!ØØ-ô
ˆð ×&Ñ& wÓ/ˆà4˜DŸL™LÐ4¨GÐ4ˆØ×ÑØØØØØØð 	ô 	
ð %�	ÑØˆr'   c               ó    € V ^8„  d   QhRRRR/# )r   r~   r<   r    r   r"   )r#   s   "r$   r%   r&   ³   s   € ÷ ñ  ~ð ¸#ñ r'   c                óÔ   €  \         P                  ! VR,          4      p\        T\        4      '       g   \	        R4      hT#   \        \        3 d   p\	        RT 24      ThRp?ii ; i)zÙ
Decode the payload from a JWS dictionary (payload, signature, header).

This method is intended to be overridden by subclasses that need to
decode the payload in a different way, e.g. decompress compressed
payloads.
r;   zInvalid payload string: Nz-Invalid payload string: must be a json object)r\   ÚloadsÚ
ValueErrorÚRecursionErrorr   rJ   rK   )r+   r~   r;   Úes   &&  r$   r|   ÚPyJWT._decode_payload³   si   € ð	EÜ—j’j ¨Õ!3Ó4ˆGô ˜'¤4×(Ò(ÜÐMÓNÐNØˆøô	 œNÐ+ô 	EÜÐ 8¸¸Ð<Ó=À1ÐDûð	Eús   ‚A ÁA'ÁA"Á"A'c               óH   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRR/# )r   r`   ra   r=   rb   rc   rd   r   r   re   rf   rg   rh   ri   rj   rm   r?   rk   rl   rn   ro   rp   r   r    r"   )r#   s   "r$   r%   r&   Ã   s‚   € ÷ '"ñ '"àð'"ð 5ð'"ð )ð	'"ð
 'ð'"ð ð'"ð 'ð'"ð -ð'"ð ð'"ð +ð'"ð "ð'"ð" ð#'"ð$ 
ñ%'"r'   c                	óÈ   € V'       d8   \         P                  ! R \        VP                  4       4       2\        ^R7       V P                  VVVVVVVVV	V
R7
      pVR,          # )zppassing additional kwargs to decode() is deprecated and will be removed in pyjwt version 3. Unsupported kwargs: rr   )re   rg   ri   rm   rk   rn   r;   )ru   rv   rw   rx   r   r{   )r+   r`   r=   rc   r   re   rg   ri   rm   rk   rn   rp   r~   s   &&&&&&&&&&&, r$   ÚdecodeÚPyJWT.decodeÃ   sx   € ÷& Ü�MŠMð'ä',¨V¯[©[«]Ó';Ð&<ð>ô 'Øõð ×&Ñ&ØØØØØØ-ØØØØð 'ó 
ˆð �yÕ!Ð!r'   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   r;   r<   r   rm   r?   rn   ro   r    r!   r"   )r#   s   "r$   r%   r&   ì   s<   € ÷ ((ñ ((àð((ð  ð((ð ð((ð "ð((ð 
ñ((r'   c                	óH  € \        V\        4      '       d   VP                  4       pVe(   \        V\        \        34      '       g   \        R4      hV P                  W4       \        P                  ! \        P                  R7      P                  4       pRV9   d"   VR,          '       d   V P                  WV4       RV9   d"   VR,          '       d   V P                  WV4       RV9   d"   VR,          '       d   V P                  WV4       VR	,          '       d   V P                  W4       VR
,          '       d$   V P!                  WVP#                  RR4      R7       VR,          '       d   V P%                  W4       VR,          '       d   V P'                  V4       R # R # )Nz+audience must be a string, iterable or None)ÚtzrH   r3   rI   r2   rG   r1   r5   r4   Ú
strict_audF)Ústrictr6   r7   )rJ   r   Útotal_secondsrE   r   rL   Ú_validate_required_claimsr   Únowr	   ÚutcÚ	timestampÚ_validate_iatÚ_validate_nbfÚ_validate_expÚ_validate_issÚ_validate_audrN   Ú_validate_subÚ_validate_jti)r+   r;   r   ri   rk   rm   rn   r“   s   &&&&&&& r$   r}   ÚPyJWT._validate_claimsì   sP  € ô �fœi×(Ò(Ø×)Ñ)Ó+ˆFàÒ¬
°8¼cÄ8¸_×(MÒ(MÜÐIÓJÐJà×&Ñ& wÔ8ä�lŠlœhŸl™lÔ+×5Ñ5Ó7ˆà�GÔ ¨× 5Ô 5Ø×Ñ˜w¨VÔ4à�GÔ ¨× 5Ô 5Ø×Ñ˜w¨VÔ4à�GÔ ¨× 5Ô 5Ø×Ñ˜w¨VÔ4à�<× Ô Ø×Ñ˜wÔ/à�<× Ô Ø×ÑØ¨'¯+©+°lÀEÓ*Jð ô ð �<× Ô Ø×Ñ˜wÔ0à�<× Ô Ø×Ñ˜wÖ'ñ !r'   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r;   r<   r   r    r!   r"   )r#   s   "r$   r%   r&     s(   € ÷ 7ñ 7àð7ð  ð7ð 
ñ	7r'   c                	ób   € VR ,           F!  pVP                  V4      e   K  \        V4      h	  R# )r8   N)rN   r   )r+   r;   r   Úclaims   &&& r$   r’   ÚPyJWT._validate_required_claims  s0   € ð
 ˜Y×'Ð'ˆEØ�{‰{˜5Ó!Ô)Ü/°Ó6Ð6ó (r'   c               ó    € V ^8„  d   QhRRRR/# ©r   r;   r<   r    r!   r"   )r#   s   "r$   r%   r&     s   € ÷ =ñ = ^ð =Àdñ =r'   c                ó¶   € RV9  d   R# \        VR,          \        4      '       g   \        R4      hVe$   VP                  R4      V8w  d   \        R4      hR# R# )zÀ
Checks whether "sub" if in the payload is valid ot not.
This is an Optional claim

:param payload(dict): The payload which needs to be validated
:param subject(str): The subject of the token
ÚsubNzSubject must be a stringzInvalid subject)rJ   rE   r   rN   )r+   r;   rm   s   &&&r$   r›   ÚPyJWT._validate_sub  sY   € ð ˜ÔÙä˜' %�.¬#×.Ò.Ü%Ð&@ÓAÐAàÒØ�{‰{˜5Ó! WÔ,Ü)Ð*;Ó<Ð<ñ -ñ r'   c               ó    € V ^8„  d   QhRRRR/# r£   r"   )r#   s   "r$   r%   r&   2  s   € ÷ =ñ = ^ð =¸ñ =r'   c                óx   € RV9  d   R# \        VP                  R4      \        4      '       g   \        R4      hR# )z‘
Checks whether "jti" if in the payload is valid ot not
This is an Optional claim

:param payload(dict): The payload which needs to be validated
ÚjtiNzJWT ID must be a string)rJ   rN   rE   r   )r+   r;   s   &&r$   rœ   ÚPyJWT._validate_jti2  s6   € ð ˜ÔÙä˜'Ÿ+™+ eÓ,¬c×2Ò2Ü!Ð";Ó<Ð<ñ 3r'   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r   r;   r<   r“   Úfloatrn   r    r!   r"   )r#   s   "r$   r%   r&   @  s8   € ÷ Mñ MàðMð ðMð ð	Mð
 
ñMr'   c                	ó’   €  \        VR ,          4      pYBT,           8”  d   \        R4      hR#   \         d    \        R4      Rhi ; i)rH   z)Issued At claim (iat) must be an integer.Nz The token is not yet valid (iat))Úintr„   r   r   )r+   r;   r“   rn   rH   s   &&&& r$   r–   ÚPyJWT._validate_iat@  sV   € ð	Ü�g˜e•nÓ%ˆCð
 ˜•,ÔÜ(Ð)KÓLÐLñ  øô	 ô 	Ü&Ø;óàðð	úó	   ‚. ®Ac               ó(   € V ^8„  d   QhRRRRRRRR/# r¬   r"   )r#   s   "r$   r%   r&   O  s8   € ÷ Mñ MàðMð ðMð ð	Mð
 
ñMr'   c                	ó’   €  \        VR ,          4      pYBT,           8”  d   \        R4      hR#   \         d    \        R4      Rhi ; i)rI   z*Not Before claim (nbf) must be an integer.Nz The token is not yet valid (nbf))r¯   r„   r   r   )r+   r;   r“   rn   rI   s   &&&& r$   r—   ÚPyJWT._validate_nbfO  sU   € ð	VÜ�g˜e•nÓ%ˆCð ˜•,ÔÜ(Ð)KÓLÐLñ  øô ô 	VÜÐJÓKÐQUÐUð	Vúr±   c               ó(   € V ^8„  d   QhRRRRRRRR/# r¬   r"   )r#   s   "r$   r%   r&   ]  s8   € ÷ Añ AàðAð ðAð ð	Að
 
ñAr'   c                	ó’   €  \        VR ,          4      pYBT,
          8:  d   \        R4      hR#   \         d    \        R4      Rhi ; i)rG   z/Expiration Time claim (exp) must be an integer.NzSignature has expired)r¯   r„   r   r   )r+   r;   r“   rn   rG   s   &&&& r$   r˜   ÚPyJWT._validate_exp]  sV   € ð	Ü�g˜e•nÓ%ˆCð ˜•<Ô Ü'Ð(?Ó@Ð@ñ !øô ô 	ÜØAóàðð	úr±   r�   Fc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r;   r<   ri   rj   r�   rD   r    r!   r"   )r#   s   "r$   r%   r&   m  s8   € ÷ 0Añ 0Aàð0Að -ð0Að
 ð0Að 
ñ0Ar'   c               	ó,  a€ Vf$   RV9  g   VR,          '       g   R # \        R4      hRV9  g   VR,          '       g   \        R4      hVR,          oV'       dW   \        V\        4      '       g   \        R4      h\        S\        4      '       g   \        R4      hVS8w  d   \        R4      hR # \        S\        4      '       d   S.o\        S\        4      '       g   \        R4      h\
        ;QJ d    R S 4       F  '       g   K   RM	  R	M! R S 4       4      '       d   \        R4      h\        V\        4      '       d   V.p\        ;QJ d    V3R
 lV 4       F  '       d   K   R	M	  RM! V3R
 lV 4       4      '       d   \        R4      hR # )NÚaudzInvalid audiencezInvalid audience (strict)z&Invalid claim format in token (strict)zAudience doesn't match (strict)zInvalid claim format in tokenc              3  óL   "  € T F  p\        V\        4      '       * x € K  	  R # 5ir)   )rJ   rE   )Ú.0Úcs   & r$   Ú	<genexpr>Ú&PyJWT._validate_aud.<locals>.<genexpr>–  s   é € Ð?©¨!”:˜a¤Ó%×%Ñ%«ùs   ‚"$TFc              3  ó,   <"  € T F	  qS9  x € K  	  R # 5ir)   r"   )r¼   rº   Úaudience_claimss   & €r$   r¾   r¿   œ  s   øé € Ð>±X¨c˜/Ö)³Xùs   ƒzAudience doesn't match)r   r   rJ   rE   ÚlistÚanyÚall)r+   r;   ri   r�   rÁ   s   &&&$@r$   rš   ÚPyJWT._validate_audm  sC  ø€ ð ÒØ˜GÔ#¨7°5¯>¬>Ùô 'Ð'9Ó:Ð:à˜Ô w¨u§~¤~ô ,¨EÓ2Ð2à! %�.ˆ÷ ä˜h¬×,Ò,Ü*Ð+FÓGÐGô ˜o¬s×3Ò3Ü*Ð+SÓTÐTà˜?Ô*Ü*Ð+LÓMÐMáä�o¤s×+Ò+Ø.Ð/ˆOÜ˜/¬4×0Ò0Ü&Ð'FÓGÐGß‹3Ñ?©Ó?�3�3Š3Ñ?©Ó?×?Ò?Ü&Ð'FÓGÐGä�h¤×$Ò$Ø �zˆHç‹3Ô>±XÓ>�3�3Š3Ô>±XÓ>×>Ò>Ü&Ð'?Ó@Ð@ñ ?r'   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r;   r<   rk   r   r    r!   r"   )r#   s   "r$   r%   r&   Ÿ  s!   € ÷ ;ñ ; ^ð ;¸Sð ;ÀTñ ;r'   c                	óÊ   € Vf   R # RV9  d   \        R4      h\        V\        4      '       d   VR,          V8w  d   \        R4      hR # VR,          V9  d   \        R4      hR # )NÚisszInvalid issuer)r   rJ   rE   r   )r+   r;   rk   s   &&&r$   r™   ÚPyJWT._validate_issŸ  sf   € ØŠ>Ùà˜ÔÜ+¨EÓ2Ð2ä�fœc×"Ò"Ø�u�~ Ô'Ü(Ð)9Ó:Ð:ñ (ð �u�~ VÔ+Ü(Ð)9Ó:Ð:ñ ,r'   )r   r)   )NNNT)NN)	Ú NNNNNNNr   )NNNr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r,   Ústaticmethodr*   rQ   rP   r{   r|   rŠ   r}   r’   r›   rœ   r–   r—   r˜   rš   r™   Ú__static_attributes__r"   r'   r$   r   r      s|   † ÷Rð
 ô
ó ð
÷$
÷L÷$HõT÷ '"÷R((õT7÷=õ&=õMõMõAð 0Að
 ÷0A÷d;ñ ;r'   r   )&Ú
__future__r   r\   ru   Úcalendarr   Úcollections.abcr   r   r   r   r	   Útypingr
   r   rÊ   r   Ú
exceptionsr   r   r   r   r   r   r   r   r   r   rc   r   r   Úapi_jwkr   r   Ú_jwt_global_objrQ   r{   rŠ   r"   r'   r$   Ú<module>rØ      st   ðÝ "ã Û Ý ß .ß 2Ñ 2ß %å ÷
÷ 
õ 
õ -çßAÝ÷N;ñ N;ñb “'€Ø	×	Ñ	€Ø!×1Ñ1€Ø	×	Ñ	‚r'   