ó
    V#Óg¶d  ã                   ó  • S SK r  S SKJr  S SKrS SKJr  S SKJ	r	J
r
JrJr  Sr\ R                  " S5      rS SKJrJrJrJrJr  S SKJr   " S	 S
5      r " S S5      r " S S\5      r " S S\5      rg! \ a	    S SKJr   Nwf = f)é    N)ÚRLock)Úprocess_introspection_data)ÚDBusExceptionÚIntrospectionParserExceptionÚMissingErrorHandlerExceptionÚMissingReplyHandlerExceptionÚrestructuredtextzdbus.proxies)ÚBUS_DAEMON_IFACEÚBUS_DAEMON_NAMEÚBUS_DAEMON_PATHÚINTROSPECTABLE_IFACEÚ
LOCAL_PATH)Úis_py2c                   ó*   • \ rS rSrSrS rS rS rSrg)Ú_DeferredMethodé4   zPA proxy method which will only get called once we have its
introspection reply.
c                 óJ   • Xl         UR                  U l        X l        X0l        g ©N)Ú_proxy_methodÚ_method_nameÚ_appendÚ_block)ÚselfÚproxy_methodÚappendÚblocks       Ú./usr/lib/python3/dist-packages/dbus/proxies.pyÚ__init__Ú_DeferredMethod.__init__8   s    € Ø)Ôà(×5Ñ5ˆÔØŒØ�ó    c                 óº   • SU;   d  UR                  SS5      (       a  U R                  U R                  X5        g U R                  5         U R                  " U0 UD6$ )NÚreply_handlerÚignore_replyF)Úgetr   r   r   ©r   ÚargsÚkeywordss      r   Ú__call__Ú_DeferredMethod.__call__?   sS   € Ø˜xÓ'Ø�L‰L˜¨×/Ñ/à�L‰L˜×+Ñ+¨TÔ<Øð �K‰KŒMØ×%Ò% tÐ8¨xÑ8Ð8r    c                 ó<   • U R                  U R                  X5        g r   )r   r   r%   s      r   Ú
call_asyncÚ_DeferredMethod.call_asyncJ   s   € Ø�‰�T×'Ñ'¨Õ8r    )r   r   r   r   N©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r(   r+   Ú__static_attributes__© r    r   r   r   4   s   † ñòò	9õ9r    r   c                   ó*   • \ rS rSrSrS rS rS rSrg)Ú_ProxyMethodéN   z A proxy method.

Typically a member of a ProxyObject. Calls to the
method produce messages that travel over the Bus and are routed
to a specific named Service.
c                 óâ   • U[         :X  a  [        S[         -  5      eXl        X l        X0l        X@l        [        R                  " U5        XPl        Ub  [        R                  " U5        X`l
        g )Nz1Methods may not be called on the reserved path %s)r   r   Ú_proxyÚ_connectionÚ_named_serviceÚ_object_pathÚ_dbus_bindingsÚvalidate_member_namer   Úvalidate_interface_nameÚ_dbus_interface)r   ÚproxyÚ
connectionÚbus_nameÚobject_pathÚmethod_nameÚifaces          r   r   Ú_ProxyMethod.__init__U   sk   € àœ*Ó$Üð !*Ü,6ñ!7ó 8ð 8ð  %ŒØ)ÔØ'ÔØ*Ôä×+Ò+¨KÔ8à*ÔàÑÜ×2Ò2°5Ô9Ø$Õr    c           
      óÞ  • UR                  SS 5      nUR                  SS 5      nUR                  SS5      nUR                  SS 5      nUc  Ub,  Uc
  [        5       eUc
  [        5       eU(       a  [        S5      eUR                  SU R                  5      nUcH  Uc  U R
                  nOUS-   U R
                  -   nU R                  R                  R                  US 5      nU(       d  UbC  U R                  R                  " U R                  U R                  UU R
                  UUUU40 UD6  g U R                  R                  " U R                  U R                  UU R
                  UU40 UD6$ )	Nr"   Úerror_handlerr#   FÚ	signaturez6ignore_reply and reply_handler cannot be used togetherÚdbus_interfaceÚ.)Úpopr   r   Ú	TypeErrorr@   r   r9   Ú_introspect_method_mapr$   r:   r+   r;   r<   Úcall_blocking)	r   r&   r'   r"   rI   r#   rJ   rK   Úkeys	            r   r(   Ú_ProxyMethod.__call__i   sx  € Ø Ÿ™ _°dÓ;ˆØ Ÿ™ _°dÓ;ˆØ—|‘| N°EÓ:ˆØ—L‘L ¨dÓ3ˆ	àÑ$¨Ñ(AØÑ$Ü2Ó4Ð4ØÑ&Ü2Ó4Ð4ÞÜð !0ó 1ð 1ð "Ÿ™Ð&6¸×8LÑ8LÓMˆàÑØÑ%Ø×'Ñ'‘à$ sÑ*¨T×->Ñ->Ñ>�àŸ™×:Ñ:×>Ñ>¸sÀDÓIˆIæ˜=Ñ4Ø×Ñ×'Ò'¨×(;Ñ(;Ø(,×(9Ñ(9Ø(6Ø(,×(9Ñ(9Ø(1Ø(,Ø(5Ø(5ñ4ð +3ó4ð ×#Ñ#×1Ò1°$×2EÑ2EØ26×2CÑ2CØ2@Ø26×2CÑ2CØ2;Ø26ñ>ð 5=ñ>ð >r    c           
      óÊ  • UR                  SS 5      nUR                  SS 5      nUR                  SS 5      nUR                  SU R                  5      nUcL  U(       a  US-   U R                  -   nOU R                  nU R                  R                  R                  US 5      nU R                  R                  " U R                  U R                  UU R                  UUUU40 UD6  g )Nr"   rI   rJ   rK   rL   )
rM   r@   r   r9   rO   r$   r:   r+   r;   r<   )r   r&   r'   r"   rI   rJ   rK   rQ   s           r   r+   Ú_ProxyMethod.call_async•   sÕ   € Ø Ÿ™ _°dÓ;ˆØ Ÿ™ _°dÓ;ˆØ—L‘L ¨dÓ3ˆ	à!Ÿ™Ð&6¸×8LÑ8LÓMˆàÑÞØ$ sÑ*¨T×->Ñ->Ñ>‘à×'Ñ'�ØŸ™×:Ñ:×>Ñ>¸sÀDÓIˆIà×Ñ×#Ò# D×$7Ñ$7Ø$(×$5Ñ$5Ø$2Ø$(×$5Ñ$5Ø$-Ø$(Ø$1Ø$1ñ	0ð '/ó	0r    )r:   r@   r   r;   r<   r9   Nr-   r4   r    r   r6   r6   N   s   † ñò%ò(*>õX0r    r6   c                   óÊ   • \ rS rSrSr\r\rSr	Sr
Sr  SS jr\" S SSS	5      r\" S
 SSS5      r\" S SSS5      rSS jrS rS rS rS rS rS rS rSS jrS r\rSrg)ÚProxyObjecté®   z—A proxy to the remote Object.

A ProxyObject is provided by the Bus. ProxyObjects
have member functions, and can be called like normal Python objects.
r   é   é   Nc                 ó,  • UR                  SS5      nUb"  Ub  [        S5      eUnSSKJn  U" S[        SS9  UR                  S	S5      n	U	b"  Ub  [        S
5      eU	nSSKJn  U" S[        SS9  U(       a+  [        SSR                  UR                  5       5      -  5      eU(       a  UR                  5         Xl        Ub  [        R                  " U5        U=U l        U l        [        R                  " U5        X0l        U(       d  UR                  U5      U l        SU l        / U l        0 U l        ['        5       U l        U(       a  U R                  [*        :X  a  U R,                  U l        gU R0                  U l        U R3                  5       U l        g)ah  Initialize the proxy object.

:Parameters:
    `conn` : `dbus.connection.Connection`
        The bus or connection on which to find this object.
        The keyword argument `bus` is a deprecated alias for this.
    `bus_name` : str
        A bus name for the application owning the object, to be used
        as the destination for method calls and the sender for
        signal matches. The keyword argument ``named_service`` is a
        deprecated alias for this.
    `object_path` : str
        The object path at which the application exports the object
    `introspect` : bool
        If true (default), attempt to introspect the remote
        object to find out supported methods and their signatures
    `follow_name_owner_changes` : bool
        If true (default is false) and the `bus_name` is a
        well-known name, follow ownership changes for that name
ÚbusNz%conn and bus cannot both be specifiedr   )Úwarnz`Passing the bus parameter to ProxyObject by name is deprecated: please use positional parametersrY   )Ú
stacklevelÚnamed_servicez3bus_name and named_service cannot both be specifiedzjPassing the named_service parameter to ProxyObject by name is deprecated: please use positional parametersz>ProxyObject.__init__ does not take these keyword arguments: %sz, )rM   rN   Úwarningsr\   ÚDeprecationWarningÚjoinÚkeysÚ_require_main_loopÚ_busr=   Úvalidate_bus_namer;   Ú_requested_bus_nameÚvalidate_object_pathÚ__dbus_object_path__Úactivate_name_ownerÚ_pending_introspectÚ_pending_introspect_queuerO   r   Ú_introspect_lockr   Ú INTROSPECT_STATE_DONT_INTROSPECTÚ_introspect_stateÚ'INTROSPECT_STATE_INTROSPECT_IN_PROGRESSÚ_Introspect)
r   ÚconnrC   rD   Ú
introspectÚfollow_name_owner_changesÚkwargsr[   r\   r^   s
             r   r   ÚProxyObject.__init__»   s‹  € ð, �j‰j˜ Ó%ˆØ‰?ØÑÜÐ GÓHÐHØˆDÝ%Ùð @ä#°ò3ð Ÿ
™
 ?°DÓ9ˆØÑ$ØÑ#Üð !,ó -ð -à$ˆHÝ%Ùð Cä#°ò3ö Üð 4à"Ÿi™i¨¯©«Ó6ñ7ó 8ð 8ö %ð ×#Ñ#Ô%àŒ	àÑÜ×,Ò,¨XÔ6ð :BÐAˆÔ˜dÔ6ä×+Ò+¨KÔ8Ø$/Ô!æ(Ø"&×":Ñ":¸8Ó"DˆDÔð $(ˆÔ à)+ˆÔ&à&(ˆÔ#ô !&£ˆÔæ˜T×6Ñ6¼*ÓDØ%)×%JÑ%JˆDÕ"à%)×%QÑ%QˆDÔ"à'+×'7Ñ'7Ó'9ˆDÕ$r    c                 ó   • U R                   $ r   )r;   ©r   s    r   Ú<lambda>ÚProxyObject.<lambda>  s
   €  T×%8Ò%8r    aè  The bus name to which this proxy is bound. (Read-only,
            may change.)

            If the proxy was instantiated using a unique name, this property
            is that unique name.

            If the proxy was instantiated with a well-known name and with
            ``follow_name_owner_changes`` set false (the default), this
            property is the unique name of the connection that owned that
            well-known name when the proxy was instantiated, which might
            not actually own the requested well-known name any more.

            If the proxy was instantiated with a well-known name and with
            ``follow_name_owner_changes`` set true, this property is that
            well-known name.
            c                 ó   • U R                   $ r   )rf   rw   s    r   rx   ry      s
   € ¨t×/GÒ/Gr    z[The bus name which was requested when this proxy was
            instantiated.
            c                 ó   • U R                   $ r   )rh   rw   s    r   rx   ry   &  s
   € ¨×(AÒ(Ar    zThe object-path of this proxy.c                 ón   • U R                   R                  " U4UUU R                  U R                  S.UD6$ )a:  Arrange for the given function to be called when the given signal
is received.

:Parameters:
    `signal_name` : str
        The name of the signal
    `handler_function` : callable
        A function to be called when the signal is emitted by
        the remote object. Its positional arguments will be the
        arguments of the signal; optionally, it may be given
        keyword arguments as described below.
    `dbus_interface` : str
        Optional interface with which to qualify the signal name.
        If None (the default) the handler will be called whenever a
        signal of the given member name is received, whatever
        its interface.
:Keywords:
    `utf8_strings` : bool
        If True, the handler function will receive any string
        arguments as dbus.UTF8String objects (a subclass of str
        guaranteed to be UTF-8). If False (default) it will receive
        any string arguments as dbus.String objects (a subclass of
        unicode).
    `byte_arrays` : bool
        If True, the handler function will receive any byte-array
        arguments as dbus.ByteArray objects (a subclass of str).
        If False (default) it will receive any byte-array
        arguments as a dbus.Array of dbus.Byte (subclasses of:
        a list of ints).
    `sender_keyword` : str
        If not None (the default), the handler function will receive
        the unique name of the sending endpoint as a keyword
        argument with this name
    `destination_keyword` : str
        If not None (the default), the handler function will receive
        the bus name of the destination (or None if the signal is a
        broadcast, as is usual) as a keyword argument with this name.
    `interface_keyword` : str
        If not None (the default), the handler function will receive
        the signal interface as a keyword argument with this name.
    `member_keyword` : str
        If not None (the default), the handler function will receive
        the signal name as a keyword argument with this name.
    `path_keyword` : str
        If not None (the default), the handler function will receive
        the object-path of the sending object as a keyword argument
        with this name
    `message_keyword` : str
        If not None (the default), the handler function will receive
        the `dbus.lowlevel.SignalMessage` as a keyword argument with
        this name.
    `arg...` : unicode or UTF-8 str
        If there are additional keyword parameters of the form
        ``arg``\ *n*, match only signals where the *n*\ th argument
        is the value given for that keyword parameter. As of this time
        only string arguments can be matched (in particular,
        object paths and signatures can't).
    `arg0namespace` : str
        If not None (the default) match only signals where the first
        argument is a string that either is equal to the
        keyword parameter, or starts with the keyword parameter
        followed by a dot (and optionally more text).
    `arg...path`: str
        If there are additional keyword parameters of the form
        ``arg``\ *n* ``path``, match only signals where the *n*\ th
        argument is either equal or matches in a path-like manner.
        A path-like comparison matches when either the keyword or the
        argument ends with a '/' and is a prefix of the other. An
        example argument path match is arg0path='/aa/bb/'. This would
        match messages with first arguments of '/', '/aa/', '/aa/bb/',
        '/aa/bb/cc/' and '/aa/bb/cc'. It would not match messages with
        first arguments of '/aa/b', '/aa' or even '/aa/bb'.
)Úsignal_namerK   rC   Úpath)rd   Úadd_signal_receiverr;   rh   ©r   r}   Úhandler_functionrK   r'   s        r   Úconnect_to_signalÚProxyObject.connect_to_signal2  sF   € ðV 	�	‰	×%Ò%Ð&6ð 	2Ø2=Ø5CØ/3×/BÑ/BØ+/×+DÑ+Dñ		2ð
 )1ñ	2ð	2r    c           
      óª   • 0 nU R                   R                  " U R                  U R                  [        SSSU R
                  U R                  4SS0UD6$ )NÚ
IntrospectÚ r4   Úrequire_main_loopF)rd   r+   r;   rh   r   Ú_introspect_reply_handlerÚ_introspect_error_handler)r   rt   s     r   rp   ÚProxyObject._Introspect„  sd   € ØˆØ�y‰y×#Ò# D×$7Ñ$7Ø$(×$=Ñ$=Ü$8¸,ÈÈBØ$(×$BÑ$BØ$(×$BÑ$Bñ	Gð
 7<ðGð
 @FñGð 	Gr    c                 óN   • U R                    H  u  pnU" U0 UD6  M     / U l         g r   )rk   )r   r   r&   r'   s       r   Ú_introspect_execute_queueÚ%ProxyObject._introspect_execute_queue�  s/   € ð /3×.LÔ.LÑ*ˆ\ Ù˜$Ð+ (Ô+ñ /Mà)+ˆÕ&r    c                 ó¢  • U R                   R                  5           [        U5      U l        U R                  U l        S U l	        U R                  5         U R                   R                  5         g ! [         a5  nU R                  U5         S nAU R                   R                  5         g S nAff = f! U R                   R                  5         f = fr   )rl   Úacquirer   rO   r   r‰   ÚreleaseÚ INTROSPECT_STATE_INTROSPECT_DONErn   rj   rŒ   )r   ÚdataÚes      r   rˆ   Ú%ProxyObject._introspect_reply_handler•  s­   € Ø×Ñ×%Ñ%Ô'ð	,ðÜ.HÈÓ.N�Ô+ð
 &*×%JÑ%JˆDÔ"Ø'+ˆDÔ$Ø×*Ñ*Ô,à×!Ñ!×)Ñ)Õ+øô 0ó Ø×.Ñ.¨qÔ1Ûð ×!Ñ!×)Ñ)Õ+ûðûð ×!Ñ!×)Ñ)Õ+ús.   �A0 ­(B2 Á0
B/Á:B*ÂB2 Â*B/Â/B2 Â2Cc                 óü  • [         R                  " 5         [        R                  SU R                  U R
                  UR                  R                  UR                  R                  U5        U R                  R                  5          [        R                  S5        U R                  U l        S U l        U R                  5         U R                  R!                  5         g ! U R                  R!                  5         f = f)Nz$Introspect error on %s:%s: %s.%s: %sz'Executing introspect queue due to error)ÚloggingÚbasicConfigÚ_loggerÚerrorr;   rh   Ú	__class__r/   r.   rl   r�   Údebugrm   rn   rj   rŒ   r�   )r   r™   s     r   r‰   Ú%ProxyObject._introspect_error_handler¤  s·   € Ü×ÒÔÜ�‰Ð<Ø×)Ñ)¨4×+DÑ+DØ—o‘o×0Ñ0°%·/±/×2JÑ2JØô	ð 	×Ñ×%Ñ%Ô'ð	,Ü�M‰MÐCÔDØ%)×%JÑ%JˆDÔ"Ø'+ˆDÔ$Ø×*Ñ*Ô,à×!Ñ!×)Ñ)Õ+øˆD×!Ñ!×)Ñ)Õ+ús   Â=C ÃC;c                 óú   • U R                   R                  5          U R                  b  U R                  R                  5         U R                   R	                  5         g ! U R                   R	                  5         f = fr   )rl   r�   rj   r   r�   rw   s    r   Ú_introspect_blockÚProxyObject._introspect_block³  s^   € Ø×Ñ×%Ñ%Ô'ð	,Ø×'Ñ'Ñ3Ø×(Ñ(×.Ñ.Ô0ð ×!Ñ!×)Ñ)Õ+øˆD×!Ñ!×)Ñ)Õ+ús   œ'A ÁA:c                 ó,  • U R                   R                  5          U R                  U R                  :X  a  U R                  R                  XU45        OU" U0 UD6  U R                   R                  5         g ! U R                   R                  5         f = fr   )rl   r�   rn   ro   rk   r   r�   )r   Úcallbackr&   rt   s       r   Ú_introspect_add_to_queueÚ$ProxyObject._introspect_add_to_queue½  sz   € Ø×Ñ×%Ñ%Ô'ð	,Ø×%Ñ%¨×)UÑ)UÓUØ×.Ñ.×5Ñ5°xÀvÐ6NÕOñ ˜$Ð) &Ò)à×!Ñ!×)Ñ)Õ+øˆD×!Ñ!×)Ñ)Õ+ús   œA A7 Á7Bc                 ó’   • UR                  S5      (       a!  UR                  S5      (       a  [        U5      eU R                  U5      $ ©NÚ__)Ú
startswithÚendswithÚAttributeErrorÚget_dbus_method©r   Úmembers     r   Ú__getattr__ÚProxyObject.__getattr__É  s=   € Ø×Ñ˜T×"Ñ" v§¡°t×'<Ñ'<Ü  Ó(Ð(à×'Ñ'¨Ó/Ð/r    c                 óì   • U R                  X R                  U R                  U R                  UU5      nU R                  U R
                  :X  a&  U R                  X0R                  U R                  5      nU$ )aÄ  Return a proxy method representing the given D-Bus method. The
returned proxy method can be called in the usual way. For instance, ::

    proxy.get_dbus_method("Foo", dbus_interface='com.example.Bar')(123)

is equivalent to::

    proxy.Foo(123, dbus_interface='com.example.Bar')

or even::

    getattr(proxy, "Foo")(123, dbus_interface='com.example.Bar')

However, using `get_dbus_method` is the only way to call D-Bus
methods with certain awkward names - if the author of a service
implements a method called ``connect_to_signal`` or even
``__getattr__``, you'll need to use `get_dbus_method` to call them.

For services which follow the D-Bus convention of CamelCaseMethodNames
this won't be a problem.
)	ÚProxyMethodClassrd   r;   rh   rn   ro   ÚDeferredMethodClassr¢   rž   )r   r¬   rK   Úrets       r   rª   ÚProxyObject.get_dbus_methodÏ  sp   € ð. ×#Ñ# D¯)©)Ø$(×$7Ñ$7Ø$(×$=Ñ$=¸vØ$2ó4ˆð ×!Ñ! T×%QÑ%QÓQØ×*Ñ*¨3×0MÑ0MØ+/×+AÑ+AóCˆCð ˆ
r    c                 ób   • SU R                   U R                  U R                  [        U 5      4-  $ )Nz&<ProxyObject wrapping %s %s %s at %#x>)rd   r;   rh   Úidrw   s    r   Ú__repr__ÚProxyObject.__repr__õ  s4   € Ø7Ø�I‰I�t×*Ñ*¨D×,EÑ,EÄrÈ$Ãxð9Qñ Qð 	Qr    )	rh   rd   rl   rO   rn   r;   rj   rk   rf   )NNNTFr   )r.   r/   r0   r1   r2   r6   r°   r   r±   rm   ro   r‘   r   ÚpropertyrC   Úrequested_bus_namerD   r‚   rp   rŒ   rˆ   r‰   rž   r¢   r­   rª   r¶   Ú__str__r3   r4   r    r   rV   rV   ®   s»   † ñð
 $ÐØ)Ðà'(Ð$Ø./Ð+Ø'(Ð$à=AØ<AôQ:ñf Ñ8¸$Àðó€Hñ$ "Ñ"GØ�$ðóÐñ ÑAØ�$Ø0ó2€KôP2òdGò,ò,ò,ò,ò
,ò0ô$òLQð ƒGr    rV   c                   óÀ   • \ rS rSrSrS r\" S SSS5      r\r\" S SSS5      r	\" S	 SSS
5      r
\" S SSS5      r\" S SSS5      r SS jrS rSS jrS r\rSrg)Ú	Interfaceiû  z�An interface into a remote object.

An Interface can be used to wrap ProxyObjects
so that calls can be routed to their correct
D-Bus interface.
c                 ój   • [        U[        5      (       a  UR                  U l        OXl        X l        g)a
  Construct a proxy for the given interface on the given object.

:Parameters:
    `object` : `dbus.proxies.ProxyObject` or `dbus.Interface`
        The remote object or another of its interfaces
    `dbus_interface` : str
        An interface the `object` implements
N)Ú
isinstancer¼   Úproxy_objectÚ_objr@   )r   ÚobjectrK   s      r   r   ÚInterface.__init__  s)   € ô �fœi×(Ñ(Ø×+Ñ+ˆD�IàŒIØ-Õr    c                 ó.   • U R                   R                  $ r   )rÀ   rD   rw   s    r   rx   ÚInterface.<lambda>  s   € ¨¯©×)>Ò)>r    Nz.The D-Bus object path of the underlying objectc                 ó.   • U R                   R                  $ r   )rÀ   rC   rw   s    r   rx   rÄ     s   €  d§i¡i×&8Ò&8r    z:The bus name to which the underlying proxy object is boundc                 ó.   • U R                   R                  $ r   )rÀ   r¹   rw   s    r   rx   rÄ     s   € °·	±	×0LÒ0Lr    zGThe bus name which was requested when the underlying object was createdc                 ó   • U R                   $ r   )rÀ   rw   s    r   rx   rÄ     s   € ¨$¯)ª)r    zThe underlying proxy objectc                 ó   • U R                   $ r   )r@   rw   s    r   rx   rÄ     s
   € ¨D×,@Ò,@r    zThe D-Bus interface representedc                 ód   • U(       d  U R                   nU R                  R                  " XU40 UD6$ )a1  Arrange for a function to be called when the given signal is
emitted.

The parameters and keyword arguments are the same as for
`dbus.proxies.ProxyObject.connect_to_signal`, except that if
`dbus_interface` is None (the default), the D-Bus interface that
was passed to the `Interface` constructor is used.
)r@   rÀ   r‚   r€   s        r   r‚   ÚInterface.connect_to_signal!  s9   € ö Ø!×1Ñ1ˆNà�y‰y×*Ò*¨;Ø+9ñGØ=EñGð 	Gr    c                 óº   • UR                  S5      (       a!  UR                  S5      (       a  [        U5      eU R                  R	                  XR
                  5      $ r¥   )r§   r¨   r©   rÀ   rª   r@   r«   s     r   r­   ÚInterface.__getattr__1  sG   € Ø×Ñ˜T×"Ñ" v§¡°t×'<Ñ'<Ü  Ó(Ð(à—9‘9×,Ñ,¨V×5IÑ5IÓJÐJr    c                 óV   • Uc  U R                   nU R                  R                  X5      $ )zþReturn a proxy method representing the given D-Bus method.

This is the same as `dbus.proxies.ProxyObject.get_dbus_method`
except that if `dbus_interface` is None (the default),
the D-Bus interface that was passed to the `Interface` constructor
is used.
)r@   rÀ   rª   )r   r¬   rK   s      r   rª   ÚInterface.get_dbus_method7  s*   € ð Ñ!Ø!×1Ñ1ˆNØ�y‰y×(Ñ(¨Ó@Ð@r    c                 óL   • SU R                   U R                  [        U 5      4-  $ )Nz%<Interface %r implementing %r at %#x>)rÀ   r@   rµ   rw   s    r   r¶   ÚInterface.__repr__C  s)   € Ø6Ø�	‰	�4×'Ñ'¬¨D«ð83ñ 3ð 	3r    )r@   rÀ   r   )r.   r/   r0   r1   r2   r   r¸   rD   rh   rC   r¹   r¿   rK   r‚   r­   rª   r¶   rº   r3   r4   r    r   r¼   r¼   û  sª   † ñò.ñ Ñ>ÀÀdØLóN€Kà&ÐÙÑ8¸$Àð$ó%€Hñ "Ñ#LØ#'¨ð$CóDÐñ Ñ3°T¸4Ø>ó@€LáÑ@À$ÈØDóF€Nð *.ôGò Kô
Aò3ð ƒGr    r¼   )r–   Ú	threadingr   ÚImportErrorÚdummy_threadingr=   Údbus._expat_introspect_parserr   Údbus.exceptionsr   r   r   r   Ú__docformat__Ú	getLoggerr˜   r
   r   r   r   r   Údbus._compatr   r   r6   rÁ   rV   r¼   r4   r    r   Ú<module>rÙ      s•   ðó8 ð&Ýó Ý D÷"ó "ð #€ð ×
Ò
˜NÓ
+€÷õ õ  ÷9ñ 9÷4]0ñ ]0ô@J�&ô JôZ
K�õ Køðw ó &ß%ð&ús   †A5 Á5BÂB