__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

�M�g#p��>�SrSSKJrJrJrJr SSKrSSKJr SSK	J
r
 SSKJ
r
Jr SSKr\R""\5rSSKJr SSKrSSKJr SS	KJrJrJrJr SS
KJrJrJ r  SSK!J"r" /SQr#\$"S
SSSSS9r%Sr&Sr'S)Sjr(\)\*4r+\,\-4r.\,"5r/S*Sjr0"SS\15r2\$"SSSSS9r3"SS\25r4S+S jr5S!r6"S"S#\
5r7\7"5r8S$Rs5Hr:\8Rw\:S%\:-5 M "S&S'\25r<S+S(jr=g!\a	 SSKJ
r
 N�f=f),z*passlib.pwd -- password generation helpers�)�absolute_import�division�print_function�unicode_literalsN)�defaultdict)�MutableMapping)�ceil�log)�	resources)�exc)�PY2�irange�
itervalues�	int_types)�rng�
getrandstr�
to_unicode)�memoized_property)�genword�default_charsets�	genphrase�default_wordsets���$�0�<)�unsafe�weak�fair�strong�securec�X�[U5RnX"RU5S-S$)z2return remaining classes in object's MRO after cls�N)�type�__mro__�index)�obj�cls�mros   �-/usr/lib/python3/dist-packages/passlib/pwd.py�
_superclassesr,8s*��
�s�)�
�
�C��y�y��~�a�� �!�!�c�.�[U5n[[5nUHnX#==S-
ss'M UcUR	5n[U5nO[
U5nU(dg[US5[SU55U--
$![a SnN�f=f)a�
returns 'rate of self-information' --
i.e. average (per-symbol) entropy of the sequence **source**,
where probability of a given symbol occurring is calculated based on
the number of occurrences within the sequence itself.

if all elements of the source are unique, this should equal ``log(len(source), 2)``.

:arg source:
    iterable containing 0+ symbols
    (e.g. list of strings or ints, string of characters, etc).

:returns:
    float bits of entropy
Nr$r�c3�># �UHo[US5-v� M g7f)r/N)�logf)�.0�values  r+�	<genexpr>�"_self_info_rate.<locals>.<genexpr>_s���J�6�%�t�E�1�~�5�6�s�)�len�	TypeErrorr�int�values�sumrr1)�source�size�counts�charr9s     r+�_self_info_rater?>s��� ��6�{����
�F����������|�������6�{���F�#������a�=�3�J�6�J�J�T�Q�Q�Q�������s�B�B�Bc�v�U(a%[R"U5"[U55$[RRU5(a[
US5$URS5up#nU(d[SU<35e[R"U5RU5R
S5$)z�
:param asset_path:
    string containing absolute path to file,
    or package-relative path using format
    ``"python.module:relative/file/path"``.

:returns:
    filehandle opened in 'rb' mode
    (unless encoding explicitly specified)
�rb�:zIasset path must be absolute file path or use 'pkg.name:sub/path' format: )�codecs�	getreader�_open_asset_path�os�path�isabs�open�	partition�
ValueErrorr�files�joinpath)rG�encoding�package�sep�subpaths     r+rErEjs��������)�*:�4�*@�A�A�	�w�w�}�}�T����D�$��� �N�N�3�/��G�'���DH�K�L�	L��?�?�7�#�,�,�W�5�:�:�4�@�@r-c�R�[nSnX;ag[U[5(d![	[U55[	U5:XaU(aUR
U5 gg[5n[5nUHnXd;aUOUR
U5 M [U5nSn[	U5U:�aSnSRSUSU55n[	U5U:�aUS[	U5U-
--
n[S	U<S
U<35e![a SnGNf=f![a gf=f)z�
helper for generators --
Throws ValueError if source elements aren't unique.
Error message will display (abbreviated) repr of the duplicates in a string/list
TF���, c3�J# �UHn[[U55v� M g7f�N)�repr�str�r2�words  r+r4�!_ensure_unique.<locals>.<genexpr>�s���B�\�T��c�$�i���\�s�!#Nz, ... plus %d others�`z%` cannot contain duplicate elements: )
�_ensure_unique_cacher7�
isinstance�
_set_typesr6�set�add�sorted�joinrK)	r;�param�cache�hashable�seen�dups�elem�trunc�dup_reprs	         r+�_ensure_uniquerm�s/��
!�E��H���?����&�*�%�%��S��[�)9�S��[�)H��
��	�	�&�!�
��5�D��5�D������4�,�,�T�2���$�<�D�
�E�
�4�y�5�����y�y�B�T�&�5�\�B�B�H�
�4�y�5���*�c�$�i�%�.?�@�@����X�'�(�(��9�������
���	
�s#�D�D�D�D�
D&�%D&c�^�\rSrSrSrSrSr\rSrS
U4Sjjr	\
S5r\
S5rSr
SS	jrS
r\(a	SrSrU=r$SrU=r$)�SequenceGenerator�a�
Base class used by word & phrase generators.

These objects take a series of options, corresponding
to those of the :func:`generate` function.
They act as callables which can be used to generate a password
or a list of 1+ passwords. They also expose some read-only
informational attributes.

Parameters
----------
:param entropy:
    Optionally specify the amount of entropy the resulting passwords
    should contain (as measured with respect to the generator itself).
    This will be used to auto-calculate the required password size.

:param length:
    Optionally specify the length of password to generate,
    measured as count of whatever symbols the subclass uses (characters or words).
    Note if ``entropy`` requires a larger minimum length,
    that will be used instead.

:param rng:
    Optionally provide a custom RNG source to use.
    Should be an instance of :class:`random.Random`,
    defaults to :class:`random.SystemRandom`.

Attributes
----------
.. autoattribute:: length
.. autoattribute:: symbol_count
.. autoattribute:: entropy_per_symbol
.. autoattribute:: entropy

Subclassing
-----------
Subclasses must implement the ``.__next__()`` method,
and set ``.symbol_count`` before calling base ``__init__`` method.
Nr!c�>�URcS5eUcUc_UcURn[RX5nUS::a[	S5e[[
XR-55nUbX%:aUnXlUS:a[	S5eX lUbX0l	U(aD[U[5[4:Xa+[SSRUR55-5e[ [U]F"S0UD6 g)	Nzsubclass must set .symbol_countrz!`entropy` must be positive numberr$z!`length` must be positive integerzUnexpected keyword(s): %srU�)�symbol_count�requested_entropy�entropy_aliases�getrKr8r	�entropy_per_symbol�lengthrr,ro�objectr7rd�keys�super�__init__)�self�entropyrxr�kwds�
min_length�	__class__s      �r+r|�SequenceGenerator.__init__�s����� � �,�O�.O�O�,���&�.����0�0��%�)�)�'�;�G��!�|� �!D�E�E��T�'�,C�,C�"C�D�E�J��~��!4�#��!(���A�:��@�A�A����?��H��M�$�(9�:�v�i�G��7�$�)�)�D�I�I�K�:P�P�Q�Q�
���/�7�$�7r-c�.�[URS5$)zJ
Average entropy per symbol (assuming all symbols have equal probability)
r/)r1rs�r}s r+rw�$SequenceGenerator.entropy_per_symbols��
�D�%�%�q�)�)r-c�4�URUR-$)a
Effective entropy of generated passwords.

This value will always be a multiple of :attr:`entropy_per_symbol`.
If entropy is specified in constructor, :attr:`length` will be chosen so
so that this value is the smallest multiple >= :attr:`requested_entropy`.
)rxrwr�s r+r~�SequenceGenerator.entropys���{�{�T�4�4�4�4r-c��[S5e)z;main generation function, should create one password/phrasezimplement in subclass)�NotImplementedErrorr�s r+�__next__�SequenceGenerator.__next__)s��!�"9�:�:r-c���Uc[U5$[U[5(a%[U5Vs/sHn[U5PM sn$U[LaU$[
R"USS5es snf)z>
frontend used by genword() / genphrase() to create passwords
z<None>, int, or <iter>�returns)�nextr_rr�iterr�ExpectedTypeError)r}r��_s   r+�__call__�SequenceGenerator.__call__-sd���?���:��
���
+�
+�(.�w��8��1�D��J��8�8�
��_��K��'�'��1I�9�U�U��	9s�A,c��U$rWrrr�s r+�__iter__�SequenceGenerator.__iter__:s���r-c�"�UR5$rW)r�r�s r+r��SequenceGenerator.next>s���=�=�?�"r-)rxrtr�NNNrW)�__name__�
__module__�__qualname__�__firstlineno__�__doc__rxrtrrsr|rrwr~r�r�r�r
r��__static_attributes__�
__classcell__�r�s@r+roro�sx���&�X�F�!���C��L�
8�F�*��*��5��5�;�V���	#�	#�r-rozH0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*?/�>0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ�2234679abcdefghjkmnpqrstuvwxyzACDEFGHJKMNPQRTUVWXYZ�0123456789abcdef)�ascii_72�ascii_62�ascii_50�hexc�N^�\rSrSrSrSrSrS	U4Sjjr\S5r	Sr
SrU=r$)
�
WordGeneratori\a�
Class which generates passwords by randomly choosing from a string of unique characters.

Parameters
----------
:param chars:
    custom character string to draw from.

:param charset:
    predefined charset to draw from.

:param \*\*kwds:
    all other keywords passed to the :class:`SequenceGenerator` parent class.

Attributes
----------
.. autoattribute:: chars
.. autoattribute:: charset
.. autoattribute:: default_charsets
r�Nc��>�U(aU(a[S5eO%U(dURnU(de[UnX l[USS9n[	USS9 Xl[[U]""S0UD6 g)Nz,`chars` and `charset` are mutually exclusive�chars�rerr)	r7�charsetrrrmr�r{r�r|)r}r�r�rr�s    �r+r|�WordGenerator.__init__~so������ N�O�O����,�,����w�$�W�-�E����5��0���u�G�,��
�	�m�T�+�3�d�3r-c�,�[UR5$rW)r6r�r�s r+rs�WordGenerator.symbol_count�����4�:�:��r-c�X�[URURUR5$rW)rrr�rxr�s r+r��WordGenerator.__next__�s���$�(�(�D�J�J����<�<r-)r�r�)NN)
r�r�r�r�r�r�r�r|rrsr�r�r�r�s@r+r�r�\s9����2�G�
�E�
4�0����=�=r-r�c�,�[SXS.UD6nU"U5$)a�	Generate one or more random passwords.

This function uses :mod:`random.SystemRandom` to generate
one or more passwords using various character sets.
The complexity of the password can be specified
by size, or by the desired amount of entropy.

Usage Example::

    >>> # generate a random alphanumeric string with 48 bits of entropy (the default)
    >>> from passlib import pwd
    >>> pwd.genword()
    'DnBHvDjMK6'

    >>> # generate a random hexadecimal string with 52 bits of entropy
    >>> pwd.genword(entropy=52, charset="hex")
    '310f1a7ac793f'

:param entropy:
    Strength of resulting password, measured in 'guessing entropy' bits.
    An appropriate **length** value will be calculated
    based on the requested entropy amount, and the size of the character set.

    This can be a positive integer, or one of the following preset
    strings: ``"weak"`` (24), ``"fair"`` (36),
    ``"strong"`` (48), and ``"secure"`` (56).

    If neither this or **length** is specified, **entropy** will default
    to ``"strong"`` (48).

:param length:
    Size of resulting password, measured in characters.
    If omitted, the size is auto-calculated based on the **entropy** parameter.

    If both **entropy** and **length** are specified,
    the stronger value will be used.

:param returns:
    Controls what this function returns:

    * If ``None`` (the default), this function will generate a single password.
    * If an integer, this function will return a list containing that many passwords.
    * If the ``iter`` constant, will return an iterator that yields passwords.

:param chars:

    Optionally specify custom string of characters to use when randomly
    generating a password. This option cannot be combined with **charset**.

:param charset:

    The predefined character set to draw from (if not specified by **chars**).
    There are currently four presets available:

    * ``"ascii_62"`` (the default) -- all digits and ascii upper & lowercase letters.
      Provides ~5.95 entropy per character.

    * ``"ascii_50"`` -- subset which excludes visually similar characters
      (``1IiLl0Oo5S8B``). Provides ~5.64 entropy per character.

    * ``"ascii_72"`` -- all digits and ascii upper & lowercase letters,
      as well as some punctuation. Provides ~6.17 entropy per character.

    * ``"hex"`` -- Lower case hexadecimal.  Providers 4 bits of entropy per character.

:returns:
    :class:`!unicode` string containing randomly generated password;
    or list of 1+ passwords if :samp:`returns={int}` is specified.
)rxr~rr)r��r~rxr�r�gens     r+rr�s!��L�
?�v�
?�$�
?�C��w�<�r-c���[US5nSU5n[SU55nSSS5 [RS[	W5U5 U$!,(df   N0=f)a
load wordset from compressed datafile within package data.
file should be utf-8 encoded

:param asset_path:
    string containing  absolute path to wordset file,
    or "python.module:relative/file/path".

:returns:
    tuple of words, as loaded from specified words file.
zutf-8c3�@# �UHoR5v� M g7frW)�striprZs  r+r4� _load_wordset.<locals>.<genexpr>s���+���z�z�|�|��s�c3�6# �UHo(dMUv� M g7frWrrrZs  r+r4r�s���3�s�t�d�d�d�s�s�
�	Nz!loaded %d-element wordset from %r)rE�tupler
�debugr6)�
asset_path�fhr��wordss    r+�
_load_wordsetr��sT��
�*�g�	.�"�+��+���3�s�3�3��
/�$�I�I�1�3�u�:�z�J��L�'
/�	.�s�A�
A!c�n^�\rSrSrSrSrSrU4SjrSrSr	Sr
Sr\S	5r
S
rSrSrS
rU=r$)�WordsetDictiz�
Special mapping used to store dictionary of wordsets.
Different from a regular dict in that some wordsets
may be lazy-loaded from an asset path.
Nc�J>�0Ul0Ul[[U]"U0UD6 grW)�paths�_loadedr{r�r|)r}�argsrr�s   �r+r|�WordsetDict.__init__%s%�����
����
�k�4�)�4�8�4�8r-c��URU$![a Of=fURUn[U5=o0RU'U$rW)r��KeyErrorr�r�)r}�keyrGr3s    r+�__getitem__�WordsetDict.__getitem__*sP��	��<�<��$�$���	��	���z�z�#���$1�$�$7�7����S�!��s��
�c� �X RU'g)z+
set asset path to lazy-load wordset from.
N)r�)r}r�rGs   r+�set_path�WordsetDict.set_path3s���
�
�3�r-c� �X RU'grW)r�)r}r�r3s   r+�__setitem__�WordsetDict.__setitem__9s��!���S�r-c�|�X;a*URU	URRUS5 gURU	grW)r�r��pop�r}r�s  r+�__delitem__�WordsetDict.__delitem__<s0���;����S�!��J�J�N�N�3��%��
�
�3�r-c�f�[UR5nURUR5 U$rW)rar��updater�)r}rzs  r+�_keyset�WordsetDict._keysetCs%���4�<�<� �����D�J�J���r-c�,�[UR5$rW)r�r�r�s r+r��WordsetDict.__iter__Is���D�L�L�!�!r-c�,�[UR5$rW)r6r�r�s r+�__len__�WordsetDict.__len__Ls���4�<�<� � r-c�H�XR;=(d XR;$rW�r�r�r�s  r+�__contains__�WordsetDict.__contains__Ps���l�l�"�7�c�Z�Z�&7�7r-r�)r�r�r�r�r�r�r�r|r�r�r�r��propertyr�r�r�r�r�r�r�s@r+r�r�sW����
�E��G�9�
��"� �����
"�!�8�8r-r�z%eff_long eff_short eff_prefixed bip39zpasslib:_data/wordsets/%s.txtc�R^�\rSrSrSrSrSrSrS
U4Sjjr\	S5r
SrS	rU=r
$)�PhraseGeneratori_a�class which generates passphrases by randomly choosing
from a list of unique words.

:param wordset:
    wordset to draw from.
:param preset:
    name of preset wordlist to use instead of ``wordset``.
:param spaces:
    whether to insert spaces between words in output (defaults to ``True``).
:param \*\*kwds:
    all other keywords passed to the :class:`SequenceGenerator` parent class.

.. autoattribute:: wordset
�eff_longN� c�>>�UbUb[S5eO!UcURnU(de[UnXl[U[5(d[U5n[
USS9 X lUcURn[USS9nX0l[[U]2"S0UD6 g)Nz,`words` and `wordset` are mutually exclusiver�r�rPrr)
r7�wordsetrr_�_sequence_typesr�rmr�rPrr{r�r|)r}r�r�rPrr�s     �r+r|�PhraseGenerator.__init__~s�������"�� N�O�O�#����,�,����w�$�W�-�E����%��1�1��%�L�E��u�G�,��
��;��(�(�C���E�*����	�o�t�-�5��5r-c�,�[UR5$rW)r6r�r�s r+rs�PhraseGenerator.symbol_count�r�r-c�x^�U4Sj[TR55nTRRU5$)Nc3�n># �UH*nTRRTR5v� M, g7frW)r�choicer�)r2r�r}s  �r+r4�+PhraseGenerator.__next__.<locals>.<genexpr>�s'����J�6I����������,�,�6I�s�25)rrxrPrd)r}r�s` r+r��PhraseGenerator.__next__�s)���J�f�T�[�[�6I�J���x�x�}�}�U�#�#r-)rPr�r�r�)r�r�r�r�r�r�r�rPr|rrsr�r�r�r�s@r+r�r�_sA���
�&�G�
�E��C�
6�D����$�$r-r�c�,�[SXS.UD6nU"U5$)a]Generate one or more random password / passphrases.

This function uses :mod:`random.SystemRandom` to generate
one or more passwords; it can be configured to generate
alphanumeric passwords, or full english phrases.
The complexity of the password can be specified
by size, or by the desired amount of entropy.

Usage Example::

    >>> # generate random phrase with 48 bits of entropy
    >>> from passlib import pwd
    >>> pwd.genphrase()
    'gangly robbing salt shove'

    >>> # generate a random phrase with 52 bits of entropy
    >>> # using a particular wordset
    >>> pwd.genword(entropy=52, wordset="bip39")
    'wheat dilemma reward rescue diary'

:param entropy:
    Strength of resulting password, measured in 'guessing entropy' bits.
    An appropriate **length** value will be calculated
    based on the requested entropy amount, and the size of the word set.

    This can be a positive integer, or one of the following preset
    strings: ``"weak"`` (24), ``"fair"`` (36),
    ``"strong"`` (48), and ``"secure"`` (56).

    If neither this or **length** is specified, **entropy** will default
    to ``"strong"`` (48).

:param length:
    Length of resulting password, measured in words.
    If omitted, the size is auto-calculated based on the **entropy** parameter.

    If both **entropy** and **length** are specified,
    the stronger value will be used.

:param returns:
    Controls what this function returns:

    * If ``None`` (the default), this function will generate a single password.
    * If an integer, this function will return a list containing that many passwords.
    * If the ``iter`` builtin, will return an iterator that yields passwords.

:param words:

    Optionally specifies a list/set of words to use when randomly generating a passphrase.
    This option cannot be combined with **wordset**.

:param wordset:

    The predefined word set to draw from (if not specified by **words**).
    There are currently four presets available:

    ``"eff_long"`` (the default)

        Wordset containing 7776 english words of ~7 letters.
        Constructed by the EFF, it offers ~12.9 bits of entropy per word.

        This wordset (and the other ``"eff_"`` wordsets)
        were `created by the EFF <https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrases>`_
        to aid in generating passwords.  See their announcement page
        for more details about the design & properties of these wordsets.

    ``"eff_short"``

        Wordset containing 1296 english words of ~4.5 letters.
        Constructed by the EFF, it offers ~10.3 bits of entropy per word.

    ``"eff_prefixed"``

        Wordset containing 1296 english words of ~8 letters,
        selected so that they each have a unique 3-character prefix.
        Constructed by the EFF, it offers ~10.3 bits of entropy per word.

    ``"bip39"``

        Wordset of 2048 english words of ~5 letters,
        selected so that they each have a unique 4-character prefix.
        Published as part of Bitcoin's `BIP 39 <https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt>`_,
        this wordset has exactly 11 bits of entropy per word.

        This list offers words that are typically shorter than ``"eff_long"``
        (at the cost of slightly less entropy); and much shorter than
        ``"eff_prefixed"`` (at the cost of a longer unique prefix).

:param sep:
    Optional separator to use when joining words.
    Defaults to ``" "`` (a space), but can be an empty string, a hyphen, etc.

:returns:
    :class:`!unicode` string containing randomly generated passphrase;
    or list of 1+ passphrases if :samp:`returns={int}` is specified.
)r~rxrr)r�r�s     r+rr�s!��B�
A�'�
A�D�
A�C��w�<�r-rW)r;r�)>r��
__future__rrrrrC�collectionsr�collections.abcr�ImportError�mathr	r
r1�logging�	getLoggerr��	importlibrrF�passlibr�passlib.utils.compatr
rrr�
passlib.utilsrrr�passlib.utils.decorr�__all__�dictrur,r?rE�listr�r�ra�	frozensetr`r^rmryrorr�rr�r�r�split�namer�r�rrrr-r+�<module>r
sk��0�S�R�
�#�+�.�#��g�'�'��1���	��C�C�5�5�1����
�
�
�����*"�!R�XA�.��-���9�
�
��u��)(�\I#��I#�h�
W�N�B�	���$E=�%�E=�XG�Z �F98�.�98�|�=��
4�9�9�;�D����d�$C�d�$J�K�
<�K$�'�K$�db��M�+�*�+�s�D
�
D�D

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 248 B 0644
apache.cpython-313.pyc File 40.22 KB 0644
apps.cpython-313.pyc File 4.14 KB 0644
context.cpython-313.pyc File 90.2 KB 0644
exc.cpython-313.pyc File 15.34 KB 0644
hash.cpython-313.pyc File 2.38 KB 0644
hosts.cpython-313.pyc File 1.37 KB 0644
ifc.cpython-313.pyc File 7.11 KB 0644
pwd.cpython-313.pyc File 25.14 KB 0644
registry.cpython-313.pyc File 18.19 KB 0644
totp.cpython-313.pyc File 62.13 KB 0644
win32.cpython-313.pyc File 2.22 KB 0644
Filemanager