Ë
    bQbjŽs  ã            	      óV  — d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ ddlmZmZmZ e G d„ d	«      «       Ze G d
„ d«      «       Ze G d„ d«      «       Ze G d„ d«      «       Ze G d„ d«      «       Ze G d„ d«      «       Ze G d„ d«      «       Ze G d„ d«      «       Ze G d„ d«      «       Ze G d„ d«      «       Ze G d„ d«      «       Ze G d„ d«      «       Ze G d „ d!«      «       Ze G d"„ d#«      «       Ze G d$„ d%«      «       Ze G d&„ d'«      «       Ze G d(„ d)«      «       Z e G d*„ d+«      «       Z!e G d,„ d-«      «       Z"e G d.„ d/«      «       Z#e G d0„ d1«      «       Z$e G d2„ d3«      «       Z%e G d4„ d5«      «       Z&d6d7d8œZ' G d9„ d:«      Z( e)«       jU                  d/e+«      Z, e)«       jU                  d1e+«      Z- e)«       Z. ed;d6e.jU                  d<«      re.jU                  d<e+«      ne+«       ed=d7e.jU                  d>«      re.jU                  d>e+«      ne+«      d8œe(_/        y?)@zÚ
WebDriver BiDi bluetooth module.

Provides a simulation API for Web Bluetooth, allowing tests to fake
Bluetooth adapters, nearby peripherals, GATT services, characteristics,
and descriptors without physical hardware.
é    )Úannotations)ÚCallable)Ú	dataclassÚfield)ÚAny)Úcommand_builder)ÚEventConfigÚ_EventWrapperÚ_EventManagerc                  ó    — e Zd ZU dZdZded<   y)ÚBluetoothManufacturerDatazBluetoothManufacturerData.Nú
Any | NoneÚkey)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__© ó    ú[/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/bidi/bluetooth.pyr   r      s   … á$à€CˆÔr   r   c                  ó‚   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded<   dZ
ded	<   dZded
<   dZded<   y)ÚCharacteristicPropertieszCharacteristicProperties.Núbool | NoneÚ	broadcastÚreadÚwrite_without_responseÚwriteÚnotifyÚindicateÚauthenticated_signed_writesÚextended_properties)r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r   r   r      sX   … á#à!€Iˆ{Ó!Ø€Dˆ+ÓØ*.Ð˜KÓ.Ø€Eˆ;ÓØ€FˆKÓØ €HˆkÓ Ø/3Ð Ó3Ø'+Ð˜Ô+r   r   c                  ó.   — e Zd ZU dZdZded<   dZded<   y)ÚRequestDeviceInfozÕ
    Identifies a simulated Bluetooth device returned in a device-request prompt.

    Attributes:
        id: The internal device identifier.
        name: The human-readable device name shown in the prompt.
    Nr   ÚidÚname)r   r   r   r   r%   r   r&   r   r   r   r$   r$   -   s   … ñð €Bˆ
ÓØ€Dˆ*Ôr   r$   c                  óf   — e Zd ZU dZdZded<    ee¬«      Zded<   dZ	ded	<    ee¬«      Z
ded
<   y)Ú
ScanRecordzScanRecord.Nú
str | Noner&   ©Údefault_factoryú	list[Any]Úuuidsr   Ú
appearanceÚmanufacturer_data)r   r   r   r   r&   r   r   Úlistr-   r.   r/   r   r   r   r(   r(   ;   s8   … áà€Dˆ*ÓÙ¨TÔ2€Eˆ9Ó2Ø!€J�
Ó!Ù#(¸Ô#>Ð�yÔ>r   r(   c                  ó.   — e Zd ZU dZdZded<   dZded<   y)Ú#HandleRequestDevicePromptParametersz$HandleRequestDevicePromptParameters.Nr)   Úcontextr   Úprompt)r   r   r   r   r3   r   r4   r   r   r   r2   r2   E   s   … á.à€GˆZÓØ€FˆJÔr   r2   c                  ó.   — e Zd ZU dZdZded<   dZded<   y)Ú)HandleRequestDevicePromptAcceptParametersz*HandleRequestDevicePromptAcceptParameters.Nr   ÚacceptÚdevice)r   r   r   r   r7   r   r8   r   r   r   r6   r6   M   s   … á4à€FˆJÓØ€FˆJÔr   r6   c                  ó    — e Zd ZU dZdZded<   y)Ú)HandleRequestDevicePromptCancelParametersz*HandleRequestDevicePromptCancelParameters.Nr   r7   )r   r   r   r   r7   r   r   r   r   r:   r:   U   s   … á4à€FˆJÔr   r:   c                  ó<   — e Zd ZU dZdZded<   dZded<   dZded<   y)	ÚSimulateAdapterParametersa  
    Parameters for simulating a Bluetooth adapter state.

    Attributes:
        context: The browsing context ID to target.
        le_supported: Whether the adapter supports Bluetooth Low Energy.
        state: Adapter power state (e.g. 'powered-on', 'powered-off', 'absent').
    Nr)   r3   r   Úle_supportedr   Ústate)r   r   r   r   r3   r   r=   r>   r   r   r   r<   r<   \   s'   … ñð €GˆZÓØ $€L�+Ó$Ø€Eˆ:Ôr   r<   c                  ó    — e Zd ZU dZdZded<   y)ÚDisableSimulationParameterszDisableSimulationParameters.Nr)   r3   )r   r   r   r   r3   r   r   r   r   r@   r@   l   s   … á&à€GˆZÔr   r@   c                  ót   — e Zd ZU dZdZded<   dZded<   dZded<    ee	¬«      Z
ded	<    ee	¬«      Zded
<   y)Ú(SimulatePreconnectedPeripheralParametersa™  
    Parameters for adding a pre-connected simulated peripheral.

    Attributes:
        context: The browsing context ID to target.
        address: The Bluetooth device address (e.g. '09:09:09:09:09:09').
        name: The device name advertised to the page.
        manufacturer_data: List of manufacturer-specific data records.
        known_service_uuids: UUIDs of GATT services the device exposes.
    Nr)   r3   Úaddressr&   r*   r,   r/   Úknown_service_uuids)r   r   r   r   r3   r   rC   r&   r   r0   r/   rD   r   r   r   rB   rB   s   sG   … ñ	ð €GˆZÓØ€GˆZÓØ€Dˆ*ÓÙ#(¸Ô#>Ð�yÓ>Ù%*¸4Ô%@Ð˜Ô@r   rB   c                  ó.   — e Zd ZU dZdZded<   dZded<   y)ÚSimulateAdvertisementParameterszÆ
    Parameters for injecting a simulated advertisement packet.

    Attributes:
        context: The browsing context ID to target.
        scan_entry: The advertisement scan record to inject.
    Nr)   r3   r   Ú
scan_entry)r   r   r   r   r3   r   rG   r   r   r   rF   rF   ‡   s   … ñð €GˆZÓØ!€J�
Ô!r   rF   c                  ó<   — e Zd ZU dZdZded<   dZded<   dZded<   y)Ú(SimulateAdvertisementScanEntryParametersz)SimulateAdvertisementScanEntryParameters.Nr)   Údevice_addressr   ÚrssiÚscan_record)r   r   r   r   rJ   r   rK   rL   r   r   r   rI   rI   •   s#   … á3à!%€N�JÓ%Ø€Dˆ*ÓØ"€K�Ô"r   rI   c                  ó<   — e Zd ZU dZdZded<   dZded<   dZded<   y)Ú(SimulateGattConnectionResponseParameterszä
    Parameters for simulating a GATT connection response.

    Attributes:
        context: The browsing context ID to target.
        address: The address of the peripheral.
        code: The ATT error code (0 = success).
    Nr)   r3   rC   ú
int | NoneÚcode)r   r   r   r   r3   r   rC   rP   r   r   r   rN   rN   ž   s'   … ñð €GˆZÓØ€GˆZÓØ€Dˆ*Ôr   rN   c                  ó.   — e Zd ZU dZdZded<   dZded<   y)Ú#SimulateGattDisconnectionParametersz$SimulateGattDisconnectionParameters.Nr)   r3   rC   ©r   r   r   r   r3   r   rC   r   r   r   rR   rR   ®   s   … á.à€GˆZÓØ€GˆZÔr   rR   c                  óJ   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<   y)	ÚSimulateServiceParameterszSimulateServiceParameters.Nr)   r3   rC   r   ÚuuidÚtype)	r   r   r   r   r3   r   rC   rV   rW   r   r   r   rU   rU   ¶   s-   … á$à€GˆZÓØ€GˆZÓØ€Dˆ*ÓØ€Dˆ*Ôr   rU   c                  óf   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
ded
<   y)Ú SimulateCharacteristicParametersav  
    Parameters for adding a simulated GATT characteristic to a service.

    Attributes:
        context: The browsing context ID to target.
        address: The peripheral address.
        service: The service UUID the characteristic belongs to.
        characteristic: UUID of the characteristic.
        properties: Supported operations (read, write, notify, etc.).
    Nr)   r3   rC   r   Úservice_uuidÚcharacteristic_uuidÚcharacteristic_propertiesrW   )r   r   r   r   r3   r   rC   rZ   r[   r\   rW   r   r   r   rY   rY   À   sG   … ñ	ð €GˆZÓØ€GˆZÓØ#€L�*Ó#Ø&*Ð˜Ó*Ø,0Ð˜zÓ0Ø€Dˆ*Ôr   rY   c                  ó‚   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
d
ed<    ee¬«      Zded<   y)Ú(SimulateCharacteristicResponseParametersz)SimulateCharacteristicResponseParameters.Nr)   r3   rC   r   rZ   r[   rW   rO   rP   r*   r,   Údata)r   r   r   r   r3   r   rC   rZ   r[   rW   rP   r   r0   r_   r   r   r   r^   r^   Õ   sQ   … á3à€GˆZÓØ€GˆZÓØ#€L�*Ó#Ø&*Ð˜Ó*Ø€Dˆ*ÓØ€Dˆ*ÓÙ¨DÔ1€Dˆ)Ô1r   r^   c                  óf   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
ded
<   y)ÚSimulateDescriptorParameterszSimulateDescriptorParameters.Nr)   r3   rC   r   rZ   r[   Údescriptor_uuidrW   )r   r   r   r   r3   r   rC   rZ   r[   rb   rW   r   r   r   ra   ra   â   sB   … á'à€GˆZÓØ€GˆZÓØ#€L�*Ó#Ø&*Ð˜Ó*Ø"&€O�ZÓ&Ø€Dˆ*Ôr   ra   c                  ó�   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
ded
<   dZded<    ee¬«      Zded<   y)Ú$SimulateDescriptorResponseParametersz%SimulateDescriptorResponseParameters.Nr)   r3   rC   r   rZ   r[   rb   rW   rO   rP   r*   r,   r_   )r   r   r   r   r3   r   rC   rZ   r[   rb   rW   rP   r   r0   r_   r   r   r   rd   rd   î   s[   … á/à€GˆZÓØ€GˆZÓØ#€L�*Ó#Ø&*Ð˜Ó*Ø"&€O�ZÓ&Ø€Dˆ*ÓØ€Dˆ*ÓÙ¨DÔ1€Dˆ)Ô1r   rd   c                  óJ   — e Zd ZU dZdZded<   dZded<    ee¬«      Z	ded	<   y)
Ú$RequestDevicePromptUpdatedParametersz%RequestDevicePromptUpdatedParameters.Nr)   r3   r   r4   r*   r,   Údevices)
r   r   r   r   r3   r   r4   r   r0   rg   r   r   r   rf   rf   ü   s(   … á/à€GˆZÓØ€FˆJÓÙ¨tÔ4€GˆYÔ4r   rf   c                  ó.   — e Zd ZU dZdZded<   dZded<   y)Ú!GattConnectionAttemptedParametersz"GattConnectionAttemptedParameters.Nr)   r3   rC   rS   r   r   r   ri   ri     s   … á,à€GˆZÓØ€GˆZÔr   ri   c                  ót   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<    e
e¬
«      Zded<   y)Ú&CharacteristicEventGeneratedParametersz'CharacteristicEventGeneratedParameters.Nr)   r3   rC   r   rZ   r[   rW   r*   r,   r_   )r   r   r   r   r3   r   rC   rZ   r[   rW   r   r0   r_   r   r   r   rk   rk     sG   … á1à€GˆZÓØ€GˆZÓØ#€L�*Ó#Ø&*Ð˜Ó*Ø€Dˆ*ÓÙ¨DÔ1€Dˆ)Ô1r   rk   c                  ó‚   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
ded
<    ee¬«      Zded<   y)Ú"DescriptorEventGeneratedParametersz#DescriptorEventGeneratedParameters.Nr)   r3   rC   r   rZ   r[   rb   rW   r*   r,   r_   )r   r   r   r   r3   r   rC   rZ   r[   rb   rW   r   r0   r_   r   r   r   rm   rm     sQ   … á-à€GˆZÓØ€GˆZÓØ#€L�*Ó#Ø&*Ð˜Ó*Ø"&€O�ZÓ&Ø€Dˆ*ÓÙ¨DÔ1€Dˆ)Ô1r   rm   z$bluetooth.requestDevicePromptUpdatedz!bluetooth.gattConnectionAttempted)Úrequest_device_prompt_updatedÚgatt_connection_attemptedc                  óô  — e Zd ZU dZi Zded<   dd„Zddd„Zddd„Zddd„Z		 	 	 	 	 d	 	 	 	 	 	 	 	 	 dd	„Z
dd d
„Z	 	 	 d	 	 	 	 	 d!d„Zdd"d„Z	 	 	 	 d#	 	 	 	 	 	 	 d$d„Z	 	 	 	 	 	 d%	 	 	 	 	 	 	 	 	 	 	 d&d„Z	 	 	 	 	 	 	 d'	 	 	 	 	 	 	 	 	 	 	 	 	 d(d„Z	 	 	 	 	 	 d%	 	 	 	 	 	 	 	 	 	 	 d)d„Z	 	 	 	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+d„Z	 	 	 	 	 	 d%	 	 	 	 	 	 	 	 	 	 	 d,d„Z	 	 	 	 	 	 	 d'	 	 	 	 	 	 	 	 	 	 	 	 	 d-d„Zdd.d„Zd/d„Zdd„Zy)0Ú	Bluetoothz³
    BiDi interface for simulating Web Bluetooth hardware.

    Simulate adapters, peripherals, GATT services, characteristics,
    and descriptors without physical hardware.
    zdict[str, EventConfig]ÚEVENT_CONFIGSc                óH   — || _         t        || j                  «      | _        y ©N)Ú_connr   rr   Ú_event_manager)ÚselfÚconns     r   Ú__init__zBluetooth.__init__5  s   € ØˆŒ
Ü+¨D°$×2DÑ2DÓEˆÕr   Nc                óê   — |€t        d«      ‚|€t        d«      ‚||dœ}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t        d|«      }| j                  j	                  |«      }|S c c}}w )zÝ
        Dismiss or accept a Bluetooth device-chooser prompt.

        Args:
            context: The browsing context containing the prompt.
            prompt: The prompt ID returned in the prompt-opened event.
        zChandle_request_device_prompt() missing required argument: 'context'zBhandle_request_device_prompt() missing required argument: 'prompt')r3   r4   z#bluetooth.handleRequestDevicePrompt©Ú	TypeErrorÚitemsr   ru   Úexecute)rw   r3   r4   ÚparamsÚkÚvÚcmdÚresults           r   Úhandle_request_device_promptz&Bluetooth.handle_request_device_prompt9  sˆ   € ð ˆ?ÜÐaÓbÐbØˆ>ÜÐ`ÓaÐað Øñ
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐCÀVÓLˆØ—‘×#Ñ# CÓ(ˆØˆùó Dó
   ³
A/¾A/c                óì   — |€t        d«      ‚|€t        d«      ‚|||dœ}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t        d|«      }| j                  j	                  |«      }|S c c}}w )a  
        Simulate a Bluetooth adapter in the given browsing context.

        Args:
            context: The browsing context ID to target.
            le_supported: Whether Low Energy is supported.
            state: Adapter state ('powered-on', 'powered-off', 'absent').
        z7simulate_adapter() missing required argument: 'context'z5simulate_adapter() missing required argument: 'state')r3   ÚleSupportedr>   zbluetooth.simulateAdapterr{   )	rw   r3   r=   r>   r   r€   r�   r‚   rƒ   s	            r   Úsimulate_adapterzBluetooth.simulate_adapterO  s‹   € ð ˆ?ÜÐUÓVÐVØˆ=ÜÐSÓTÐTð Ø'Øñ
ˆð
 $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐ9¸6ÓBˆØ—‘×#Ñ# CÓ(ˆØˆùó Ds
   ´
A0¿A0c                óÎ   — |€t        d«      ‚d|i}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t        d|«      }| j                  j	                  |«      }|S c c}}w )z²
        Disable all Bluetooth simulation in the given context, restoring real behaviour.

        Args:
            context: The browsing context ID to stop simulating.
        z9disable_simulation() missing required argument: 'context'r3   zbluetooth.disableSimulationr{   )rw   r3   r   r€   r�   r‚   rƒ   s          r   Údisable_simulationzBluetooth.disable_simulationg  sv   € ð ˆ?ÜÐWÓXÐXð �wð
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐ;¸VÓDˆØ—‘×#Ñ# CÓ(ˆØˆùó Ds
   ¥
A!°A!c                ó>  — |€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|||||dœ}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t        d|«      }	| j                  j	                  |	«      }
|
S c c}}w )aŒ  
        Register a simulated peripheral as already connected to the adapter.

        Args:
            context: The browsing context ID to target.
            address: The Bluetooth device address.
            name: The device name.
            manufacturer_data: Manufacturer-specific advertisement data.
            known_service_uuids: List of GATT service UUIDs the device exposes.
        zGsimulate_preconnected_peripheral() missing required argument: 'context'zGsimulate_preconnected_peripheral() missing required argument: 'address'zDsimulate_preconnected_peripheral() missing required argument: 'name'zQsimulate_preconnected_peripheral() missing required argument: 'manufacturer_data'zSsimulate_preconnected_peripheral() missing required argument: 'known_service_uuids')r3   rC   r&   ÚmanufacturerDataÚknownServiceUuidsz(bluetooth.simulatePreconnectedPeripheralr{   )rw   r3   rC   r&   r/   rD   r   r€   r�   r‚   rƒ   s              r   Ú simulate_preconnected_peripheralz*Bluetooth.simulate_preconnected_peripheraly  sÆ   € ð$ ˆ?ÜÐeÓfÐfØˆ?ÜÐeÓfÐfØˆ<ÜÐbÓcÐcØÐ$ÜÐoÓpÐpØÐ&ÜÐqÓrÐrð ØØØ 1Ø!4ñ
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐHÈ&ÓQˆØ—‘×#Ñ# CÓ(ˆØˆùó Ds   Á
BÁ(Bc                óê   — |€t        d«      ‚|€t        d«      ‚||dœ}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t        d|«      }| j                  j	                  |«      }|S c c}}w )zÌ
        Inject a simulated Bluetooth advertisement packet.

        Args:
            context: The browsing context ID to target.
            scan_entry: The advertisement scan record to inject.
        z=simulate_advertisement() missing required argument: 'context'z@simulate_advertisement() missing required argument: 'scan_entry')r3   Ú	scanEntryzbluetooth.simulateAdvertisementr{   )rw   r3   rG   r   r€   r�   r‚   rƒ   s           r   Úsimulate_advertisementz Bluetooth.simulate_advertisement¢  s‰   € ð ˆ?ÜÐ[Ó\Ð\ØÐÜÐ^Ó_Ð_ð Ø#ñ
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐ?ÀÓHˆØ—‘×#Ñ# CÓ(ˆØˆùó Dr…   c                ó  — |€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|||dœ}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t        d|«      }| j                  j	                  |«      }|S c c}}w )a  
        Respond to a pending GATT connection attempt from the page.

        Args:
            context: The browsing context ID.
            address: The peripheral address.
            code: ATT error code (0 = success; non-zero signals failure).
        zHsimulate_gatt_connection_response() missing required argument: 'context'zHsimulate_gatt_connection_response() missing required argument: 'address'zEsimulate_gatt_connection_response() missing required argument: 'code')r3   rC   rP   z(bluetooth.simulateGattConnectionResponser{   )	rw   r3   rC   rP   r   r€   r�   r‚   rƒ   s	            r   Ú!simulate_gatt_connection_responsez+Bluetooth.simulate_gatt_connection_response¸  sœ   € ð ˆ?ÜÐfÓgÐgØˆ?ÜÐfÓgÐgØˆ<ÜÐcÓdÐdð ØØñ
ˆð
 $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐHÈ&ÓQˆØ—‘×#Ñ# CÓ(ˆØˆùó Ds   Á
A=ÁA=c                óê   — |€t        d«      ‚|€t        d«      ‚||dœ}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t        d|«      }| j                  j	                  |«      }|S c c}}w )zÈ
        Simulate a GATT disconnection for the given peripheral.

        Args:
            context: The browsing context ID.
            address: The address of the peripheral to disconnect.
        zBsimulate_gatt_disconnection() missing required argument: 'context'zBsimulate_gatt_disconnection() missing required argument: 'address')r3   rC   z#bluetooth.simulateGattDisconnectionr{   )rw   r3   rC   r   r€   r�   r‚   rƒ   s           r   Úsimulate_gatt_disconnectionz%Bluetooth.simulate_gatt_disconnection×  sˆ   € ð ˆ?ÜÐ`ÓaÐaØˆ?ÜÐ`ÓaÐað Øñ
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐCÀVÓLˆØ—‘×#Ñ# CÓ(ˆØˆùó Dr…   c                ó"  — |€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚||||dœ}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}t        d|«      }| j                  j	                  |«      }	|	S c c}}w )zÍ
        Add a simulated GATT service to a peripheral.

        Args:
            context: The browsing context ID.
            address: The peripheral address.
            uuid: The service UUID.
        z7simulate_service() missing required argument: 'context'z7simulate_service() missing required argument: 'address'z4simulate_service() missing required argument: 'uuid'z4simulate_service() missing required argument: 'type')r3   rC   rV   rW   zbluetooth.simulateServicer{   )
rw   r3   rC   rV   rW   r   r€   r�   r‚   rƒ   s
             r   Úsimulate_servicezBluetooth.simulate_serviceí  s°   € ð ˆ?ÜÐUÓVÐVØˆ?ÜÐUÓVÐVØˆ<ÜÐRÓSÐSØˆ<ÜÐRÓSÐSð ØØØñ	
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐ9¸6ÓBˆØ—‘×#Ñ# CÓ(ˆØˆùó Ds   Á
BÁBc                ó@  — |€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚||||||dœ}|j                  «       D ��	ci c]  \  }}	|	€Œ	||	“Œ }}}	t        d|«      }
| j                  j	                  |
«      }|S c c}	}w )a>  
        Add a simulated GATT characteristic to a service.

        Args:
            context: The browsing context ID.
            address: The peripheral address.
            service: The service UUID.
            characteristic: The characteristic UUID.
            properties: Supported operations bitmap.
        z>simulate_characteristic() missing required argument: 'context'z>simulate_characteristic() missing required argument: 'address'zCsimulate_characteristic() missing required argument: 'service_uuid'zJsimulate_characteristic() missing required argument: 'characteristic_uuid'z;simulate_characteristic() missing required argument: 'type')r3   rC   ÚserviceUuidÚcharacteristicUuidÚcharacteristicPropertiesrW   z bluetooth.simulateCharacteristicr{   )rw   r3   rC   rZ   r[   r\   rW   r   r€   r�   r‚   rƒ   s               r   Úsimulate_characteristicz!Bluetooth.simulate_characteristic  sÉ   € ð& ˆ?ÜÐ\Ó]Ð]Øˆ?ÜÐ\Ó]Ð]ØÐÜÐaÓbÐbØÐ&ÜÐhÓiÐiØˆ<ÜÐYÓZÐZð ØØ'Ø"5Ø(AØñ
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐ@À&ÓIˆØ—‘×#Ñ# CÓ(ˆØˆùó Dó   Á
BÁ)Bc                ó\  — |€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|||||||dœ}|j                  «       D �	�
ci c]  \  }	}
|
€Œ	|	|
“Œ }}	}
t        d|«      }| j                  j	                  |«      }|S c c}
}	w )	a‡  
        Respond to a pending read or write on a simulated characteristic.

        Args:
            context: The browsing context ID.
            address: The peripheral address.
            service: The service UUID.
            characteristic: The characteristic UUID.
            code: ATT error code (0 = success).
            body: The characteristic value bytes (for reads).
        zGsimulate_characteristic_response() missing required argument: 'context'zGsimulate_characteristic_response() missing required argument: 'address'zLsimulate_characteristic_response() missing required argument: 'service_uuid'zSsimulate_characteristic_response() missing required argument: 'characteristic_uuid'zDsimulate_characteristic_response() missing required argument: 'type'zDsimulate_characteristic_response() missing required argument: 'code')r3   rC   r™   rš   rW   rP   r_   z(bluetooth.simulateCharacteristicResponser{   )rw   r3   rC   rZ   r[   rW   rP   r_   r   r€   r�   r‚   rƒ   s                r   Ú simulate_characteristic_responsez*Bluetooth.simulate_characteristic_response;  sÝ   € ð* ˆ?ÜÐeÓfÐfØˆ?ÜÐeÓfÐfØÐÜÐjÓkÐkØÐ&ÜÐqÓrÐrØˆ<ÜÐbÓcÐcØˆ<ÜÐbÓcÐcð ØØ'Ø"5ØØØñ
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐHÈ&ÓQˆØ—‘×#Ñ# CÓ(ˆØˆùó Dó   Á,
B(Á7B(c                óZ  — |€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚||||||dœ}|j                  «       D ��	ci c]  \  }}	|	€Œ	||	“Œ }}}	t        d|«      }
| j                  j	                  |
«      }|S c c}	}w )	a9  
        Add a simulated GATT descriptor to a characteristic.

        Args:
            context: The browsing context ID.
            address: The peripheral address.
            service: The service UUID.
            characteristic: The characteristic UUID.
            descriptor: The descriptor UUID.
        z:simulate_descriptor() missing required argument: 'context'z:simulate_descriptor() missing required argument: 'address'z?simulate_descriptor() missing required argument: 'service_uuid'zFsimulate_descriptor() missing required argument: 'characteristic_uuid'zBsimulate_descriptor() missing required argument: 'descriptor_uuid'z7simulate_descriptor() missing required argument: 'type')r3   rC   r™   rš   ÚdescriptorUuidrW   zbluetooth.simulateDescriptorr{   )rw   r3   rC   rZ   r[   rb   rW   r   r€   r�   r‚   rƒ   s               r   Úsimulate_descriptorzBluetooth.simulate_descriptork  sÛ   € ð& ˆ?ÜÐXÓYÐYØˆ?ÜÐXÓYÐYØÐÜÐ]Ó^Ð^ØÐ&ÜÐdÓeÐeØÐ"ÜÐ`ÓaÐaØˆ<ÜÐUÓVÐVð ØØ'Ø"5Ø-Øñ
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐ<¸fÓEˆØ—‘×#Ñ# CÓ(ˆØˆùó Ds   Á+
B'Á6B'c	           	     óx  — |€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚||||||||dœ}	|	j                  «       D �
�ci c]  \  }
}|€Œ	|
|“Œ }	}
}t        d	|	«      }| j                  j	                  |«      }|S c c}}
w )
a¬  
        Respond to a pending read or write on a simulated descriptor.

        Args:
            context: The browsing context ID.
            address: The peripheral address.
            service: The service UUID.
            characteristic: The characteristic UUID.
            descriptor: The descriptor UUID.
            code: ATT error code (0 = success).
            body: The descriptor value bytes (for reads).
        zCsimulate_descriptor_response() missing required argument: 'context'zCsimulate_descriptor_response() missing required argument: 'address'zHsimulate_descriptor_response() missing required argument: 'service_uuid'zOsimulate_descriptor_response() missing required argument: 'characteristic_uuid'zKsimulate_descriptor_response() missing required argument: 'descriptor_uuid'z@simulate_descriptor_response() missing required argument: 'type'z@simulate_descriptor_response() missing required argument: 'code')r3   rC   r™   rš   r¢   rW   rP   r_   z$bluetooth.simulateDescriptorResponser{   )rw   r3   rC   rZ   r[   rb   rW   rP   r_   r   r€   r�   r‚   rƒ   s                 r   Úsimulate_descriptor_responsez&Bluetooth.simulate_descriptor_response˜  sò   € ð. ˆ?ÜÐaÓbÐbØˆ?ÜÐaÓbÐbØÐÜÐfÓgÐgØÐ&ÜÐmÓnÐnØÐ"ÜÐiÓjÐjØˆ<ÜÐ^Ó_Ð_Øˆ<ÜÐ^Ó_Ð_ð ØØ'Ø"5Ø-ØØØñ	
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐDÀfÓMˆØ—‘×#Ñ# CÓ(ˆØˆùó Ds   Á:
B6ÂB6c                ó@  — |€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚||||||dœ}|j                  «       D ��	ci c]  \  }}	|	€Œ	||	“Œ }}}	t        d|«      }
| j                  j	                  |
«      }|S c c}	}w )z.Execute bluetooth.characteristicEventGeneratedzEcharacteristic_event_generated() missing required argument: 'context'zEcharacteristic_event_generated() missing required argument: 'address'zJcharacteristic_event_generated() missing required argument: 'service_uuid'zQcharacteristic_event_generated() missing required argument: 'characteristic_uuid'zBcharacteristic_event_generated() missing required argument: 'type')r3   rC   r™   rš   rW   r_   z&bluetooth.characteristicEventGeneratedr{   )rw   r3   rC   rZ   r[   rW   r_   r   r€   r�   r‚   rƒ   s               r   Úcharacteristic_event_generatedz(Bluetooth.characteristic_event_generatedÍ  sÉ   € ð ˆ?ÜÐcÓdÐdØˆ?ÜÐcÓdÐdØÐÜÐhÓiÐiØÐ&ÜÐoÓpÐpØˆ<ÜÐ`ÓaÐað ØØ'Ø"5ØØñ
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐFÈÓOˆØ—‘×#Ñ# CÓ(ˆØˆùó Dr�   c                ó\  — |€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|€t        d«      ‚|||||||dœ}|j                  «       D �	�
ci c]  \  }	}
|
€Œ	|	|
“Œ }}	}
t        d|«      }| j                  j	                  |«      }|S c c}
}	w )	z*Execute bluetooth.descriptorEventGeneratedzAdescriptor_event_generated() missing required argument: 'context'zAdescriptor_event_generated() missing required argument: 'address'zFdescriptor_event_generated() missing required argument: 'service_uuid'zMdescriptor_event_generated() missing required argument: 'characteristic_uuid'zIdescriptor_event_generated() missing required argument: 'descriptor_uuid'z>descriptor_event_generated() missing required argument: 'type')r3   rC   r™   rš   r¢   rW   r_   z"bluetooth.descriptorEventGeneratedr{   )rw   r3   rC   rZ   r[   rb   rW   r_   r   r€   r�   r‚   rƒ   s                r   Údescriptor_event_generatedz$Bluetooth.descriptor_event_generatedï  sÞ   € ð ˆ?ÜÐ_Ó`Ð`Øˆ?ÜÐ_Ó`Ð`ØÐÜÐdÓeÐeØÐ&ÜÐkÓlÐlØÐ"ÜÐgÓhÐhØˆ<ÜÐ\Ó]Ð]ð ØØ'Ø"5Ø-ØØñ
ˆð $*§<¡<£>×C™4˜1˜a°Q±]�!�Q‘$ÐCˆÑCÜÐBÀFÓKˆØ—‘×#Ñ# CÓ(ˆØˆùó Dr    c                ó<   — | j                   j                  |||«      S )a  Add an event handler.

        Args:
            event: The event to subscribe to.
            callback: The callback function to execute on event.
            contexts: The context IDs to subscribe to (optional).

        Returns:
            The callback ID.
        )rv   Úadd_event_handler)rw   ÚeventÚcallbackÚcontextss       r   r«   zBluetooth.add_event_handler  s   € ð ×"Ñ"×4Ñ4°U¸HÀhÓOÐOr   c                ó:   — | j                   j                  ||«      S )zŒRemove an event handler.

        Args:
            event: The event to unsubscribe from.
            callback_id: The callback ID.
        )rv   Úremove_event_handler)rw   r¬   Úcallback_ids      r   r°   zBluetooth.remove_event_handler#  s   € ð ×"Ñ"×7Ñ7¸¸{ÓKÐKr   c                ó6   — | j                   j                  «       S )zClear all event handlers.)rv   Úclear_event_handlers)rw   s    r   r³   zBluetooth.clear_event_handlers,  s   € à×"Ñ"×7Ñ7Ó9Ð9r   )ÚreturnÚNone)NN)r3   r   r4   r   )NNN)r3   r   r=   r   r>   r   rt   )r3   r   )NNNNN)
r3   r   rC   r   r&   r   r/   úlist[Any] | NonerD   r¶   )r3   r   rG   r   )r3   r   rC   r   rP   rO   )r3   r   rC   r   )NNNN)r3   r   rC   r   rV   r   rW   r   )NNNNNN)r3   r   rC   r   rZ   r   r[   r   r\   r   rW   r   )NNNNNNN)r3   r   rC   r   rZ   r   r[   r   rW   r   rP   rO   r_   r¶   )r3   r   rC   r   rZ   r   r[   r   rb   r   rW   r   )NNNNNNNN)r3   r   rC   r   rZ   r   r[   r   rb   r   rW   r   rP   rO   r_   r¶   )r3   r   rC   r   rZ   r   r[   r   rW   r   r_   r¶   )r3   r   rC   r   rZ   r   r[   r   rb   r   rW   r   r_   r¶   )r¬   Ústrr­   r   r®   zlist[str] | Noner´   Úint)r¬   r·   r±   r¸   r´   rµ   )r   r   r   r   rr   r   ry   r„   rˆ   rŠ   rŽ   r‘   r“   r•   r—   rœ   rŸ   r£   r¥   r§   r©   r«   r°   r³   r   r   r   rq   rq   ,  s  … ñð -/€MÐ)Ó.óFôô,ô0ð( #Ø"ØØ.2Ø04ð'àð'ð ð'ð ð	'ð
 ,ð'ð .ó'ôRð0 #Ø"Øð	àðð ðð ó	ô>ð0 #Ø"ØØð!àð!ð ð!ð ð	!ð
 ó!ðJ #Ø"Ø#'Ø*.Ø04Øð)àð)ð ð)ð !ð	)ð
 (ð)ð $.ð)ð ó)ðZ #Ø"Ø#'Ø*.ØØØ!%ð.àð.ð ð.ð !ð	.ð
 (ð.ð ð.ð ð.ð ó.ðd #Ø"Ø#'Ø*.Ø&*Øð+àð+ð ð+ð !ð	+ð
 (ð+ð $ð+ð ó+ð^ #Ø"Ø#'Ø*.Ø&*ØØØ!%ð3àð3ð ð3ð !ð	3ð
 (ð3ð $ð3ð ð3ð ð3ð ó3ðn #Ø"Ø#'Ø*.ØØ!%ð àð ð ð ð !ð	 ð
 (ð ð ð ð ó ðH #Ø"Ø#'Ø*.Ø&*ØØ!%ð$àð$ð ð$ð !ð	$ð
 (ð$ð $ð$ð ð$ð ó$ôNPóLô:r   rq   rn   ÚRequestDevicePromptUpdatedro   ÚGattConnectionAttemptedN)0r   Ú
__future__r   Úcollections.abcr   Údataclassesr   r   Útypingr   Ú%selenium.webdriver.common.bidi.commonr   Ú-selenium.webdriver.common.bidi._event_managerr	   r
   r   r   r   r$   r(   r2   r6   r:   r<   r@   rB   rF   rI   rN   rR   rU   rY   r^   ra   rd   rf   ri   rk   rm   ÚEVENT_NAME_MAPPINGrq   ÚglobalsÚgetÚdictr¹   rº   Ú_globalsrr   r   r   r   ú<module>rÆ      s  ðñõ #å $ß (Ý å Aß cÑ cà
÷ð ó ðð ÷
,ð 
,ó ð
,ð ÷
ð 
ó ð
ð ÷?ð ?ó ð?ð ÷ð ó ðð ÷ð ó ðð ÷ð ó ðð ÷ð ó ðð ÷ð ó ðð ÷Að Aó ðAð& ÷
"ð 
"ó ð
"ð ÷#ð #ó ð#ð ÷ð ó ðð ÷ð ó ðð ÷ð ó ðð ÷ð ó ðð( ÷	2ð 	2ó ð	2ð ÷ð ó ðð ÷
2ð 
2ó ð
2ð ÷5ð 5ó ð5ð ÷ð ó ðð ÷2ð 2ó ð2ð ÷	2ð 	2ó ð	2ð &LØ!DñÐ ÷
B:ñ B:ñL %›YŸ]™]Ð+QÐSWÓXÐ ñ "›)Ÿ-™-Ð(KÈTÓRÐ ñ ‹9€á%0Ø'Ø.Ø<D¿L¹LÐIeÔ<fˆ�‰Ð1°4Ô8Ðlpó&ñ
 "-Ø#Ø+Ø9A¿¹ÐF_Ô9`ˆ�‰Ð.°Ô5Ðfjó"ñ€	Õ r   