Ë
    	V.j•�  ã            
       ó–  — d dl Z d dlZd dlZd dlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 dd	lmZ dd
lmZ d dlmZ d dlmZ g d¢Ze j$                  d    dk(  Zerd„ Znd„ Z e
j*                  ej                  e«       dD � cg c]  }  e  ei | «      «       «      ‘Œ c} Zed    eurd„ ZeD ]  Z e
j*                  ee«       Œ  G d„ d«      Zdi fd„Zd„ Z G d„ de«      Z d„ Z!d„ Z" G d„ d«      Z# G d„ d«      Z$ejJ                  ejL                  fejN                  ejP                  fd œZ) G d!„ d"«      Z* G d#„ d$e+«      Z, G d%„ d&«      Z-d'„ Z.i fd(„Z/	 	 d_d)„Z0 G d*„ d+«      Z1 G d,„ d-«      Z2d`d.„Z3 G d/„ d0e-«      Z4 G d1„ d2e-«      Z5 G d3„ d4e5«      Z6 G d5„ d6e-«      Z7 G d7„ d8e-«      Z8 G d9„ d:e-«      Z9 G d;„ d<e-«      Z:d=Z;ese;d>z  Z; e/d?e;«      Z< G d@„ dAe<«      Z= e/dBdC«      Z>dDZ?ese?dEz  Z? e/dFe?«      Z@ e/dGdH«      ZAdIdIdIdJdJdKœeA_B         G dL„ dGeA«      ZC G dM„ dNe*«      ZDeDj+                  dOe«       eDj+                  dPe«       eDj+                  dQejŠ                  e7«       eDj+                  dRejŒ                  e5«       eDj+                  dSejŽ                  e5«       eDj+                  dTej�                  e5«       eDj+                  dUej’                  e5«       eDj+                  dVej”                  e6«        eKedW«      reDj+                  dWej˜                  e8«       eDj+                  dXejš                  eC«       eDj+                  dYee=«       eDj+                  dZeNe>«       eDj+                  d-e2e:«       eDj+                  d[e3e@«       eDj+                  d+e1e9«       eDj+                  dJe4d\¬]«       eDj+                  dId\¬^«       yc c} w )aé    N)Ú
format_excé   )Ú
connection)Úcontext)Úpool)Úprocess)Ú	reduction)Úutil)Úget_context)ÚQueue)Ú	monotonic)ÚBaseManagerÚSyncManagerÚ	BaseProxyÚTokené   c                 óZ   — t         j                   | j                  | j                  «       ffS ©N)ÚarrayÚtypecodeÚtobytes©Úas    úSC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\billiard/managers.pyÚreduce_arrayr   *   s    € Ü�{‰{˜QŸZ™Z¨¯©«Ð5Ð5Ð5ó    c                 óZ   — t         j                   | j                  | j                  «       ffS r   )r   r   Útostringr   s    r   r   r   -   s    € Ü�{‰{˜QŸZ™Z¨¯©«Ð6Ð6Ð6r   )ÚitemsÚkeysÚvaluesc                 ó&   — t         t        | «      ffS r   )Úlist©Úobjs    r   Úrebuild_as_listr&   5   s   € Ü”d˜3“i�]Ð"Ð"r   c                   ó,   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zy)r   z3
    Type to uniquely identify a shared object
    ©ÚtypeidÚaddressÚidc                 ó0   — |||c| _         | _        | _        y r   r(   )Úselfr)   r*   r+   s       r   Ú__init__zToken.__init__E   s   € Ø06¸ÀÐ,ˆŒ�d”l D¥Gr   c                 óH   — | j                   | j                  | j                  fS r   r(   ©r-   s    r   Ú__getstate__zToken.__getstate__H   s   € Ø—‘˜TŸ\™\¨4¯7©7Ð3Ð3r   c                 ó.   — |\  | _         | _        | _        y r   r(   )r-   Ústates     r   Ú__setstate__zToken.__setstate__K   s   € Ø/4Ñ,ˆŒ�d”l D¥Gr   c                 ó‚   — | j                   j                  ›d| j                  ›d| j                  ›d| j                  ›d�S )Nz(typeid=z
, address=z, id=Ú))Ú	__class__Ú__name__r)   r*   r+   r0   s    r   Ú__repr__zToken.__repr__N   s-   € à�^‰^×$Ó$ d§k£k°4·<³<ÀÇÃðJð 	Jr   N)	r8   Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r.   r1   r4   r9   © r   r   r   r   ?   s$   „ ñð ,€IòEò4ò5óJr   r   r>   c                 óx   — | j                  ||||f«       | j                  «       \  }}|dk(  r|S t        ||«      ‚)zL
    Send a message to manager using connection `c` and return response
    ú#RETURN)ÚsendÚrecvÚconvert_to_error)Úcr+   Ú
methodnameÚargsÚkwdsÚkindÚresults          r   ÚdispatchrJ   W   sB   € ð ‡F�FˆB�
˜D $Ð'Ô(Ø—6‘6“8�L€Dˆ&ØˆyÒØˆÜ
˜4 Ó
(Ð(r   c                 ó¸   — | dk(  r|S | dk(  rt        |«      t        u sJ ‚t        |«      S | dk(  r!t        |«      t        u sJ ‚t        d|z  «      S t        d«      S )Nú#ERRORú
#TRACEBACKú#UNSERIALIZABLEzUnserializable message: %s
zUnrecognized message type)ÚtypeÚstrÚRemoteErrorÚ
ValueError)rH   rI   s     r   rC   rC   b   sl   € ØˆxÒØˆØ	�Ò	Ü�F‹|œsÑ"Ð"Ð"Ü˜6Ó"Ð"Ø	Ð"Ò	"Ü�F‹|œsÑ"Ð"Ð"ÜÐ9¸FÑBÓCÐCäÐ5Ó6Ð6r   c                   ó   — e Zd Zd„ Zy)rQ   c                 ó>   — dt        | j                  d   «      z   dz   S )NzM
---------------------------------------------------------------------------
r   zK---------------------------------------------------------------------------)rP   rF   r0   s    r   Ú__str__zRemoteError.__str__q   s   € Ø&¬¨T¯Y©Y°q©\Ó):Ñ:¸XÑEÐFr   N)r8   r:   r;   rU   r>   r   r   rQ   rQ   o   s   „ óGr   rQ   c                 ó|   — g }t        | «      D ]+  }t        | |«      }t        |«      sŒ|j                  |«       Œ- |S )z4
    Return a list of names of methods of `obj`
    )ÚdirÚgetattrÚcallableÚappend)r%   ÚtempÚnameÚfuncs       r   Úall_methodsr^   y   s=   € ð €DÜ�C–ˆÜ�s˜DÓ!ˆÜ�D�>Ø�K‰K˜Õð ð €Kr   c                 óP   — t        | «      D �cg c]  }|d   dk7  sŒ|‘Œ c}S c c}w )zP
    Return a list of names of methods of `obj` which do not start with '_'
    r   Ú_)r^   )r%   r\   s     r   Úpublic_methodsra   …   s-   € ô )¨Ô-Ó@Ñ-�T°°a±¸C³ŠDÐ-Ñ@Ð@ùÒ@s   Ž#œ#c                   óŠ   — e Zd ZdZg d¢Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zeee
dœZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚServerzM
    Server class which runs in a process controlled by a manager object
    )	ÚshutdownÚcreateÚaccept_connectionÚget_methodsÚ
debug_infoÚnumber_of_objectsÚdummyÚincrefÚdecrefc                 ó(  — t        |t        «      sJ ‚|| _        t        j                  |«      | _        t        |   \  }} ||d¬«      | _        | j                  j                  | _        ddi| _	        i | _
        t        j                  «       | _        y )Né   )r*   ÚbacklogÚ0©Nr>   )Ú
isinstanceÚbytesÚregistryr   ÚAuthenticationStringÚauthkeyÚlistener_clientÚlistenerr*   Ú	id_to_objÚid_to_refcountÚ	threadingÚRLockÚmutex)r-   rt   r*   rv   Ú
serializerÚListenerÚClients          r   r.   zServer.__init__—   s}   € Ü˜'¤5Ô)Ð)Ð)Ø ˆŒÜ×3Ñ3°GÓ<ˆŒÜ*¨:Ñ6Ñˆ�&ñ !¨¸"Ô=ˆŒØ—}‘}×,Ñ,ˆŒà˜zÐ*ˆŒØ ˆÔÜ—_‘_Ó&ˆ�
r   c                 ó¢  — t        j                  «       | _        | t        j                  «       _        	 t        j                  | j                  ¬«      }d|_        |j                  «        	 | j                  j                  «       s6| j                  j                  d«       | j                  j                  «       sŒ6t        j                  t        j                   k7  rGt#        j$                  d«       t        j                   t        _        t        j&                  t        _        t        j*                  d«       y# t        t        f$ r Y Œ�w xY w# t        j                  t        j                   k7  rGt#        j$                  d«       t        j                   t        _        t        j&                  t        _        t        j*                  d«       w xY w)z(
        Run the server forever
        )ÚtargetTr   zresetting stdout, stderrr   N)r{   ÚEventÚ
stop_eventr   Úcurrent_processÚ_manager_serverÚThreadÚaccepterÚdaemonÚstartÚis_setÚwaitÚKeyboardInterruptÚ
SystemExitÚsysÚstdoutÚ
__stdout__r
   ÚdebugÚ
__stderr__ÚstderrÚexit)r-   rˆ   s     r   Úserve_foreverzServer.serve_forever¥   s   € ô $Ÿ/™/Ó+ˆŒØ48Œ×ÑÓ!Ô1ð	Ü ×'Ñ'¨t¯}©}Ô=ˆHØ"ˆHŒOØ�N‰NÔðØŸ/™/×0Ñ0Ô2Ø—O‘O×(Ñ(¨Ô+ð Ÿ/™/×0Ñ0Õ2ô
 �z‰zœSŸ^™^Ò+Ü—
‘
Ð5Ô6Ü Ÿ^™^””
Ü Ÿ^™^””
Ü�H‰H�Q�Køô &¤zÐ2ò Ùðûô �z‰zœSŸ^™^Ò+Ü—
‘
Ð5Ô6Ü Ÿ^™^””
Ü Ÿ^™^””
Ü�H‰H�Q�Kús+   ´7E Á,AD: Ä:EÅ	E ÅEÅE ÅA?Gc                 óÌ   — 	 	 | j                   j                  «       }t        j                  | j
                  |f¬«      }d|_        |j                  «        ŒU# t        $ r Y Œaw xY w)NT©r‚   rF   )rx   ÚacceptÚOSErrorr{   r‡   Úhandle_requestr‰   rŠ   )r-   rD   Úts      r   rˆ   zServer.accepter»   sa   € ØðØ—M‘M×(Ñ(Ó*�ô × Ñ ¨×(;Ñ(;À1À%ÔHˆAØˆAŒHØ�G‰GŒIð øô ò Ùðús   ƒA Á	A#Á"A#c                 óâ  — dx}x}}	 t        j                  || j                  «       t        j                  || j                  «       |j	                  «       }|\  }}}}|| j
                  v s
J d|z  «       ‚t        | |«      }	  ||g|¢­i |¤Ž}d|f}		 |j                  |	«       |j                  «        y# t        $ r dt        «       f}	Y Œ:w xY w# t        $ r dt        «       f}	Y ŒUw xY w# t        $ rx}
	 |j                  dt        «       f«       n# t        $ r Y nw xY wt        j                  d|	«       t        j                  d|«       t        j                  d|
«       Y d}
~
ŒÃd}
~
ww xY w)z)
        Handle a new connection
        Nz%r unrecognizedr@   rM   zFailure to send message: %rz ... request was %rú ... exception was %r)r   Údeliver_challengerv   Úanswer_challengerB   ÚpublicrX   Ú	Exceptionr   rA   r
   ÚinfoÚclose)r-   rD   ÚfuncnamerI   ÚrequestÚignorerF   rG   r]   ÚmsgÚexcs              r   r›   zServer.handle_requestÅ   sf  € ð '+Ð*ˆÐ*�6˜Gð	*Ü×(Ñ(¨¨D¯L©LÔ9Ü×'Ñ'¨¨4¯<©<Ô8Ø—f‘f“hˆGØ+2Ñ(ˆF�H˜d DØ˜tŸ{™{Ñ*ÐHÐ,=ÀÑ,HÓHÐ*Ü˜4 Ó*ˆDð*Ù˜aÐ/ $Ò/¨$Ñ/�ð ! &Ð)�ð		4Ø�F‰F�3ŒKð 	
�‰�	øô ò 3Ø#¤Z£\Ð2’ð3ûô ò 	/Ø¤£Ð.ŠCð	/ûô ò 	4ðØ—‘˜¤j£lÐ3Õ4øÜò Ùðúä�I‰IÐ3°SÔ9Ü�I‰IÐ+¨WÔ5Ü�I‰IÐ-¨s×3Ñ3ûð	4ús[   ˆA;C ÂB7 ÂC- Â7CÃCÃC*Ã)C*Ã-	E.Ã7DÄE)Ä	DÄE)ÄDÄAE)Å)E.c                 ó®  — t        j                  dt        j                  «       j                  «       |j
                  }|j                  }| j                  }| j                  j                  «       sÉ	 dx}} |«       }|\  }}}	}
||   \  }}}||vrt        d|›dt        |«      ›d|›�«      ‚t        ||«      }	  ||	i |
¤Ž}|xr |j                  |d«      }|r4| j                  |||«      \  }}t        || j                   |«      }d||ff}nd|f}	 	 	  |«       | j                  j                  «       sŒÈyy# t"        $ r}d|f}Y d}~Œ9d}~ww xY w# t        $ rQ €d	t%        «       f}n?	 | j&                  |   } || |g	¢­i 
¤Ž}d|f}n# t"        $ r d	t%        «       f}Y nw xY wY Œšt(        $ rJ t        j                  d
t        j                  «       j                  «       t+        j,                  d«       Y Œët"        $ r d	t%        «       f}Y �Œw xY w# t"        $ r  |dt/        «      f«       Y �Œw xY w# t"        $ rŽ}t        j0                  dt        j                  «       j                  «       t        j0                  d«       t        j0                  d|«       |j3                  «        t+        j,                  d«       Y d}~�Œ±d}~ww xY w)zQ
        Handle requests from the proxies in a particular process/thread
        z$starting server thread to service %rNzmethod z of z object is not in exposed=ú#PROXYr@   rL   rM   z$got EOF -- exiting thread serving %rr   rN   zexception in thread serving %rz ... message was %rrž   r   )r
   r’   r{   Úcurrent_threadr\   rB   rA   ry   r„   r‹   ÚAttributeErrorrO   rX   Úgetre   r   r*   r¢   r   Úfallback_mappingÚEOFErrorr�   r•   Úreprr£   r¤   )r-   ÚconnrB   rA   ry   rE   r%   r¦   ÚidentrF   rG   ÚexposedÚ	gettypeidÚfunctionÚresr)   ÚridentÚrexposedÚtokenr¨   r©   Úfallback_funcrI   s                          r   Úserve_clientzServer.serve_clientç   sº  € ô 	�
‰
Ð9Ü×+Ñ+Ó-×2Ñ2ô	4ð �y‰yˆØ�y‰yˆØ—N‘Nˆ	à—/‘/×(Ñ(Ô*ð.3Ø#'Ð'�
˜SÙ›&�Ø07Ñ-��z 4¨Ø*3°EÑ*:Ñ'��W˜ià WÑ,Ý(â&¬¨S­	±7ð<óð ô
 # 3¨
Ó3�ð/Ù" DÐ1¨DÑ1�Cð 'ÒJ¨9¯=©=¸ÀTÓ+J�FÙØ+/¯;©;°t¸VÀSÓ+IÑ(˜ Ü % f¨d¯l©l¸FÓ C˜Ø'¨(°EÐ):Ð;™à(¨#Ð.™ð.ð9Ù˜”Iði —/‘/×(Ñ(×*øô$ !ò *Ø# S˜/•Cûð*ûô "ò ;ØÐ%Ø'¬«Ð6‘Cð;Ø(,×(=Ñ(=¸jÑ(I˜Ù!.Ø  $¨¨sð"Ø59ò"Ø=Añ"˜ð  )¨&Ð1™øÜ$ò ;Ø+¬Z«\Ð:šð;üô ò Ü—
‘
ÐAÜ$×3Ñ3Ó5×:Ñ:ô<ä—‘˜–äò 3Ø#¤Z£\Ð2“ð3ûô !ò 9ÙÐ+¬T°#«YÐ7×8ð9ûäò Ü—	‘	Ð:Ü#×2Ñ2Ó4×9Ñ9ô;ä—	‘	Ð/°Ô5Ü—	‘	Ð1°3Ô7Ø—
‘
”Ü—‘˜—’ûðús    Á2AE Â;D; ÃAE ÄH Ä;	EÅEÅE ÅEÅE ÅHÅ."FÆHÆF)Æ&HÆ(F)Æ)HÆ.AHÇ?HÈHÈH:È6H= È9H:È:H= È=	KÉBKËKc                 ó   — |S r   r>   ©r-   r²   r³   r%   s       r   Úfallback_getvaluezServer.fallback_getvalue1  s   € Øˆ
r   c                 ó   — t        |«      S r   ©rP   r¾   s       r   Úfallback_strzServer.fallback_str4  s   € Ü�3‹xˆr   c                 ó   — t        |«      S r   )r±   r¾   s       r   Úfallback_reprzServer.fallback_repr7  s   € Ü�C‹yÐr   )rU   r9   ú	#GETVALUEc                  ó   — y r   r>   ©r-   rD   s     r   rj   zServer.dummy@  s   € Ør   c                 ór  — | j                   5  g }t        | j                  j                  «       «      }|j	                  «        |D ]K  }|dk7  sŒ	|j                  d|›d| j                  |   ›dt        | j                  |   d   «      dd ›�«       ŒM dj                  |«      cddd«       S # 1 sw Y   yxY w)	zO
        Return some info --- useful to spot problems with refcounting
        rp   z  z:       refcount=z
    r   NéK   Ú
)	r}   r#   ry   r    ÚsortrZ   rz   rP   Újoin)r-   rD   rI   r    r³   s        r   rh   zServer.debug_infoC  s™   € ð �Z‹ZØˆFÜ˜Ÿ™×+Ñ+Ó-Ó.ˆDØ�I‰IŒKÛ�Ø˜C“<Ø—M’MÚ#(¨$×*=Ñ*=¸eÓ*DÜ#& t§~¡~°eÑ'<¸QÑ'?Ó#@ÀÀ"Ñ#Eð#Gõ Hð ð
 —9‘9˜VÓ$÷ �ZŠZús   �A B-ÁAB-Â-B6c                 ó2   — t        | j                  «      dz
  S )z*
        Number of shared objects
        r   )Úlenry   rÇ   s     r   ri   zServer.number_of_objectsR  s   € ô �4—>‘>Ó" QÑ&Ð&r   c                 óú   — 	 t        j                  d«       |j                  d«       | j
                  j                  «        y#  ddl}|j	                  «        Y Œ3xY w# | j
                  j                  «        w xY w)z'
        Shutdown this process
        z!Manager received shutdown message©r@   Nr   N)r
   r’   rA   Ú	tracebackÚ	print_excr„   Úset)r-   rD   rÑ   s      r   rd   zServer.shutdownX  sZ   € ð	"Ü�J‰JÐ:Ô;Ø�F‰FÐ$Ô%ð
 �O‰O×ÑÕ!øð		"ÛØ×ÑÖ!ûà�O‰O×ÑÕ!ús   ‚&A ÁAÁA ÁA:c                 ó  — | j                   5  | j                  |   \  }}}}|€t        |«      dk(  r|rJ ‚|d   }	n ||i |¤Ž}	|€t        |	«      }|�*t	        |«      t
        u sJ ‚t        |«      t        |«      z   }dt        |	«      z  }
t        j                  d||
«       |	t        |«      |f| j                  |
<   |
| j                  vrd| j                  |
<   | j                  ||
«       |
t        |«      fcddd«       S # 1 sw Y   yxY w)z>
        Create a new shared object and return its id
        Nr   r   z%xz&%r callable returned object with id %r)r}   rt   rÎ   ra   rO   Údictr#   r+   r
   r’   rÓ   ry   rz   rk   Útuple)r-   rD   r)   rF   rG   rY   r´   Úmethod_to_typeidÚ	proxytyper%   r³   s              r   re   zServer.createe  s  € ð �Z‹Zà—‘˜fÑ%ñ ;ˆH�gÐ/°ð ÐÜ˜4“y A’~©dÐ2Ð2Ø˜1‘g‘á Ð-¨Ñ-�àˆÜ(¨Ó-�ØÐ+ÜÐ,Ó-´Ñ5Ð5Ð5Ü˜w›-¬$Ð/?Ó*@Ñ@�ð œ2˜c›7‘NˆEÜ�J‰JÐ?ÀÈÔOà%(¬#¨g«,Ð8HÐ$IˆD�N‰N˜5Ñ!Ø˜D×/Ñ/Ñ/Ø-.�×#Ñ# EÑ*ð �K‰K˜˜5Ô!Øœ% ›.Ð(÷; �ZŠZús   �C+DÄDc                 óL   — t        | j                  |j                     d   «      S )zL
        Return the methods of the shared object indicated by token
        r   )rÖ   ry   r+   )r-   rD   rº   s      r   rg   zServer.get_methodsˆ  s!   € ô �T—^‘^ E§H¡HÑ-¨aÑ0Ó1Ð1r   c                 óz   — |t        j                  «       _        |j                  d«       | j	                  |«       y)z=
        Spawn a new thread to serve this connection
        rÐ   N)r{   r¬   r\   rA   r¼   )r-   rD   r\   s      r   rf   zServer.accept_connectionŽ  s0   € ð +/Œ	× Ñ Ó"Ô'Ø	�‰Ð Ô!Ø×Ñ˜!Õr   c                 ót   — | j                   5  | j                  |xx   dz  cc<   d d d «       y # 1 sw Y   y xY w)Nr   )r}   rz   ©r-   rD   r³   s      r   rk   zServer.incref–  s)   € Ø�Z‹ZØ×Ñ Ó&¨!Ñ+Ó&÷ �Z‰Zús   �.®7c                 ó   — | j                   5  | j                  |   dk\  sJ ‚| j                  |xx   dz  cc<   | j                  |   dk(  r0| j                  |= | j                  |= t        j                  d|«       d d d «       y # 1 sw Y   y xY w)Nr   r   zdisposing of obj with id %r)r}   rz   ry   r
   r’   rÜ   s      r   rl   zServer.decrefš  s}   € Ø�Z‹ZØ×&Ñ& uÑ-°Ò2Ð2Ð2Ø×Ñ Ó&¨!Ñ+Ó&Ø×"Ñ" 5Ñ)¨QÒ.Ø—N‘N 5Ð)¨4×+>Ñ+>¸uÐ+EÜ—
‘
Ð8¸%Ô@÷ �Z‰Zús   �A.BÂBN)r8   r:   r;   r<   r¡   r.   r–   rˆ   r›   r¼   r¿   rÂ   rÄ   r¯   rj   rh   ri   rd   re   rg   rf   rk   rl   r>   r   r   rc   rc   �   s|   „ ñòN€Fò'òò,ò òDHòTòòð  Ø!Ø&ñÐòò%ò'ò"ò!)òF2òò,óAr   rc   c                   ó   — e Zd ZdgZdZdZdZy)ÚStateÚvaluer   r   é   N)r8   r:   r;   r=   ÚINITIALÚSTARTEDÚSHUTDOWNr>   r   r   rß   rß   §  s   „ Ø�	€IØ€GØ€GØ�Hr   rß   )ÚpickleÚ	xmlrpclibc                   ó°   — e Zd ZdZi ZeZ	 	 dd„Zd„ Zd„ Z	d„ Z
dd„Ze	 dd„«       Zd	„ Zdd
„Zd„ Zd„ Zd„ Zd„ Zed„ «       Z ed„ «      Ze	 	 dd„«       Zy)r   z!
    Base class for managers
    Nc                 óB  — |€t        j                  «       j                  }|| _        t        j                  |«      | _        t        «       | _        t        j                  | j                  _	        || _
        t        |   \  | _        | _        |xs
 t        «       | _        y r   )r   r…   rv   Ú_addressru   Ú_authkeyrß   Ú_staterâ   rà   Ú_serializerrw   Ú	_ListenerÚ_Clientr   Ú_ctx)r-   r*   rv   r~   Úctxs        r   r.   zBaseManager.__init__Â  sv   € àˆ?Ü×-Ñ-Ó/×7Ñ7ˆGØˆŒÜ×4Ñ4°WÓ=ˆŒÜ“gˆŒÜ!ŸM™Mˆ�‰ÔØ%ˆÔÜ'6°zÑ'BÑ$ˆŒ˜œØÒ(œ;›=ˆ�	r   c                 ór   — t        | «      j                  | j                  | j                  | j                  ffS r   )rO   Úfrom_addressré   rê   rì   r0   s    r   Ú
__reduce__zBaseManager.__reduce__Î  s3   € Ü�T“
×'Ñ'Ø—‘ §¡¨t×/?Ñ/?Ð@ðBð 	Br   c                 óÀ   — | j                   j                  t        j                  k(  sJ ‚t	        | j
                  | j                  | j                  | j                  «      S )zX
        Return server object with serve_forever() method and address attribute
        )	rë   rà   rß   râ   rc   Ú	_registryré   rê   rì   r0   s    r   Ú
get_serverzBaseManager.get_serverÒ  sH   € ð �{‰{× Ñ ¤E§M¡MÒ1Ð1Ð1Ü�d—n‘n d§m¡mØ—m‘m T×%5Ñ%5ó7ð 	7r   c                 óÄ   — t         | j                     \  }} || j                  | j                  ¬«      }t	        |dd«       t
        j                  | j                  _        y)z>
        Connect manager object to the server process
        ©rv   Nrj   )	rw   rì   ré   rê   rJ   rß   rã   rë   rà   )r-   r   r€   r²   s       r   ÚconnectzBaseManager.connectÚ  sI   € ô +¨4×+;Ñ+;Ñ<Ñˆ�&Ù�d—m‘m¨T¯]©]Ô;ˆÜ��t˜WÔ%Ü!ŸM™Mˆ�‰Õr   c           
      óØ  — | j                   j                  t        j                  k(  sJ ‚|�t	        |«      st        d«      ‚t        j                  d¬«      \  }}| j                  j                  t        | «      j                  | j                  | j                  | j                  | j                  |||f¬«      | _        dj#                  d„ | j                   j$                  D «       «      }t        | «      j&                  dz   |z   | j                   _        | j                   j+                  «        |j-                  «        |j/                  «       | _        |j-                  «        t        j0                  | j                   _        t3        j4                  | t        | «      j6                  | j                   | j                  | j                  | j                   | j8                  fd	¬
«      | _        y)z@
        Spawn a server process for this manager object
        Nzinitializer must be a callableF)Úduplexr˜   Ú:c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   rÁ   )Ú.0Úis     r   Ú	<genexpr>z$BaseManager.start.<locals>.<genexpr>õ  s   è ø€ ÐAÑ)@ Aœ˜QŸÑ)@ùs   ‚Ú-r   ©rF   Úexitpriority)rë   rà   rß   râ   rY   Ú	TypeErrorr   ÚPiperï   ÚProcessrO   Ú_run_serverrõ   ré   rê   rì   Ú_processrÌ   Ú	_identityr8   r\   rŠ   r¤   rB   rã   r
   ÚFinalizeÚ_finalize_managerrî   rd   )r-   ÚinitializerÚinitargsÚreaderÚwriterr³   s         r   rŠ   zBaseManager.startã  si  € ð �{‰{× Ñ ¤E§M¡MÒ1Ð1Ð1àÐ"¬8°KÔ+@ÜÐ<Ó=Ð=ô $Ÿ™°Ô6‰ˆ�ð Ÿ	™	×)Ñ)Ü˜“:×)Ñ)Ø—.‘. $§-¡-°·±Ø×"Ñ" F¨K¸ðCð *ó 
ˆŒð
 —‘ÑA¨¯©×)@Ò)@ÓAÓAˆÜ! $›Z×0Ñ0°3Ñ6¸Ñ>ˆ�‰ÔØ�‰×ÑÔð 	�‰ŒØŸ™›ˆŒØ�‰Œô "ŸM™Mˆ�‰ÔÜŸ™Ø”$�t“*×.Ñ.Ø—-‘- §¡°·±Ø—+‘+˜tŸ|™|ð-àô	
ˆ�r   c                 óð   — |� ||Ž  | j                  ||||«      }|j                  |j                  «       |j                  «        t	        j
                  d|j                  «       |j                  «        y)z@
        Create a server, report its address and run it
        Nzmanager serving at %r)Ú_ServerrA   r*   r¤   r
   r£   r–   )	Úclsrt   r*   rv   r~   r  r  r  Úservers	            r   r  zBaseManager._run_server  sd   € ð Ð"Ù˜Ñ"ð —‘˜X w°¸ÓDˆð 	�‰�F—N‘NÔ#Ø�‰Œô 	�	‰	Ð)¨6¯>©>Ô:Ø×ÑÕr   c                 óV  — | j                   j                  t        j                  k(  sJ d«       ‚| j	                  | j
                  | j                  ¬«      }	 t        |dd|f|z   |«      \  }}|j                  «        t        || j
                  |«      |fS # |j                  «        w xY w)zP
        Create a new shared object; return the token and exposed tuple
        zserver not yet startedrø   Nre   )
rë   rà   rß   rã   rî   ré   rê   rJ   r¤   r   )r-   r)   rF   rG   r²   r+   r´   s          r   Ú_createzBaseManager._create  s•   € ð �{‰{× Ñ ¤E§M¡MÒ1ÐKÐ3KÓKÐ1Ø�|‰|˜DŸM™M°4·=±=ˆ|ÓAˆð	Ü" 4¨¨xØ$* 9¨tÑ#3°Tó;‰KˆB�ð �J‰JŒLÜ�V˜TŸ]™]¨BÓ/°Ð8Ð8øð �J‰J�Lús   ÁB ÂB(c                 ó˜   — | j                   �>| j                   j                  |«       | j                   j                  «       sd| _         yyy)zC
        Join the manager process (if it has been spawned)
        N)r  rÌ   Úis_alive©r-   Útimeouts     r   rÌ   zBaseManager.join(  sA   € ð �=‰=Ð$Ø�M‰M×Ñ˜wÔ'Ø—=‘=×)Ñ)Ô+Ø $�•ð ,ð %r   c                 ó¶   — | j                  | j                  | j                  ¬«      }	 t        |dd«      |j	                  «        S # |j	                  «        w xY w)zS
        Return some info about the servers shared objects and connections
        rø   Nrh   ©rî   ré   rê   rJ   r¤   ©r-   r²   s     r   Ú_debug_infozBaseManager._debug_info1  sB   € ð �|‰|˜DŸM™M°4·=±=ˆ|ÓAˆð	Ü˜D $¨Ó5à�J‰J�LøˆD�J‰J�Lúó   ©A ÁAc                 ó¶   — | j                  | j                  | j                  ¬«      }	 t        |dd«      |j	                  «        S # |j	                  «        w xY w)z5
        Return the number of shared objects
        rø   Nri   r  r  s     r   Ú_number_of_objectszBaseManager._number_of_objects;  sC   € ð �|‰|˜DŸM™M°4·=±=ˆ|ÓAˆð	Ü˜D $Ð(;Ó<à�J‰J�LøˆD�J‰J�Lúr  c                 óÆ   — | j                   j                  t        j                  k(  r| j	                  «        | j                   j                  t        j
                  k(  sJ ‚| S r   )rë   rà   rß   râ   rŠ   rã   r0   s    r   Ú	__enter__zBaseManager.__enter__E  sB   € Ø�;‰;×Ñ¤§¡Ò-Ø�J‰JŒLØ�{‰{× Ñ ¤E§M¡MÒ1Ð1Ð1Øˆr   c                 ó$   — | j                  «        y r   )rd   ©r-   Úexc_typeÚexc_valÚexc_tbs       r   Ú__exit__zBaseManager.__exit__K  s   € Ø�‰�r   c                 ó   —  | j                   «       rãt        j                  d«       	  |||¬«      }	 t        |dd«       |j	                  «        	  | j                  d¬«        | j                   «       r€t        j                  d«       t        | d«      r_t        j                  d	«        | j                  «         | j                  d
¬«        | j                   «       rt        j                  d«       t        j                  |_        	 t        j                  |= y# |j	                  «        w xY w# t
        $ r Y Œìw xY w# t        $ r Y yw xY w)zQ
        Shutdown the manager process; will be registered as a finalizer
        z#sending shutdown message to managerrø   Nrd   g      ð?)r  zmanager still aliveÚ	terminatez'trying to `terminate()` manager processgš™™™™™¹?z#manager still alive after terminate)r  r
   r£   rJ   r¤   r¢   rÌ   Úhasattrr*  rß   rä   rà   r   Ú_address_to_localÚKeyError)r   r*   rv   r3   rî   r²   s         r   r  zBaseManager._finalize_managerN  s  € ð
 ˆ7×ÑÔÜ�I‰IÐ;Ô<ðÙ˜w°Ô8�ð!Ü˜T 4¨Ô4à—J‘J•Lð ˆG�L‰L Õ%Øˆw×ÑÔ!Ü—	‘	Ð/Ô0Ü˜7 KÔ0Ü—I‘IÐGÔHØ%�G×%Ñ%Ô'Ø �G—L‘L¨Õ-Ø'�w×'Ñ'Ô)ÜŸ	™	Ð"GÔHä—n‘nˆŒð	Ü×+Ñ+¨GÑ4øð! —J‘J•LûÜò Ùðûô  ò 	Ùð	ús:   ¨
D2 ³D Á D2 ÄE ÄD/Ä/D2 Ä2	D>Ä=D>Å	EÅEc                 ó   — | j                   S r   )ré   r0   s    r   Ú<lambda>zBaseManager.<lambda>n  s   €  D§M¢Mr   c                 ó¶  ‡‡— d| j                   vr| j                  j                  «       | _        ‰€t        Š|xs t	        ‰dd«      }|xs t	        ‰dd«      }|rN|j                  «       D ];  \  }}t        |«      t        u s
J d|z  «       ‚t        |«      t        u rŒ3J d|z  «       ‚ |||‰f| j                  ‰<   |rˆˆfd„}	‰|	_        t        | ‰|	«       yy)z9
        Register a typeid with the manager type
        rõ   NÚ	_exposed_Ú_method_to_typeid_z%r is not a stringc                 ó(  •— t        j                  d‰«        | j                  ‰g|¢­i |¤Ž\  }} ‰|| j                  | | j                  |¬«      }| j                  |j                  | j                  ¬«      }t        |d d|j                  f«       |S )Nz)requesting creation of a shared %r object©Úmanagerrv   r´   rø   rl   )	r
   r’   r  rì   rê   rî   r*   rJ   r+   )	r-   rF   rG   rº   ÚexpÚproxyr²   rØ   r)   s	          €€r   r[   z"BaseManager.register.<locals>.temp�  s…   ø€ Ü—
‘
ÐFÈÔOØ)˜TŸ\™\¨&Ð@°4Ò@¸4Ñ@‘
��sÙ!Ø˜4×+Ñ+°TØ ŸM™M°3ô�ð —|‘| E§M¡M¸4¿=¹=�|ÓI�Ü˜˜t X°·±¨{Ô;Ø�r   )
Ú__dict__rõ   ÚcopyÚ	AutoProxyrX   r   rO   rP   r8   Úsetattr)
r  r)   rY   rØ   r´   r×   Úcreate_methodÚkeyrà   r[   s
    ` `      r   ÚregisterzBaseManager.registerp  sõ   ù€ ð ˜cŸl™lÑ*ØŸM™M×.Ñ.Ó0ˆCŒMàÐÜ!ˆIàÒBœW Y°¸TÓBˆð ò ;Ü�IÐ3°TÓ:ð 	ñ
 Ø.×4Ñ4Ö6‘
��UÜ˜C“y¤CÑ'ÐCÐ)=ÀÑ)CÓCÐ'Ü˜E“{¤cÒ)ÐGÐ+?À%Ñ+GÓGÐ)ð 7ð
 �gÐ/°ð!
ˆ�‰�fÑñ õ	ð #ˆDŒMÜ�C˜ Õ&ð r   )NNrå   Nrq   r   )NNNNT)r8   r:   r;   r<   rõ   rc   r  r.   ró   rö   rù   rŠ   Úclassmethodr  r  rÌ   r  r   r"  r(  Ústaticmethodr  Úpropertyr*   r>  r>   r   r   r   r   »  s¢   „ ñð €IØ€Gà>FØó
)òBò7ò*ó"
ðH à/1òó ðò&9ó%òòòòð ñó ðñ> Ñ1Ó2€GàØEIØ6:ò''ó ñ''r   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚProcessLocalSetc                 ó2   — t        j                  | d„ «       y )Nc                 ó"   — | j                  «       S r   )Úclearr$   s    r   r/  z*ProcessLocalSet.__init__.<locals>.<lambda>¢  s
   € °3·9±9´;r   )r
   Úregister_after_forkr0   s    r   r.   zProcessLocalSet.__init__¡  s   € Ü× Ñ  Ñ'>Õ?r   c                 ó   — t        | «      dfS rq   )rO   r0   s    r   ró   zProcessLocalSet.__reduce__¤  s   € Ü�D‹z˜2ˆ~Ðr   N)r8   r:   r;   r.   ró   r>   r   r   rC  rC  Ÿ  s   „ ò@ór   rC  c                   óŽ   — e Zd ZdZi Z ej                  «       Z	 	 dd„Zd„ Z	di fd„Z
d„ Zd„ Zed	„ «       Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)r   z.
    A base for proxies of shared objects
    Nc                 ó  — t         j                  5  t         j                  j                  |j                  d «      }|€;t        j                  «       t        «       f}|t         j                  |j                  <   d d d «       d   | _        |d   | _	        || _
        | j                  j                  | _        || _        || _        t        |   d   | _        |�t#        j$                  |«      | _        nK| j                  �| j                  j&                  | _        n#t#        j(                  «       j*                  | _        |r| j-                  «        t        j.                  | t         j0                  «       y # 1 sw Y   ŒýxY w)Nr   r   )r   Ú_mutexr,  r®   r*   r
   ÚForkAwareLocalrC  Ú_tlsÚ_idsetÚ_tokenr+   Ú_idÚ_managerrì   rw   rî   r   ru   rê   r…   rv   Ú_increfrG  Ú_after_fork)r-   rº   r~   r5  rv   r´   rk   Ú	tls_idsets           r   r.   zBaseProxy.__init__³  s   € ä×ÓÜ!×3Ñ3×7Ñ7¸¿¹ÀtÓLˆIØÐ Ü ×/Ñ/Ó1´?Ó3DÐD�	Ø=F”	×+Ñ+¨E¯M©MÑ:÷	 ð ˜a‘LˆŒ	ð
   ‘lˆŒàˆŒØ—;‘;—>‘>ˆŒØˆŒØ%ˆÔÜ& zÑ2°1Ñ5ˆŒàÐÜ#×8Ñ8¸ÓAˆD�MØ�]‰]Ð&Ø ŸM™M×2Ñ2ˆD�Mä#×3Ñ3Ó5×=Ñ=ˆDŒMáØ�L‰LŒNä× Ñ  ¤y×'<Ñ'<Õ=÷? Ðús   ‘A(E5Å5E>c                 ó–  — t        j                  d«       t        j                  «       j                  }t        j                  «       j                  dk7  r$|dt        j                  «       j                  z   z  }| j                  | j                  j                  | j                  ¬«      }t        |d d|f«       || j                  _        y )Nzmaking connection to managerÚ
MainThreadÚ|rø   rf   )r
   r’   r   r…   r\   r{   r¬   rî   rO  r*   rê   rJ   rM  r   )r-   r\   r²   s      r   Ú_connectzBaseProxy._connectÖ  s•   € Ü�
‰
Ð1Ô2Ü×&Ñ&Ó(×-Ñ-ˆÜ×#Ñ#Ó%×*Ñ*¨lÒ:Ø�Cœ)×2Ñ2Ó4×9Ñ9Ñ9Ñ9ˆDØ�|‰|˜DŸK™K×/Ñ/¸¿¹ˆ|ÓGˆÜ��tÐ0°4°'Ô:Ø#ˆ�	‰	Õr   r>   c                 óú  — 	 | j                   j                  }|j                  | j                  |||f«       |j                  «       \  }}|dk(  r|S |dk(  r³|\  }}| j                  j                  |j                     d   }	| j                  j                   |_         |	|| j"                  | j                  | j$                  |¬«      }
| j'                  |j                   | j$                  ¬«      }t)        |dd|j*                  f«       |
S t-        ||«      ‚# t        $ r\ t        j                  dt        j                  «       j                  «       | j                  «        | j                   j                  }Y �Œaw xY w)	zW
        Try to call a method of the referrent and return a copy of the result
        z#thread %r does not own a connectionr@   r«   éÿÿÿÿr4  rø   Nrl   )rM  r   r­   r
   r’   r{   r¬   r\   rX  rA   rP  rB   rQ  rõ   r)   rO  r*   rì   rê   rî   rJ   r+   rC   )r-   rE   rF   rG   r²   rH   rI   r´   rº   rØ   r7  s              r   Ú_callmethodzBaseProxy._callmethodß  s<  € ð	(Ø—9‘9×'Ñ'ˆDð 	�	‰	�4—8‘8˜Z¨¨tÐ4Ô5Ø—y‘y“{‰ˆˆfà�9ÒØˆMØ�XÒØ#‰NˆG�UØŸ™×/Ñ/°·±Ñ=¸bÑAˆIØ ŸK™K×/Ñ/ˆEŒMÙØ�t×'Ñ'°·±ØŸ™¨wôˆEð —<‘< §¡°t·}±}�<ÓEˆDÜ�T˜4 ¨E¯H©H¨;Ô7ØˆLÜ˜t VÓ,Ð,øô- ò 	(Ü�J‰JÐ<Ü ×/Ñ/Ó1×6Ñ6ô8à�M‰MŒOØ—9‘9×'Ñ'‹Dð		(ús   ‚D ÄA!E:Å9E:c                 ó$   — | j                  d«      S )z9
        Get a copy of the value of the referent
        rÅ   ©r[  r0   s    r   Ú	_getvaluezBaseProxy._getvalueý  s   € ð ×Ñ Ó,Ð,r   c           
      óF  — | j                  | j                  j                  | j                  ¬«      }t	        |d d| j
                  f«       t        j                  d| j                  j                  «       | j                  j                  | j
                  «       | j                  xr | j                  j                  }t        j                  | t        j                  | j                  | j                  || j                   | j                  | j                   fd¬«      | _        y )Nrø   rk   z	INCREF %ré
   r  )rî   rO  r*   rê   rJ   rP  r
   r’   r+   rN  ÚaddrQ  rë   r
  r   Ú_decrefrM  Ú_close)r-   r²   r3   s      r   rR  zBaseProxy._incref  s½   € Ø�|‰|˜DŸK™K×/Ñ/¸¿¹ˆ|ÓGˆÜ��t˜X¨¯© {Ô3Ü�
‰
�; §¡§¡Ô/à�‰�‰˜Ÿ™Ô!à—‘Ò6 $§-¡-×"6Ñ"6ˆä—m‘mØ”)×#Ñ#Ø—+‘+˜tŸ}™}¨eØ—)‘)˜TŸ[™[¨$¯,©,ð8àô	
ˆ�r   c                 ój  — |j                  | j                  «       |�|j                  t        j                  k(  rO	 t        j                  d| j                  «        || j                  |¬«      }t        |d d| j                  f«       n t        j                  d| j                  «       |s\t        |d«      rOt        j                  dt        j                  «       j                  «       |j                  j                  «        |`y y y # t        $ r }t        j                  d|«       Y d }~Œƒd }~ww xY w)Nz	DECREF %rrø   rl   z... decref failed %sz%DECREF %r -- manager already shutdownr   z-thread %r has no more proxies so closing conn)Údiscardr+   rà   rß   rã   r
   r’   r*   rJ   r¢   r+  r{   r¬   r\   r   r¤   )rº   rv   r3   ÚtlsÚidsetrî   r²   r©   s           r   rb  zBaseProxy._decref  sç   € à�‰�e—h‘hÔð ˆ=˜EŸK™K¬5¯=©=Ò8ð8Ü—
‘
˜;¨¯©Ô1Ù˜uŸ}™}°gÔ>�Ü˜˜t X°·±¨{Õ;ô
 �J‰JÐ>ÀÇÁÔIñ œ  lÔ3Ü�J‰JÐFÜ ×/Ñ/Ó1×6Ñ6ô8à�N‰N× Ñ Ô"Ø‘ð	 4ˆuøô ò 8Ü—
‘
Ð1°3×7Ñ7ûð8ús   ¼AD	 Ä		D2ÄD-Ä-D2c                 óŒ   — d | _         	 | j                  «        y # t        $ r }t        j                  d|«       Y d }~y d }~ww xY w)Nzincref failed: %s)rQ  rR  r¢   r
   r£   )r-   r©   s     r   rS  zBaseProxy._after_fork,  s9   € ØˆŒð	0Ø�L‰L�NøÜò 	0ä�I‰IÐ)¨3×/Ñ/ûð	0ús   ‰ š	A£>¾Ac                 ó  — i }t        j                  «       �| j                  |d<   t        | dd«      r3| j                  |d<   t
        t        | j                  | j                  |ffS t
        t        | «      | j                  | j                  |ffS )Nrv   Ú_isautoFr´   )
r   Úget_spawning_popenrê   rX   r1  ÚRebuildProxyr:  rO  rì   rO   ©r-   rG   s     r   ró   zBaseProxy.__reduce__4  sŒ   € ØˆÜ×%Ñ%Ó'Ð3Ø"Ÿm™mˆD�‰Oä�4˜ EÔ*Ø"Ÿn™nˆD�‰OÜ Ü §¡¨T×-=Ñ-=¸tÐDðFð Fô !Ü˜$“Z §¡¨d×.>Ñ.>ÀÐEðGð Gr   c                 ó"   — | j                  «       S r   )r^  )r-   Úmemos     r   Ú__deepcopy__zBaseProxy.__deepcopy__A  s   € Ø�~‰~ÓÐr   c                 ór   — dt        | «      j                  | j                  j                  t	        | «      fz  S )Nz<%s object, typeid %r at %#x>)rO   r8   rO  r)   r+   r0   s    r   r9   zBaseProxy.__repr__D  s3   € Ø.Ü�T“
×#Ñ# T§[¡[×%7Ñ%7¼¸D»ÐBñCð 	Cr   c                 óf   — 	 | j                  d«      S # t        $ r t        | «      dd dz   cY S w xY w)zV
        Return representation of the referent (or a fall-back if that fails)
        r9   NrZ  z; '__str__()' failed>)r[  r¢   r±   r0   s    r   rU   zBaseProxy.__str__H  s=   € ð	=Ø×#Ñ# JÓ/Ð/øÜò 	=Ü˜“:˜c˜r�?Ð%<Ñ<Ò<ð	=ús   ‚ “0¯0©NNNT)r8   r:   r;   r<   r,  r
   ÚForkAwareThreadLockrK  r.   rX  r[  r^  rR  r@  rb  rS  ró   rp  r9   rU   r>   r   r   r   r   ¬  su   „ ñð ÐØ%ˆT×%Ñ%Ó'€Fà26Ø48ó!>òF$ð ,.°Bó -ò<-ò
ð  ñó ðò00òGò òCó=r   r   c                 ó.  — t        t        j                  «       dd«      }|r5|j                  |j                  k(  r|j                  |j
                     d   S |j                  dd«      xr  t        t        j                  «       dd«       } | ||fd|i|¤ŽS )z‚
    Function used for unpickling proxy objects.

    If possible the shared object is returned, or otherwise a proxy for it.
    r†   Nr   rk   TÚ_inheritingF)rX   r   r…   r*   ry   r+   Úpop)r]   rº   r~   rG   r  rk   s         r   rl  rl  V  s”   € ô ”W×,Ñ,Ó.Ð0AÀ4ÓH€Fá�&—.‘. E§M¡MÒ1Ø×Ñ §¡Ñ)¨!Ñ,Ð,ð �H‰H�X˜tÓ$ò IÜœ×/Ñ/Ó1°=À%ÓHÐHð 	ñ �E˜:Ñ=¨fÐ=¸Ñ=Ð=r   c                 óÂ   — t        |«      }	 || |f   S # t        $ r Y nw xY wi }|D ]  }t        d|›d|›d�|«       Œ t        | t        f|«      }||_        ||| |f<   |S )zC
    Return an proxy type whose methods are given by `exposed`
    zdef z7(self, *args, **kwds):
        return self._callmethod(z, args, kwds))rÖ   r-  ÚexecrO   r   r1  )r\   r´   Ú_cacheÚdicÚmethÚ	ProxyTypes         r   ÚMakeProxyTyper~  l  s‰   € ô �G‹n€GðØ�t˜W�oÑ&Ð&øÜò Ùðúð €CãˆÝÚ6:ºDðBØCFõ	Hð ô �TœI˜<¨Ó-€IØ!€IÔØ'€FˆD�'ˆ?ÑØÐs   � ”	 Ÿ c                 ón  — t         |   d   }|€4 || j                  |¬«      }	 t        |dd| f«      }|j                  «        |€|�|j                  }|€t        j                  «       j                  }t        d| j                  z  |«      } || ||||¬«      }	d|	_
        |	S # |j                  «        w xY w)z*
    Return an auto-proxy for `token`
    r   Nrø   rg   zAutoProxy[%s])r5  rv   rk   T)rw   r*   rJ   r¤   rê   r   r…   rv   r~  r)   rj  )
rº   r~   r5  rv   r´   rk   rî   r²   r}  r7  s
             r   r:  r:  ‚  s¹   € ô
 ˜jÑ)¨!Ñ,€Gà€Ù�u—}‘}¨gÔ6ˆð	Ü˜t T¨=¸5¸(ÓCˆGà�J‰JŒLà€˜7Ð.Ø×"Ñ"ˆØ€Ü×)Ñ)Ó+×3Ñ3ˆä˜o°·±Ñ<¸gÓF€IÙ�e˜Z°À'Ø#ô%€Eà€E„MØ€Løð �J‰J�Lús   ¤B" Â"B4c                   ó   — e Zd Zd„ Zd„ Zy)Ú	Namespacec                 ó:   — | j                   j                  |«       y r   )r8  Úupdaterm  s     r   r.   zNamespace.__init__¢  s   € Ø�‰×Ñ˜TÕ"r   c                 ó&  — t        | j                  j                  «       «      }g }|D ]-  \  }}|j                  d«      rŒ|j	                  |›d|›�«       Œ/ |j                  «        | j                  j                  ›ddj                  |«      ›d�S )Nr`   Ú=Ú(ú, r6   )	r#   r8  r   Ú
startswithrZ   rË   r7   r8   rÌ   )r-   Ú_itemsr[   r\   rà   s        r   r9   zNamespace.__repr__¥  sq   € Ü�d—m‘m×)Ñ)Ó+Ó,ˆØˆÛ!‰KˆD�%Ø—?‘? 3Õ'Ø—‘¢t©UÐ3Õ4ð "ð 	�	‰	ŒØŸ>™>×2Ó2°D·I±I¸dµOÐDÐDr   N)r8   r:   r;   r.   r9   r>   r   r   r�  r�     s   „ ò#óEr   r�  c                   ó8   — e Zd Zdd„Zd„ Zd„ Zd„ Z eee«      Zy)ÚValuec                 ó    — || _         || _        y r   )Ú	_typecodeÚ_value)r-   r   rà   Úlocks       r   r.   zValue.__init__±  s   € Ø!ˆŒØˆ�r   c                 ó   — | j                   S r   ©rŽ  r0   s    r   r®   z	Value.getµ  s   € Ø�{‰{Ðr   c                 ó   — || _         y r   r‘  ©r-   rà   s     r   rÓ   z	Value.set¸  s	   € Øˆ�r   c                 óf   — t        | «      j                  ›d| j                  ›d| j                  ›d�S )Nr†  r‡  r6   )rO   r8   r�  rŽ  r0   s    r   r9   zValue.__repr__»  s&   € Ü# D›z×2Ó2Ø#Ÿ~›~¨t¯{«{ð<ð 	<r   N©T)	r8   r:   r;   r.   r®   rÓ   r9   rA  rà   r>   r   r   r‹  r‹  ¯  s$   „ óòòò<ñ �S˜#Ó�Er   r‹  c                 ó.   — t        j                   | |«      S r   )r   )r   Úsequencer�  s      r   ÚArrayr˜  Á  s   € Ü�;‰;�x Ó*Ð*r   c                   ó^   — e Zd Zej                  d   dk(  rdZndZd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚIteratorProxyr   r   )Ú__next__rA   Úthrowr¤   )r›  ÚnextrA   rœ  r¤   c                 ó&   — | j                  d|«      S )Nr�  r]  ©r-   rF   s     r   r�  zIteratorProxy.nextÏ  s   € Ø×#Ñ# F¨DÓ1Ð1r   c                 ó   — | S r   r>   r0   s    r   Ú__iter__zIteratorProxy.__iter__Ò  ó   € Øˆr   c                 ó&   — | j                  d|«      S )Nr›  r]  rŸ  s     r   r›  zIteratorProxy.__next__Õ  s   € Ø×Ñ 
¨DÓ1Ð1r   c                 ó&   — | j                  d|«      S )NrA   r]  rŸ  s     r   rA   zIteratorProxy.sendØ  s   € Ø×Ñ ¨Ó-Ð-r   c                 ó&   — | j                  d|«      S )Nrœ  r]  rŸ  s     r   rœ  zIteratorProxy.throwÛ  ó   € Ø×Ñ ¨Ó.Ð.r   c                 ó&   — | j                  d|«      S )Nr¤   r]  rŸ  s     r   r¤   zIteratorProxy.closeÞ  r¦  r   N)r8   r:   r;   r�   Úversion_infoÚ_exposedr1  r�  r¡  r›  rA   rœ  r¤   r>   r   r   rš  rš  É  s=   „ Ø
×Ñ˜Ñ˜aÒØ9‰àBˆ	ò	2òò2ò.ò/ó/r   rš  c                   ó*   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zy)ÚAcquirerProxy)ÚacquireÚreleaseNc                 ó8   — |€|fn||f}| j                  d|«      S ©Nr¬  r]  )r-   Úblockingr  rF   s       r   r¬  zAcquirerProxy.acquireå  s'   € Ø&˜�‰|°X¸wÐ4GˆØ×Ñ 	¨4Ó0Ð0r   c                 ó$   — | j                  d«      S ©Nr­  r]  r0   s    r   r­  zAcquirerProxy.releaseé  ó   € Ø×Ñ 	Ó*Ð*r   c                 ó$   — | j                  d«      S r¯  r]  r0   s    r   r"  zAcquirerProxy.__enter__ì  r³  r   c                 ó$   — | j                  d«      S r²  r]  r$  s       r   r(  zAcquirerProxy.__exit__ï  r³  r   )TN)r8   r:   r;   r1  r¬  r­  r"  r(  r>   r   r   r«  r«  â  s   „ Ø&€Ió1ò+ò+ó+r   r«  c                   ó,   — e Zd ZdZdd„Zd„ Zd„ Zdd„Zy)ÚConditionProxy)r¬  r­  rŒ   ÚnotifyÚ
notify_allNc                 ó(   — | j                  d|f«      S ©NrŒ   r]  r  s     r   rŒ   zConditionProxy.waitö  ó   € Ø×Ñ ¨¨
Ó3Ð3r   c                 ó$   — | j                  d«      S )Nr¸  r]  r0   s    r   r¸  zConditionProxy.notifyù  ó   € Ø×Ñ Ó)Ð)r   c                 ó$   — | j                  d«      S )Nr¹  r]  r0   s    r   r¹  zConditionProxy.notify_allü  s   € Ø×Ñ Ó-Ð-r   c                 ó¬   —  |«       }|r|S |�t        «       |z   }nd }d }|s2|�|t        «       z
  }|dk  r	 |S | j                  «        |«       }|sŒ2|S )Nr   )r   rŒ   )r-   Ú	predicater  rI   ÚendtimeÚwaittimes         r   Úwait_forzConditionProxy.wait_forÿ  st   € Ù“ˆÙØˆMØÐÜ“k GÑ+‰GàˆGØˆHÙØÐ"Ø"¤Y£[Ñ0�Ø˜q’=Øð ˆð �I‰I�hÔÙ“[ˆFò ð ˆr   r   )r8   r:   r;   r1  rŒ   r¸  r¹  rÄ  r>   r   r   r·  r·  ó  s   „ ØF€Ió4ò*ò.ôr   r·  c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zdd„Zy)Ú
EventProxy)r‹   rÓ   rF  rŒ   c                 ó$   — | j                  d«      S )Nr‹   r]  r0   s    r   r‹   zEventProxy.is_set  r¾  r   c                 ó$   — | j                  d«      S ©NrÓ   r]  r0   s    r   rÓ   zEventProxy.set  ó   € Ø×Ñ Ó&Ð&r   c                 ó$   — | j                  d«      S )NrF  r]  r0   s    r   rF  zEventProxy.clear  ó   € Ø×Ñ Ó(Ð(r   Nc                 ó(   — | j                  d|f«      S r»  r]  r  s     r   rŒ   zEventProxy.wait  r¼  r   r   )r8   r:   r;   r1  r‹   rÓ   rF  rŒ   r>   r   r   rÆ  rÆ    s   „ Ø2€Iò*ò'ò)ô4r   rÆ  c                   óT   — e Zd ZdZd	d„Zd„ Zd„ Zed„ «       Zed„ «       Z	ed„ «       Z
y)
ÚBarrierProxy)Ú__getattribute__rŒ   ÚabortÚresetNc                 ó(   — | j                  d|f«      S r»  r]  r  s     r   rŒ   zBarrierProxy.wait%  s   € Ø×Ñ ¨¨Ó4Ð4r   c                 ó$   — | j                  d«      S )NrÑ  r]  r0   s    r   rÑ  zBarrierProxy.abort(  rÌ  r   c                 ó$   — | j                  d«      S )NrÒ  r]  r0   s    r   rÒ  zBarrierProxy.reset+  rÌ  r   c                 ó&   — | j                  dd«      S )NrÐ  )Úpartiesr]  r0   s    r   r×  zBarrierProxy.parties.  s   € à×ÑÐ 2°MÓBÐBr   c                 ó&   — | j                  dd«      S )NrÐ  )Ú	n_waitingr]  r0   s    r   rÙ  zBarrierProxy.n_waiting2  s   € à×ÑÐ 2°OÓDÐDr   c                 ó&   — | j                  dd«      S )NrÐ  )Úbrokenr]  r0   s    r   rÛ  zBarrierProxy.broken6  s   € à×ÑÐ 2°LÓAÐAr   r   )r8   r:   r;   r1  rŒ   rÑ  rÒ  rA  r×  rÙ  rÛ  r>   r   r   rÏ  rÏ  "  sX   „ Ø>€Ió5ò)ò)ð ñCó ðCð ñEó ðEð ñBó ñBr   rÏ  c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚNamespaceProxy)rÐ  Ú__setattr__Ú__delattr__c                 ó~   — |d   dk(  rt         j                  | |«      S t         j                  | d«      } |d|f«      S )Nr   r`   r[  rÐ  )ÚobjectrÐ  ©r-   r=  Ú
callmethods      r   Ú__getattr__zNamespaceProxy.__getattr__>  sB   € Øˆq‰6�SŠ=Ü×*Ñ*¨4°Ó5Ð5Ü×,Ñ,¨T°=ÓAˆ
ÙÐ,¨s¨fÓ5Ð5r   c                 ó‚   — |d   dk(  rt         j                  | ||«      S t         j                  | d«      } |d||f«      S )Nr   r`   r[  rÞ  )rá  rÞ  rÐ  )r-   r=  rà   rã  s       r   rÞ  zNamespaceProxy.__setattr__D  sE   € Øˆq‰6�SŠ=Ü×%Ñ% d¨C°Ó7Ð7Ü×,Ñ,¨T°=ÓAˆ
Ù˜-¨#¨u¨Ó6Ð6r   c                 ó~   — |d   dk(  rt         j                  | |«      S t         j                  | d«      } |d|f«      S )Nr   r`   r[  rß  )rá  rß  rÐ  râ  s      r   rß  zNamespaceProxy.__delattr__J  sA   € Øˆq‰6�SŠ=Ü×%Ñ% d¨CÓ0Ð0Ü×,Ñ,¨T°=ÓAˆ
Ù˜-¨#¨Ó0Ð0r   N)r8   r:   r;   r1  rä  rÞ  rß  r>   r   r   rÝ  rÝ  ;  s   „ ØB€Iò6ò7ó1r   rÝ  c                   ó.   — e Zd ZdZd„ Zd„ Z eee«      Zy)Ú
ValueProxy)r®   rÓ   c                 ó$   — | j                  d«      S )Nr®   r]  r0   s    r   r®   zValueProxy.getT  rÊ  r   c                 ó(   — | j                  d|f«      S rÉ  r]  r“  s     r   rÓ   zValueProxy.setW  s   € Ø×Ñ ¨ xÓ0Ð0r   N)r8   r:   r;   r1  r®   rÓ   rA  rà   r>   r   r   rè  rè  Q  s   „ Ø€Iò'ò1á�S˜#Ó�Er   rè  )Ú__add__Ú__contains__Ú__delitem__Ú__getitem__Ú__len__Ú__mul__Ú__reversed__Ú__rmul__Ú__setitem__rZ   ÚcountÚextendÚindexÚinsertrw  ÚremoveÚreverserË   Ú__imul__)Ú__getslice__Ú__setslice__Ú__delslice__ÚBaseListProxyc                   ó   — e Zd Zd„ Zd„ Zy)Ú	ListProxyc                 ó,   — | j                  d|f«       | S )Nrõ  r]  r“  s     r   Ú__iadd__zListProxy.__iadd__i  s   € Ø×Ñ˜ E 8Ô,Øˆr   c                 ó,   — | j                  d|f«       | S )Nrú  r]  r“  s     r   rú  zListProxy.__imul__m  s   € Ø×Ñ˜ e XÔ.Øˆr   N)r8   r:   r;   r  rú  r>   r   r   r   r   g  s   „ òór   r   Ú	DictProxy)rì  rí  rî  rï  ró  rF  r9  r®   Úhas_keyr   r    rw  ÚpopitemÚ
setdefaultrƒ  r!   )rï  rî  ró  )rû  rü  Ú
ArrayProxyÚ	PoolProxy)ÚapplyÚapply_asyncr¤   ÚimapÚimap_unorderedrÌ   ÚmapÚ	map_asyncÚstarmapÚstarmap_asyncr*  ÚAsyncResultÚIterator)r  r  r  r  r  c                   ó   — e Zd Zd„ Zd„ Zy)r	  c                 ó   — | S r   r>   r0   s    r   r"  zPoolProxy.__enter__�  r¢  r   c                 ó$   — | j                  «        y r   )r*  )r-   Úexc_infos     r   r(  zPoolProxy.__exit__’  s   € Ø�‰Õr   N)r8   r:   r;   r"  r(  r>   r   r   r	  r	  Ž  s   „ òór   c                   ó   — e Zd ZdZy)r   a!  
    Subclass of `BaseManager` which supports a number of shared object types.

    The types registered are those intended for the synchronization
    of threads, plus `dict`, `list` and `Namespace`.

    The `billiard.Manager()` function creates started instances of
    this class.
    N)r8   r:   r;   r<   r>   r   r   r   r   ›  s   „ òr   r   r   ÚJoinableQueuerƒ   ÚLockr|   Ú	SemaphoreÚBoundedSemaphoreÚ	ConditionÚBarrierÚPoolr#   rÕ   r˜  F)rØ   r<  )r<  rs  r•  )Or�   r{   r   rÑ   r   Ú r   r   r   r   r	   r
   r   Úqueuer   Útimer   Ú__all__r¨  ÚPY3r   r>  rO   rX   Ú
view_typesr#   r&   Ú	view_typer   rJ   rC   r¢   rQ   r^   ra   rc   rß   r   r€   ÚXmlListenerÚ	XmlClientrw   r   rÓ   rC  r   rl  r~  r:  r�  r‹  r˜  rš  r«  r·  rÆ  rÏ  rÝ  rè  Ú_ListProxy_Attributesrþ  r   r  Ú_ArrayProxy_Attributesr  ÚBasePoolProxyr2  r	  r   rƒ   r  r|   r  r  r  r+  r  r  rÕ   )r\   s   0r   Ú<module>r,     s!  ðó Û Û å  å Ý Ý Ý Ý Ý Ý å Ý â
>€à	×Ñ�qÑ˜QÑ€ñ ó6ò7à €	× Ñ �5—;‘; Ô -ñ 6ó7Ù5�$ñ Ð$‘7˜2˜tÓ$Ó&Õ'Ø5ñ7€
àˆa�=˜Ñò#ãˆ	Øˆ	×Ñ˜9 oÕ6ð  ÷Jñ Jð0 &(¨bó )ò
7ôG�)ô Gò	òA÷PAñ PA÷nñ ð ×"Ñ" J×$5Ñ$5Ð6Ø×(Ñ(¨*×*>Ñ*>Ð?ñ€÷]'ñ ]'ôH�cô ÷c=ñ c=òT>ð, )+ó ð, 8<Ø#'ó÷<Eñ E÷ñ ó$+ô/�Iô /ô2+�Iô +ô"�]ô ô>4�ô 4ô B�9ô Bô21�Yô 1ô,�ô ðÐ ñ ØÐMÑMÐÙ˜oÐ/DÓE€ô�ô ñ ˜+ð (ó €	ðÐ ñ ØÐ>Ñ>ÐÙ˜<Ð)?Ó@€
ñ ˜kð ,ó €ð
 !ØØ"ØØ ñ$€Ô  ô�ô ô	�+ô 	ð × Ñ �W˜eÔ $Ø × Ñ �_ eÔ ,Ø × Ñ �W˜iŸo™o¨zÔ :Ø × Ñ �V˜YŸ^™^¨]Ô ;Ø × Ñ �W˜iŸo™o¨}Ô =Ø × Ñ �[ )×"5Ñ"5°}Ô EØ × Ñ Ð'¨×)CÑ)CØ"ô$à × Ñ �[ )×"5Ñ"5°~Ô FÙ
ˆ9�iÔ Ø×Ñ˜ I×$5Ñ$5°|ÔDØ × Ñ �V˜TŸY™Y¨	Ô 2Ø × Ñ �V˜T 9Ô -Ø × Ñ �V˜T 9Ô -Ø × Ñ �W˜e ZÔ 0Ø × Ñ �W˜e ZÔ 0Ø × Ñ �[ )¨^Ô <ð × Ñ �Z¨=ÈÐ Ô NØ × Ñ �]°%Ð Õ 8ùòS$7s   Â	O