ROOTPLOIT
Server: Apache
System: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User: ws67150586 (67150586)
PHP: 8.3.36
Disabled: NONE
Upload Files
File: //kunden/kunden/kunden/lib/python3/dist-packages/mercurial/__pycache__/sparse.cpython-313.pyc
�

6�h�k��(�SSKJr SSKrSSKJr SSKJr SSKJrJ	r
JrJ
rJrJrJrJrJr SSKJr SrS	rS
rSrSrS
rSSjrSrSrSrSr Sr!Sr"SSjr#Sr$S Sjr%Sr&S!Sjr'S Sjr(S Sjr)S"Sjr*S#Sjr+g)$�)�annotationsN�)�_)�hex)	�error�match�merge�
mergestate�pathutil�pycompat�requirements�scmutil�util)�hashutilFc�b�[USS5(ag[RUR;$)N�_has_sparseFT)�getattrr
�SPARSE_REQUIREMENT)�repos �2/usr/lib/python3/dist-packages/mercurial/sparse.py�
use_sparser"s-���t�]�E�*�*�
��*�*�d�.?�.?�?�?�c��[R"S[U5U5 [5n[5n[5nSnSnUR	S5GHOnUR5nU(aUR
S5(aM3UR
S5(a/USSR5nU(aURU5 MvMxUS:Xa6U(a)Xc:wa$[R"[S	5S
U0-5eSnUnM�US:XaSnUnM�U(dM�Uc,[R"[S
5X(S.-[S5S9eUR5R
S5(a"UR[S5X(S.-5 GM>URU5 GMR X4U4sSSS5 $!,(df   g=f)z�Parse sparse config file content.

action is the command which is trigerring this read, can be narrow, sparse

Returns a tuple of includes, excludes, and profiles.
z+sparse.parseconfig(ui, %d bytes, action=%s)NF�
�#s	%include �	s	[include]s5%(action)s config cannot have includes after excludes�actionTs	[exclude]s4%(action)s config entry outside of section: %(line)s)rslines<add an [include] or [exclude] line to declare the entry type)�hint�/sPwarning: %(action)s profile cannot use paths starting with /, ignoring %(line)s
)r�timedcm�len�set�split�strip�
startswith�addr�Abortr�warn)	�ui�raw�action�includes�excludes�profiles�current�havesection�lines	         r�parseconfigr2,s���
���5�s�3�x��
��5���5���5�������I�I�e�$�D��:�:�<�D��4�?�?�4�0�0������.�.��A�B�x�~�~�'����L�L��&����%��7�#6��+�+��.��%�f�-�	.���#��"�����%�"��"�����?��+�+��1��'-�<�	=�
�9��
�
��:�:�<�*�*�4�0�0��G�G��K��'-�<�	=������D�!�a%�d�8�+�w
�
�
�s�C9F7�BF7�7
Gc�<�URXS9R5$)z1Resolve the raw content of a sparse profile file.)�changeid)�filectx�data)r�profiler4s   r�readprofiler8rs���<�<��<�3�8�8�:�:rc���[U5(d[5[5[54$URRS5nU(d[5[5[54$Uc[R
"[
S55e[URUS5up4nXnU(a�[5nU(a�UR5nX�;aMURU5 [XU5n[URUS5up�nUR!U
5 UR!U5 UR!U5 U(aM�UnU(aURS5 X4U4$![Rac SX�4-n	URRSS5(aURRU	5 OURRU	5 GM&f=f)z�Obtain sparse checkout patterns for the given rev.

Returns a tuple of iterables representing includes, excludes, and
patterns.
�sparses3cannot parse sparse patterns from working directorys?warning: sparse profile '%s' not found in rev %s - ignoring it
smissingwarnings.hg*)rr"�vfs�tryreadrr'rr2r)�popr&r8�ManifestLookupError�
configboolr(�debug�update)
r�revr*r,r-r.�ctx�visitedr7�msg�	pincludes�	pexcludes�subprofss
             r�patternsforrevrIys����d����u�c�e�S�U�"�"�
�(�(�
�
�9�
%�C���u�c�e�S�U�"�"�
�{��k�k�
�D�E�
�	
�$/�t�w�w��Y�#G� �H��
�)�C���%����l�l�n�G��!���K�K�� �
�!�$��5��.9�����i�.�*�I�(�
�O�O�I�&��O�O�I�&��O�O�H�%�5�h�8������W���x�'�'��1�,�,�

�1�4;�>�B��
�7�7�%�%�i�1B�C�C��G�G�L�L��%��G�G�M�M�#�&��

�s�.E.�.A2G%�$G%c�>�URR5Vs/sH/nXR:wdMURR	U5PM1 nn[5n[5n[5nUHn[
X5upxn	X7-nXH-nXY-nM X4U4$s snf)z�Determine the active sparse config rules.

Rules are constructed by reading the current sparse config and bringing in
referenced profiles from parents of the working directory.
)�dirstate�parents�nullid�	changelogrBr"rI)
r�node�revs�allincludes�allexcludes�allprofilesrBr,r-r.s
          r�activeconfigrT�s����M�M�)�)�+��+�D��;�;��	!������4� �+�	���%�K��%�K��%�K���'5�d�'@�$��H����������	��[�0�0��!s
�B�Bc���URnURS5nU(aURS5nOSnUb
U(a�Uc�[[R"UR
R
S55R55nX2S'U(aLUR
R
S5n[[R"U5R55nXBS'SX44-$)zwObtain the signature string for the current sparse configuration.

This is used to construct a cache key for matchers.
s	signatures
tempsignature�0r:�
tempsparse�%s %s)�_sparsesignaturecache�getrr�sha1r;r<�digest)r�includetemp�cache�	signature�
tempsignaturer*s      r�configsignaturera�s���

�&�&�E��	�	�,�'�I���	�	�"2�3�
��
���[�]�-B���
�
�d�h�h�&6�&6�y�&A�B�I�I�K�L�	�'�l����(�(�"�"�=�1�C���
�
�c� 2� 9� 9� ;�<�M�&3�"�#��y�0�0�0rc��URSS5n[U5HnURSU-5 M U(aEURS5 [U5H%nURU5 URS5 M' U(aEURS5 [U5H%nURU5 URS5 M' SSS5 URR	5 g!,(df   N)=f)z:Write the sparse config file given a sparse configuration.r:swbs
%%include %s
s
[include]
rs
[exclude]
N)r;�sorted�writerY�clear)rr,r-r.�fh�p�i�es        r�writeconfigrj�s���	
���)�U�	#�r���!�A��H�H�&��*�+�"���H�H�^�$��H�%������������&���H�H�^�$��H�%������������&�
$� 	���$�$�&�!
$�	#�s�B?C5�5
Dc��URRS5nU(d
[5$[URS55$�NrWr)r;r<r"r#)rr*s  r�readtemporaryincludesrm�s4��
�(�(�
�
�=�
)�C���u���s�y�y��� � rc��URRSSR[U555 URR5 grl)r;rd�joinrcrYre)rr,s  r�writetemporaryincludesrps4���H�H�N�N�=�%�*�*�V�H�-=�">�?����$�$�&rc�d�[U5nUHnURU5 M [X5 g�N)rmr&rp)r�
additionalr,rhs    r�addtemporaryincludesrt
s)��$�T�*�H�
�����Q����4�*rc	�x�[U5(a URRS5(dgUR5nUR(d3UR
(d"UR(dUR(ag[USS9nURn[R"5n/n[U5nUHWnXs;dM
U"U5(aM[S5nURU[R SU5 UR#U5 MY [R$"XUSUSSSS9 UHnUR'USSS9 M URR)S5 UR*R-5 [S5n	UR.RU	[1U5-5 g)	NrWF�r]s*dropping temporarily included sparse files�.��wantfiledata��
p1_tracked�
wc_trackedsAcleaned up %d temporarily added file(s) from the sparse checkout
)rr;�exists�status�modified�added�removed�deleted�matcherrK�mergemod�mergeresultrmr�addfile�
mergestatemod�
ACTION_REMOVE�append�applyupdates�update_file�unlinkrYrer)r!)
r�s�sparsematchrK�mresult�dropped�tempincludes�file�messagerEs
          r�prunetemporaryincludesr�sW���d���4�8�8�?�?�=�#A�#A�����
�A��z�z�Q�W�W��	�	�Q�Y�Y���$�E�2�K��}�}�H��"�"�$�G��G�(��.�L�����K��$5�$5��E�F�G��O�O�D�-�"=�"=�t�W�M��N�N�4� �	�
����t�D�z�4��:�u�5��
�����T�e���F��	�H�H�O�O�M�"����$�$�&�
�	��C�	�G�G�N�N�3��\�*�*�+rc��UVs/sHnSUS4PM
 nn[R"SU5n[R"X@/5$s snf)zmReturns a matcher that returns true for any of the forced includes
before testing against the actual matcher.spathr)�matchmod�includematcher�unionmatcher)r�r,�include�kindpatsr�s     r�forceincludematcherr�6sL��8@�@�x�G��'�3�'�x�H�@��,�,�S�(�;�N�� � �.�!:�;�;��As�Ac
��[U5(d[R"5$U(aUS/:XaTURR	5Vs/sH/nX0R
:wdMURRU5PM1 nn[XS9nSUSR[[RU554-nURRU5nU(aU$/nUHVn[X5up�nU	(dU
(a6[R "UR"S/U	U
SS9nUR%U5 MVMX U(d[R"5nO+[)U5S:XaUS	nO[R*"U5nU(a[-U5n
[/Xm5nX`RU'U$s snf![&a M�f=f)
z�Obtain a matcher for sparse working directories for the given revs.

If multiple revisions are specified, the matcher is the union of all
revs.

``includetemp`` indicates whether to use the temporary sparse profile.
NrvrX� rsrelpath)r��exclude�defaultrr)rr��alwaysrKrLrMrNrBraro�mapr�bytestr�_sparsematchercacherZrIr�rootr��OSErrorr!r�rmr�)rrPr]rOr_�key�result�matchersrBr,r-r.r�r�s              rr�r�>s����d������ � ��4�D�6�>��
�
�-�-�/�
�/���{�{�"�
%�D�N�N���t�$�/�	
�
� ��>�I�
�i����3�x�/?�/?��+F�!G�H�
H�C�
�
%�
%�
)�
)�#�
.�F�
��
��H���	�+9�$�+D�(�H���8�"�.�.��I�I���$�$�&�
������(�$�	�"����"��	�X��!�	��!����&�&�x�0���,�T�2��$�V�:��$*���S�!��M��[
��:�	��	�s�F6�'F6�+AF;�;
G	�G	c
���[U5(dgUR5Vs/sHoUR5PM nn[X5nUR	5(ag[5n0n	U(a)[XR
5R5/5n
O[XR5/5n
/nUR5GHup�U
up�nURU5 U
"U5(aX�U'O�U[R:XaURU5 X�U'OaU(a'UR(dURU5 X�U'O3U[R:XaX�U'OX�;a[RUU4X�'U(dM�U[R:XdM�UunnnnnU
"U5(aM�URU5 GM [U5S:�Ga;UR R#[%S5[U5-5 ['X5 [(R*"5nSnUSR-5nUHEnUU;dMUSUnUR/U[R0UR35S4U5 MG UR4R7U5 [(R8"UUUSUSSSS9 UR4nUR;[R0/5HunnnUR=USSS	9 M SSS5 [?U5S
nUU-nU(a�U(d�UR-5nUHrnU"U5nU
"U5n U(d1U (a*UR3U5n[R0US4S4X�'MKU(dMTU (aM][R/S4X�'Mt URAU	5 gs snf!,(df   N�=f)zAFilter updates to only lay out files that match the sparse rules.NrsCtemporarily included %d file(s) in the sparse checkout for merging
s%temporarily adding to sparse checkoutFrwrxTrz�r)!rrLrBr�r�r"�p1�filemapr&r��ACTION_MERGEr��no_op�
ACTION_FORGETr�r!r)r~rrtr�r��manifestr��
ACTION_GET�flagsrK�changing_parentsr��
getactionsr�rT�
setactions)!r�wctx�mctx�branchmerger��pctx�oldrevs�oldsparsematch�files�
prunedactionsr��temporaryfilesr�r+�type�argsrE�f1�f2�fa�move�anc�tmresultr��wctxmanifest�fctxrKr�r.�changedprofiles�mf�old�news!                                 r�filterupdatesactionsr�{ss���d����&*�l�l�n�5�n�d�x�x�z�n�G�5��T�+�N��������E�E��M���d�W�W�Y�]�]�_�$5�6���d�X�X�Z�L�1���N����)��� ���C�
�	�	�$���t���"(�$��
�]�/�/�
/��!�!�$�'�"(�$��
��:�:��%�%�d�+�&,�d�#��
�]�0�0�
0�"(�$��
�\�#0�#>�#>��c�"J�M���;�4�=�#=�#=�=�$(�!�B��B��c��r�?�?��%�%�b�)�5*�8�>��Q�������
�*�
��.�!�	
"�	
�	�T�2��'�'�)��:���D�z�*�*�,��"�D��|�#��D�z�$�'��� � ��!�,�,��Z�Z�\�5�)��	�#��]�]�
+�
+�D�
1��!�!����T�
��T�
��"�

��}�}�H�$,�$7�$7��)�)�*�%� ��e�S��$�$�T�d�t�$�L�%�2� �D�!�!�$�H���&�O��{�
�]�]�_���D� ��&�C��d�#�C��3�������!�,�,��E�N��'�
�#�
��S�S�'4�'B�'B�B��&L�
�#�����}�%��W6�N2�
1�s�O�(A(O�
O&c	��[5nURUR5 URUR5 URUR5 [U5nSnUH@nU"U5(aMURR[S5U-5 U(+nMB U(a[R"[S55eURnUSn	/n
/n/nU	R5n
[U
5n[R"5nUGH8nU"U5nU"U5nU(aU(aU(a�U(a�UU;a�U
RU5nUR R#U5(a6UR%U[&R(U4S5 UR+U5 M�UR%U[&R,US4S5 U
R+U5 M�U(aU(aU(aM�U(aM�UU;dM�UR+U5 UU;dGMUR%U[&R.SS5 GM; SnUH1nURR[S5U-5 U(+nM3 U(a[R"[S55eUR15HAunnUU;dMU"U5nU"U5nU(dM'U(aM0UR+U5 MC [R2"XUSUSSSS9 U
HnUR5US	S	S
9 M UHnUR5USSS
9 M UHnUR5US	S	S	S9 M X�U4$)z�Refreshes working directory by taking sparse config into account.

The old status and sparse matcher is compared against the current sparse
matcher.

Will abort if a file with pending changes is being excluded or included
unless ``force`` is True.
Fspending changes to '%s'
s2could not update sparseness due to pending changesrwrNsjcannot change sparseness due to pending changes (delete the files or use --force to bring them back dirty)rxTrz)r{r|�possibly_dirty)r"rArr�r�r�r)r(rrr'rKr�r�r�r��wvfsr}r�r��ACTION_EXECr�r�r��itemsr�r�)r�
origstatus�origsparsematch�force�pendingr��abort�frKrCr��lookupr�r�r�r�r�r�r��fl�states                     r�refreshwdirr��s���e�G��N�N�:�&�&�'��N�N�:�#�#�$��N�N�:�%�%�&��$�-�K��E�
���1�~�~��G�G�L�L��7�8�1�<�=��I�E��

��k�k�
�C�D�
�	
�
�}�}�H�
�t�*�C��E�
�F��G�	����B���G�E��"�"�$�G����d�#���$���
����T�X�5E����$��B��y�y����%�%�����m�&?�&?�"���L��
�
�d�#�����-�2�2�R��K������T�"��#�s�s�3�3�4�8�;K��N�N�4� ��7�"�����m�&A�&A�4��M�)�.
�E��������Q�3�4�t�;�<��	���
��k�k�
�5�
�
�	
� �~�~�'���e��u�}�!�$�'�C��d�#�C��s�3�3����t�$�(�
����t�D�z�4��:�u�5��
�����T�d�t��D�������T�e���F��������T�d�4�	�	
���6�!�!rc���Xn[XR55SnU[UR55-(a&UR	5n[U5n[
XUSS9 [U5 g)z1Perform actions after a working directory commit.r�T�r�N)rIrBr"r�r~r�r�r�)rrOrCr.r�r�s      r�aftercommitr�Ss]���*�C��d�G�G�I�.�q�1�H��#�c�i�i�k�"�"��[�[�]�
�!�$�-���D�o�T�B��4� rc��UR5 URRS5n[URUS5upxn	UR5n
[
U5n[UR5n[RU;aFU(a?URR[R5 [R"USS9 OR[RU;a>URR[R5 [R"USS9 [XX#5 [X
X�S9sSSS5 $![ ab URU:waDURR#5 U=RU-sl[R"USS9 [XX�5 ef=f!,(df   g=f)z5Update the sparse config and working directory state.r:F)�
maywritestorer�N)�wlockr;r<r2r)r~r�r"r
r�discardr�writereporequirementsr&rjr��	Exceptionre)
rr,r-r.r��removingr*�oldincludes�oldexcludes�oldprofiles�	oldstatus�oldmatch�oldrequiress
             r�_updateconfigandrefreshwdirr�ds\��
�����h�h���y�)��0;��G�G�S�)�1
�-��+��K�K�M�	��4�=���$�+�+�,���*�*�k�9�h����%�%�l�&E�&E�F��)�)�$�e�D�
�
,�
,�K�
?����!�!�,�"A�"A�B��)�)�$�e�D�		����;��t��F�7
���8�	�� � �K�/��!�!�'�'�)��!�!�[�0�!��-�-�d�%�H���;�D��
	��9
��s�DF2�$E�A,F/�/F2�2
Gc
��UR5 URRU5 URR	S5n[URUS5up4nU(dU(dSSS5 SSS5 g[U[5[5XQS9 SSS5 SSS5 g!,(df   N=f!,(df   g=f)z�Clears include/exclude rules from the sparse config.

The remaining sparse config only has profiles, if defined. The working
directory is refreshed, as needed.
r:Nr�)	r�rKr�r;r<r2r)r�r")rr�r*r,r-r.s      r�
clearrulesr��s���
����t�}�}�5�5�d�;��h�h���y�)��'2�4�7�7�C��'K�$��H����<���	$�D�#�%����N�<���;�;����s/�C�AB0�2C�B0�C�0
B>	�:C�
Cc
��UR5 URRU5 URR	S5n[URUS5upVn[U5up�n
SnUH�n[R"[R"U5SS9n
U
R5nSSS5 [URUS5up�n[U5[U5-[U5-nURX�-
5 URX�-
5 URUU
-
5 [U5[U5-[U5-U:�dM�SnM� S=n=nnSnU(a@[Xz-
5n[XX-
5n[Xi-
5n[[[XXgUS	95n[!URUUUU/UQ76 SSS5 SSS5 g!,(df   GN/=f!,(df   N)=f!,(df   g=f)
z�Import sparse config rules from files.

The updated sparse config is written out and the working directory
is refreshed, as needed.
r:Fsrb)�modeNTr)rrrr�)r�rKr�r;r<r2r)rTr�	posixfile�
expandpath�readr!rAr�r��printchanges)r�opts�pathsr�r*r,r-r.�	aincludes�	aexcludes�	aprofiles�changedrgrf�	iincludes�	iexcludes�	iprofiles�oldsize�profilecount�includecount�excludecount�fcountss                      r�importfromfilesr�s���
����t�}�}�5�5�d�;��h�h���y�)��'2�4�7�7�C��'K�$��H�*6�t�*<�'�	�i����A�������� 2��?�2��g�g�i��@�/:�����i�/�+�I�)��(�m�c�(�m�3�c�(�m�C�G��O�O�I�1�2��O�O�I�1�2��O�O�I�	�1�2��8�}�s�8�}�,�s�8�}�<�w�F����67�6��6�|�l�����x�3�4�L��x�3�4�L��x�3�4�L���+��H�e���G�	��G�G�T�<��|�	
�FM�	
�M<���@�?��<�;����sC�G=�A4G,�!G	�2B$G,�A/G,�	G=�
G)
�$G,�,
G:	�6G=�=
Hc
�^^	�TR5 TRRT5 TRR	S5n
[TRU
S5up�n
U(a[5n[5n[5nO![U5n[U5n[U
5nUU	4SjnU"U5nU"U5nU"U5nU"U5nU"U5nURU5 URU5 URU5 URU5 URU5 URU5 [UU
-
5[U
U-
5-
n[X�-
5[X�-
5-
n[X�-
5[X�-
5-
n[[[TUUUUUS95n[TRUUUU/UQ76 SSS5 SSS5 g!,(df   N=f!,(df   g=f)zmPerform a sparse config update.

The new config is written out and a working directory refresh is performed.
r:c��>�[SU55(a[R"[S55eT	(aU$TRTR5p!/nUH}n[R"US5upVU[R;dUc9U(aUS-OS[R"XU5-nURU5 MlURU5 M U$)Nc3�`# �UH$n[RRU5v� M& g7frr)�os�path�isabs)�.0�pats  r�	<genexpr>�7updateconfig.<locals>.normalize_pats.<locals>.<genexpr>�s ���6��#�2�7�7�=�=��%�%��s�,.spaths cannot be absolute�:r)�anyrr'rr��getcwdr��	_patsplit�cwdrelativepatternkindsr�	canonpathr�)
�patsr��cwd�abspats�kindpat�kindr�apr�usereporootpathss
        ��r�normalize_pats�$updateconfig.<locals>.normalize_pats�s�����6��6�6�6��k�k�!�$?�"@�A�A�����	�	�4�;�;�=�#��G���$�.�.�w��=�	���8�;�;�;�t�|�)-�$��+�3�(�:L�:L��3�;��B��N�N�2�&��N�N�7�+� ��Nr)r�r�N)r�rKr�r;r<r2r)r"�difference_updaterAr!r�r�r�)rr�r�r��reset�delete�
enableprofile�disableprofiler�rr*�
oldinclude�
oldexcluder��
newinclude�
newexclude�newprofilesrrrrrs`        `            r�updateconfigr(�s���� 
����t�}�}�5�5�d�;��h�h���y�)��.9��G�G�S�)�/
�+�
�����J���J��%�K��Z��J��Z��J��k�*�K�	�*!��)�� ��)����'��'��7��&�}�5�
��$�$�V�,��$�$�V�,��%�%�n�5����'�"����=�)����'�"��;��4�5���+�%�9
�
���:�2�3�c��#�7
�
���:�2�3�c��#�7
�
����'�������

�

��	��G�G�T�<��|�	
�FM�	
�O<���;�;����s#�G,�FG�
G,�
G)	�%G,�,
G:c�z�URSU5nUR5 URURS[	S5U5 URURS[	S5U5 URURS[	S5U5 UR5(duURURS[	S	5U5 URURS
[	S5U5 URURS[	S
5U5 SSS5 g!,(df   g=f)z/Print output summarizing sparse config changes.r:sprofiles_addedsProfiles changed: %d
sinclude_rules_addedsInclude rules changed: %d
sexclude_rules_addedsExclude rules changed: %d
sfiles_addedsFiles added: %d
s
files_droppedsFiles dropped: %d
sfiles_conflictingsFiles conflicting: %d
N)�	formatter�	startitem�	condwrite�verboser�isplain)	r)r�rrrr�r��conflicting�fms	         rr�r�*s��
���i��	&�"�
����
����J�J��
�'�(��		
�	����J�J�"�
�,�-��		
�	����J�J�"�
�,�-��		
��z�z�|�|��L�L��
�
�N�A�.B�,C�U�
�
�L�L��
�
�,�a�0F�.G��
�
�L�L��
�
�$��,�-��	
�?
'�	&�	&�s�DD,�,
D:)T)NT)F)FF)�r1Fr1r1r1FF)rrrrrr),�
__future__rr�i18nrrOr�rrr�r	r�r
r�rrr
rr�utilsr�enabledrr2r8rIrTrarjrmrprtr�r�r�r�r�r�r�r�rr(r�r1rr�<module>r7s���#�	���
�
�
����@�B,�L;�9(�x1�21�4'�*!�'�
+�",�J<�:�zp&�fb"�J!�$?D�&�R
O� .
�h
��
�
���
��Y
�~���
�
��/r