Ë
    Ü_Ëiù  ã                  óò  — U d Z ddlmZ ddlZddlZddlmZmZmZ ddl	m
Z
 dZdZ	 ddlmZ 	 ddlmZ eräddlZddlmZmZ dZerjej<                  Zde d<   ejB                  ejB                  z   Z!de d<   ejD                  ejD                  fZ"de d<   ejF                  ejF                  fZ#de d<   nAej<                  ZejB                  Z!de d<   ejD                  fZ"de d<   ejF                  fZ#de d<   ej<                  Ze"Z$dd„Z%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z&y G d„ de'«      ZdZdZ!de d<   dd„Z%d„ Z&y# eef$ r+ZdZ eee«      r ej(                  ded	¬
«       Y dZ[�Œ6dZ[ww xY w# e$ r dZY �ŒAw xY w)zSupport for SSL in PyMongo.é    )ÚannotationsN)ÚAnyÚOptionalÚUnion©ÚConfigurationErrorTFz÷Failed to use the installed version of PyOpenSSL. Falling back to stdlib ssl, disabling OCSP support. This is likely caused by incompatible versions of PyOpenSSL < 23.2.0 and cryptography >= 42.0.0. Try updating PyOpenSSL >= 23.2.0 to enable OCSP.é   )Ú
stacklevel)Ú	CERT_NONEÚCERT_REQUIREDr   Ú
PYSSLErrorÚtupleÚBLOCKING_IO_ERRORSÚBLOCKING_IO_READ_ERRORÚBLOCKING_IO_WRITE_ERRORc                óR   — | rt         rt        j                  S t        j                  S )N)Ú
HAVE_PYSSLÚ_pysslÚHAS_SNIÚ_ssl©Úis_syncs    úV/var/www/pod-logistic/pod-api/venv/lib/python3.12/site-packages/pymongo/ssl_support.pyÚ_has_snir   N   s   € Ù•zÜ—>‘>Ð!Ü�|‰|Ðó    c                óD  — |rt         rt        }nt        }|rt        nt        }	|j                  |j                  «      }
|	t        k7  r	| |
_        nd|
_        t        |
d«      r| |
_	        t        |
d«      r||
xj                  |j                  z  c_
        |
xj                  |j                  z  c_
        |
xj                  |j                  z  c_
        |
xj                  |j                  z  c_
        | �	 |
j                  | d|«       |�:|j$                  rt#        d«      ‚t'        |dd«      |
_        |
j+                  |«       |�|
j+                  |«       n|	t        k7  r|
j-                  «        |	|
_        |
S # |j                   $ r}t#        d|› �«      d‚d}~ww xY w)	z'Create and return an SSLContext object.FÚcheck_ocsp_endpointÚoptionsNz'Private key doesn't match certificate: z(tlsCRLFile cannot be used with PyOpenSSLÚVERIFY_CRL_CHECK_LEAFr   )r   r   r   r   r   Ú
SSLContextÚPROTOCOL_SSLv23Úcheck_hostnameÚhasattrr   r   ÚOP_NO_SSLv2ÚOP_NO_SSLv3ÚOP_NO_COMPRESSIONÚOP_NO_RENEGOTIATIONÚload_cert_chainÚSSLErrorr   ÚIS_PYOPENSSLÚgetattrÚverify_flagsÚload_verify_locationsÚload_default_certsÚverify_mode)ÚcertfileÚ
passphraseÚca_certsÚcrlfileÚallow_invalid_certificatesÚallow_invalid_hostnamesÚdisable_ocsp_endpoint_checkr   Ússlr/   ÚctxÚexcs               r   Úget_ssl_contextr:   S   sx  € ñ •zÜ$*‰CäˆCÙ#=•iÄ=ˆØ�n‰n˜S×0Ñ0Ó1ˆØœ)Ò#Ø%<Ð!<ˆCÕà!&ˆCÔÜ�3Ð-Ô.Ø*EÐ&EˆCÔ#Ü�3˜	Ô"ð
 �KŠK˜3Ÿ?™?Ñ*�KØ�KŠK˜3Ÿ?™?Ñ*�KØ�KŠK˜3×0Ñ0Ñ0�KØ�KŠK˜3×2Ñ2Ñ2�KØÐðdØ×#Ñ# H¨d°JÔ?ð ÐØ×ÒÜ(Ð)SÓTÐTä& sÐ,CÀQÓGˆCÔØ×%Ñ% gÔ.ØÐØ×%Ñ% hÕ/ØœIÒ%Ø×"Ñ"Ô$Ø%ˆŒØˆ
øð —<‘<ò dÜ(Ð+RÐSVÐRWÐ)XÓYÐ_cÐcûðdús   Ã7E< Å<FÆFÆFc                  ó   — e Zd Zy)r)   N)Ú__name__Ú
__module__Ú__qualname__© r   r   r)   r)   ‡   s   „ Ør   r)   r?   c                 ó   — y)NFr?   r   s    r   r   r   �   s   € Ør   c                 ó   — t        d«      ‚)z(No ssl module, raise ConfigurationError.zThe ssl module is not availabler   )Údummys    r   r:   r:   �   s   € ä Ð!BÓCÐCr   )r   ÚboolÚreturnrC   )r0   úOptional[str]r1   rE   r2   rE   r3   rE   r4   rC   r5   rC   r6   rC   r   rC   rD   z)Union[_pyssl.SSLContext, _ssl.SSLContext])(Ú__doc__Ú
__future__r   ÚtypesÚwarningsÚtypingr   r   r   Úpymongo.errorsr   ÚHAVE_SSLr   Úpymongo.pyopenssl_contextÚpyopenssl_contextr   ÚImportErrorÚAttributeErrorr9   Ú
isinstanceÚwarnÚUserWarningÚpymongo.ssl_contextÚssl_contextr   r7   Ú
_stdlibsslr   r   ÚIPADDR_SAFEr)   r   Ú__annotations__r   r   r   ÚBLOCKING_IO_LOOKUP_ERRORr   r:   Ú	Exceptionr?   r   r   ú<module>r[      sô  ðò "Ý "ã Û ß 'Ñ 'å -à€Ø€
ð
Ý.ðÝ&ñ
 ó
 ß,à€KáØ Ÿ/™/ˆ
�CÓ)à×#Ñ# f×&?Ñ&?Ñ?ð 	˜Eó 	
ð ×)Ñ)Ø×'Ñ'ð)
Ð ó 	
ð
 ×*Ñ*Ø×(Ñ(ð*
Ð ô 	
ð
 —]‘]ˆ
Ø$(×$;Ñ$;Ð˜EÓ;Ø)-×)DÑ)DÐ(FÐ ÓFØ*.×*FÑ*FÐ)HÐ ÓHØ�}‰}€HØ5Ðóð
0Øð0à!ð0ð  ð0ð ð	0ð
 %)ð0ð "&ð0ð &*ð0ð ð0ð 
3ô0ôh�9ô ð €KØ "Ð˜Ó"óóDøðg 	�^Ð$ò 
Ø€JÙ�#�~Ô&Øˆ�‰ð?ð
 Øõ	
ÿùð
ûð ò ØƒHðús(   §D6 ®E+ Ä6E(Ä= E#Å#E(Å+E6Å5E6