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

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.9 series is binary compatible with the 5.8.x series.
Applications compiled for 5.8 will continue to run with 5.9.

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.

****************************************************************************
*                          Library                                         *
****************************************************************************

 - [QTBUG-60007] Fixed plugin resources not loading on static builds
 - [QTBUG-60881] Fixed building on configurations without OpenGL
 - Fixed an incorrect condition in QDeclarativeGeoMap::geometryChanged()
   causing a crash in some scenarios
 - MapItems can now be set to render under specific style layers with the
   MapboxGL plugin
 - [QTBUG-60821] Added detailed 3rd party attributions for the 3rd party
   mapbox-gl-native library
 - [QTBUG-61070] MapQuickItem's setCoordinate now checks for coordinate's
   validity.
 - [QTBUG-61087] OpenGL is now a requirement to build the MapboxGL plugin
 - LocationSingleton now allows to create a qgeopath from a list of coordinates,
   and not only empty qgeopaths
 - Updated QtLocation qmltypes
 - [QTBUG-61266] Updated QtPositioning qmltypes, adding 5.9 version
 - [QTBUG-57690] Fixed Map.visibleRegion in the case that all the map is visible
 - Various documentation fixes
 - The MapboxGL plugin now uses the MapItem's objectName (if present) when creating
   a mapbox layer name for it

