ó
    6°hú  ã                  ó–   • S SK Jr  S SKrSSKJr  SSKJr  SSKJrJr  SSK	J
r
  \R                  r\R                  r " S S	5      rS
 rg)é    )ÚannotationsNé   )Ú_)Úopen)ÚpycompatÚutil)Úurlutilc                  ó6   • \ rS rSrSrS rS rS rS rS r	Sr
g	)
Úhttpsendfileé   zàThis is a wrapper around the objects returned by python's "open".

Its purpose is to send file-like objects via HTTP.
It do however not define a __len__ attribute because the length
might be more than Py_ssize_t can handle.
c                ó„  • Xl         [        U0 UD6U l        U R                  R                  U l        U R                  R                  U l        U R                  R
                  U l        [        R                  " U R                  R                  5       5      R                  U l
        SU l        U R                  5       U l        g )Nr   )Úuir   Ú_dataÚseekÚcloseÚwriteÚosÚfstatÚfilenoÚst_sizeÚlengthÚ_posÚ_makeprogressÚ	_progress)Úselfr   ÚargsÚkwargss       Ú:/usr/lib/python3/dist-packages/mercurial/httpconnection.pyÚ__init__Úhttpsendfile.__init__'   sƒ   € ØŒÜ˜4Ð* 6Ñ*ˆŒ
Ø—J‘J—O‘OˆŒ	Ø—Z‘Z×%Ñ%ˆŒ
Ø—Z‘Z×%Ñ%ˆŒ
Ü—h’h˜tŸz™z×0Ñ0Ó2Ó3×;Ñ;ˆŒØˆŒ	Ø×+Ñ+Ó-ˆ�ó    c                ó|   • U R                   R                  [        S5      [        S5      U R                  S-  S-  S9$ )Ns   sendings   kbé   é   )ÚunitÚtotal)r   Úmakeprogressr   r   ©r   s    r   r   Úhttpsendfile._makeprogress1   s=   € ð �w‰w×#Ñ#Üˆj‹M¤ %£°·±ÀÑ1DÀqÑ1Hð $ð 
ð 	
r!   c                ó  • U R                   R                  " U0 UD6nU(       d  U R                  R                  5         U$ U =R                  [        U5      -  sl        U R                  R                  U R                  S-  5        U$ )Nr#   )r   Úreadr   Úcompleter   ÚlenÚupdate)r   r   r   Úrets       r   r+   Úhttpsendfile.read;   sc   € Ø�j‰j�oŠo˜tÐ. vÑ.ˆÞØ�N‰N×#Ñ#Ô%ØˆJØ�	Š	”S˜“XÑ�	Ø�‰×Ñ˜dŸi™i¨4Ñ/Ô0Øˆ
r!   c                ó   • U $ ©N© r(   s    r   Ú	__enter__Úhttpsendfile.__enter__D   s   € Øˆr!   c                ó$   • U R                  5         g r2   )r   )r   Úexc_typeÚexc_valÚexc_tbs       r   Ú__exit__Úhttpsendfile.__exit__G   s   € Ø�
‰
�r!   )r   r   r   r   r   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r+   r4   r:   Ú__static_attributes__r3   r!   r   r   r      s    † ñò.ò
òòõr!   r   c                óŽ  • [         R                  " U5      n0 nU R                  S5       Hx  u  pEUS;   a  M  SU;  a  U R                  [	        S5      U-  5        M2  UR                  SS5      u  pgUR                  U0 5      nUS;   a  [        R                  " U5      nXXU'   Mz     UR                  SS5      u  pšS nSnS nUR                  5        GHp  u  pnU(       a  X.R                  S	U5      :w  a  M$  UR                  S
5      nU(       d  M>  [        R                  " U5      nUR                  (       a  UR                  U:w  a  Mw  S Ul        [        U5      nUR                  SS5      n[!        U5      S:”  a  US   /US   nnO(UR                  S5      =(       d    SR                  5       nUS:X  d  U
R#                  U5      (       d  Mü  [!        U5      U:”  d%  [!        U5      U:X  d  GM  U(       a  GM'  S	U;   d  GM0  U	U;   d  GM9  [!        U5      nXn4nUR                  S	5      nU(       d  GMb  U(       a  GMl  X.S	'   GMs     U$ )Ns   auth)s
   cookiefileó   .s!   ignoring invalid [auth] key '%s'
r   )ó   usernames   certs   keys   ://r   rD   s   prefixs   schemess   httpsó   *)r   ÚbytesurlÚconfigitemsÚwarnr   ÚrsplitÚ
setdefaultr   Ú
expandpathÚsplitÚitemsÚgetr	   ÚurlÚuserÚbytesr-   Ú
startswith)r   ÚurirP   ÚgroupsÚkeyÚvalÚgroupÚsettingÚgdictÚschemeÚhostpathÚbestuserÚbestlenÚbestauthÚauthÚprefixÚ	prefixurlÚpÚschemess                      r   Úreadauthforurird   L   sÿ  € Ü
×
Ò
˜CÓ
 €Cà€FØ—N‘N 7Ö+‰ˆØÐ"Ó"Ùà�s‹?Ø�G‰G”AÐ;Ó<¸sÑBÔCÙØŸ™ D¨!Ó,‰ˆØ×!Ñ! %¨Ó,ˆØÐ4Ó4Ü—/’/ #Ó&ˆCØˆg‹ñ ,ð —y‘y ¨Ó+Ñ€FØ€HØ€GØ€HØ—|‘|—~‰ˆÞ�DŸH™H [°$Ó7Ó7ñ Ø—‘˜)Ó$ˆÞÙä—K’K Ó'ˆ	Ø�>�>˜iŸn™n°Ó4ñ ð ˆ	ŒÜ�yÓ!ˆà�L‰L˜ Ó#ˆÜˆq‹6�A‹:Ø  ™t˜f a¨¡d�VˆG�Và—x‘x 
Ó+×7¨x×>Ñ>Ó@ˆGà�t‹^˜x×2Ñ2°6×:Ó:ä�F“˜gÓ%ä˜“K 7Ö*ß$™HØ# tÖ+ð ˜'Ö!ä˜&“kˆGØ�{ˆHØ—x‘x Ó,ˆHß‰tŸH™HØ$(�[Ô!ñS &ðT €Or!   )Ú
__future__r   r   Úi18nr   r   r   Ú r   Úutilsr	   ÚurlerrÚurlreqr   rd   r3   r!   r   Ú<module>rk      sB   ðõ #ã 	å Ý ÷õð
 
�‰€Ø	�‰€÷)ñ )óZ@r!   