ó
    ýËâfZ!  ã                   ój  • S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJrJ	r	  SSK
Jr  S rSq \	S 5       r\R                  r\R"                  r\R&                  " \R(                  5      \R*                  L a  \" \R(                  5      rOS	rS
 r\	S 5       rS r/ qSq\	S 5       r " S S5      rS rg)é    )Úprint_functionN)ÚclosingÚcontextmanageré   )Ú_gic                 ó,  • [        U S5      (       a  U R                  S5        g SSKnU R                  5       nUR                  X!R                  5      nUR                  X!R
                  X1R                  -  5        g! [         a    [        S5      ef = f)z�Ensures that the socket is not inherited by child processes

Raises:
    EnvironmentError
    NotImplementedError: With Python <3.4 on Windows
Úset_inheritableFr   Nz+Not implemented for older Python on Windows)	Úhasattrr	   ÚfcntlÚfilenoÚF_GETFDÚF_SETFDÚ
FD_CLOEXECÚImportErrorÚNotImplementedError)Úsockr   ÚfdÚflagss       Ú1/usr/lib/python3/dist-packages/gi/_ossighelper.pyÚensure_socket_not_inheritabler      s„   € ô ˆtÐ&×'Ñ'Ø×Ñ˜UÕ#ð	EÛð
 —‘“ˆBØ—K‘K §M¡MÓ2ˆEØ�K‰K˜ŸM™M¨5×3CÑ3CÑ+CÕDøô ó 	?Ü%Ø=ó?ð ?ð	?ús   ¥A= Á=BFc               #   ó  ^^#   • [         (       a  Sv •  gSSKJm  [        R                  " 5       u  mn [        T5         [        U 5         TU 4 H  nUR                  S5        [        U5        M!      [        R                  " U R                  5       5      nSq UU4S jn [        R                  S:X  a*  TR                  R                  TR                  5       5      nO)TR                  R!                  TR                  5       5      nTR#                  UTR$                  TR&                  R(                  TR&                  R*                  -  TR&                  R,                  -  TR&                  R.                  -  U5      n Sv •  TR1                  U5         [        R                  " U5      nX`R                  5       :w  a  [        R                  " U5        Sq  SSS5        SSS5        g! [         a    Sv •   SSS5        SSS5        gf = f! TR1                  U5        f = f! [        R                  " U5      nX`R                  5       :w  a  [        R                  " U5        Sq f = f! , (       d  f       N—= f! , (       d  f       g= f7f)a·  A decorator for functions which create a glib event loop to keep
Python signal handlers working while the event loop is idling.

In case an OS signal is received will wake the default event loop up
shortly so that any registered Python signal handlers registered through
signal.signal() can run.

In case the wrapped function is not called from the main thread it will be
called as is and it will not wake up the default loop for signals.
Nr   )ÚGLibFTc                 ó¨   >• UTR                   -  (       a   [        TR                  S5      5      $ g! [         a  n[	        U5         S nAgS nAff = f)Nr   F)ÚIO_INÚboolÚrecvÚEnvironmentErrorÚprint)ÚsourceÚ	conditionÚer   Úread_sockets      €€r   Úsignal_notifyÚ'wakeup_on_signal.<locals>.signal_notify]   sK   ø€ Ø˜4Ÿ:™:×%ð!Ü × 0Ñ 0°Ó 3Ó4Ð4ð øô (ó !Ü˜!”HÜ ûð!ús   —2 ²
A¼AÁAÚnt)Ú_wakeup_fd_is_activeÚgi.repositoryr   ÚsocketÚ
socketpairr   Úsetblockingr   ÚsignalÚset_wakeup_fdr   Ú
ValueErrorÚosÚnameÚ	IOChannelÚwin32_new_socketÚunix_newÚio_add_watchÚPRIORITY_DEFAULTÚIOConditionÚINÚHUPÚNVALÚERRÚsource_remove)	Úwrite_socketr   Úorig_fdr#   ÚchannelÚ	source_idÚwrite_fdr   r"   s	          @@r   Úwakeup_on_signalr@   8   s  ùé € ÷ ÒÛØå"ä &× 1Ò 1Ó 3Ñ€K�Ü	�Õ	œw |Õ4à  ,Ó/ˆDØ×Ñ˜UÔ#Ü)¨$Ö/ñ 0ð	(Ü×*Ò*¨<×+>Ñ+>Ó+@ÓAˆGð $(Ð ö		ð	)Ü�w‰w˜$‹ØŸ.™.×9Ñ9Ø×&Ñ&Ó(ó*‘ð Ÿ.™.×1Ñ1°+×2DÑ2DÓ2FÓG�à×)Ñ)ØØ×%Ñ%Ø×!Ñ!×$Ñ$ t×'7Ñ'7×';Ñ';Ñ;Ø×!Ñ!×&Ñ&ñ'Ø)-×)9Ñ)9×)=Ñ)=ñ>àóˆIð.Ûà×"Ñ" 9Õ-ä×+Ò+¨GÓ4ˆHØ×.Ñ.Ó0Ó0ô ×$Ò$ XÔ.Ø#(Ñ ÷c  5×	Ð	øô ó 	ãØ÷  5×	Ð	ð	ûðD ×"Ñ" 9Õ-ûä×+Ò+¨GÓ4ˆHØ×.Ñ.Ó0Ó0ô ×$Ò$ XÔ.Ø#(Ñ ú÷c  5Õ4ú×	Õ	üs—   „:J¾I:Á
(I)Á3$G)Â	I)Â!CH#Æ HÆH#ÆAI)ÇI:Ç 	JÇ)H
Ç7I)Ç8I:È 	JÈ	H
È
I)ÈH È H#È#AI&É&I)É)
I7	É3I:É:
JÊJéÿÿÿÿc                  ó¸   • [         R                  " [         R                  5      [         R                  L =(       a     [	        [         R                  5      [
        :H  $ )z?Returns if on SIGINT the default Python handler would be called)r+   Ú	getsignalÚSIGINTÚdefault_int_handlerÚPyOS_getsigÚstartup_sigint_ptr© ó    r   Úsigint_handler_is_defaultrJ   �   s=   € ô ×ÒœVŸ]™]Ó+¬v×/IÑ/IÐI÷ =ÜœŸ™Ó&Ô*<Ñ<ð>rI   c              #   ó¢  #   • [        5       (       d   e[        R                  " [        R                  U 5        [        [        R                  5      n Sv •  [        R                  " [        R                  5      U L aR  [        [        R                  5      U:X  a4  [        R                  " [        R                  [        R
                  5        ggg! [        R                  " [        R                  5      U L aR  [        [        R                  5      U:X  a4  [        R                  " [        R                  [        R
                  5        f f f = f7f)z¯Context manager for saving/restoring the SIGINT handler default state.

Will only restore the default handler again if the handler is not changed
while the context is active.
N)rJ   r+   rD   rF   rC   rE   )ÚhandlerÚsig_ptrs     r   Ú&sigint_handler_set_and_restore_defaultrN   –   sÓ   é € ô %×&Ñ&Ð&Ð&ä
‡M‚M”&—-‘- Ô)Üœ&Ÿ-™-Ó(€GðEÛä×ÒœFŸM™MÓ*¨gÒ5ÜœFŸM™MÓ*¨gÓ5Ü�MŠMœ&Ÿ-™-¬×)CÑ)CÕDð 6ð 6øŒ6×ÒœFŸM™MÓ*¨gÒ5ÜœFŸM™MÓ*¨gÓ5Ü�MŠMœ&Ÿ-™-¬×)CÑ)CÕDð 6ð 6üs    ‚AEÁC ÁA:EÃA;EÅEc                  óF   • [         R                  " 5       R                  S:H  $ )z@Returns True in case the function is called from the main threadÚ
MainThread)Ú	threadingÚcurrent_threadr/   rH   rI   r   Úis_main_threadrS   ª   s   € ô ×#Ò#Ó%×*Ñ*¨lÑ:Ð:rI   c              #   óò  #   • [        5       (       d  Sv •  g[        5       (       dQ  [        (       aA  [        R                  U 5         Sv •  [        R	                  5       n[
        (       a  U" 5         gSv •  gSqS n[        R                  U 5         [        U5         Sv •  SSS5        [
        (       a&  [        R                  " [        R                  S5        g[        R	                  5         g! [        R	                  5       n[
        (       a  U" 5         f f = f! , (       d  f       N€= f! [
        (       a&  [        R                  " [        R                  S5        f [        R	                  5         f = f7f)a¿  Installs a SIGINT signal handler in case the default Python one is
active which calls 'callback' in case the signal occurs.

Only does something if called from the main thread.

In case of nested context managers the signal handler will be only
installed once and the callbacks will be called in the reverse order
of their registration.

The old signal handler will be restored in case no signal handler is
registered while the context is active.
NFc                 óR   • [         (       a  g Sq [        R                  5       " 5         g )NT)Ú_sigint_calledÚ_callback_stackÚpop)Úsig_numÚframes     r   Úsigint_handlerÚ0register_sigint_fallback.<locals>.sigint_handlerá   s    € ÷ Š>ØØˆÜ×ÑÔÕrI   )
rS   rJ   rW   ÚappendrX   rV   rN   r+   rE   rD   )ÚcallbackÚcbr[   s      r   Úregister_sigint_fallbackr`   ´   s
  é € ô. ×ÑÛØä$×&Ñ&ßŠ?ô ×"Ñ" 8Ô,ðÛä$×(Ñ(Ó*�ß!’>Ù”Dð 	ó Øà€Nò ô ×Ñ˜8Ô$ð"Ü3°NÕCÛ÷ D÷ Š>Ü×&Ò&¤v§}¡}°dÕ;ä×ÑÕ!øô5 %×(Ñ(Ó*�ß!’>Ù•Dð "ú÷& DÕCû÷ Š>Ü×&Ò&¤v§}¡}°dÕ;ä×ÑÕ!üsQ   ‚AE7ÁC0 ÁAE7ÂD- ÂDÂ"D- Â*AE7Ã0)DÄE7Ä
D*Ä&D- Ä-AE4Å4E7c                   óH   • \ rS rSr\\S 5       5       r\\S 5       5       rSrg)ÚDummyEventLoopéô   c              #   ó   #   • S v •  g 7f©NrH   )Úclss    r   ÚpausedÚDummyEventLoop.pausedõ   s
   é € ô 	ùs   ‚c              #   ó\   #   • [        5          S v •  S S S 5        g ! , (       d  f       g = f7fre   )r@   )rf   Ú	quit_funcs     r   ÚrunningÚDummyEventLoop.runningú   s   é € ô ÕÛ÷  ×Öüs   ‚,�’	,›
)¥,rH   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úclassmethodr   rg   rk   Ú__static_attributes__rH   rI   r   rb   rb   ô   s8   † ØØñó ó ðð Øñó ó órI   rb   c                 ó  • [         R                  " 5       nUc%   [         R                  " 5       R                  U 5      nU(       a8  [	        US5      (       a'  U b$  [        UR                  5      [        U 5      :X  a  U$ [        $ !    NI= f)z\Return the correct GLibEventLoop or a dummy that just registers the
signal wakeup mechanism.Ú_context)ÚasyncioÚ_get_running_loopÚget_event_loop_policyÚget_event_loop_for_contextr
   Úhashrt   rb   )ÚctxÚloops     r   Úget_event_loopr|     st   € ô ×$Ò$Ó&€DØ�|ð	Ü×0Ò0Ó2×MÑMÈcÓRˆDö ”˜˜j×)Ñ)Ø‰?œt D§M¡MÓ2´d¸3³iÓ?ØˆKäÐøð	Ùús   š$B ÂB)Ú
__future__r   r.   r(   r+   ru   rQ   Ú
contextlibr   r   Ú r   r   r&   r@   Úpyos_getsigrF   Úpyos_setsigÚPyOS_setsigrC   rD   rE   rG   rJ   rN   rS   rW   rV   r`   rb   r|   rH   rI   r   Ú<module>rƒ      sã   ðõ  &ã 	Û Û Û Û ß .å òEð, Ð ðð
 ñF)ó ðF)ðR �o‰o€Ø�o‰o€ð 
×Ò�F—M‘MÓ" f×&@Ñ&@Ò@Ù$ V§]¡]Ó3Ñð Ðò>ð ñEó ðEò&;ð €Ø€ð ñ<"ó ð<"÷~
ñ 
órI   