__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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]: ~ $
�

��g�H��p�SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	rSSK
rSSKr
SSK
Jr SSK
Jr SSK
Jr SSKJrJr "SS\R(R*5r"SS	\R.R05r"S
S\
R4R65r\
R4R;S\5 \
R4R;S
\5 \
R4R;S\5 \
R4R;S\5 \
R4R<R?/SQ5 g)�N)�config)�log)�util)�BackendException�FatalBackendExceptionc�$�\rSrSrSrSrSrSrg)�CustomMethodRequest�-z�
This request subclass allows explicit specification of
the HTTP request method. Basic urllib.request.Request class
chooses GET or POST depending on self.has_data()
c�l�Xl[RRR"U/UQ70UD6 g�N)�method�urllib�request�Request�__init__)�selfr
�args�kwargss    �B/usr/lib/python3/dist-packages/duplicity/backends/webdavbackend.pyr�CustomMethodRequest.__init__4s)���������'�'��>�t�>�v�>�c��UR$r�r
�rs r�
get_method�CustomMethodRequest.get_method8s���{�{�rrN)�__name__�
__module__�__qualname__�__firstlineno__�__doc__rr�__static_attributes__�rrr	r	-s���?�rr	c�&�\rSrSrSrSrSrSrg)�CustomHTTPSConnection�<c��SSKqSSKq[
RRR"U/UQ70UD6 [RUl/SQUlUR(d^URHNn[RRU5n[RR!U5(dMHX0l O UR(aV[R""UR[R$5(d![[	S5UR-5egg![a [[	S55ef=f)Nrz%Missing socket or ssl python modules.)z~/.duplicity/cacert.pemz~/duplicity_cacert.pemz/etc/duplicity/cacert.pemz*Cacert database file '%s' is not readable.)�socket�ssl�ImportErrorr�_�http�client�HTTPSConnectionrr�ssl_cacert_file�cacert_file�cacert_candidates�os�path�
expanduser�isfile�access�R_OK)rrrr3s    rr�CustomHTTPSConnection.__init__=s��	T���	
���#�#�,�,�T�C�D�C�F�C�!�1�1���"
�������.�.���w�w�)�)�$�/���7�7�>�>�$�'�'�'+�$��	/����B�I�I�d�.>�.>����$H�$H�'��*V�(W�Z^�Zj�Zj�(j�k�k�%I���)�	T�'��*Q�(R�S�S�	T�s�D-�-Ec���[RURUR4UR5nUR
(aXlUR5 [R(a[R5nOE[R[RRUR[R S9nUR#XRS9Ulg)N)�cafile�capath)�server_hostname)r(�create_connection�host�port�timeout�_tunnel_host�sock�tunnelr�ssl_no_check_certificater)�_create_unverified_context�create_default_context�Purpose�SERVER_AUTHr0�ssl_cacert_path�wrap_socket)rrB�contexts   r�connect�CustomHTTPSConnection.connectYs����'�'����D�I�I�(>����M������I��K�K�M��*�*��4�4�6�G��0�0����'�'��'�'��-�-�1��G�
�'�'��i�i�'�H��	rc��[RRR"U/UQ70UD6$![R
a@n[
S[R"U53[RR5eSnAff=f)NzSSL failed: )r,r-r.rr)�SSLErrorrr�uexcr�	ErrorCode�
backend_error)rrr�es    rr�CustomHTTPSConnection.requestjsi��	_��;�;�.�.�6�6�t�M�d�M�f�M�M���|�|�	_�"�\�$�)�)�A�,��#@�#�-�-�B]�B]�^�^��	_�s�-0�B�;A?�?B)r1r0rBN)rrrr rrLrr"r#rrr%r%<s��l�8I�"_rr%c��\rSrSrSrSrSrSrSrSr	SSjr
S	rSSjrSr
S
rSrSrSrSrSrSrSrSrSrSrg
)�
WebDAVBackend�rzuBackend for accessing a WebDAV repository.

webdav backend contributed in 2006 by Jesper Zedlitz <[email protected]>
z_<?xml version="1.0"?><D:propfind xmlns:D="DAV:"><D:prop><D:resourcetype/></D:prop></D:propfind>c��[RRRX5 SSS.Ul[
R(aI[R"UR[R"[
R55UlXlSUlSUlUR&UlUR)5UlUR-UR.5Ul[R2"[5S5UR6UR84-5 [R2"[5S5UR04-5 SUlg![a n[R"S5 SnAN�SnAf[a!n[R"S5 SnAGNSnAf[a$n[R"SU35 SnAGNASnAff=f)	Nz
keep-alivezapplication/octet-stream)�
ConnectionzContent-TypezG--webdav-headers value has an odd number of arguments.  Must be paired.z<--webdav-headers value has bad syntax.  Check quoting pairs.z%--webdav-headers value caused error: zUsing WebDAV host %s port %szUsing WebDAV directory %s)�	duplicity�backend�Backendr�headersr�webdav_headersr�merge_dicts�csv_args_to_dict�
IndexErrorr�
FatalError�SyntaxError�	Exception�
FatalErrof�
parsed_url�digest_challenge�digest_auth_handler�username�get_password�password�
sanitize_pathr3�	directory�Infor+�hostnamer?�conn)rrfrSs   rr�WebDAVBackend.__init__s\�����!�!�*�*�4�<�'�6�
���� � �
L�#�/�/����d�>S�>S�TZ�Ti�Ti�>j�k���%�� $���#'�� �"�+�+��
��)�)�+��
��+�+�J�O�O�<�������1�2�j�6I�6I�:�?�?�5[�[�\�����.�/�4�>�>�2C�C�D���	��%�
j����h�i�i���
_����]�^�^���
L����!F�q�c�J�K�K��
L�s1�
AE�
G�#E>�>
G�F'�'
G�4G�Gc�h�U(a+[R"S5nURSUS35$g)Nz/+�/)�re�compile�sub)rr3�foldpaths   rrl�WebDAVBackend.sanitize_path�s-����z�z�$�'�H��<�<���v�Q�Z�0�0�rc�p�SnUH-nURUR:XdMX#R-nM/ U$)N�)�nodeType�	TEXT_NODE�data)r�nodelist�rc�nodes    r�getText�WebDAVBackend.getText�s3��
���D��}�}����.��)�)�^����	rc�"�URSS9 g)NT)�forced)rLrs r�_retry_cleanup�WebDAVBackend._retry_cleanup�s�����D��!rc���U(d@UR(a/URRURR:Xag[R
"[
S5URR-5 UR5 URRS;aN[RRURRURR5UlgURRS;a:[URRURR5Ulg[[
S5URR-5e)z�
Connect or re-connect to the server, updates self.conn
# reconnect on errors as a precaution, there are errors e.g.
# "[Errno 32] Broken pipe" or SSl errors that render the connection unusable
Nz WebDAV create connection on '%s')�webdavr,)�webdavs�httpszWebDAV Unknown URI scheme: %s)rpr>rfrorrnr+�_close�schemer,r-�HTTPConnectionr?r%r)rr�s  rrL�WebDAVBackend.connect�s����$�)�)��	�	���$�/�/�:R�:R�(R������5�6����9Q�9Q�Q�R����
��?�?�!�!�%7�7����2�2�4�?�?�3K�3K�T�_�_�Ma�Ma�b�D�I�
�_�_�
#�
#�';�
;�-�d�o�o�.F�.F����H\�H\�]�D�I�'��*I�(J�T�_�_�Mc�Mc�(c�d�drc�\�UR(aURR5 ggr)rp�closers rr��WebDAVBackend._close�s���9�9��I�I�O�O��rNc�V�UR5 UR5 [RR	US5nUR
bUR
U5URS'[R"[S5XUR4-5 [R"[S5[[U55-5 URRXX0R5 URR5n[R"[S5UR UR"4-5 UR S;Ga
US:XGaUR%S	S5nUR'5 U(a�[R("[S
5[RR+U5-5 US:�a[-[S55e[.R0R3U5UlUR7UR4R85UlURXR:X4S
-5$[-[S55eUR S:XGa7UR=5 UR'5 UR?Xe5URS'[R"[S55 [R"[S5XUR4-5 [R"[S5[[U55-5 URRXX0R5 URR5n[R"[S5UR UR"4-5 U$)zQ
Wraps the connection.request method to retry once if authentication is
required
z/:~N�
Authorizationz&WebDAV %s %s request with headers: %s zWebDAV data length: %s z+WebDAV response status %s with reason '%s'.)i-i.�PROPFIND�locationzWebDAV redirect to: %s �
z&WebDAV redirected 10 times. Giving up.�z4WebDAV missing location header in redirect response.i�z3WebDAV retry request with authentification headers.z'WebDAV %s %s request2 with headers: %s z,WebDAV response2 status %s with reason '%s'.) r�rLr�parse�quoterg�get_digest_authorizationr]rrnr+�len�strrpr�getresponse�status�reason�	getheaderr��Notice�unquoterrZr[�	ParsedUrlrfrlr3rm�read�get_authorization)rr
r3r}�
redirected�quoted_path�response�redirect_urls        rr�WebDAVBackend.request�s���
	
���
������l�l�(�(��u�5��� � �,�,0�,I�,I�$�,O�D�L�L��)�����;�<��UY�Ua�Ua�?b�b�c�����,�-��C��I��>�?��	�	���&�t�\�\�B��9�9�(�(�*������@�A�X�_�_�V^�Ve�Ve�Df�f�g��?�?�j�(�V�z�-A�#�-�-�j�$�?�L��N�N����
�
�1�6�7�&�,�,�:N�:N�|�:\�\�]���?�/��2Z�0[�\�\�"+�"3�"3�"=�"=�l�"K���!%�!3�!3�D�O�O�4H�4H�!I����|�|�F�N�N�D�q�.�Q�Q�+�A�.d�,e�f�f�
�_�_��
#��M�M�O��N�N��,0�,B�,B�8�,Y�D�L�L��)��H�H�Q�L�M�N��H�H�Q�@�A�V�Z^�Zf�Zf�Dg�g�h��H�H�Q�0�1�C��D�	�N�B�C��I�I���f�4���F��y�y�,�,�.�H��H�H�Q�E�F�(�/�/�[c�[j�[j�Ik�k�l��rc�z�URSS5nURSS5upEURS5SR5S:XaUR	5$UR5S:XaUR5$URU5UlURU5$![a gf=f![
a2 [R"[S	55 UR5s$[a<n[R"[S
5U-5 UR5sSnA$SnAff=f)zI
Fetches the auth header based on the requested method (basic or digest)
zwww-authenticaterz� r�N�,r�	negotiatezkpython-kerberos needed to use kerberos                           authorization, falling back to basic auth.zWKerberos authorization failed: %s.                          Falling back to basic auth.�basic)r��split�
ValueError�lower�get_kerberos_authorizationr*r�Warnr+�get_basic_authorizationrd�parse_digest_challengergr�)rr�r3�auth_hdr�token�	challengerSs       rr��WebDAVBackend.get_authorization�s1��	��)�)�*<�b�A�H�'�~�~�c�1�5��E��;�;�s��A��$�$�&�+�5�
6��6�6�8�8�$�[�[�]�g�
%��/�/�1�1�$(�$?�$?�	�$J�D�!��0�0��6�6��5�	��	��
�
6�����F����3�3�5�5��
6�����7���	���3�3�5�5��
6�s5�&B*�B:�*
B7�6B7�:9D:�5	D:�>1D5�/D:�5D:c�z�[RR[RRU55$r)rr�parse_keqv_list�parse_http_list)r�challenge_strings  rr��$WebDAVBackend.parse_digest_challenges'���~�~�-�-�f�n�n�.L�.L�M]�.^�_�_rc��SSKnURSURR35up#UR	US5 URU5nSU3$)NrzHTTP@rzz
Negotiate )�kerberos�authGSSClientInitrpr>�authGSSClientStep�authGSSClientResponse)rr�r+�ctx�tgts     rr��(WebDAVBackend.get_kerberos_authorizationsT����+�+�e�D�I�I�N�N�3C�,D�E����"�"�3��+��,�,�S�1���C�5�!�!rc��URSUR3nS[R"UR	55R5R
53$)z
Returns the basic auth header
�:zBasic )rirk�base64�	b64encode�encode�strip�decode)r�auth_strings  rr��%WebDAVBackend.get_basic_authorizationsP������q�����8����(�(��);�);�)=�>�D�D�F�M�M�O�P�Q�Qrc��URnURc~[RR	5nURSURRURUR5 [RRU5UlURS:H=(a S=(d SnUR=(a URSUR3=(d URnUSUU3n[URRU5nURR!XpR"5nSU3$)z 
Returns the digest auth header
Nr�r�r,r�z://zDigest )rfrhrr�HTTPPasswordMgrWithDefaultRealm�add_passwordrpr>rirk�HTTPDigestAuthHandlerr�r?ror	�_methodr�rg)	rr3�u�
pw_managerr�ro�	dummy_url�	dummy_reqr�s	         rr��&WebDAVBackend.get_digest_authorization&s���
�O�O���#�#�+����G�G�I�J��#�#�D�$�)�)�.�.�$�-�-����W�'-�~�~�'K�'K�J�'W�D�$����Y�&�2�7�<�f���6�6�6�����A�a�f�f�X�6�D�!�*�*���h�c�(��D�6�2�	�'��	�	�(9�(9�9�E�	��.�.�@�@��La�La�b����
�&�&rc��SnSURS'URSURUR5nURS	URS:Xa:UR5 UR
5 /U(aUR5 $$URS;a!UR5nUR5 O:URnURnUR5 [SUSUS35e[R"U5 [RRRU5n/nUR!S	S
5H.nUR#U5nU(dMUR%U5 M0 UU(aUR5 $$![&an	U	eSn	A	ff=f!U(aUR5 ff=f)N�1�Depthr��)����zBad status code z reason �.�*�href)r]rrm�listbodyr�r��makedirr�r�rr�Debug�xml�dom�minidom�parseString�getElementsByTagNameNS�
taste_href�appendrd)
rr��documentr�r�r��resultr��filenamerSs
          r�_list�WebDAVBackend._list9sx����	!�$'�D�L�L��!��|�|�J�����
�
�N�H����W�%����#�%���� ������*���� ��)���J�.�#�=�=�?����� �!����!������� �&�)9�&���&��QR�'S�T�T��I�I��
�$��'�'�/�/�-�-�h�7�C��F��2�2�3��?���?�?�4�0���8��M�M�(�+�@������ ����	��G��	������ ��s1�A4F�CF�-F�
F-�&F(�(F-�-F0�0G
c	��URRS5nUSS:XaUSSn[S[U55H�nSR	USUS-5S3nSUR
S'UR
SU5nUR
S	[R"S	US
[UR535 URS:XdM�[R"[S5U-5 UR
S
U5nURS:wdM�[[S5X5RUR4-5e g)z(Make (nested) directories on the server.rs���rzrr�r�r�r�zChecking existence dir z: r�zCreating missing directory %s�MKCOL��zWebDAV MKCOL %s failed: %s %sN)rmr��ranger��joinr]rrrn�intr�r+rr�)r�dirs�i�dr��ress      rr��WebDAVBackend.makedir\s���~�~�#�#�C�(����8�r�>���"�:�D��q�#�d�)�$�A��8�8�D��1�q�5�M�*�+�1�-�A�$'�D�L�L��!��|�|�J��2�H����W�%��H�H�.�q�c��C����4H�3I�J�K����#�%�����:�;�a�?�@��l�l�7�A�.���:�:��$�*�1�-L�+M�QR�T^�T^�`c�`j�`j�Pk�+k�l�l�%rc�p�URUR5R5n[RR[RR
U55nURn[R"[S5X$4-5 URbVURURR:Xd2SURSURRS3n[U5eURUR5(aUR!URSS5nU$g)z�
Internal helper to taste the given href node and, if
it is a duplicity file, collect it as a result file.

@return: A matching filename, or None if the href did not match.
z.WebDAV path decoding and translation: %s -> %sNzCReceived filename was in the form of a full url, but the hostname (z0) did not match that of the webdav backend url (z`) - aborting as a conservative safety measure. If this happens to you, please report the problemrzr�)r��
childNodesr�rr��urlparser�r3rr�r+rorfr�
startswithrm�replace)rr��raw_filenamerfr��ms      rr��WebDAVBackend.taste_hrefss���|�|�D�O�O�4�:�:�<���\�\�*�*�6�<�<�+?�+?��+M�N�
��?�?���	�	�!�G�H�L�Kc�c�d����*�J�4G�4G�4�?�?�Kc�Kc�4c�U�V`�Vi�Vi�Uj�kA�AE���AY�AY�@Z�[o�p�
�
#�1�%�%����t�~�~�.�.��'�'�����A�>�H��O�rc�F�UR[R"U5-nSnURS5nUR	SU5nUR
S:Xa>[R"XE5 UR5(aeUR5 O@UR
nURnUR5 [[S5Xg4-5eU(aUR5 gg![anUeSnAff=f!U(aUR5 ff=f)N�wb�GETr�z(WebDAV GET Bad status code %s reason %s.)
rmr2�fsdecode�openrr��shutil�copyfileobjr�r�rr+rd)	r�remote_filename�
local_path�urlr��target_filer�r�rSs	         r�_get�WebDAVBackend._get�s����n�n�r�{�{�?�;�;����	!�$�/�/�$�/�K��|�|�E�3�/�H����#�%��"�"�8�9�&�,�,�.�.�.�.���� �!����!������� �&�q�)S�'T�X^�Wg�'g�h�h�!����� ����	��G��	������ ��s1�A0C2�D�AC2�2
D�<C>�>D�D�D c�(�UR[R"U5-nSnURS5nUR	SX5R55nURS;a!UR5 UR5 O@URnURnUR5 [[S5Xg4-5eU(aUR5 gg![anUeSnAff=f!U(aUR5 ff=f)N�rb�PUT)r�r���z(WebDAV PUT Bad status code %s reason %s.)rmr2r
rrr�r�r�r�rr+rd)	r�source_pathrrr��source_filer�r�rSs	         r�_put�WebDAVBackend._put�s����n�n�r�{�{�?�;�;����	!�%�*�*�4�0�K��|�|�E�3�0@�0@�0B�C�H����/�1��
�
����� �!����!������� �&�q�)S�'T�X^�Wg�'g�h�h�!����� ����	��G��	������ ��s1�A!C#�C7�	AC#�#
C4�-C/�/C4�4C7�7Dc���UR[R"U5-nSnURSU5nURS;a!UR5 UR
5 O@URnURnUR
5 [[S5XE4-5eU(aUR
5 gg![anUeSnAff=f!U(aUR
5 ff=f)N�DELETE)r�rz(WebDAV DEL Bad status code %s reason %s.)rmr2r
rr�r�r�r�rr+rd)rr�rr�r�r�rSs       r�_delete�WebDAVBackend._delete�s����n�n�r�{�{�8�4�4����	!��|�|�H�c�2�H����*�,��
�
����� �!����!������� �&�q�)S�'T�X^�Wg�'g�h�h�!����� ����	��G��	������ ��s1�AC�)C�*AC�
C�C�C�C�C2)rprhrgrmr]rfrkri)F)Nr)rrrr r!r�rrlr�r�rLr�rr�r�r�r�r�r�r�r�rrrr"r#rrrVrVrsy���
�q�H�7��<��"�e�&�*�X!7�F`�"�R�'�&!!�Fm�.�@!�*!�*!rrVr,r�r�r�)r,r�r�r�) r��http.clientr,r2rtr�urllib.errorr�urllib.parse�urllib.request�xml.dom.minidomr��duplicity.backendrZrrr�duplicity.errorsrrrrr	r-r.r%r[r\rV�register_backend�uses_netloc�extendr#rr�<module>r*s���2��	�	�
�����������&�.�.�0�0��3_�D�K�K�7�7�3_�l\!�I�%�%�-�-�\!�~

���"�"�6�=�9�	���"�"�7�M�:�	���"�"�8�]�;�	���"�"�9�m�<�	�����$�$�%K�Lr

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 379 B 0644
_cf_cloudfiles.cpython-313.pyc File 5.1 KB 0644
_cf_pyrax.cpython-313.pyc File 6.79 KB 0644
_testbackend.cpython-313.pyc File 16.5 KB 0644
adbackend.cpython-313.pyc File 18.76 KB 0644
azurebackend.cpython-313.pyc File 6.79 KB 0644
b2backend.cpython-313.pyc File 11.74 KB 0644
boxbackend.cpython-313.pyc File 9.21 KB 0644
cfbackend.cpython-313.pyc File 665 B 0644
dpbxbackend.cpython-313.pyc File 24.58 KB 0644
gdocsbackend.cpython-313.pyc File 10.15 KB 0644
gdrivebackend.cpython-313.pyc File 15.64 KB 0644
giobackend.cpython-313.pyc File 9.93 KB 0644
hsibackend.cpython-313.pyc File 3.42 KB 0644
hubicbackend.cpython-313.pyc File 2.76 KB 0644
idrivedbackend.cpython-313.pyc File 23.25 KB 0644
imapbackend.cpython-313.pyc File 12.94 KB 0644
jottacloudbackend.cpython-313.pyc File 7.04 KB 0644
lftpbackend.cpython-313.pyc File 12.44 KB 0644
localbackend.cpython-313.pyc File 4.08 KB 0644
mediafirebackend.cpython-313.pyc File 6.07 KB 0644
megabackend.cpython-313.pyc File 8.47 KB 0644
megav2backend.cpython-313.pyc File 10.2 KB 0644
megav3backend.cpython-313.pyc File 11.81 KB 0644
multibackend.cpython-313.pyc File 14.88 KB 0644
ncftpbackend.cpython-313.pyc File 7.3 KB 0644
onedrivebackend.cpython-313.pyc File 17.76 KB 0644
par2backend.cpython-313.pyc File 11.9 KB 0644
pcabackend.cpython-313.pyc File 15.11 KB 0644
pydrivebackend.cpython-313.pyc File 14.04 KB 0644
rclonebackend.cpython-313.pyc File 6.53 KB 0644
rsyncbackend.cpython-313.pyc File 7.66 KB 0644
s3_boto3_backend.cpython-313.pyc File 11.21 KB 0644
slatebackend.cpython-313.pyc File 7.49 KB 0644
ssh_paramiko_backend.cpython-313.pyc File 23.04 KB 0644
ssh_pexpect_backend.cpython-313.pyc File 14.37 KB 0644
swiftbackend.cpython-313.pyc File 12.88 KB 0644
sxbackend.cpython-313.pyc File 2.87 KB 0644
tahoebackend.cpython-313.pyc File 3.64 KB 0644
webdavbackend.cpython-313.pyc File 25.74 KB 0644
xorrisobackend.cpython-313.pyc File 16.46 KB 0644
Filemanager