SAMOA
Copyright 2013 Yahoo! Inc.

Licensed under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.

Except as specifically stated below, the 3rd party software packages are not distributed as part of
this project, but instead are separately downloaded from the respective provider.

* MOA version 13.08 (redistributed under the Apache License v2 - http://www.apache.org/licenses/LICENSE-2.0)
  Library for data stream mining. Only a small subset of the original library is redistributed with SAMOA.
  http://moa.cms.waikato.ac.nz
