Copyright (c) 2010, Atheros Communications, Inc.
All rights reserved.

Redistribution. Redistribution and use in binary form, without modification,
are permitted provided that the following conditions are met:

* Redistributions must reproduce the above copyright notice and the following
  disclaimer in the documentation and/or other materials provided with the
  distribution.
* Neither the name of Atheros Communications, Inc. nor the names of its
  suppliers may be used to endorse or promote products derived from this
  software without specific prior written permission.
* No reverse engineering, decompilation, or disassembly of this software is
  permitted.

Limited patent license. Atheros Communications, Inc. grants a world-wide,
royalty-free, non-exclusive license under patents it now or hereafter owns or
controls to make, have made, use, import, offer to sell and sell ("Utilize")
this software, but solely to the extent that any such patent is necessary to
Utilize the software alone, or in combination with an operating system licensed
under an approved Open Source license as listed by the Open Source Initiative
at http://opensource.org/licenses. The patent license shall not apply to any
other combinations which include this software. No hardware per se is licensed
hereunder.

DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
