<HTML>
<HEAD>
<TITLE>Copyright Information</TITLE>
<LINK REL=StyleSheet HREF="../rw.css" TYPE="text/css" TITLE="Apache stdcxx Stylesheet"></HEAD>
<BODY BGCOLOR=#FFFFFF>
<A HREF="../../index.html"><IMG SRC="images/banner.gif" WIDTH=405 HEIGHT=57 ALT="Rogue Wave banner" BORDER=0></A><BR>
<IMG SRC="images/noprev.gif" WIDTH=20 HEIGHT=21 ALT="No previous file" BORDER=O><A HREF="noframes.html"><IMG SRC="images/top.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><A HREF="booktoc.html"><IMG SRC="images/toc.gif" WIDTH=56 HEIGHT=21 ALT="Contents" BORDER=O></A><A HREF="tindex.html"><IMG SRC="images/index.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><IMG SRC="images/nonext.gif" WIDTH=25 HEIGHT=21 ALT="No next file" BORDER=O><A HREF="../../index.html"><IMG SRC="images/blank.gif" WIDTH=56 HEIGHT=21 BORDER=O><IMG SRC="images/end.gif" WIDTH=136 HEIGHT=21 BORDER=O></A>
<DIV CLASS="DOCUMENTNAME"><B>Apache C++ Standard Library User's Guide</B></DIV>
<P>

&copy; Copyright 1994-2007 Rogue Wave Software.

</P>
<P>

Licensed to the Apache Software  Foundation (ASF) under one or more contributor  license agreements.  See  the NOTICE  file distributed with  this  work  for  additional information  regarding  copyright ownership.   The ASF  licenses this  file to  you 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 <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>

</P>
<P>

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.

</P>
<BR>
<HR>
<IMG SRC="images/bnoprev.gif" WIDTH=20 HEIGHT=21 ALT="No previous file" BORDER=O><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><A HREF="booktoc.html"><IMG SRC="images/btoc.gif" WIDTH=56 HEIGHT=21 ALT="Contents" BORDER=O></A><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><IMG SRC="images/bnonext.gif" WIDTH=20 HEIGHT=21 ALT="No next file" BORDER=O>

<P>&copy; 1994-2007 Copyright Rogue Wave Software. All Rights Reserved.<BR>Rogue Wave is a registered trademark of Rogue Wave Software in the United States and other countries. All other trademarks are the property of their respective owners.<BR><A HREF="contact.html">Contact</A> the Apache C++ Standard Library maintainers with documentation and support issues.</P>

<!-- Google Analytics tracking code -->
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
    _uacct = "UA-1775151-1";
    urchinTracker();
</script>
<!-- end of Google Analytics tracking code -->

</BODY>
</HTML>
