Apache Unomi
Copyright 2015-2020 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

Based on source code originally developed by
Jahia Solutions Software (http://www.jahia.com/).

This product includes software developed by
Edin Dazdarevic (edin.dazdarevic@gmail.com).
Copyright (c) 2013 Edin Dazdarevic (edin.dazdarevic@gmail.com)
Licensed under the MIT License.

#GENERATED_NOTICES#

License summary:

#GENERATED_LICENSE_SUMMARY#