Apache SAMOA (incubating)
Copyright (C) 2014-2016 Apache Software Foundation.

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

This product includes software developed at Yahoo! Inc. (www.yahoo.com)
Copyright (C) 2013-2014 Yahoo! Inc.

This product bundles MOA version 13.08 (redistributed under the Apache License v2 with consent of the copyright holders).
Copyright (C) 2007 University of Waikato. Library for data stream mining.
Only a small subset of the original library is bundled with Apache SAMOA.
http://moa.cms.waikato.ac.nz
