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.
