ó
    6°h/  ã                  ó˜   • S SK Jr  S SKrS SKJr  S SKJrJr  S SKJ	r	   " S S\R                  5      r " S S	\5      r\R                  rg)
é    )ÚannotationsN)Ú_)ÚerrorÚpycompat)Ú
stringutilc                  ó   • \ rS rSrSrg)ÚInvalidPointeré   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú3/usr/lib/python3/dist-packages/hgext/lfs/pointer.pyr	   r	      s   † Úr   r	   c                  ó.  ^ • \ rS rSrSrU 4S jr\S 5       rS rS r	S r
\R                  " S5      r\R                  " S	5      r\R                  " S
5      \R                  " S5      \R                  " S\R                   " \5      -  5      S.rS rSrU =r$ )Úgitlfspointeré   s"   https://git-lfs.github.com/spec/v1c                óˆ   >• U R                   U S'   [        TU ]  " U6   U R                  [        R
                  " U5      5        g )Nó   version)ÚVERSIONÚsuperÚ__init__Úupdater   Úbyteskwargs)ÚselfÚargsÚkwargsÚ	__class__s      €r   r   Úgitlfspointer.__init__   s5   ø€ ØŸ<™<ˆˆZÑÜ‰Ò˜$ÑØ�‰”H×(Ò(¨Ó0Õ1r   c                óÌ   •  U " S UR                  5        5       5      R                  5       $ ! [         a,    [        [	        S5      [
        R                  " U5      -  5      ef = f)Nc              3  óD   #   • U  H  oR                  S S5      v •  M     g7f)ó    é   N©Úsplit)Ú.0Úls     r   Ú	<genexpr>Ú,gitlfspointer.deserialize.<locals>.<genexpr>$   s   é € ÐCÒ1B¨A—w‘w˜t Q×'Ð'Ò1Bùs   ‚ s   cannot parse git-lfs text: %s)Ú
splitlinesÚvalidateÚ
ValueErrorr	   r   r   Úpprint)ÚclsÚtexts     r   ÚdeserializeÚgitlfspointer.deserialize!   s]   € ð	ÙÑC°·±Ô1BÓCÓC×LÑLÓNÐNøÜó 	Ü ÜÐ2Ó3´j×6GÒ6GÈÓ6MÑMóð ð	ús	   ‚*- ­6A#c                ó„   • S n[        U R                  5       R                  5       US9nSR                  S U 5       5      $ )Nc                ó   • U S   S:g  U 4$ )Nr   r   r   )Úxs    r   Ú<lambda>Ú)gitlfspointer.serialize.<locals>.<lambda>+   s   €   1¡¨Ñ!3°QÑ 7r   )Úkeyr   c              3  ó2   #   • U  H  u  pS X4-  v •  M     g7f)s   %s %s
Nr   )r(   ÚkÚvs      r   r*   Ú*gitlfspointer.serialize.<locals>.<genexpr>-   s   é € Ð>º±°˜
 a VÖ+ºùs   ‚)Úsortedr-   ÚitemsÚjoin)r   Úsortkeyfuncr?   s      r   Ú	serializeÚgitlfspointer.serialize*   s7   € Ù7ˆÜ�t—}‘}“×,Ñ,Ó.°KÑ@ˆØ�x‰xÑ>¹Ó>Ó>Ð>r   c                ó0   • U S   R                  S5      S   $ )Nó   oidó   :éÿÿÿÿr&   ©r   s    r   ÚoidÚgitlfspointer.oid/   s   € Ø�F‰|×!Ñ! $Ó'¨Ñ+Ð+r   c                ó   • [        U S   5      $ )Nó   size)ÚintrH   s    r   ÚsizeÚgitlfspointer.size2   s   € Ü�4˜‘=Ó!Ð!r   s   \A[a-z0-9.-]+\Zs
   \A[^\n]*\Zs
   \A[0-9]+\Zs   \Asha256:[0-9a-f]{64}\Zs   \A%s\Z)rL   rE   r   c                ó  • SnU R                  5        Hî  u  p#X R                  ;   aV  U R                  U   R                  U5      (       d-  [        [	        S5      U[
        R                  " U5      4-  5      eUS-  nO7U R                  R                  U5      (       d  [        [	        S5      U-  5      eU R                  R                  U5      (       a  MÃ  [        [	        S5      U[
        R                  " U5      4-  5      e   [        U R                  5      U:w  ao  [        [        U R                  R                  5       5      R                  U R                  5       5      5      n[        [	        S5      SR                  U5      -  5      eU $ )z?raise InvalidPointer on error. return self if there is no errorr   s#   unexpected lfs pointer value: %s=%sr%   s   unexpected lfs pointer key: %ss   missing lfs pointer keys: %ss   , )r?   Ú_requiredreÚmatchr	   r   r   r/   Ú_keyreÚ_valuereÚlenr>   ÚsetÚkeysÚ
differencer@   )r   Úrequiredcountr;   r<   Úmisss        r   r-   Úgitlfspointer.validate?   sX  € àˆØ—J‘J–L‰DˆAØ×$Ñ$Ó$Ø×'Ñ'¨Ñ*×0Ñ0°×3Ñ3Ü(ÜÐ@ÓAØœj×/Ò/°Ó2Ð3ñ4óð ð  Ñ"‘Ø—[‘[×&Ñ& q×)Ñ)Ü$¤QÐ'HÓ%IÈAÑ%MÓNÐNØ—=‘=×&Ñ& q×)Ó)Ü$ÜÐ<Ó=Øœ*×+Ò+¨AÓ.Ð/ñ0óð ñ !ô ˆt×ÑÓ  MÓ1Üœ#˜d×.Ñ.×3Ñ3Ó5Ó6×AÑAÀ$Ç)Á)Ã+ÓNÓOˆDÜ ÜÐ1Ó2°U·Z±ZÀÓ5EÑEóð ð ˆr   r   )r   r   r   r   r   r   Úclassmethodr2   rB   rI   rN   ÚreÚcompilerS   rT   r   ÚreescaperQ   r-   r   Ú__classcell__)r    s   @r   r   r      s•   ø† Ø3€Gõ2ð
 ñó ðò?ò
,ò"ð
 �ZŠZÐ+Ó,€FØ�zŠz˜.Ó)€Hà—’˜NÓ+Ø—
’
Ð6Ó7Ø—J’J˜z¨J×,?Ò,?ÀÓ,HÑHÓIñ€K÷ð r   r   )Ú
__future__r   r]   Úmercurial.i18nr   Ú	mercurialr   r   Úmercurial.utilsr   ÚStorageErrorr	   Údictr   r2   r   r   r   Ú<module>rg      sF   ðõ #ã 	å ÷õ 'ô	�U×'Ñ'ô 	ô=�Dô =ð@ ×'Ñ'�r   