Apache Meecrowave
Copyright 2016-2018 The Apache Software Foundation

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

----

This product bundles Pretty Doc theme:

 Template Name: PrettyDocs - Responsive Website Template for documentations
 Version: 1.0
 Author: Xiaoying Riley
 License: Creative Commons Attribution 3.0 License - https://creativecommons.org/licenses/by/3.0/
 Twitter: @3rdwave_themes
 Website: http://themes.3rdwavemedia.com/

----

This product bundles Twitter Bootstrap:

 Bootstrap v3.3.6 (http://getbootstrap.com)
 Copyright 2011-2015 Twitter, Inc.
 Licensed under the MIT license

----

This product bundles Elegant font:

 https://www.elegantthemes.com/blog/resources/elegant-icon-font
 Licensed under the MIT license

----

This product bundles font awesome:

 Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome
 License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)

----

This product bundles jQuery match height:

 jquery.matchHeight-min.js v0.5.2
 http://brm.io/jquery-match-height/
 License: MIT

----

This product bundles jQuery:

jQuery v1.12.3 | (c) jQuery Foundation | jquery.org/license

