
    6h)                        S SK Jr  S SKrS SKrS SKJrJr  \R                  r " S S\	5      r
        SS jrSS jr        SS jrSS	 jrSS
 jrg)    )annotationsN)ListTuplec                      \ rS rSrSrSrg)mpatchError   z+error raised when a delta cannot be decoded N)__name__
__module____qualname____firstlineno____doc____static_attributes__r	       7/usr/lib/python3/dist-packages/mercurial/pure/mpatch.pyr   r      s    5r   r   c                    U(       ap  UR                  5       nUS   U:  a5  UR                  US   U-
  US   U-   45        U R                  X#S   45        g U R                  U5        X#S   -  nU(       a  Mo  g g )Nr      )popappend)dstsrclfs       r   _pullr   %   sp     GGIQ4!8JJ!q!A$(+,JJQ4y!

1	qT	 !r   c                    U R                  U5        U R                  U5      nU R                  U5        U R                  U5        g)zPmove count bytes from src to dest

The file pointer is left at the end of dest.
N)seekreadwrite)mdestr   countbufs        r   _mover#   2   s2    
 FF3K
&&-CFF4LGGCLr   c                Z    Un[        U5       H  u  pE[        XXT5        X-  nM     X-
  U4$ )N)reversedr#   )r   r"   liststartr   ps         r   _collectr)   =   s9     Eaa  Kr   c                   U(       d  U $ U Vs/ s H  n[        U5      PM     nn[        U5      n[        U 5      U-   nXU-   U-   nSUpU(       d  U $ [        5       n	U	R                  U 5        [        U 5      U4/n
X-   nU	R	                  U5        U H  nU	R                  U5        M     U H  n[        U
5      S:  a  Xxpx[        XU
5      /n
/ nX-   nSnX:  a  U	R	                  U5         [        R                  " SU	R                  S5      5      u  nnn[        XUU-
  5        [        / U
UU-
  5        UR                  UUS-   45        UUS-   -  nUnX:  a  M  U
R                  [        U5      5        M     [        XU
5      nU	R	                  US   5        U	R                  US   5      $ s  snf ! [        R                   a    [        S5      ef = f)Nr         >lll   patch cannot be decodedr   )lensumstringior   r   r)   structunpackr   errorr   r   r   extendr%   )abinsxplensplbltlb1b2r   fragsposr(   plennewendlastp1p2r   ts                        r   patchesrH   G   s   !"TSVTE"	UB	Q"B	2B
A GGAJ!fb\NE 'CFF3K	
  u:aU+,EjiFF3K="MM'166":>	B #b4i("eR"W%JJ38}%1r6MCD i 	Xc]#) , 	AFF1Q4L66!A$<] #D << =!";<<=s   F-+*F22 Gc                    Su  p#n[        U5      nSnXe::  aD  XUS-    n[        R                  " SU5      u  pn
X:  a  OXj-   nUS-   nX(U-
  -  nU	nX*-  nXe::  a  MD  XE:w  a  [        S5      eX U-
  -  nU$ )N)r   r   r   r-   r,   r.   )r/   r2   r3   r   )origdeltaoutlenrD   binbinenddatadecoder'   rC   lengths              r   patchedsizerR   |   s    F#ZFD
.S2X&#]]7F;F;mRx$, . }344
TkFMr   )r   List[Tuple[int, int]]r   rS   r   intreturnNone)
r   r1   r    rT   r   rT   r!   rT   rU   rV   )r   r1   r"   rT   r&   rS   rU   zTuple[int, int])r6   bytesr7   zList[bytes]rU   rW   )rJ   rT   rK   rW   rU   rT   )
__future__r   ior2   typingr   r   BytesIOr1   	Exceptionr   r   r#   r)   rH   rR   r	   r   r   <module>r]      s    # 	  ::6) 6
	
%:
?B
	
   !6  2jr   