MICROSOFT SOFTWARE LICENSE TERMS
MICROSOFT .NET PORTABLE CLASS LIBRARY REFERENCE ASSEMBLIES – 4.6
These license terms are an agreement between Microsoft Corporation (or
based on where you live, one of its affiliates) and you. Please read
them. They apply to the software named above. The terms also apply to
any Microsoft
•   updates,
•   supplements,
•   Internet-based services, and
•   support services
for this software, unless other terms accompany those items. If so,
those terms apply.
BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT
THEM, DO NOT USE THE SOFTWARE.
IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS
BELOW.
1.   INSTALLATION AND USE RIGHTS. You may install and use any number of
copies of the software to design, develop and test your programs.
2.   ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
a.   Distributable Code. You may distribute the software in developer
tool programs you develop, to enable customers of your programs to
develop portable libraries for use with any device or operating system,
if you comply with the terms below.
i.   Right to Use and Distribute. The software is “Distributable Code.”
•   Distributable Code. You may copy and distribute the object code form
of the software.
•   Third Party Distribution. You may permit distributors of your
programs to copy and distribute the Distributable Code as part of those
programs.
ii.   Distribution Requirements. For any Distributable Code you
distribute, you must
•   add significant primary functionality to it in your programs;
•   require distributors and your customers to agree to terms that
protect it at least as much as this agreement;
•   display your valid copyright notice on your programs; and
•   indemnify, defend, and hold harmless Microsoft from any claims,
including attorneys’ fees, related to the distribution or use of your
programs.
iii.   Distribution Restrictions. You may not
•   alter any copyright, trademark or patent notice in the Distributable
Code;
•   use Microsoft’s trademarks in your programs’ names or in a way that
suggests your programs come from or are endorsed by Microsoft;
•   include Distributable Code in malicious, deceptive or unlawful
programs; or
•   modify or distribute the Distributable Code so that any part of it
becomes subject to an Excluded License. An Excluded License is one that
requires, as a condition of use, modification or distribution, that
•   the code be disclosed or distributed in source code form; or
•   others have the right to modify it.
3.   SCOPE OF LICENSE. The software is licensed, not sold. This
agreement only gives you some rights to use the software. Microsoft
reserves all other rights. Unless applicable law gives you more rights
despite this limitation, you may use the software only as expressly
permitted in this agreement. In doing so, you must comply with any
technical limitations in the software that only allow you to use it in
certain ways. You may not
•   work around any technical limitations in the software;
•   reverse engineer, decompile or disassemble the software, except and
only to the extent that applicable law expressly permits, despite this
limitation;
•   publish the software for others to copy; or
•   rent, lease or lend the software.
4.   FEEDBACK. You may provide feedback about the software. If you give
feedback about the software to Microsoft, you give to Microsoft, without
charge, the right to use, share and commercialize your feedback in any
way and for any purpose. You also give to third parties, without charge,
any patent rights needed for their products, technologies and services
to use or interface with any specific parts of a Microsoft software or
service that includes the feedback. You will not give feedback that is
subject to a license that requires Microsoft to license its software or
documentation to third parties because we include your feedback in
them. These rights survive this agreement.
5.   TRANSFER TO A THIRD PARTY. The first user of the software may
transfer it, and this agreement, directly to a third party. Before the
transfer, that party must agree that this agreement applies to the
transfer and use of the software. The first user must uninstall the
software before transferring it separately from the device. The first
user may not retain any copies.
6.   EXPORT RESTRICTIONS. The software is subject to United States
export laws and regulations. You must comply with all domestic and
international export laws and regulations that apply to the software.
These laws include restrictions on destinations, end users and end use.
For additional information, see www.microsoft.com/exporting.
7.   SUPPORT SERVICES. Because this software is “as is,” we may not
provide support services for it.
8.   ENTIRE AGREEMENT. This agreement, and the terms for supplements,
updates, Internet-based services and support services that you use, are
the entire agreement for the software and any support services we
provide.
9.   APPLICABLE LAW.
a.   United States. If you acquired the software in the United States,
Washington state law governs the interpretation of this agreement and
applies to claims for breach of it, regardless of conflict of laws
principles. The laws of the state where you live govern all other
claims, including claims under state consumer protection laws, unfair
competition laws, and in tort.
b.   Outside the United States. If you acquired the software in any
other country, the laws of that country apply.
10.   LEGAL EFFECT. This agreement describes certain legal rights. You
may have other rights under the laws of your country. You may also have
rights with respect to the party from whom you acquired the software.
This agreement does not change your rights under the laws of your
country if the laws of your country do not permit it to do so.
11.   DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR
THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES
OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY
GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE.
TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
AND NON-INFRINGEMENT.
FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN
CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE
RIGHTS.
12.   LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN
RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S.
$5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL,
LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
This limitation applies to
•   anything related to the software, services, content (including code)
on third party Internet sites, or third party programs; and
•   claims for breach of contract, breach of warranty, guarantee or
condition, strict liability, negligence, or other tort to the extent
permitted by applicable law.
It also applies even if Microsoft knew or should have known about the
possibility of the damages. The above limitation or exclusion may not
apply to you because your country may not allow the exclusion or
limitation of incidental, consequential or other damages.
