Ë
    zñ�j˜I  ã                   ó

  — U d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	  e
ej                  «      ZdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Ze�r# ej8                   ej:                  d ej<                  «       «      «      dd Z ej>                  «       Z ej@                  «       Z ejB                  «       Z ejD                  «       Z ejF                  «       Z ejH                  «       Z ejJ                  «       Z ejL                  «       Z ejN                  «       Z ejP                  «       Z ejR                  «       Z ejT                  «       Z ejV                  «       Z ejX                  «       Z ejZ                  «       Z.e/e0d<    ejb                  «       Z2e/e0d<    ejf                  «       Z4e/e0d	<    ejj                  «       Z6e/e0d
<    ejn                  «       Z8e/e0d<    ejr                  «       Z:e/e0d<    ejv                  «       Z<e/e0d<    ejz                  «       Z>e/e0d<    ej~                  «       Z@e/e0d<    ej8                   ej:                  d ej‚                  «       «      «      dd ZBeCe0d<    ejˆ                  «       ZEe/e0d<    ejŒ                  «       ZGe/e0d<    ej�                  «       ZIe/e0d<    ej”                  «       ZKe/e0d<    ej˜                  «       ZMe/e0d<    ejœ                  «       ZOe/e0d<    ej                   «       ZQe/e0d<    ej¤                  «       ZSe/e0d<    ej¨                  «       ZUe/e0d<    ej¬                  «       ZWe/e0d<    ej8                   ej:                  d ej°                  «       «      «      dd ZYeCe0d<    ej´                  «       Z[e/e0d<    ej¸                  «       Z]e/e0d<    ej¼                  «       Z_e/e0d<    ejÀ                  «       Zae/e0d<    ejÄ                  «       Zce/e0d <    ejÈ                  «       Zee/e0d!<    ejÌ                  «       Zge/e0d"<    ejÐ                  «       Zie/e0d#<    ejÔ                  «       Zke/e0d$<    ejØ                  «       Zme/e0d%<   eZneZoeZpeZqeZreZsd&Ztd'Zud(Zvd)Zwewfd*e/d+e/d,e/d-e/d.df
d/„Zxd0e/d1e/d.ee/e/e/f   fd2„Zyd3ewfd4eCd5eCd*e/d+e/d,e/d6e/d-e/d.eCfd7„Zzeneofd4eCd0e/d1e/d.eCfd8„Z{d9eCd4eCd.e
fd:„Z|d0e/d1e/d;e/d.dfd<„Z}d=e/d4eCd5eCd0e/d1e/d;e/d.eCfd>„Z~d4eCd0e/d1e/d;e/d.eCf
d?„Zd9eCd4eCd.e
fd@„Z€e€Z�y)Aé    N)ÚTuple)ÚffiÚlib)Úensureó    úchar *Úcrypto_pwhash_ALG_ARGON2I13Úcrypto_pwhash_ALG_ARGON2ID13Úcrypto_pwhash_ALG_DEFAULTÚcrypto_pwhash_SALTBYTESÚcrypto_pwhash_STRBYTESÚcrypto_pwhash_PASSWD_MINÚcrypto_pwhash_PASSWD_MAXÚcrypto_pwhash_BYTES_MINÚcrypto_pwhash_BYTES_MAXÚcrypto_pwhash_argon2i_STRPREFIXÚ"crypto_pwhash_argon2i_MEMLIMIT_MINÚ"crypto_pwhash_argon2i_MEMLIMIT_MAXÚ"crypto_pwhash_argon2i_OPSLIMIT_MINÚ"crypto_pwhash_argon2i_OPSLIMIT_MAXÚ*crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVEÚ*crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVEÚ'crypto_pwhash_argon2i_OPSLIMIT_MODERATEÚ'crypto_pwhash_argon2i_MEMLIMIT_MODERATEÚ(crypto_pwhash_argon2i_OPSLIMIT_SENSITIVEÚ(crypto_pwhash_argon2i_MEMLIMIT_SENSITIVEÚ crypto_pwhash_argon2id_STRPREFIXÚ#crypto_pwhash_argon2id_MEMLIMIT_MINÚ#crypto_pwhash_argon2id_MEMLIMIT_MAXÚ#crypto_pwhash_argon2id_OPSLIMIT_MINÚ#crypto_pwhash_argon2id_OPSLIMIT_MAXÚ+crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVEÚ+crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVEÚ(crypto_pwhash_argon2id_OPSLIMIT_MODERATEÚ(crypto_pwhash_argon2id_MEMLIMIT_MODERATEÚ)crypto_pwhash_argon2id_OPSLIMIT_SENSITIVEÚ)crypto_pwhash_argon2id_MEMLIMIT_SENSITIVEéÿÿÿ?é?   l   ÿÿÿÿ i   ÚnÚrÚpÚmaxmemÚreturnc                 ó4  — t        |dk7  dt        j                  ¬«       t        |dk7  dt        j                  ¬«       t        | | dz
  z  dk(  dt        j                  ¬«       t        | dkD  dt        j                  ¬«       t        |t        |z  k  dj	                  t        «      t        j                  ¬«       t        | dd	|z  z  k  t        j                  ¬«       |d
z  |z  }t
        d
z  }t        | dz   ||z  k  t        j                  ¬«       d|z  | dz   z  dz  }t        |t
        |z
  k  t        j                  ¬«       t        |t        j                  |z
  k  t        j                  ¬«       t        ||z   |k  dt        j                  ¬«       y )Nr   zInvalid block size©ÚraisingzInvalid parallelization factoré   z Cost factor must be a power of 2zCost factor must be at least 2zp*r is greater than {}é   é€   é   é    é   z6Memory limit would be exceeded with the chosen n, r, p)r   ÚexcÚ
ValueErrorÚSCRYPT_PR_MAXÚformatÚ
UINT64_MAXÚsysÚmaxsize)r*   r+   r,   r-   ÚBlenÚiÚVlens          ú\/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/nacl/bindings/crypto_pwhash.pyÚ_check_memory_occupationrC   ¿   sH  € ô ˆ1�‰6Ð'´·±Õ@ä
ˆ1�‰6Ð3¼S¿^¹^ÕLä
Ø	
ˆa�!‰e‰˜ÑØ*Ü—‘õô ˆ1ˆq‰5Ð2¼C¿N¹NÕKä
Ø	Œ]˜QÑÑØ ×'Ñ'¬Ó6Ü—‘õô ˆ1��b˜1‘f‘Ñ¬¯©Õ7àˆs‰7�Q‰;€Dä�SÑ€Aä
ˆ1ˆq‰5�A˜‘E‰>¤3§>¡>Õ2à�‰6�Q˜‘UÑ˜aÑ€Dä
ˆ4”: Ñ$Ñ$¬c¯n©nÕ=ä
ˆ4”3—;‘; Ñ%Ñ%¬s¯~©~Õ>ä
Øˆt‰�vÑØ@Ü—‘ör   ÚopslimitÚmemlimitc                 óú   — | dk  rd} d}| |dz  k  r)d}| d|z  z  }t        dd«      D ]  }d|z  |dz  kD  sŒ n? n=||dz  z  }t        dd«      D ]  }d|z  |dz  kD  sŒ n | dz  dz  z  }|d	kD  rd	}||z  }||fS )
z/Python implementation of libsodium's pickparamsi €  é   r6   r2   r7   r)   r5   r4   r(   )Úrange)rD   rE   r+   r,   ÚmaxnÚn_log2Úmaxrps          rB   Ú nacl_bindings_pick_scrypt_paramsrL   é   sË   € ð
 �%ÒØˆà	€Aà�8˜r‘>Ò"ØˆØ˜A ™EÑ"ˆÜ˜A˜r“lò 	ˆFØ�6‘	˜d a™iÓ(Ùñ	ð ˜A ™GÑ$ˆÜ˜A˜r“lò 	ˆFØ�6‘	˜T Q™YÓ&Ùð	ð ˜Q‘ A v¡IÑ.ˆà�:ÒØˆEà�Q‰Jˆà�1�aˆ<Ðr   é@   ÚpasswdÚsaltÚdklenc                 ó¶  — t        t        dt        j                  ¬«       t        t	        |t
        «      t        ¬«       t        t	        |t
        «      t        ¬«       t        t	        |t
        «      t        ¬«       t        t	        | t        «      t        ¬«       t        t	        |t        «      t        ¬«       t        ||||«       t        j                  d|«      }t        j                  | t        | «      |t        |«      |||||«	      }t        |dk(  dt        j                  ¬«       t        j                  t        j                   d|«      |«      dd S )aš  
    Derive a cryptographic key using the ``passwd`` and ``salt``
    given as input.

    The work factor can be tuned by by picking different
    values for the parameters

    :param bytes passwd:
    :param bytes salt:
    :param bytes salt: *must* be *exactly* :py:const:`.SALTBYTES` long
    :param int dklen:
    :param int opslimit:
    :param int n:
    :param int r: block size,
    :param int p: the parallelism factor
    :param int maxmem: the maximum available memory available for scrypt's
                       operations
    :rtype: bytes
    :raises nacl.exceptions.UnavailableError: If called when using a
        minimal build of libsodium.
    úNot available in minimal buildr0   z	uint8_t[]r   ú$Unexpected failure in key derivationr   N)r   Ú&has_crypto_pwhash_scryptsalsa208sha256r8   ÚUnavailableErrorÚ
isinstanceÚintÚ	TypeErrorÚbytesrC   r   Únewr   Ú%crypto_pwhash_scryptsalsa208sha256_llÚlenÚRuntimeErrorÚbufferÚcast)	rN   rO   r*   r+   r,   rP   r-   ÚbufÚrets	            rB   r[   r[   	  sû   € ô< Ü.Ø(Ü×$Ñ$õô Œ:�aœÓ¤yÕ1Ü
Œ:�aœÓ¤yÕ1Ü
Œ:�aœÓ¤yÕ1ä
Œ:�fœeÓ$¬iÕ8Ü
Œ:�dœEÓ"¬IÕ6ä˜Q  1 fÔ-ä
�'‰'�+˜uÓ
%€Cä
×
3Ñ
3Ø”�F“˜T¤3 t£9¨a°°A°s¸Eó€Cô Øˆq‰Ø.Ü× Ñ õô �:‰:”c—h‘h˜x¨Ó-¨uÓ5±aÐ8Ð8r   c                 ó"  — t        t        dt        j                  ¬«       t	        j
                  dt        «      }t        j                  || t        | «      ||«      }t        |dk(  dt        j                  ¬«       t	        j                  |«      S )a„  
    Derive a cryptographic key using the ``passwd`` and ``salt``
    given as input, returning a string representation which includes
    the salt and the tuning parameters.

    The returned string can be directly stored as a password hash.

    See :py:func:`.crypto_pwhash_scryptsalsa208sha256` for a short
    discussion about ``opslimit`` and ``memlimit`` values.

    :param bytes passwd:
    :param int opslimit:
    :param int memlimit:
    :return: serialized key hash, including salt and tuning parameters
    :rtype: bytes
    :raises nacl.exceptions.UnavailableError: If called when using a
        minimal build of libsodium.
    rR   r0   úchar[]r   z&Unexpected failure in password hashing)r   rT   r8   rU   r   rZ   ÚSCRYPT_STRBYTESr   Ú&crypto_pwhash_scryptsalsa208sha256_strr\   r]   Ústring)rN   rD   rE   r`   ra   s        rB   re   re   E  sy   € ô. Ü.Ø(Ü×$Ñ$õô �'‰'�(œOÓ
,€Cä
×
4Ñ
4ØˆV”S˜“[ (¨Hó€Cô Øˆq‰Ø0Ü× Ñ õô �:‰:�c‹?Ðr   Úpasswd_hashc                 ó   — t        t        dt        j                  ¬«       t        t	        | «      t
        dz
  k(  dt        j                  ¬«       t        j                  | |t	        |«      «      }t        |dk(  dt        j                  ¬«       y)a9  
    Verifies the ``passwd`` against the ``passwd_hash`` that was generated.
    Returns True or False depending on the success

    :param passwd_hash: bytes
    :param passwd: bytes
    :rtype: boolean
    :raises nacl.exceptions.UnavailableError: If called when using a
        minimal build of libsodium.
    rR   r0   r2   zInvalid password hashr   úWrong passwordT)
r   rT   r8   rU   r\   rd   r9   r   Ú-crypto_pwhash_scryptsalsa208sha256_str_verifyÚInvalidkeyError©rg   rN   ra   s      rB   rj   rj   q  sz   € ô Ü.Ø(Ü×$Ñ$õô ÜˆKÓœO¨aÑ/Ñ/ØÜ—‘õô ×
;Ñ
;Ø�VœS ›[ó€Cô ˆ3�!‰8Ð%¬s×/BÑ/BÕCàr   Úalgc                 ód  — |t         k(  rÅ|t        k  r(t        j                  dj	                  t        «      «      ‚|t
        kD  r(t        j                  dj	                  t
        «      «      ‚| t        k  r(t        j                  dj	                  t        «      «      ‚| t        kD  r(t        j                  dj	                  t        «      «      ‚y |t        k(  rÅ|t        k  r(t        j                  dj	                  t        «      «      ‚|t        kD  r(t        j                  dj	                  t        «      «      ‚| t        k  r(t        j                  dj	                  t        «      «      ‚| t        kD  r(t        j                  dj	                  t        «      «      ‚y t        j                  d«      ‚)Nz"memlimit must be at least {} bytesz!memlimit must be at most {} byteszopslimit must be at least {}zopslimit must be at most {}zUnsupported algorithm)r	   r   r8   r9   r;   r   r   r   r
   r   r   r    r!   rX   )rD   rE   rm   s      rB   Ú_check_argon2_limits_algro   ’  s–  € Ø
Ô)Ò)ØÔ8Ò8Ü—.‘.Ø4×;Ñ;Ü6óóð ð
 Ô:Ò:Ü—.‘.Ø3×:Ñ:Ü6óóð ð
 Ô8Ò8Ü—.‘.Ø.×5Ñ5Ü6óóð ð
 Ô:Ò:Ü—.‘.Ø-×4Ñ4Ü6óóð ð ;ð 
Ô,Ò	,ØÔ9Ò9Ü—.‘.Ø4×;Ñ;Ü7óóð ð
 Ô;Ò;Ü—.‘.Ø3×:Ñ:Ü7óóð ð
 Ô9Ò9Ü—.‘.Ø.×5Ñ5Ü7óóð ð
 Ô;Ò;Ü—.‘.Ø-×4Ñ4Ü7óóð ð <ô �m‰mÐ3Ó4Ð4r   Úoutlenc           
      óÔ  — t        t        | t        «      t        j                  ¬«       t        t        |t        «      t        j                  ¬«       t        t        |t        «      t        j                  ¬«       t        t        |t        «      t        j                  ¬«       t        t        |t
        «      t        j                  ¬«       t        |«      t        k7  r(t        j                  dj                  t        «      «      ‚| t        k  r(t        j                  dj                  t        «      «      ‚| t        kD  r(t        j                  dj                  t        «      «      ‚t        |||«       t        j                  d| «      }t        j                   || |t        |«      ||||«      }t        |dk(  dt        j"                  ¬«       t        j$                  || «      dd S )	a  
    Derive a raw cryptographic key using the ``passwd`` and the ``salt``
    given as input to the ``alg`` algorithm.

    :param outlen: the length of the derived key
    :type outlen: int
    :param passwd: The input password
    :type passwd: bytes
    :param salt:
    :type salt: bytes
    :param opslimit: computational cost
    :type opslimit: int
    :param memlimit: memory cost
    :type memlimit: int
    :param alg: algorithm identifier
    :type alg: int
    :return: derived key
    :rtype: bytes
    r0   z"salt must be exactly {} bytes longz*derived key must be at least {} bytes longz)derived key must be at most {} bytes longzunsigned char[]r   rS   N)r   rV   rW   r8   rX   rY   r\   r   r9   r;   r   r   ro   r   rZ   r   Úcrypto_pwhashr]   r^   )rp   rN   rO   rD   rE   rm   Úoutbufra   s           rB   Úcrypto_pwhash_algrt   Ê  so  € ô6 Œ:�fœcÓ"¬C¯M©MÕ:Ü
Œ:�h¤Ó$¬c¯m©mÕ<Ü
Œ:�h¤Ó$¬c¯m©mÕ<Ü
Œ:�cœ3Ó¬¯©Õ7Ü
Œ:�fœeÓ$¬c¯m©mÕ<ä
ˆ4ƒyÔ+Ò+Ü�n‰nØ0×7Ñ7Ü'óó
ð 	
ð Ô'Ò'Ü�n‰nØ8×?Ñ?Ü'óó
ð 	
ð 
Ô)Ò	)Ü�n‰nØ7×>Ñ>Ü'óó
ð 	
ô ˜X x°Ô5ä�W‰WÐ&¨Ó/€Fä
×
Ñ
Ø�˜¤ F£¨T°8¸XÀsó€Cô Øˆq‰Ø.Ü× Ñ õô �:‰:�f˜fÓ%¡aÐ(Ð(r   c                 ó°  — t        t        |t        «      t        ¬«       t        t        |t        «      t        ¬«       t        t        | t        «      t        ¬«       t        |||«       t        j                  dd«      }t        j                  || t        | «      |||«      }t        |dk(  dt        j                  ¬«       t        j                  |«      S )a  
    Derive a cryptographic key using the ``passwd`` given as input
    and a random salt, returning a string representation which
    includes the salt, the tuning parameters and the used algorithm.

    :param passwd: The input password
    :type passwd: bytes
    :param opslimit: computational cost
    :type opslimit: int
    :param memlimit: memory cost
    :type memlimit: int
    :param alg: The algorithm to use
    :type alg: int
    :return: serialized derived key and parameters
    :rtype: bytes
    r0   rc   r4   r   rS   )r   rV   rW   rX   rY   ro   r   rZ   r   Úcrypto_pwhash_str_algr\   r8   r]   rf   )rN   rD   rE   rm   rs   ra   s         rB   rv   rv     s¢   € ô, Œ:�h¤Ó$¬iÕ8Ü
Œ:�h¤Ó$¬iÕ8Ü
Œ:�fœeÓ$¬iÕ8ä˜X x°Ô5ä�W‰W�X˜sÓ#€Fä
×
#Ñ
#Ø�œ˜F› X¨x¸ó€Cô Øˆq‰Ø.Ü× Ñ õô �:‰:�fÓÐr   c                 óN  — t        t        | t        «      t        ¬«       t        t        |t        «      t        ¬«       t        t	        | «      dk  dt
        j                  ¬«       t        j                  | |t	        |«      «      }t        |dk(  dt
        j                  ¬«       y)a4  
    Verifies the ``passwd`` against a given password hash.

    Returns True on success, raises InvalidkeyError on failure
    :param passwd_hash: saved password hash
    :type passwd_hash: bytes
    :param passwd: password to be checked
    :type passwd: bytes
    :return: success
    :rtype: boolean
    r0   é   z#Hash must be at most 127 bytes longr   ri   T)
r   rV   rY   rX   r\   r8   r9   r   Úcrypto_pwhash_str_verifyrk   rl   s      rB   ry   ry   <  sy   € ô Œ:�k¤5Ó)´9Õ=Ü
Œ:�fœeÓ$¬iÕ8Ü
ÜˆKÓ˜CÑØ-Ü—‘õô ×
&Ñ
& {°F¼CÀ»KÓ
H€Cä
ˆ3�!‰8Ð%¬s×/BÑ/BÕCàr   )‚r=   Útypingr   Únacl.exceptionsÚ
exceptionsr8   Únacl._sodiumr   r   r   ÚboolÚ-PYNACL_HAS_CRYPTO_PWHASH_SCRYPTSALSA208SHA256rT   Ú,crypto_pwhash_scryptsalsa208sha256_STRPREFIXÚ,crypto_pwhash_scryptsalsa208sha256_SALTBYTESÚ+crypto_pwhash_scryptsalsa208sha256_STRBYTESÚ-crypto_pwhash_scryptsalsa208sha256_PASSWD_MINÚ-crypto_pwhash_scryptsalsa208sha256_PASSWD_MAXÚ,crypto_pwhash_scryptsalsa208sha256_BYTES_MINÚ,crypto_pwhash_scryptsalsa208sha256_BYTES_MAXÚ/crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MINÚ/crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAXÚ/crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MINÚ/crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAXÚ7crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVEÚ7crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVEÚ5crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVEÚ5crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVErf   r_   Ú,crypto_pwhash_scryptsalsa208sha256_strprefixÚ,crypto_pwhash_scryptsalsa208sha256_saltbytesÚ+crypto_pwhash_scryptsalsa208sha256_strbytesÚ-crypto_pwhash_scryptsalsa208sha256_passwd_minÚ-crypto_pwhash_scryptsalsa208sha256_passwd_maxÚ,crypto_pwhash_scryptsalsa208sha256_bytes_minÚ,crypto_pwhash_scryptsalsa208sha256_bytes_maxÚ/crypto_pwhash_scryptsalsa208sha256_memlimit_minÚ/crypto_pwhash_scryptsalsa208sha256_memlimit_maxÚ/crypto_pwhash_scryptsalsa208sha256_opslimit_minÚ/crypto_pwhash_scryptsalsa208sha256_opslimit_maxÚ7crypto_pwhash_scryptsalsa208sha256_opslimit_interactiveÚ7crypto_pwhash_scryptsalsa208sha256_memlimit_interactiveÚ5crypto_pwhash_scryptsalsa208sha256_opslimit_sensitiveÚ5crypto_pwhash_scryptsalsa208sha256_memlimit_sensitiveÚcrypto_pwhash_alg_argon2i13r	   rW   Ú__annotations__Úcrypto_pwhash_alg_argon2id13r
   Úcrypto_pwhash_alg_defaultr   Úcrypto_pwhash_saltbytesr   Úcrypto_pwhash_strbytesr   Úcrypto_pwhash_passwd_minr   Úcrypto_pwhash_passwd_maxr   Úcrypto_pwhash_bytes_minr   Úcrypto_pwhash_bytes_maxr   Úcrypto_pwhash_argon2i_strprefixr   rY   Ú"crypto_pwhash_argon2i_memlimit_minr   Ú"crypto_pwhash_argon2i_memlimit_maxr   Ú"crypto_pwhash_argon2i_opslimit_minr   Ú"crypto_pwhash_argon2i_opslimit_maxr   Ú*crypto_pwhash_argon2i_opslimit_interactiver   Ú*crypto_pwhash_argon2i_memlimit_interactiver   Ú'crypto_pwhash_argon2i_opslimit_moderater   Ú'crypto_pwhash_argon2i_memlimit_moderater   Ú(crypto_pwhash_argon2i_opslimit_sensitiver   Ú(crypto_pwhash_argon2i_memlimit_sensitiver   Ú crypto_pwhash_argon2id_strprefixr   Ú#crypto_pwhash_argon2id_memlimit_minr   Ú#crypto_pwhash_argon2id_memlimit_maxr   Ú#crypto_pwhash_argon2id_opslimit_minr    Ú#crypto_pwhash_argon2id_opslimit_maxr!   Ú+crypto_pwhash_argon2id_opslimit_interactiver"   Ú+crypto_pwhash_argon2id_memlimit_interactiver#   Ú(crypto_pwhash_argon2id_opslimit_moderater$   Ú(crypto_pwhash_argon2id_memlimit_moderater%   Ú)crypto_pwhash_argon2id_opslimit_sensitiver&   Ú)crypto_pwhash_argon2id_memlimit_sensitiver'   ÚSCRYPT_OPSLIMIT_INTERACTIVEÚSCRYPT_MEMLIMIT_INTERACTIVEÚSCRYPT_OPSLIMIT_SENSITIVEÚSCRYPT_MEMLIMIT_SENSITIVEÚSCRYPT_SALTBYTESrd   r:   ÚLOG2_UINT64_MAXr<   ÚSCRYPT_MAX_MEMrC   rL   r[   re   rj   ro   rt   rv   ry   Ú crypto_pwhash_argon2i_str_verify© r   rB   ú<module>rÇ      su  ðô Ý å ß !Ý "ñ *.Ø×5Ñ5ó*Ð &ð 03Ð ,Ø/0Ð ,Ø./Ð +Ø01Ð -Ø01Ð -Ø/0Ð ,Ø/0Ð ,Ø23Ð /Ø23Ð /Ø23Ð /Ø23Ð /Ø:;Ð 7Ø:;Ð 7Ø89Ð 5Ø89Ð 5â)Ø3=°3·:±:Øˆ�‰�ÐK˜3×KÑKÓMÓNó4áð4	Ð0ð 	9ˆ×8Ñ8Ó:ð 1ð 	8ˆ×7Ñ7Ó9ð 0ð 	:ˆ×9Ñ9Ó;ð 2ð 	:ˆ×9Ñ9Ó;ð 2ð 	9ˆ×8Ñ8Ó:ð 1ð 	9ˆ×8Ñ8Ó:ð 1ð 	<ˆ×;Ñ;Ó=ð 4ð 	<ˆ×;Ñ;Ó=ð 4ð 	<ˆ×;Ñ;Ó=ð 4ð 	<ˆ×;Ñ;Ó=ð 4ð 	Dˆ×CÑCÓEð <ð 	Dˆ×CÑCÓEð <ð 	Bˆ×AÑAÓCð :ð 	Bˆ×AÑAÓCð :ð $C 3×#BÑ#BÓ#DÐ ˜SÓ DØ$D C×$DÑ$DÓ$FÐ ˜cÓ FØ!> ×!>Ñ!>Ó!@Ð ˜3Ó @à:˜s×:Ñ:Ó<Ð ˜Ó <Ø8˜c×8Ñ8Ó:Ð ˜Ó :à < × <Ñ <Ó >Ð ˜#Ó >Ø < × <Ñ <Ó >Ð ˜#Ó >Ø:˜s×:Ñ:Ó<Ð ˜Ó <Ø:˜s×:Ñ:Ó<Ð ˜Ó <à)3¨¯©Ø€C‡H�HˆXÐ:�s×:Ñ:Ó<Ó=ó*áð*Ð  ó ð +€C×*Ñ*Ó,ð # Có ð +€C×*Ñ*Ó,ð # Có ð +€C×*Ñ*Ó,ð # Có ð +€C×*Ñ*Ó,ð # Có ð 3€C×2Ñ2Ó4ð +¨Có ð 3€C×2Ñ2Ó4ð +¨Có ð 0€C×/Ñ/Ó1ð (¨ó ð 0€C×/Ñ/Ó1ð (¨ó ð 1€C×0Ñ0Ó2ð )¨#ó ð 1€C×0Ñ0Ó2ð )¨#ó ð +5¨#¯*©*Ø€C‡H�HˆXÐ;�s×;Ñ;Ó=Ó>ó+áð+Ð   %ó ð ,€C×+Ñ+Ó-ð $ Só ð ,€C×+Ñ+Ó-ð $ Só ð ,€C×+Ñ+Ó-ð $ Só ð ,€C×+Ñ+Ó-ð $ Só ð 4€C×3Ñ3Ó5ð ,¨Só ð 4€C×3Ñ3Ó5ð ,¨Só ð 1€C×0Ñ0Ó2ð )¨#ó ð 1€C×0Ñ0Ó2ð )¨#ó ð 2€C×1Ñ1Ó3ð *¨3ó ð 2€C×1Ñ1Ó3ð *¨3ó ð
 <ð ð <ð ð :ð ð :ð ð @Ð Ø=€à€Ø€Ø€
Ø#€ð +9ñ'Ø
ð'Øð'Øð'Ø$'ð'à	ó'ðTØðØ ðà
ˆ3��Sˆ=ÑóðL Ø ñ99Øð99à
ð99ð ð99ð ð	99ð
 ð99ð ð99ð ð99ð ó99ð| 0Ø/ñ)Øð)àð)ð ð)ð ó	)ðXØðØ %ðà	óðB55 sð 55°cð 55Àð 55Èó 55ðpD)ØðD)àðD)ð ðD)ð ð	D)ð
 ðD)ð 
ðD)ð óD)ðN(Øð(àð(ð ð(ð 
ð	(ð
 ó(ðV¨%ð ¸ð À4ó ð6 $<Ñ  r   