Ë
    	V.jÞ  ã                   ó  — d dl Z d dlZd dlZd dlZd dlZd dlmZ ej                  dk(  r	 d dlZndZ	 d dlZd dlmZ eeefZ eed«      rej&                  Zd„ Znd„ Z	 ej,                  Zej.                  Zd
„ Zd"d„Zd„ Z	 ej8                  Zd"d„Zd„ Z	 d dlZd„ Z ej                  dk(  rd„ Z!d„ Z"nd dlm#Z# d dl$m$Z$m%Z%m&Z& d„ Z"d„ Z!dZ'dZ(ej                  dk(  r		 d dl)Z)d„ Z*y	 d dlm+Z+m,Z, dej                  v sej                  dk(  rd„ Z-nd „ Z-d!„ Z*y# e	$ r	 d dl
mZ Y Œñw xY w# e	$ r dZY Œùw xY w# e$ r d	„ Z e«       \  ZZ[Y ŒÒw xY w# e$ r
 d„ Zd"d„ZY ŒÉw xY w# e	$ r d„ Z Y ŒÌw xY w# e	$ r dZ)Y d„ Z*yw xY w# e	$ r dxZ+Z,Y Œšw xY w)#é    N)Úzip_longestÚwin32)r   )ÚUnsupportedOperationÚwritec                 ó    — t        | ||d  «      S ©N)Ú	__write__©ÚfdÚbufÚoffsets      úQC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\billiard/compat.pyÚsend_offsetr      s   € Ü˜˜S  ˜\Ó*Ð*ó    c                 ó   — t        d«      ‚)Nr   ©ÚNotImplementedErrorr
   s      r   r   r   "   s   € Ü! -Ó0Ð0r   c                  ób   ‡‡— t        j                  «       Š‰dk(  rdŠndŠˆˆfd„} ˆˆfd„}| |fS )NÚmbcsÚstrictÚsurrogateescapec                 ó®   •— t        | t        «      r| S t        | t        «      r| j                  ‰‰«      S t	        dt        | «      j                  z  «      ‚)a  
            Encode filename to the filesystem encoding with 'surrogateescape'
            error handler, return bytes unchanged. On Windows, use 'strict'
            error handler if the file system encoding is 'mbcs' (which is the
            default encoding).
            úexpect bytes or str, not %s)Ú
isinstanceÚbytesÚstrÚencodeÚ	TypeErrorÚtypeÚ__name__©ÚfilenameÚencodingÚerrorss    €€r   Úfsencodez_fscodec.<locals>.fsencode1   sQ   ø€ ô ˜(¤EÔ*Ø�Ü˜H¤cÔ*Ø—‘ x°Ó8Ð8äÐ =Ü"& x£.×"9Ñ"9ñ!:ó ;ð ;r   c                 ó®   •— t        | t        «      r| S t        | t        «      r| j                  ‰‰«      S t	        dt        | «      j                  z  «      ‚)a  
            Decode filename from the filesystem encoding with 'surrogateescape'
            error handler, return str unchanged. On Windows, use 'strict' error
            handler if the file system encoding is 'mbcs' (which is the default
            encoding).
            r   )r   r   r   Údecoder   r   r    r!   s    €€r   Úfsdecodez_fscodec.<locals>.fsdecode@   sQ   ø€ ô ˜(¤CÔ(Ø�Ü˜H¤eÔ,Ø—‘ x°Ó8Ð8äÐ =Ü"& x£.×"9Ñ"9ñ!:ó ;ð ;r   )ÚsysÚgetfilesystemencoding)r%   r(   r#   r$   s     @@r   Ú_fscodecr+   *   s:   ù€ Ü×,Ñ,Ó.ˆØ�vÒØ‰Fà&ˆFõ	;õ	;ð ˜Ð!Ð!r   c                 óz   — t        | t        j                  «      r| S 	 | j                  «       S # t        $ r Y yw xY w)z3Get object fileno, or :const:`None` if not defined.N)r   ÚnumbersÚIntegralÚfilenoÚFILENO_ERRORS)Úfs    r   Úmaybe_filenor2   U   s:   € ä�!”W×%Ñ%Ô&ØˆðØ�x‰x‹zÐøÜò Ùðús   ž. ®	:¹:c                 óÆ   — 	 t        j                  d«      S #  Y nxY wt        €| S t        j                  t        j                  «      d   }|t        j
                  k(  r| S |S )z­Return the maximum number of open file descriptors
    on this system.

    :keyword default: Value returned if there's no file
                      descriptor limit.

    ÚSC_OPEN_MAXé   )ÚosÚsysconfÚresourceÚ	getrlimitÚRLIMIT_NOFILEÚRLIM_INFINITY)ÚdefaultÚfdmaxs     r   Ú	get_fdmaxr>   _   s^   € ðÜ�z‰z˜-Ó(Ð(øðÙúÜÐØˆÜ×Ñœx×5Ñ5Ó6°qÑ9€EØ”×&Ñ&Ò&ØˆØ€Ls   ‚ —c                 ó.   ‡— t        «       Šˆfd„| D «       S )z7Return all unique elements in ``it``, preserving order.c              3   óR   •K  — | ]  }|‰vsŒ‰j                  |«      xs |–— Œ  y ­wr   )Úadd)Ú.0ÚobjÚseens     €r   Ú	<genexpr>zuniq.<locals>.<genexpr>v   s(   øè ø€ ÐB©B S°#¸T²/ˆD�H‰H�S‹MÒ ˜SÓ ©Bùs   ƒ	'�')Úset)ÚitrD   s    @r   ÚuniqrH   s   s   ø€ ä‹5€DÛB©BÓBÐBr   c                 ó@  — | xs g D �cg c]  }t        |«      �t        |«      ‘Œ } }t        t        t        d¬«      «      «      D ]  }|| vsŒ	 t	        j
                  |«       Œ y c c}w # t        $ r(}|j                  t        j                  k7  r‚ Y d }~ŒRd }~ww xY w)Né   ©r<   )	r2   ÚreversedÚranger>   r6   ÚcloseÚOSErrorÚerrnoÚEBADF)Úkeepr1   r   Úexcs       r   Úclose_open_fdsrT   �   s—   € àš* "˜*óFÙ$�A¬°a«Ð)Dô ˜Q•Ø$ð 	ð Fäœ5¤°4Ô!8Ó9Ö:ˆBØ˜Š~ðÜ—H‘H˜R•Lñ ;ùòFøô ò Ø—y‘y¤E§K¡KÒ/Øô 0ûðús   ‰A'ÁA,Á,	BÁ5BÂBc                 óÌ   — t        t        | |«      «      D ]  }	 t        j                  |«       Œ y # t        $ r(}|j
                  t
        j                  k7  r‚ Y d }~ŒHd }~ww xY wr   )rL   rM   r6   rN   rO   rP   rQ   )Úfd_lowÚfd_highr   rS   s       r   Ú
closerangerX   }   sR   € Üœ5 ¨Ó1Ö2ˆBðÜ—‘˜•ñ 3øô ò Ø—9‘9¤§¡Ò+Øô ,ûðús   š2²	A#»AÁA#c                 ó  — t        t        t        d„ t        t        | xs g «      D «       «      «      «      } t        d¬«      }t        dg| z   «      t        | |gz   «      }}t        ||«      D ]  \  }}|dz   |k7  sŒt        |dz   |«       Œ y )Nc              3   ó&   K  — | ]	  }|€Œ|–— Œ y ­wr   © ©rB   r1   s     r   rE   z!close_open_fds.<locals>.<genexpr>‡   s   è ø€ ð  
Ù4�!¸¹ŒAÑ4ùó   ‚ŠrJ   rK   éÿÿÿÿr5   )	ÚlistrH   ÚsortedÚmapr2   r>   Úiterr   rX   )rR   ÚmaxfdÚkLÚkHÚlowÚhighs         r   rT   rT   …   s‹   € ä”Dœñ  
Üœ<¨ª°Ô4ó 
ó 
ó ó ˆô  $Ô'ˆÜ�r�d˜T‘kÓ"¤D¨°°©Ó$8ˆBˆÜ$ R¨Ö,‰IˆC�Ø�Q‰w˜$‹Ü˜3 ™7 DÕ)ñ -r   c                 ó:   — 	 | j                   S # t        $ r Y yw xY w)zV:exc:`socket.error` and :exc:`IOError` first got
    the ``.errno`` attribute in Py2.7r   )rP   ÚAttributeError)rS   s    r   Ú	get_errnorj   œ   s#   € ðØ�y‰yÐøÜò Ùðús   ‚ Ž	™c                 ó�  — t        |«      }t        j                  «       \  }}	 |t        | «      gdt	        |«      d d dddddd||ddg}t
        j                  dk\  r|j                  d«       t
        j                  dk\  r|j                  d«       |j                  d «       dt
        j                  cxk  rdk  r"n n|j                  t        j                  «       t        j                  |Ž t        j                  |«       t        j                  |«       S # t        j                  |«       t        j                  |«       w xY w)NTr^   F)é   é   )rl   é	   )NNNr^   )rl   é   )r`   r6   Úpiper%   Útupler)   Úversion_infoÚappendÚextendÚ
subprocessÚ
_USE_VFORKÚ_posixsubprocessÚ	fork_execrN   )ÚpathÚargsÚpassfdsÚerrpipe_readÚerrpipe_writes        r   Úspawnv_passfdsr~   ¶   sþ   € Ü˜“/ˆÜ&(§g¡g£iÑ#ˆ�mð	$à”x “~Ð&¨¬e°G«n¸dÀDØ�B˜˜B  B¨°mØ�uðˆDô ×Ñ 7Ò*Ø—‘˜B”Ü×Ñ 6Ò)Ø—‘Ð2Ô3Ø�K‰K˜ÔØœ#×*Ñ*Ô4¨WÕ4Ø—‘œJ×1Ñ1Ô2Ü#×-Ñ-¨tÐ4ä�H‰H�\Ô"Ü�H‰H�]Õ#øô �H‰H�\Ô"Ü�H‰H�]Õ#ús   ¤C
D Ä,Ec                 ó8  — t         j                  dk7  r5|t        t         j                  «      t        t         j                  «      gz   }t        j                  «       }|s;t        t        d„ |D «       «      ¬«       t        j                  t        | «      |«       |S )Nr   c              3   ó&   K  — | ]	  }|sŒ|–— Œ y ­wr   r[   r\   s     r   rE   z!spawnv_passfds.<locals>.<genexpr>²   s   è ø€ Ð&?±'¨QºQ¤q±'ùr]   )rR   )r)   Úplatformr2   ÚstdoutÚstderrr6   ÚforkrT   r`   Úexecvr%   )ry   rz   r{   Úpids       r   r~   r~   ¨   sq   € Ü�<‰<˜7Ò"ð ÜœSŸZ™ZÓ(ÜœSŸZ™ZÓ(ð!ñ ˆGô �g‰g‹iˆÙÜ¤Ñ&?±'Ó&?Ó ?Õ@Ü�H‰H”X˜d“^ TÔ*Øˆ
r   c                 ó   — t        d«      ‚)Nz$setblocking not implemented on win32r   )ÚhandleÚblockings     r   ÚsetblockingrŠ   Í   s   € Ü!Ð"HÓIÐIr   c                 ó   — t        d«      ‚)Nz#isblocking not implemented on win32r   ©rˆ   s    r   Ú
isblockingr�   Ð   s   € Ü!Ð"GÓHÐHr   )Ú
O_NONBLOCK)ÚfcntlÚF_GETFLÚF_SETFLc                 ó2   — t        | t        «      t        z   S r   )r�   r�   rŽ   rŒ   s    r   r�   r�   ×   s   € Ü˜&¤'Ó*¬ZÑ7Ð8Ð8r   c                 óx   — t        | t        d«      }t        | t        |r|t         z  «       y |t        z  «       y )Nr   )r�   r�   r‘   rŽ   )rˆ   r‰   Úflagss      r   rŠ   rŠ   Ú   s6   € Ü�fœg qÓ)ˆÜØ”GÙ%-ˆE”j�[Ñ!õ	
à38¼:Ñ3Eõ	
r   z‡
On Windows, the ability to inspect memory usage requires the psutil library.

You can install it using pip:

    $ pip install psutil
z’
Your platform ({0}) does not seem to have the `resource.getrusage' function.

Please open an issue so that we can add support for this platform.
c                  óÐ   — t         €t        t        j                  «       «      ‚t	        t        j
                  t        j                  «       «      j                  «       d   dz  «      S )Nr   ç      �@)	ÚpsutilÚImportErrorÚE_PSUTIL_MISSINGÚstripÚintÚProcessr6   ÚgetpidÚmemory_infor[   r   r   Úmem_rssrŸ   ù   sI   € äˆ>ÜÔ.×4Ñ4Ó6Ó7Ð7Ü”6—>‘>¤"§)¡)£+Ó.×:Ñ:Ó<¸QÑ?À&ÑHÓIÐIr   )Ú	getrusageÚRUSAGE_SELFÚbsdÚdarwinc                 ó   — t        | «      dz  S )Nr–   ©r›   ©Úvs    r   Úmaxrss_to_kbr¨     s   € ä�q“6˜F‘?Ð"r   c                 ó   — t        | «      S r   r¥   r¦   s    r   r¨   r¨     s   € ä�q“6ˆMr   c                  óÆ   — t         €:t        t        j                  «       j	                  t
        j                  «      «      ‚t        t        t        «      j                  «      S r   )r8   r˜   ÚE_RESOURCE_MISSINGrš   Úformatr)   r�   r¨   r    r¡   Ú	ru_maxrssr[   r   r   rŸ   rŸ     sB   € äÐÜÔ0×6Ñ6Ó8×?Ñ?ÄÇÁÓMÓNÐNÜœI¤kÓ2×<Ñ<Ó=Ð=r   r   ).rP   r-   r6   ru   r)   Ú	itertoolsr   r�   Ú_winapir˜   Ú_multiprocessingr   r8   Úior   ri   Ú
ValueErrorr0   Úhasattrr   r	   r   r%   r(   r+   r2   r>   rH   rX   rT   rj   rw   r~   rŠ   r�   rŽ   r�   r�   r‘   r™   r«   r—   rŸ   r    r¡   r¨   r[   r   r   Ú<module>r´      sü  ðÛ Û Û 	Û Û 
å !à‡<�<�7Òð6Üð €GðÛõ $Ø Ð-AÐB€ñ ˆ2ˆwÔØ—‘€Ió+ò
1ð,Ø�{‰{€HØ�{‰{€HòZóò(Cð Ø—‘€Jó,	òð#$Ûò $ð* ‡<�<�7ÒòJóIõ ß-Ñ-ò9ò
ðÐ ðÐ ð ‡<�<�7ÒðÛóJð'ß3ð �—‘Ñ §¡°Ò 8ó	#ò	ó>øðO ò 6ß5ð6ûð ò Ø‚Hðûð, ò )ò%"ñN "›Ñ€HˆhÚðS)ûðd ò *òõ	*ð*ûðX ò ôðûð^ ò Ø‰óJðûð ò 'Ø"&Ð&ˆ	’Kð'ús|   «D ³D' ÁD4 ÂE ÂE ÃE- Ã&E= ÄD$Ä#D$Ä'D1Ä0D1Ä4E
Å	E
ÅEÅEÅE*Å)E*Å-E:Å9E:Å=	F	ÆF	