==============================================================
 Apache Mahout
 Copyright 2009-2020 The Apache Software Foundation
==============================================================

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

It includes software from other Apache Software Foundation projects,
including, but not limited to:
  - Apache Lucene Java
  - Apache Solr
  - Apache Hadoop
  - Apache Commons
  - Apache Spark
  - Apache Flink

This product includes software from the SLF4J project
  http://www.slf4j.org/
  Copyright (c) 2004-2016 QOS.ch

This product includes software developed by the Indiana University
  Extreme! Lab (http://www.extreme.indiana.edu/).
  Copyright (c) 2002 Extreme! Lab, Indiana University.

This product includes a JUnit jar: http://junit.sourceforge.net/
License: Common Public License - v 1.0 (http://junit.sourceforge.net/cpl-v10.html)
Copyright (c) 2000-2006, www.hamcrest.org

This product includes code from the XStream project (http://xstream.codehaus.org/)
Copyright (c) 2003-2006, Joe Walnes
Copyright (c) 2006-2007, XStream Committers

This product includes tests written with EasyMock 
Copyright 2001-2007 Tammo Freese (http://www.easymock.org/)

This product uses the Breast Cancer Wisconsin (Diagnostic) Dataset from the
UCI Machine Learning Repository
[http://www.ics.uci.edu/~mlearn/MLRepository.html,
 http://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Diagnostic)].

