Apache Hivemall
Copyright 2016-2019 The Apache Software Foundation

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

They have been licensed to the Apache Software Foundation under Software Grant Agreements from 
the following organizations and individuals:

 - Copyright 2013-2015 National Institute of Advanced Industrial Science and Technology (AIST)
 - Copyright 2015-2016 Makoto Yui
 - Copyright 2015-2016 Treasure Data, Inc.
 - Copyright 2012 Klout, Inc.
