ver 5.20:
	Fix issue with LED handling of PS3 controllers.
	Add support for Android Bluetooth GATT server interface.
	Add support for Android Bluetooth HID over GATT feature.
	Add support for Android Bluetooth multi-profile feature.
	Add support for Android Bluetooth aptX audio integration.

	Note: aptX codec not included

ver 5.19:
	Fix issue with OBEX Put-Delete and Create-Empty methods.
	Fix issue with AVRCP browsable/searchable player properties.
	Fix issue with handling multiple default agents.
	Fix issue with handling unpair event per bearer.
	Fix issue with HID over GATT report ID presence.
	Add support for HID protocol handling in userspace.
	Add support for Bluetooth reconnection policy framework.
	Add support for Android Bluetooth SCO over HCI transport.
	Add support for Android Bluetooth audio quality control.
	Add support for Android Bluetooth Low Energy only mode.

ver 5.18:
	Fix issue with identifying LE single mode devices.
	Fix issue with L2CAP and RFCOMM peer address lookup.
	Add support for handling OBEX authentication procedure.
	Add support for Android Bluetooth GATT client interface.

ver 5.17:
	Fix issue with not resetting OBEX SRM setup.
	Fix issue with BR/EDR devices and auto-connect list.
	Fix issue with bonding complete detection as peripheral.
	Fix issue with not updating bearer timestamp of connections.
	Fix issue with paired property for multiple bearers.
	Add support for Android Bluetooth Handsfree interface.
	Add support for Android Bluetooth Wideband speech.

ver 5.16:
	Fix issue with HID over GATT physical location.
	Fix issue with HID over GATT unique identifier.
	Fix issue with missing paired property notification.
	Fix issue with endianess of long term key storage.
	Add support for storing signature resolving keys.
	Add support for Android Bluetooth AVRCP interface.

ver 5.15:
	Fix issue with LE enabling and background scanning.
	Fix issue with HID over GATT input device name.
	Fix issue with storage of slave long term keys.
	Add support for handling identity resolving keys.
	Add support for Android Bluetooth A2DP interface.
	Add support for Android Bluetooth audio interface.

ver 5.14:
	Fix issue with marking PS3 controllers as trusted.
	Fix issue with authorization of PS3 controllers.
	Add support for DualShock 4 controller detection.
	Add support for legacy pairing emulation.
	Add support for secure simple pairing emulation.
	Add support for automated pairing testing.
	Add support for RFCOMM protocol testing.
	Add support for HCI controller testing.

ver 5.13:
	Fix issue with PS3 controller detection.
	Add support for data transfers to L2CAP testing tool.
	Add support for delay reporting to AVDTP testing tool.
	Add support for Android Bluetooth Core interface.
	Add support for Android Bluetooth Socket interface.
	Add support for Android Bluetooth HID Host interface.
	Add support for Android Bluetooth PAN interface.

ver 5.12:
	Fix issue with missing reply to DisconnectProfile.
	Fix issue with icon property and class of device changes.
	Fix issue with HID devices when SDP record is not available.
	Fix issue with handling auto-pairing of printers.
	Fix issue with agent authorization handling.
	Add support for PS3 controller setup and pairing.
	Add support for LE L2CAP CoC test capabilities.
	Add support for AVDTP qualification test cases.
	Add support for SMP cryptographic test cases.

ver 5.11:
	Fix issue with connection attempt when not powered.
	Fix issue with assigning player to AVRCP target role.
	Fix issue with OBEX default cache directory.
	Fix issue with SDP search error handling.
	Fix issue with processing of SDP records.
	Fix issue with HID to HCI switching utility.
	Fix issue with mgmt end-to-end testing tool.
	Fix issue with L2CAP end-to-end testing tool.
	Add support for SMP end-to-end testing tool.
	Add support for more Wii controllers.

ver 5.10:
	Fix issue with discoverable timeout handling.
	Fix issue with MAP messages and record version.
	Fix issue with MAP messages and status events.
	Fix issue with MAP messages and relative folders.
	Fix issue with MAP messages and type property signals.
	Fix issue with transfer size for OBEX GET operations.
	Fix issue with AVRCP service class identifier.
	Fix issue with AVRCP tracking seeked signal.
	Add support for OBEX command line client.

ver 5.9:
	Fix issue with network service and adapter removal.
	Fix issue with misleading OBEX error messages.
	Fix issue with OBEX transport reference handling.
	Fix issue with memory leak with MAP event handler.
	Fix issue with missing MAP property changed signal.
	Fix issue with message type property values.
	Fix issue with empty UUID list for devices.
	Fix issue with profile agent cancel method.
	Remove dependency on USB library.

ver 5.8:
	Fix issue with missing OBEX session properties.
	Fix issue with missing SDP service refresh.
	Fix issue with SDP attribute range check.
	Fix issue with priority for SDP transactions.
	Fix issue with service discovery after pairing.
	Fix issue with race condition in service list.
	Fix issue with input service state transition.
	Fix issue with default authorization for profiles.
	Fix issue with AVRCP browsing channel connections.
	Add support for AVRCP role agnostic sessions.

ver 5.7:
	Fix issue with missing UUID discovery during pairing.
	Fix issue with broken patch for SDP range check handling.
	Fix issue with AVRCP usage of UID=0 for paused/stopped.
	Add support MAP notification dispatching.

ver 5.6:
	Fix issue with incoming connections without SDP record.
	Fix issue with canceling ongoing device connections.
	Fix issue with handling failed connection attempts.
	Fix issue with pending resume during A2DP open failures.
	Fix issue with registering AVRCP unsupported notification.
	Fix issue with listing available AVRCP target settings.
	Fix issue with missing error for OBEX SetPath commands.
	Fix issue with missing OBEX session command queue.
	Fix issue with retrieving multiple MAP event reports.
	Add support for command line player utility.

ver 5.5:
	Fix issue with race condition between SDP and properties.
	Fix issue with handling storage of private device addresses.
	Fix issue with NFC out-of-band pairing and power states.
	Fix issue with short name during device update handling.
	Fix issue with handling AVRCP without A2DP being present.
	Add support for handling AVRCP pass-through operations.
	Add support for automatically reconnecting HID devices.
	Add support for automatically pairing of devices.

ver 5.4:
	Fix issue with invalid memory access and SDP service search.
	Add support for available player changed event for controller.
	Add support for UIDs changed event for AVRCP controller.
	Add support for mandatory AVRCP pass-through operations.
	Add support for Message Notification Service (MNS) server.
	Add support for agent methods within command line client.

ver 5.3:
	Fix issue with registering invalid profiles.
	Fix issue with inconsistent A2DP transport state.
	Fix issue with A2DP resume while in configured state.
	Fix issue with buffer overflow when processing SDP response.
	Fix issue with missing range check for SDP attribute response.
	Fix issue with missing validation of SDP data elements.
	Fix issue with missing fallback to static hostname.
	Fix issue with default adapter assignment.

ver 5.2:
	Fix issue with connection handling for Low Energy.
	Fix issue with broken device discovery handling.
	Fix issue with invalid memory access within A2DP.
	Fix issue with handling empty path name of SetPath.
	Fix issue with handling Message Access Profile filters.
	Fix issue with handling network service unregistration.
	Fix issue with not handling bogus device pairing results.
	Fix issue with initial service discovery and profile manager.
	Add support for AVRCP volume notifications.
	Add support for AVRCP browsing commands.

ver 5.1:
	Fix issue with crash when removing OBEX session.
	Fix issue with HID device disconnected from kernel.
	Fix issue with buffer overflow when parsing HID SDP record.
	Fix issue with SDP_TEXT_STR16 and SDP_URL_STR16 parsing.
	Add support for integration with systemd's hostname daemon.
	Add support for separate adapter alias property.
	Add support for adapter and device modalias properties.
	Add support for official BlueZ device information.
	Add support for asynchronous management interface handling.
	Add tool for testing management interface compliance.
	Add tool for testing SDP qualification requirements.
	Add tool for testing various EIR and AD data records.

ver 5.0:
	Introduce D-Bus Properties and ObjectManager interfaces.
	Add support for generic profile interface.
	Add support for global agent interface.
	Add support for integrated OBEX daemon.
	Add support for integrated hcidump utility.
	Add support for Bluetooth tracing and monitor utility.
	Add support for Bluetooth command line client utility.
	Remove support for Handsfree gateway handling.
	Remove support for GStreamer A2DP and SBC elements.
	Disable default installation of Bluetooth library.

ver 4.101:
	Fix issue with missing BlueZ service file.
	Fix issue with aborting A2DP setup during AVDTP start.
	Fix issue with handling of multiple A2DP indication.
	Fix issue with handling AVDTP abort with invalid SEID.
	Fix issue with rejecting AVDTP abort commands.
	Add support for handling AVDTP command collision.

ver 4.100:
	Fix issue with crashing when SCO connection fails.
	Fix issue with HFP gateway failing on first GSM connection.
	Fix issue with AVRCP and handling of vendor commands.
	Fix issue with handling AVRCP subunit info command.
	Fix issue with missing capability for AVRCP track reached end.
	Fix issue with AVDTP signaling and GStreamer SBC NULL check.
	Fix issue with AVDTP Reconfigure Reject message.
	Fix issue with incorrect EIR length parsing.
	Fix issue with SDP disconnect for HIDSDPDisable.
	Fix issue with SDP interoperability with Mac OS X Lion.
	Fix issue with reverse SDP discovery with some devices.
	Fix issue with discovering state during power off operation.
	Add support for AVRCP Volume Changed notifications.
	Add support for AVRCP Set Absolute Volume handling.
	Add support for display legacy PIN code agent method.
	Add support for multiple media transports per endpoint.
	Add support for discovering device information characteristics.
	Add support for vendor source for Device ID setting.
	Add support for immediate alert server.
	Add support for link loss server.

	Notes:
	This version requires D-Bus 1.4 or later.
	This version requires GLib 2.28 or later.

ver 4.99:
	Fix issue with missing retries for BNEP connection setup.
	Fix issue with not showing name if first EIR has no details.
	Fix issue with running SDP discovery for LE devices.
	Add support for GATT using 128-bit Bluetooth UUIDs.
	Add support for retrieving key size information.
	Add support for storing Long Term Keys.
	Add support for Proximity Reporter API.
	Add support for KeyboardDisplay IO capability.
	Add support for version 1.0 of management API.
	Add support for monitoring interface.

ver 4.98:
	Fix issue with adapter list upon initialization failure.
	Fix issue with missing legacy property for Low Energy.
	Fix issue with missing EIR information handling.
	Fix issue with device address type tracking.
	Fix issue with alert level characteristic.
	Fix issue with headset shutdown handling.
	Fix issue with Wiimote address handling.
	Add support for advanced l2test options.
	Add support for attribute protocol and multiple adapters.

ver 4.97:
	Update support for proximity profile.
	Fix issue with SBC audio decoding quality.
	Fix multiple issues with HFP support.
	Fix multiple issues with A2DP support.
	Fix multiple issues with AVDTP support.
	Fix multiple issues with AVRCP support.
	Add support for AVRCP meta-data transfer.
	Add support for Bluetooth based thermometers.

ver 4.96:
	Fix issue with race condition in AVDTP stream start.
	Fix issue with global adapter offline switching.
	Fix issue with pairing and No Bonding devices.
	Add support for Nintendo Wii Remote pairing.

ver 4.95:
	Fix issue with AVCTP replies with invalid PID.
	Fix issue with AVRCP and unknown packet types.
	Fix issue with AVRCP not using NOT_IMPLEMENTED correctly.
	Fix issue with AVDTP discovery if all endpoints are in use.
	Fix issue with invalid memory writes and media support.
	Fix issue with not removing device alias and unbonding.
	Fix issue with device disconnects and offline mode handling.
	Add support for setting adapter name based on machine-info.
	Add support for systemd service configuration.

ver 4.94:
	Fix issue with invalid read of memory in various modules.
	Fix issue with buffer overflow when sending AVDTP commands.
	Fix issue with response to vendor dependent AVRCP commands.
	Fix issue with headset when not able to reply with ERROR.
	Fix issue with crash when creating a device from storage.
	Fix issue with handling non UTF-8 devices names.
	Add support for improved discovery procedure.

ver 4.93:
	Fix issue with property type and Health Main channel.
	Fix issue with crash when removing devices.
	Add support for hid2hci and udev integration.

ver 4.92:
	Fix issue with handling of A2DP suspend response.
	Fix issue with crashing when acquiring A2DP stream.
	Fix issue with missing check for valid SCO before shutdown.
	Fix issue with waiting for POLLERR when disconnecting SCO.
	Fix issue with disconnect after primary service discovery.
	Fix issue with attribute interface registration.
	Add support for primary services over BR/EDR.
	Add support for flushable packets of A2DP media.

ver 4.91:
	Fix issue with LMP version string and hciconfig.
	Fix issue with missing discovery signal when scanning.
	Fix issue with wrong state and canceling name resolving.
	Fix issue with missing check during adapter initialization.
	Fix issue with missing protocol not supported error and A2DP.
	Fix issue with crash during driver unregistering and A2DP.
	Fix issue with crash when receiving AVDTP close command.
	Fix issue with remote SEP handling when A2DP codec changes.
	Fix issue with SCO hangup handling and state changes.
	Fix issue with security level and MCAP instances.
	Fix issue with memory leak and HDP data channels.
	Add support for discover characteristics by UUID to gatttool.
	Add initial support for Out-of-Band association model.
	Add initial support for SIM Access Profile.

ver 4.90:
	Fix issue with setting of global mode property.
	Fix issue with handling of RequestSession responses.
	Fix issue with TP_BNEP_CTRL_BV_01_C qualification test.
	Fix issue with too short AVDTP request timeout.
	Add support for SIM Access Profile manager.
	Add support for new UUID utility functions.
	Add support for attribute server notifications.
	Add support for client characteristic configuration.
	Update support for interactive GATT utility.

ver 4.89:
	Fix issue with name resolving when discovery is suspended.
	Fix issue with parsing flags of advertising report.
	Fix issue with SEP handling if interface is disabled.
	Fix issue with device object creation on disconnect event.
	Fix issue with indicators whenever the driver is initialized.
	Fix issue with call indicator when parsing call info reply.
	Fix issue with crash and allowed GATT MTU was too large.
	Add support for SDP record of Primary GATT services.
	Add support for interactive mode for GATT utility.

ver 4.88:
	Fix issue with HID channel reference count handling.
	Fix issue with daemon exit on badly formatted AT+VTS.
	Fix issue with crash while parsing of endpoint properties.
	Fix issue with possible crash on AVDTP Suspend request timeout.
	Fix issue with stopping inquiry before adapter is initialized.
	Fix issue with creating device object when connection fails.
	Fix issue with sending HCIDEVUP when adapter is already up.
	Fix issue with handling bonding IO channel closing.
	Fix agent cancellation in security mode 3 situations.
	Update pairing code to support management interface.

ver 4.87:
	Fix issue with initialization when adapter is already up.
	Fix issue with attribute server MTU and incoming connections.
	Fix issue with duplicate characteristics after discovery.

ver 4.86:
	Revert wrong fix for SDP PDU size error response.
	Fix various memory leaks in A2DP and AVDTP support.
	Add Routing property to MediaTransport interface
	Add proper tracking mechanism to NREC status.
	Add READ_BLOB_REQUEST support to attribute server.

ver 4.85:
	Fix issue with event mask setting for older adapters.
	Fix issue with device creation and pairing failures.
	Add support for telephony support via oFono.
	Add support for characteristic security level.
	Update support for service registration.

ver 4.84:
	Fix issue with wrong parameters and device found signals.
	Fix issue with leaking EIR data if RSSI does not change.
	Fix issue with adapter initialization state.
	Fix issue with closing of SDP server sockets.

ver 4.83:
	Fix issue with already connected HFP/HSP endpoints.
	Fix missing reply when create device is canceled.
	Fix memory leak within the attribute server.
	Fix memory leak with unused extended inquiry name.
	Fix setting paired state when device->authr is false.
	Fix clearing authentication request for renewed keys.
	Add support for storing link keys in runtime memory.
	Update support for primary service discovery.

ver 4.82:
	Fix crash with mmap of files with multiples of page size.
	Fix HFP response and hold (AT+BTRH) command response.
	Fix device creation error response when powered off.
	Fix device removal when connecting/browsing fails.
	Add initial attribute permission implementation.
	Add AVDTP SRC stream send buffer size verification.
	Add support for setting link policy based on features.

ver 4.81:
	Fix issue with telephony driver initialization.
	Fix issue with adapter services list initialization.
	Fix crash after simultaneous authentication requests.
	Add support for primary service search on device creation.

ver 4.80:
	Fix legacy link key storing for some buggy adapters.
	Fix invalid memory access when EIR field length is zero.
	Fix adapter initialization to wait for kernel HCI commands.
	Fix initialization of adapters which are already up.
	Fix possible race condition when initializing adapters.
	Fix possible crashes when attempting to connect AVDTP.
	Fix not aborting sink stream configuration on disconnect.
	Fix not indicating disconnected state when connecting to AVDTP.
	Fix not dropping AVDTP session when canceling stream setup.
	Fix AVDTP abort not being send when the state is idle.
	Fix regression with Low Energy and interleave discovery.
	Add a new configuration option to disable Low Energy support.
	Add iwmmxt optimization for SBC for ARM PXA series CPUs.
	Update support for GATT Primary Service Discovery.
	Update MCAP and HDP support.

ver 4.79:
	Fix issue with adapter initialization race condition.
	Update new Bluetooth Management interface support.

ver 4.78:
	Fix various issues with AVDTP timer handling.
	Fix various issues with handling of mode changes.
	Fix issue with audio disconnect watch in connecting state.
	Fix issue with handling call waiting indicators in telephony.
	Fix issue with handling UUID parameter and RegisterEndpoint.
	Add initial support for Bluetooth Management interface.
	Add support for Application property to HealthChannel.

ver 4.77:
	Fix issue with device name and accessing already freed memory.
	Fix issue with handling CHLD=0 command for handsfree.
	Fix issue with manager properties and no adapters.
	Fix issue with properties and broken service records.
	Fix issue with A2DP playback and sample rate changes.
	Update MCAP and HDP support.

ver 4.76:
	Fix issue in telephony driver with hanging up held call.
	Fix issue in telephony driver with notifications when on hold.
	Fix issue with blocking on setconf confirmation callback.
	Fix issue with not always signaling new streams as sinks.
	Fix issue with errors in case of endpoint request timeout.
	Fix issue with HFP/HSP microphone and speaker gain values.
	Add source if the device attempt to configure local sink stream.
	Add PSM option for GATT/ATT over BR/EDR on gatttool.
	Add support for GATT/ATT Attribute Write Request.
	Update MCAP and HDP support.

ver 4.75:
	Fix use of uninitialized variable on legacy pairing.
	Fix mismatch of attribute protocol opcode.

ver 4.74:
	Fix regression for Legacy Pairing.
	Fix wrong PSM value for attribute protocol.
	Fix issue with RSSI field in advertising reports.
	Add support for Add BR/EDR and LE interleaved discovery.
	Add support for GATT write characteristic value option.
	Add support for specifying download address for AR300x.

ver 4.73:
	Fix problem with EIR data when setting the name.
	Fix reading local name from command complete event.
	Fix registering local endpoints with disabled socket interface.
	Add support for more HCI operations using ops infrastructure.
	Add support for GATT characteristic hierarchy.
	Add support for GATT indications.

ver 4.72:
	Fix memory leak while connecting BTIO channels.
	Fix crash with GStreamer plugin if SBC is not supported.
	Fix issue with GATT server stop sending notifications.
	Fix issue with GATT and dealing with the minimum MTU size.
	Fix issue with file descriptor leak in GATT client.
	Add support for UUID 128-bit handling in attribute client.
	Add support for encoders/decoders for MTU Exchange.
	Add support for the MTU Exchange procedure to the server.
	Add support for a per channel MTU to the ATT server.
	Add support for Characteristic interface.
	Add support for new Media API and framework.
	Add initial support for HDP plugin.

ver 4.71:
	Fix compilation when SBC support in not enabled.
	Fix crash with RequestSession and application disconnects.
	Fix memory leak and possible crash when removing audio device.
	Fix issue with closing stream of locked sep when reconfiguring.
	Fix issue where discovery could interfere with bonding.
	Fix issue with Connected status when PS3 BD remote connects.
	Fix issue with lifetime of fake input devices.
	Add support for compile time option of oui.txt path.
	Add support for printing IEEE1284 device ID for CUPS.
	Add plugin for setting adapter class via DMI.
	Add more features for attribute protocol and profile.
	Add initial support for MCAP.

ver 4.70:
	Fix incoming call indication handling when in WAITING state.
	Fix various SDP related qualification test case issues.
	Fix logic to write EIR when SDP records are changed.
	Fix UTF-8 validity check for remote names in EIR.
	Add support for UUID-128 extended inquiry response.
	Add service UUIDs from EIR to the DeviceFound signal.
	Add fast connectable feature for Handsfree profile.
	Add HCI command and event definitions for AMP support.
	Add firmware download support for Qualcommh devices.
	Add host level support for Atheros AR300x device.
	Add initial support of ATT and GATT for basic rate.

ver 4.69:
	Fix issue with calling g_option_context_free() twice.
	Fix inconsistencies with initial LE commands and events.
	Add support for telephony ClearLastNumber method.
	Add support for network server interface.

ver 4.68:
	Fix initialization of adapters in RAW mode.
	Fix signal strength for HFP in Maemo's telephony support.
	Add support for following the radio state via Maemo's MCE.
	Add initial set of LE commands and events definitions.
	Add mode option for L2CAP sockets to the BtIO API.

ver 4.67:
	Fix issue with authentication reply when bonding already completed.
	Fix issue with not canceling authentication when bonding fails.
	Fix issue with changed combination keys and temporary storage.
	Fix issue with sdp_get_supp_feat library function.
	Fix issue with missing unblock on device removal.
	Fix issue with not waiting for mode change completion.
	Add ARMv6 optimized version of analysis filter for SBC encoder.

ver 4.66:
	Fix regression with full debug enabling via SIGUSR2.
	Fix redundant speaker/microphone gains being sent.
	Fix not emitting PropertyChanged for SpeakerGain/MicrophoneGain.
	Fix issue with storage usage when a record is not found in memory.
	Fix issue with DiscoverServices not retrieving any records.
	Fix audio profile disconnection order to match whitepaper.
	Fix auto-accept confirmation when local agent has NoInputNoOutput.
	Fix remote just-works SSP when MITM protection is required.
	Fix performing dedicated bonding without MITM requirement.
	Add support for storing debug link keys in runtime memory.

ver 4.65:
	Fix issues with general bonding being default setting now.
	Fix driver removal upon device removal.
	Add new "Blocked" property to device objects.
	Add hciconfig support for blacklisting.
	Add support for dynamic debug feature.

ver 4.64:
	Fix invalid memory access in headset_get_nrec function.
	Fix issue with disconnect event on higher protocol layers.
	Fix issue with list parsing in sdp_set_supp_features function.
	Fix device object reference counting for SDP browse requests.
	Add missing memory checks whenever memory is allocated for SDP.
	Add support for exporting local services via D-Bus.
	Add more L2CAP Enhanced Retransmission test options.

ver 4.63:
	Fix avdtp_abort not canceling pending requests.
	Fix stale connection when abort gets rejected.

ver 4.62:
	Fix accidental symbol breakage with inquiry transmit power.
	Fix using invalid data from previous headset connection.
	Fix double free on AVDTP Abort response.
	Fix possible crash while verifying AVDTP version.
	Fix missing inuse flag when AVDTP stream is configured.
	Add support for Bluetooth controller types.

ver 4.61:
	Fix issues with Read Inquiry Response Transmit Power Level.
	Fix possible invalid read when removing a temporary device.
	Fix mode restoration when remember_powered is false.
	Fix conference call releasing in telephony-maemo.
	Fix segmentation fault with authorization during headset disconnects.
	Add support for handling unanswered AVDTP request on disconnect.
	Add support for handling Inquiry Response Transmit Power Level.
	Add support for caching of remote host features.
	Add preliminary voice dialing support for HSP.

ver 4.60:
	Fix voice mailbox number reading from SIM.
	Fix some races with D-Bus mainloop integration.
	Add helpers for D-Bus signal watches.

ver 4.59:
	Add values for Bluetooth 4.0 specification.
	Add SDP functions for HDP support.
	Add test scripts for input and audio.
	Fix missing close on BtIO create_io function.
	Fix sending incorrect AVDTP commands after timeout occurs.
	Fix timer removal when device disconnects unexpectedly.
	Fix Extended Inquiry Response record for Device ID.

ver 4.58:
	Fix crash when adapter agent exists during authentication.
	Fix CK-20W quirks for play and pause events.

ver 4.57:
	Fix unloading of drivers for uninitialized adapters.
	Fix debug message to use requested and not opened SEID.
	Fix codec selection for GStreamer plugin.
	Fix deleting of SDP records during service updates.
	Fix deleting of SDP records when a device is removed.
	Fix handling when the SDP record is modified on remote device.
	Fix potential buffer overflow by using snprintf instead of sprintf.
	Fix const declarations for some storage function parameters.

ver 4.56:
	Add missing values from Bluetooth 3.0 specification.
	Add proper tracking of device paired status.
	Fix tracking of devices without permanently stored link key.
	Fix issue with link key removal after connection failures.
	Fix legacy pairing information based on remote host features.
	Fix off-by-one issue with AVDTP capability parsing.
	Fix AVRCP, AVCTP, AVDTP, A2DP and HFP version numbers.
	Fix agent canceling before calling agent_destroy.
	Fix service record parsing with an empty UUID list.
	Fix various SDP related memory leaks.

ver 4.55:
	Add support for POSIX capabilities dropping.
	Add special quirk for the Nokia CK-20W car kit.
	Fix error code handling for AVDTP SetConfiguration response.
	Fix updating out of range list when RSSI hasn't changed.
	Fix various memory leaks and unnecessary error checks.

ver 4.54:
	Add introspection interface to output of introspection calls.
	Fix stream handling when media transport disconnects prematurely.
	Fix command timeout handling when there's no stream.
	Fix headset_suspend_stream behavior for invalid states
	Fix issue with AVDTP ABORTING state transition.
	Fix issue with AVDTP suspend while closing.

ver 4.53:
	Fix issue with telephony connection state notifications.
	Fix AVDTP stream leak for invalid media transport config.
	Fix audio connection authorization handling with timeouts.
	Fix race condition in authorizing audio connections.
	Fix device authorized setting for AVRCP-only connections.
	Fix duplicate attempts from device to connect signal channel.

ver 4.52:
	Add AVCTP support to test utility.
	Fix AVDTP Abort when transport closes before response.
	Fix authorization when the audio profiles are slow to connect.
	Fix potential AVDTP reference leaks.

ver 4.51:
	Add utility for basic AVDTP testing.
	Add support for configuring L2CAP FCS option.
	Fix discovery mode for CUPS 1.4.x and later.
	Fix global state tracking of audio service.
	Fix last issues with the new build system.

ver 4.50:
	Fix issue with missing manual pages in distribution.
	Fix issue with the configuration and state directories.
	Fix issue with creating include directory.
	Fix dependencies of include file generation.

ver 4.49:
	Add simple test program for basic GAP testing.
	Add support for confirmation requests to agent example.
	Add support for full non-recursive build.
	Add five millisecond delay for Simple Pairing auto-accept.
	Fix Class of Device setting when InitiallyPowered=false.

ver 4.48:
	Add library function for comparing UUID values.
	Add support for creating all plugins as builtins.
	Add support for async handling of service class changes.
	Add support for source interface to audio IPC.
	Fix device name settings when device is off or down.
	Fix issue with enabled SCO server when not necessary.
	Fix missing D-Bus access policy for CUPS backend.
	Fix discovery results of CUPS backend.
	Fix initialization handling of Maemo telephony.

ver 4.47:
	Add support for RFKILL unblock handling.
	Add support for serial proxy configurations.
	Add support for caching service class updates.
	Fix issues with updating SDP service records.
	Fix usage of limited discoverable mode.
	Remove deprecated methods and signals for AudioSource.

ver 4.46:
	Add support for A2DP sink role.
	Fix clearing svc_cache before the adapter is up.
	Fix various pointer after free usages.
	Fix various memory leaks.

ver 4.45:
	Fix UDEV_DATADIR fallback if pkg-config fails.
	Fix adapter cleanup and setup prototypes.
	Fix double-free with out-of-range devices.
	Fix inband ring setting to be per-headset.
	Fix handling of Maemo CSD startup.

ver 4.44:
	Add some missing manual pages.
	Fix missing number prefix when installing udev rules.
	Fix program prefix used in Bluetooth udev rules.
	Fix three-way calling indicator order.
	Fix downgrade/upgrade of callheld indicator.
	Fix +CIEV sending when indicator value changes.
	Fix signal handling for Maemo telephony driver.
	Fix parsing issues with messages from Maemo CSD.
	Fix issue with duplicate active calls.

ver 4.43:
	Add support for udev based on-demand startup.
	Fix verbose error reporting of CUPS backend.
	Fix various string length issues.
	Fix issues with Maemo telephony driver.
	Fix another device setup and temporary flag issue.
	Fix and update example agent implementation.

ver 4.42:
	Add TI WL1271 to Texas Instruments chip list.
	Add special udev mode to bluetoothd.
	Fix regression when there is no agent registered.
	Fix error return when bonding socket hang up.
	Fix SCO server socket for HFP handsfree role.
	Fix shutdown on SCO socket before closing.
	Fix shutdown on A2DP audio stream channel before closing.
	Fix issue with asserting on AVDTP reference count bugs.
	Fix authorization denied issue with certain headsets.
	Fix AVRCP UNITINFO and SUBUNIT INFO responses.
	Fix discovery cancel issues in case SDP discovery fails.

ver 4.41:
	Fix pairing even if the ACL gets dropped before successful SDP.
	Fix regression which caused device to be removed after pairing.
	Fix HSP record fetching when remote device doesn't support it.
	Fix SDP discovery canceling when clearing hs->pending.
	Fix headset never connecting on the first attempt.
	Fix headset state tracking if bt_search_service() fails.
	Fix maximum headset connection count check.
	Fix AVDTP Discover timeout handling.
	Fix also UI_SET_KEYBIT for the new pause and play key codes.

ver 4.40:
	Add telephony driver for oFono telephony stack.
	Add support for Dell specific HID proxy switching.
	Add support for running hid2hci from udev.
	Add mapping for AVRCP Play and Pause to dedicated key codes.
	Fix AVRCP keycodes to better match existing X keymap support.
	Fix various quoting issues within telephony support.
	Fix memory allocation issue when generating PDUs for SDP.
	Fix race condition on device removal.
	Fix non-cancelable issue with CreateDevice method.
	Fix non-working CancelDiscovery method call.

ver 4.39:
	Add workaround for dealing with unknown inquiry complete.
	Fix discovering when using software scheduler.
	Fix wrong NoInputNoOutput IO capability string.
	Fix race condition with agent during pairing.
	Fix agent cancellation for security mode 3 acceptor failure.
	Fix temporary flag removal when device creation fails.
	Fix hciattach to use ppoll instead of poll.
	Fix service class update when adapter is down.
	Fix service classes race condition during startup.
	Fix release of audio client before freeing the device.

ver 4.38:
	Add support for builtin plugins.
	Add framework for adapter operations.
	Add constants for Enhanced Retransmission modes.
	Fix HCI socket leak in device_remove_bonding.
	Fix various format string issues.
	Fix crashes with various free functions.
	Fix issues with Headset and A2DP drivers to load again.
	Fix sending AVRCP button released passthrough messages
	Fix bug which prevent input devices to work after restart.
	Fix issue with interpretation of UUID-128 as channel.

ver 4.37:
	Add version value for Bluetooth 3.0 devices.
	Add additional L2CAP extended feature mask bits.
	Add support for loading plugins in priority order.
	Add support for more detailed usage of disconnect watches.
	Add support for AVRCP volume control.
	Add saturated clipping of SBC decoder output to 16-bit.
	Fix potentially infinite recursion of adapter_up.
	Fix SCO handling in the case of an incoming call.
	Fix input service to use confirm callback.
	Fix cleanup of temporary device entries from storage.

ver 4.36:
	Add proper tracking of AVCTP connect attempts.
	Add support to channel pattern in Serial interface.
	Fix A2DP sink crash if removing device while connecting.
	Fix error handling if HFP indicators aren't initialized.
	Fix segfault while handling an incoming SCO connection.
	Fix Serial.Disconnect to abort connection attempt.

ver 4.35:
	Add support for Handsfree profile headset role.
	Add additional checks for open SEIDs from clients.
	Fix device removal while audio IPC client is connected.
	Fix device removal when an authorization request is pending.
	Fix incoming AVDTP connect while authorization in progress.
	Fix disconnection timers for audio support.
	Fix various potential NULL pointer deferences.
	Fix callheld indicator value for multiple calls.
	Fix voice number type usage.
	Fix GDBus watch handling.

ver 4.34:
	Add support for version checks of plugins.
	Add support for class property on adapter interface.
	Add support for second SDP attempt after connection reset.
	Add support for more detailed audio states.
	Add support for HFP+A2DP auto connection feature.
	Add support for new and improved audio IPC.
	Add program for testing audio IPC interface.
	Fix various AVDTP qualification related issues.
	Fix broken SDP AttributeIdList parsing.
	Fix invalid memory access of SDP URL handling.
	Fix local class of device race conditions.
	Fix issue with periodic inquiry on startup.
	Fix missing temporary devices in some situations.
	Fix SBC alignment issue for encoding with four subbands.

ver 4.33:
	Add Paired property to the DeviceFound signals.
	Add support for Headset profile 1.2 version.
	Fix broken network configuration when IPv6 is disabled.
	Fix network regression that caused disconnection.
	Fix SDP truncation of strings with NULL values.
	Fix service discovery handling of CUPS helper.

ver 4.32:
	Fix broken SDP record handling.
	Fix SDP data buffer parsing.
	Fix more SDP memory leaks.
	Fix read scan enable calls.
	Fix A2DP stream handling.

ver 4.31:
	Add support for new BtIO helper library.
	Fix AVDTP session close issue.
	Fix SDP memory leaks.
	Fix various uninitialized memory issues.
	Fix duplicate signal emissions.
	Fix property changes request handling.
	Fix class of device storage handling.

ver 4.30:
	Add CID field to L2CAP socket address structure.
	Fix reset of authentication requirements after bonding.
	Fix storing of link keys when using dedicated bonding.
	Fix storing of pre-Bluetooth 2.1 link keys.
	Fix resetting trust settings on every reboot.
	Fix handling of local name changes.
	Fix memory leaks in hciconfig and hcitool

ver 4.29:
	Use AVRCP version 1.0 for now.
	Decrease AVDTP idle timeout to one second.
	Delay AVRCP connection when remote device connects A2DP.
	Add workaround for AVDTP stream setup with broken headsets.
	Add missing three-way calling feature bit for Handsfree.
	Fix handsfree callheld indicator updating.
	Fix parsing of all AT commands within the buffer.
	Fix authentication replies when disconnected.
	Fix handling of debug combination keys.
	Fix handling of changed combination keys.
	Fix handling of link keys when using no bonding.
	Fix handling of invalid/unknown authentication requirements.
	Fix closing of L2CAP raw socket used for dedicated bonding.

ver 4.28:
	Add AVDTP signal fragmentation support.
	Add more SBC performance optimizations.
	Add more SBC audio quality improvements.
	Use native byte order for audio plugins.
	Set the adapter alias only after checking the EIR data.
	Fix auto-disconnect issue with explicit A2DP connections.
	Fix invalid memory access of ALSA plugin.
	Fix compilation with -Wsign-compare.

ver 4.27:
	Add more SBC optimization (MMX and ARM NEON).
	Add BT_SECURITY and BT_DEFER_SETUP definitions.
	Add support for deferred connection setup.
	Add support for fragmentation of data packets.
	Add option to trigger dedicated bonding.
	Follow MITM requirements from remote device.
	Require MITM for dedicated bonding if capabilities allow it.
	Fix IO capabilities for non-pairing and pairing cases.
	Fix no-bonding connections in non-bondable mode.
	Fix new pairing detection with SSP.
	Fix bonding with pre-2.1 devices and newer kernels.
	Fix LIAC setting while toggling Pairable property.
	Fix device creation for incoming security mode 3 connects.
	Fix crash within A2DP with bogus pointer.
	Fix issue with sdp_copy_record() function.
	Fix crash with extract_des() if sdp_uuid_extract() fails.

ver 4.26:
	Use of constant shift in SBC quantization code.
	Add possibility to analyze 4 blocks at once in encoder.
	Fix correct handling of frame sizes in the encoder.
	Fix for big endian problems in SBC codec.
	Fix audio client socket to always be non-blocking.
	Update telephony support for Maemo.

ver 4.25:
	Fix receiving data over the audio control socket.
	Fix subbands selection for joint-stereo in SBC encoder.
	Add new SBC analysis filter function.

ver 4.24:
	Fix signal emissions when removing adapters.
	Fix missing adapter signals on exit.
	Add support for bringing adapters down on exit.
	Add support for RememberPowered option.
	Add support for verbose compiler warnings.
	Add more options to SBC encoder.

ver 4.23:
	Update audio IPC for better codec handling.
	Fix bitstream optimization for SBC encoder.
	Fix length header values of IPC messages.
	Fix multiple coding style violations.
	Fix FindDevice to handle temporary devices.
	Add configuration option for DeviceID.
	Add support for InitiallyPowered option.
	Add missing signals for manager properties.
	Add telephony support for Maemo.

ver 4.22:
	Add deny statements to D-Bus access policy.
	Add support for LegacyPairing property.
	Add support for global properties.
	Add more commands to telephony testing script.
	Add sender checks for serial and network interfaces.
	Remove deprecated methods and signals from input interface.
	Remove deprecated methods and signals from network interface.
	Remove OffMode option and always use device down.

ver 4.21:
	Fix adapter initialization logic.
	Fix adapter setup and start security manager early.
	Fix usage issue with first_init variable.

ver 4.20:
	Cleanup session handling.
	Cleanup mode setting handling.
	Fix issue with concurrent audio clients.
	Fix issue with HFP/HSP suspending.
	Fix AT result code syntax handling.
	Add Handsfree support for AT+NREC.
	Add PairableTimeout adapter property.

ver 4.19:
	Fix installation of manual pages for old daemons.
	Fix D-Bus signal emmissions for CreateDevice.
	Fix issues with UUID probing.
	Fix +BSRF syntax issue.
	Add Pairable adapter property.
	Add sdp_copy_record() library function.

ver 4.18:
	Fix release before close issue with RFCOMM TTYs.
	Fix Connected property on input interface.
	Fix DeviceFound signals during initial name resolving.
	Fix service discovery handling.
	Fix duplicate UUID detection.
	Fix SBC gain mismatch and decoding handling.
	Add more options to SBC encoder and decoder.
	Add special any adapter object for service interface.
	Add variable prefix to adapter and device object paths.

ver 4.17:
	Fix SBC encoder not writing last frame.
	Fix missing timer for A2DP suspend.
	Add more supported devices to hid2hci utility.
	Add additional functionality to Handsfree support.

ver 4.16:
	Fix wrong parameter usage of watch callbacks.
	Fix parameters for callback upon path removal.
	Fix unloading of adapter drivers.

ver 4.15:
	Fix various A2DP state machine issues.
	Fix some issues with the Handsfree error reporting.
	Fix format string warnings with recent GCC versions.
	Remove dependency on GModule.

ver 4.14:
	Fix types of property arrays.
	Fix potential crash with input devices.
	Fix PS3 BD remote input event generation.
	Allow dynamic adapter driver registration.
	Update udev rules.

ver 4.13:
	Fix service discovery and UUID handling.
	Fix bonding issues with Simple Pairing.
	Fix file descriptor misuse of SCO connections.
	Fix various memory leaks in the device handling.
	Fix AVCTP disconnect handling.
	Fix GStreamer modes for MP3 encoding.
	Add operator selection to Handsfree support.

ver 4.12:
	Fix crash with missing icon value.
	Fix error checks of HAL plugin.
	Fix SCO server socket cleanup on exit.
	Fix memory leaks from DBusPendingCall.
	Fix handling of pending authorization requests.
	Fix missing protocol UUIDs in record pattern.

ver 4.11:
	Change SCO server socket into a generic one.
	Add test script for dummy telephony plugin.
	Fix uninitialized reply of multiple GetProperties methods.

ver 4.10:
	Fix memory leaks with HAL messages.
	Add more advanced handsfree features.
	Add properties to audio, input and network interfaces.
	Stop device discovery timer on device removal.

ver 4.9:
	Fix signals for Powered and Discoverable properties.
	Fix handling of Alias and Icon properties.
	Fix duplicate entries for service UUIDs.

ver 4.8:
	Fix retrieving of formfactor value.
	Fix retrieving of local and remote extended features.
	Fix potential NULL pointer dereference during pairing.
	Fix crash with browsing due to a remotely initated pairing.

ver 4.7:
	Fix pairing and service discovery logic.
	Fix crashes during suspend and resume.
	Fix race condition within devdown mode.
	Add RequestSession and ReleaseSession methods.
	Add Powered and Discoverable properties.
	Add Devices property and deprecate ListDevices.
	Add workaround for a broken carkit from Nokia.

ver 4.6:
	Fix Device ID record handling.
	Fix service browsing and storage.
	Fix authentication and encryption for input devices.
	Fix adapter name initialization.

ver 4.5:
	Fix initialization issue with new adapters.
	Send HID authentication request without blocking.
	Hide the verbose SDP debug behind SDP_DEBUG.
	Add extra UUIDs for service discovery.
	Add SCO server socket listener.
	Add authorization support to service plugin.

ver 4.4:
	Add temporary fix for the CUPS compile issue.
	Add service-api.txt to distribution.
	Mention the variable prefix of an object path

ver 4.3:
	Add dummy driver for telephony support.
	Add support for discovery sessions.
	Add service plugin for external services.
	Various cleanups.

ver 4.2:
	Avoid memory copies in A2DP write routine.
	Fix broken logic with Simple Pairing check and old kernels.
	Allow non-bondable and outgoing SDP without agent.
	Only remove the bonding for non-temporary devices.
	Cleanup various unnecessary includes.
	Make more unexported functions static.
	Add basic infrastructure for gtk-doc support.

ver 4.1:
	Add 30 seconds timeout to BNEP connection setup phase.
	Avoid memory copies in A2DP write routine for ALSA.
	Make sure to include compat/sdp.h in the distribution.

ver 4.0:
	Initial public release.

ver 3.36:
	Add init routines for TI BRF chips.
	Add extra attributes to the serial port record.
	Add example record for headset audio gateway record.
	Use Handsfree version 0x0105 for the gateway role.
	Fix SDP record registration with specific record handles.
	Fix BCSP sent/receive handling.
	Fix various includes for cross-compilation.
	Allow link mode settings for outgoing connections.
	Allow bonding during periodic inquiry.

ver 3.35:
	Add two additional company identifiers.
	Add UUID-128 support for service discovery.
	Fix usage of friendly names for service discovery.
	Fix authorization when experiemental is disabled.
	Fix uninitialized variable in passkey request handling.
	Enable output of timestamps for l2test and rctest.

ver 3.34:
	Replace various SDP functions with safe versions.
	Add additional length validation for incoming SDP packets.
	Use safe function versions for SDP client handling.
	Fix issue with RemoveDevice during discovery procedure.
	Fix collect for non-persistent service records.

ver 3.33:
	Add functions for reading and writing the link policy settings.
	Add definition for authentication requirements.
	Add support for handling Simple Pairing.
	Add Simple Pairing support to Agent interface.
	Add ReleaseMode method to Adapter interface.
	Add DiscoverServices method to Device interface.
	Remove obsolete code and cleanup the repository.
	Move over to use the libgdbus API.
	Enable PIE by default if supported.

ver 3.32:
	Add OCF constants for synchronous flow control enabling.
	Add support for switching HID proxy devices from Dell.
	Add more Bluetooth client/server helper functions.
	Add support for input service idle timeout option.
	Fix BNEP reconnection handling.
	Fix return value for snd_pcm_hw_params() calls.
	Use upper-case addresses for object paths.
	Remove HAL support helpers.
	Remove inotify support.
	Remove service daemon activation handling.
	Remove uneeded D-Bus API extension.

ver 3.31:
	Create device object for all pairing cases.
	Convert authorization to internal function calls.
	Add initial support for Headset Audio Gateway role.
	Add generic Bluetooth helper functions for GLib.
	Fix endiannes handling of connection handles.
	Don't optimize when debug is enabled.

ver 3.30:
	Convert audio service into a plugin.
	Convert input service into a plugin.
	Convert serial service into a plugin.
	Convert network service into a plugin.
	Emit old device signals when a property is changed.
	Fix missing DiscoverDevices and CancelDiscovery methods.
	Add another company identifier.
	Add basic support for Bluetooth sessions.
	Add avinfo utility for AVDTP/A2DP classification.
	Remove build option for deprecated sdpd binary.

ver 3.29:
	Introduce new D-Bus based API.
	Add more SBC optimizations.
	Add support for PS3 remote devices.
	Fix alignment trap in SDP server.
	Fix memory leak in sdp_get_uuidseq_attr function.

ver 3.28:
	Add support for MCAP UUIDs.
	Add support for role switch for audio service.
	Add disconnect timer for audio service.
	Add disconnect detection to ALSA plugin.
	Add more SBC optimizations.
	Fix alignment issue of SDP server.
	Remove support for SDP parsing via expat.

ver 3.27:
	Update uinput.h with extra key definitions.
	Add support for input connect/disconnect callbacks.
	Add ifdefs around some baud rate definitions.
	Add another company identifier.
	Add proper HFP service level connection handling.
	Add basic headset automatic disconnect support.
	Add support for new SBC API.
	Fix SBC decoder noise at high bitpools.
	Use 32-bit multipliers for further SBC optimization.
	Check for RFCOMM connection state in SCO connect callback.
	Make use of parameters selected in ALSA plugin.

ver 3.26:
	Fix compilation issues with UCHAR_MAX, USHRT_MAX and UINT_MAX.
	Improve handling of different audio transports.
	Enable services by default and keep old daemons disabled.

ver 3.25:
	Add limited support for Handsfree profile.
	Add limited support for MPEG12/MP3 codec.
	Add basic support for UNITINFO and SUBUNITINFO.
	Add more SBC optimizations.
	Fix external service (un)registration.
	Allow GetInfo and GetAddress to fail.

ver 3.24:
	Add definitions for MDP.
	Add TCP connection support for serial proxy.
	Add fix for Logitech HID proxy switching.
	Add missing macros, MIN, MAX, ABS and CLAMP.
	Add more SBC encoder optimizations.
	Add initial mechanism to handle headset commands.
	Fix connecting to handsfree profile headsets.
	Use proper function for checking signal name.

ver 3.23:
	Fix remote name request handling bug.
	Fix key search function to honor the mmap area size.
	Fix Avahi integration of network service.
	Add new plugin communication for audio service.
	Enable basic AVRCP support by default.
	More optimizations to the SBC library.
	Create common error definitions.

ver 3.22:
	Add missing include file from audio service.
	Add SBC conformance test utility.
	Add basic uinput support for AVRCP.
	Fix L2CAP socket leak in audio service.
	Fix buffer usage in GStreamer plugin.
	Fix remote name request event handling.

ver 3.21:
	Add constant for Bluetooth socket options level.
	Add initial AVRCP support.
	Add A2DP sink support to GStreamer plugin.
	Fix interoperability with A2DP suspend.
	Fix sign error in 8-subband encoder.
	Fix handling of service classes length size.
	Store Extended Inquiry Response data information.
	Publish device id information through EIR.
	Support higher baud rates for Ericcson based chips.

ver 3.20:
	Fix GStreamer plugin file type detection.
	Fix potential infinite loop in inotify support.
	Fix D-Bus signatures for dict handling.
	Fix issues with service activation.
	Fix SDP failure handling of audio service.
	Fix various memory leaks in input service.
	Add secure device creation method to input service.
	Add service information methods to serial service.
	Add config file support to network service.
	Add scripting capability to network service.
	Add special on-mode handling.
	Add optimization for SBC encoder.
	Add tweaks for D-Bus 1.1.x libraries.
	Add support for inquiry transmit power level.

ver 3.19:
	Limit range of bitpool announced while in ACP side.
	Use poll instead of usleep to wait for worker thread.
	Use default event mask from the specification.
	Add L2CAP mode constants.
	Add HID proxy support for Logitech diNovo Edge dongle.
	Add refresh option to re-request device names.
	Show correct connection link type.

ver 3.18:
	Don't allocate memory for the Bluetooth base UUID.
	Implement proper locking for headsets.
	Fix various A2DP SEP locking issues.
	Fix and cleanup audio stream handling.
	Fix stream starting if suspend request is pending.
	Fix A2DP and AVDTP endianess problems.
	Add network timeout and retransmission support.
	Add more detailed decoding of EIR elements.

ver 3.17:
	Fix supported commands bit calculation.
	Fix crashes in audio and network services.
	Check PAN source and destination roles.
	Only export the needed symbols for the plugins.

ver 3.16:
	Update company identifier list.
	Add support for headsets with SCO audio over HCI.
	Add support for auto-create through ALSA plugin.
	Add support for ALSA plugin parameters.
	Add GStreamer plugin with SBC decoder and encoder.
	Fix network service NAP, GN and PANU servers.
	Set EIR information from SDP database.

ver 3.15:
	Add A2DP support to the audio service.
	Add proxy support to the serial service.
	Extract main service class for later use.
	Set service classes value from SDP database.

ver 3.14:
	Add missing signals for the adapter interface.
	Add definitions and functions for Simple Pairing.
	Add basic commands for Simple Pairing.
	Add correct Simple Pairing and EIR interaction.
	Add missing properties for remote information.
	Add EPoX endian quirk to the input service.
	Fix HID descriptor import and storage functions.
	Fix handling of adapters in raw mode.
	Fix remote device listing methods.

ver 3.13:
	Fix some issues with the headset support.
	Fix concurrent pending connection attempts.
	Fix usage of devname instead of netdev.
	Add identifier for Nokia SyncML records.
	Add command for reading the CSR chip revision.
	Add generic CSR radio test support.
	Update HCI command table.

ver 3.12:
	Add missing HCI command text descriptions
	Add missing HCI commands structures.
	Add missing HCI event structures.
	Add common bachk() function.
	Add support for limited discovery mode.
	Add support for setting of event mask.
	Add GetRemoteServiceIdentifiers method.
	Add skeleton for local D-Bus server.
	Add headset gain control methods.
	Fix various headset implementation issues.
	Fix various serial port service issues.
	Fix various input service issues.
	Let CUPS plugin discover printers in range.
	Improve the BCM2035 UART init routine.
	Ignore connection events for non-ACL links.

ver 3.11:
	Update API documentation.
	Minimize SDP root records and browse groups.
	Use same decoder for text and URL strings.
	Fix URL data size handling.
	Fix SDP pattern extraction for XML.
	Fix network connection persistent state.
	Add network connection helper methods.
	Add initial version of serial port support.
	Add class of device tracking.

ver 3.10.1:
	Add option to disable installation of manual pages.
	Fix input service encryption setup.
	Fix serial service methods.
	Fix network service connection handling.
	Provide a simple init script.

ver 3.10:
	Add initial version of network service.
	Add initial version of serial service.
	Add initial version of input service.
	Add initial version of audio service.
	Add authorization framework.
	Add integer based SBC library.
	Add version code for Bluetooth 2.1 specification.
	Add ESCO_LINK connection type constant.
	Export sdp_uuid32_to_uuid128() function.

ver 3.9:
	Add RemoteDeviceDisconnectRequested signal.
	Add updated service framework.
	Add embedded GLib library.
	Add support for using system GLib library.
	Create internal SDP server library.

ver 3.8:
	Sort discovered devices list based on their RSSI.
	Send DiscoverableTimeoutChanged signal.
	Fix local and remote name validity checking.
	Add ListRemoteDevices and ListRecentRemoteDevices methods.
	Add basic integration of confirmation concept.
	Add support for service record description via XML.
	Add support for external commands to the RFCOMM utility.
	Add experimental service and authorization API.
	Add functions for registering binary records.

ver 3.7:
	Fix class of device handling.
	Fix error replies with pairing and security mode 3.
	Fix disconnect method for RFCOMM connections.
	Add match pattern for service searches.
	Add support for prioritized watches.
	Add additional PDU length checks.
	Fix CSRC value for partial responses.

ver 3.6.1:
	Fix IO channel race conditions.
	Fix pairing issues on big endian systems.
	Fix pairing issues with page timeout errors.
	Fix pairing state for security mode 3 requests.
	Switch to user as default security manager mode.

ver 3.6:
	Update D-Bus based RFCOMM interface support.
	Use L2CAP raw sockets for HCI connection creation.
	Add periodic discovery support to the D-Bus interface.
	Add initial support for device names via EIR.
	Add proper UTF-8 validation of device names.
	Add support for the J-Three keyboard.
	Fix issues with the asynchronous API for SDP.

ver 3.5:
	Fix and cleanup watch functionality.
	Add support for periodic inquiry mode.
	Add support for asynchronous SDP requests.
	Add more request owner tracking.
	Add asynchronous API for SDP.
	Document pageto and discovto options.

ver 3.4:
	Improve error reporting for failed HCI commands.
	Improve handling of CancelBonding.
	Fixed bonding reply message when disconnected.
	Fix UUID128 string lookup handling.
	Fix malloc() versus bt_malloc() usage.

ver 3.3:
	Don't change inquiry mode for Bluetooth 1.1 adapters.
	Add udev rules for Bluetooth serial PCMCIA cards.
	Add Cancel and Release methods for passkey agents.
	Add GetRemoteClass method.
	Convert to using ppoll() and pselect().
	Initialize allocated memory to zero.
	Remove bcm203x firmware loader.
	Remove kernel specific timeouts.
	Add additional private data field for SDP sessions.
	Add host controller to host flow control defines.
	Add host number of completed packets defines.
	Initialize various memory to zero before usage.

ver 3.2:
	Only check for the low-level D-Bus library.
	Update possible device minor classes.
	Fix timeout for pending reply.
	Add more Inquiry with RSSI quirks.
	Sleep only 100 msecs for device detection.
	Don't send BondingCreated on link key renewal.
	Allow storing of all UTF-8 remote device names.
	Create storage filenames with a generic function.
	Fix handling of SDP strings.
	Add adapter type for SDIO cards.
	Add features bit for link supervision timeout.

ver 3.1:
	Add missing placeholders for feature bits.
	Fix handling of raw mode devices.
	Fix busy loop in UUID extraction routine.
	Remove inquiry mode setting.
	Remove auth and encrypt settings.

ver 3.0:
	Implement the new BlueZ D-Bus API.
	Fix broken behavior with EVT_CMD_STATUS.
	Add features bit for pause encryption.
	Add additional EIR error code.
	Add more company identifiers.
	Add another Phonebook Access identifier.
	Update sniff subrating data structures.

ver 2.25:
	Use %jx instead of %llx for uint64_t and int64_t.
	Allow null-terminated text strings.
	Add UUID for N-Gage games.
	Add UUID for Apple Macintosh Attributes.
	Add Apple attributes and iSync records.
	Add definitions for Apple Agent.
	Add support for the Handsfree Audio Gateway service.
	Add support for choosing a specific record handle.
	Add support for dialup/telephone connections.
	Add definitions for Apple Agent.
	Add support for record handle on service registration.

ver 2.24:
	Fix display of SDP text and data strings.
	Add support for device scan property.
	Add support for additional access protocols.
	Update the D-Bus policy configuration file.

ver 2.23:
	Update the new D-Bus interface.
	Make dfutool ready for big endian architectures.
	Add support for AVRCP specific service records.
	Add support for writing complex BCCMD commands.
	Add the new BCCMD interface utility.
	Add MicroBCSP implementation from CSR.
	Add constants and definitions for sniff subrating.
	Add support for allocation of binary text elements.
	Add HCI emulation tool.
	Add fake HID support for old EPoX presenters.
	Reject connections from unknown HID devices.
	Fix service discovery deadlocks with Samsung D600 phones.

ver 2.22:
	Remove D-Bus 0.23 support.
	Add initial version of the new D-Bus interface.
	Add support for extended inquiry response commands.
	Add support for the Logitech diNovo Media Desktop Laser.
	Add compile time buffer checks (FORTIFY SOURCE).
	Decode reserved LMP feature bits.
	Fix errno overwrite problems.
	Fix profile descriptor problem with Samsung phones.

ver 2.21:
	Move create_dirs() and create_file() into the textfile library.
	Let textfile_put() also replace the last key value pair.
	Fix memory leaks with textfile_get() usage.
	Fix infinite loops and false positive matches.
	Don't retrieve stored link keys for RAW devices.
	Document the putkey and delkey commands.
	Show supported commands also in clear text.
	Support volatile changes of the BD_ADDR for CSR chips.
	Add support for identification of supported commands.
	Add missing OCF declarations for the security filter.
	Add two new company identifiers.

ver 2.20:
	Add UUIDs for video distribution profile.
	Add UUIDs for phonebook access profile.
	Add attribute identifier for supported repositories.
	Add definitions for extended inquiry response.
	Add functions for extended inquiry response.
	Add support for extended inquiry response.
	Add support for HotSync service record.
	Add support for ActiveSync service record.
	Add ActiveSync networking support.
	Fix D-Bus crashes with new API versions.

ver 2.19:
	Fix the GCC 4.0 warnings.
	Fix the routing for dealing with raw devices.
	Fix off by one memory allocation error.
	Fix security problem with escape characters in device name.
	Add per device service record functions.
	Send D-Bus signals for inquiry results and remote name resolves.
	Add support for device specific SDP records.

ver 2.18:
	Support D-Bus 0.23 and 0.33 API versions.
	Support reading of complex BCCMD values.
	Support minimum and maximum encryption key length.
	Add support for reading and writing the inquiry scan type.
	Add definitions for connection accept timeout and scan enable.
	Add support for inquiry scan type.
	Add tool for the CSR BCCMD interface.
	Add first draft of the Audio/Video control utility.
	Add disconnect timer support for the A2DP ALSA plugin.
	Make SBC parameters configurable.
	Replace non-printable characters in device names.
	Remove hci_vhci.h header file.
	Remove hci_uart.h header file.

ver 2.17:
	Set the storage directory through ${localstatedir}.
	Add the textfile library for ASCII based file access.
	Add support for return link keys event.
	Add support for voice setting configuration.
	Add support for page scan timeout configuration.
	Add support for storing and deleting of stored link keys.
	Add support for searching for services with UUID-128.
	Add support for retrieving all possible service records.
	Add support for a raw mode view of service records.
	Add support for HID information caching in hidd.
	Add support for authentication in pand and dund.
	Add support for changing BD_ADDR of CSR chips.
	Add pskey utility for changing CSR persistent storage values.
	Add the firmware upgrade utility.
	Add connection caching for the A2DP ALSA plugin.
	Add functions for stored link keys.
	Add definitions for PIN type and unit key.
	Add SDP_WAIT_ON_CLOSE flag for sdp_connect().
	Include stdio.h in bluetooth.h header file.
	Include sys/socket.h in the header files.

ver 2.16:
	Store link keys in ASCII based file format.
	Support device name caching.
	Support zero length data sizes in l2test.
	Change default l2ping data size to 44 bytes.
	Hide the server record and the public browse group root.
	Read BD_ADDR if not set and if it is a raw device.
	Add SDP language attributes.
	Add support for browsing the L2CAP group.
	Add support for stored pin codes for outgoing connections.
	Add support for local commands and extended features.
	Add support for reading CSR panic and fault codes.
	Add config option for setting the inquiry mode.
	Add OUI decoding support.
	Use unlimited inquiry responses as default.
	Use cached device names for PIN request.
	Use the clock offset when getting the remote names.
	Add function for reading local supported commands.
	Add function for reading local extended features.
	Add function for reading remote extended features.
	Add function for getting the remote name with a clock offset.
	Add function for extracting the OUI from a BD_ADDR.
	Add inquiry info structure with RSSI and page scan mode.
	Fix buffer allocation for features to string conversion.
	Support inquiry with unlimited number of responses.

ver 2.15:
	Enable the RFCOMM service level security.
	Add deprecated functions for reading the name.
	Add command for reading the clock offset.
	Add command for reading the clock.
	Add function for reading the clock.
	Add function for reading the local Bluetooth address.
	Add function for reading the local supported features.
	Don't configure raw devices.
	Don't set inquiry scan or page scan on raw devices.
	Don't show extended information for raw devices.
	Support L2CAP signal sizes bigger than 2048 bytes.
	Cleanup of the socket handling code of the test programs.
	Use better way for unaligned access.
	Remove sdp_internal.h and its usage.

ver 2.14:
	Make use of additional connection information.
	Use library function for reading the RSSI.
	Use library function for reading the link quality.
	Use library function for reading the transmit power level.
	Use library functions for the link supervision timeout.
	Add tool for changing the device address.
	Add function for reading the RSSI.
	Add function for reading the link quality.
	Add function for reading the transmit power level.
	Add functions for the link supervision timeout.
	Remove deprecated functions.
	Update AM_PATH_BLUEZ macro.

ver 2.13:
	Use file permission 0600 for the link key file.
	Add support for HID attribute descriptions.
	Add support for Device ID attributes.
	Add Device ID and HID attribute definitions.
	Update the UUID constants and its translations.
	Update L2CAP socket option definitions.
	Update connection information definitions.
	Various whitespace cleanups.

ver 2.12:
	Inherit the device specific options from the default.
	Use --device for selecting the source device.
	Add --nosdp option for devices with resource limitation.
	Add support and parameter option for secure mode.
	Add a lot of build ids and hardware revisions.
	Add service classes and profile ids for WAP.
	Add simple AM_PATH_BLUEZ macro.
	Update UUID translation tables.
	Correct kernel interface for CMTP and HIDP support.

ver 2.11:
	Initial support for the kernel security manager.
	Various cleanups to avoid inclusion of kernel headers.
	Fix output when the CUPS backend is called without arguments.
	Fix problems with a 64 bit userland.
	Use Bluetooth library functions if available.
	Use standard numbering scheme of SDP record handles.
	Use bit zero for vendor packets in the filter type bitmask.
	Add SIM Access types for service discovery.
	Add more audio/video profile translations.
	Add another company identifier.
	Add the missing HCI error codes.
	Add RFCOMM socket options.
	Add definition for the SECURE link mode.
	Add functions for reading and writing the inquiry mode.
	Add functions for AFH related settings and information.
	Add version identifier for the Bluetooth 2.0 specification.
	Add a master option to the hidd.
	Add support for changing the link key of a connection.
	Add support for requesting encryption on keyboards.
	Add support for revision information of Digianswer devices.
	Add support for the Zoom, IBM and TDK PCMCIA cards.
	Add checks for the OpenOBEX and the ALSA libraries.
	Add experimental mRouter support.

ver 2.10:
	Use a define for the configuration directory.
	Fix string initialization for flags translation.
	Fix and extend the unaligned access macros.
	Make compiling with debug information optional.
	Don't override CFLAGS from configure.
	Check for usb_get_busses() and usb_interrupt_read().
	Add optional support for compiling with PIE.
	Make installation of the init scripts optional.
	Make compiling with debug information optional.
	Don't override CFLAGS from configure.

ver 2.9:
	Retry SDP connect if busy in the CUPS backend.
	Use packet type and allow role switch in hcitool.
	Use the functions from the USB library for hid2hci.
	Add Broadcom firmware loader.
	Add EPoX endian quirk for buggy keyboards.
	Add L2CAP info type and info result definitions.
	Add value for L2CAP_CONF_RFC_MODE.
	Change RSSI value to signed instead of unsigned.
	Allow UUID32 values as protocol identifiers.
	Update the autoconf/automake scripts.

ver 2.8:
	Use LIBS and LDADD instead of LDFLAGS.
	Use HIDP subclass field for HID boot protocol.
	Set olen before calling getsockopt() in pand.
	Restore signals for dev-up script.
	Add PID file support for pand.
	Add size parameter to expand_name() in hcid.
	Add support for audio source and audio sink SDP records.
	Add support for HID virtual cable unplug.
	Add support for AmbiCom BT2000C card.
	Add defines and UUID's for audio/video profiles.
	Add AVDTP protocol identifier.
	Add HIDP subclass field.
	Add PKGConfig support.
	Fix the event code of inquiry with RSSI.
	Remove dummy SDP library.

ver 2.7:
	Fix display of decoded LMP features.
	Update company identifiers.
	Add AFH related types.
	Add first bits from EDR prototyping specification.
	Add support for inquiry with RSSI.
	Add HCRP related SDP functions.
	Add HIDP header file.
	Add support for getting the AFH channel map.
	Add support for AFH mode.
	Add support for inquiry mode.
	Add Bluetooth backend for CUPS.
	Add the hid2hci utility.
	Add the hidd utility.
	Add the pand utility.
	Add the dund utility.
	More endian bug fixes.
	Give udev some time to create the RFCOMM device nodes.
	Release the TTY if no device node is found.
	New startup script for the Bluetooth subsystem.
	Update to the autoconf stuff.

ver 2.6:
	Change default prefix to /usr.
	Add manpages for hcid and hcid.conf.
	Add the sdpd server daemon.
	Add the sdptool utility.
	Add the ciptool utility.
	Add new company identifiers.
	Add BNEP and CMTP header files.
	Add the SDP library.
	Use R2 for default value of pscan_rep_mode.

ver 2.5:
	Add decoding of Bluetooth 1.2 features.
	Add link manager version parameter for Bluetooth 1.2.
	Add new company identifiers.
	Add D-Bus support for PIN request.
	Support for transmit power level.
	Support for park, sniff and hold mode.
	Support for role switch.
	Support for reading the clock offset.
	Support for requesting authentication.
	Support for setting connection encryption.
	Show revision information for Broadcom devices.
	Replace unprintable characters in device name.
	Use R1 for default value of pscan_rep_mode.
	Fix some 64-bit problems.
	Fix some endian problems.
	Report an error on PIN helper failure.
	Update bluepin script for GTK2.

ver 2.4:
	Increase number of inquiry responses.
	Support for transmit power level.
	Display all 8 bytes of the features.
	Add support for reading and writing of IAC.
	Correct decoding class of device.
	Use Ericsson revision command for ST Microelectronics devices.
	Display AVM firmware version with 'revision' command.
	New code for CSR specific revision information.
	Support for ST Microelectronics specific initialization.
	Support for 3Com card version 3.0.
	Support for TDK, IBM and Socket cards.
	Support for initial baud rate.
	Update man pages.
	Fixes for some memory leaks.

ver 2.3:
	Added const qualifiers to appropriate function arguments.
	Minor fixes.
	CSR firmware version is now displayed by 'revision' command.
	Voice command is working properly on big endian machines.
	Added support for Texas Bluetooth modules.
	Added support for high UART baud rates on Ericsson modules.
	BCSP initialization fixes.
	Support for role switch command (hcitool).
	RFCOMM config file parser fixes.
	Update man pages.
	Removed GLib dependency.

ver 2.2:
	Updated RFCOMM header file.
	Additional HCI command and event defines.
	Support for voice settings (hciconfig).
	Minor hcitool fixes.
	Improved configure script.
	Added Headset testing tool.
	Updated man pages.
	RPM package.

ver 2.1.1:
	Resurrect hci_remote_name.

ver 2.1:
	Added hci_{read, write}_class_of_dev().
	Added hci_{read, write}_current_iac_lap().
	Added hci_write_local_name().
	Added RFCOMM header file.
	Minor fixes.
	Improved BCSP initialization (hciattach).
	Support for displaying link quality (hcitool).
	Support for changing link supervision timeout (hcitool).
	New RFCOMM TTY configuration tool (rfcomm).
	Minor fixes and updates.

ver 2.0:
	Additional company IDs.
	BCSP initialization (hciattach).
	Minor hciconfig fixes.

ver 2.0-pr13:
	Support for multiple pairing modes.
	Link key database handling fixes.

ver 2.0-pre12:
	Removed max link key limit. Keys never expire.
	Link key database is always updated. Reread PIN on SIGHUP (hcid).
	Bluetooth script starts SDPd, if installed.
	Other minor fixes.

ver 2.0-pre11:
	Improved link key management and more verbose logging (hcid).
	Fixed scan command (hcitool).

ver 2.0-pre10:
	Fix hci_inquiry function to return errors and accept user buffers.
	New functions hci_devba, hci_devid, hci_for_each_dev and hci_get_route.
	Additional company IDs.
	Makefile and other minor fixes.
	Support for reading RSSI, remote name and changing
	connection type (hcitool). 
	Device initialization fixes (hcid).
	Other minor fixes and improvements.
	Build environment cleanup and fixes.

ver 2.0-pre9:
	Improved bluepin. Working X authentication.
	Improved hcitool. New flexible cmd syntax, additional commands.
	Human readable display of the device features.
	LMP features to string translation support.
	Additional HCI command and event defines.
	Extended hci_filter API.

ver 2.0-pre8:
	Additional HCI ioctls and defines.
	All strings and buffers are allocated dynamically.
	ba2str, str2ba automatically swap bdaddress.
	Additional hciconfig commands. Support for ACL and SCO MTU ioctls.
	Support for Inventel and COM1 UART based devices.
	Minor hcitool fixes.
	Improved l2test. New L2CAP test modes.
	Minor fixes and cleanup.

ver 2.0-pre7:
	Bluetooth libraries and header files is now a separate package.
	New build environment uses automake and libtool.
	Massive header files cleanup.
	Bluetooth utilities is now a separate package.
	New build environment uses automake.
	Moved all config files and security data to /etc/bluetooth.
	Various cleanups.

ver 2.0-pre6:
	API cleanup and additions.
	Improved hcitool.
	l2test minor output fixes.
	hciattach opt to display list of supported devices.

ver 2.0-pre4:
	HCI filter enhancements.

ver 2.0-pre3:
	Cleanup.

ver 2.0-pre2:
	Additional HCI library functions.
	Improved CSR baud rate initialization.
	PCMCIA scripts fixes and enhancements.
	Documentation update.

ver 2.0-pre1:
	New UART initialization utility.
	Hot plugging support for UART based PCMCIA devices.
	SCO testing utility.
	New authentication utility (bluepin).
	Minor fixes and improvements.
