Qt 5.5.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.5.0.

Qt 5.5 introduces many new features and improvements as well as bugfixes
over the 5.4.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:

  http://doc.qt.io/qt-5/index.html

The Qt version 5.5 series is binary compatible with the 5.4.x series.
Applications compiled for 5.4 will continue to run with 5.5.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

  https://bugreports.qt.io/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

****************************************************************************
*                          General                                         *
****************************************************************************

QtWebEngineCore
--------
 - Security fixes
   * ICU: CVE-2014-8146, CVE-2014-8147
   * Blink: CVE-2015-1284, CVE-2015-1291, CVE-2015-1292
   * Skia: CVE-2015-1294
   * V8: CVE-2015-1290
 - [QTBUG-47945, QTBUG-48088] Fixed crashes and asserts on exit


****************************************************************************
*                      Platform Specific Changes                           *
****************************************************************************

Linux
-----
 - [QTBUG-47301] Fixed crash on XCB GLES2 and Wayland
 - [QTBUG-45801] Find libEGL and libEGLES2v2 without development packages

Windows
-------
 - [QTBUG-44763] Fix slow proxy resolution with multiple network interfaces
 - [QTBUG-47129] Make QtWebEngineProcess use full 4GB memory on 32-bit
