Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.

OBJECT CODE REDISTRIBUTION AGREEMENT
AMD ISP FIRMWARE BINARY

IMPORTANT-READ CAREFULLY:  DO NOT INSTALL, COPY OR USE THE AMD ISP FIRMWARE BINARY OR ANY PORTION THEREOF (THE "SOFTWARE") UNTIL YOU HAVE CAREFULLY READ AND AGREED TO THE FOLLOWING TERMS AND CONDITIONS.  THIS IS A LEGAL AGREEMENT ("AGREEMENT") BETWEEN YOU (EITHER AN INDIVIDUAL OR AN ENTITY) ("YOU") AND ADVANCED MICRO DEVICES, INC. ("AMD"). IF YOU ARE ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE LEGAL AUTHORITY TO BIND THE ENTITY TO THIS AGREEMENT, IN WHICH CASE "YOU" WILL MEAN THE ENTITY YOU REPRESENT.
IF YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, DO NOT INSTALL, COPY OR OTHERWISE USE THIS SOFTWARE.  BY INSTALLING, COPYING OR OTHERWISE USING THE SOFTWARE YOU AGREE TO ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.

DEFINITIONS:
"Licensed Products" means a product that incorporates an AMD processor running GFX 11.5.1 graphics architecture.
"Object Code" means the machine readable form of the Software (as opposed to the human readable form of computer programing code).

LICENSE GRANT: Subject to the terms and conditions of this Agreement, AMD hereby grants You a non-exclusive, royalty-free, revocable, non-transferable license to install, use, copy, and redistribute the Software in Object Code only for use with Licensed Products, provided any such redistribution of the Software is under the terms of this Agreement.

RESTRICTIONS: The license granted herein is subject to the following restrictions. Except as otherwise provided herein, You shall not (i) modify or create derivative works (or attempt to modify or create derivative works) of the Software; (ii) decompile, reverse engineer, disassemble, or otherwise reduce the Software to a human-perceivable form (unless otherwise allowed by applicable law); (iii) alter or remove any copyright, trademark or patent notice(s) in the Software; (iv) install, use, copy, or redistribute the Software in any way that causes the Software to become subject to an open source or other license that requires the Software be disclosed or distributed in source code form; (v) install, use, copy, or redistribute the Software for any purpose other than for use with Licensed Products; or (vi) use the Software in violation of any applicable law or regulation.

OWNERSHIP: The Software, including all rights therein, is and remains the sole and exclusive property of AMD or its licensors. You shall have no right, title, or interest in the Software except for the license rights expressly granted herein.

WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR COURSE OF USAGE.  THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS ASSUMED BY YOU INCLUDING, WITHOUT LIMITATION, THE RISK OF DATA CORRUPTION OR LOSS.  Some jurisdictions do not allow the exclusion of implied warranties, so the above exclusion may not apply to You.

LIMITAITON OF LIABILITY AND INDEMNIFICATION: AMD AND ITS LICENSORS WILL NOT, UNDER ANY CIRCUMSTANCES BE LIABLE TO YOU FOR ANY PUNITIVE, DIRECT, INCIDENTAL, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES INCLUDING LOSS OF USE, PROFITS, OR DATA ARISING FROM USE OF THE SOFTWARE OR THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  In no event shall AMD's total liability for all damages, losses, and causes of action (whether in contract, tort (including negligence) or otherwise) exceed the amount of $100 USD.  You agree to defend, indemnify and hold harmless AMD and its licensors, and any of their directors, officers, employees, affiliates or agents from and against any and all loss, damage, liability and other expenses (including reasonable attorneys' fees), resulting from Your installation, use, copying, or redistribution of the Software or Your violation of the terms and conditions of this Agreement.

TERMINATION: This Agreement will automatically terminate if You do not comply with its terms and conditions. In the event of termination, You must destroy all copies of the Software and the rights and licenses granted to You under this Agreement shall immediately terminate. All rights and obligations under this Agreement which by their nature should survive termination will remain in full force and effect.

EXPORT RESTRICTIONS: You shall adhere to all applicable U.S. import/export laws and regulations including but not limited to the U.S. Export Administration Regulations ("EAR") and U.S. Office of Foreign Assets Control (OFAC), as well as the applicable import/export control laws and regulations of other countries.  You further agree to not export, re-export, or transfer, directly or indirectly, any product, technical data, software or source code received from AMD under this license, or the direct product of such technical data or software to any country for which the United States or any other applicable government requires an export license or other governmental approval without first obtaining such licenses or approvals; or in violation of any applicable laws or regulations of the United States or the country where the technical data or software was obtained. You acknowledge the technical data and software received will not, in the absence of authorization from U.S. or local law and regulations as applicable, be used by, exported, re-exported or transferred, directly or indirectly, to: (i) any sanctioned or embargoed country, or to nationals or residents of such countries; (ii) any restricted end-user as identified on any applicable government end-user list (e.g., BIS Denied Persons List); (iii) any party where the end-use involves nuclear, chemical/biological weapons, rocket systems, or unmanned air vehicles; (iv) any party whose actions or functions are intended to support or contribute to the operation, installation, maintenance, repair, overhaul, refurbishing, development, or production of military items in Belarus, Russia, Burma, Cambodia, the People's Republic of China ("PRC") or Venezuela; or (v) any party for any military end-use or any end-use prohibited in Section 744 of the EAR, including but not limited to incorporation in a "supercomputer" (as defined in Section 772 of the EAR) or a component or equipment that will be used in a supercomputer any party any party for the design, development or production of a supercomputer located in PRC or Macau.

GOVERNING LAW: This Agreement is made under and shall be construed according to the laws of the State of California, excluding conflicts of law rules.  Each party submits to the jurisdiction of the state and federal courts of Santa Clara County and the Northern District of California for the purposes of this Agreement.  You acknowledge that your breach of this Agreement may cause irreparable damage and agree that AMD shall be entitled to seek injunctive relief under this Agreement, as well as such further relief as may be granted by a court of competent jurisdiction.

GENERAL PROVISIONS:  You may not assign this Agreement without the prior written consent of AMD and any assignment without such consent will be null and void.  The parties do not intend that any agency or partnership relationship be created between them by this Agreement.  Each provision of this Agreement shall be interpreted in such a manner as to be effective and valid under applicable law.  However, in the event that any provision of this Agreement becomes or is declared unenforceable by any court of competent jurisdiction, such provision shall be deemed deleted and the remainder of this Agreement shall remain in full force and effect.

ENTIRE AGREEMENT: This Agreement sets forth the entire agreement and understanding between the Parties with respect to the Software and supersedes and merges all prior oral and written agreements, discussions and understandings between them regarding the subject matter of this Agreement.  No waiver or modification of any provision of this Agreement shall be binding unless made in writing and signed by an authorized representative of each Party.
