15bd8deadSopenharmony_ci<?php
25bd8deadSopenharmony_ci$static_title = 'Khronos OpenGL ES Registry';
35bd8deadSopenharmony_ci
45bd8deadSopenharmony_ciinclude_once("../../assets/static_pages/khr_page_top.php");
55bd8deadSopenharmony_ci?>
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci<p> The OpenGL ES Registry contains specifications of the core API and
85bd8deadSopenharmony_ci    shading language; specifications of Khronos- and vendor-approved
95bd8deadSopenharmony_ci    OpenGL ES extensions; header files corresponding to the
105bd8deadSopenharmony_ci    specifications; and related documentation. </p>
115bd8deadSopenharmony_ci
125bd8deadSopenharmony_ci<p> The OpenGL ES Registry is part of the <a
135bd8deadSopenharmony_ci    href="http://www.khronos.org/registry/OpenGL/"> Combined OpenGL Registry </a>
145bd8deadSopenharmony_ci    for OpenGL, OpenGL ES, and OpenGL SC, which includes the <a
155bd8deadSopenharmony_ci    href="xml/README.adoc">XML API registry</a> of reserved enumerants and
165bd8deadSopenharmony_ci    functions. </p>
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ci<p> <b>Table of Contents</b>
195bd8deadSopenharmony_ci<ul>
205bd8deadSopenharmony_ci<li> <b><a href="docs/update_policy.php">Working Group Policy</a></b> for
215bd8deadSopenharmony_ci     when Specifications and extensions will be updated. </li>
225bd8deadSopenharmony_ci<li> <b><a href="#specs">Current OpenGL ES API and Shading Language
235bd8deadSopenharmony_ci     Specifications and Reference Pages</a></b>
245bd8deadSopenharmony_ci     <ul>
255bd8deadSopenharmony_ci     <li> <a href="#specs32">OpenGL ES 3.2 Specifications</a> </li>
265bd8deadSopenharmony_ci     <li> <a href="#specs31">OpenGL ES 3.1 Specifications</a> </li>
275bd8deadSopenharmony_ci     <li> <a href="#specs3">OpenGL ES 3.0 Specifications</a> </li>
285bd8deadSopenharmony_ci     <li> <a href="#specs2">OpenGL ES 2.0 Specifications</a> </li>
295bd8deadSopenharmony_ci     <li> <a href="#specs11">OpenGL ES 1.1 Specifications</a> </li>
305bd8deadSopenharmony_ci     <li> <a href="#specs10">OpenGL ES 1.0 Specification</a> </li>
315bd8deadSopenharmony_ci     </ul> </li>
325bd8deadSopenharmony_ci<li> <b><a href="#headers">Core API and Extension Header Files</a></b>
335bd8deadSopenharmony_ci     <ul>
345bd8deadSopenharmony_ci     <li> <a href="#headers32">OpenGL ES 3.2 Header Files</a> </li>
355bd8deadSopenharmony_ci     <li> <a href="#headers31">OpenGL ES 3.1 Header Files</a> </li>
365bd8deadSopenharmony_ci     <li> <a href="#headers3">OpenGL ES 3.0 Header Files</a> </li>
375bd8deadSopenharmony_ci     <li> <a href="#headers2">OpenGL ES 2.0 Header Files</a> </li>
385bd8deadSopenharmony_ci     <li> <a href="#headers1">OpenGL ES 1.1 Header Files</a> </li>
395bd8deadSopenharmony_ci     <li> <a href="#headerskhr">Shared Khronos Header File</a> </li>
405bd8deadSopenharmony_ci     </ul> </li>
415bd8deadSopenharmony_ci<li> <b><a href="#otherextspecs">OpenGL ES Extension Specifications</a></b>
425bd8deadSopenharmony_ci<li> <b> <a href="https://www.khronos.org/files/ip-disclosures/opengl/">
435bd8deadSopenharmony_ci     IP Disclosures</a> Potentially Affecting OpenGL ES Implementations
445bd8deadSopenharmony_ci     </b></li>
455bd8deadSopenharmony_ci</ul>
465bd8deadSopenharmony_ci
475bd8deadSopenharmony_ci<hr>
485bd8deadSopenharmony_ci
495bd8deadSopenharmony_ci<h2> <a name="specs"></a> OpenGL ES Core API and Shading Language
505bd8deadSopenharmony_ci     Specifications and Reference Pages </h2>
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ci<p> The current version of OpenGL ES is OpenGL ES 3.2. Specifications for
535bd8deadSopenharmony_ci    older versions 3.1, 3.0, 2.0, 1.1, and 1.0 are also available below. For
545bd8deadSopenharmony_ci    additional specifications, headers, and documentation not listed below,
555bd8deadSopenharmony_ci    see the <a href="http://www.khronos.org/developers/specs/">Khronos.org
565bd8deadSopenharmony_ci    Developer Pages</a>. Header files not labelled with a revision date
575bd8deadSopenharmony_ci    include their last update time in comments near the top of the file.
585bd8deadSopenharmony_ci    </p>
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci<h2> <a name="specs32"></a> OpenGL ES 3.2 Specifications and
615bd8deadSopenharmony_ci     Documentation </h2>
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ci<ul>
645bd8deadSopenharmony_ci<li> OpenGL ES 3.2 Specification (May 5, 2022)
655bd8deadSopenharmony_ci     <a href="specs/es/3.2/es_spec_3.2.pdf"> without changes marked </a>
665bd8deadSopenharmony_ci     and
675bd8deadSopenharmony_ci     <a href="specs/es/3.2/es_spec_3.2.withchanges.pdf"> with changes marked </a>. </li>
685bd8deadSopenharmony_ci<li> OpenGL ES Shading Language 3.20 Specification (July 10, 2019)
695bd8deadSopenharmony_ci     <a href="specs/es/3.2/GLSL_ES_Specification_3.20.html"> (HTML) </a>
705bd8deadSopenharmony_ci     <a href="specs/es/3.2/GLSL_ES_Specification_3.20.pdf"> (PDF) </a>
715bd8deadSopenharmony_ci<li> <a href="http://www.khronos.org/registry/OpenGL-Refpages/es3/">
725bd8deadSopenharmony_ci     OpenGL ES 3.2 Online Reference Pages.</a> </li>
735bd8deadSopenharmony_ci<li> <a href="https://www.khronos.org/developers/reference-cards">
745bd8deadSopenharmony_ci     OpenGL ES Quick Reference Card </a> (available for different API
755bd8deadSopenharmony_ci     versions). </li>
765bd8deadSopenharmony_ci</ul>
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci<h2> <a name="specs31"></a> OpenGL ES 3.1 Specifications and
795bd8deadSopenharmony_ci     Documentation </h2>
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ci<ul>
825bd8deadSopenharmony_ci<li> OpenGL ES 3.1 Specification (November 3, 2016),
835bd8deadSopenharmony_ci     <a href="specs/es/3.1/es_spec_3.1.pdf"> without changes marked </a>
845bd8deadSopenharmony_ci     and
855bd8deadSopenharmony_ci     <a href="specs/es/3.1/es_spec_3.1.withchanges.pdf"> with changes marked </a>. </li>
865bd8deadSopenharmony_ci<li> OpenGL ES Shading Language 3.10 Specification (January 29, 2016)
875bd8deadSopenharmony_ci     <a href="specs/es/3.1/GLSL_ES_Specification_3.10.pdf"> without changes marked </a>
885bd8deadSopenharmony_ci     and
895bd8deadSopenharmony_ci     <a href="specs/es/3.1/GLSL_ES_Specification_3.10.withchanges.pdf"> with changes marked </a>. </li>
905bd8deadSopenharmony_ci<li> <a href="http://www.khronos.org/registry/OpenGL-Refpages/es3.1/">
915bd8deadSopenharmony_ci     OpenGL ES 3.1 Online Reference Pages.</a> </li>
925bd8deadSopenharmony_ci</ul>
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ci<h2> <a name="specs3"></a> OpenGL ES 3.0 Specifications and
955bd8deadSopenharmony_ci     Documentation </h2>
965bd8deadSopenharmony_ci
975bd8deadSopenharmony_ci<ul>
985bd8deadSopenharmony_ci<li> OpenGL ES 3.0.6 Specification (November 1, 2019),
995bd8deadSopenharmony_ci     <a href="specs/es/3.0/es_spec_3.0.pdf"> without changes marked </a>
1005bd8deadSopenharmony_ci     and
1015bd8deadSopenharmony_ci     <a href="specs/es/3.0/es_spec_3.0.withchanges.pdf"> with changes marked </a>. </li>
1025bd8deadSopenharmony_ci<li> OpenGL ES Shading Language 3.00
1035bd8deadSopenharmony_ci     <a href="specs/es/3.0/GLSL_ES_Specification_3.00.pdf">
1045bd8deadSopenharmony_ci     Specification </a> (January 29, 2016). </li>
1055bd8deadSopenharmony_ci<li> <a href="http://www.khronos.org/registry/OpenGL-Refpages/es3.0/">
1065bd8deadSopenharmony_ci     OpenGL ES 3.0 Online Reference Pages.</a> </li>
1075bd8deadSopenharmony_ci</ul>
1085bd8deadSopenharmony_ci
1095bd8deadSopenharmony_ci<h2> <a name="specs2"></a> OpenGL ES 2.0 Specifications and
1105bd8deadSopenharmony_ci     Documentation </h2>
1115bd8deadSopenharmony_ci
1125bd8deadSopenharmony_ci<ul>
1135bd8deadSopenharmony_ci<li> OpenGL ES 2.0
1145bd8deadSopenharmony_ci     <a href="specs/es/2.0/es_full_spec_2.0.pdf">
1155bd8deadSopenharmony_ci     Full Specification </a>,
1165bd8deadSopenharmony_ci     <a href="specs/es/2.0/es_full_spec_2.0.withchanges.pdf">
1175bd8deadSopenharmony_ci     Full Specification with changes marked</a>,
1185bd8deadSopenharmony_ci     <a href="specs/es/2.0/es_cm_spec_2.0.pdf">
1195bd8deadSopenharmony_ci     Difference Specification </a> (November 2, 2010).
1205bd8deadSopenharmony_ci     A
1215bd8deadSopenharmony_ci     <a href="http://www.cutt.co.jp/book/978-4-87783-267-4.html">
1225bd8deadSopenharmony_ci     Japanese translation </a> of the specification is also available.
1235bd8deadSopenharmony_ci     </li>
1245bd8deadSopenharmony_ci<li> OpenGL ES Shading Language 1.00
1255bd8deadSopenharmony_ci     <a href="specs/es/2.0/GLSL_ES_Specification_1.00.pdf">
1265bd8deadSopenharmony_ci     Specification </a> (May 12, 2009). </li>
1275bd8deadSopenharmony_ci<li> <a href="http://www.khronos.org/registry/OpenGL-Refpages/es2.0/">
1285bd8deadSopenharmony_ci     OpenGL ES 2.0 Online Reference Pages.</a> </li>
1295bd8deadSopenharmony_ci</ul>
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci
1325bd8deadSopenharmony_ci<h2> <a name="specs11"></a> OpenGL ES 1.1 Specifications and
1335bd8deadSopenharmony_ci     Documentation </h2>
1345bd8deadSopenharmony_ci
1355bd8deadSopenharmony_ci<ul>
1365bd8deadSopenharmony_ci<li> OpenGL ES 1.1
1375bd8deadSopenharmony_ci     <a href="specs/es/1.1/es_full_spec_1.1.pdf"> Full Specification </a>
1385bd8deadSopenharmony_ci     and
1395bd8deadSopenharmony_ci     <a href="specs/es/1.1/es_cm_spec_1.1.pdf"> Difference Specification </a>
1405bd8deadSopenharmony_ci     (April 24, 2008). </li>
1415bd8deadSopenharmony_ci<li> <a href="specs/es/1.1/opengles_spec_1_1_extension_pack.pdf"> OpenGL ES
1425bd8deadSopenharmony_ci     1.1.03 Extension Pack </a> (July 19, 2005). </li>
1435bd8deadSopenharmony_ci<li> <a href="http://www.khronos.org/registry/OpenGL-Refpages/es1.1/">
1445bd8deadSopenharmony_ci     OpenGL ES 1.1 Online Reference Pages.</a> </li>
1455bd8deadSopenharmony_ci</ul>
1465bd8deadSopenharmony_ci
1475bd8deadSopenharmony_ci<h2> <a name="specs10"></a> OpenGL ES 1.0 Specification and
1485bd8deadSopenharmony_ci     Documentation </h2>
1495bd8deadSopenharmony_ci
1505bd8deadSopenharmony_ci<ul>
1515bd8deadSopenharmony_ci<li> <a href="specs/es/1.0/opengles_spec_1_0.pdf"> OpenGL ES 1.0.02
1525bd8deadSopenharmony_ci     Specification </a>. </li>
1535bd8deadSopenharmony_ci<li> <tt><a href="api/GLES/1.0/gl.h"> gl.h </a></tt> for OpenGL ES 1.0. </li>
1545bd8deadSopenharmony_ci<li> The old <i>OpenGL ES 1.0 and EGL 1.0 Reference Manual</i> is
1555bd8deadSopenharmony_ci     obsolete and has been removed from the Registry. Please use the
1565bd8deadSopenharmony_ci     <a href="http://www.khronos.org/registry/OpenGL-Refpages/es1.1/">
1575bd8deadSopenharmony_ci     OpenGL ES 1.1 Online Reference Pages</a> instead. </li>
1585bd8deadSopenharmony_ci</ul>
1595bd8deadSopenharmony_ci
1605bd8deadSopenharmony_ci<hr>
1615bd8deadSopenharmony_ci
1625bd8deadSopenharmony_ci<h2> <a name="headers"></a> API and Extension Header Files </h2>
1635bd8deadSopenharmony_ci
1645bd8deadSopenharmony_ci<p> Because extensions vary from platform to platform and driver to driver,
1655bd8deadSopenharmony_ci    OpenGL ES segregates headers for each API version into a header for the
1665bd8deadSopenharmony_ci    core API (OpenGL ES 1.0, 1.1, 2.0, 3.0, 3.1 and 3.2) and a separate
1675bd8deadSopenharmony_ci    header defining extension interfaces for that core API. These header
1685bd8deadSopenharmony_ci    files are supplied here for developers and platform vendors. They define
1695bd8deadSopenharmony_ci    interfaces including enumerants, prototypes, and for platforms
1705bd8deadSopenharmony_ci    supporting dynamic runtime extension queries, such as Linux and
1715bd8deadSopenharmony_ci    Microsoft Windows, function pointer typedefs. Please report problems as
1725bd8deadSopenharmony_ci    <a
1735bd8deadSopenharmony_ci    href="https://github.com/KhronosGroup/OpenGL-Registry/issues/">Issues</a>
1745bd8deadSopenharmony_ci    in the <a href="index.php#repository">OpenGL-Registry</a> repository.
1755bd8deadSopenharmony_ci    </p>
1765bd8deadSopenharmony_ci
1775bd8deadSopenharmony_ci<p> In addition to the core API and extension headers, there is also an
1785bd8deadSopenharmony_ci    OpenGL ES version-specific platform header file intended to define
1795bd8deadSopenharmony_ci    calling conventions and data types specific to a platform. </p>
1805bd8deadSopenharmony_ci
1815bd8deadSopenharmony_ci<p> Almost all of the headers described below depend on a platform header
1825bd8deadSopenharmony_ci    file common to multiple Khronos APIs called
1835bd8deadSopenharmony_ci    <tt>&lt;KHR/khrplatform.h&gt;</tt>. </p>
1845bd8deadSopenharmony_ci
1855bd8deadSopenharmony_ci<p> Vendors may include modified versions of any or all of these headers
1865bd8deadSopenharmony_ci    with their OpenGL ES implementations, but in general only the
1875bd8deadSopenharmony_ci    platform-specific OpenGL ES and Khronos headers are likely to be
1885bd8deadSopenharmony_ci    modified by the implementation. This makes it possible for
1895bd8deadSopenharmony_ci    developers to drop in more recently updated versions of the headers
1905bd8deadSopenharmony_ci    obtained here, typically when new extensions are supplied
1915bd8deadSopenharmony_ci    on a platform. </p>
1925bd8deadSopenharmony_ci
1935bd8deadSopenharmony_ci<p> <a name="headers32"></a> <b> OpenGL ES 3.2 Headers </b> </p>
1945bd8deadSopenharmony_ci
1955bd8deadSopenharmony_ci<ul>
1965bd8deadSopenharmony_ci<li> <tt><a href="api/GLES3/gl32.h"> &lt;GLES3/gl32.h&gt; </a></tt>
1975bd8deadSopenharmony_ci     OpenGL ES 3.2 Header File. </li>
1985bd8deadSopenharmony_ci<li> <tt><a href="api/GLES2/gl2ext.h"> &lt;GLES2/gl2ext.h&gt; </a></tt>
1995bd8deadSopenharmony_ci     OpenGL ES Extension Header File (this header is defined to contain
2005bd8deadSopenharmony_ci     all defined extension interfaces for OpenGL ES 2.0 and all later
2015bd8deadSopenharmony_ci     versions, since later versions are backwards-compatible with OpenGL
2025bd8deadSopenharmony_ci     ES 2.0).
2035bd8deadSopenharmony_ci     </li>
2045bd8deadSopenharmony_ci<li> <tt><a href="api/GLES3/gl3platform.h"> &lt;GLES3/gl3platform.h&gt; </a></tt>
2055bd8deadSopenharmony_ci     OpenGL ES 3.2 Platform-Dependent Macros (this header is shared with
2065bd8deadSopenharmony_ci     OpenGL ES 3.0 and 3.1). </li>
2075bd8deadSopenharmony_ci</ul>
2085bd8deadSopenharmony_ci
2095bd8deadSopenharmony_ci<p> <a name="headers31"></a> <b> OpenGL ES 3.1 Headers </b> </p>
2105bd8deadSopenharmony_ci
2115bd8deadSopenharmony_ci<ul>
2125bd8deadSopenharmony_ci<li> <tt><a href="api/GLES3/gl31.h"> &lt;GLES3/gl31.h&gt; </a></tt>
2135bd8deadSopenharmony_ci     OpenGL ES 3.1 Header File. </li>
2145bd8deadSopenharmony_ci<li> <tt><a href="api/GLES2/gl2ext.h"> &lt;GLES2/gl2ext.h&gt; </a></tt>
2155bd8deadSopenharmony_ci     OpenGL ES Extension Header File. </li>
2165bd8deadSopenharmony_ci<li> <tt><a href="api/GLES3/gl3platform.h"> &lt;GLES3/gl3platform.h&gt; </a></tt>
2175bd8deadSopenharmony_ci     OpenGL ES 3.1 Platform-Dependent Macros (this header is shared with
2185bd8deadSopenharmony_ci     OpenGL ES 3.0). </li>
2195bd8deadSopenharmony_ci</ul>
2205bd8deadSopenharmony_ci
2215bd8deadSopenharmony_ci<p> <a name="headers3"></a> <b> OpenGL ES 3.0 Headers </b> </p>
2225bd8deadSopenharmony_ci
2235bd8deadSopenharmony_ci<ul>
2245bd8deadSopenharmony_ci<li> <tt><a href="api/GLES3/gl3.h"> &lt;GLES3/gl3.h&gt; </a></tt>
2255bd8deadSopenharmony_ci     OpenGL ES 3.0 Header File. </li>
2265bd8deadSopenharmony_ci<li> <tt><a href="api/GLES2/gl2ext.h"> &lt;GLES2/gl2ext.h&gt; </a></tt>
2275bd8deadSopenharmony_ci     OpenGL ES Extension Header File. </li>
2285bd8deadSopenharmony_ci<li> <tt><a href="api/GLES3/gl3platform.h"> &lt;GLES3/gl3platform.h&gt; </a></tt>
2295bd8deadSopenharmony_ci     OpenGL ES 3.0 Platform-Dependent Macros. </li>
2305bd8deadSopenharmony_ci</ul>
2315bd8deadSopenharmony_ci
2325bd8deadSopenharmony_ci<p> <a name="headers2"></a> <b> OpenGL ES 2.0 Headers </b> </p>
2335bd8deadSopenharmony_ci
2345bd8deadSopenharmony_ci<ul>
2355bd8deadSopenharmony_ci<li> <tt><a href="api/GLES2/gl2.h"> &lt;GLES2/gl2.h&gt; </a></tt>
2365bd8deadSopenharmony_ci     OpenGL ES 2.0 Header File. </li>
2375bd8deadSopenharmony_ci<li> <tt><a href="api/GLES2/gl2ext.h"> &lt;GLES2/gl2ext.h&gt; </a></tt>
2385bd8deadSopenharmony_ci     OpenGL ES Extension Header File. </li>
2395bd8deadSopenharmony_ci<li> <tt><a href="api/GLES2/gl2platform.h"> &lt;GLES2/gl2platform.h&gt; </a></tt>
2405bd8deadSopenharmony_ci     OpenGL ES 2.0 Platform-Dependent Macros. </li>
2415bd8deadSopenharmony_ci</ul>
2425bd8deadSopenharmony_ci
2435bd8deadSopenharmony_ci<p> <a name="headers1"></a> <b> OpenGL ES 1.1 Headers </b> </p>
2445bd8deadSopenharmony_ci
2455bd8deadSopenharmony_ci<ul>
2465bd8deadSopenharmony_ci<li> <tt><a href="api/GLES/gl.h"> &lt;GLES/gl.h&gt; </a></tt>
2475bd8deadSopenharmony_ci     OpenGL ES 1.1 Header File. </li>
2485bd8deadSopenharmony_ci<li> <tt><a href="api/GLES/glext.h"> &lt;GLES/glext.h&gt; </a></tt>
2495bd8deadSopenharmony_ci     OpenGL ES 1.1 Extension Header File. </li>
2505bd8deadSopenharmony_ci<li> <tt><a href="api/GLES/glplatform.h"> &lt;GLES/glplatform.h&gt; </a></tt>
2515bd8deadSopenharmony_ci     OpenGL ES 1.1 Platform-Dependent Macros. </li>
2525bd8deadSopenharmony_ci<li> <tt><a href="api/GLES/egl.h"> &lt;GLES/egl.h&gt; </a></tt>
2535bd8deadSopenharmony_ci     EGL Legacy Header File for OpenGL ES 1.1 (August 6, 2008) - requires
2545bd8deadSopenharmony_ci     <a href="https://www.khronos.org/registry/EGL/api/EGL/egl.h">
2555bd8deadSopenharmony_ci     <tt>&lt;EGL/egl.h&gt;</tt></a> from the
2565bd8deadSopenharmony_ci     <a href="http://www.khronos.org/registry/EGL/"> EGL Registry </a>.
2575bd8deadSopenharmony_ci     </li>
2585bd8deadSopenharmony_ci</ul>
2595bd8deadSopenharmony_ci
2605bd8deadSopenharmony_ci<p> <a name="headerskhr"></a> <b> Khronos Shared Platform Header
2615bd8deadSopenharmony_ci    (<tt>&lt;KHR/khrplatform.h&gt;</tt>) </b> </p>
2625bd8deadSopenharmony_ci
2635bd8deadSopenharmony_ci<ul>
2645bd8deadSopenharmony_ci<li> The OpenGL ES 3.0, 2.0, and 1.1 headers all depend on the shared
2655bd8deadSopenharmony_ci     <a href="https://www.khronos.org/registry/EGL/api/KHR/khrplatform.h">
2665bd8deadSopenharmony_ci     <tt>&lt;KHR/khrplatform.h&gt;</tt></a> header from the
2675bd8deadSopenharmony_ci     <a href="http://www.khronos.org/registry/EGL/"> EGL Registry </a>.
2685bd8deadSopenharmony_ci</ul>
2695bd8deadSopenharmony_ci
2705bd8deadSopenharmony_ci<hr>
2715bd8deadSopenharmony_ci
2725bd8deadSopenharmony_ci<h2> <a name="otherextspecs"></a>
2735bd8deadSopenharmony_ci     Extension Specifications by number</h2>
2745bd8deadSopenharmony_ci
2755bd8deadSopenharmony_ci<?php include("extensions/esext.php"); ?>
2765bd8deadSopenharmony_ci
2775bd8deadSopenharmony_ci<?php include_once("../../assets/static_pages/khr_page_bottom.php"); ?>
2785bd8deadSopenharmony_ci</body>
2795bd8deadSopenharmony_ci</html>
280