<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>199060</bug_id>
          
          <creation_ts>2019-06-19 23:26:18 -0700</creation_ts>
          <short_desc>[GTK] Add ANGLE backend to GTK port</short_desc>
          <delta_ts>2019-11-27 00:25:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>201748</dependson>
    
    <dependson>204446</dependson>
          <blocked>198948</blocked>
    
    <blocked>202508</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="ChangSeok Oh">changseok</reporter>
          <assigned_to name="ChangSeok Oh">changseok</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1546449</commentid>
    <comment_count>0</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-06-19 23:26:18 -0700</bug_when>
    <thetext>WebKit is switching WebGL backend to ANGLE from its raw opengl calls in 198948. GTK port would also adopt ANGLE as one of opengl backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547040</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-06-21 16:55:28 -0700</bug_when>
    <thetext>Exciting that the GTK port will use ANGLE too!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570472</commentid>
    <comment_count>2</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-09-12 19:22:58 -0700</bug_when>
    <thetext>I made a patch that renders webgl layers with ANGLE on top of GLX texture mapper and would start send it to upstream. The outline is here: https://github.com/shivamidow/webkit/tree/angle-webgl
Sharing webgl textures beween GLX and ANGLE egl contexts seems not feasible so I chose a readpixel-writetexture approach for now. (i.e., webgl scene -- (read pixels) --&gt; texture for texture mapper)

Rather than trying to land the patch once, I will divide the work into multiple steps as follows.
1. Remove GraphicsContext3D dependencies from texture mapper and coordinate graphics code. It will be used by WebGL code only.
2. Land ANGLE support for WebGL
3. Make other rendering backends (e.g., opengl es) adopt ANGLE webgl.
4. Replace the readpixel part with texture sharing.
5. Bug fix and other improvement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572266</commentid>
    <comment_count>3</comment_count>
      <attachid>379104</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-09-18 22:43:24 -0700</bug_when>
    <thetext>Created attachment 379104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572267</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-09-18 22:44:08 -0700</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See http://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572268</commentid>
    <comment_count>5</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-09-18 22:45:26 -0700</bug_when>
    <thetext>(In reply to ChangSeok Oh from comment #3)
&gt; Created attachment 379104 [details]
&gt; Patch

This is a build test for EWS, not a final patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572296</commentid>
    <comment_count>6</comment_count>
      <attachid>379114</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-09-19 01:45:24 -0700</bug_when>
    <thetext>Created attachment 379114
Patch

No review required yet. EWS test purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572304</commentid>
    <comment_count>7</comment_count>
      <attachid>379115</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-09-19 03:08:07 -0700</bug_when>
    <thetext>Created attachment 379115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572306</commentid>
    <comment_count>8</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-09-19 03:13:40 -0700</bug_when>
    <thetext>The Win-cairo bot keeps complaining as follow but it looks not related to this change.

&gt; patching file Source/ThirdParty/ANGLE/PlatformGTK.cmake
&gt; patch: **** Can&apos;t create file C:\Users\ContainerAdministrator\AppData\Local\Temp/ppz13552 : File exists
&gt; patching file Source/ThirdParty/ANGLE/include/CMakeLists.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574571</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-26 12:00:33 -0700</bug_when>
    <thetext>This seems ok.  Zan, do you have an opinion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575165</commentid>
    <comment_count>10</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-09-29 12:35:09 -0700</bug_when>
    <thetext>This approach of download-reupload is the only one we can take up now, but we&apos;ll have to modify ANGLE possibly a lot in order to get everything in place to work without this bypass but instead use textures between ANGLE and non-ANGLE GL paths.

So this is a good first approach. I&apos;ll review it tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586978</commentid>
    <comment_count>11</comment_count>
      <attachid>379115</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-11-04 07:37:48 -0800</bug_when>
    <thetext>Comment on attachment 379115
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=379115&amp;action=review

&gt; Source/WebCore/platform/graphics/angle/GLContextANGLE.h:33
&gt; +class GLContextANGLE final : public GLContext {

I think this class can be avoided altogether. Instead of it, I would recommend packing all this logic into a new Nicosia::GC3DANGLELayer class. This would give us an easier time integrating with ANGLE, without having to work through the GLContext interface.

&gt; Source/WebCore/platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp:266
&gt; +#if !USE(ANGLE)

I don&apos;t think this guard is needed -- this is already non-USE(ANGLE) code.

&gt; Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:86
&gt; -#if USE(OPENGL_ES)
&gt; +#if USE(ANGLE)
&gt; +        std::unique_ptr&lt;Extensions3DANGLE&gt; glExtensions = makeUnique&lt;Extensions3DANGLE&gt;(nullptr, GLContext::current()-&gt;version() &gt;= 320);
&gt; +#elif USE(OPENGL_ES)

This change is fine on its own, but this check should be done without any usage of the Extensions3D* classes. This can be fixed after the fact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589070</commentid>
    <comment_count>12</comment_count>
      <attachid>383236</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-11-09 21:10:21 -0800</bug_when>
    <thetext>Created attachment 383236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589071</commentid>
    <comment_count>13</comment_count>
      <attachid>379115</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-11-09 21:22:51 -0800</bug_when>
    <thetext>Comment on attachment 379115
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=379115&amp;action=review

&gt;&gt; Source/WebCore/platform/graphics/angle/GLContextANGLE.h:33
&gt;&gt; +class GLContextANGLE final : public GLContext {
&gt; 
&gt; I think this class can be avoided altogether. Instead of it, I would recommend packing all this logic into a new Nicosia::GC3DANGLELayer class. This would give us an easier time integrating with ANGLE, without having to work through the GLContext interface.

I am not sure if you meant just peeling off this class into NicosiaGC3DANLGELayer. So, I just pack GLContextANGLE into NicosiaGC3DANLGELayer::ANGLEContext for now.

&gt;&gt; Source/WebCore/platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp:266
&gt;&gt; +#if !USE(ANGLE)
&gt; 
&gt; I don&apos;t think this guard is needed -- this is already non-USE(ANGLE) code.

You&apos;re right. Removed.

&gt;&gt; Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:86
&gt;&gt; +#elif USE(OPENGL_ES)
&gt; 
&gt; This change is fine on its own, but this check should be done without any usage of the Extensions3D* classes. This can be fixed after the fact.

If it is ok, I want to address this in the following changes since I already made a fix there. https://github.com/shivamidow/webkit/commit/c9981306834c745ed391608be30357794162883d</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589085</commentid>
    <comment_count>14</comment_count>
      <attachid>383240</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-11-10 00:32:29 -0800</bug_when>
    <thetext>Created attachment 383240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589086</commentid>
    <comment_count>15</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-11-10 00:33:28 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589148</commentid>
    <comment_count>16</comment_count>
      <attachid>383240</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-11 01:41:35 -0800</bug_when>
    <thetext>Comment on attachment 383240
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=383240&amp;action=review

&gt; Source/WebCore/platform/graphics/angle/GraphicsContext3DANGLE.cpp:203
&gt; +#if USE(COORDINATED_GRAPHICS)

USE(COORDINATED_GRAPHICS) is always true for GTK port, so we can avoid it here

&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.cpp:88
&gt; +    EGLDisplay display = EGL_GetDisplay(EGL_DEFAULT_DISPLAY);

Why the default display? Can&apos;t you use the platformDisplay.eglDisplay() instead?

&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.cpp:149
&gt; +    EGLSurface surface = EGL_CreatePbufferSurface(display, config, pbufferAttributes);

Isn&apos;t it possible to use a surfaceless context? or do we really need a surface here?

&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h:54
&gt; +    class ANGLEContext : public WebCore::GLContext {

It&apos;s weird to have this here, why not adding an angle directory in Source/WebCore/platform/graphics and add the new context there following EGL and GLX contexts? Shouldn&apos;t this inherit from EGLContext instead?

&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h:63
&gt; +        enum EGLSurfaceType { PbufferSurface, WindowSurface, PixmapSurface, Surfaceless };

Only PbufferSurface is supported, no?

&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h:70
&gt; +        bool canRenderToDefaultFramebuffer() override { return m_type == WindowSurface; };

Is this really possible?

&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DLayer.h:46
&gt; +    GC3DLayer(WebCore::GraphicsContext3D&amp;);

explicit

&gt; Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp:172
&gt; +void BitmapTextureGL::setPendingContents(RefPtr&lt;Image&gt; image)

RefPtr&lt;Image&gt;&amp;&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589438</commentid>
    <comment_count>17</comment_count>
      <attachid>383330</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-11-11 19:03:30 -0800</bug_when>
    <thetext>Created attachment 383330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589439</commentid>
    <comment_count>18</comment_count>
      <attachid>383240</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-11-11 19:04:03 -0800</bug_when>
    <thetext>Comment on attachment 383240
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=383240&amp;action=review

&gt;&gt; Source/WebCore/platform/graphics/angle/GraphicsContext3DANGLE.cpp:203
&gt;&gt; +#if USE(COORDINATED_GRAPHICS)
&gt; 
&gt; USE(COORDINATED_GRAPHICS) is always true for GTK port, so we can avoid it here

Removed.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.cpp:88
&gt;&gt; +    EGLDisplay display = EGL_GetDisplay(EGL_DEFAULT_DISPLAY);
&gt; 
&gt; Why the default display? Can&apos;t you use the platformDisplay.eglDisplay() instead?

Because platformDisplay.eglDisplay() is not compatible to ANGLE. platformDisplay.eglDisplay returns EGLDisplay from Mesa so a crash happens in EGL_Initialize if we use it below. It looks same but Mesa and ANGLE implement different data structures for EGL/GL primitive data types. Basically, what we want to do is to isolate ANGLE use from Mesa GL calls. That is why we keep ANGLE gl headers in a different path to Mesa headers, and use internal ANGLE egl/gl calls instead of prototypes. Otherwise, many conflicts occurs in both compile time and runtime.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.cpp:149
&gt;&gt; +    EGLSurface surface = EGL_CreatePbufferSurface(display, config, pbufferAttributes);
&gt; 
&gt; Isn&apos;t it possible to use a surfaceless context? or do we really need a surface here?

Creating pbuffer here is a little bit experimental. Yeah, I just confirmed surfaceless works here.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h:54
&gt;&gt; +    class ANGLEContext : public WebCore::GLContext {
&gt; 
&gt; It&apos;s weird to have this here, why not adding an angle directory in Source/WebCore/platform/graphics and add the new context there following EGL and GLX contexts? Shouldn&apos;t this inherit from EGLContext instead?

Main reason is to separate ANGLE calls from the rest of world calling gl calls (mesa and others). I thought GLContext::makeContextCurrent() should be called in ANGLEContext::makeContextCurrent but it seems not. We can remove the GLContext inheritance then.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h:63
&gt;&gt; +        enum EGLSurfaceType { PbufferSurface, WindowSurface, PixmapSurface, Surfaceless };
&gt; 
&gt; Only PbufferSurface is supported, no?

Surfaceless only. We can simply remove EGLSurfaceType if ANGLEContext does not inherit GLContext.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h:70
&gt;&gt; +        bool canRenderToDefaultFramebuffer() override { return m_type == WindowSurface; };
&gt; 
&gt; Is this really possible?

No. Removed.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DLayer.h:46
&gt;&gt; +    GC3DLayer(WebCore::GraphicsContext3D&amp;);
&gt; 
&gt; explicit

Fixed.

&gt;&gt; Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp:172
&gt;&gt; +void BitmapTextureGL::setPendingContents(RefPtr&lt;Image&gt; image)
&gt; 
&gt; RefPtr&lt;Image&gt;&amp;&amp;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591956</commentid>
    <comment_count>19</comment_count>
      <attachid>383330</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-11-20 04:26:18 -0800</bug_when>
    <thetext>Comment on attachment 383330
Patch

Looks OK. Thanks for addressing the feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592040</commentid>
    <comment_count>20</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2019-11-20 10:05:45 -0800</bug_when>
    <thetext>Anyone cq+, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592130</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-20 14:16:54 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 383330:

imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3.html bug 203609 (author: cdumez@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592131</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-20 14:16:56 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 383330:

The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592191</commentid>
    <comment_count>23</comment_count>
      <attachid>383330</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-20 15:59:20 -0800</bug_when>
    <thetext>Comment on attachment 383330
Patch

Clearing flags on attachment: 383330

Committed r252717: &lt;https://trac.webkit.org/changeset/252717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592192</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-20 15:59:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592194</commentid>
    <comment_count>25</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-20 16:00:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/57376341&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379104</attachid>
            <date>2019-09-18 22:43:24 -0700</date>
            <delta_ts>2019-09-19 01:45:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199060-20190919014324.patch</filename>
            <type>text/plain</type>
            <size>54219</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNDJkY2MzMjg3NTIxMzU0MjdmOGE5NjI2ZmI1MzU4YmU2NTU1ZWE2MS4uODg5NmNjMGIxMGRm
Yzg0OWIzNTVjODM0ODYyMmQxNjUyNDY0N2YzMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTE4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tA
d2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTEVTdjIuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1H
VEsuY21ha2U6CisgICAgICAgICogYWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0aHMuc2g6CisgICAg
ICAgICogaW5jbHVkZS9DTWFrZUxpc3RzLnR4dDoKKwogMjAxOS0wOS0xNiAgSmFtZXMgRGFycGlu
aWFuICA8amRhcnBpbmlhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGNvbW1pdC5o
IGNvcHlpbmcgYnVpbGQgc3RlcHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMjk2MDIyNGYxMTg3ZmMwNzVkYTBjYjA2NjI1ZWFl
NDM0ZTA2NTlmNi4uMzljYjFhMzRkM2UyODJjZjlkZWEzMzU5MmUxNzJhYmIzYTY2ODI2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAxOS0wOS0xOCAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gQWRkIEFOR0xFIGJhY2tlbmQgdG8gR1RLIHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTA2MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6CisKIDIwMTktMDktMTcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZSBjb25zdGV4cHIgaW5zdGVhZCBvZiBjb25zdCBpbiBzeW1ib2wgZGVmaW5p
dGlvbnMgdGhhdCBhcmUgb2J2aW91c2x5IGNvbnN0ZXhwci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTA4Nzc3
ODI3ODA5ZGUzYzIyNjE1MzM0YWQyNjFlMDY4YjA1NjE0Li5lYjA0Y2QyNDBmNTljMGY2YmVmNGIy
NDY1MTdkNWYyZTRhZDE4ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTktMDkt
MTggIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtd
IEFkZCBBTkdMRSBiYWNrZW5kIHRvIEdUSyBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gZnVuY3Rpb25hbGl0
eSBjaGFuZ2VkLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9y
bUdUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHQ6OmNyZWF0ZU9m
ZnNjcmVlbkNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aW5pdGlhbGl6ZU9wZW5HTFNoaW1zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9P
cGVuR0xTaGltcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxh
eS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR0xDb250ZXh0QU5HTEUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xFOjplcnJvclN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRBTkdMRTo6bGFzdEVycm9yU3RyaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xFOjpjcmVhdGVDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xFOjpHTENvbnRleHRBTkdMRSk6CisgICAgICAgIChX
ZWJDb3JlOjpHTENvbnRleHRBTkdMRTo6fkdMQ29udGV4dEFOR0xFKToKKyAgICAgICAgKFdlYkNv
cmU6OkdMQ29udGV4dEFOR0xFOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6R0xDb250ZXh0QU5HTEU6OnN3YXBCdWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29u
dGV4dEFOR0xFOjp3YWl0TmF0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xF
OjpjYW5SZW5kZXJUb0RlZmF1bHRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHTENv
bnRleHRBTkdMRTo6ZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
TENvbnRleHRBTkdMRTo6c3dhcEludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4
dEFOR0xFOjpjYWlyb0RldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRBTkdMRTo6
cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HTENv
bnRleHRBTkdMRS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHQzREFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
dGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwOgorICAgICAgICAoTmljb3NpYTo6R0MzRExheWVy
OjpHQzNETGF5ZXIpOgorICAgICAgICAoTmljb3NpYTo6R0MzRExheWVyOjpzd2FwQnVmZmVyc0lm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVy
ZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6c2V0UGVuZGluZ0Nv
bnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6dXBkYXRlUGVuZGlu
Z0NvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4
dHVyZUdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29u
dGV4dDNEVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpHcmFw
aGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6fkdy
YXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5OjpwdXNoTmV4dEJ1ZmZlcik6CisKIDIwMTktMDktMTcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnQgY2hhbmdlIHRoYXQg
QWxleCBtaXN0YWtlbmx5IGNvbW1pdHRlZCBhdCB0aGUgc2FtZSB0aW1lIGFzIHIyNTAwMDYgYW5k
IGJyb2tlIHRoZSBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmUyYjg1NTdiNDc5Yjk2YTY5Y2NkYzRkMDJm
ODA4ZGNiZTRhNjk5Ni4uNTA2OTEyY2QyNjhhMGVhZGY4MWQ0Yjg2NDA0YzMyYzBiZTdkMGQyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wOS0xOCAgQ2hhbmdTZW9rIE9oICA8Y2hh
bmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gQWRkIEFOR0xFIGJhY2tlbmQgdG8g
R1RLIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5OTA2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OmNoZWNrUmVxdWly
ZW1lbnRzKToKKwogMjAxOS0wOS0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBXaW5DYWlybyBidWlsZCBmaXggZm9sbG93aW5n
IHIyNDk5ODUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NNYWtlTGlzdHMudHh0CmluZGV4IGFiNjkw
MmE5NWQxMzAxODQ4NjQyODc3ZmRhMGIxOTkxYjkyZWNlNDguLjQzZmRkZjg2ZTJlNWIwY2E2ZjMw
NDIxNTFhNGM4ZjI5YTkxMWY5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NNYWtlTGlzdHMu
dHh0CkBAIC0xMzYsNiArMTM2LDI3IEBAIGVsc2UgKCkKICAgICApCiBlbmRpZiAoKQogCitpZiAo
VVNFX0FOR0xFX1dFQkdMKQorICAgIFdFQktJVF9DT1BZX0ZJTEVTKExpYkdMRVN2MkVudHJ5UG9p
bnRzSGVhZGVycworICAgICAgICBERVNUSU5BVElPTiAke0FOR0xFX0ZSQU1FV09SS19IRUFERVJT
X0RJUn0vQU5HTEUKKyAgICAgICAgRklMRVMgJHtsaWJnbGVzdjJfZW50cnlfcG9pbnRzX2hlYWRl
cnN9CisgICAgICAgIEZMQVRURU5FRAorICAgICkKKworICAgIGFkZF9jdXN0b21fY29tbWFuZCgK
KyAgICAgICAgT1VUUFVUICR7QU5HTEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9BTkdMRS9hbmds
ZS50aW1lc3RhbXAKKyAgICAgICAgREVQRU5EUyBMaWJHTEVTdjJFbnRyeVBvaW50c0hlYWRlcnMg
QU5HTEVXZWJHTEhlYWRlcnMKKyAgICAgICAgQ09NTUFORCBCVUlMVF9QUk9EVUNUU19ESVI9JHtB
TkdMRV9GUkFNRVdPUktfSEVBREVSU19ESVJ9CisgICAgICAgICAgICBQVUJMSUNfSEVBREVSU19G
T0xERVJfUEFUSD1BTkdMRQorICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L2FkanVzdC1hbmdsZS1pbmNsdWRlLXBhdGhzLnNoCisgICAgICAgIFZFUkJBVElNCisgICAgKQor
ICAgIGFkZF9jdXN0b21fdGFyZ2V0KEFOR0xFLXdlYmdsLWhlYWRlcnMKKyAgICAgICAgREVQRU5E
UyAke0FOR0xFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vQU5HTEUvYW5nbGUudGltZXN0YW1wCisg
ICAgKQorICAgIGFkZF9kZXBlbmRlbmNpZXMoQU5HTEVGcmFtZXdvcmsgQU5HTEUtd2ViZ2wtaGVh
ZGVycykKK2VuZGlmICgpCisKIGlmIChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcpCiAgICAgV0VC
S0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKEFOR0xFIC1Xbm8tY2FzdC1hbGlnbgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25vLXN1Z2dlc3QtYXR0cmlidXRlPWZvcm1h
dApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvR0xFU3YyLmNtYWtlIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvR0xFU3YyLmNtYWtlCmluZGV4IDQyMWRlMzQzYmFmM2FhOGUy
YTljMDU3MDM5ZGRjNDc5MzFiNWU0OWUuLmQ4MzZiODRmM2Y1ZTZmYTdmZmNjN2VmNDM4ZGQxNTQw
YjUwZGE0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0dMRVN2Mi5jbWFr
ZQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9HTEVTdjIuY21ha2UKQEAgLTEwOTUsNiAr
MTA5NSwxMyBAQCBzZXQobGliZ2xlc3YyX3NvdXJjZXMKICAgICBzcmMvbGliR0xFU3YyL3Jlc291
cmNlLmgKICkKIAorc2V0KGxpYmdsZXN2Ml9lbnRyeV9wb2ludHNfaGVhZGVycworICAgIHNyYy9s
aWJHTEVTdjIvZW50cnlfcG9pbnRzX2VnbC5oCisgICAgc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2lu
dHNfZ2xlc18yXzBfYXV0b2dlbi5oCisgICAgc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2ludHNfZ2xl
c18zXzBfYXV0b2dlbi5oCisgICAgc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2ludHNfZ2xlc19leHRf
YXV0b2dlbi5oCispCisKIHNldChsaWJnbGVzdjFfY21fc291cmNlcwogICAgIHNyYy9saWJHTEVT
djFfQ00vbGliR0xFU3YxX0NNLmNwcAogICAgIHNyYy9saWJHTEVTdjFfQ00vbGliR0xFU3YxX0NN
LmRlZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvUGxhdGZvcm1HVEsuY21h
a2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA3NGYz
NWUyOTIzNDY3MTNkNTUwZTA0NDE2MDIxMGMyODE4NGEyNThiLi5kNGQ5OGNmN2U3Y2Y2YjQyYWQ5
NjM0MjkzYjVmYTliNmU4ZTEyNGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9QbGF0Zm9y
bUdUSy5jbWFrZQpAQCAtMSwyICsxLDI4IEBACiAjIEVuYWJsZSBHTFNMIGNvbXBpbGVyIG91dHB1
dC4KIGxpc3QoQVBQRU5EIEFOR0xFX0RFRklOSVRJT05TIEFOR0xFX0VOQUJMRV9HTFNMKQorCitp
ZiAoVVNFX0FOR0xFX0VHTCkKKyAgICBsaXN0KEFQUEVORCBBTkdMRV9TT1VSQ0VTCisgICAgICAg
ICR7YW5nbGVfc3lzdGVtX3V0aWxzX3NvdXJjZXNfbGludXh9CisgICAgICAgICR7YW5nbGVfc3lz
dGVtX3V0aWxzX3NvdXJjZXNfcG9zaXh9CisgICAgICAgICR7bGliYW5nbGVfZ2xfc291cmNlc30K
KyAgICAgICAgJHtsaWJhbmdsZV9nbF9nbHhfc291cmNlc30KKyAgICApCisKKyAgICBsaXN0KEFQ
UEVORCBBTkdMRV9ERUZJTklUSU9OUworICAgICAgICBBTkdMRV9FTkFCTEVfREVCVUdfVFJBQ0UK
KyAgICAgICAgQU5HTEVfRU5BQkxFX0RFQlVHX0FOTk9UQVRJT05TCisgICAgICAgIEFOR0xFX0VO
QUJMRV9PUEVOR0wKKyAgICAgICAgQU5HTEVfVVNFX1gxMQorICAgICkKKworICAgIGxpc3QoQVBQ
RU5EIEFOR0xFR0xFU3YyX0xJQlJBUklFUworICAgICAgICBkbAorICAgICAgICBwdGhyZWFkCisg
ICAgICAgIFgxMQorICAgICkKKworICAgIGlmIChVU0VfR0xYKQorICAgICAgICBzdHJpbmcoUkVQ
TEFDRSBzcmMvbGliR0xFU3YyL2xpYkdMRVN2Ml9hdXRvZ2VuLmNwcCAiIiBsaWJnbGVzdjJfc291
cmNlcyAiJHtsaWJnbGVzdjJfc291cmNlc30iKQorICAgIGVuZGlmICgpCitlbmRpZiAoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvYWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0
aHMuc2ggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9hZGp1c3QtYW5nbGUtaW5jbHVkZS1wYXRo
cy5zaAppbmRleCBmYWQ5YmEwODc5ODI2Zjg4NmQyNmM4NmVkMGY4YjYyYzAxOTkxOGJjLi4xN2Zh
N2ZlOTQ5Zjk4MzM5MzEzNWJiNDYyZmM5NTBmYjljODY4YmY1IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9hZGp1c3QtYW5nbGUtaW5jbHVkZS1wYXRocy5zaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9hZGp1c3QtYW5nbGUtaW5jbHVkZS1wYXRocy5zaApAQCAtMjcs
NiArMjcsMTIgQEAgZWxzZQogICAgIG91dHB1dF9kaXI9JEJVSUxUX1BST0RVQ1RTX0RJUi8kUFVC
TElDX0hFQURFUlNfRk9MREVSX1BBVEgKIGZpCiAKK2lmIFsgJCh1bmFtZSkgPT0gIkxpbnV4IiBd
OyB0aGVuCisgICAgaW5wbGFjZV9vcHQ9Ii1pIgorZWxzZQorICAgIGlucGxhY2Vfb3B0PSItaSAn
JyIKK2ZpCisKIGZvciBpIGluICRvdXRwdXRfZGlyLyouaCA7IGRvCiAgICAgaWYgWyAhIC1mICRv
dXRwdXRfZGlyL2FuZ2xlLnRpbWVzdGFtcCBdIHx8IFsgJGkgLW50ICRvdXRwdXRfZGlyL2FuZ2xl
LnRpbWVzdGFtcCBdIDsgdGhlbgogICAgICAgICBzZWQgLWUgJwpAQCAtMzcsNyArNDMsNyBAQCBz
L14jaW5jbHVkZSBbPCJdR0xFUzNcL1woLipcKVs+Il0vI2luY2x1ZGUgPEFOR0xFXC9cMT4vCiBz
L14jaW5jbHVkZSBbPCJdS0hSXC9cKC4qXClbPiJdLyNpbmNsdWRlIDxBTkdMRVwvXDE+Lwogcy9e
I2luY2x1ZGUgWzwiXWV4cG9ydC5oWz4iXS8jaW5jbHVkZSA8QU5HTEVcL2V4cG9ydC5oPi8KIHMv
XiNpbmNsdWRlICJcKGVnbGV4dF9hbmdsZVx8Z2wyZXh0X2FuZ2xlXHxTaGFkZXJWYXJzXCkuaCIv
I2luY2x1ZGUgPEFOR0xFXC9cMS5oPi8KLScgLWkgIiIgJGkKKycgJGlucGxhY2Vfb3B0ICRpCiAg
ICAgICAgIGVjaG8gUG9zdHByb2Nlc3NlZCBBTkdMRSBoZWFkZXIzICRpCiAgICAgZmkKIGRvbmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0CmluZGV4
IGY4NGVlYzc1MWFiY2E4OWQ5ZWMyNDdjZjExYjk0MThjOTlmMTY0YjEuLmZjMDAyOTFhNDM3N2M3
YTZmYmFkY2NkNjE3ZWY0ZTZkZGU4MjQ4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL2luY2x1ZGUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9DTWFrZUxpc3RzLnR4dApAQCAtNDksNiArNDksMjMgQEAgaWYgKFVTRV9BTkdM
RV9FR0wpCiAgICAgKQogZW5kaWYgKCkKIAoraWYgKFVTRV9BTkdMRV9XRUJHTCkKKyAgICBzZXQo
QU5HTEVfV0VCR0xfSEVBREVSUworICAgICAgICBleHBvcnQuaAorICAgICAgICAke2tocl9oZWFk
ZXJzfQorICAgICAgICAke2VnbF9oZWFkZXJzfQorICAgICAgICAke2dsZXNfaGVhZGVyc30KKyAg
ICAgICAgJHtnbGVzMl9oZWFkZXJzfQorICAgICAgICAke2dsZXMzX2hlYWRlcnN9CisgICAgKQor
CisgICAgV0VCS0lUX0NPUFlfRklMRVMoQU5HTEVXZWJHTEhlYWRlcnMKKyAgICAgICAgREVTVElO
QVRJT04gJHtBTkdMRV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L0FOR0xFCisgICAgICAgIEZJTEVT
ICR7QU5HTEVfV0VCR0xfSEVBREVSU30KKyAgICAgICAgRkxBVFRFTkVECisgICAgKQorZW5kaWYg
KCkKKwogIyBDb2NvYSBleHBlY3RzIGhlYWRlcnMgaW4gYW4gQU5HTEUgZGlyZWN0b3J5CiBXRUJL
SVRfQ09QWV9GSUxFUyhHTFNMQU5HSGVhZGVycwogICAgIERFU1RJTkFUSU9OICR7QU5HTEVfRlJB
TUVXT1JLX0hFQURFUlNfRElSfS9BTkdMRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggNTVkYTIzNmY4Y2MwZjZj
ZjM4YmZmZDRlODljMjAxOGQxMGZjYjVmZS4uMDIyYThiZTQyMWQwNzE0N2NkMjQxOTg5M2IxZmI5
ZThmNjk4NmMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTQwLDcgKzExNDAsNyBAQAogI2RlZmluZSBV
U0VfQU5HTEUgMAogI2VuZGlmCiAKLSNpZiAoVVNFX0FOR0xFICYmIChVU0VfT1BFTkdMIHx8IFVT
RV9PUEVOR0xfRVMgfHwgKGRlZmluZWQoVVNFX0VHTCkgJiYgVVNFX0VHTCkpKQorI2lmIChVU0Vf
QU5HTEUgJiYgKFVTRV9PUEVOR0wgfHwgVVNFX09QRU5HTF9FUyB8fCAoZGVmaW5lZChVU0VfRUdM
KSAmJiBVU0VfRUdMKSkpICYmICFVU0UoVEVYVFVSRV9NQVBQRVIpCiAjZXJyb3IgVVNFX0FOR0xF
IGlzIGluY29tcGF0aWJsZSB3aXRoIFVTRV9PUEVOR0wsIFVTRV9PUEVOR0xfRVMgYW5kIFVTRV9F
R0wKICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBmZDBiNTMzY2VkMjdmYmI1
NDc3N2YwMTkxZDgyYTM5MWU4YTk4MGQxLi5kYzEyOWM2MDE0N2RjODhmNmRhOTU5YTM5N2UzMzZi
OTE4MjJhNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExMTMsNiArMTExMyw4IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9X
aWR0aENhY2hlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9XaW5kUnVsZS5oCiAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zM0RBTkdMRS5oCisKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKIAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5k
ZXggMmYwZGE1Yjc2Y2U2YjUyN2JmZjU2NzdmYjlhOTAwYjUyNzEyNThlNC4uODI4ZjM5M2QyNWMy
YTg1Y2NmNTk3ZGVmYzI0OGY1Mjg4MzRhZmZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UK
QEAgLTM2LDYgKzM2LDEyIEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvZ3RrIgogKQogCitp
ZiAoVVNFX0FOR0xFX1dFQkdMKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNM
VURFX0RJUkVDVE9SSUVTCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZSIKKyAgICApCitlbmRpZiAoKQorCiBpZiAoVVNFX1dQRV9SRU5ERVJFUikKICAgICBs
aXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2xpYndwZSIKQEAgLTExOCwyMCArMTI0LDM4IEBAIGlm
IChVU0VfV1BFX1JFTkRFUkVSKQogICAgICkKIGVuZGlmICgpCiAKLWlmIChVU0VfT1BFTkdMX0VT
KQoraWYgKFVTRV9PUEVOR0wpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCi0gICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAKLSAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMu
Y3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAogICAgICkKIGVu
ZGlmICgpCiAKLWlmIChVU0VfT1BFTkdMKQoraWYgKFVTRV9BTkdMRV9XRUJHTCkKICAgICBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdM
U2hpbXMuY3BwCi0KLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTC5jcHAKLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNp
b25zM0RBTkdMRS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0M0RBTkdMRS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9y
YXJ5QU5HTEVTZXR0aW5nLmNwcAogICAgICkKK2Vsc2UgKCkKKyAgICBsaXN0KEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTENvbW1vbi5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvVGVtcG9yYXJ5T3BlbkdMU2V0dGluZy5jcHAKKyAgICApCisKKyAgICBpZiAoVVNFX09Q
RU5HTF9FUykKKyAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisgICAg
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xF
Uy5jcHAKKyAgICAgICAgKQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoVVNFX09QRU5HTCkKKyAg
ICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAorICAgICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAorICAgICAgICAp
CisgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChFTkFCTEVfV0FZTEFORF9UQVJHRVQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNHVEsudHh0CmluZGV4IDA0ZWJiZmMwMmIyZjk1MDliMDU3ODU4NjE3ZGM4NDE2MzM4
ZDBkMGMuLjQ4ODlkMWIxODFlMjUwNTc4OWYyZmY3ODIzMTIyNjdmMjc1MTczZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNHVEsudHh0CkBAIC02OSw2ICs2OSw4IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAgQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwIEBuby11bmlmeQog
CitwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HTENvbnRleHRBTkdMRS5jcHAgQG5vLXVuaWZ5CisK
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAg
QG5vLXVuaWZ5CiAKIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwIEBuby11
bmlmeQpAQCAtODksMTAgKzkxLDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdl
R1N0cmVhbWVyQ2Fpcm8uY3BwCiAKIHBsYXRmb3JtL2dyYXBoaWNzL2xpYndwZS9QbGF0Zm9ybURp
c3BsYXlMaWJXUEUuY3BwCiAKLXBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0xDb21tb24uY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0xDb21tb24uY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9yYXJ5T3Bl
bkdMU2V0dGluZy5jcHAKLQogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0
aWNhbERhdGEuY3BwCiAKIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5
V2F5bGFuZC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0FOR0xFV2ViS2l0QnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9B
TkdMRVdlYktpdEJyaWRnZS5oCmluZGV4IGQ0YTYwYmEyM2M2ZGFkYzNlYjUxZTAzYzYwOGJlNWFi
OGJkYzZjMWEuLjMyOWJhOTEyMjY4MDNlYjBhYWQ2NGIxZjk0MGU2YjM5NGIwYWQyMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlk
Z2UuaApAQCAtNTQsNiArNTQsOSBAQAogI2VsaWYgVVNFKExJQkVQT1hZKQogLy8gPGVwb3h5L2ds
Lmg+IGFscmVhZHkgaW5jbHVkZWQgYWJvdmUuCiAKKyNlbGlmIFVTRShBTkdMRSkKKyNpbmNsdWRl
IDxBTkdMRS9nbDIuaD4KKwogI2VsaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxHTEVTMi9n
bDIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5j
cHAKaW5kZXggMWU0Njc4M2EwN2ZhZDgzNjI2Zjc1MjA3NDZkYzJmZGQ0ZWFlOGMwZC4uMWY1NDVm
ODk2YTU1MDIyNzkyM2I1NjA5Yzk3Nzg5YTFjM2MxZmQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0zNyw2ICszNywxMCBAQAogI2lu
Y2x1ZGUgIk9wZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAorI2lmIFVTRShBTkdMRSkKKyNpbmNsdWRl
ICJHTENvbnRleHRBTkdMRS5oIgorI2VuZGlmCisKIHVzaW5nIFdURjo6VGhyZWFkU3BlY2lmaWM7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMywxMSArMTA3LDIwIEBAIHN0ZDo6dW5pcXVl
X3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyhHTE5hdGl2
ZVdpbmRvd1R5cGUKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEdM
Q29udGV4dD4gR0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KFBsYXRmb3JtRGlzcGxh
eSogcGxhdGZvcm1EaXNwbGF5KQorc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4gR0xDb250ZXh0
OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KFBsYXRmb3JtRGlzcGxheSogcGxhdGZvcm1EaXNwbGF5
LCBib29sIHVzZXNBTkdMRSkKIHsKLSAgICBpZiAoIWluaXRpYWxpemVPcGVuR0xTaGltc0lmTmVl
ZGVkKCkpCisgICAgaWYgKCF1c2VzQU5HTEUgJiYgIWluaXRpYWxpemVPcGVuR0xTaGltc0lmTmVl
ZGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCisjaWYgVVNFKEFOR0xFKQorICAgIGlm
ICh1c2VzQU5HTEUpIHsKKyAgICAgICAgUGxhdGZvcm1EaXNwbGF5JiBkaXNwbGF5ID0gcGxhdGZv
cm1EaXNwbGF5ID8gKnBsYXRmb3JtRGlzcGxheSA6IFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlz
cGxheSgpOworICAgICAgICByZXR1cm4gR0xDb250ZXh0QU5HTEU6OmNyZWF0ZUNvbnRleHQoMCwg
ZGlzcGxheSk7CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odXNlc0FOR0xFKTsKKyNl
bmRpZgorCiAgICAgcmV0dXJuIGNyZWF0ZUNvbnRleHRGb3JXaW5kb3coMCwgcGxhdGZvcm1EaXNw
bGF5ID8gcGxhdGZvcm1EaXNwbGF5IDogJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xD
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApp
bmRleCBiNGEyNjcwYjI0YWE2Yzc3MGE2MjU5Mjk2ODMzMGMxZTc3ODQ2NDg2Li5iYTI2NzQ5MzA1
N2Q2NDVjNDk5YTljODhkMjg4MmFhOTM3ZjcyZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApAQCAtMjAsNyArMjAsNiBAQAogI2lmbmRlZiBHTENv
bnRleHRfaAogI2RlZmluZSBHTENvbnRleHRfaAogCi0jaW5jbHVkZSAiQU5HTEVXZWJLaXRCcmlk
Z2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5Lmgi
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC01MSw3ICs1MCw3IEBAIGNsYXNzIEdM
Q29udGV4dCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR0xDb250ZXh0KTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHQ+IGNyZWF0ZUNvbnRleHRGb3JXaW5kb3coR0xOYXRpdmVXaW5k
b3dUeXBlIHdpbmRvd0hhbmRsZSwgUGxhdGZvcm1EaXNwbGF5KiA9IG51bGxwdHIpOwotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBjcmVhdGVPZmZzY3JlZW5Db250ZXh0KFBs
YXRmb3JtRGlzcGxheSogPSBudWxscHRyKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdM
Q29udGV4dD4gY3JlYXRlT2Zmc2NyZWVuQ29udGV4dChQbGF0Zm9ybURpc3BsYXkqID0gbnVsbHB0
ciwgYm9vbCB1c2VzQU5HTEUgPSBmYWxzZSk7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxH
TENvbnRleHQ+IGNyZWF0ZVNoYXJpbmdDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYpOwogICAgIHN0
YXRpYyBHTENvbnRleHQqIGN1cnJlbnQoKTsKICAgICBzdGF0aWMgYm9vbCBpc0V4dGVuc2lvblN1
cHBvcnRlZChjb25zdCBjaGFyKiBleHRlbnNpb25MaXN0LCBjb25zdCBjaGFyKiBleHRlbnNpb24p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKaW5kZXggNjM3YmM3NGM3YmEzYjk2Yjk2MmMwOTNhY2RmMjIwM2FhYjk1NGI1Yy4u
MDQ5MDM2ZmQxYjllMjM2Y2RmMzYxYjA3MjJhNjdkYzk4ZDQ5OGM0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0x
MDEsMTIgKzEwMSwxMiBAQCBjb25zdCBQbGF0Zm9ybTNET2JqZWN0IE51bGxQbGF0Zm9ybTNET2Jq
ZWN0ID0gMDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRXh0ZW5zaW9uczNEOwotI2lm
ICFQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKKyNpZiBVU0UoQU5HTEUpCitjbGFz
cyBFeHRlbnNpb25zM0RBTkdMRTsKKyNlbGlmICFQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5H
TF9FUykKIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTEVTOwogI2VsaWYgVVNFKE9QRU5HTCkgfHwg
KFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKSkKIGNsYXNzIEV4dGVuc2lvbnMzRE9w
ZW5HTDsKLSNlbGlmIFVTRShBTkdMRSkKLWNsYXNzIEV4dGVuc2lvbnMzREFOR0xFOwogI2VuZGlm
CiBjbGFzcyBIb3N0V2luZG93OwogY2xhc3MgSW1hZ2U7CkBAIC0xNDU2LDcgKzE0NTYsMTAgQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFw
Rm9yU2hhZGVyczsKICNlbmRpZiAvLyAhVVNFKEFOR0xFKQogCi0jaWYgIVBMQVRGT1JNKENPQ09B
KSAmJiBVU0UoT1BFTkdMX0VTKQorI2lmIFVTRShBTkdMRSkKKyAgICBmcmllbmQgY2xhc3MgRXh0
ZW5zaW9uczNEQU5HTEU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzREFOR0xFPiBt
X2V4dGVuc2lvbnM7CisjZWxpZiAhUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpCiAg
ICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTEVTOwogICAgIGZyaWVuZCBjbGFzcyBF
eHRlbnNpb25zM0RPcGVuR0xDb21tb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMz
RE9wZW5HTEVTPiBtX2V4dGVuc2lvbnM7CkBAIC0xNDY0LDkgKzE0NjcsNiBAQCBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0w7CiAgICAgZnJpZW5kIGNsYXNzIEV4
dGVuc2lvbnMzRE9wZW5HTENvbW1vbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNE
T3BlbkdMPiBtX2V4dGVuc2lvbnM7Ci0jZWxpZiBVU0UoQU5HTEUpCi0gICAgZnJpZW5kIGNsYXNz
IEV4dGVuc2lvbnMzREFOR0xFOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RBTkdM
RT4gbV9leHRlbnNpb25zOwogI2VuZGlmCiAKICAgICBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0
ZXMgbV9hdHRyczsKQEAgLTE0OTIsNyArMTQ5Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xh
eWVyQ29tcG9zaXRlZCB7IGZhbHNlIH07CiAgICAgR0MzRHVpbnQgbV9pbnRlcm5hbENvbG9yRm9y
bWF0IHsgMCB9OwogCi0jaWYgVVNFKEFOR0xFKQorI2lmIFVTRShBTkdMRSkgJiYgUExBVEZPUk0o
Q09DT0EpCiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRFN1cmZhY2UgbV9wYnVmZmVyOwog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09w
ZW5HTFNoaW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNo
aW1zLmNwcAppbmRleCBkM2NmZDI3ZDU3MWUzN2U2ODc5OTY0NzI3MDI5NDQ5MWNmZDc1M2JkLi5m
Nzk3NmU2MWRkODUyNDZkMmY0ZTI3NjJjOGMxODdlMDk5ODA0ZGM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCkBAIC0xNjIsNiArMTYy
LDcgQEAgYm9vbCBpbml0aWFsaXplT3BlbkdMU2hpbXMoKQogICAgIEFTU0lHTl9GVU5DVElPTl9U
QUJMRV9FTlRSWShnbEdldFNoYWRlckluZm9Mb2csIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9GVU5D
VElPTl9UQUJMRV9FTlRSWShnbEdldFNoYWRlcml2LCBzdWNjZXNzKTsKICAgICBBU1NJR05fRlVO
Q1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTaGFkZXJTb3VyY2UsIHN1Y2Nlc3MpOworICAgIEFTU0lH
Tl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFN0cmluZywgc3VjY2Vzcyk7CiAgICAgLy8gZ2xH
ZXRTdHJpbmdpIGlzIG9ubHkgYXZhaWxhYmxlIG9uIE9wZW5HTCBvciBHTEVTIHZlcnNpb25zID49
IDMuMC4KICAgICAvLyBBZGQgaXQgd2l0aCBfRVhUIHNvIGl0IGRvZXNuJ3QgY2F1c2UgYW4gaW5p
dGlhbGl6YXRpb24gZmFpbHVyZSBvbiBsb3dlciB2ZXJzaW9ucy4KICAgICBBU1NJR05fRlVOQ1RJ
T05fVEFCTEVfRU5UUllfRVhUKGdsR2V0U3RyaW5naSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaAppbmRleCBkZTMyOTVkZjQwYjM4MjRhZGRmZDRh
NTQ4ZjNkNjE3MjBjZjEzNWI0Li40YzM1N2RkZTk4MWYxMzZmMDU4ZDg4MzcwNzhjNDEzMGQ2MGQ2
YTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xT
aGltcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1z
LmgKQEAgLTk4LDYgKzk4LDcgQEAgdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcml2VHlwZSkgKEdMZW51bSwgR0xlbnVtLCBHTGkKIHR5cGVkZWYgdm9p
ZCAoR0xBUElFTlRSWSAqZ2xHZXRTaGFkZXJJbmZvTG9nVHlwZSkgKEdMdWludCwgR0xzaXplaSwg
R0xzaXplaSosIGNoYXIqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xHZXRTaGFkZXJp
dlR5cGUpIChHTHVpbnQsIEdMZW51bSwgR0xpbnQqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRS
WSAqZ2xHZXRTaGFkZXJTb3VyY2VUeXBlKSAoR0x1aW50LCBHTHNpemVpLCBHTHNpemVpKiwgY2hh
ciopOwordHlwZWRlZiBjb25zdCBHTHVieXRlKiAoR0xBUElFTlRSWSAqZ2xHZXRTdHJpbmdUeXBl
KSAoR0xlbnVtKTsKIHR5cGVkZWYgY29uc3QgR0x1Ynl0ZSogKEdMQVBJRU5UUlkgKmdsR2V0U3Ry
aW5naVR5cGUpIChHTGVudW0sIEdMdWludCk7CiB0eXBlZGVmIEdMaW50IChHTEFQSUVOVFJZICpn
bEdldFVuaWZvcm1Mb2NhdGlvblR5cGUpIChHTHVpbnQsIGNvbnN0IGNoYXIqKTsKIHR5cGVkZWYg
dm9pZCAoR0xBUElFTlRSWSAqZ2xHZXRVbmlmb3JtZnZUeXBlKSAoR0x1aW50LCBHTGludCwgR0xm
bG9hdCopOwpAQCAtMjA1LDYgKzIwNiw3IEBAIHR5cGVkZWYgc3RydWN0IF9PcGVuR0xGdW5jdGlv
blRhYmxlIHsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFNoYWRlckluZm9Mb2cpOwog
ICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0U2hhZGVyaXYpOwogICAgIEZVTkNUSU9OX1RB
QkxFX0VOVFJZKGdsR2V0U2hhZGVyU291cmNlKTsKKyAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShn
bEdldFN0cmluZyk7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTdHJpbmdpKTsKICAg
ICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFVuaWZvcm1mdik7CiAgICAgRlVOQ1RJT05fVEFC
TEVfRU5UUlkoZ2xHZXRVbmlmb3JtaXYpOwpAQCAtMzMzLDYgKzMzNSw3IEBAIHR5cGVkZWYgc3Ry
dWN0IF9PcGVuR0xGdW5jdGlvblRhYmxlIHsKICNkZWZpbmUgZ2xHZXRTaGFkZXJJbmZvTG9nICAg
ICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2V0U2hhZGVySW5mb0xvZykK
ICNkZWZpbmUgZ2xHZXRTaGFkZXJpdiAgICAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dM
X0ZVTkNUSU9OKGdsR2V0U2hhZGVyaXYpCiAjZGVmaW5lIGdsR2V0U2hhZGVyU291cmNlICAgICAg
ICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFNoYWRlclNvdXJjZSkKKyNk
ZWZpbmUgZ2xHZXRTdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZV
TkNUSU9OKGdsR2V0U3RyaW5nKQogI2RlZmluZSBnbEdldFN0cmluZ2kgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xHZXRTdHJpbmdpKQogI2RlZmluZSBnbEdl
dFVuaWZvcm1mdiAgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xH
ZXRVbmlmb3JtZnYpCiAjZGVmaW5lIGdsR2V0VW5pZm9ybWl2ICAgICAgICAgICAgICAgICAgICAg
ICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFVuaWZvcm1pdikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmluZGV4IDAyOGJl
MWE4MDMyMjMzNmUyOGQwMDVmMWRkY2NkZjA5NDk5ZTg3N2YuLmQwNjM5N2FiMzAwYmUxNzJjM2Rl
Yzk2NWJiY2Q3MTgxMzQ4YTRkM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcApAQCAtNTIsNiArNTIsOSBAQAogCiAjaWYg
UExBVEZPUk0oR1RLKSAmJiBQTEFURk9STShYMTEpCiAjaW5jbHVkZSA8Z2RrL2dka3guaD4KKyNp
ZiBkZWZpbmVkKE5vbmUpCisjdW5kZWYgTm9uZQorI2VuZGlmCiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKEdUSykgJiYgUExBVEZPUk0oV0FZTEFORCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dMQ29udGV4dEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dMQ29udGV4dEFOR0xFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMzlkZDg1MGY0NDRlYWVmY2Y2YjEzNGQ5ODMyNTgxZWIxNzI1MDMyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR0xDb250ZXh0QU5H
TEUuY3BwCkBAIC0wLDAgKzEsMjM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxp
YSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkdMQ29udGV4dEFOR0xFLmgiCisKKyNpZiBVU0UoQU5HTEUpCisKKyNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKworI2RlZmluZSBFR0xfRUdMX1BST1RPVFlQRVMgMAor
Ly8gU2tpcCB0aGUgaW5jbHVzaW9uIG9mIEFOR0xFJ3MgZXhwbGljaXQgY29udGV4dCBlbnRyeSBw
b2ludHMgZm9yIG5vdy4KKyNkZWZpbmUgR0xfQU5HTEVfZXhwbGljaXRfY29udGV4dAorI2RlZmlu
ZSBHTF9BTkdMRV9leHBsaWNpdF9jb250ZXh0X2dsZXMxCit0eXBlZGVmIHZvaWQqIEdMZWdsQ29u
dGV4dDsKKyNpbmNsdWRlIDxBTkdMRS9lZ2wuaD4KKyNpbmNsdWRlIDxBTkdMRS9lZ2xleHQuaD4K
KyNpbmNsdWRlIDxBTkdMRS9lZ2xleHRfYW5nbGUuaD4KKyNpbmNsdWRlIDxBTkdMRS9lbnRyeV9w
b2ludHNfZWdsLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfMl8wX2F1dG9n
ZW4uaD4KKyNpbmNsdWRlIDxBTkdMRS9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5oPgor
I2luY2x1ZGUgPEFOR0xFL2dsMmV4dC5oPgorI2luY2x1ZGUgPEFOR0xFL2dsMmV4dF9hbmdsZS5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGNoYXIqIEdMQ29udGV4dEFOR0xFOjpl
cnJvclN0cmluZyhpbnQgc3RhdHVzQ29kZSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihp
bnQpID49IHNpemVvZihFR0xpbnQpLCAiRUdMaW50IG11c3Qgbm90IGJlIHdpZGVyIHRoYW4gaW50
Iik7CisgICAgc3dpdGNoIChzdGF0dXNDb2RlKSB7CisjZGVmaW5lIENBU0VfUkVUVVJOX1NUUklO
RyhuYW1lKSBjYXNlIG5hbWU6IHJldHVybiAjbmFtZQorICAgICAgICAvLyBodHRwczovL3d3dy5r
aHJvbm9zLm9yZy9yZWdpc3RyeS9FR0wvc2RrL2RvY3MvbWFuL2h0bWwvZWdsR2V0RXJyb3IueGh0
bWwKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9TVUNDRVNTKTsKKyAgICAgICAgQ0FT
RV9SRVRVUk5fU1RSSU5HKEVHTF9OT1RfSU5JVElBTElaRUQpOworICAgICAgICBDQVNFX1JFVFVS
Tl9TVFJJTkcoRUdMX0JBRF9BQ0NFU1MpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdM
X0JBRF9BTExPQyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0FUVFJJQlVU
RSk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0NPTlRFWFQpOworICAgICAg
ICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9DT05GSUcpOworICAgICAgICBDQVNFX1JFVFVS
Tl9TVFJJTkcoRUdMX0JBRF9DVVJSRU5UX1NVUkZBQ0UpOworICAgICAgICBDQVNFX1JFVFVSTl9T
VFJJTkcoRUdMX0JBRF9ESVNQTEFZKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9C
QURfU1VSRkFDRSk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX01BVENIKTsK
KyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfUEFSQU1FVEVSKTsKKyAgICAgICAg
Q0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfTkFUSVZFX1BJWE1BUCk7CisgICAgICAgIENBU0Vf
UkVUVVJOX1NUUklORyhFR0xfQkFEX05BVElWRV9XSU5ET1cpOworICAgICAgICBDQVNFX1JFVFVS
Tl9TVFJJTkcoRUdMX0NPTlRFWFRfTE9TVCk7CisjdW5kZWYgQ0FTRV9SRVRVUk5fU1RSSU5HCisg
ICAgZGVmYXVsdDogcmV0dXJuICJVbmtub3duIEVHTCBlcnJvciI7CisgICAgfQorfQorCitjb25z
dCBjaGFyKiBHTENvbnRleHRBTkdMRTo6bGFzdEVycm9yU3RyaW5nKCkKK3sKKyAgICByZXR1cm4g
ZXJyb3JTdHJpbmcoRUdMX0dldEVycm9yKCkpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250
ZXh0QU5HTEU+IEdMQ29udGV4dEFOR0xFOjpjcmVhdGVDb250ZXh0KEdMTmF0aXZlV2luZG93VHlw
ZSwgUGxhdGZvcm1EaXNwbGF5JiBwbGF0Zm9ybURpc3BsYXkpCit7CisgICAgRUdMRGlzcGxheSBk
aXNwbGF5ID0gRUdMX0dldERpc3BsYXkoRUdMX0RFRkFVTFRfRElTUExBWSk7CisgICAgaWYgKGRp
c3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
RUdMaW50IG1ham9yVmVyc2lvbiwgbWlub3JWZXJzaW9uOworICAgIGlmIChFR0xfSW5pdGlhbGl6
ZShkaXNwbGF5LCAmbWFqb3JWZXJzaW9uLCAmbWlub3JWZXJzaW9uKSA9PSBFR0xfRkFMU0UpIHsK
KyAgICAgICAgTE9HKFdlYkdMLCAiRUdMRGlzcGxheSBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBMT0coV2ViR0wsICJBTkdMRSBp
bml0aWFsaXNlZCBNYWpvcjogJWQgTWlub3I6ICVkIiwgbWFqb3JWZXJzaW9uLCBtaW5vclZlcnNp
b24pOworCisgICAgY29uc3QgY2hhciogZGlzcGxheUV4dGVuc2lvbnMgPSBFR0xfUXVlcnlTdHJp
bmcoZGlzcGxheSwgRUdMX0VYVEVOU0lPTlMpOworICAgIExPRyhXZWJHTCwgIkV4dGVuc2lvbnM6
ICVzIiwgZGlzcGxheUV4dGVuc2lvbnMpOworCisgICAgRUdMQ29uZmlnIGNvbmZpZzsKKyAgICBF
R0xpbnQgY29uZmlnQXR0cmlidXRlc1tdID0geworICAgICAgICBFR0xfUkVOREVSQUJMRV9UWVBF
LCBFR0xfT1BFTkdMX0VTMl9CSVQsCisgICAgICAgIEVHTF9SRURfU0laRSwgOCwKKyAgICAgICAg
RUdMX0dSRUVOX1NJWkUsIDgsCisgICAgICAgIEVHTF9CTFVFX1NJWkUsIDgsCisgICAgICAgIEVH
TF9BTFBIQV9TSVpFLCA4LAorICAgICAgICBFR0xfU1VSRkFDRV9UWVBFLCBFR0xfUEJVRkZFUl9C
SVQsCisgICAgICAgIEVHTF9OT05FCisgICAgfTsKKyAgICBFR0xpbnQgbnVtYmVyQ29uZmlnc1Jl
dHVybmVkID0gMDsKKyAgICBFR0xfQ2hvb3NlQ29uZmlnKGRpc3BsYXksIGNvbmZpZ0F0dHJpYnV0
ZXMsICZjb25maWcsIDEsICZudW1iZXJDb25maWdzUmV0dXJuZWQpOworICAgIGlmIChudW1iZXJD
b25maWdzUmV0dXJuZWQgIT0gMSkgeworICAgICAgICBMT0coV2ViR0wsICJFR0xDb25maWcgSW5p
dGlhbGl6YXRpb24gZmFpbGVkLiIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cisg
ICAgTE9HKFdlYkdMLCAiR290IEVHTENvbmZpZyIpOworCisgICAgRUdMX0JpbmRBUEkoRUdMX09Q
RU5HTF9FU19BUEkpOworICAgIGlmIChFR0xfR2V0RXJyb3IoKSAhPSBFR0xfU1VDQ0VTUykgewor
ICAgICAgICBMT0coV2ViR0wsICJVbmFibGUgdG8gYmluZCB0byBPUEVOR0xfRVNfQVBJIik7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPEVHTGludD4g
Y29udGV4dEF0dHJpYnV0ZXM7CisgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9D
T05URVhUX0NMSUVOVF9WRVJTSU9OKTsKKyAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2so
Mik7CisgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9DT05URVhUX1dFQkdMX0NP
TVBBVElCSUxJVFlfQU5HTEUpOworICAgIGNvbnRleHRBdHRyaWJ1dGVzLnB1c2hfYmFjayhFR0xf
VFJVRSk7CisgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9FWFRFTlNJT05TX0VO
QUJMRURfQU5HTEUpOworICAgIGNvbnRleHRBdHRyaWJ1dGVzLnB1c2hfYmFjayhFR0xfVFJVRSk7
CisgICAgaWYgKHN0cnN0cihkaXNwbGF5RXh0ZW5zaW9ucywgIkVHTF9BTkdMRV9wb3dlcl9wcmVm
ZXJlbmNlIikpIHsKKyAgICAgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9QT1dF
Ul9QUkVGRVJFTkNFX0FOR0xFKTsKKyAgICAgICAgLy8gRUdMX0xPV19QT1dFUl9BTkdMRSBpcyB0
aGUgZGVmYXVsdC4gQ2hhbmdlIHRvCisgICAgICAgIC8vIEVHTF9ISUdIX1BPV0VSX0FOR0xFIGlm
IGRlc2lyZWQuCisgICAgICAgIGNvbnRleHRBdHRyaWJ1dGVzLnB1c2hfYmFjayhFR0xfTE9XX1BP
V0VSX0FOR0xFKTsKKyAgICB9CisgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9O
T05FKTsKKworICAgIEVHTENvbnRleHQgY29udGV4dCA9IEVHTF9DcmVhdGVDb250ZXh0KGRpc3Bs
YXksIGNvbmZpZywgRUdMX05PX0NPTlRFWFQsIGNvbnRleHRBdHRyaWJ1dGVzLmRhdGEoKSk7Cisg
ICAgaWYgKGNvbnRleHQgPT0gRUdMX05PX0NPTlRFWFQpIHsKKyAgICAgICAgTE9HKFdlYkdMLCAi
RUdMQ29udGV4dCBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKyAgICBMT0coV2ViR0wsICJHb3QgRUdMQ29udGV4dCIpOworCisgICAgc3Rh
dGljIGNvbnN0IGludCBwYnVmZmVyQXR0cmlidXRlc1tdID0geyBFR0xfV0lEVEgsIDEsIEVHTF9I
RUlHSFQsIDEsIEVHTF9OT05FIH07CisgICAgRUdMU3VyZmFjZSBzdXJmYWNlID0gRUdMX0NyZWF0
ZVBidWZmZXJTdXJmYWNlKGRpc3BsYXksIGNvbmZpZywgcGJ1ZmZlckF0dHJpYnV0ZXMpOworICAg
IGlmIChzdXJmYWNlID09IEVHTF9OT19TVVJGQUNFKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygi
Q2Fubm90IGNyZWF0ZSBFR0wgUGJ1ZmZlciBzdXJmYWNlOiAlc1xuIiwgbGFzdEVycm9yU3RyaW5n
KCkpOworICAgICAgICBFR0xfRGVzdHJveUNvbnRleHQoZGlzcGxheSwgY29udGV4dCk7CisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBMT0coV2ViR0wsICJHb3QgRUdMUGJ1ZmZl
clN1cmZhY2UiKTsKKworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0QU5HTEU+
KG5ldyBHTENvbnRleHRBTkdMRShwbGF0Zm9ybURpc3BsYXksIGRpc3BsYXksIGNvbnRleHQsIHN1
cmZhY2UsIFN1cmZhY2VsZXNzKSk7Cit9CisKK0dMQ29udGV4dEFOR0xFOjpHTENvbnRleHRBTkdM
RShQbGF0Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSwgRUdMRGlzcGxheSBkaXNwbGF5LCBF
R0xDb250ZXh0IGNvbnRleHQsIEVHTFN1cmZhY2Ugc3VyZmFjZSwgRUdMU3VyZmFjZVR5cGUgdHlw
ZSkKKyAgICA6IEdMQ29udGV4dChwbGF0Zm9ybURpc3BsYXkpCisgICAgLCBtX2VnbERpc3BsYXko
ZGlzcGxheSkKKyAgICAsIG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9zdXJmYWNlKHN1cmZh
Y2UpCisgICAgLCBtX3R5cGUodHlwZSkKK3sKKyAgICBBU1NFUlQodHlwZSAhPSBQaXhtYXBTdXJm
YWNlKTsKKyAgICBBU1NFUlQodHlwZSA9PSBTdXJmYWNlbGVzcyB8fCBzdXJmYWNlICE9IEVHTF9O
T19TVVJGQUNFKTsKKyAgICBSRUxFQVNFX0FTU0VSVChkaXNwbGF5ICE9IEVHTF9OT19ESVNQTEFZ
KTsKKyAgICBSRUxFQVNFX0FTU0VSVChjb250ZXh0ICE9IEVHTF9OT19DT05URVhUKTsKK30KKwor
R0xDb250ZXh0QU5HTEU6On5HTENvbnRleHRBTkdMRSgpCit7CisgICAgaWYgKG1fY29udGV4dCkg
eworICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCAwKTsKKyAgICAg
ICAgRUdMX01ha2VDdXJyZW50KG1fZWdsRGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19T
VVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CisgICAgICAgIEVHTF9EZXN0cm95Q29udGV4dChtX2Vn
bERpc3BsYXksIG1fY29udGV4dCk7CisgICAgfQorCisgICAgaWYgKG1fc3VyZmFjZSkKKyAgICAg
ICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKG1fZWdsRGlzcGxheSwgbV9zdXJmYWNlKTsKK30KKworYm9v
bCBHTENvbnRleHRBTkdMRTo6bWFrZUNvbnRleHRDdXJyZW50KCkKK3sKKyAgICBBU1NFUlQobV9j
b250ZXh0KTsKKworICAgIEdMQ29udGV4dDo6bWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgaWYg
KEVHTF9HZXRDdXJyZW50Q29udGV4dCgpICE9IG1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIEVH
TF9NYWtlQ3VycmVudChtX2VnbERpc3BsYXksIG1fc3VyZmFjZSwgbV9zdXJmYWNlLCBtX2NvbnRl
eHQpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEdMQ29udGV4dEFOR0xFOjpzd2FwQnVm
ZmVycygpCit7CisgICAgQVNTRVJUKG1fc3VyZmFjZSk7CisgICAgRUdMX1N3YXBCdWZmZXJzKG1f
ZWdsRGlzcGxheSwgbV9zdXJmYWNlKTsKK30KKwordm9pZCBHTENvbnRleHRBTkdMRTo6d2FpdE5h
dGl2ZSgpCit7CisgICAgRUdMX1dhaXROYXRpdmUoRUdMX0NPUkVfTkFUSVZFX0VOR0lORSk7Cit9
CisKK2Jvb2wgR0xDb250ZXh0QU5HTEU6OmNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVyKCkK
K3sKKyAgICByZXR1cm4gbV90eXBlID09IFdpbmRvd1N1cmZhY2U7Cit9CisKK0ludFNpemUgR0xD
b250ZXh0QU5HTEU6OmRlZmF1bHRGcmFtZUJ1ZmZlclNpemUoKQoreworICAgIGlmICghY2FuUmVu
ZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKSkKKyAgICAgICAgcmV0dXJuIEludFNpemUoKTsKKwor
ICAgIEVHTGludCB3aWR0aCwgaGVpZ2h0OworICAgIGlmICghRUdMX1F1ZXJ5U3VyZmFjZShtX2Vn
bERpc3BsYXksIG1fc3VyZmFjZSwgRUdMX1dJRFRILCAmd2lkdGgpCisgICAgICAgIHx8ICFFR0xf
UXVlcnlTdXJmYWNlKG1fZWdsRGlzcGxheSwgbV9zdXJmYWNlLCBFR0xfSEVJR0hULCAmaGVpZ2h0
KSkKKyAgICAgICAgcmV0dXJuIEludFNpemUoKTsKKworICAgIHJldHVybiBJbnRTaXplKHdpZHRo
LCBoZWlnaHQpOworfQorCit2b2lkIEdMQ29udGV4dEFOR0xFOjpzd2FwSW50ZXJ2YWwoaW50IGlu
dGVydmFsKQoreworICAgIEFTU0VSVChtX3N1cmZhY2UpOworICAgIEVHTF9Td2FwSW50ZXJ2YWwo
bV9lZ2xEaXNwbGF5LCBpbnRlcnZhbCk7Cit9CisKKyNpZiBVU0UoQ0FJUk8pCitjYWlyb19kZXZp
Y2VfdCogR0xDb250ZXh0QU5HTEU6OmNhaXJvRGV2aWNlKCkKK3sKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfM0QpCitQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEIEdMQ29udGV4dEFOR0xFOjpwbGF0Zm9ybUNvbnRleHQoKQorewor
ICAgIHJldHVybiBtX2NvbnRleHQ7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gVVNFKEFOR0xFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR0xDb250ZXh0QU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dMQ29udGV4dEFOR0xFLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgyZWRk
ZDU4M2VkMzBmZGIxZDVjNDkxMGY4MGU3ZWEyNWNjNTFmNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dMQ29udGV4dEFOR0xFLmgKQEAg
LTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5MLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCisgKiAgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0Uo
QU5HTEUpCisKKyNpbmNsdWRlICJHTENvbnRleHQuaCIKKwordHlwZWRlZiB2b2lkICpFR0xDb25m
aWc7Cit0eXBlZGVmIHZvaWQgKkVHTENvbnRleHQ7Cit0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7
Cit0eXBlZGVmIHZvaWQgKkVHTFN1cmZhY2U7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgR0xDb250ZXh0QU5HTEUgZmluYWwgOiBwdWJsaWMgR0xDb250ZXh0IHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShHTENvbnRleHRBTkdMRSk7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRBTkdMRT4gY3JlYXRlQ29udGV4dChHTE5hdGl2ZVdpbmRvd1R5
cGUsIFBsYXRmb3JtRGlzcGxheSYpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGVycm9yU3Ry
aW5nKGludCBzdGF0dXNDb2RlKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogbGFzdEVycm9yU3Ry
aW5nKCk7CisKKyAgICB2aXJ0dWFsIH5HTENvbnRleHRBTkdMRSgpOworCitwcml2YXRlOgorICAg
IGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzd2FwQnVmZmVy
cygpIG92ZXJyaWRlOworICAgIHZvaWQgd2FpdE5hdGl2ZSgpIG92ZXJyaWRlOworICAgIGJvb2wg
Y2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKSBvdmVycmlkZTsKKyAgICBJbnRTaXplIGRl
ZmF1bHRGcmFtZUJ1ZmZlclNpemUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN3YXBJbnRlcnZhbChp
bnQpIG92ZXJyaWRlOworI2lmIFVTRShDQUlSTykKKyAgICBjYWlyb19kZXZpY2VfdCogY2Fpcm9E
ZXZpY2UoKSBvdmVycmlkZTsKKyNlbmRpZgorICAgIGJvb2wgaXNFR0xDb250ZXh0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCisjaWYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRf
M0QpCisgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKSBvdmVy
cmlkZTsKKyNlbmRpZgorCisgICAgZW51bSBFR0xTdXJmYWNlVHlwZSB7IFBidWZmZXJTdXJmYWNl
LCBXaW5kb3dTdXJmYWNlLCBQaXhtYXBTdXJmYWNlLCBTdXJmYWNlbGVzcyB9OworCisgICAgR0xD
b250ZXh0QU5HTEUoUGxhdGZvcm1EaXNwbGF5JiwgRUdMRGlzcGxheSwgRUdMQ29udGV4dCwgRUdM
U3VyZmFjZSwgRUdMU3VyZmFjZVR5cGUpOworCisgICAgRUdMRGlzcGxheSBtX2VnbERpc3BsYXkg
eyBudWxscHRyIH07CisgICAgRUdMQ29udGV4dCBtX2NvbnRleHQgeyBudWxscHRyIH07CisgICAg
RUdMU3VyZmFjZSBtX3N1cmZhY2UgeyBudWxscHRyIH07CisgICAgRUdMU3VyZmFjZVR5cGUgbV90
eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEFOR0xF
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0M0RBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcAppbmRleCA3Y2JkZmZlOGVjZDBmMzY1
NmQwOGExYTA5OTlhMWIzNTg4MDVlY2ZiLi5kMzhiZDIwYThlYzVlNThlODc4NmJkOTQ0YTFkZjg3
ODZjMDM0OWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcApAQCAtNjksNiAr
NjksMTEgQEAgdHlwZWRlZiB2b2lkKiBHTGVnbENvbnRleHQ7CiAvLyB3b3VsZCBuZWVkIG1vcmUg
d29yayB0byBiZSBpbmNsdWRlZCBmcm9tIFdlYkNvcmUuCiAjZGVmaW5lIEdMX01BWF9TQU1QTEVT
X0VYVCAweDhENTcKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykgJiYgVVNFKFRFWFRV
UkVfTUFQUEVSKQorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMF9FWFQgMHg4Q0UwCisjZGVm
aW5lIEdMX0ZSQU1FQlVGRkVSX0VYVCAweDhENDAKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25OYW1l
ID0gIkdMX09FU19wYWNrZWRfZGVwdGhfc3RlbmNpbCI7CkBAIC0yMDAsNiArMjA1LDIyIEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAj
ZWxzZQogI2Vycm9yIFVua25vd24gQ29jb2EgcGxhdGZvcm0KICNlbmRpZgorCisjZWxpZiBQTEFU
Rk9STShHVEspCisgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xF
LCBtX3RleHR1cmUpOworICAgIGdsOjpUZXhJbWFnZTJEKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FO
R0xFLCAwLCBtX2ludGVybmFsQ29sb3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIDAsIGNvbG9yRm9y
bWF0LCBHTF9VTlNJR05FRF9CWVRFLCAwKTsKKyAgICBnbDo6RnJhbWVidWZmZXJUZXh0dXJlMkQo
R0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFX1JFQ1RBTkdM
RV9BTkdMRSwgbV90ZXh0dXJlLCAwKTsKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisg
ICAgaWYgKG1fY29tcG9zaXRvclRleHR1cmUpIHsKKyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdM
X1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX2NvbXBvc2l0b3JUZXh0dXJlKTsKKyAgICAgICAg
Z2w6OlRleEltYWdlMkQoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIDAsIG1faW50ZXJuYWxD
b2xvckZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgY29sb3JGb3JtYXQsIEdMX1VOU0lHTkVEX0JZ
VEUsIDApOworICAgICAgICBnbDo6QmluZFRleHR1cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5H
TEUsIDApOworICAgICAgICBnbDo6QmluZFRleHR1cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5H
TEUsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgICAgIGdsOjpUZXhJbWFnZTJEKEdMX1RF
WFRVUkVfUkVDVEFOR0xFX0FOR0xFLCAwLCBtX2ludGVybmFsQ29sb3JGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIDAsIGNvbG9yRm9ybWF0LCBHTF9VTlNJR05FRF9CWVRFLCAwKTsKKyAgICAgICAgZ2w6
OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCAwKTsKKyAgICB9CisjZW5k
aWYKKwogI2Vsc2UKIAogI2Vycm9yIE11c3QgcG9ydCB0byBub24tQ29jb2EgcGxhdGZvcm1zCkBA
IC00ODcsNyArNTA4LDIwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnByZXBhcmVUZXh0dXJl
KCkKICAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpCiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBs
aW5nSWZOZWNlc3NhcnkoKTsKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyAgICBz
dGQ6OnN3YXAobV90ZXh0dXJlLCBtX2NvbXBvc2l0b3JUZXh0dXJlKTsKKyAgICBzdGQ6OnN3YXAo
bV90ZXh0dXJlLCBtX2ludGVybWVkaWF0ZVRleHR1cmUpOworICAgIGdsOjpCaW5kRnJhbWVidWZm
ZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKKyAgICBnbDo6RnJhbWVidWZmZXJUZXh0dXJlMkQo
R0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFX1JFQ1RBTkdM
RV9BTkdMRSwgbV90ZXh0dXJlLCAwKTsKKyAgICBnbDo6Rmx1c2goKTsKKworICAgIGlmIChtX3N0
YXRlLmJvdW5kRkJPICE9IG1fZmJvKQorICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdyYXBo
aWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9zdGF0ZS5ib3VuZEZCTyk7CisgICAgZWxzZQor
ICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
UiwgbV9mYm8pOworI2Vsc2UKICAgICBnbDo6Rmx1c2goKTsKKyNlbmRpZgogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpyZWFkUmVuZGVyaW5nUmVzdWx0cyh1bnNpZ25lZCBjaGFyICpwaXhl
bHMsIGludCBwaXhlbHNTaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNw
cAppbmRleCA5YTliZDQ2ODNiMjY3NDJhZmVjYjE0OTFmNjE0NGYyYTc4YzU5NTJjLi5kMGQ4YjRk
ZmEwYTUzYmVmOWI1NjY0OTI2MDFiODAwMWNmYWY2MWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0MzRExheWVyLmNwcApAQCAtMzcsNiArMzcsMTAgQEAKICNpbmNsdWRlICJUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgiCiAjZW5kaWYKIAorI2lmIFVTRShBTkdMRSkKKyNp
bmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2VuZGlmCisKICNpbmNsdWRlICJHTENvbnRleHQuaCIK
IAogbmFtZXNwYWNlIE5pY29zaWEgewpAQCAtNDksNyArNTMsMTEgQEAgR0MzRExheWVyOjpHQzNE
TGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5k
ZXJTdHlsZQogewogICAgIHN3aXRjaCAocmVuZGVyU3R5bGUpIHsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSZW5kZXJPZmZzY3JlZW46CisjaWYgVVNFKEFOR0xFKQorICAgICAgICBtX2ds
Q29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNw
bGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSwgdHJ1ZSk7CisjZWxzZQogICAgICAg
ICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZv
cm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CisjZW5kaWYKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hv
c3RXaW5kb3c6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODIsMTMgKzkwLDM4
IEBAIHZvaWQgR0MzRExheWVyOjpzd2FwQnVmZmVyc0lmTmVlZGVkKCkKIAogICAgIG1fY29udGV4
dC5wcmVwYXJlVGV4dHVyZSgpOwogICAgIEludFNpemUgdGV4dHVyZVNpemUobV9jb250ZXh0Lm1f
Y3VycmVudFdpZHRoLCBtX2NvbnRleHQubV9jdXJyZW50SGVpZ2h0KTsKLSAgICBUZXh0dXJlTWFw
cGVyR0w6OkZsYWdzIGZsYWdzID0gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRGbGlwVGV4dHVyZSB8
IChtX2NvbnRleHQubV9hdHRycy5hbHBoYSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQg
OiAwKTsKKyAgICBUZXh0dXJlTWFwcGVyR0w6OkZsYWdzIGZsYWdzID0gbV9jb250ZXh0Lm1fYXR0
cnMuYWxwaGEgPyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIDogMDsKKyNpZiBVU0UoQU5H
TEUpCisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdl
QnVmZmVyOjpjcmVhdGUodGV4dHVyZVNpemUsIFVuYWNjZWxlcmF0ZWQpOworICAgIGlmICghaW1h
Z2VCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29udGV4dC5wYWludFJlbmRlcmlu
Z1Jlc3VsdHNUb0NhbnZhcyhpbWFnZUJ1ZmZlci5nZXQoKSk7CisgICAgUmVmUHRyPEltYWdlPiBp
bWFnZSA9IGltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpOworICAg
IGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyNlbHNlCisgICAgZmxhZ3MgfD0gVGV4dHVy
ZU1hcHBlckdMOjpTaG91bGRGbGlwVGV4dHVyZTsKKyNlbmRpZgogCiAgICAgewogICAgICAgICBh
dXRvJiBwcm94eSA9IGRvd25jYXN0PE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJ
bXBsPihtX2NvbnRlbnRMYXllci0+aW1wbCgpKS5wcm94eSgpOworI2lmIFVTRShBTkdMRSkKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPiBs
YXllckJ1ZmZlcjsKKyAgICAgICAgbGF5ZXJCdWZmZXIgPSBwcm94eS5nZXRBdmFpbGFibGVCdWZm
ZXIodGV4dHVyZVNpemUsIG1fY29udGV4dC5tX2ludGVybmFsQ29sb3JGb3JtYXQpOworICAgICAg
ICBpZiAoIWxheWVyQnVmZmVyKSB7CisgICAgICAgICAgICBhdXRvIHRleHR1cmUgPSBCaXRtYXBU
ZXh0dXJlR0w6OmNyZWF0ZShUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6OmdldCgpLCBt
X2NvbnRleHQubV9pbnRlcm5hbENvbG9yRm9ybWF0KTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0
PEJpdG1hcFRleHR1cmVHTCY+KHRleHR1cmUuZ2V0KCkpLnNldFBlbmRpbmdDb250ZW50cyhXVEZN
b3ZlKGltYWdlKSk7CisgICAgICAgICAgICBsYXllckJ1ZmZlciA9IG1ha2VVbmlxdWU8VGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+KFdURk1vdmUodGV4dHVyZSksIGZsYWdzKTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICBsYXllckJ1ZmZlci0+dGV4dHVyZUdMKCkuc2V0UGVu
ZGluZ0NvbnRlbnRzKFdURk1vdmUoaW1hZ2UpKTsKIAorICAgICAgICBMb2NrSG9sZGVyIGhvbGRl
cihwcm94eS5sb2NrKCkpOworICAgICAgICBwcm94eS5wdXNoTmV4dEJ1ZmZlcihXVEZNb3ZlKGxh
eWVyQnVmZmVyKSk7CisjZWxzZQogICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihwcm94eS5sb2Nr
KCkpOwogICAgICAgICBwcm94eS5wdXNoTmV4dEJ1ZmZlcihtYWtlVW5pcXVlPFRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyQnVmZmVyPihtX2NvbnRleHQubV9jb21wb3NpdG9yVGV4dHVyZSwgdGV4
dHVyZVNpemUsIGZsYWdzLCBtX2NvbnRleHQubV9pbnRlcm5hbENvbG9yRm9ybWF0KSk7CisjZW5k
aWYKICAgICB9CiAKICAgICBtX2NvbnRleHQubWFya0xheWVyQ29tcG9zaXRlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1
cmVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFw
VGV4dHVyZUdMLmNwcAppbmRleCA3OWIwMDZlMTRkMWE5ZjMxZDAyZGM3Njc4NzIxZTcxNGIzZGNj
Y2JiLi5mMmQwZjY0YjNmZjc5ZGNiYTBhNmFlNGM0Mjg0MDhmODEzMDE4N2EwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdM
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFw
VGV4dHVyZUdMLmNwcApAQCAtMjYsNyArMjYsNiBAQAogCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNE
LmgiCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgotI2luY2x1ZGUgIkltYWdlLmgiCiAj
aW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgpAQCAtMTY5LDYgKzE2OCwyNSBAQCB2b2lkIEJpdG1h
cFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiB0
YXJnZXRSZWN0LCBjbwogICAgIHVwZGF0ZUNvbnRlbnRzKGltYWdlRGF0YSwgdGFyZ2V0UmVjdCwg
b2Zmc2V0LCBieXRlc1BlckxpbmUpOwogfQogCisjaWYgVVNFKEFOR0xFKQordm9pZCBCaXRtYXBU
ZXh0dXJlR0w6OnNldFBlbmRpbmdDb250ZW50cyhSZWZQdHI8SW1hZ2U+IGltYWdlKQoreworICAg
IG1fcGVuZGluZ0NvbnRlbnRzID0gaW1hZ2U7Cit9CisKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjp1
cGRhdGVQZW5kaW5nQ29udGVudHMoY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50
UG9pbnQmIG9mZnNldCkKK3sKKyAgICBpZiAoIW1fcGVuZGluZ0NvbnRlbnRzKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoIWlzVmFsaWQoKSkgeworICAgICAgICBJbnRTaXplIHRleHR1cmVT
aXplKG1fcGVuZGluZ0NvbnRlbnRzLT5zaXplKCkpOworICAgICAgICByZXNldCh0ZXh0dXJlU2l6
ZSk7CisgICAgfQorICAgIHVwZGF0ZUNvbnRlbnRzKG1fcGVuZGluZ0NvbnRlbnRzLmdldCgpLCB0
YXJnZXRSZWN0LCBvZmZzZXQpOworfQorI2VuZGlmCisKIHN0YXRpYyB1bnNpZ25lZCBnZXRQYXNz
ZXNSZXF1aXJlZEZvckZpbHRlcihGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSkK
IHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaAppbmRleCA4NzA5YTgyNTYw
YzY0OTg4NzQ4OTM4YjhiODZlMTNiZjUzYTBiZWY2Li4wMDM3NjhlNjQwMDg4Y2Y2YTA2OGQ0Y2E0
Zjc0ZWE3Nzg1ZjdkMmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiQml0bWFwVGV4dHVyZS5oIgogI2luY2x1ZGUgIkNsaXBTdGFjay5oIgogI2luY2x1
ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50
U2l6ZS5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5oIgogI2lu
Y2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgpAQCAtNzcsNiArNzgsMTAgQEAgcHVibGljOgogICAg
IEdMaW50IGludGVybmFsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbEZvcm1hdDsg
fQogCiAgICAgdm9pZCBjb3B5RnJvbUV4dGVybmFsVGV4dHVyZShHTHVpbnQgdGV4dHVyZUlEKTsK
KyNpZiBVU0UoQU5HTEUpCisgICAgdm9pZCBzZXRQZW5kaW5nQ29udGVudHMoUmVmUHRyPEltYWdl
Pik7CisgICAgdm9pZCB1cGRhdGVQZW5kaW5nQ29udGVudHMoY29uc3QgSW50UmVjdCYgdGFyZ2V0
UmVjdCwgY29uc3QgSW50UG9pbnQmIG9mZnNldCk7CisjZW5kaWYKIAogICAgIFRleHR1cmVNYXBw
ZXJHTDo6RmxhZ3MgY29sb3JDb252ZXJ0RmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yQ29u
dmVydEZsYWdzOyB9CiAKQEAgLTk0LDYgKzk5LDEwIEBAIHByaXZhdGU6CiAgICAgVGV4dHVyZU1h
cHBlckNvbnRleHRBdHRyaWJ1dGVzIG1fY29udGV4dEF0dHJpYnV0ZXM7CiAgICAgVGV4dHVyZU1h
cHBlckdMOjpGbGFncyBtX2NvbG9yQ29udmVydEZsYWdzIHsgVGV4dHVyZU1hcHBlckdMOjpOb0Zs
YWcgfTsKIAorI2lmIFVTRShBTkdMRSkKKyAgICBSZWZQdHI8SW1hZ2U+IG1fcGVuZGluZ0NvbnRl
bnRzIHsgbnVsbHB0ciB9OworI2VuZGlmCisKICAgICB2b2lkIGNsZWFySWZOZWVkZWQoKTsKICAg
ICB2b2lkIGNyZWF0ZUZib0lmTmVlZGVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29u
dGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggOGZkM2FkNGY3MmQ3NjRiZDk1ZDIyMGY1ODFl
ZDJiNzk2Mjg4M2M5Yy4uYzE0ZWQ5NzFlYTZmMDFhYzQ4MTQ3ZWQxZjZiM2NmYmVlY2E4MmJlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKQEAg
LTM3LDEzICszNywzMiBAQAogCiAjaW5jbHVkZSA8QU5HTEUvU2hhZGVyTGFuZy5oPgogCi0jaWYg
VVNFKExJQkVQT1hZKQorI2lmIFVTRShBTkdMRSkKKyNkZWZpbmUgRUdMX0VHTF9QUk9UT1RZUEVT
IDAKKy8vIFNraXAgdGhlIGluY2x1c2lvbiBvZiBBTkdMRSdzIGV4cGxpY2l0IGNvbnRleHQgZW50
cnkgcG9pbnRzIGZvciBub3cuCisjZGVmaW5lIEdMX0FOR0xFX2V4cGxpY2l0X2NvbnRleHQKKyNk
ZWZpbmUgR0xfQU5HTEVfZXhwbGljaXRfY29udGV4dF9nbGVzMQordHlwZWRlZiB2b2lkKiBHTGVn
bENvbnRleHQ7CisjaW5jbHVkZSA8QU5HTEUvZWdsLmg+CisjaW5jbHVkZSA8QU5HTEUvZWdsZXh0
Lmg+CisjaW5jbHVkZSA8QU5HTEUvZWdsZXh0X2FuZ2xlLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50
cnlfcG9pbnRzX2VnbC5oPgorI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzXzJfMF9h
dXRvZ2VuLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4u
aD4KKyNpbmNsdWRlIDxBTkdMRS9nbDJleHQuaD4KKyNpbmNsdWRlIDxBTkdMRS9nbDJleHRfYW5n
bGUuaD4KKyNpZiBkZWZpbmVkKE5vbmUpCisjdW5kZWYgTm9uZQorI2VuZGlmCisjZWxpZiBVU0Uo
TElCRVBPWFkpCiAjaW5jbHVkZSA8ZXBveHkvZ2wuaD4KICNlbGlmICFVU0UoT1BFTkdMX0VTKQog
I2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAotI2lmIFVTRShPUEVOR0xfRVMpCisj
aWYgVVNFKEFOR0xFKQorI2luY2x1ZGUgIkV4dGVuc2lvbnMzREFOR0xFLmgiCisjZWxpZiBVU0Uo
T1BFTkdMX0VTKQogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTEVTLmgiCiAjZWxzZQogI2lu
Y2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgpAQCAtNzEsNyArOTAsNyBAQCBSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBz
dGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKICAgICBpZiAoIWluaXRpYWxpemVkKSB7Ci0jaWYg
IVVTRShPUEVOR0xfRVMpICYmICFVU0UoTElCRVBPWFkpCisjaWYgIVVTRShPUEVOR0xfRVMpICYm
ICFVU0UoTElCRVBPWFkpICYmICFVU0UoQU5HTEUpCiAgICAgICAgIHN1Y2Nlc3MgPSBpbml0aWFs
aXplT3BlbkdMU2hpbXMoKTsKICNlbmRpZgogICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CkBA
IC0xMDEsNiArMTIwLDc5IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMKICAgICByZXR1cm4gY29u
dGV4dDsKIH0KIAorI2lmIFVTRShBTkdMRSkKK0dyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0Nv
bnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRv
dyosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSwgR3JhcGhpY3ND
b250ZXh0M0QqIHNoYXJlZENvbnRleHQpCisgICAgOiBtX2F0dHJzKGF0dHJpYnV0ZXMpCit7Cisg
ICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CisjaWYgVVNF
KE5JQ09TSUEpCisgICAgbV9uaWNvc2lhTGF5ZXIgPSBXVEY6Om1ha2VVbmlxdWU8Tmljb3NpYTo6
R0MzRExheWVyPigqdGhpcywgcmVuZGVyU3R5bGUpOworI2Vsc2UKKyAgICBtX3RleG1hcExheWVy
ID0gV1RGOjptYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcj4oKnRoaXMs
IHJlbmRlclN0eWxlKTsKKyNlbmRpZgorICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOworCisKKyAg
ICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5kZXJP
ZmZzY3JlZW4pIHsKKyAgICAgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4K
KyAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX3RleHR1cmUpOworICAgICAgICBnbDo6Qmlu
ZFRleHR1cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fdGV4dHVyZSk7CisgICAgICAg
IGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJF
X01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RF
WFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7
CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBH
TF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgICAgIGdsOjpUZXhQYXJh
bWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX1dSQVBfVCwgR0xf
Q0xBTVBfVE9fRURHRSk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RB
TkdMRV9BTkdMRSwgMCk7CisKKyAgICAgICAgLy8gQ3JlYXRlIGFuIEZCTy4KKyAgICAgICAgZ2w6
OkdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm8pOworICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVy
KEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
CisgICAgICAgIGdsOjpHZW5UZXh0dXJlcygxLCAmbV9jb21wb3NpdG9yVGV4dHVyZSk7CisgICAg
ICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV9jb21wb3Np
dG9yVGV4dHVyZSk7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFO
R0xFX0FOR0xFLCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGds
OjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01J
Tl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRV
UkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7
CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBH
TF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisKKyAgICAgICAgZ2w6OkdlblRl
eHR1cmVzKDEsICZtX2ludGVybWVkaWF0ZVRleHR1cmUpOworICAgICAgICBnbDo6QmluZFRleHR1
cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7Cisg
ICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9U
RVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJm
KEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJ
TkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FO
R0xFLCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgICAgIGdsOjpU
ZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX1dSQVBf
VCwgR0xfQ0xBTVBfVE9fRURHRSk7CisKKyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRV
UkVfUkVDVEFOR0xFX0FOR0xFLCAwKTsKKyNlbmRpZgorCisgICAgICAgIC8vIENyZWF0ZSBhIG11
bHRpc2FtcGxlIEZCTy4KKyAgICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgICAg
ICAgICBnbDo6R2VuRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAg
ICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8p
OworICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CisgICAg
ICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVy
KTsKKyAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAg
ICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRo
U3RlbmNpbEJ1ZmZlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBCaW5kIGNh
bnZhcyBGQk8uCisgICAgICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVS
LCBtX2Zibyk7CisgICAgICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9mYm87CisjaWYgVVNF
KE9QRU5HTF9FUykKKyAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAg
ICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyKTsKKyAgICAgICAgICAg
IGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZl
cnMoMSwgJm1fc3RlbmNpbEJ1ZmZlcik7CisjZW5kaWYKKyAgICAgICAgICAgIGlmIChtX2F0dHJz
LnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVy
YnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOworICAgICAgICB9CisgICAgfQorCisg
ICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7Cit9CisjZWxzZQogR3JhcGhpY3NDb250ZXh0
M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1
dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0
eWxlLCBHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKICAgICA6IG1fYXR0cnMoYXR0
cmlidXRlcykKIHsKQEAgLTE3MSw2ICsyNjMsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvcwog
ICAgICAgICB9CiAgICAgfQogCisjaWYgIVVTRShBTkdMRSkKICNpZiAhVVNFKE9QRU5HTF9FUykK
ICAgICA6OmdsRW5hYmxlKEdMX1ZFUlRFWF9QUk9HUkFNX1BPSU5UX1NJWkUpOwogCkBAIC0yMDAs
NiArMjkzLDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKICNlbHNlCiAgICAgLy8gQWRqdXN0
IHRoZSBzaGFkZXIgc3BlY2lmaWNhdGlvbiBkZXBlbmRpbmcgb24gd2hldGhlciBHTEVTMyAoaS5l
LiBXZWJHTDIgc3VwcG9ydCkgd2FzIHJlcXVlc3RlZC4KICAgICBtX2NvbXBpbGVyID0gQU5HTEVX
ZWJLaXRCcmlkZ2UoU0hfRVNTTF9PVVRQVVQsIG1fYXR0cnMuaXNXZWJHTDIgPyBTSF9XRUJHTDJf
U1BFQyA6IFNIX1dFQkdMX1NQRUMpOworI2VuZGlmCiAjZW5kaWYKIAogICAgIC8vIEFOR0xFIGlu
aXRpYWxpemF0aW9uLgpAQCAtMjI1LDcgKzMxOSw0OSBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3Jh
cGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhv
cwogCiAgICAgOjpnbENsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiB9CisjZW5kaWYKKworI2lmIFVT
RShBTkdMRSkKK0dyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQoreworICAg
IG1ha2VDb250ZXh0Q3VycmVudCgpOworICAgIGlmIChtX3RleHR1cmUpCisgICAgICAgIGdsOjpE
ZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCisgICAgaWYgKG1fY29tcG9zaXRvclRleHR1cmUpCisgICAgICAgIGdsOjpEZWxldGVUZXh0
dXJlcygxLCAmbV9jb21wb3NpdG9yVGV4dHVyZSk7CisjZW5kaWYKKworICAgIGlmIChtX2F0dHJz
LmFudGlhbGlhcykgeworICAgICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0
aXNhbXBsZUNvbG9yQnVmZmVyKTsKKyAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0
dHJzLmRlcHRoKQorICAgICAgICAgICAgZ2w6OkRlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVs
dGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOworICAgICAgICBnbDo6RGVsZXRlRnJhbWVidWZm
ZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKKyAgICB9IGVsc2UgaWYgKG1fYXR0cnMuc3RlbmNp
bCB8fCBtX2F0dHJzLmRlcHRoKSB7CisjaWYgVVNFKE9QRU5HTF9FUykKKyAgICAgICAgaWYgKG1f
ZGVwdGhCdWZmZXIpCisgICAgICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVw
dGhCdWZmZXIpOworCisgICAgICAgIGlmIChtX3N0ZW5jaWxCdWZmZXIpCisgICAgICAgICAgICBn
bERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fc3RlbmNpbEJ1ZmZlcik7CisjZW5kaWYKKyAgICAg
ICAgaWYgKG1fZGVwdGhTdGVuY2lsQnVmZmVyKQorICAgICAgICAgICAgZ2w6OkRlbGV0ZVJlbmRl
cmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKKyAgICB9CisgICAgZ2w6OkRlbGV0
ZUZyYW1lYnVmZmVycygxLCAmbV9mYm8pOworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
KyAgICBnbDo6RGVsZXRlVGV4dHVyZXMoMSwgJm1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisjZW5k
aWYKIAorI2lmIFVTRShDQUlSTykKKyAgICBpZiAobV92YW8pCisgICAgICAgIGRlbGV0ZVZlcnRl
eEFycmF5KG1fdmFvKTsKKyNlbmRpZgorCisgICAgYXV0byogYWN0aXZlQ29udGV4dCA9IGFjdGl2
ZUNvbnRleHRzKCkudGFrZUxhc3QoW3RoaXNdKGF1dG8qIGl0KSB7IHJldHVybiBpdCA9PSB0aGlz
OyB9KTsKKyAgICBBU1NFUlRfVU5VU0VEKGFjdGl2ZUNvbnRleHQsICEhYWN0aXZlQ29udGV4dCk7
Cit9CisjZWxzZQogR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiB7CiAg
ICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CkBAIC0yNjUsNiArNDAxLDcgQEAgR3JhcGhpY3NDb250
ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgYXV0byogYWN0aXZlQ29udGV4dCA9IGFj
dGl2ZUNvbnRleHRzKCkudGFrZUxhc3QoW3RoaXNdKGF1dG8qIGl0KSB7IHJldHVybiBpdCA9PSB0
aGlzOyB9KTsKICAgICBBU1NFUlRfVU5VU0VEKGFjdGl2ZUNvbnRleHQsICEhYWN0aXZlQ29udGV4
dCk7CiB9CisjZW5kaWYgLy8gVVNFKEFOR0xFKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpz
ZXRDb250ZXh0TG9zdENhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TG9zdENhbGxiYWNr
PikKIHsKQEAgLTMxOSw3ICs0NTYsNyBAQCBQbGF0Zm9ybUxheWVyKiBHcmFwaGljc0NvbnRleHQz
RDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiAjZW5kaWYKIH0KIAotI2lmIFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShHVEspICYmICFVU0UoQU5HTEUpCiBFeHRlbnNpb25zM0QmIEdyYXBoaWNz
Q29udGV4dDNEOjpnZXRFeHRlbnNpb25zKCkKIHsKICAgICBpZiAoIW1fZXh0ZW5zaW9ucykgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHAKaW5k
ZXggNWVmYjE5MGNiNGQyNTMxNjdjYzU0NWVjZWI3Nzg0OWI4M2QxYjY0Yi4uMmRiOGNmYjEzYjEz
MWQyMTFmMmI3OTdkOGEwMDZmZjJiMDYzMDg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwCkBAIC05Nyw2ICs5Nyw5IEBAIHZvaWQgVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1
cmVNYXBwZXImIHRleHR1CiAgICAgaWYgKG1faGFzTWFuYWdlZFRleHR1cmUpIHsKICAgICAgICAg
QVNTRVJUKG1fdGV4dHVyZSk7CiAgICAgICAgIEJpdG1hcFRleHR1cmVHTCogdGV4dHVyZUdMID0g
c3RhdGljX2Nhc3Q8Qml0bWFwVGV4dHVyZUdMKj4obV90ZXh0dXJlLmdldCgpKTsKKyNpZiBVU0Uo
QU5HTEUpCisgICAgICAgIHRleHR1cmVHTC0+dXBkYXRlUGVuZGluZ0NvbnRlbnRzKEludFJlY3Qo
SW50UG9pbnQoKSwgdGV4dHVyZUdMLT5jb250ZW50U2l6ZSgpKSwgSW50UG9pbnQoKSk7CisjZW5k
aWYKICAgICAgICAgdGV4bWFwR0wuZHJhd1RleHR1cmUodGV4dHVyZUdMLT5pZCgpLCBtX2V4dHJh
RmxhZ3MgfCB0ZXh0dXJlR0wtPmNvbG9yQ29udmVydEZsYWdzKCksIHRleHR1cmVHTC0+c2l6ZSgp
LCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIG9wYWNpdHkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHku
Y3BwCmluZGV4IDM3OTM2NzVhYzhkNmIzYzMyYTNiMzE4MTkzZTQ5YTdiMzdkYzQ4ODAuLjM4MTRm
NjhhZTQ3YWE1YjdmZTdmOWEwYmVjZTg0NzE2YWJjZGI0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKQEAgLTExMyw2ICsxMTMsMTIgQEAg
Ym9vbCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojppc0FjdGl2ZSgpCiB2b2lkIFRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnB1c2hOZXh0QnVmZmVyKHN0ZDo6dW5pcXVl
X3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gbmV3QnVmZmVyKQogewogICAg
IEFTU0VSVChtX2xvY2suaXNIZWxkKCkpOworI2lmIFVTRShBTkdMRSkKKyAgICAvLyBXaGVuIHRo
ZSBuZXdCdWZmZXIgb3ZlcndyaXRlcyBtX3BlbmRpbmdCdWZmZXIgdGhhdCBpcyBub3Qgc3dhcHBl
ZCB5ZXQsCisgICAgLy8gdGhlIGxheWVyIHJlbGF0ZWQgdG8gbV9wZW5kaW5nQnVmZmVyIGlzIGZs
aWNrZXJpbmcgc2luY2UgaXRzIHRleHR1cmUgaXMgZGVzdHJveWVkLgorICAgIGlmIChtX3BlbmRp
bmdCdWZmZXIgJiYgbV9wZW5kaW5nQnVmZmVyLT5oYXNNYW5hZ2VkVGV4dHVyZSgpKQorICAgICAg
ICByZXR1cm47CisjZW5kaWYKICAgICBtX3BlbmRpbmdCdWZmZXIgPSBXVEZNb3ZlKG5ld0J1ZmZl
cik7CiAgICAgbV93YXNCdWZmZXJEcm9wcGVkID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5
bGFuZC5jcHAKaW5kZXggOTczYjMxNjgxZmIzMTgyMGVmZmI1M2RkNDI5ZDk0NDM0YjdkMmZlNS4u
MWEzMjY0ZDg3YTE2OTdlMjczZmQ4ZDYwMzBmYjllMWFmMGI1MjliNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0
b3JlV2F5bGFuZC5jcHAKQEAgLTM4LDcgKzM4LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWly
b1V0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR0xDb250ZXh0Lmg+CiAKLSNpZiBVU0Uo
T1BFTkdMX0VTKQorI2lmIFVTRShBTkdMRSkKKyNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnMz
REFOR0xFLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9PcGVuR0xTaGltcy5oPgorI2VsaWYgVVNFKE9Q
RU5HTF9FUykKICNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KICNpbmNsdWRlIDxHTEVTMi9nbDJleHQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmg+CkBAIC03OCw3ICs4
MSw5IEBAIGJvb2wgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1JlcXVpcmVt
ZW50cygpCiAgICAgICAgIGlmICghZWdsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBVU0UoT1BFTkdMX0VTKQorI2lmIFVTRShB
TkdMRSkKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzREFOR0xFPiBnbEV4dGVu
c2lvbnMgPSBtYWtlVW5pcXVlPEV4dGVuc2lvbnMzREFOR0xFPihudWxscHRyLCBHTENvbnRleHQ6
OmN1cnJlbnQoKS0+dmVyc2lvbigpID49IDMyMCk7CisjZWxpZiBVU0UoT1BFTkdMX0VTKQogICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMRVM+IGdsRXh0ZW5zaW9ucyA9
IG1ha2VVbmlxdWU8RXh0ZW5zaW9uczNET3BlbkdMRVM+KG51bGxwdHIsICBmYWxzZSk7CiAjZWxz
ZQogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBnbEV4dGVuc2lv
bnMgPSBtYWtlVW5pcXVlPEV4dGVuc2lvbnMzRE9wZW5HTD4obnVsbHB0ciwgR0xDb250ZXh0Ojpj
dXJyZW50KCktPnZlcnNpb24oKSA+PSAzMjApOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09w
dGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCAwYWUx
YmI3MTgxM2E5MGRhNGQ4NmJhMzQyNzI5NDZkYWY1NzBjOGY0Li41NzYzOWY0ODkwODk1Y2YzYTMy
ZWJjYmIxOTYwOTliMTJhZWU0ZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dU
Sy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtOTAsNiArOTAs
NyBAQCBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfV1BFX1JFTkRFUkVSICJXaGV0aGVyIHRvIGVu
YWJsZSBXUEUgcmVuZGVyaW5nIiBQVUJMSUMgTwogCiAjIFByaXZhdGUgb3B0aW9ucyBzcGVjaWZp
YyB0byB0aGUgR1RLIHBvcnQuIENoYW5naW5nIHRoZXNlIG9wdGlvbnMgaXMKICMgY29tcGxldGVs
eSB1bnN1cHBvcnRlZC4gVGhleSBhcmUgaW50ZW5kZWQgZm9yIHVzZSBvbmx5IGJ5IFdlYktpdCBk
ZXZlbG9wZXJzLgorV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0FOR0xFX1dFQkdMICJXaGV0aGVy
IHRvIHVzZSBBTkdMRSBhcyBXZWJHTCBiYWNrZW5kLiIgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BU
SU9OX0RFRklORShVU0VfT1BFTlZSICJXaGV0aGVyIHRvIHVzZSBPcGVuVlIgYXMgV2ViVlIgYmFj
a2VuZC4iIFBSSVZBVEUgT0ZGKQogCiAjIEZJWE1FOiBDYW4gd2UgdXNlIGNhaXJvLWdsZXN2MiB0
byBhdm9pZCB0aGlzIGNvbmZsaWN0PwpAQCAtMTAwLDYgKzEwMSw3IEBAIFdFQktJVF9PUFRJT05f
REVQRU5EKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgRU5BQkxFX09QRU5HTCkKIFdFQktJ
VF9PUFRJT05fREVQRU5EKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcgRU5BQkxFX09QRU5HTCkKIFdF
QktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9HTEVTMiBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09Q
VElPTl9ERVBFTkQoRU5BQkxFX1dFQkdMIEVOQUJMRV9PUEVOR0wpCitXRUJLSVRfT1BUSU9OX0RF
UEVORChVU0VfQU5HTEVfV0VCR0wgRU5BQkxFX1dFQkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQo
VVNFX1dQRV9SRU5ERVJFUiBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoVVNF
X1dQRV9SRU5ERVJFUiBFTkFCTEVfV0FZTEFORF9UQVJHRVQpCiAKQEAgLTI5NCw2ICsyOTYsMTEg
QEAgaWYgKEVOQUJMRV9PUEVOR0wpCiAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX05J
Q09TSUEgVFJVRSkKIGVuZGlmICgpCiAKK2lmIChVU0VfQU5HTEVfV0VCR0wpCisgICAgU0VUX0FO
RF9FWFBPU0VfVE9fQlVJTEQoVVNFX0FOR0xFIFRSVUUpCisgICAgU0VUX0FORF9FWFBPU0VfVE9f
QlVJTEQoVVNFX0FOR0xFX0VHTCBUUlVFKQorZW5kaWYgKCkKKwogaWYgKEVOQUJMRV9TUEVMTENI
RUNLKQogICAgIGZpbmRfcGFja2FnZShFbmNoYW50KQogICAgIGlmIChOT1QgUENfRU5DSEFOVF9G
T1VORCkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4NjY3Zjg4ZmEx
M2E5Y2Q0ZWIyYWY1MGQxZDc5ZjQ4Zjc1ZTBlNDFjLi5mMjJlYmViMGRiYjUxNTBiNTM2MjczOTQ0
NjZlMGM2NWI5ZTE3MTI5IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTktMDktMTggIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJr
aXQub3JnPgorCisgICAgICAgIFtHVEtdIEFkZCBBTkdMRSBiYWNrZW5kIHRvIEdUSyBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkwNjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9j
bWFrZS9PcHRpb25zR1RLLmNtYWtlOgorCiAyMDE5LTA5LTE3ICBGdWppaSBIaXJvbm9yaSAgPEhp
cm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bY3VybF0gRGVmaW5l
IE5PQ1JZUFQgdG8gc3VwcHJlc3MgbGlicmVzc2wgIldhcm5pbmcsIG92ZXJyaWRpbmcgV2luQ3J5
cHQgZGVmaW5lcyIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379114</attachid>
            <date>2019-09-19 01:45:24 -0700</date>
            <delta_ts>2019-09-19 03:08:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199060-20190919044523.patch</filename>
            <type>text/plain</type>
            <size>54980</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNDJkY2MzMjg3NTIxMzU0MjdmOGE5NjI2ZmI1MzU4YmU2NTU1ZWE2MS4uODg5NmNjMGIxMGRm
Yzg0OWIzNTVjODM0ODYyMmQxNjUyNDY0N2YzMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTE4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tA
d2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTEVTdjIuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1H
VEsuY21ha2U6CisgICAgICAgICogYWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0aHMuc2g6CisgICAg
ICAgICogaW5jbHVkZS9DTWFrZUxpc3RzLnR4dDoKKwogMjAxOS0wOS0xNiAgSmFtZXMgRGFycGlu
aWFuICA8amRhcnBpbmlhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGNvbW1pdC5o
IGNvcHlpbmcgYnVpbGQgc3RlcHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMjk2MDIyNGYxMTg3ZmMwNzVkYTBjYjA2NjI1ZWFl
NDM0ZTA2NTlmNi4uMzljYjFhMzRkM2UyODJjZjlkZWEzMzU5MmUxNzJhYmIzYTY2ODI2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAxOS0wOS0xOCAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gQWRkIEFOR0xFIGJhY2tlbmQgdG8gR1RLIHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTA2MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6CisKIDIwMTktMDktMTcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZSBjb25zdGV4cHIgaW5zdGVhZCBvZiBjb25zdCBpbiBzeW1ib2wgZGVmaW5p
dGlvbnMgdGhhdCBhcmUgb2J2aW91c2x5IGNvbnN0ZXhwci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTA4Nzc3
ODI3ODA5ZGUzYzIyNjE1MzM0YWQyNjFlMDY4YjA1NjE0Li5lYjA0Y2QyNDBmNTljMGY2YmVmNGIy
NDY1MTdkNWYyZTRhZDE4ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTktMDkt
MTggIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtd
IEFkZCBBTkdMRSBiYWNrZW5kIHRvIEdUSyBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gZnVuY3Rpb25hbGl0
eSBjaGFuZ2VkLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9y
bUdUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHQ6OmNyZWF0ZU9m
ZnNjcmVlbkNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aW5pdGlhbGl6ZU9wZW5HTFNoaW1zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9P
cGVuR0xTaGltcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxh
eS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR0xDb250ZXh0QU5HTEUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xFOjplcnJvclN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRBTkdMRTo6bGFzdEVycm9yU3RyaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xFOjpjcmVhdGVDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xFOjpHTENvbnRleHRBTkdMRSk6CisgICAgICAgIChX
ZWJDb3JlOjpHTENvbnRleHRBTkdMRTo6fkdMQ29udGV4dEFOR0xFKToKKyAgICAgICAgKFdlYkNv
cmU6OkdMQ29udGV4dEFOR0xFOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6R0xDb250ZXh0QU5HTEU6OnN3YXBCdWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29u
dGV4dEFOR0xFOjp3YWl0TmF0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xF
OjpjYW5SZW5kZXJUb0RlZmF1bHRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHTENv
bnRleHRBTkdMRTo6ZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
TENvbnRleHRBTkdMRTo6c3dhcEludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4
dEFOR0xFOjpjYWlyb0RldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRBTkdMRTo6
cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HTENv
bnRleHRBTkdMRS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHQzREFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
dGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwOgorICAgICAgICAoTmljb3NpYTo6R0MzRExheWVy
OjpHQzNETGF5ZXIpOgorICAgICAgICAoTmljb3NpYTo6R0MzRExheWVyOjpzd2FwQnVmZmVyc0lm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVy
ZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6c2V0UGVuZGluZ0Nv
bnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6dXBkYXRlUGVuZGlu
Z0NvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4
dHVyZUdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29u
dGV4dDNEVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpHcmFw
aGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6fkdy
YXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5OjpwdXNoTmV4dEJ1ZmZlcik6CisKIDIwMTktMDktMTcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnQgY2hhbmdlIHRoYXQg
QWxleCBtaXN0YWtlbmx5IGNvbW1pdHRlZCBhdCB0aGUgc2FtZSB0aW1lIGFzIHIyNTAwMDYgYW5k
IGJyb2tlIHRoZSBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmUyYjg1NTdiNDc5Yjk2YTY5Y2NkYzRkMDJm
ODA4ZGNiZTRhNjk5Ni4uNTA2OTEyY2QyNjhhMGVhZGY4MWQ0Yjg2NDA0YzMyYzBiZTdkMGQyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wOS0xOCAgQ2hhbmdTZW9rIE9oICA8Y2hh
bmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gQWRkIEFOR0xFIGJhY2tlbmQgdG8g
R1RLIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5OTA2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OmNoZWNrUmVxdWly
ZW1lbnRzKToKKwogMjAxOS0wOS0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBXaW5DYWlybyBidWlsZCBmaXggZm9sbG93aW5n
IHIyNDk5ODUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NNYWtlTGlzdHMudHh0CmluZGV4IGFiNjkw
MmE5NWQxMzAxODQ4NjQyODc3ZmRhMGIxOTkxYjkyZWNlNDguLjQzZmRkZjg2ZTJlNWIwY2E2ZjMw
NDIxNTFhNGM4ZjI5YTkxMWY5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NNYWtlTGlzdHMu
dHh0CkBAIC0xMzYsNiArMTM2LDI3IEBAIGVsc2UgKCkKICAgICApCiBlbmRpZiAoKQogCitpZiAo
VVNFX0FOR0xFX1dFQkdMKQorICAgIFdFQktJVF9DT1BZX0ZJTEVTKExpYkdMRVN2MkVudHJ5UG9p
bnRzSGVhZGVycworICAgICAgICBERVNUSU5BVElPTiAke0FOR0xFX0ZSQU1FV09SS19IRUFERVJT
X0RJUn0vQU5HTEUKKyAgICAgICAgRklMRVMgJHtsaWJnbGVzdjJfZW50cnlfcG9pbnRzX2hlYWRl
cnN9CisgICAgICAgIEZMQVRURU5FRAorICAgICkKKworICAgIGFkZF9jdXN0b21fY29tbWFuZCgK
KyAgICAgICAgT1VUUFVUICR7QU5HTEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9BTkdMRS9hbmds
ZS50aW1lc3RhbXAKKyAgICAgICAgREVQRU5EUyBMaWJHTEVTdjJFbnRyeVBvaW50c0hlYWRlcnMg
QU5HTEVXZWJHTEhlYWRlcnMKKyAgICAgICAgQ09NTUFORCBCVUlMVF9QUk9EVUNUU19ESVI9JHtB
TkdMRV9GUkFNRVdPUktfSEVBREVSU19ESVJ9CisgICAgICAgICAgICBQVUJMSUNfSEVBREVSU19G
T0xERVJfUEFUSD1BTkdMRQorICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L2FkanVzdC1hbmdsZS1pbmNsdWRlLXBhdGhzLnNoCisgICAgICAgIFZFUkJBVElNCisgICAgKQor
ICAgIGFkZF9jdXN0b21fdGFyZ2V0KEFOR0xFLXdlYmdsLWhlYWRlcnMKKyAgICAgICAgREVQRU5E
UyAke0FOR0xFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vQU5HTEUvYW5nbGUudGltZXN0YW1wCisg
ICAgKQorICAgIGFkZF9kZXBlbmRlbmNpZXMoQU5HTEVGcmFtZXdvcmsgQU5HTEUtd2ViZ2wtaGVh
ZGVycykKK2VuZGlmICgpCisKIGlmIChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcpCiAgICAgV0VC
S0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKEFOR0xFIC1Xbm8tY2FzdC1hbGlnbgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25vLXN1Z2dlc3QtYXR0cmlidXRlPWZvcm1h
dApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvR0xFU3YyLmNtYWtlIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvR0xFU3YyLmNtYWtlCmluZGV4IDQyMWRlMzQzYmFmM2FhOGUy
YTljMDU3MDM5ZGRjNDc5MzFiNWU0OWUuLmQ4MzZiODRmM2Y1ZTZmYTdmZmNjN2VmNDM4ZGQxNTQw
YjUwZGE0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0dMRVN2Mi5jbWFr
ZQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9HTEVTdjIuY21ha2UKQEAgLTEwOTUsNiAr
MTA5NSwxMyBAQCBzZXQobGliZ2xlc3YyX3NvdXJjZXMKICAgICBzcmMvbGliR0xFU3YyL3Jlc291
cmNlLmgKICkKIAorc2V0KGxpYmdsZXN2Ml9lbnRyeV9wb2ludHNfaGVhZGVycworICAgIHNyYy9s
aWJHTEVTdjIvZW50cnlfcG9pbnRzX2VnbC5oCisgICAgc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2lu
dHNfZ2xlc18yXzBfYXV0b2dlbi5oCisgICAgc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2ludHNfZ2xl
c18zXzBfYXV0b2dlbi5oCisgICAgc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2ludHNfZ2xlc19leHRf
YXV0b2dlbi5oCispCisKIHNldChsaWJnbGVzdjFfY21fc291cmNlcwogICAgIHNyYy9saWJHTEVT
djFfQ00vbGliR0xFU3YxX0NNLmNwcAogICAgIHNyYy9saWJHTEVTdjFfQ00vbGliR0xFU3YxX0NN
LmRlZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvUGxhdGZvcm1HVEsuY21h
a2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA3NGYz
NWUyOTIzNDY3MTNkNTUwZTA0NDE2MDIxMGMyODE4NGEyNThiLi5kNGQ5OGNmN2U3Y2Y2YjQyYWQ5
NjM0MjkzYjVmYTliNmU4ZTEyNGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9QbGF0Zm9y
bUdUSy5jbWFrZQpAQCAtMSwyICsxLDI4IEBACiAjIEVuYWJsZSBHTFNMIGNvbXBpbGVyIG91dHB1
dC4KIGxpc3QoQVBQRU5EIEFOR0xFX0RFRklOSVRJT05TIEFOR0xFX0VOQUJMRV9HTFNMKQorCitp
ZiAoVVNFX0FOR0xFX0VHTCkKKyAgICBsaXN0KEFQUEVORCBBTkdMRV9TT1VSQ0VTCisgICAgICAg
ICR7YW5nbGVfc3lzdGVtX3V0aWxzX3NvdXJjZXNfbGludXh9CisgICAgICAgICR7YW5nbGVfc3lz
dGVtX3V0aWxzX3NvdXJjZXNfcG9zaXh9CisgICAgICAgICR7bGliYW5nbGVfZ2xfc291cmNlc30K
KyAgICAgICAgJHtsaWJhbmdsZV9nbF9nbHhfc291cmNlc30KKyAgICApCisKKyAgICBsaXN0KEFQ
UEVORCBBTkdMRV9ERUZJTklUSU9OUworICAgICAgICBBTkdMRV9FTkFCTEVfREVCVUdfVFJBQ0UK
KyAgICAgICAgQU5HTEVfRU5BQkxFX0RFQlVHX0FOTk9UQVRJT05TCisgICAgICAgIEFOR0xFX0VO
QUJMRV9PUEVOR0wKKyAgICAgICAgQU5HTEVfVVNFX1gxMQorICAgICkKKworICAgIGxpc3QoQVBQ
RU5EIEFOR0xFR0xFU3YyX0xJQlJBUklFUworICAgICAgICBkbAorICAgICAgICBwdGhyZWFkCisg
ICAgICAgIFgxMQorICAgICkKKworICAgIGlmIChVU0VfR0xYKQorICAgICAgICBzdHJpbmcoUkVQ
TEFDRSBzcmMvbGliR0xFU3YyL2xpYkdMRVN2Ml9hdXRvZ2VuLmNwcCAiIiBsaWJnbGVzdjJfc291
cmNlcyAiJHtsaWJnbGVzdjJfc291cmNlc30iKQorICAgIGVuZGlmICgpCitlbmRpZiAoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvYWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0
aHMuc2ggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9hZGp1c3QtYW5nbGUtaW5jbHVkZS1wYXRo
cy5zaAppbmRleCBmYWQ5YmEwODc5ODI2Zjg4NmQyNmM4NmVkMGY4YjYyYzAxOTkxOGJjLi4xN2Zh
N2ZlOTQ5Zjk4MzM5MzEzNWJiNDYyZmM5NTBmYjljODY4YmY1IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9hZGp1c3QtYW5nbGUtaW5jbHVkZS1wYXRocy5zaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9hZGp1c3QtYW5nbGUtaW5jbHVkZS1wYXRocy5zaApAQCAtMjcs
NiArMjcsMTIgQEAgZWxzZQogICAgIG91dHB1dF9kaXI9JEJVSUxUX1BST0RVQ1RTX0RJUi8kUFVC
TElDX0hFQURFUlNfRk9MREVSX1BBVEgKIGZpCiAKK2lmIFsgJCh1bmFtZSkgPT0gIkxpbnV4IiBd
OyB0aGVuCisgICAgaW5wbGFjZV9vcHQ9Ii1pIgorZWxzZQorICAgIGlucGxhY2Vfb3B0PSItaSAn
JyIKK2ZpCisKIGZvciBpIGluICRvdXRwdXRfZGlyLyouaCA7IGRvCiAgICAgaWYgWyAhIC1mICRv
dXRwdXRfZGlyL2FuZ2xlLnRpbWVzdGFtcCBdIHx8IFsgJGkgLW50ICRvdXRwdXRfZGlyL2FuZ2xl
LnRpbWVzdGFtcCBdIDsgdGhlbgogICAgICAgICBzZWQgLWUgJwpAQCAtMzcsNyArNDMsNyBAQCBz
L14jaW5jbHVkZSBbPCJdR0xFUzNcL1woLipcKVs+Il0vI2luY2x1ZGUgPEFOR0xFXC9cMT4vCiBz
L14jaW5jbHVkZSBbPCJdS0hSXC9cKC4qXClbPiJdLyNpbmNsdWRlIDxBTkdMRVwvXDE+Lwogcy9e
I2luY2x1ZGUgWzwiXWV4cG9ydC5oWz4iXS8jaW5jbHVkZSA8QU5HTEVcL2V4cG9ydC5oPi8KIHMv
XiNpbmNsdWRlICJcKGVnbGV4dF9hbmdsZVx8Z2wyZXh0X2FuZ2xlXHxTaGFkZXJWYXJzXCkuaCIv
I2luY2x1ZGUgPEFOR0xFXC9cMS5oPi8KLScgLWkgIiIgJGkKKycgJGlucGxhY2Vfb3B0ICRpCiAg
ICAgICAgIGVjaG8gUG9zdHByb2Nlc3NlZCBBTkdMRSBoZWFkZXIzICRpCiAgICAgZmkKIGRvbmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0CmluZGV4
IGY4NGVlYzc1MWFiY2E4OWQ5ZWMyNDdjZjExYjk0MThjOTlmMTY0YjEuLmZjMDAyOTFhNDM3N2M3
YTZmYmFkY2NkNjE3ZWY0ZTZkZGU4MjQ4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL2luY2x1ZGUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9DTWFrZUxpc3RzLnR4dApAQCAtNDksNiArNDksMjMgQEAgaWYgKFVTRV9BTkdM
RV9FR0wpCiAgICAgKQogZW5kaWYgKCkKIAoraWYgKFVTRV9BTkdMRV9XRUJHTCkKKyAgICBzZXQo
QU5HTEVfV0VCR0xfSEVBREVSUworICAgICAgICBleHBvcnQuaAorICAgICAgICAke2tocl9oZWFk
ZXJzfQorICAgICAgICAke2VnbF9oZWFkZXJzfQorICAgICAgICAke2dsZXNfaGVhZGVyc30KKyAg
ICAgICAgJHtnbGVzMl9oZWFkZXJzfQorICAgICAgICAke2dsZXMzX2hlYWRlcnN9CisgICAgKQor
CisgICAgV0VCS0lUX0NPUFlfRklMRVMoQU5HTEVXZWJHTEhlYWRlcnMKKyAgICAgICAgREVTVElO
QVRJT04gJHtBTkdMRV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L0FOR0xFCisgICAgICAgIEZJTEVT
ICR7QU5HTEVfV0VCR0xfSEVBREVSU30KKyAgICAgICAgRkxBVFRFTkVECisgICAgKQorZW5kaWYg
KCkKKwogIyBDb2NvYSBleHBlY3RzIGhlYWRlcnMgaW4gYW4gQU5HTEUgZGlyZWN0b3J5CiBXRUJL
SVRfQ09QWV9GSUxFUyhHTFNMQU5HSGVhZGVycwogICAgIERFU1RJTkFUSU9OICR7QU5HTEVfRlJB
TUVXT1JLX0hFQURFUlNfRElSfS9BTkdMRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggNTVkYTIzNmY4Y2MwZjZj
ZjM4YmZmZDRlODljMjAxOGQxMGZjYjVmZS4uMDIyYThiZTQyMWQwNzE0N2NkMjQxOTg5M2IxZmI5
ZThmNjk4NmMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTQwLDcgKzExNDAsNyBAQAogI2RlZmluZSBV
U0VfQU5HTEUgMAogI2VuZGlmCiAKLSNpZiAoVVNFX0FOR0xFICYmIChVU0VfT1BFTkdMIHx8IFVT
RV9PUEVOR0xfRVMgfHwgKGRlZmluZWQoVVNFX0VHTCkgJiYgVVNFX0VHTCkpKQorI2lmIChVU0Vf
QU5HTEUgJiYgKFVTRV9PUEVOR0wgfHwgVVNFX09QRU5HTF9FUyB8fCAoZGVmaW5lZChVU0VfRUdM
KSAmJiBVU0VfRUdMKSkpICYmICFVU0UoVEVYVFVSRV9NQVBQRVIpCiAjZXJyb3IgVVNFX0FOR0xF
IGlzIGluY29tcGF0aWJsZSB3aXRoIFVTRV9PUEVOR0wsIFVTRV9PUEVOR0xfRVMgYW5kIFVTRV9F
R0wKICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBmZDBiNTMzY2VkMjdmYmI1
NDc3N2YwMTkxZDgyYTM5MWU4YTk4MGQxLi5kYzEyOWM2MDE0N2RjODhmNmRhOTU5YTM5N2UzMzZi
OTE4MjJhNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExMTMsNiArMTExMyw4IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9X
aWR0aENhY2hlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9XaW5kUnVsZS5oCiAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zM0RBTkdMRS5oCisKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKIAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5k
ZXggMmYwZGE1Yjc2Y2U2YjUyN2JmZjU2NzdmYjlhOTAwYjUyNzEyNThlNC4uODI4ZjM5M2QyNWMy
YTg1Y2NmNTk3ZGVmYzI0OGY1Mjg4MzRhZmZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UK
QEAgLTM2LDYgKzM2LDEyIEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvZ3RrIgogKQogCitp
ZiAoVVNFX0FOR0xFX1dFQkdMKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNM
VURFX0RJUkVDVE9SSUVTCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZSIKKyAgICApCitlbmRpZiAoKQorCiBpZiAoVVNFX1dQRV9SRU5ERVJFUikKICAgICBs
aXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2xpYndwZSIKQEAgLTExOCwyMCArMTI0LDM4IEBAIGlm
IChVU0VfV1BFX1JFTkRFUkVSKQogICAgICkKIGVuZGlmICgpCiAKLWlmIChVU0VfT1BFTkdMX0VT
KQoraWYgKFVTRV9PUEVOR0wpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCi0gICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAKLSAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMu
Y3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAogICAgICkKIGVu
ZGlmICgpCiAKLWlmIChVU0VfT1BFTkdMKQoraWYgKFVTRV9BTkdMRV9XRUJHTCkKICAgICBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdM
U2hpbXMuY3BwCi0KLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTC5jcHAKLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNp
b25zM0RBTkdMRS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0M0RBTkdMRS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVtcG9y
YXJ5QU5HTEVTZXR0aW5nLmNwcAogICAgICkKK2Vsc2UgKCkKKyAgICBsaXN0KEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTENvbW1vbi5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvVGVtcG9yYXJ5T3BlbkdMU2V0dGluZy5jcHAKKyAgICApCisKKyAgICBpZiAoVVNFX09Q
RU5HTF9FUykKKyAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisgICAg
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xF
Uy5jcHAKKyAgICAgICAgKQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoVVNFX09QRU5HTCkKKyAg
ICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAorICAgICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAorICAgICAgICAp
CisgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChFTkFCTEVfV0FZTEFORF9UQVJHRVQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNHVEsudHh0CmluZGV4IDA0ZWJiZmMwMmIyZjk1MDliMDU3ODU4NjE3ZGM4NDE2MzM4
ZDBkMGMuLjQ4ODlkMWIxODFlMjUwNTc4OWYyZmY3ODIzMTIyNjdmMjc1MTczZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNHVEsudHh0CkBAIC02OSw2ICs2OSw4IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5jcHAgQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwIEBuby11bmlmeQog
CitwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HTENvbnRleHRBTkdMRS5jcHAgQG5vLXVuaWZ5CisK
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAg
QG5vLXVuaWZ5CiAKIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwIEBuby11
bmlmeQpAQCAtODksMTAgKzkxLDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdl
R1N0cmVhbWVyQ2Fpcm8uY3BwCiAKIHBsYXRmb3JtL2dyYXBoaWNzL2xpYndwZS9QbGF0Zm9ybURp
c3BsYXlMaWJXUEUuY3BwCiAKLXBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0xDb21tb24uY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0xDb21tb24uY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9yYXJ5T3Bl
bkdMU2V0dGluZy5jcHAKLQogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0
aWNhbERhdGEuY3BwCiAKIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5
V2F5bGFuZC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0FOR0xFV2ViS2l0QnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9B
TkdMRVdlYktpdEJyaWRnZS5oCmluZGV4IGQ0YTYwYmEyM2M2ZGFkYzNlYjUxZTAzYzYwOGJlNWFi
OGJkYzZjMWEuLmQxNGVjNGZmOTFhNTA1MGM3ODUwMjA5MmY1YjE4Y2E2Y2Q2NjY2ZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlk
Z2UuaApAQCAtMzYsMTQgKzM2LDE0IEBACiAjaW5jbHVkZSA8QU5HTEUvU2hhZGVyTGFuZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCisj
aWYgVVNFKEFOR0xFKQorI2luY2x1ZGUgPEFOR0xFL2dsMi5oPgogCisjZWxpZiBQTEFURk9STShD
T0NPQSkKICNpZiBVU0UoT1BFTkdMX0VTKQogI2ltcG9ydCA8T3BlbkdMRVMvRVMyL2dsZXh0Lmg+
CiAjZWxpZiBVU0UoT1BFTkdMKQogI2luY2x1ZGUgPE9wZW5HTC9nbC5oPgotI2VsaWYgVVNFKEFO
R0xFKQotI2luY2x1ZGUgPEFOR0xFL2dsMi5oPgogI2Vsc2UKICNlcnJvciBVbnN1cHBvcnRlZCBj
b25maWd1cmF0aW9uCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dMQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HTENvbnRleHQuY3BwCmluZGV4IDFlNDY3ODNhMDdmYWQ4MzYyNmY3NTIwNzQ2ZGMyZmRkNGVh
ZThjMGQuLmQ5NjRjYWFmMWRhYjM4YjAzMjIwN2I4NmM0ODRjNGM5MzMzNDYxYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApAQCAtMjYsMTcg
KzI2LDE1IEBACiAjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCiAjZW5kaWYKIAotI2lmIFVTRShM
SUJFUE9YWSkKLSNpbmNsdWRlIDxlcG94eS9nbC5oPgotI2VsaWYgVVNFKE9QRU5HTF9FUykKLSNp
bmNsdWRlIDxHTEVTMi9nbDIuaD4KLSNlbmRpZgotCiAjaWYgVVNFKEdMWCkKICNpbmNsdWRlICJH
TENvbnRleHRHTFguaCIKICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2VuZGlmCiAKKyNpZiBV
U0UoQU5HTEUpCisjaW5jbHVkZSAiR0xDb250ZXh0QU5HTEUuaCIKKyNlbmRpZgorCiB1c2luZyBX
VEY6OlRocmVhZFNwZWNpZmljOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDMsMTEgKzEw
MSwyMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZUNvbnRl
eHRGb3JXaW5kb3coR0xOYXRpdmVXaW5kb3dUeXBlCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LXN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29u
dGV4dChQbGF0Zm9ybURpc3BsYXkqIHBsYXRmb3JtRGlzcGxheSkKK3N0ZDo6dW5pcXVlX3B0cjxH
TENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dChQbGF0Zm9ybURpc3Bs
YXkqIHBsYXRmb3JtRGlzcGxheSwgYm9vbCB1c2VzQU5HTEUpCiB7Ci0gICAgaWYgKCFpbml0aWFs
aXplT3BlbkdMU2hpbXNJZk5lZWRlZCgpKQorICAgIGlmICghdXNlc0FOR0xFICYmICFpbml0aWFs
aXplT3BlbkdMU2hpbXNJZk5lZWRlZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAorI2lm
IFVTRShBTkdMRSkKKyAgICBpZiAodXNlc0FOR0xFKSB7CisgICAgICAgIFBsYXRmb3JtRGlzcGxh
eSYgZGlzcGxheSA9IHBsYXRmb3JtRGlzcGxheSA/ICpwbGF0Zm9ybURpc3BsYXkgOiBQbGF0Zm9y
bURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKTsKKyAgICAgICAgcmV0dXJuIEdMQ29udGV4dEFOR0xF
OjpjcmVhdGVDb250ZXh0KDAsIGRpc3BsYXkpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHVzZXNBTkdMRSk7CisjZW5kaWYKKwogICAgIHJldHVybiBjcmVhdGVDb250ZXh0Rm9yV2lu
ZG93KDAsIHBsYXRmb3JtRGlzcGxheSA/IHBsYXRmb3JtRGlzcGxheSA6ICZQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmgKaW5kZXggYjRhMjY3MGIyNGFhNmM3NzBhNjI1OTI5NjgzMzBjMWU3
Nzg0NjQ4Ni4uMDBhYjg2MjUwZjY0YWRjOTkyZGJjOTQ0MmZjOWQ3ODJiZTRiNzc2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKQEAgLTIwLDExICsy
MCwxNiBAQAogI2lmbmRlZiBHTENvbnRleHRfaAogI2RlZmluZSBHTENvbnRleHRfaAogCi0jaW5j
bHVkZSAiQU5HTEVXZWJLaXRCcmlkZ2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1EaXNwbGF5LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKKyNp
ZiBVU0UoTElCRVBPWFkpCisjaW5jbHVkZSA8ZXBveHkvZ2wuaD4KKyNlbGlmIFVTRShPUEVOR0xf
RVMpCisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjZW5kaWYKKwogI2lmIFVTRShFR0wpICYmICFQ
TEFURk9STShHVEspCiAjaWYgUExBVEZPUk0oV1BFKQogLy8gRklYTUU6IEZvciBub3cgZGVmYXVs
dCB0byB0aGUgR0JNIEVHTCBwbGF0Zm9ybSwgYnV0IHRoaXMgc2hvdWxkIHJlYWxseSBiZQpAQCAt
NTEsNyArNTYsNyBAQCBjbGFzcyBHTENvbnRleHQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEdMQ29udGV4dCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBjcmVhdGVDb250ZXh0
Rm9yV2luZG93KEdMTmF0aXZlV2luZG93VHlwZSB3aW5kb3dIYW5kbGUsIFBsYXRmb3JtRGlzcGxh
eSogPSBudWxscHRyKTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4gY3Jl
YXRlT2Zmc2NyZWVuQ29udGV4dChQbGF0Zm9ybURpc3BsYXkqID0gbnVsbHB0cik7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+IGNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoUGxh
dGZvcm1EaXNwbGF5KiA9IG51bGxwdHIsIGJvb2wgdXNlc0FOR0xFID0gZmFsc2UpOwogICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0
Zm9ybURpc3BsYXkmKTsKICAgICBzdGF0aWMgR0xDb250ZXh0KiBjdXJyZW50KCk7CiAgICAgc3Rh
dGljIGJvb2wgaXNFeHRlbnNpb25TdXBwb3J0ZWQoY29uc3QgY2hhciogZXh0ZW5zaW9uTGlzdCwg
Y29uc3QgY2hhciogZXh0ZW5zaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDYzN2JjNzRjN2JhM2I5NmI5NjJj
MDkzYWNkZjIyMDNhYWI5NTRiNWMuLjA0OTAzNmZkMWI5ZTIzNmNkZjM2MWIwNzIyYTY3ZGM5OGQ0
OThjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0QuaApAQCAtMTAxLDEyICsxMDEsMTIgQEAgY29uc3QgUGxhdGZvcm0zRE9i
amVjdCBOdWxsUGxhdGZvcm0zRE9iamVjdCA9IDA7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEV4dGVuc2lvbnMzRDsKLSNpZiAhUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMp
CisjaWYgVVNFKEFOR0xFKQorY2xhc3MgRXh0ZW5zaW9uczNEQU5HTEU7CisjZWxpZiAhUExBVEZP
Uk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpCiBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0xFUzsK
ICNlbGlmIFVTRShPUEVOR0wpIHx8IChQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykp
CiBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0w7Ci0jZWxpZiBVU0UoQU5HTEUpCi1jbGFzcyBFeHRl
bnNpb25zM0RBTkdMRTsKICNlbmRpZgogY2xhc3MgSG9zdFdpbmRvdzsKIGNsYXNzIEltYWdlOwpA
QCAtMTQ1Niw3ICsxNDU2LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNoYWRl
ck5hbWVIYXNoPiBuYW1lSGFzaE1hcEZvclNoYWRlcnM7CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkK
IAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKKyNpZiBVU0UoQU5HTEUp
CisgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMzREFOR0xFOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxFeHRlbnNpb25zM0RBTkdMRT4gbV9leHRlbnNpb25zOworI2VsaWYgIVBMQVRGT1JNKENPQ09B
KSAmJiBVU0UoT1BFTkdMX0VTKQogICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0xF
UzsKICAgICBmcmllbmQgY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0xFUz4gbV9leHRlbnNpb25zOwpAQCAtMTQ2NCw5
ICsxNDY3LDYgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdM
OwogICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0xDb21tb247CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEV4dGVuc2lvbnMzRE9wZW5HTD4gbV9leHRlbnNpb25zOwotI2VsaWYgVVNFKEFO
R0xFKQotICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RBTkdMRTsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8RXh0ZW5zaW9uczNEQU5HTEU+IG1fZXh0ZW5zaW9uczsKICNlbmRpZgogCiAgICAgR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIG1fYXR0cnM7CkBAIC0xNDkyLDcgKzE0OTIsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9sYXllckNvbXBvc2l0ZWQgeyBmYWxzZSB9OwogICAgIEdDM0R1
aW50IG1faW50ZXJuYWxDb2xvckZvcm1hdCB7IDAgfTsKIAotI2lmIFVTRShBTkdMRSkKKyNpZiBV
U0UoQU5HTEUpICYmIFBMQVRGT1JNKENPQ09BKQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
M0RTdXJmYWNlIG1fcGJ1ZmZlcjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKaW5kZXggZDNjZmQyN2Q1NzFlMzdlNjg3OTk2
NDcyNzAyOTQ0OTFjZmQ3NTNiZC4uZjc5NzZlNjFkZDg1MjQ2ZDJmNGUyNzYyYzhjMTg3ZTA5OTgw
NGRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdM
U2hpbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNo
aW1zLmNwcApAQCAtMTYyLDYgKzE2Miw3IEBAIGJvb2wgaW5pdGlhbGl6ZU9wZW5HTFNoaW1zKCkK
ICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTaGFkZXJJbmZvTG9nLCBzdWNj
ZXNzKTsKICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTaGFkZXJpdiwgc3Vj
Y2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0U2hhZGVyU291cmNl
LCBzdWNjZXNzKTsKKyAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTdHJpbmcs
IHN1Y2Nlc3MpOwogICAgIC8vIGdsR2V0U3RyaW5naSBpcyBvbmx5IGF2YWlsYWJsZSBvbiBPcGVu
R0wgb3IgR0xFUyB2ZXJzaW9ucyA+PSAzLjAuCiAgICAgLy8gQWRkIGl0IHdpdGggX0VYVCBzbyBp
dCBkb2Vzbid0IGNhdXNlIGFuIGluaXRpYWxpemF0aW9uIGZhaWx1cmUgb24gbG93ZXIgdmVyc2lv
bnMuCiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZX0VYVChnbEdldFN0cmluZ2kpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmgKaW5kZXgg
ZGUzMjk1ZGY0MGIzODI0YWRkZmQ0YTU0OGYzZDYxNzIwY2YxMzViNC4uNGMzNTdkZGU5ODFmMTM2
ZjA1OGQ4ODM3MDc4YzQxMzBkNjBkNmE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCkBAIC05OCw2ICs5OCw3IEBAIHR5cGVkZWYgdm9pZCAo
R0xBUElFTlRSWSAqZ2xHZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXJpdlR5cGUpIChHTGVudW0sIEdM
ZW51bSwgR0xpCiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsR2V0U2hhZGVySW5mb0xvZ1R5
cGUpIChHTHVpbnQsIEdMc2l6ZWksIEdMc2l6ZWkqLCBjaGFyKik7CiB0eXBlZGVmIHZvaWQgKEdM
QVBJRU5UUlkgKmdsR2V0U2hhZGVyaXZUeXBlKSAoR0x1aW50LCBHTGVudW0sIEdMaW50Kik7CiB0
eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsR2V0U2hhZGVyU291cmNlVHlwZSkgKEdMdWludCwg
R0xzaXplaSwgR0xzaXplaSosIGNoYXIqKTsKK3R5cGVkZWYgY29uc3QgR0x1Ynl0ZSogKEdMQVBJ
RU5UUlkgKmdsR2V0U3RyaW5nVHlwZSkgKEdMZW51bSk7CiB0eXBlZGVmIGNvbnN0IEdMdWJ5dGUq
IChHTEFQSUVOVFJZICpnbEdldFN0cmluZ2lUeXBlKSAoR0xlbnVtLCBHTHVpbnQpOwogdHlwZWRl
ZiBHTGludCAoR0xBUElFTlRSWSAqZ2xHZXRVbmlmb3JtTG9jYXRpb25UeXBlKSAoR0x1aW50LCBj
b25zdCBjaGFyKik7CiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsR2V0VW5pZm9ybWZ2VHlw
ZSkgKEdMdWludCwgR0xpbnQsIEdMZmxvYXQqKTsKQEAgLTIwNSw2ICsyMDYsNyBAQCB0eXBlZGVm
IHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlko
Z2xHZXRTaGFkZXJJbmZvTG9nKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFNoYWRl
cml2KTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFNoYWRlclNvdXJjZSk7CisgICAg
RlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTdHJpbmcpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VO
VFJZKGdsR2V0U3RyaW5naSk7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRVbmlmb3Jt
ZnYpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0VW5pZm9ybWl2KTsKQEAgLTMzMyw2
ICszMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAjZGVmaW5l
IGdsR2V0U2hhZGVySW5mb0xvZyAgICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElP
TihnbEdldFNoYWRlckluZm9Mb2cpCiAjZGVmaW5lIGdsR2V0U2hhZGVyaXYgICAgICAgICAgICAg
ICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFNoYWRlcml2KQogI2RlZmluZSBn
bEdldFNoYWRlclNvdXJjZSAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04o
Z2xHZXRTaGFkZXJTb3VyY2UpCisjZGVmaW5lIGdsR2V0U3RyaW5nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFN0cmluZykKICNkZWZpbmUgZ2xHZXRT
dHJpbmdpICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2V0
U3RyaW5naSkKICNkZWZpbmUgZ2xHZXRVbmlmb3JtZnYgICAgICAgICAgICAgICAgICAgICAgICAg
TE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2V0VW5pZm9ybWZ2KQogI2RlZmluZSBnbEdldFVuaWZvcm1p
diAgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xHZXRVbmlmb3Jt
aXYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bURpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcAppbmRleCAwMjhiZTFhODAzMjIzMzZlMjhkMDA1ZjFkZGNjZGYwOTQ5OWU4Nzdm
Li5kMDYzOTdhYjMwMGJlMTcyYzNkZWM5NjViYmNkNzE4MTM0OGE0ZDNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAg
LTUyLDYgKzUyLDkgQEAKIAogI2lmIFBMQVRGT1JNKEdUSykgJiYgUExBVEZPUk0oWDExKQogI2lu
Y2x1ZGUgPGdkay9nZGt4Lmg+CisjaWYgZGVmaW5lZChOb25lKQorI3VuZGVmIE5vbmUKKyNlbmRp
ZgogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspICYmIFBMQVRGT1JNKFdBWUxBTkQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HTENvbnRleHRB
TkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HTENvbnRl
eHRBTkdMRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTM5ZGQ4NTBmNDQ0ZWFlZmNmNmIxMzRkOTgzMjU4MWVi
MTcyNTAzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dMQ29udGV4dEFOR0xFLmNwcApAQCAtMCwwICsxLDIzNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHTENvbnRleHRBTkdMRS5oIgor
CisjaWYgVVNFKEFOR0xFKQorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5LmgiCisKKyNkZWZpbmUg
RUdMX0VHTF9QUk9UT1RZUEVTIDAKKy8vIFNraXAgdGhlIGluY2x1c2lvbiBvZiBBTkdMRSdzIGV4
cGxpY2l0IGNvbnRleHQgZW50cnkgcG9pbnRzIGZvciBub3cuCisjZGVmaW5lIEdMX0FOR0xFX2V4
cGxpY2l0X2NvbnRleHQKKyNkZWZpbmUgR0xfQU5HTEVfZXhwbGljaXRfY29udGV4dF9nbGVzMQor
dHlwZWRlZiB2b2lkKiBHTGVnbENvbnRleHQ7CisjaW5jbHVkZSA8QU5HTEUvZWdsLmg+CisjaW5j
bHVkZSA8QU5HTEUvZWdsZXh0Lmg+CisjaW5jbHVkZSA8QU5HTEUvZWdsZXh0X2FuZ2xlLmg+Cisj
aW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2VnbC5oPgorI2luY2x1ZGUgPEFOR0xFL2VudHJ5
X3BvaW50c19nbGVzXzJfMF9hdXRvZ2VuLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRz
X2dsZXNfZXh0X2F1dG9nZW4uaD4KKyNpbmNsdWRlIDxBTkdMRS9nbDJleHQuaD4KKyNpbmNsdWRl
IDxBTkdMRS9nbDJleHRfYW5nbGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBj
aGFyKiBHTENvbnRleHRBTkdMRTo6ZXJyb3JTdHJpbmcoaW50IHN0YXR1c0NvZGUpCit7CisgICAg
c3RhdGljX2Fzc2VydChzaXplb2YoaW50KSA+PSBzaXplb2YoRUdMaW50KSwgIkVHTGludCBtdXN0
IG5vdCBiZSB3aWRlciB0aGFuIGludCIpOworICAgIHN3aXRjaCAoc3RhdHVzQ29kZSkgeworI2Rl
ZmluZSBDQVNFX1JFVFVSTl9TVFJJTkcobmFtZSkgY2FzZSBuYW1lOiByZXR1cm4gI25hbWUKKyAg
ICAgICAgLy8gaHR0cHM6Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvRUdML3Nkay9kb2NzL21h
bi9odG1sL2VnbEdldEVycm9yLnhodG1sCisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xf
U1VDQ0VTUyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfTk9UX0lOSVRJQUxJWkVE
KTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQUNDRVNTKTsKKyAgICAgICAg
Q0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQUxMT0MpOworICAgICAgICBDQVNFX1JFVFVSTl9T
VFJJTkcoRUdMX0JBRF9BVFRSSUJVVEUpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdM
X0JBRF9DT05URVhUKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQ09ORklH
KTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQ1VSUkVOVF9TVVJGQUNFKTsK
KyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfRElTUExBWSk7CisgICAgICAgIENB
U0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX1NVUkZBQ0UpOworICAgICAgICBDQVNFX1JFVFVSTl9T
VFJJTkcoRUdMX0JBRF9NQVRDSCk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFE
X1BBUkFNRVRFUik7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX05BVElWRV9Q
SVhNQVApOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9OQVRJVkVfV0lORE9X
KTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9DT05URVhUX0xPU1QpOworI3VuZGVm
IENBU0VfUkVUVVJOX1NUUklORworICAgIGRlZmF1bHQ6IHJldHVybiAiVW5rbm93biBFR0wgZXJy
b3IiOworICAgIH0KK30KKworY29uc3QgY2hhciogR0xDb250ZXh0QU5HTEU6Omxhc3RFcnJvclN0
cmluZygpCit7CisgICAgcmV0dXJuIGVycm9yU3RyaW5nKEVHTF9HZXRFcnJvcigpKTsKK30KKwor
c3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEFOR0xFPiBHTENvbnRleHRBTkdMRTo6Y3JlYXRlQ29u
dGV4dChHTE5hdGl2ZVdpbmRvd1R5cGUsIFBsYXRmb3JtRGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5
KQoreworICAgIEVHTERpc3BsYXkgZGlzcGxheSA9IEVHTF9HZXREaXNwbGF5KEVHTF9ERUZBVUxU
X0RJU1BMQVkpOworICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIEVHTGludCBtYWpvclZlcnNpb24sIG1pbm9yVmVyc2lvbjsK
KyAgICBpZiAoRUdMX0luaXRpYWxpemUoZGlzcGxheSwgJm1ham9yVmVyc2lvbiwgJm1pbm9yVmVy
c2lvbikgPT0gRUdMX0ZBTFNFKSB7CisgICAgICAgIExPRyhXZWJHTCwgIkVHTERpc3BsYXkgSW5p
dGlhbGl6YXRpb24gZmFpbGVkLiIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cisg
ICAgTE9HKFdlYkdMLCAiQU5HTEUgaW5pdGlhbGlzZWQgTWFqb3I6ICVkIE1pbm9yOiAlZCIsIG1h
am9yVmVyc2lvbiwgbWlub3JWZXJzaW9uKTsKKworICAgIGNvbnN0IGNoYXIqIGRpc3BsYXlFeHRl
bnNpb25zID0gRUdMX1F1ZXJ5U3RyaW5nKGRpc3BsYXksIEVHTF9FWFRFTlNJT05TKTsKKyAgICBM
T0coV2ViR0wsICJFeHRlbnNpb25zOiAlcyIsIGRpc3BsYXlFeHRlbnNpb25zKTsKKworICAgIEVH
TENvbmZpZyBjb25maWc7CisgICAgRUdMaW50IGNvbmZpZ0F0dHJpYnV0ZXNbXSA9IHsKKyAgICAg
ICAgRUdMX1JFTkRFUkFCTEVfVFlQRSwgRUdMX09QRU5HTF9FUzJfQklULAorICAgICAgICBFR0xf
UkVEX1NJWkUsIDgsCisgICAgICAgIEVHTF9HUkVFTl9TSVpFLCA4LAorICAgICAgICBFR0xfQkxV
RV9TSVpFLCA4LAorICAgICAgICBFR0xfQUxQSEFfU0laRSwgOCwKKyAgICAgICAgRUdMX1NVUkZB
Q0VfVFlQRSwgRUdMX1BCVUZGRVJfQklULAorICAgICAgICBFR0xfTk9ORQorICAgIH07CisgICAg
RUdMaW50IG51bWJlckNvbmZpZ3NSZXR1cm5lZCA9IDA7CisgICAgRUdMX0Nob29zZUNvbmZpZyhk
aXNwbGF5LCBjb25maWdBdHRyaWJ1dGVzLCAmY29uZmlnLCAxLCAmbnVtYmVyQ29uZmlnc1JldHVy
bmVkKTsKKyAgICBpZiAobnVtYmVyQ29uZmlnc1JldHVybmVkICE9IDEpIHsKKyAgICAgICAgTE9H
KFdlYkdMLCAiRUdMQ29uZmlnIEluaXRpYWxpemF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorICAgIExPRyhXZWJHTCwgIkdvdCBFR0xDb25maWciKTsKKwor
ICAgIEVHTF9CaW5kQVBJKEVHTF9PUEVOR0xfRVNfQVBJKTsKKyAgICBpZiAoRUdMX0dldEVycm9y
KCkgIT0gRUdMX1NVQ0NFU1MpIHsKKyAgICAgICAgTE9HKFdlYkdMLCAiVW5hYmxlIHRvIGJpbmQg
dG8gT1BFTkdMX0VTX0FQSSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAg
ICBzdGQ6OnZlY3RvcjxFR0xpbnQ+IGNvbnRleHRBdHRyaWJ1dGVzOworICAgIGNvbnRleHRBdHRy
aWJ1dGVzLnB1c2hfYmFjayhFR0xfQ09OVEVYVF9DTElFTlRfVkVSU0lPTik7CisgICAgY29udGV4
dEF0dHJpYnV0ZXMucHVzaF9iYWNrKDIpOworICAgIGNvbnRleHRBdHRyaWJ1dGVzLnB1c2hfYmFj
ayhFR0xfQ09OVEVYVF9XRUJHTF9DT01QQVRJQklMSVRZX0FOR0xFKTsKKyAgICBjb250ZXh0QXR0
cmlidXRlcy5wdXNoX2JhY2soRUdMX1RSVUUpOworICAgIGNvbnRleHRBdHRyaWJ1dGVzLnB1c2hf
YmFjayhFR0xfRVhURU5TSU9OU19FTkFCTEVEX0FOR0xFKTsKKyAgICBjb250ZXh0QXR0cmlidXRl
cy5wdXNoX2JhY2soRUdMX1RSVUUpOworICAgIGlmIChzdHJzdHIoZGlzcGxheUV4dGVuc2lvbnMs
ICJFR0xfQU5HTEVfcG93ZXJfcHJlZmVyZW5jZSIpKSB7CisgICAgICAgIGNvbnRleHRBdHRyaWJ1
dGVzLnB1c2hfYmFjayhFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSk7CisgICAgICAgIC8vIEVH
TF9MT1dfUE9XRVJfQU5HTEUgaXMgdGhlIGRlZmF1bHQuIENoYW5nZSB0bworICAgICAgICAvLyBF
R0xfSElHSF9QT1dFUl9BTkdMRSBpZiBkZXNpcmVkLgorICAgICAgICBjb250ZXh0QXR0cmlidXRl
cy5wdXNoX2JhY2soRUdMX0xPV19QT1dFUl9BTkdMRSk7CisgICAgfQorICAgIGNvbnRleHRBdHRy
aWJ1dGVzLnB1c2hfYmFjayhFR0xfTk9ORSk7CisKKyAgICBFR0xDb250ZXh0IGNvbnRleHQgPSBF
R0xfQ3JlYXRlQ29udGV4dChkaXNwbGF5LCBjb25maWcsIEVHTF9OT19DT05URVhULCBjb250ZXh0
QXR0cmlidXRlcy5kYXRhKCkpOworICAgIGlmIChjb250ZXh0ID09IEVHTF9OT19DT05URVhUKSB7
CisgICAgICAgIExPRyhXZWJHTCwgIkVHTENvbnRleHQgSW5pdGlhbGl6YXRpb24gZmFpbGVkLiIp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgTE9HKFdlYkdMLCAiR290IEVH
TENvbnRleHQiKTsKKworICAgIHN0YXRpYyBjb25zdCBpbnQgcGJ1ZmZlckF0dHJpYnV0ZXNbXSA9
IHsgRUdMX1dJRFRILCAxLCBFR0xfSEVJR0hULCAxLCBFR0xfTk9ORSB9OworICAgIEVHTFN1cmZh
Y2Ugc3VyZmFjZSA9IEVHTF9DcmVhdGVQYnVmZmVyU3VyZmFjZShkaXNwbGF5LCBjb25maWcsIHBi
dWZmZXJBdHRyaWJ1dGVzKTsKKyAgICBpZiAoc3VyZmFjZSA9PSBFR0xfTk9fU1VSRkFDRSkgewor
ICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIFBidWZmZXIgc3VyZmFjZTog
JXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKKyAgICAgICAgRUdMX0Rlc3Ryb3lDb250ZXh0KGRp
c3BsYXksIGNvbnRleHQpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgTE9H
KFdlYkdMLCAiR290IEVHTFBidWZmZXJTdXJmYWNlIik7CisKKyAgICByZXR1cm4gc3RkOjp1bmlx
dWVfcHRyPEdMQ29udGV4dEFOR0xFPihuZXcgR0xDb250ZXh0QU5HTEUocGxhdGZvcm1EaXNwbGF5
LCBkaXNwbGF5LCBjb250ZXh0LCBzdXJmYWNlLCBTdXJmYWNlbGVzcykpOworfQorCitHTENvbnRl
eHRBTkdMRTo6R0xDb250ZXh0QU5HTEUoUGxhdGZvcm1EaXNwbGF5JiBwbGF0Zm9ybURpc3BsYXks
IEVHTERpc3BsYXkgZGlzcGxheSwgRUdMQ29udGV4dCBjb250ZXh0LCBFR0xTdXJmYWNlIHN1cmZh
Y2UsIEVHTFN1cmZhY2VUeXBlIHR5cGUpCisgICAgOiBHTENvbnRleHQocGxhdGZvcm1EaXNwbGF5
KQorICAgICwgbV9lZ2xEaXNwbGF5KGRpc3BsYXkpCisgICAgLCBtX2NvbnRleHQoY29udGV4dCkK
KyAgICAsIG1fc3VyZmFjZShzdXJmYWNlKQorICAgICwgbV90eXBlKHR5cGUpCit7CisgICAgQVNT
RVJUKHR5cGUgIT0gUGl4bWFwU3VyZmFjZSk7CisgICAgQVNTRVJUKHR5cGUgPT0gU3VyZmFjZWxl
c3MgfHwgc3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSk7CisgICAgUkVMRUFTRV9BU1NFUlQoZGlz
cGxheSAhPSBFR0xfTk9fRElTUExBWSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY29udGV4dCAhPSBF
R0xfTk9fQ09OVEVYVCk7Cit9CisKK0dMQ29udGV4dEFOR0xFOjp+R0xDb250ZXh0QU5HTEUoKQor
eworICAgIGlmIChtX2NvbnRleHQpIHsKKyAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9G
UkFNRUJVRkZFUiwgMCk7CisgICAgICAgIEVHTF9NYWtlQ3VycmVudChtX2VnbERpc3BsYXksIEVH
TF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOworICAgICAgICBF
R0xfRGVzdHJveUNvbnRleHQobV9lZ2xEaXNwbGF5LCBtX2NvbnRleHQpOworICAgIH0KKworICAg
IGlmIChtX3N1cmZhY2UpCisgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2VnbERpc3BsYXks
IG1fc3VyZmFjZSk7Cit9CisKK2Jvb2wgR0xDb250ZXh0QU5HTEU6Om1ha2VDb250ZXh0Q3VycmVu
dCgpCit7CisgICAgQVNTRVJUKG1fY29udGV4dCk7CisKKyAgICBHTENvbnRleHQ6Om1ha2VDb250
ZXh0Q3VycmVudCgpOworICAgIGlmIChFR0xfR2V0Q3VycmVudENvbnRleHQoKSAhPSBtX2NvbnRl
eHQpCisgICAgICAgIHJldHVybiBFR0xfTWFrZUN1cnJlbnQobV9lZ2xEaXNwbGF5LCBtX3N1cmZh
Y2UsIG1fc3VyZmFjZSwgbV9jb250ZXh0KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBH
TENvbnRleHRBTkdMRTo6c3dhcEJ1ZmZlcnMoKQoreworICAgIEFTU0VSVChtX3N1cmZhY2UpOwor
ICAgIEVHTF9Td2FwQnVmZmVycyhtX2VnbERpc3BsYXksIG1fc3VyZmFjZSk7Cit9CisKK3ZvaWQg
R0xDb250ZXh0QU5HTEU6OndhaXROYXRpdmUoKQoreworICAgIEVHTF9XYWl0TmF0aXZlKEVHTF9D
T1JFX05BVElWRV9FTkdJTkUpOworfQorCitib29sIEdMQ29udGV4dEFOR0xFOjpjYW5SZW5kZXJU
b0RlZmF1bHRGcmFtZWJ1ZmZlcigpCit7CisgICAgcmV0dXJuIG1fdHlwZSA9PSBXaW5kb3dTdXJm
YWNlOworfQorCitJbnRTaXplIEdMQ29udGV4dEFOR0xFOjpkZWZhdWx0RnJhbWVCdWZmZXJTaXpl
KCkKK3sKKyAgICBpZiAoIWNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVyKCkpCisgICAgICAg
IHJldHVybiBJbnRTaXplKCk7CisKKyAgICBFR0xpbnQgd2lkdGgsIGhlaWdodDsKKyAgICBpZiAo
IUVHTF9RdWVyeVN1cmZhY2UobV9lZ2xEaXNwbGF5LCBtX3N1cmZhY2UsIEVHTF9XSURUSCwgJndp
ZHRoKQorICAgICAgICB8fCAhRUdMX1F1ZXJ5U3VyZmFjZShtX2VnbERpc3BsYXksIG1fc3VyZmFj
ZSwgRUdMX0hFSUdIVCwgJmhlaWdodCkpCisgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAg
ICByZXR1cm4gSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKK30KKwordm9pZCBHTENvbnRleHRBTkdM
RTo6c3dhcEludGVydmFsKGludCBpbnRlcnZhbCkKK3sKKyAgICBBU1NFUlQobV9zdXJmYWNlKTsK
KyAgICBFR0xfU3dhcEludGVydmFsKG1fZWdsRGlzcGxheSwgaW50ZXJ2YWwpOworfQorCisjaWYg
VVNFKENBSVJPKQorY2Fpcm9fZGV2aWNlX3QqIEdMQ29udGV4dEFOR0xFOjpjYWlyb0RldmljZSgp
Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShHUkFQSElD
U19DT05URVhUXzNEKQorUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBHTENvbnRleHRBTkdMRTo6
cGxhdGZvcm1Db250ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0OworfQorI2VuZGlmCisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShBTkdMRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dMQ29udGV4dEFOR0xF
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HTENvbnRleHRBTkdM
RS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk4MmVkZGQ1ODNlZDMwZmRiMWQ1YzQ5MTBmODBlN2VhMjVjYzUxZjcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9HTENvbnRleHRBTkdMRS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZQorICogIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgVVNFKEFOR0xFKQorCisjaW5jbHVkZSAiR0xDb250ZXh0LmgiCisK
K3R5cGVkZWYgdm9pZCAqRUdMQ29uZmlnOwordHlwZWRlZiB2b2lkICpFR0xDb250ZXh0OwordHlw
ZWRlZiB2b2lkICpFR0xEaXNwbGF5OwordHlwZWRlZiB2b2lkICpFR0xTdXJmYWNlOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dEFOR0xFIGZpbmFsIDogcHVibGljIEdM
Q29udGV4dCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR0xDb250ZXh0QU5HTEUpOworcHVi
bGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0QU5HTEU+IGNyZWF0ZUNv
bnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlLCBQbGF0Zm9ybURpc3BsYXkmKTsKKworICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBlcnJvclN0cmluZyhpbnQgc3RhdHVzQ29kZSk7CisgICAgc3RhdGljIGNv
bnN0IGNoYXIqIGxhc3RFcnJvclN0cmluZygpOworCisgICAgdmlydHVhbCB+R0xDb250ZXh0QU5H
TEUoKTsKKworcHJpdmF0ZToKKyAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpIG92ZXJyaWRl
OworICAgIHZvaWQgc3dhcEJ1ZmZlcnMoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdhaXROYXRpdmUo
KSBvdmVycmlkZTsKKyAgICBib29sIGNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVmZmVyKCkgb3Zl
cnJpZGU7CisgICAgSW50U2l6ZSBkZWZhdWx0RnJhbWVCdWZmZXJTaXplKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzd2FwSW50ZXJ2YWwoaW50KSBvdmVycmlkZTsKKyNpZiBVU0UoQ0FJUk8pCisgICAg
Y2Fpcm9fZGV2aWNlX3QqIGNhaXJvRGV2aWNlKCkgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICBib29s
IGlzRUdMQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKworI2lmIEVO
QUJMRShHUkFQSElDU19DT05URVhUXzNEKQorICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qg
cGxhdGZvcm1Db250ZXh0KCkgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIGVudW0gRUdMU3VyZmFj
ZVR5cGUgeyBQYnVmZmVyU3VyZmFjZSwgV2luZG93U3VyZmFjZSwgUGl4bWFwU3VyZmFjZSwgU3Vy
ZmFjZWxlc3MgfTsKKworICAgIEdMQ29udGV4dEFOR0xFKFBsYXRmb3JtRGlzcGxheSYsIEVHTERp
c3BsYXksIEVHTENvbnRleHQsIEVHTFN1cmZhY2UsIEVHTFN1cmZhY2VUeXBlKTsKKworICAgIEVH
TERpc3BsYXkgbV9lZ2xEaXNwbGF5IHsgbnVsbHB0ciB9OworICAgIEVHTENvbnRleHQgbV9jb250
ZXh0IHsgbnVsbHB0ciB9OworICAgIEVHTFN1cmZhY2UgbV9zdXJmYWNlIHsgbnVsbHB0ciB9Owor
ICAgIEVHTFN1cmZhY2VUeXBlIG1fdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHAK
aW5kZXggN2NiZGZmZThlY2QwZjM2NTZkMDhhMWEwOTk5YTFiMzU4ODA1ZWNmYi4uZDM4YmQyMGE4
ZWM1ZTU4ZTg3ODZiZDk0NGExZGY4Nzg2YzAzNDlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0
M0RBTkdMRS5jcHAKQEAgLTY5LDYgKzY5LDExIEBAIHR5cGVkZWYgdm9pZCogR0xlZ2xDb250ZXh0
OwogLy8gd291bGQgbmVlZCBtb3JlIHdvcmsgdG8gYmUgaW5jbHVkZWQgZnJvbSBXZWJDb3JlLgog
I2RlZmluZSBHTF9NQVhfU0FNUExFU19FWFQgMHg4RDU3CiAKKyNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNkZWZpbmUgR0xfQ09MT1JfQVRUQUNI
TUVOVDBfRVhUIDB4OENFMAorI2RlZmluZSBHTF9GUkFNRUJVRkZFUl9FWFQgMHg4RDQwCisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgY2hhciogcGFja2VkRGVw
dGhTdGVuY2lsRXh0ZW5zaW9uTmFtZSA9ICJHTF9PRVNfcGFja2VkX2RlcHRoX3N0ZW5jaWwiOwpA
QCAtMjAwLDYgKzIwNSwyMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhj
b25zdCBJbnRTaXplJiBzaXplKQogI2Vsc2UKICNlcnJvciBVbmtub3duIENvY29hIHBsYXRmb3Jt
CiAjZW5kaWYKKworI2VsaWYgUExBVEZPUk0oR1RLKQorICAgIGdsOjpCaW5kVGV4dHVyZShHTF9U
RVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV90ZXh0dXJlKTsKKyAgICBnbDo6VGV4SW1hZ2UyRChH
TF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgMCwgbV9pbnRlcm5hbENvbG9yRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0LCAwLCBjb2xvckZvcm1hdCwgR0xfVU5TSUdORURfQllURSwgMCk7CisgICAgZ2w6
OkZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5U
MCwgR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fdGV4dHVyZSwgMCk7CisjaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTKQorICAgIGlmIChtX2NvbXBvc2l0b3JUZXh0dXJlKSB7CisgICAg
ICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV9jb21wb3Np
dG9yVGV4dHVyZSk7CisgICAgICAgIGdsOjpUZXhJbWFnZTJEKEdMX1RFWFRVUkVfUkVDVEFOR0xF
X0FOR0xFLCAwLCBtX2ludGVybmFsQ29sb3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIDAsIGNvbG9y
Rm9ybWF0LCBHTF9VTlNJR05FRF9CWVRFLCAwKTsKKyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdM
X1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCAwKTsKKyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdM
X1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX2ludGVybWVkaWF0ZVRleHR1cmUpOworICAgICAg
ICBnbDo6VGV4SW1hZ2UyRChHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgMCwgbV9pbnRlcm5h
bENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBjb2xvckZvcm1hdCwgR0xfVU5TSUdORURf
QllURSwgMCk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9B
TkdMRSwgMCk7CisgICAgfQorI2VuZGlmCisKICNlbHNlCiAKICNlcnJvciBNdXN0IHBvcnQgdG8g
bm9uLUNvY29hIHBsYXRmb3JtcwpAQCAtNDg3LDcgKzUwOCwyMCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjpwcmVwYXJlVGV4dHVyZSgpCiAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKQogICAg
ICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKKyNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCisgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9jb21wb3NpdG9yVGV4
dHVyZSk7CisgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsK
KyAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7CisgICAgZ2w6
OkZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5U
MCwgR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fdGV4dHVyZSwgMCk7CisgICAgZ2w6OkZs
dXNoKCk7CisKKyAgICBpZiAobV9zdGF0ZS5ib3VuZEZCTyAhPSBtX2ZibykKKyAgICAgICAgZ2w6
OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fc3RhdGUu
Ym91bmRGQk8pOworICAgIGVsc2UKKyAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGlj
c0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKKyNlbHNlCiAgICAgZ2w6OkZsdXNoKCk7
CisjZW5kaWYKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3Vs
dHModW5zaWduZWQgY2hhciAqcGl4ZWxzLCBpbnQgcGl4ZWxzU2l6ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNE
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDM0RMYXllci5jcHAKaW5kZXggOWE5YmQ0NjgzYjI2NzQyYWZlY2IxNDkxZjYx
NDRmMmE3OGM1OTUyYy4uZDBkOGI0ZGZhMGE1M2JlZjliNTY2NDkyNjAxYjgwMDFjZmFmNjFkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDM0RMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5jcHAKQEAgLTM3LDYgKzM3LDEw
IEBACiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oIgogI2VuZGlm
CiAKKyNpZiBVU0UoQU5HTEUpCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNlbmRpZgorCiAj
aW5jbHVkZSAiR0xDb250ZXh0LmgiCiAKIG5hbWVzcGFjZSBOaWNvc2lhIHsKQEAgLTQ5LDcgKzUz
LDExIEBAIEdDM0RMYXllcjo6R0MzRExheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBH
cmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUKIHsKICAgICBzd2l0Y2ggKHJlbmRlclN0eWxl
KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgorI2lmIFVT
RShBTkdMRSkKKyAgICAgICAgbV9nbENvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVl
bkNvbnRleHQoJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCks
IHRydWUpOworI2Vsc2UKICAgICAgICAgbV9nbENvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9m
ZnNjcmVlbkNvbnRleHQoJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0
aW5nKCkpOworI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTgyLDEzICs5MCwzOCBAQCB2b2lkIEdDM0RMYXllcjo6c3dhcEJ1ZmZlcnNJZk5l
ZWRlZCgpCiAKICAgICBtX2NvbnRleHQucHJlcGFyZVRleHR1cmUoKTsKICAgICBJbnRTaXplIHRl
eHR1cmVTaXplKG1fY29udGV4dC5tX2N1cnJlbnRXaWR0aCwgbV9jb250ZXh0Lm1fY3VycmVudEhl
aWdodCk7Ci0gICAgVGV4dHVyZU1hcHBlckdMOjpGbGFncyBmbGFncyA9IFRleHR1cmVNYXBwZXJH
TDo6U2hvdWxkRmxpcFRleHR1cmUgfCAobV9jb250ZXh0Lm1fYXR0cnMuYWxwaGEgPyBUZXh0dXJl
TWFwcGVyR0w6OlNob3VsZEJsZW5kIDogMCk7CisgICAgVGV4dHVyZU1hcHBlckdMOjpGbGFncyBm
bGFncyA9IG1fY29udGV4dC5tX2F0dHJzLmFscGhhID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRC
bGVuZCA6IDA7CisjaWYgVVNFKEFOR0xFKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHRleHR1cmVTaXplLCBVbmFjY2Vs
ZXJhdGVkKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2NvbnRleHQucGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoaW1hZ2VCdWZmZXIuZ2V0KCkp
OworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBpbWFnZUJ1ZmZlci0+Y29weUltYWdlKERvbnRD
b3B5QmFja2luZ1N0b3JlKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisjZWxz
ZQorICAgIGZsYWdzIHw9IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkRmxpcFRleHR1cmU7CisjZW5k
aWYKIAogICAgIHsKICAgICAgICAgYXV0byYgcHJveHkgPSBkb3duY2FzdDxOaWNvc2lhOjpDb250
ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbD4obV9jb250ZW50TGF5ZXItPmltcGwoKSkucHJveHko
KTsKKyNpZiBVU0UoQU5HTEUpCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllckJ1ZmZlcj4gbGF5ZXJCdWZmZXI7CisgICAgICAgIGxheWVyQnVmZmVyID0g
cHJveHkuZ2V0QXZhaWxhYmxlQnVmZmVyKHRleHR1cmVTaXplLCBtX2NvbnRleHQubV9pbnRlcm5h
bENvbG9yRm9ybWF0KTsKKyAgICAgICAgaWYgKCFsYXllckJ1ZmZlcikgeworICAgICAgICAgICAg
YXV0byB0ZXh0dXJlID0gQml0bWFwVGV4dHVyZUdMOjpjcmVhdGUoVGV4dHVyZU1hcHBlckNvbnRl
eHRBdHRyaWJ1dGVzOjpnZXQoKSwgbV9jb250ZXh0Lm1faW50ZXJuYWxDb2xvckZvcm1hdCk7Cisg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxCaXRtYXBUZXh0dXJlR0wmPih0ZXh0dXJlLmdldCgpKS5z
ZXRQZW5kaW5nQ29udGVudHMoV1RGTW92ZShpbWFnZSkpOworICAgICAgICAgICAgbGF5ZXJCdWZm
ZXIgPSBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPihXVEZNb3Zl
KHRleHR1cmUpLCBmbGFncyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbGF5ZXJCdWZm
ZXItPnRleHR1cmVHTCgpLnNldFBlbmRpbmdDb250ZW50cyhXVEZNb3ZlKGltYWdlKSk7CiAKKyAg
ICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgcHJveHkucHVz
aE5leHRCdWZmZXIoV1RGTW92ZShsYXllckJ1ZmZlcikpOworI2Vsc2UKICAgICAgICAgTG9ja0hv
bGRlciBob2xkZXIocHJveHkubG9jaygpKTsKICAgICAgICAgcHJveHkucHVzaE5leHRCdWZmZXIo
bWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4obV9jb250ZXh0Lm1f
Y29tcG9zaXRvclRleHR1cmUsIHRleHR1cmVTaXplLCBmbGFncywgbV9jb250ZXh0Lm1faW50ZXJu
YWxDb2xvckZvcm1hdCkpOworI2VuZGlmCiAgICAgfQogCiAgICAgbV9jb250ZXh0Lm1hcmtMYXll
ckNvbXBvc2l0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggNzliMDA2ZTE0ZDFhOWYz
MWQwMmRjNzY3ODcyMWU3MTRiM2RjY2NiYi4uZjJkMGY2NGIzZmY3OWRjYmEwYTZhZTRjNDI4NDA4
ZjgxMzAxODdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKIAog
I2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIK
LSNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5oIgogI2luY2x1
ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKQEAgLTE2OSw2
ICsxNjgsMjUgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKEltYWdlKiBp
bWFnZSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY28KICAgICB1cGRhdGVDb250ZW50cyhp
bWFnZURhdGEsIHRhcmdldFJlY3QsIG9mZnNldCwgYnl0ZXNQZXJMaW5lKTsKIH0KIAorI2lmIFVT
RShBTkdMRSkKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjpzZXRQZW5kaW5nQ29udGVudHMoUmVmUHRy
PEltYWdlPiBpbWFnZSkKK3sKKyAgICBtX3BlbmRpbmdDb250ZW50cyA9IGltYWdlOworfQorCit2
b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlUGVuZGluZ0NvbnRlbnRzKGNvbnN0IEludFJlY3Qm
IHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBvZmZzZXQpCit7CisgICAgaWYgKCFtX3BlbmRp
bmdDb250ZW50cykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFpc1ZhbGlkKCkpIHsKKyAg
ICAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZShtX3BlbmRpbmdDb250ZW50cy0+c2l6ZSgpKTsKKyAg
ICAgICAgcmVzZXQodGV4dHVyZVNpemUpOworICAgIH0KKyAgICB1cGRhdGVDb250ZW50cyhtX3Bl
bmRpbmdDb250ZW50cy5nZXQoKSwgdGFyZ2V0UmVjdCwgb2Zmc2V0KTsKK30KKyNlbmRpZgorCiBz
dGF0aWMgdW5zaWduZWQgZ2V0UGFzc2VzUmVxdWlyZWRGb3JGaWx0ZXIoRmlsdGVyT3BlcmF0aW9u
OjpPcGVyYXRpb25UeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdM
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVy
ZUdMLmgKaW5kZXggODcwOWE4MjU2MGM2NDk4ODc0ODkzOGI4Yjg2ZTEzYmY1M2EwYmVmNi4uMDAz
NzY4ZTY0MDA4OGNmNmEwNjhkNGNhNGY3NGVhNzc4NWY3ZDJiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wu
aApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkJpdG1hcFRleHR1cmUuaCIKICNpbmNsdWRl
ICJDbGlwU3RhY2suaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKKyNpbmNsdWRlICJJ
bWFnZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyQ29u
dGV4dEF0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wuaCIKQEAgLTc3LDYg
Kzc4LDEwIEBAIHB1YmxpYzoKICAgICBHTGludCBpbnRlcm5hbEZvcm1hdCgpIGNvbnN0IHsgcmV0
dXJuIG1faW50ZXJuYWxGb3JtYXQ7IH0KIAogICAgIHZvaWQgY29weUZyb21FeHRlcm5hbFRleHR1
cmUoR0x1aW50IHRleHR1cmVJRCk7CisjaWYgVVNFKEFOR0xFKQorICAgIHZvaWQgc2V0UGVuZGlu
Z0NvbnRlbnRzKFJlZlB0cjxJbWFnZT4pOworICAgIHZvaWQgdXBkYXRlUGVuZGluZ0NvbnRlbnRz
KGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBvZmZzZXQpOworI2Vu
ZGlmCiAKICAgICBUZXh0dXJlTWFwcGVyR0w6OkZsYWdzIGNvbG9yQ29udmVydEZsYWdzKCkgY29u
c3QgeyByZXR1cm4gbV9jb2xvckNvbnZlcnRGbGFnczsgfQogCkBAIC05NCw2ICs5OSwxMCBAQCBw
cml2YXRlOgogICAgIFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcyBtX2NvbnRleHRBdHRy
aWJ1dGVzOwogICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgbV9jb2xvckNvbnZlcnRGbGFncyB7
IFRleHR1cmVNYXBwZXJHTDo6Tm9GbGFnIH07CiAKKyNpZiBVU0UoQU5HTEUpCisgICAgUmVmUHRy
PEltYWdlPiBtX3BlbmRpbmdDb250ZW50cyB7IG51bGxwdHIgfTsKKyNlbmRpZgorCiAgICAgdm9p
ZCBjbGVhcklmTmVlZGVkKCk7CiAgICAgdm9pZCBjcmVhdGVGYm9JZk5lZWRlZCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3ND
b250ZXh0M0RUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDhmZDNh
ZDRmNzJkNzY0YmQ5NWQyMjBmNTgxZWQyYjc5NjI4ODNjOWMuLmM0NWFmZDc5YjI3NDE2YmIyOWQ1
NDYxZGY5ODFlN2I0NzlmMDY5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQz
RFRleHR1cmVNYXBwZXIuY3BwCkBAIC0zNywxMyArMzcsMzIgQEAKIAogI2luY2x1ZGUgPEFOR0xF
L1NoYWRlckxhbmcuaD4KIAotI2lmIFVTRShMSUJFUE9YWSkKKyNpZiBVU0UoQU5HTEUpCisjZGVm
aW5lIEVHTF9FR0xfUFJPVE9UWVBFUyAwCisvLyBTa2lwIHRoZSBpbmNsdXNpb24gb2YgQU5HTEUn
cyBleHBsaWNpdCBjb250ZXh0IGVudHJ5IHBvaW50cyBmb3Igbm93LgorI2RlZmluZSBHTF9BTkdM
RV9leHBsaWNpdF9jb250ZXh0CisjZGVmaW5lIEdMX0FOR0xFX2V4cGxpY2l0X2NvbnRleHRfZ2xl
czEKK3R5cGVkZWYgdm9pZCogR0xlZ2xDb250ZXh0OworI2luY2x1ZGUgPEFOR0xFL2VnbC5oPgor
I2luY2x1ZGUgPEFOR0xFL2VnbGV4dC5oPgorI2luY2x1ZGUgPEFOR0xFL2VnbGV4dF9hbmdsZS5o
PgorI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19lZ2wuaD4KKyNpbmNsdWRlIDxBTkdMRS9l
bnRyeV9wb2ludHNfZ2xlc18yXzBfYXV0b2dlbi5oPgorI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3Bv
aW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+CisjaW5jbHVkZSA8QU5HTEUvZ2wyZXh0Lmg+CisjaW5j
bHVkZSA8QU5HTEUvZ2wyZXh0X2FuZ2xlLmg+CisjaWYgZGVmaW5lZChOb25lKQorI3VuZGVmIE5v
bmUKKyNlbmRpZgorI2VsaWYgVVNFKExJQkVQT1hZKQogI2luY2x1ZGUgPGVwb3h5L2dsLmg+CiAj
ZWxpZiAhVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2VuZGlmCiAK
LSNpZiBVU0UoT1BFTkdMX0VTKQorI2lmIFVTRShBTkdMRSkKKyNpbmNsdWRlICJFeHRlbnNpb25z
M0RBTkdMRS5oIgorI2VsaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlICJFeHRlbnNpb25zM0RP
cGVuR0xFUy5oIgogI2Vsc2UKICNpbmNsdWRlICJFeHRlbnNpb25zM0RPcGVuR0wuaCIKQEAgLTcx
LDcgKzkwLDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogICAgIHN0YXRpYyBib29sIGluaXRp
YWxpemVkID0gZmFsc2U7CiAgICAgc3RhdGljIGJvb2wgc3VjY2VzcyA9IHRydWU7CiAgICAgaWYg
KCFpbml0aWFsaXplZCkgewotI2lmICFVU0UoT1BFTkdMX0VTKSAmJiAhVVNFKExJQkVQT1hZKQor
I2lmICFVU0UoT1BFTkdMX0VTKSAmJiAhVVNFKExJQkVQT1hZKSAmJiAhVVNFKEFOR0xFKQogICAg
ICAgICBzdWNjZXNzID0gaW5pdGlhbGl6ZU9wZW5HTFNoaW1zKCk7CiAjZW5kaWYKICAgICAgICAg
aW5pdGlhbGl6ZWQgPSB0cnVlOwpAQCAtMTAxLDYgKzEyMCw3OSBAQCBSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRy
aWJ1dGVzCiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKKyNpZiBVU0UoQU5HTEUpCitHcmFwaGlj
c0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUg
cmVuZGVyU3R5bGUsIEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0KQorICAgIDogbV9h
dHRycyhhdHRyaWJ1dGVzKQoreworICAgIEFTU0VSVF9VTlVTRUQoc2hhcmVkQ29udGV4dCwgIXNo
YXJlZENvbnRleHQpOworI2lmIFVTRShOSUNPU0lBKQorICAgIG1fbmljb3NpYUxheWVyID0gV1RG
OjptYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RMYXllcj4oKnRoaXMsIHJlbmRlclN0eWxlKTsKKyNl
bHNlCisgICAgbV90ZXhtYXBMYXllciA9IFdURjo6bWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyR0Mz
RFBsYXRmb3JtTGF5ZXI+KCp0aGlzLCByZW5kZXJTdHlsZSk7CisjZW5kaWYKKyAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKKworCisgICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAo
cmVuZGVyU3R5bGUgPT0gUmVuZGVyT2Zmc2NyZWVuKSB7CisgICAgICAgIC8vIENyZWF0ZSBhIHRl
eHR1cmUgdG8gcmVuZGVyIGludG8uCisgICAgICAgIGdsOjpHZW5UZXh0dXJlcygxLCAmbV90ZXh0
dXJlKTsKKyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xF
LCBtX3RleHR1cmUpOworICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZihHTF9URVhUVVJFX1JFQ1RB
TkdMRV9BTkdMRSwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgICAgICBn
bDo6VGV4UGFyYW1ldGVyZihHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgR0xfVEVYVFVSRV9N
SU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaShHTF9URVhU
VVJFX1JFQ1RBTkdMRV9BTkdMRSwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0Up
OworICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwg
R0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAgICAgICBnbDo6QmluZFRl
eHR1cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIDApOworCisgICAgICAgIC8vIENyZWF0
ZSBhbiBGQk8uCisgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKKyAgICAg
ICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOworCisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTKQorICAgICAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fY29t
cG9zaXRvclRleHR1cmUpOworICAgICAgICBnbDo6QmluZFRleHR1cmUoR0xfVEVYVFVSRV9SRUNU
QU5HTEVfQU5HTEUsIG1fY29tcG9zaXRvclRleHR1cmUpOworICAgICAgICBnbDo6VGV4UGFyYW1l
dGVyZihHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBH
TF9MSU5FQVIpOworICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZihHTF9URVhUVVJFX1JFQ1RBTkdM
RV9BTkdMRSwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgICAgICBnbDo6
VGV4UGFyYW1ldGVyaShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgR0xfVEVYVFVSRV9XUkFQ
X1MsIEdMX0NMQU1QX1RPX0VER0UpOworICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaShHTF9URVhU
VVJFX1JFQ1RBTkdMRV9BTkdMRSwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0Up
OworCisgICAgICAgIGdsOjpHZW5UZXh0dXJlcygxLCAmbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsK
KyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX2lu
dGVybWVkaWF0ZVRleHR1cmUpOworICAgICAgICBnbDo6VGV4UGFyYW1ldGVyZihHTF9URVhUVVJF
X1JFQ1RBTkdMRV9BTkdMRSwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAg
ICAgICBnbDo6VGV4UGFyYW1ldGVyZihHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgR0xfVEVY
VFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaShH
TF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RP
X0VER0UpOworICAgICAgICBnbDo6VGV4UGFyYW1ldGVyaShHTF9URVhUVVJFX1JFQ1RBTkdMRV9B
TkdMRSwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworCisgICAgICAgIGds
OjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgMCk7CisjZW5kaWYKKwor
ICAgICAgICAvLyBDcmVhdGUgYSBtdWx0aXNhbXBsZSBGQk8uCisgICAgICAgIGlmIChtX2F0dHJz
LmFudGlhbGlhcykgeworICAgICAgICAgICAgZ2w6OkdlbkZyYW1lYnVmZmVycygxLCAmbV9tdWx0
aXNhbXBsZUZCTyk7CisgICAgICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCBtX211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBt
X211bHRpc2FtcGxlRkJPOworICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1f
bXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2ls
IHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMo
MSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgLy8gQmluZCBjYW52YXMgRkJPLgorICAgICAgICAgICAgZ2w6OkJpbmRGcmFt
ZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOworICAgICAgICAgICAgbV9zdGF0ZS5ib3Vu
ZEZCTyA9IG1fZmJvOworI2lmIFVTRShPUEVOR0xfRVMpCisgICAgICAgICAgICBpZiAobV9hdHRy
cy5kZXB0aCkKKyAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0
aEJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAgICAgICAgICAg
ICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOworI2VuZGlmCisg
ICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAg
ICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGdsOjpDbGVhckNvbG9yKDAsIDAsIDAsIDApOworfQor
I2Vsc2UKIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRl
eHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNE
OjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRl
eHQpCiAgICAgOiBtX2F0dHJzKGF0dHJpYnV0ZXMpCiB7CkBAIC0xNzEsNiArMjYzLDcgQEAgR3Jh
cGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcyBhdHRyaWJ1dGVzLCBIb3MKICAgICAgICAgfQogICAgIH0KIAorI2lmICFVU0UoQU5HTEUp
CiAjaWYgIVVTRShPUEVOR0xfRVMpCiAgICAgOjpnbEVuYWJsZShHTF9WRVJURVhfUFJPR1JBTV9Q
T0lOVF9TSVpFKTsKIApAQCAtMjAwLDYgKzI5Myw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFw
aGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9z
CiAjZWxzZQogICAgIC8vIEFkanVzdCB0aGUgc2hhZGVyIHNwZWNpZmljYXRpb24gZGVwZW5kaW5n
IG9uIHdoZXRoZXIgR0xFUzMgKGkuZS4gV2ViR0wyIHN1cHBvcnQpIHdhcyByZXF1ZXN0ZWQuCiAg
ICAgbV9jb21waWxlciA9IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVULCBtX2F0dHJz
LmlzV2ViR0wyID8gU0hfV0VCR0wyX1NQRUMgOiBTSF9XRUJHTF9TUEVDKTsKKyNlbmRpZgogI2Vu
ZGlmCiAKICAgICAvLyBBTkdMRSBpbml0aWFsaXphdGlvbi4KQEAgLTIyNSw3ICszMTksNTEgQEAg
R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0
cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKIAogICAgIDo6Z2xDbGVhckNvbG9yKDAsIDAsIDAsIDAp
OwogfQorI2VuZGlmCisKKyNpZiBVU0UoQU5HTEUpCitHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBo
aWNzQ29udGV4dDNEKCkKK3sKKyAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKKyAgICBpZiAobV90
ZXh0dXJlKQorICAgICAgICBnbDo6RGVsZXRlVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorICAgIGlmIChtX2NvbXBvc2l0b3JUZXh0dXJlKQor
ICAgICAgICBnbDo6RGVsZXRlVGV4dHVyZXMoMSwgJm1fY29tcG9zaXRvclRleHR1cmUpOworI2Vu
ZGlmCisKKyAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICAgICAgZ2w6OkRlbGV0ZVJl
bmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7CisgICAgICAgIGlmICht
X2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgIGdsOjpEZWxldGVS
ZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKKyAgICAg
ICAgZ2w6OkRlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CisgICAgfSBl
bHNlIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgeworI2lmIFVTRShPUEVO
R0xfRVMpCisgICAgICAgIGlmIChtX2RlcHRoQnVmZmVyKQorICAgICAgICAgICAgZ2xEZWxldGVS
ZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyKTsKKworICAgICAgICBpZiAobV9zdGVuY2ls
QnVmZmVyKQorICAgICAgICAgICAgZ2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxC
dWZmZXIpOworI2VuZGlmCisgICAgICAgIGlmIChtX2RlcHRoU3RlbmNpbEJ1ZmZlcikKKyAgICAg
ICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7
CisgICAgfQorICAgIGdsOjpEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCisgICAgZ2w6OkRlbGV0ZVRleHR1cmVzKDEsICZtX2ludGVy
bWVkaWF0ZVRleHR1cmUpOworI2VuZGlmCiAKKyNpZiBVU0UoQ0FJUk8pCisgICAgaWYgKG1fdmFv
KQorICAgICAgICBkZWxldGVWZXJ0ZXhBcnJheShtX3Zhbyk7CisjZW5kaWYKKworICAgIGF1dG8q
IGFjdGl2ZUNvbnRleHQgPSBhY3RpdmVDb250ZXh0cygpLnRha2VMYXN0KFt0aGlzXShhdXRvKiBp
dCkgeworICAgICAgICByZXR1cm4gaXQgPT0gdGhpczsKKyAgICB9KTsKKyAgICBBU1NFUlRfVU5V
U0VEKGFjdGl2ZUNvbnRleHQsICEhYWN0aXZlQ29udGV4dCk7Cit9CisjZWxzZQogR3JhcGhpY3ND
b250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50
KCk7CkBAIC0yNjIsOSArNDAwLDEyIEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250
ZXh0M0QoKQogICAgICAgICBkZWxldGVWZXJ0ZXhBcnJheShtX3Zhbyk7CiAjZW5kaWYKIAotICAg
IGF1dG8qIGFjdGl2ZUNvbnRleHQgPSBhY3RpdmVDb250ZXh0cygpLnRha2VMYXN0KFt0aGlzXShh
dXRvKiBpdCkgeyByZXR1cm4gaXQgPT0gdGhpczsgfSk7CisgICAgYXV0byogYWN0aXZlQ29udGV4
dCA9IGFjdGl2ZUNvbnRleHRzKCkudGFrZUxhc3QoW3RoaXNdKGF1dG8qIGl0KSB7CisgICAgICAg
IHJldHVybiBpdCA9PSB0aGlzOworICAgIH0pOwogICAgIEFTU0VSVF9VTlVTRUQoYWN0aXZlQ29u
dGV4dCwgISFhY3RpdmVDb250ZXh0KTsKIH0KKyNlbmRpZiAvLyBVU0UoQU5HTEUpCiAKIHZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRy
PENvbnRleHRMb3N0Q2FsbGJhY2s+KQogewpAQCAtMzE5LDcgKzQ2MCw3IEBAIFBsYXRmb3JtTGF5
ZXIqIEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICNlbmRpZgogfQog
Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShBTkdMRSkKIEV4
dGVuc2lvbnMzRCYgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEV4dGVuc2lvbnMoKQogewogICAgIGlm
ICghbV9leHRlbnNpb25zKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyQnVmZmVyLmNwcAppbmRleCA1ZWZiMTkwY2I0ZDI1MzE2N2NjNTQ1ZWNlYjc3ODQ5Yjgz
ZDFiNjRiLi4yZGI4Y2ZiMTNiMTMxZDIxMWYyYjc5N2Q4YTAwNmZmMmIwNjMwODYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHAKQEAgLTk3
LDYgKzk3LDkgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjo6cGFpbnRU
b1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciYgdGV4dHUKICAgICBpZiAobV9oYXNNYW5hZ2Vk
VGV4dHVyZSkgewogICAgICAgICBBU1NFUlQobV90ZXh0dXJlKTsKICAgICAgICAgQml0bWFwVGV4
dHVyZUdMKiB0ZXh0dXJlR0wgPSBzdGF0aWNfY2FzdDxCaXRtYXBUZXh0dXJlR0wqPihtX3RleHR1
cmUuZ2V0KCkpOworI2lmIFVTRShBTkdMRSkKKyAgICAgICAgdGV4dHVyZUdMLT51cGRhdGVQZW5k
aW5nQ29udGVudHMoSW50UmVjdChJbnRQb2ludCgpLCB0ZXh0dXJlR0wtPmNvbnRlbnRTaXplKCkp
LCBJbnRQb2ludCgpKTsKKyNlbmRpZgogICAgICAgICB0ZXhtYXBHTC5kcmF3VGV4dHVyZSh0ZXh0
dXJlR0wtPmlkKCksIG1fZXh0cmFGbGFncyB8IHRleHR1cmVHTC0+Y29sb3JDb252ZXJ0RmxhZ3Mo
KSwgdGV4dHVyZUdMLT5zaXplKCksIHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgb3BhY2l0
eSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKaW5kZXggMzc5MzY3NWFjOGQ2YjNjMzJhM2IzMTgxOTNl
NDlhN2IzN2RjNDg4MC4uMzgxNGY2OGFlNDdhYTViN2ZlN2Y5YTBiZWNlODQ3MTZhYmNkYjQwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNwcApA
QCAtMTEzLDYgKzExMywxMiBAQCBib29sIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6
OmlzQWN0aXZlKCkKIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6cHVzaE5l
eHRCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVy
PiBuZXdCdWZmZXIpCiB7CiAgICAgQVNTRVJUKG1fbG9jay5pc0hlbGQoKSk7CisjaWYgVVNFKEFO
R0xFKQorICAgIC8vIFdoZW4gdGhlIG5ld0J1ZmZlciBvdmVyd3JpdGVzIG1fcGVuZGluZ0J1ZmZl
ciB0aGF0IGlzIG5vdCBzd2FwcGVkIHlldCwKKyAgICAvLyB0aGUgbGF5ZXIgcmVsYXRlZCB0byBt
X3BlbmRpbmdCdWZmZXIgaXMgZmxpY2tlcmluZyBzaW5jZSBpdHMgdGV4dHVyZSBpcyBkZXN0cm95
ZWQuCisgICAgaWYgKG1fcGVuZGluZ0J1ZmZlciAmJiBtX3BlbmRpbmdCdWZmZXItPmhhc01hbmFn
ZWRUZXh0dXJlKCkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIG1fcGVuZGluZ0J1ZmZl
ciA9IFdURk1vdmUobmV3QnVmZmVyKTsKICAgICBtX3dhc0J1ZmZlckRyb3BwZWQgPSBmYWxzZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFj
a2luZ1N0b3JlV2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxl
cmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcAppbmRleCA5NzNiMzE2ODFmYjMxODIwZWZmYjUz
ZGQ0MjlkOTQ0MzRiN2QyZmU1Li4xYTMyNjRkODdhMTY5N2UyNzNmZDhkNjAzMGZiOWUxYWYwYjUy
OWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRC
YWNraW5nU3RvcmVXYXlsYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcApAQCAtMzgsNyArMzgsMTAgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0NhaXJvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HTENv
bnRleHQuaD4KIAotI2lmIFVTRShPUEVOR0xfRVMpCisjaWYgVVNFKEFOR0xFKQorI2luY2x1ZGUg
PFdlYkNvcmUvRXh0ZW5zaW9uczNEQU5HTEUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL09wZW5HTFNo
aW1zLmg+CisjZWxpZiBVU0UoT1BFTkdMX0VTKQogI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgogI2lu
Y2x1ZGUgPEdMRVMyL2dsMmV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXh0ZW5zaW9uczNET3Bl
bkdMRVMuaD4KQEAgLTc4LDcgKzgxLDkgQEAgYm9vbCBBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdh
eWxhbmQ6OmNoZWNrUmVxdWlyZW1lbnRzKCkKICAgICAgICAgaWYgKCFlZ2xDb250ZXh0LT5tYWtl
Q29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFVTRShP
UEVOR0xfRVMpCisjaWYgVVNFKEFOR0xFKQorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5z
aW9uczNEQU5HTEU+IGdsRXh0ZW5zaW9ucyA9IG1ha2VVbmlxdWU8RXh0ZW5zaW9uczNEQU5HTEU+
KG51bGxwdHIsIEdMQ29udGV4dDo6Y3VycmVudCgpLT52ZXJzaW9uKCkgPj0gMzIwKTsKKyNlbGlm
IFVTRShPUEVOR0xfRVMpCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVu
R0xFUz4gZ2xFeHRlbnNpb25zID0gbWFrZVVuaXF1ZTxFeHRlbnNpb25zM0RPcGVuR0xFUz4obnVs
bHB0ciwgIGZhbHNlKTsKICNlbHNlCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25z
M0RPcGVuR0w+IGdsRXh0ZW5zaW9ucyA9IG1ha2VVbmlxdWU8RXh0ZW5zaW9uczNET3BlbkdMPihu
dWxscHRyLCBHTENvbnRleHQ6OmN1cnJlbnQoKS0+dmVyc2lvbigpID49IDMyMCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25z
R1RLLmNtYWtlCmluZGV4IDBhZTFiYjcxODEzYTkwZGE0ZDg2YmEzNDI3Mjk0NmRhZjU3MGM4ZjQu
LjU3NjM5ZjQ4OTA4OTVjZjNhMzJlYmNiYjE5NjA5OWIxMmFlZTRlNjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RL
LmNtYWtlCkBAIC05MCw2ICs5MCw3IEBAIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9XUEVfUkVO
REVSRVIgIldoZXRoZXIgdG8gZW5hYmxlIFdQRSByZW5kZXJpbmciIFBVQkxJQyBPCiAKICMgUHJp
dmF0ZSBvcHRpb25zIHNwZWNpZmljIHRvIHRoZSBHVEsgcG9ydC4gQ2hhbmdpbmcgdGhlc2Ugb3B0
aW9ucyBpcwogIyBjb21wbGV0ZWx5IHVuc3VwcG9ydGVkLiBUaGV5IGFyZSBpbnRlbmRlZCBmb3Ig
dXNlIG9ubHkgYnkgV2ViS2l0IGRldmVsb3BlcnMuCitXRUJLSVRfT1BUSU9OX0RFRklORShVU0Vf
QU5HTEVfV0VCR0wgIldoZXRoZXIgdG8gdXNlIEFOR0xFIGFzIFdlYkdMIGJhY2tlbmQuIiBQUklW
QVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9PUEVOVlIgIldoZXRoZXIgdG8gdXNl
IE9wZW5WUiBhcyBXZWJWUiBiYWNrZW5kLiIgUFJJVkFURSBPRkYpCiAKICMgRklYTUU6IENhbiB3
ZSB1c2UgY2Fpcm8tZ2xlc3YyIHRvIGF2b2lkIHRoaXMgY29uZmxpY3Q/CkBAIC0xMDAsNiArMTAx
LDcgQEAgV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyBF
TkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0FTWU5DX1NDUk9MTElO
RyBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0dMRVMyIEVOQUJM
RV9PUEVOR0wpCiBXRUJLSVRfT1BUSU9OX0RFUEVORChFTkFCTEVfV0VCR0wgRU5BQkxFX09QRU5H
TCkKK1dFQktJVF9PUFRJT05fREVQRU5EKFVTRV9BTkdMRV9XRUJHTCBFTkFCTEVfV0VCR0wpCiBX
RUJLSVRfT1BUSU9OX0RFUEVORChVU0VfV1BFX1JFTkRFUkVSIEVOQUJMRV9PUEVOR0wpCiBXRUJL
SVRfT1BUSU9OX0RFUEVORChVU0VfV1BFX1JFTkRFUkVSIEVOQUJMRV9XQVlMQU5EX1RBUkdFVCkK
IApAQCAtMjk0LDYgKzI5NiwxMSBAQCBpZiAoRU5BQkxFX09QRU5HTCkKICAgICBTRVRfQU5EX0VY
UE9TRV9UT19CVUlMRChVU0VfTklDT1NJQSBUUlVFKQogZW5kaWYgKCkKIAoraWYgKFVTRV9BTkdM
RV9XRUJHTCkKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQU5HTEUgVFJVRSkKKyAg
ICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQU5HTEVfRUdMIFRSVUUpCitlbmRpZiAoKQor
CiBpZiAoRU5BQkxFX1NQRUxMQ0hFQ0spCiAgICAgZmluZF9wYWNrYWdlKEVuY2hhbnQpCiAgICAg
aWYgKE5PVCBQQ19FTkNIQU5UX0ZPVU5EKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IDg2NjdmODhmYTEzYTljZDRlYjJhZjUwZDFkNzlmNDhmNzVlMGU0MWMuLmYyMmVi
ZWIwZGJiNTE1MGI1MzYyNzM5NDQ2NmUwYzY1YjllMTcxMjkgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxv
ZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0wOS0xOCAgQ2hhbmdTZW9r
IE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gQWRkIEFOR0xFIGJh
Y2tlbmQgdG8gR1RLIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5OTA2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6CisKIDIwMTktMDktMTcg
IEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dp
bkNhaXJvXVtjdXJsXSBEZWZpbmUgTk9DUllQVCB0byBzdXBwcmVzcyBsaWJyZXNzbCAiV2Fybmlu
Zywgb3ZlcnJpZGluZyBXaW5DcnlwdCBkZWZpbmVzIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379115</attachid>
            <date>2019-09-19 03:08:07 -0700</date>
            <delta_ts>2019-11-09 21:10:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199060-20190919060806.patch</filename>
            <type>text/plain</type>
            <size>57591</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNDJkY2MzMjg3NTIxMzU0MjdmOGE5NjI2ZmI1MzU4YmU2NTU1ZWE2MS4uOTA3OGNiZGE3MGZl
MWI1Mjg0NDEyNWJlZDBlMzlmMWE4YjdlOTdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTA5LTE4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tA
d2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogV2hlbiBVU0VfQU5HTEVfV0VCR0wgaXMgZW5hYmxlZCwgbmVjZXNzYXJ5IGds
ZXN2MiBlbnRyeSBwb2ludHMgaGVhZGVycworICAgICAgICAgIGFyZSBpbnN0YWxsZWQgaW4gdGhl
IGRlcml2ZWQgc291cmNlIGRpcmVjdG9yeS4gQW5kIHRoZW4gYWRqdXN0LWFuZ2xlLWluY2x1ZGUt
cGF0aC5zaCBpcyBhcHBsaWVkCisgICAgICAgICAgdG8gY2hhbmdlIGluY2x1ZGUgcGF0aHMgaW4g
dGhlIGVudHJ5IHBvaW50cyBoZWFkZXIgZmlsZXMuCisgICAgICAgICogR0xFU3YyLmNtYWtlOiBs
aWJnbGVzdjJfZW50cnlfcG9pbnRzX2hlYWRlcnMgaXMgbmV3bHkgZGVmaW5lZCwgd2hpY2ggaXMg
YSBnYXRoZXJpbmcgb2YKKyAgICAgICAgICBlbnRyeSBwb2ludCBoZWFkZXJzIG9mIGxpYkdMRVN2
Mi4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogSW4gdGhpcyBmaWxlLCB3ZSBhcHBlbmQg
Z2wgYW5kIGdseCByZWxhdGVkIGFuZ2xlIGNvZGUgYXMgYSBidWlsZCB0YXJnZXQuCisgICAgICAg
ICAgU2luY2Ugd2Ugd2FudCBnbCBjb250ZXh0IGFuZCBnbGVzIGNvbnRleHQgc2ltdWx0YW5lb3Vz
bHksIHdlIHJlbW92ZSBnbCBwcm90b3R5cGUgY2FsbHMKKyAgICAgICAgICBmcm9tIHRoZSBnZW5l
cmF0ZWQgbGliR0xFU3YyIGxpYnJhcnkuIEluc3RlYWQsIHdlIGludm9rZSBlZ2wgYW5kIGdsIGNh
bGxzIG9mIEFOR0xFCisgICAgICAgICAgdmlhIHRoZWlyIG5vbi1wcm90b3R5cGUgZnVuY3Rpb24g
bmFtZXMuCisgICAgICAgICogYWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0aHMuc2g6IHNlZCBpcyBz
bGlnaHRseSBkaWZmZXJlbnQgaW4gdW5peCBhbmQgbGludXggc3lzdGVtcy4KKyAgICAgICAgICBJ
biBwYXJ0aWN1bGFyLCBpdHMgaW5wbGFjZSBvcHRpb24gbmVlZHMgdG8gYmUgY2hhbmdlZCBmb3Ig
YmV0dGVyIGNvbXBhdGliaWxpdHkgb24gbGludXguCisgICAgICAgICogaW5jbHVkZS9DTWFrZUxp
c3RzLnR4dDogQU5HTEVfV0VCR0xfSEVBREVSUyBpcyBuZXdseSBkZWZpbmVkLiBJdCBnYXRoZXJz
IGhlYWRlciBmaWxlcyBvZiBBTkdMRQorICAgICAgICAgIGZvciBXZWJHTCBzdXBwb3J0LgorCiAy
MDE5LTA5LTE2ICBKYW1lcyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZW1vdmUgY29tbWl0LmggY29weWluZyBidWlsZCBzdGVwcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAyOTYwMjI0
ZjExODdmYzA3NWRhMGNiMDY2MjVlYWU0MzRlMDY1OWY2Li45NTRjMzlmZGZjYWFjMDlmZDQzNzc0
YmNiMDFiNjhmZTJlMWE1MmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTE4ICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBBZGQgQU5H
TEUgYmFja2VuZCB0byBHVEsgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk5MDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIEdUSyBwb3J0IHVzZXMgVEVYVFVSRV9NQVBQRVIgdGhhdCBoYXMg
YSBnbCBjb250ZXh0IGZvciBhY2NlbGVyYXRlZCByZW5kZXJpbmcsCisgICAgICAgIGFuZCBBTkdM
RSBoYXMgYW4gZWdsIGNvbnRleHQgZm9yIFdlYkdMLiBXZSB3YW50IHRvIG1ha2UgYm90aCBsaXZl
IHRvZ2V0aGVyCisgICAgICAgIHNvIGFuIGV4Y2VwdGlvbiBpcyBtYWRlIHdoZXJlIFRFWFRVUkVf
TUFQUEVSIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOS0w
OS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGNvbnN0
ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5bWJvbCBkZWZpbml0aW9ucyB0aGF0IGFyZSBvYnZp
b3VzbHkgY29uc3RleHByLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQxMDg3Nzc4Mjc4MDlkZTNjMjI2MTUzMzRh
ZDI2MWUwNjhiMDU2MTQuLjU3NDg4NGM4NmExN2QyNWI5YjAwOGU1ODA4YmQ5N2I1YzkxZmY4Mzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxOS0wOS0xOCAgQ2hhbmdTZW9rIE9oICA8
Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gQWRkIEFOR0xFIGJhY2tlbmQg
dG8gR1RLIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5OTA2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgY2hhbmdlIGFpbXMgdG8gYnJpbmcgQU5HTEUgc3VwcG9ydCBmb3IgV2ViR0wgdG8g
R1RLIHBvcnQuIFRoZSBwb3J0CisgICAgICAgIHdhbnRzIHRvIGhhdmUgYSBnbCBjb250ZXh0IGZv
ciB0ZXh0dXJlIG1hcHBlciBhbmQgYSBnbGVzL2VnbCBjb250ZXh0IGZvciB3ZWJnbAorICAgICAg
ICBzaW11bHRhbmVvdXNseSwgd2UgYWRvcHQgdGhlIHJlYWRQaXhlbC1jb3B5VG9UZXh0dXJlIGFw
cHJvYWNoIGZvciBub3cgYmVjYXVzZQorICAgICAgICBzaGFyaW5nIHRleHR1cmVzIGJldHdlZW4g
dGhlIHR3byBkaWZmZXJlbnQgY29udGV4dGVzIGlzIG5vdCBhIGZlYXNpYmxlIGRpcmVjdGlvbi4K
KyAgICAgICAgQWxzbywgdG8gYXZvaWQgY29uZmxpY3RzIGJldHdlZW4gZ2wgYW5kIGdsZXMgY2Fs
bHMsIHdlIHVzZSBub24tcHJvdG90eXBlIGZ1bmN0aW9ucworICAgICAgICBvZiBBTkdMRSBmb3Ig
V2ViR0wgY29udGV4dCAoaS5lLiwgR3JhcGhpY3NDb250ZXh0M0QpLiBBbHRob3VnaCBtYW55IGNv
bWJpbmF0aW9ucworICAgICAgICBvZiBncmFwaGljIGNvbmZpZ3VyYXRpb25zIGV4aXN0LCBvbmx5
IGRlZmF1bHQgY29uZmlndXJhdGlvbiAoTmljb3NpYSBsYXllcnMKKyAgICAgICAgcnVubmluZyBv
biBBTkdMRSArIEdMWCBpcyBzdXBwb3J0ZWQuIE90aGVyIGNvbWJpbmF0aW9ucyBsaWtlIEFOR0xF
ICsgR0xFUyBvciBXUEUKKyAgICAgICAgd2lsbCBiZSBjb3ZlcmVkIGJ5IGZvbGxvd2luZyBwYXRj
aGVzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBubyBmdW5jdGlvbmFsaXR5IGNoYW5n
ZWQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNt
YWtlOgorICAgICAgICAqIFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0FOR0xFV2ViS2l0QnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVu
Q29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0
aWFsaXplT3BlbkdMU2hpbXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNo
aW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HTENvbnRleHRBTkdMRS5jcHA6IEFk
ZGVkLiBGb3Igbm93LCBpdCBzaG91bGQgYmUKKyAgICAgICAgICB1c2VkIGJ5IE5pY29zaWFMYXll
ciByZW5kZXJpbmcgb25seS4KKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xFOjplcnJv
clN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRBTkdMRTo6bGFzdEVycm9yU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xFOjpjcmVhdGVDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEFOR0xFOjpHTENvbnRleHRBTkdMRSk6CisgICAg
ICAgIChXZWJDb3JlOjpHTENvbnRleHRBTkdMRTo6fkdMQ29udGV4dEFOR0xFKToKKyAgICAgICAg
KFdlYkNvcmU6OkdMQ29udGV4dEFOR0xFOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R0xDb250ZXh0QU5HTEU6OnN3YXBCdWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OkdMQ29udGV4dEFOR0xFOjp3YWl0TmF0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4
dEFOR0xFOjpjYW5SZW5kZXJUb0RlZmF1bHRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpHTENvbnRleHRBTkdMRTo6ZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHTENvbnRleHRBTkdMRTo6c3dhcEludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkdM
Q29udGV4dEFOR0xFOjpjYWlyb0RldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRB
TkdMRTo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9HTENvbnRleHRBTkdMRS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcDogTW92ZSBjb2RlIHJlbGF0ZWQgdG8gY29v
cmRpbmF0ZWQgZ3JhcGhpY3MKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpy
ZXNoYXBlRkJPcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFy
ZVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05p
Y29zaWFHQzNETGF5ZXIuY3BwOgorICAgICAgICAoTmljb3NpYTo6R0MzRExheWVyOjpHQzNETGF5
ZXIpOgorICAgICAgICAoTmljb3NpYTo6R0MzRExheWVyOjpzd2FwQnVmZmVyc0lmTmVlZGVkKTog
SW4gdGhpcyBtZXRob2QsIHdlIHJlYWQgcGl4ZWxzIG9mIHdlYmdsLCBhbmQgcG9zdAorICAgICAg
ICAgIHRoZSBwaXhlbCBidWZmZXIgdG8gdGhlIGNvbXBvc2l0b3IuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHA6IGhhcyBhIHJhdyBwaXhlbCBv
ZiB3ZWJnbC4gV2hlbiB0aGUgY29tcG9zaXRpbmcKKyAgICAgICAgICBjb250ZXh0IGJlY29tZXMg
Y3VycmVudCwgdGhlIHBpeGVscyBpcyB3cml0dGVuIGludG8gYSBnbCB0ZXh0dXJlIGFuZCBjb21w
b3NpdGVkIGJ5IHRleHR1cmUgbWFwcGVyLgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVy
ZUdMOjpzZXRQZW5kaW5nQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVy
ZUdMOjp1cGRhdGVQZW5kaW5nQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RUZXh0dXJlTWFwcGVyLmNwcDogV2hlcmUgVVNFX0FOR0xF
X1dFQkdMIGlzIGVuYWJsZWQsCisgICAgICAgICAgZ2wgY2FsbHMgaW4gR0MzRCBzaG91bGQgYmUg
aW52b2tlZCB2aWEgdGhlaXIgbm9uLXByb3RvdHlwZSBmdW5jdGlvbiBuYW1lcy4KKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjo6cGFp
bnRUb1RleHR1cmVNYXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnB1c2hOZXh0QnVmZmVyKToKKwogMjAxOS0w
OS0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJldmVydCBjaGFuZ2UgdGhhdCBBbGV4IG1pc3Rha2VubHkgY29tbWl0dGVkIGF0IHRoZSBz
YW1lIHRpbWUgYXMgcjI1MDAwNiBhbmQgYnJva2UgdGhlIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2ZTJi
ODU1N2I0NzliOTZhNjljY2RjNGQwMmY4MDhkY2JlNGE2OTk2Li43OTc0MzllMWQzMzNkNWI5YTMz
YjMxYjc1YjU4NGI3MDY1MjI4NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA5
LTE4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RL
XSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2lu
Z1N0b3JlV2F5bGFuZC5jcHA6IEV4dGVudGlvbjNEQU5HTEUgaXMgdXNlZCBpbnN0ZWFkLAorICAg
ICAgICAgIHdoZXJlIEFOR0xFIGZvciBXZWJHTCBpcyBlbmFibGVkLgorICAgICAgICAoV2ViS2l0
OjpBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OmNoZWNrUmVxdWlyZW1lbnRzKToKKwog
MjAxOS0wOS0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBXaW5DYWlybyBidWlsZCBmaXggZm9sbG93aW5nIHIyNDk5ODUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL0NNYWtlTGlzdHMudHh0CmluZGV4IGFiNjkwMmE5NWQxMzAxODQ4
NjQyODc3ZmRhMGIxOTkxYjkyZWNlNDguLjQzZmRkZjg2ZTJlNWIwY2E2ZjMwNDIxNTFhNGM4ZjI5
YTkxMWY5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NNYWtlTGlzdHMudHh0CkBAIC0xMzYs
NiArMTM2LDI3IEBAIGVsc2UgKCkKICAgICApCiBlbmRpZiAoKQogCitpZiAoVVNFX0FOR0xFX1dF
QkdMKQorICAgIFdFQktJVF9DT1BZX0ZJTEVTKExpYkdMRVN2MkVudHJ5UG9pbnRzSGVhZGVycwor
ICAgICAgICBERVNUSU5BVElPTiAke0FOR0xFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vQU5HTEUK
KyAgICAgICAgRklMRVMgJHtsaWJnbGVzdjJfZW50cnlfcG9pbnRzX2hlYWRlcnN9CisgICAgICAg
IEZMQVRURU5FRAorICAgICkKKworICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VU
UFVUICR7QU5HTEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9BTkdMRS9hbmdsZS50aW1lc3RhbXAK
KyAgICAgICAgREVQRU5EUyBMaWJHTEVTdjJFbnRyeVBvaW50c0hlYWRlcnMgQU5HTEVXZWJHTEhl
YWRlcnMKKyAgICAgICAgQ09NTUFORCBCVUlMVF9QUk9EVUNUU19ESVI9JHtBTkdMRV9GUkFNRVdP
UktfSEVBREVSU19ESVJ9CisgICAgICAgICAgICBQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSD1B
TkdMRQorICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2FkanVzdC1hbmds
ZS1pbmNsdWRlLXBhdGhzLnNoCisgICAgICAgIFZFUkJBVElNCisgICAgKQorICAgIGFkZF9jdXN0
b21fdGFyZ2V0KEFOR0xFLXdlYmdsLWhlYWRlcnMKKyAgICAgICAgREVQRU5EUyAke0FOR0xFX0ZS
QU1FV09SS19IRUFERVJTX0RJUn0vQU5HTEUvYW5nbGUudGltZXN0YW1wCisgICAgKQorICAgIGFk
ZF9kZXBlbmRlbmNpZXMoQU5HTEVGcmFtZXdvcmsgQU5HTEUtd2ViZ2wtaGVhZGVycykKK2VuZGlm
ICgpCisKIGlmIChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcpCiAgICAgV0VCS0lUX0FERF9UQVJH
RVRfQ1hYX0ZMQUdTKEFOR0xFIC1Xbm8tY2FzdC1hbGlnbgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAtV25vLXN1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvR0xFU3YyLmNtYWtlIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvR0xFU3YyLmNtYWtlCmluZGV4IDQyMWRlMzQzYmFmM2FhOGUyYTljMDU3MDM5ZGRj
NDc5MzFiNWU0OWUuLmQ4MzZiODRmM2Y1ZTZmYTdmZmNjN2VmNDM4ZGQxNTQwYjUwZGE0NTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0dMRVN2Mi5jbWFrZQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9HTEVTdjIuY21ha2UKQEAgLTEwOTUsNiArMTA5NSwxMyBAQCBz
ZXQobGliZ2xlc3YyX3NvdXJjZXMKICAgICBzcmMvbGliR0xFU3YyL3Jlc291cmNlLmgKICkKIAor
c2V0KGxpYmdsZXN2Ml9lbnRyeV9wb2ludHNfaGVhZGVycworICAgIHNyYy9saWJHTEVTdjIvZW50
cnlfcG9pbnRzX2VnbC5oCisgICAgc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2ludHNfZ2xlc18yXzBf
YXV0b2dlbi5oCisgICAgc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2ludHNfZ2xlc18zXzBfYXV0b2dl
bi5oCisgICAgc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5oCisp
CisKIHNldChsaWJnbGVzdjFfY21fc291cmNlcwogICAgIHNyYy9saWJHTEVTdjFfQ00vbGliR0xF
U3YxX0NNLmNwcAogICAgIHNyYy9saWJHTEVTdjFfQ00vbGliR0xFU3YxX0NNLmRlZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA3NGYzNWUyOTIzNDY3MTNk
NTUwZTA0NDE2MDIxMGMyODE4NGEyNThiLi43OTNhYTY1MjRkOTNhNDEwZGM5MGUxYTg2ZDg3YWI3
ZjNkMTE2ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9QbGF0Zm9ybUdU
Sy5jbWFrZQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9QbGF0Zm9ybUdUSy5jbWFrZQpA
QCAtMSwyICsxLDI2IEBACiAjIEVuYWJsZSBHTFNMIGNvbXBpbGVyIG91dHB1dC4KIGxpc3QoQVBQ
RU5EIEFOR0xFX0RFRklOSVRJT05TIEFOR0xFX0VOQUJMRV9HTFNMKQorCitpZiAoVVNFX0FOR0xF
X0VHTCkKKyAgICBsaXN0KEFQUEVORCBBTkdMRV9TT1VSQ0VTCisgICAgICAgICR7YW5nbGVfc3lz
dGVtX3V0aWxzX3NvdXJjZXNfbGludXh9CisgICAgICAgICR7YW5nbGVfc3lzdGVtX3V0aWxzX3Nv
dXJjZXNfcG9zaXh9CisgICAgICAgICR7bGliYW5nbGVfZ2xfc291cmNlc30KKyAgICAgICAgJHts
aWJhbmdsZV9nbF9nbHhfc291cmNlc30KKyAgICApCisKKyAgICBsaXN0KEFQUEVORCBBTkdMRV9E
RUZJTklUSU9OUworICAgICAgICBBTkdMRV9FTkFCTEVfT1BFTkdMCisgICAgICAgIEFOR0xFX1VT
RV9YMTEKKyAgICApCisKKyAgICBsaXN0KEFQUEVORCBBTkdMRUdMRVN2Ml9MSUJSQVJJRVMKKyAg
ICAgICAgZGwKKyAgICAgICAgcHRocmVhZAorICAgICAgICBYMTEKKyAgICApCisKKyAgICBpZiAo
VVNFX0dMWCkKKyAgICAgICAgc3RyaW5nKFJFUExBQ0Ugc3JjL2xpYkdMRVN2Mi9saWJHTEVTdjJf
YXV0b2dlbi5jcHAgIiIgbGliZ2xlc3YyX3NvdXJjZXMgIiR7bGliZ2xlc3YyX3NvdXJjZXN9IikK
KyAgICBlbmRpZiAoKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL2FkanVzdC1hbmdsZS1pbmNsdWRlLXBhdGhzLnNoIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvYWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0aHMuc2gKaW5kZXggZmFkOWJhMDg3OTgyNmY4ODZk
MjZjODZlZDBmOGI2MmMwMTk5MThiYy4uMTdmYTdmZTk0OWY5ODMzOTMxMzViYjQ2MmZjOTUwZmI5
Yzg2OGJmNSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvYWRqdXN0LWFuZ2xl
LWluY2x1ZGUtcGF0aHMuc2gKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvYWRqdXN0LWFu
Z2xlLWluY2x1ZGUtcGF0aHMuc2gKQEAgLTI3LDYgKzI3LDEyIEBAIGVsc2UKICAgICBvdXRwdXRf
ZGlyPSRCVUlMVF9QUk9EVUNUU19ESVIvJFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRICiBmaQog
CitpZiBbICQodW5hbWUpID09ICJMaW51eCIgXTsgdGhlbgorICAgIGlucGxhY2Vfb3B0PSItaSIK
K2Vsc2UKKyAgICBpbnBsYWNlX29wdD0iLWkgJyciCitmaQorCiBmb3IgaSBpbiAkb3V0cHV0X2Rp
ci8qLmggOyBkbwogICAgIGlmIFsgISAtZiAkb3V0cHV0X2Rpci9hbmdsZS50aW1lc3RhbXAgXSB8
fCBbICRpIC1udCAkb3V0cHV0X2Rpci9hbmdsZS50aW1lc3RhbXAgXSA7IHRoZW4KICAgICAgICAg
c2VkIC1lICcKQEAgLTM3LDcgKzQzLDcgQEAgcy9eI2luY2x1ZGUgWzwiXUdMRVMzXC9cKC4qXClb
PiJdLyNpbmNsdWRlIDxBTkdMRVwvXDE+Lwogcy9eI2luY2x1ZGUgWzwiXUtIUlwvXCguKlwpWz4i
XS8jaW5jbHVkZSA8QU5HTEVcL1wxPi8KIHMvXiNpbmNsdWRlIFs8Il1leHBvcnQuaFs+Il0vI2lu
Y2x1ZGUgPEFOR0xFXC9leHBvcnQuaD4vCiBzL14jaW5jbHVkZSAiXChlZ2xleHRfYW5nbGVcfGds
MmV4dF9hbmdsZVx8U2hhZGVyVmFyc1wpLmgiLyNpbmNsdWRlIDxBTkdMRVwvXDEuaD4vCi0nIC1p
ICIiICRpCisnICRpbnBsYWNlX29wdCAkaQogICAgICAgICBlY2hvIFBvc3Rwcm9jZXNzZWQgQU5H
TEUgaGVhZGVyMyAkaQogICAgIGZpCiBkb25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
aW5jbHVkZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmODRlZWM3NTFhYmNhODlkOWVjMjQ3Y2YxMWI5
NDE4Yzk5ZjE2NGIxLi5mYzAwMjkxYTQzNzdjN2E2ZmJhZGNjZDYxN2VmNGU2ZGRlODI0OGRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvQ01ha2VMaXN0cy50eHQKQEAg
LTQ5LDYgKzQ5LDIzIEBAIGlmIChVU0VfQU5HTEVfRUdMKQogICAgICkKIGVuZGlmICgpCiAKK2lm
IChVU0VfQU5HTEVfV0VCR0wpCisgICAgc2V0KEFOR0xFX1dFQkdMX0hFQURFUlMKKyAgICAgICAg
ZXhwb3J0LmgKKyAgICAgICAgJHtraHJfaGVhZGVyc30KKyAgICAgICAgJHtlZ2xfaGVhZGVyc30K
KyAgICAgICAgJHtnbGVzX2hlYWRlcnN9CisgICAgICAgICR7Z2xlczJfaGVhZGVyc30KKyAgICAg
ICAgJHtnbGVzM19oZWFkZXJzfQorICAgICkKKworICAgIFdFQktJVF9DT1BZX0ZJTEVTKEFOR0xF
V2ViR0xIZWFkZXJzCisgICAgICAgIERFU1RJTkFUSU9OICR7QU5HTEVfRlJBTUVXT1JLX0hFQURF
UlNfRElSfS9BTkdMRQorICAgICAgICBGSUxFUyAke0FOR0xFX1dFQkdMX0hFQURFUlN9CisgICAg
ICAgIEZMQVRURU5FRAorICAgICkKK2VuZGlmICgpCisKICMgQ29jb2EgZXhwZWN0cyBoZWFkZXJz
IGluIGFuIEFOR0xFIGRpcmVjdG9yeQogV0VCS0lUX0NPUFlfRklMRVMoR0xTTEFOR0hlYWRlcnMK
ICAgICBERVNUSU5BVElPTiAke0FOR0xFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vQU5HTEUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCmluZGV4IDU1ZGEyMzZmOGNjMGY2Y2YzOGJmZmQ0ZTg5YzIwMThkMTBmY2I1ZmUuLjAy
MmE4YmU0MjFkMDcxNDdjZDI0MTk4OTNiMWZiOWU4ZjY5ODZjMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAt
MTE0MCw3ICsxMTQwLDcgQEAKICNkZWZpbmUgVVNFX0FOR0xFIDAKICNlbmRpZgogCi0jaWYgKFVT
RV9BTkdMRSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZpbmVkKFVTRV9F
R0wpICYmIFVTRV9FR0wpKSkKKyNpZiAoVVNFX0FOR0xFICYmIChVU0VfT1BFTkdMIHx8IFVTRV9P
UEVOR0xfRVMgfHwgKGRlZmluZWQoVVNFX0VHTCkgJiYgVVNFX0VHTCkpKSAmJiAhVVNFKFRFWFRV
UkVfTUFQUEVSKQogI2Vycm9yIFVTRV9BTkdMRSBpcyBpbmNvbXBhdGlibGUgd2l0aCBVU0VfT1BF
TkdMLCBVU0VfT1BFTkdMX0VTIGFuZCBVU0VfRUdMCiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKaW5kZXggZmQwYjUzM2NlZDI3ZmJiNTQ3NzdmMDE5MWQ4MmEzOTFlOGE5ODBkMS4uZGMx
MjljNjAxNDdkYzg4ZjZkYTk1OWEzOTdlMzM2YjkxODIyYTZlNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CkBAIC0xMTEzLDYgKzExMTMsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhDYWNoZS5oCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvV2luZFJ1bGUuaAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9u
czNEQU5HTEUuaAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDJmMGRhNWI3NmNlNmI1MjdiZmY1Njc3ZmI5
YTkwMGI1MjcxMjU4ZTQuLjgyOGYzOTNkMjVjMmE4NWNjZjU5N2RlZmMyNDhmNTI4ODM0YWZmZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0zNiw2ICszNiwxMiBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS90ZXh0L2d0ayIKICkKIAoraWYgKFVTRV9BTkdMRV9XRUJHTCkKKyAgICBsaXN0
KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUiCisgICAgKQorZW5kaWYgKCkKKwog
aWYgKFVTRV9XUEVfUkVOREVSRVIpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9saWJ3
cGUiCkBAIC0xMTgsMjAgKzEyNCwzOCBAQCBpZiAoVVNFX1dQRV9SRU5ERVJFUikKICAgICApCiBl
bmRpZiAoKQogCi1pZiAoVVNFX09QRU5HTF9FUykKK2lmIChVU0VfT1BFTkdMKQogICAgIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwotICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCi0gICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9PcGVuR0xTaGltcy5jcHAKICAgICApCiBlbmRpZiAoKQogCi1pZiAoVVNFX09QRU5HTCkKK2lm
IChVU0VfQU5HTEVfV0VCR0wpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCi0gICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAotCi0gICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCi0gICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKKyAgICAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uczNEQU5HTEUuY3BwCisgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCisgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAKICAgICApCitl
bHNlICgpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCisgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAK
KyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RlbXBvcmFyeU9wZW5HTFNldHRpbmcu
Y3BwCisgICAgKQorCisgICAgaWYgKFVTRV9PUEVOR0xfRVMpCisgICAgICAgIGxpc3QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUworICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAorICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCisgICAgICAgICkKKyAgICBlbmRpZiAo
KQorCisgICAgaWYgKFVTRV9PUEVOR0wpCisgICAgICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUworICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTC5jcHAKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHQzRE9wZW5HTC5jcHAKKyAgICAgICAgKQorICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCiBp
ZiAoRU5BQkxFX1dBWUxBTkRfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRleCAwNGViYmZj
MDJiMmY5NTA5YjA1Nzg1ODYxN2RjODQxNjMzOGQwZDBjLi40ODg5ZDFiMTgxZTI1MDU3ODlmMmZm
NzgyMzEyMjY3ZjI3NTE3M2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RL
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAtNjksNiArNjksOCBA
QCBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1EaXNwbGF5LmNwcCBAbm8tdW5pZnkKIAorcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR0xD
b250ZXh0QU5HTEUuY3BwIEBuby11bmlmeQorCiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNr
aW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwIEBuby11bmlmeQogCiBwbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBAbm8tdW5pZnkKQEAgLTg5LDEwICs5MSw2IEBAIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAogCiBwbGF0Zm9y
bS9ncmFwaGljcy9saWJ3cGUvUGxhdGZvcm1EaXNwbGF5TGliV1BFLmNwcAogCi1wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcAotcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAotcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL1RlbXBvcmFyeU9wZW5HTFNldHRpbmcuY3BwCi0KIHBsYXRmb3JtL2dy
YXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmNwcAogCiBwbGF0Zm9ybS9ncmFw
aGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAppbmRleCBkNGE2
MGJhMjNjNmRhZGMzZWI1MWUwM2M2MDhiZTVhYjhiZGM2YzFhLi5kMTRlYzRmZjkxYTUwNTBjNzg1
MDIwOTJmNWIxOGNhNmNkNjY2NmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKQEAgLTM2LDE0ICszNiwxNCBAQAogI2lu
Y2x1ZGUgPEFOR0xFL1NoYWRlckxhbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAotI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIFVTRShBTkdMRSkKKyNpbmNsdWRlIDxBTkdM
RS9nbDIuaD4KIAorI2VsaWYgUExBVEZPUk0oQ09DT0EpCiAjaWYgVVNFKE9QRU5HTF9FUykKICNp
bXBvcnQgPE9wZW5HTEVTL0VTMi9nbGV4dC5oPgogI2VsaWYgVVNFKE9QRU5HTCkKICNpbmNsdWRl
IDxPcGVuR0wvZ2wuaD4KLSNlbGlmIFVTRShBTkdMRSkKLSNpbmNsdWRlIDxBTkdMRS9nbDIuaD4K
ICNlbHNlCiAjZXJyb3IgVW5zdXBwb3J0ZWQgY29uZmlndXJhdGlvbgogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAppbmRleCAxZTQ2Nzgz
YTA3ZmFkODM2MjZmNzUyMDc0NmRjMmZkZDRlYWU4YzBkLi5kOTY0Y2FhZjFkYWIzOGIwMzIyMDdi
ODZjNDg0YzRjOTMzMzQ2MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5jcHAKQEAgLTI2LDE3ICsyNiwxNSBAQAogI2luY2x1ZGUgIkdMQ29udGV4
dEVHTC5oIgogI2VuZGlmCiAKLSNpZiBVU0UoTElCRVBPWFkpCi0jaW5jbHVkZSA8ZXBveHkvZ2wu
aD4KLSNlbGlmIFVTRShPUEVOR0xfRVMpCi0jaW5jbHVkZSA8R0xFUzIvZ2wyLmg+Ci0jZW5kaWYK
LQogI2lmIFVTRShHTFgpCiAjaW5jbHVkZSAiR0xDb250ZXh0R0xYLmgiCiAjaW5jbHVkZSAiT3Bl
bkdMU2hpbXMuaCIKICNlbmRpZgogCisjaWYgVVNFKEFOR0xFKQorI2luY2x1ZGUgIkdMQ29udGV4
dEFOR0xFLmgiCisjZW5kaWYKKwogdXNpbmcgV1RGOjpUaHJlYWRTcGVjaWZpYzsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTAzLDExICsxMDEsMjAgQEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29u
dGV4dD4gR0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2luZG93KEdMTmF0aXZlV2luZG93VHlw
ZQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBH
TENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoUGxhdGZvcm1EaXNwbGF5KiBwbGF0Zm9y
bURpc3BsYXkpCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZU9m
ZnNjcmVlbkNvbnRleHQoUGxhdGZvcm1EaXNwbGF5KiBwbGF0Zm9ybURpc3BsYXksIGJvb2wgdXNl
c0FOR0xFKQogewotICAgIGlmICghaW5pdGlhbGl6ZU9wZW5HTFNoaW1zSWZOZWVkZWQoKSkKKyAg
ICBpZiAoIXVzZXNBTkdMRSAmJiAhaW5pdGlhbGl6ZU9wZW5HTFNoaW1zSWZOZWVkZWQoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyNpZiBVU0UoQU5HTEUpCisgICAgaWYgKHVzZXNBTkdM
RSkgeworICAgICAgICBQbGF0Zm9ybURpc3BsYXkmIGRpc3BsYXkgPSBwbGF0Zm9ybURpc3BsYXkg
PyAqcGxhdGZvcm1EaXNwbGF5IDogUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7Cisg
ICAgICAgIHJldHVybiBHTENvbnRleHRBTkdMRTo6Y3JlYXRlQ29udGV4dCgwLCBkaXNwbGF5KTsK
KyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh1c2VzQU5HTEUpOworI2VuZGlmCisKICAg
ICByZXR1cm4gY3JlYXRlQ29udGV4dEZvcldpbmRvdygwLCBwbGF0Zm9ybURpc3BsYXkgPyBwbGF0
Zm9ybURpc3BsYXkgOiAmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCmluZGV4IGI0YTI2
NzBiMjRhYTZjNzcwYTYyNTkyOTY4MzMwYzFlNzc4NDY0ODYuLjAwYWI4NjI1MGY2NGFkYzk5MmRi
Yzk0NDJmYzlkNzgyYmU0Yjc3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5oCkBAIC0yMCwxMSArMjAsMTYgQEAKICNpZm5kZWYgR0xDb250ZXh0X2gK
ICNkZWZpbmUgR0xDb250ZXh0X2gKIAotI2luY2x1ZGUgIkFOR0xFV2ViS2l0QnJpZGdlLmgiCiAj
aW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheS5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCisjaWYgVVNFKExJQkVQT1hZKQorI2luY2x1ZGUgPGVw
b3h5L2dsLmg+CisjZWxpZiBVU0UoT1BFTkdMX0VTKQorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgor
I2VuZGlmCisKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZPUk0oR1RLKQogI2lmIFBMQVRGT1JNKFdQ
RSkKIC8vIEZJWE1FOiBGb3Igbm93IGRlZmF1bHQgdG8gdGhlIEdCTSBFR0wgcGxhdGZvcm0sIGJ1
dCB0aGlzIHNob3VsZCByZWFsbHkgYmUKQEAgLTUxLDcgKzU2LDcgQEAgY2xhc3MgR0xDb250ZXh0
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTENvbnRleHQpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPEdMQ29udGV4dD4gY3JlYXRlQ29udGV4dEZvcldpbmRvdyhHTE5hdGl2ZVdpbmRvd1R5cGUg
d2luZG93SGFuZGxlLCBQbGF0Zm9ybURpc3BsYXkqID0gbnVsbHB0cik7Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+IGNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoUGxhdGZvcm1E
aXNwbGF5KiA9IG51bGxwdHIpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0
PiBjcmVhdGVPZmZzY3JlZW5Db250ZXh0KFBsYXRmb3JtRGlzcGxheSogPSBudWxscHRyLCBib29s
IHVzZXNBTkdMRSA9IGZhbHNlKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4
dD4gY3JlYXRlU2hhcmluZ0NvbnRleHQoUGxhdGZvcm1EaXNwbGF5Jik7CiAgICAgc3RhdGljIEdM
Q29udGV4dCogY3VycmVudCgpOwogICAgIHN0YXRpYyBib29sIGlzRXh0ZW5zaW9uU3VwcG9ydGVk
KGNvbnN0IGNoYXIqIGV4dGVuc2lvbkxpc3QsIGNvbnN0IGNoYXIqIGV4dGVuc2lvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0Qu
aAppbmRleCA2MzdiYzc0YzdiYTNiOTZiOTYyYzA5M2FjZGYyMjAzYWFiOTU0YjVjLi4wNDkwMzZm
ZDFiOWUyMzZjZGYzNjFiMDcyMmE2N2RjOThkNDk4YzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTEwMSwxMiAr
MTAxLDEyIEBAIGNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3JtM0RPYmplY3QgPSAw
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zM0Q7Ci0jaWYgIVBMQVRG
T1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKQorI2lmIFVTRShBTkdMRSkKK2NsYXNzIEV4dGVu
c2lvbnMzREFOR0xFOworI2VsaWYgIVBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKQog
Y2xhc3MgRXh0ZW5zaW9uczNET3BlbkdMRVM7CiAjZWxpZiBVU0UoT1BFTkdMKSB8fCAoUExBVEZP
Uk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpKQogY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdMOwot
I2VsaWYgVVNFKEFOR0xFKQotY2xhc3MgRXh0ZW5zaW9uczNEQU5HTEU7CiAjZW5kaWYKIGNsYXNz
IEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZTsKQEAgLTE0NTYsNyArMTQ1NiwxMCBAQCBwcml2YXRl
OgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTaGFkZXJOYW1lSGFzaD4gbmFtZUhhc2hNYXBGb3JTaGFk
ZXJzOwogI2VuZGlmIC8vICFVU0UoQU5HTEUpCiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpICYmIFVT
RShPUEVOR0xfRVMpCisjaWYgVVNFKEFOR0xFKQorICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25z
M0RBTkdMRTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNEQU5HTEU+IG1fZXh0ZW5z
aW9uczsKKyNlbGlmICFQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICBmcmll
bmQgY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdMRVM7CiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdM
RVM+IG1fZXh0ZW5zaW9uczsKQEAgLTE0NjQsOSArMTQ2Nyw2IEBAIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTDsKICAgICBmcmllbmQgY2xhc3MgRXh0ZW5zaW9u
czNET3BlbkdMQ29tbW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0w+
IG1fZXh0ZW5zaW9uczsKLSNlbGlmIFVTRShBTkdMRSkKLSAgICBmcmllbmQgY2xhc3MgRXh0ZW5z
aW9uczNEQU5HTEU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzREFOR0xFPiBtX2V4
dGVuc2lvbnM7CiAjZW5kaWYKIAogICAgIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBtX2F0
dHJzOwpAQCAtMTQ5Miw3ICsxNDkyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbGF5ZXJDb21w
b3NpdGVkIHsgZmFsc2UgfTsKICAgICBHQzNEdWludCBtX2ludGVybmFsQ29sb3JGb3JtYXQgeyAw
IH07CiAKLSNpZiBVU0UoQU5HTEUpCisjaWYgVVNFKEFOR0xFKSAmJiBQTEFURk9STShDT0NPQSkK
ICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEU3VyZmFjZSBtX3BidWZmZXI7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hp
bXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3Bw
CmluZGV4IGQzY2ZkMjdkNTcxZTM3ZTY4Nzk5NjQ3MjcwMjk0NDkxY2ZkNzUzYmQuLmY3OTc2ZTYx
ZGQ4NTI0NmQyZjRlMjc2MmM4YzE4N2UwOTk4MDRkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKQEAgLTE2Miw2ICsxNjIsNyBAQCBi
b29sIGluaXRpYWxpemVPcGVuR0xTaGltcygpCiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VO
VFJZKGdsR2V0U2hhZGVySW5mb0xvZywgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RB
QkxFX0VOVFJZKGdsR2V0U2hhZGVyaXYsIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9GVU5DVElPTl9U
QUJMRV9FTlRSWShnbEdldFNoYWRlclNvdXJjZSwgc3VjY2Vzcyk7CisgICAgQVNTSUdOX0ZVTkNU
SU9OX1RBQkxFX0VOVFJZKGdsR2V0U3RyaW5nLCBzdWNjZXNzKTsKICAgICAvLyBnbEdldFN0cmlu
Z2kgaXMgb25seSBhdmFpbGFibGUgb24gT3BlbkdMIG9yIEdMRVMgdmVyc2lvbnMgPj0gMy4wLgog
ICAgIC8vIEFkZCBpdCB3aXRoIF9FWFQgc28gaXQgZG9lc24ndCBjYXVzZSBhbiBpbml0aWFsaXph
dGlvbiBmYWlsdXJlIG9uIGxvd2VyIHZlcnNpb25zLgogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJM
RV9FTlRSWV9FWFQoZ2xHZXRTdHJpbmdpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9PcGVuR0xTaGltcy5oCmluZGV4IGRlMzI5NWRmNDBiMzgyNGFkZGZkNGE1NDhmM2Q2
MTcyMGNmMTM1YjQuLjRjMzU3ZGRlOTgxZjEzNmYwNThkODgzNzA3OGM0MTMwZDYwZDZhNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaApAQCAt
OTgsNiArOTgsNyBAQCB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsR2V0UmVuZGVyYnVmZmVy
UGFyYW1ldGVyaXZUeXBlKSAoR0xlbnVtLCBHTGVudW0sIEdMaQogdHlwZWRlZiB2b2lkIChHTEFQ
SUVOVFJZICpnbEdldFNoYWRlckluZm9Mb2dUeXBlKSAoR0x1aW50LCBHTHNpemVpLCBHTHNpemVp
KiwgY2hhciopOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEdldFNoYWRlcml2VHlwZSkg
KEdMdWludCwgR0xlbnVtLCBHTGludCopOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEdl
dFNoYWRlclNvdXJjZVR5cGUpIChHTHVpbnQsIEdMc2l6ZWksIEdMc2l6ZWkqLCBjaGFyKik7Cit0
eXBlZGVmIGNvbnN0IEdMdWJ5dGUqIChHTEFQSUVOVFJZICpnbEdldFN0cmluZ1R5cGUpIChHTGVu
dW0pOwogdHlwZWRlZiBjb25zdCBHTHVieXRlKiAoR0xBUElFTlRSWSAqZ2xHZXRTdHJpbmdpVHlw
ZSkgKEdMZW51bSwgR0x1aW50KTsKIHR5cGVkZWYgR0xpbnQgKEdMQVBJRU5UUlkgKmdsR2V0VW5p
Zm9ybUxvY2F0aW9uVHlwZSkgKEdMdWludCwgY29uc3QgY2hhciopOwogdHlwZWRlZiB2b2lkIChH
TEFQSUVOVFJZICpnbEdldFVuaWZvcm1mdlR5cGUpIChHTHVpbnQsIEdMaW50LCBHTGZsb2F0Kik7
CkBAIC0yMDUsNiArMjA2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUg
ewogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0U2hhZGVySW5mb0xvZyk7CiAgICAgRlVO
Q1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTaGFkZXJpdik7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5U
UlkoZ2xHZXRTaGFkZXJTb3VyY2UpOworICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0U3Ry
aW5nKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFN0cmluZ2kpOwogICAgIEZVTkNU
SU9OX1RBQkxFX0VOVFJZKGdsR2V0VW5pZm9ybWZ2KTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRS
WShnbEdldFVuaWZvcm1pdik7CkBAIC0zMzMsNiArMzM1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX09w
ZW5HTEZ1bmN0aW9uVGFibGUgewogI2RlZmluZSBnbEdldFNoYWRlckluZm9Mb2cgICAgICAgICAg
ICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xHZXRTaGFkZXJJbmZvTG9nKQogI2RlZmlu
ZSBnbEdldFNoYWRlcml2ICAgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJ
T04oZ2xHZXRTaGFkZXJpdikKICNkZWZpbmUgZ2xHZXRTaGFkZXJTb3VyY2UgICAgICAgICAgICAg
ICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2V0U2hhZGVyU291cmNlKQorI2RlZmluZSBn
bEdldFN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04o
Z2xHZXRTdHJpbmcpCiAjZGVmaW5lIGdsR2V0U3RyaW5naSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFN0cmluZ2kpCiAjZGVmaW5lIGdsR2V0VW5pZm9y
bWZ2ICAgICAgICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFVuaWZv
cm1mdikKICNkZWZpbmUgZ2xHZXRVbmlmb3JtaXYgICAgICAgICAgICAgICAgICAgICAgICAgTE9P
S1VQX0dMX0ZVTkNUSU9OKGdsR2V0VW5pZm9ybWl2KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggMDI4YmUxYTgwMzIy
MzM2ZTI4ZDAwNWYxZGRjY2RmMDk0OTllODc3Zi4uZDA2Mzk3YWIzMDBiZTE3MmMzZGVjOTY1YmJj
ZDcxODEzNDhhNGQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCkBAIC01Miw2ICs1Miw5IEBACiAKICNpZiBQTEFURk9S
TShHVEspICYmIFBMQVRGT1JNKFgxMSkKICNpbmNsdWRlIDxnZGsvZ2RreC5oPgorI2lmIGRlZmlu
ZWQoTm9uZSkKKyN1bmRlZiBOb25lCisjZW5kaWYKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RL
KSAmJiBQTEFURk9STShXQVlMQU5EKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYW5nbGUvR0xDb250ZXh0QU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR0xDb250ZXh0QU5HTEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzOWRk
ODUwZjQ0NGVhZWZjZjZiMTM0ZDk4MzI1ODFlYjE3MjUwMzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HTENvbnRleHRBTkdMRS5jcHAK
QEAgLTAsMCArMSwyMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgSWdhbGlhLCBTLkwu
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiR0xDb250ZXh0QU5HTEUuaCIKKworI2lmIFVTRShBTkdMRSkKKworI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtRGlzcGxheS5oIgorCisjZGVmaW5lIEVHTF9FR0xfUFJPVE9UWVBFUyAwCisvLyBTa2lw
IHRoZSBpbmNsdXNpb24gb2YgQU5HTEUncyBleHBsaWNpdCBjb250ZXh0IGVudHJ5IHBvaW50cyBm
b3Igbm93LgorI2RlZmluZSBHTF9BTkdMRV9leHBsaWNpdF9jb250ZXh0CisjZGVmaW5lIEdMX0FO
R0xFX2V4cGxpY2l0X2NvbnRleHRfZ2xlczEKK3R5cGVkZWYgdm9pZCogR0xlZ2xDb250ZXh0Owor
I2luY2x1ZGUgPEFOR0xFL2VnbC5oPgorI2luY2x1ZGUgPEFOR0xFL2VnbGV4dC5oPgorI2luY2x1
ZGUgPEFOR0xFL2VnbGV4dF9hbmdsZS5oPgorI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19l
Z2wuaD4KKyNpbmNsdWRlIDxBTkdMRS9lbnRyeV9wb2ludHNfZ2xlc18yXzBfYXV0b2dlbi5oPgor
I2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+CisjaW5jbHVk
ZSA8QU5HTEUvZ2wyZXh0Lmg+CisjaW5jbHVkZSA8QU5HTEUvZ2wyZXh0X2FuZ2xlLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgY2hhciogR0xDb250ZXh0QU5HTEU6OmVycm9yU3Ry
aW5nKGludCBzdGF0dXNDb2RlKQoreworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGludCkgPj0g
c2l6ZW9mKEVHTGludCksICJFR0xpbnQgbXVzdCBub3QgYmUgd2lkZXIgdGhhbiBpbnQiKTsKKyAg
ICBzd2l0Y2ggKHN0YXR1c0NvZGUpIHsKKyNkZWZpbmUgQ0FTRV9SRVRVUk5fU1RSSU5HKG5hbWUp
IGNhc2UgbmFtZTogcmV0dXJuICNuYW1lCisgICAgICAgIC8vIGh0dHBzOi8vd3d3Lmtocm9ub3Mu
b3JnL3JlZ2lzdHJ5L0VHTC9zZGsvZG9jcy9tYW4vaHRtbC9lZ2xHZXRFcnJvci54aHRtbAorICAg
ICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX1NVQ0NFU1MpOworICAgICAgICBDQVNFX1JFVFVS
Tl9TVFJJTkcoRUdMX05PVF9JTklUSUFMSVpFRCk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklO
RyhFR0xfQkFEX0FDQ0VTUyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0FM
TE9DKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQVRUUklCVVRFKTsKKyAg
ICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQ09OVEVYVCk7CisgICAgICAgIENBU0Vf
UkVUVVJOX1NUUklORyhFR0xfQkFEX0NPTkZJRyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklO
RyhFR0xfQkFEX0NVUlJFTlRfU1VSRkFDRSk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhF
R0xfQkFEX0RJU1BMQVkpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9TVVJG
QUNFKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfTUFUQ0gpOworICAgICAg
ICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9QQVJBTUVURVIpOworICAgICAgICBDQVNFX1JF
VFVSTl9TVFJJTkcoRUdMX0JBRF9OQVRJVkVfUElYTUFQKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5f
U1RSSU5HKEVHTF9CQURfTkFUSVZFX1dJTkRPVyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklO
RyhFR0xfQ09OVEVYVF9MT1NUKTsKKyN1bmRlZiBDQVNFX1JFVFVSTl9TVFJJTkcKKyAgICBkZWZh
dWx0OiByZXR1cm4gIlVua25vd24gRUdMIGVycm9yIjsKKyAgICB9Cit9CisKK2NvbnN0IGNoYXIq
IEdMQ29udGV4dEFOR0xFOjpsYXN0RXJyb3JTdHJpbmcoKQoreworICAgIHJldHVybiBlcnJvclN0
cmluZyhFR0xfR2V0RXJyb3IoKSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRBTkdM
RT4gR0xDb250ZXh0QU5HTEU6OmNyZWF0ZUNvbnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlLCBQbGF0
Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSkKK3sKKyAgICBFR0xEaXNwbGF5IGRpc3BsYXkg
PSBFR0xfR2V0RGlzcGxheShFR0xfREVGQVVMVF9ESVNQTEFZKTsKKyAgICBpZiAoZGlzcGxheSA9
PSBFR0xfTk9fRElTUExBWSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBFR0xpbnQg
bWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb247CisgICAgaWYgKEVHTF9Jbml0aWFsaXplKGRpc3Bs
YXksICZtYWpvclZlcnNpb24sICZtaW5vclZlcnNpb24pID09IEVHTF9GQUxTRSkgeworICAgICAg
ICBMT0coV2ViR0wsICJFR0xEaXNwbGF5IEluaXRpYWxpemF0aW9uIGZhaWxlZC4iKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIExPRyhXZWJHTCwgIkFOR0xFIGluaXRpYWxp
c2VkIE1ham9yOiAlZCBNaW5vcjogJWQiLCBtYWpvclZlcnNpb24sIG1pbm9yVmVyc2lvbik7CisK
KyAgICBjb25zdCBjaGFyKiBkaXNwbGF5RXh0ZW5zaW9ucyA9IEVHTF9RdWVyeVN0cmluZyhkaXNw
bGF5LCBFR0xfRVhURU5TSU9OUyk7CisgICAgTE9HKFdlYkdMLCAiRXh0ZW5zaW9uczogJXMiLCBk
aXNwbGF5RXh0ZW5zaW9ucyk7CisKKyAgICBFR0xDb25maWcgY29uZmlnOworICAgIEVHTGludCBj
b25maWdBdHRyaWJ1dGVzW10gPSB7CisgICAgICAgIEVHTF9SRU5ERVJBQkxFX1RZUEUsIEVHTF9P
UEVOR0xfRVMyX0JJVCwKKyAgICAgICAgRUdMX1JFRF9TSVpFLCA4LAorICAgICAgICBFR0xfR1JF
RU5fU0laRSwgOCwKKyAgICAgICAgRUdMX0JMVUVfU0laRSwgOCwKKyAgICAgICAgRUdMX0FMUEhB
X1NJWkUsIDgsCisgICAgICAgIEVHTF9TVVJGQUNFX1RZUEUsIEVHTF9QQlVGRkVSX0JJVCwKKyAg
ICAgICAgRUdMX05PTkUKKyAgICB9OworICAgIEVHTGludCBudW1iZXJDb25maWdzUmV0dXJuZWQg
PSAwOworICAgIEVHTF9DaG9vc2VDb25maWcoZGlzcGxheSwgY29uZmlnQXR0cmlidXRlcywgJmNv
bmZpZywgMSwgJm51bWJlckNvbmZpZ3NSZXR1cm5lZCk7CisgICAgaWYgKG51bWJlckNvbmZpZ3NS
ZXR1cm5lZCAhPSAxKSB7CisgICAgICAgIExPRyhXZWJHTCwgIkVHTENvbmZpZyBJbml0aWFsaXph
dGlvbiBmYWlsZWQuIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBMT0co
V2ViR0wsICJHb3QgRUdMQ29uZmlnIik7CisKKyAgICBFR0xfQmluZEFQSShFR0xfT1BFTkdMX0VT
X0FQSSk7CisgICAgaWYgKEVHTF9HZXRFcnJvcigpICE9IEVHTF9TVUNDRVNTKSB7CisgICAgICAg
IExPRyhXZWJHTCwgIlVuYWJsZSB0byBiaW5kIHRvIE9QRU5HTF9FU19BUEkiKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgc3RkOjp2ZWN0b3I8RUdMaW50PiBjb250ZXh0
QXR0cmlidXRlczsKKyAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soRUdMX0NPTlRFWFRf
Q0xJRU5UX1ZFUlNJT04pOworICAgIGNvbnRleHRBdHRyaWJ1dGVzLnB1c2hfYmFjaygyKTsKKyAg
ICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soRUdMX0NPTlRFWFRfV0VCR0xfQ09NUEFUSUJJ
TElUWV9BTkdMRSk7CisgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9UUlVFKTsK
KyAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soRUdMX0VYVEVOU0lPTlNfRU5BQkxFRF9B
TkdMRSk7CisgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9UUlVFKTsKKyAgICBp
ZiAoc3Ryc3RyKGRpc3BsYXlFeHRlbnNpb25zLCAiRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2Ui
KSkgeworICAgICAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soRUdMX1BPV0VSX1BSRUZF
UkVOQ0VfQU5HTEUpOworICAgICAgICAvLyBFR0xfTE9XX1BPV0VSX0FOR0xFIGlzIHRoZSBkZWZh
dWx0LiBDaGFuZ2UgdG8KKyAgICAgICAgLy8gRUdMX0hJR0hfUE9XRVJfQU5HTEUgaWYgZGVzaXJl
ZC4KKyAgICAgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9MT1dfUE9XRVJfQU5H
TEUpOworICAgIH0KKyAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soRUdMX05PTkUpOwor
CisgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gRUdMX0NyZWF0ZUNvbnRleHQoZGlzcGxheSwgY29u
ZmlnLCBFR0xfTk9fQ09OVEVYVCwgY29udGV4dEF0dHJpYnV0ZXMuZGF0YSgpKTsKKyAgICBpZiAo
Y29udGV4dCA9PSBFR0xfTk9fQ09OVEVYVCkgeworICAgICAgICBMT0coV2ViR0wsICJFR0xDb250
ZXh0IEluaXRpYWxpemF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorICAgIExPRyhXZWJHTCwgIkdvdCBFR0xDb250ZXh0Iik7CisKKyAgICBzdGF0aWMgY29u
c3QgaW50IHBidWZmZXJBdHRyaWJ1dGVzW10gPSB7IEVHTF9XSURUSCwgMSwgRUdMX0hFSUdIVCwg
MSwgRUdMX05PTkUgfTsKKyAgICBFR0xTdXJmYWNlIHN1cmZhY2UgPSBFR0xfQ3JlYXRlUGJ1ZmZl
clN1cmZhY2UoZGlzcGxheSwgY29uZmlnLCBwYnVmZmVyQXR0cmlidXRlcyk7CisgICAgaWYgKHN1
cmZhY2UgPT0gRUdMX05PX1NVUkZBQ0UpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3Qg
Y3JlYXRlIEVHTCBQYnVmZmVyIHN1cmZhY2U6ICVzXG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7Cisg
ICAgICAgIEVHTF9EZXN0cm95Q29udGV4dChkaXNwbGF5LCBjb250ZXh0KTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorICAgIExPRyhXZWJHTCwgIkdvdCBFR0xQYnVmZmVyU3VyZmFj
ZSIpOworCisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRBTkdMRT4obmV3IEdM
Q29udGV4dEFOR0xFKHBsYXRmb3JtRGlzcGxheSwgZGlzcGxheSwgY29udGV4dCwgc3VyZmFjZSwg
U3VyZmFjZWxlc3MpKTsKK30KKworR0xDb250ZXh0QU5HTEU6OkdMQ29udGV4dEFOR0xFKFBsYXRm
b3JtRGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5LCBFR0xEaXNwbGF5IGRpc3BsYXksIEVHTENvbnRl
eHQgY29udGV4dCwgRUdMU3VyZmFjZSBzdXJmYWNlLCBFR0xTdXJmYWNlVHlwZSB0eXBlKQorICAg
IDogR0xDb250ZXh0KHBsYXRmb3JtRGlzcGxheSkKKyAgICAsIG1fZWdsRGlzcGxheShkaXNwbGF5
KQorICAgICwgbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX3N1cmZhY2Uoc3VyZmFjZSkKKyAg
ICAsIG1fdHlwZSh0eXBlKQoreworICAgIEFTU0VSVCh0eXBlICE9IFBpeG1hcFN1cmZhY2UpOwor
ICAgIEFTU0VSVCh0eXBlID09IFN1cmZhY2VsZXNzIHx8IHN1cmZhY2UgIT0gRUdMX05PX1NVUkZB
Q0UpOworICAgIFJFTEVBU0VfQVNTRVJUKGRpc3BsYXkgIT0gRUdMX05PX0RJU1BMQVkpOworICAg
IFJFTEVBU0VfQVNTRVJUKGNvbnRleHQgIT0gRUdMX05PX0NPTlRFWFQpOworfQorCitHTENvbnRl
eHRBTkdMRTo6fkdMQ29udGV4dEFOR0xFKCkKK3sKKyAgICBpZiAobV9jb250ZXh0KSB7CisgICAg
ICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIDApOworICAgICAgICBFR0xf
TWFrZUN1cnJlbnQobV9lZ2xEaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0Us
IEVHTF9OT19DT05URVhUKTsKKyAgICAgICAgRUdMX0Rlc3Ryb3lDb250ZXh0KG1fZWdsRGlzcGxh
eSwgbV9jb250ZXh0KTsKKyAgICB9CisKKyAgICBpZiAobV9zdXJmYWNlKQorICAgICAgICBFR0xf
RGVzdHJveVN1cmZhY2UobV9lZ2xEaXNwbGF5LCBtX3N1cmZhY2UpOworfQorCitib29sIEdMQ29u
dGV4dEFOR0xFOjptYWtlQ29udGV4dEN1cnJlbnQoKQoreworICAgIEFTU0VSVChtX2NvbnRleHQp
OworCisgICAgR0xDb250ZXh0OjptYWtlQ29udGV4dEN1cnJlbnQoKTsKKyAgICBpZiAoRUdMX0dl
dEN1cnJlbnRDb250ZXh0KCkgIT0gbV9jb250ZXh0KQorICAgICAgICByZXR1cm4gRUdMX01ha2VD
dXJyZW50KG1fZWdsRGlzcGxheSwgbV9zdXJmYWNlLCBtX3N1cmZhY2UsIG1fY29udGV4dCk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgR0xDb250ZXh0QU5HTEU6OnN3YXBCdWZmZXJzKCkK
K3sKKyAgICBBU1NFUlQobV9zdXJmYWNlKTsKKyAgICBFR0xfU3dhcEJ1ZmZlcnMobV9lZ2xEaXNw
bGF5LCBtX3N1cmZhY2UpOworfQorCit2b2lkIEdMQ29udGV4dEFOR0xFOjp3YWl0TmF0aXZlKCkK
K3sKKyAgICBFR0xfV2FpdE5hdGl2ZShFR0xfQ09SRV9OQVRJVkVfRU5HSU5FKTsKK30KKworYm9v
bCBHTENvbnRleHRBTkdMRTo6Y2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKQoreworICAg
IHJldHVybiBtX3R5cGUgPT0gV2luZG93U3VyZmFjZTsKK30KKworSW50U2l6ZSBHTENvbnRleHRB
TkdMRTo6ZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSgpCit7CisgICAgaWYgKCFjYW5SZW5kZXJUb0Rl
ZmF1bHRGcmFtZWJ1ZmZlcigpKQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgRUdM
aW50IHdpZHRoLCBoZWlnaHQ7CisgICAgaWYgKCFFR0xfUXVlcnlTdXJmYWNlKG1fZWdsRGlzcGxh
eSwgbV9zdXJmYWNlLCBFR0xfV0lEVEgsICZ3aWR0aCkKKyAgICAgICAgfHwgIUVHTF9RdWVyeVN1
cmZhY2UobV9lZ2xEaXNwbGF5LCBtX3N1cmZhY2UsIEVHTF9IRUlHSFQsICZoZWlnaHQpKQorICAg
ICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgcmV0dXJuIEludFNpemUod2lkdGgsIGhlaWdo
dCk7Cit9CisKK3ZvaWQgR0xDb250ZXh0QU5HTEU6OnN3YXBJbnRlcnZhbChpbnQgaW50ZXJ2YWwp
Cit7CisgICAgQVNTRVJUKG1fc3VyZmFjZSk7CisgICAgRUdMX1N3YXBJbnRlcnZhbChtX2VnbERp
c3BsYXksIGludGVydmFsKTsKK30KKworI2lmIFVTRShDQUlSTykKK2NhaXJvX2RldmljZV90KiBH
TENvbnRleHRBTkdMRTo6Y2Fpcm9EZXZpY2UoKQoreworICAgIHJldHVybiBudWxscHRyOworfQor
I2VuZGlmCisKKyNpZiBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF8zRCkKK1BsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0M0QgR0xDb250ZXh0QU5HTEU6OnBsYXRmb3JtQ29udGV4dCgpCit7CisgICAgcmV0
dXJuIG1fY29udGV4dDsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBVU0UoQU5HTEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hbmdsZS9HTENvbnRleHRBTkdMRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYW5nbGUvR0xDb250ZXh0QU5HTEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODJlZGRkNTgzZWQz
MGZkYjFkNWM0OTEwZjgwZTdlYTI1Y2M1MWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR0xDb250ZXh0QU5HTEUuaApAQCAtMCwwICsx
LDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKKyAqICBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBTkdMRSkK
KworI2luY2x1ZGUgIkdMQ29udGV4dC5oIgorCit0eXBlZGVmIHZvaWQgKkVHTENvbmZpZzsKK3R5
cGVkZWYgdm9pZCAqRUdMQ29udGV4dDsKK3R5cGVkZWYgdm9pZCAqRUdMRGlzcGxheTsKK3R5cGVk
ZWYgdm9pZCAqRUdMU3VyZmFjZTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHTENv
bnRleHRBTkdMRSBmaW5hbCA6IHB1YmxpYyBHTENvbnRleHQgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEdMQ29udGV4dEFOR0xFKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPEdMQ29udGV4dEFOR0xFPiBjcmVhdGVDb250ZXh0KEdMTmF0aXZlV2luZG93VHlwZSwgUGxh
dGZvcm1EaXNwbGF5Jik7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZXJyb3JTdHJpbmcoaW50
IHN0YXR1c0NvZGUpOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBsYXN0RXJyb3JTdHJpbmcoKTsK
KworICAgIHZpcnR1YWwgfkdMQ29udGV4dEFOR0xFKCk7CisKK3ByaXZhdGU6CisgICAgYm9vbCBt
YWtlQ29udGV4dEN1cnJlbnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHN3YXBCdWZmZXJzKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCB3YWl0TmF0aXZlKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5SZW5k
ZXJUb0RlZmF1bHRGcmFtZWJ1ZmZlcigpIG92ZXJyaWRlOworICAgIEludFNpemUgZGVmYXVsdEZy
YW1lQnVmZmVyU2l6ZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc3dhcEludGVydmFsKGludCkgb3Zl
cnJpZGU7CisjaWYgVVNFKENBSVJPKQorICAgIGNhaXJvX2RldmljZV90KiBjYWlyb0RldmljZSgp
IG92ZXJyaWRlOworI2VuZGlmCisgICAgYm9vbCBpc0VHTENvbnRleHQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CisKKyNpZiBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF8zRCkKKyAg
ICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIG92ZXJyaWRlOwor
I2VuZGlmCisKKyAgICBlbnVtIEVHTFN1cmZhY2VUeXBlIHsgUGJ1ZmZlclN1cmZhY2UsIFdpbmRv
d1N1cmZhY2UsIFBpeG1hcFN1cmZhY2UsIFN1cmZhY2VsZXNzIH07CisKKyAgICBHTENvbnRleHRB
TkdMRShQbGF0Zm9ybURpc3BsYXkmLCBFR0xEaXNwbGF5LCBFR0xDb250ZXh0LCBFR0xTdXJmYWNl
LCBFR0xTdXJmYWNlVHlwZSk7CisKKyAgICBFR0xEaXNwbGF5IG1fZWdsRGlzcGxheSB7IG51bGxw
dHIgfTsKKyAgICBFR0xDb250ZXh0IG1fY29udGV4dCB7IG51bGxwdHIgfTsKKyAgICBFR0xTdXJm
YWNlIG1fc3VyZmFjZSB7IG51bGxwdHIgfTsKKyAgICBFR0xTdXJmYWNlVHlwZSBtX3R5cGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoQU5HTEUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHQzREFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCmluZGV4IDdjYmRmZmU4ZWNkMGYzNjU2ZDA4YTFh
MDk5OWExYjM1ODgwNWVjZmIuLmQzOGJkMjBhOGVjNWU1OGU4Nzg2YmQ5NDRhMWRmODc4NmMwMzQ5
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCkBAIC02OSw2ICs2OSwxMSBA
QCB0eXBlZGVmIHZvaWQqIEdMZWdsQ29udGV4dDsKIC8vIHdvdWxkIG5lZWQgbW9yZSB3b3JrIHRv
IGJlIGluY2x1ZGVkIGZyb20gV2ViQ29yZS4KICNkZWZpbmUgR0xfTUFYX1NBTVBMRVNfRVhUIDB4
OEQ1NwogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSAmJiBVU0UoVEVYVFVSRV9NQVBQ
RVIpCisjZGVmaW5lIEdMX0NPTE9SX0FUVEFDSE1FTlQwX0VYVCAweDhDRTAKKyNkZWZpbmUgR0xf
RlJBTUVCVUZGRVJfRVhUIDB4OEQ0MAorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
c3RhdGljIGNvbnN0IGNoYXIqIHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbk5hbWUgPSAiR0xf
T0VTX3BhY2tlZF9kZXB0aF9zdGVuY2lsIjsKQEAgLTIwMCw2ICsyMDUsMjIgQEAgYm9vbCBHcmFw
aGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICNlbHNlCiAj
ZXJyb3IgVW5rbm93biBDb2NvYSBwbGF0Zm9ybQogI2VuZGlmCisKKyNlbGlmIFBMQVRGT1JNKEdU
SykKKyAgICBnbDo6QmluZFRleHR1cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fdGV4
dHVyZSk7CisgICAgZ2w6OlRleEltYWdlMkQoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIDAs
IG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgY29sb3JGb3JtYXQsIEdM
X1VOU0lHTkVEX0JZVEUsIDApOworICAgIGdsOjpGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFN
RUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xF
LCBtX3RleHR1cmUsIDApOworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyAgICBpZiAo
bV9jb21wb3NpdG9yVGV4dHVyZSkgeworICAgICAgICBnbDo6QmluZFRleHR1cmUoR0xfVEVYVFVS
RV9SRUNUQU5HTEVfQU5HTEUsIG1fY29tcG9zaXRvclRleHR1cmUpOworICAgICAgICBnbDo6VGV4
SW1hZ2UyRChHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgMCwgbV9pbnRlcm5hbENvbG9yRm9y
bWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBjb2xvckZvcm1hdCwgR0xfVU5TSUdORURfQllURSwgMCk7
CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgMCk7
CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV9p
bnRlcm1lZGlhdGVUZXh0dXJlKTsKKyAgICAgICAgZ2w6OlRleEltYWdlMkQoR0xfVEVYVFVSRV9S
RUNUQU5HTEVfQU5HTEUsIDAsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
MCwgY29sb3JGb3JtYXQsIEdMX1VOU0lHTkVEX0JZVEUsIDApOworICAgICAgICBnbDo6QmluZFRl
eHR1cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIDApOworICAgIH0KKyNlbmRpZgorCiAj
ZWxzZQogCiAjZXJyb3IgTXVzdCBwb3J0IHRvIG5vbi1Db2NvYSBwbGF0Zm9ybXMKQEAgLTQ4Nyw3
ICs1MDgsMjAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUoKQogICAg
IGlmIChtX2F0dHJzLmFudGlhbGlhcykKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5l
Y2Vzc2FyeSgpOwogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorICAgIHN0ZDo6c3dh
cChtX3RleHR1cmUsIG1fY29tcG9zaXRvclRleHR1cmUpOworICAgIHN0ZDo6c3dhcChtX3RleHR1
cmUsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9G
UkFNRUJVRkZFUiwgbV9mYm8pOworICAgIGdsOjpGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFN
RUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xF
LCBtX3RleHR1cmUsIDApOworICAgIGdsOjpGbHVzaCgpOworCisgICAgaWYgKG1fc3RhdGUuYm91
bmRGQk8gIT0gbV9mYm8pCisgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250
ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX3N0YXRlLmJvdW5kRkJPKTsKKyAgICBlbHNlCisgICAgICAg
IGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zi
byk7CisjZWxzZQogICAgIGdsOjpGbHVzaCgpOworI2VuZGlmCiB9CiAKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1bHRzKHVuc2lnbmVkIGNoYXIgKnBpeGVscywgaW50
IHBpeGVsc1NpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCmluZGV4
IDlhOWJkNDY4M2IyNjc0MmFmZWNiMTQ5MWY2MTQ0ZjJhNzhjNTk1MmMuLmQwZDhiNGRmYTBhNTNi
ZWY5YjU2NjQ5MjYwMWI4MDAxY2ZhZjYxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFH
QzNETGF5ZXIuY3BwCkBAIC0zNyw2ICszNywxMCBAQAogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHkuaCIKICNlbmRpZgogCisjaWYgVVNFKEFOR0xFKQorI2luY2x1ZGUg
IkltYWdlQnVmZmVyLmgiCisjZW5kaWYKKwogI2luY2x1ZGUgIkdMQ29udGV4dC5oIgogCiBuYW1l
c3BhY2UgTmljb3NpYSB7CkBAIC00OSw3ICs1MywxMSBAQCBHQzNETGF5ZXI6OkdDM0RMYXllcihH
cmFwaGljc0NvbnRleHQzRCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxl
CiB7CiAgICAgc3dpdGNoIChyZW5kZXJTdHlsZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJlbmRlck9mZnNjcmVlbjoKKyNpZiBVU0UoQU5HTEUpCisgICAgICAgIG1fZ2xDb250ZXh0
ID0gR0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KCZQbGF0Zm9ybURpc3BsYXk6OnNo
YXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpLCB0cnVlKTsKKyNlbHNlCiAgICAgICAgIG1fZ2xD
b250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KCZQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpKTsKKyNlbmRpZgogICAgICAgICBicmVh
azsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRv
dzoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04MiwxMyArOTAsMzggQEAgdm9p
ZCBHQzNETGF5ZXI6OnN3YXBCdWZmZXJzSWZOZWVkZWQoKQogCiAgICAgbV9jb250ZXh0LnByZXBh
cmVUZXh0dXJlKCk7CiAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZShtX2NvbnRleHQubV9jdXJyZW50
V2lkdGgsIG1fY29udGV4dC5tX2N1cnJlbnRIZWlnaHQpOwotICAgIFRleHR1cmVNYXBwZXJHTDo6
RmxhZ3MgZmxhZ3MgPSBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEZsaXBUZXh0dXJlIHwgKG1fY29u
dGV4dC5tX2F0dHJzLmFscGhhID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6IDApOwor
ICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSBtX2NvbnRleHQubV9hdHRycy5hbHBo
YSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwOworI2lmIFVTRShBTkdMRSkKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6
OmNyZWF0ZSh0ZXh0dXJlU2l6ZSwgVW5hY2NlbGVyYXRlZCk7CisgICAgaWYgKCFpbWFnZUJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb250ZXh0LnBhaW50UmVuZGVyaW5nUmVzdWx0
c1RvQ2FudmFzKGltYWdlQnVmZmVyLmdldCgpKTsKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0g
aW1hZ2VCdWZmZXItPmNvcHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSk7CisgICAgaWYgKCFp
bWFnZSkKKyAgICAgICAgcmV0dXJuOworI2Vsc2UKKyAgICBmbGFncyB8PSBUZXh0dXJlTWFwcGVy
R0w6OlNob3VsZEZsaXBUZXh0dXJlOworI2VuZGlmCiAKICAgICB7CiAgICAgICAgIGF1dG8mIHBy
b3h5ID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1f
Y29udGVudExheWVyLT5pbXBsKCkpLnByb3h5KCk7CisjaWYgVVNFKEFOR0xFKQorICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+IGxheWVyQnVm
ZmVyOworICAgICAgICBsYXllckJ1ZmZlciA9IHByb3h5LmdldEF2YWlsYWJsZUJ1ZmZlcih0ZXh0
dXJlU2l6ZSwgbV9jb250ZXh0Lm1faW50ZXJuYWxDb2xvckZvcm1hdCk7CisgICAgICAgIGlmICgh
bGF5ZXJCdWZmZXIpIHsKKyAgICAgICAgICAgIGF1dG8gdGV4dHVyZSA9IEJpdG1hcFRleHR1cmVH
TDo6Y3JlYXRlKFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCksIG1fY29udGV4
dC5tX2ludGVybmFsQ29sb3JGb3JtYXQpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Qml0bWFw
VGV4dHVyZUdMJj4odGV4dHVyZS5nZXQoKSkuc2V0UGVuZGluZ0NvbnRlbnRzKFdURk1vdmUoaW1h
Z2UpKTsKKyAgICAgICAgICAgIGxheWVyQnVmZmVyID0gbWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllckJ1ZmZlcj4oV1RGTW92ZSh0ZXh0dXJlKSwgZmxhZ3MpOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGxheWVyQnVmZmVyLT50ZXh0dXJlR0woKS5zZXRQZW5kaW5nQ29u
dGVudHMoV1RGTW92ZShpbWFnZSkpOwogCisgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5
LmxvY2soKSk7CisgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKFdURk1vdmUobGF5ZXJCdWZm
ZXIpKTsKKyNlbHNlCiAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5LmxvY2soKSk7CiAg
ICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJCdWZmZXI+KG1fY29udGV4dC5tX2NvbXBvc2l0b3JUZXh0dXJlLCB0ZXh0dXJlU2l6
ZSwgZmxhZ3MsIG1fY29udGV4dC5tX2ludGVybmFsQ29sb3JGb3JtYXQpKTsKKyNlbmRpZgogICAg
IH0KIAogICAgIG1fY29udGV4dC5tYXJrTGF5ZXJDb21wb3NpdGVkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJl
R0wuY3BwCmluZGV4IDc5YjAwNmUxNGQxYTlmMzFkMDJkYzc2Nzg3MjFlNzE0YjNkY2NjYmIuLmYy
ZDBmNjRiM2ZmNzlkY2JhMGE2YWU0YzQyODQwOGY4MTMwMTg3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJl
R0wuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKICNp
bmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRl
ICJMZW5ndGhGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCkBAIC0xNjksNiArMTY4LDI1IEBAIHZvaWQgQml0bWFwVGV4dHVy
ZUdMOjp1cGRhdGVDb250ZW50cyhJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIHRhcmdldFJl
Y3QsIGNvCiAgICAgdXBkYXRlQ29udGVudHMoaW1hZ2VEYXRhLCB0YXJnZXRSZWN0LCBvZmZzZXQs
IGJ5dGVzUGVyTGluZSk7CiB9CiAKKyNpZiBVU0UoQU5HTEUpCit2b2lkIEJpdG1hcFRleHR1cmVH
TDo6c2V0UGVuZGluZ0NvbnRlbnRzKFJlZlB0cjxJbWFnZT4gaW1hZ2UpCit7CisgICAgbV9wZW5k
aW5nQ29udGVudHMgPSBpbWFnZTsKK30KKwordm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZVBl
bmRpbmdDb250ZW50cyhjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRQb2ludCYg
b2Zmc2V0KQoreworICAgIGlmICghbV9wZW5kaW5nQ29udGVudHMpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghaXNWYWxpZCgpKSB7CisgICAgICAgIEludFNpemUgdGV4dHVyZVNpemUobV9w
ZW5kaW5nQ29udGVudHMtPnNpemUoKSk7CisgICAgICAgIHJlc2V0KHRleHR1cmVTaXplKTsKKyAg
ICB9CisgICAgdXBkYXRlQ29udGVudHMobV9wZW5kaW5nQ29udGVudHMuZ2V0KCksIHRhcmdldFJl
Y3QsIG9mZnNldCk7Cit9CisjZW5kaWYKKwogc3RhdGljIHVuc2lnbmVkIGdldFBhc3Nlc1JlcXVp
cmVkRm9yRmlsdGVyKEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlKQogewogICAg
IHN3aXRjaCAodHlwZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oCmluZGV4IDg3MDlhODI1NjBjNjQ5ODg3
NDg5MzhiOGI4NmUxM2JmNTNhMGJlZjYuLjAwMzc2OGU2NDAwODhjZjZhMDY4ZDRjYTRmNzRlYTc3
ODVmN2QyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJCaXRtYXBUZXh0dXJlLmgiCiAjaW5jbHVkZSAiQ2xpcFN0YWNrLmgiCiAjaW5jbHVkZSAiRmls
dGVyT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgi
CiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAi
VGV4dHVyZU1hcHBlckdMLmgiCkBAIC03Nyw2ICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgR0xpbnQg
aW50ZXJuYWxGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX2ludGVybmFsRm9ybWF0OyB9CiAKICAg
ICB2b2lkIGNvcHlGcm9tRXh0ZXJuYWxUZXh0dXJlKEdMdWludCB0ZXh0dXJlSUQpOworI2lmIFVT
RShBTkdMRSkKKyAgICB2b2lkIHNldFBlbmRpbmdDb250ZW50cyhSZWZQdHI8SW1hZ2U+KTsKKyAg
ICB2b2lkIHVwZGF0ZVBlbmRpbmdDb250ZW50cyhjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBj
b25zdCBJbnRQb2ludCYgb2Zmc2V0KTsKKyNlbmRpZgogCiAgICAgVGV4dHVyZU1hcHBlckdMOjpG
bGFncyBjb2xvckNvbnZlcnRGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3JDb252ZXJ0Rmxh
Z3M7IH0KIApAQCAtOTQsNiArOTksMTAgQEAgcHJpdmF0ZToKICAgICBUZXh0dXJlTWFwcGVyQ29u
dGV4dEF0dHJpYnV0ZXMgbV9jb250ZXh0QXR0cmlidXRlczsKICAgICBUZXh0dXJlTWFwcGVyR0w6
OkZsYWdzIG1fY29sb3JDb252ZXJ0RmxhZ3MgeyBUZXh0dXJlTWFwcGVyR0w6Ok5vRmxhZyB9Owog
CisjaWYgVVNFKEFOR0xFKQorICAgIFJlZlB0cjxJbWFnZT4gbV9wZW5kaW5nQ29udGVudHMgeyBu
dWxscHRyIH07CisjZW5kaWYKKwogICAgIHZvaWQgY2xlYXJJZk5lZWRlZCgpOwogICAgIHZvaWQg
Y3JlYXRlRmJvSWZOZWVkZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RU
ZXh0dXJlTWFwcGVyLmNwcAppbmRleCA4ZmQzYWQ0ZjcyZDc2NGJkOTVkMjIwZjU4MWVkMmI3OTYy
ODgzYzljLi5jNDVhZmQ3OWIyNzQxNmJiMjlkNTQ2MWRmOTgxZTdiNDc5ZjA2OWJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250
ZXh0M0RUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzcsMTMg
KzM3LDMyIEBACiAKICNpbmNsdWRlIDxBTkdMRS9TaGFkZXJMYW5nLmg+CiAKLSNpZiBVU0UoTElC
RVBPWFkpCisjaWYgVVNFKEFOR0xFKQorI2RlZmluZSBFR0xfRUdMX1BST1RPVFlQRVMgMAorLy8g
U2tpcCB0aGUgaW5jbHVzaW9uIG9mIEFOR0xFJ3MgZXhwbGljaXQgY29udGV4dCBlbnRyeSBwb2lu
dHMgZm9yIG5vdy4KKyNkZWZpbmUgR0xfQU5HTEVfZXhwbGljaXRfY29udGV4dAorI2RlZmluZSBH
TF9BTkdMRV9leHBsaWNpdF9jb250ZXh0X2dsZXMxCit0eXBlZGVmIHZvaWQqIEdMZWdsQ29udGV4
dDsKKyNpbmNsdWRlIDxBTkdMRS9lZ2wuaD4KKyNpbmNsdWRlIDxBTkdMRS9lZ2xleHQuaD4KKyNp
bmNsdWRlIDxBTkdMRS9lZ2xleHRfYW5nbGUuaD4KKyNpbmNsdWRlIDxBTkdMRS9lbnRyeV9wb2lu
dHNfZWdsLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfMl8wX2F1dG9nZW4u
aD4KKyNpbmNsdWRlIDxBTkdMRS9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5oPgorI2lu
Y2x1ZGUgPEFOR0xFL2dsMmV4dC5oPgorI2luY2x1ZGUgPEFOR0xFL2dsMmV4dF9hbmdsZS5oPgor
I2lmIGRlZmluZWQoTm9uZSkKKyN1bmRlZiBOb25lCisjZW5kaWYKKyNlbGlmIFVTRShMSUJFUE9Y
WSkKICNpbmNsdWRlIDxlcG94eS9nbC5oPgogI2VsaWYgIVVTRShPUEVOR0xfRVMpCiAjaW5jbHVk
ZSAiT3BlbkdMU2hpbXMuaCIKICNlbmRpZgogCi0jaWYgVVNFKE9QRU5HTF9FUykKKyNpZiBVU0Uo
QU5HTEUpCisjaW5jbHVkZSAiRXh0ZW5zaW9uczNEQU5HTEUuaCIKKyNlbGlmIFVTRShPUEVOR0xf
RVMpCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNET3BlbkdMRVMuaCIKICNlbHNlCiAjaW5jbHVkZSAi
RXh0ZW5zaW9uczNET3BlbkdMLmgiCkBAIC03MSw3ICs5MCw3IEBAIFJlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwogICAgIHN0YXRpYyBi
b29sIHN1Y2Nlc3MgPSB0cnVlOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKLSNpZiAhVVNFKE9Q
RU5HTF9FUykgJiYgIVVTRShMSUJFUE9YWSkKKyNpZiAhVVNFKE9QRU5HTF9FUykgJiYgIVVTRShM
SUJFUE9YWSkgJiYgIVVTRShBTkdMRSkKICAgICAgICAgc3VjY2VzcyA9IGluaXRpYWxpemVPcGVu
R0xTaGltcygpOwogI2VuZGlmCiAgICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKQEAgLTEwMSw2
ICsxMjAsNzkgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogICAgIHJldHVybiBjb250ZXh0Owog
fQogCisjaWYgVVNFKEFOR0xFKQorR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNE
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlLCBHcmFwaGljc0NvbnRleHQz
RCogc2hhcmVkQ29udGV4dCkKKyAgICA6IG1fYXR0cnMoYXR0cmlidXRlcykKK3sKKyAgICBBU1NF
UlRfVU5VU0VEKHNoYXJlZENvbnRleHQsICFzaGFyZWRDb250ZXh0KTsKKyNpZiBVU0UoTklDT1NJ
QSkKKyAgICBtX25pY29zaWFMYXllciA9IFdURjo6bWFrZVVuaXF1ZTxOaWNvc2lhOjpHQzNETGF5
ZXI+KCp0aGlzLCByZW5kZXJTdHlsZSk7CisjZWxzZQorICAgIG1fdGV4bWFwTGF5ZXIgPSBXVEY6
Om1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyPigqdGhpcywgcmVuZGVy
U3R5bGUpOworI2VuZGlmCisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKworICAgIHZhbGlk
YXRlQXR0cmlidXRlcygpOworCisgICAgaWYgKHJlbmRlclN0eWxlID09IFJlbmRlck9mZnNjcmVl
bikgeworICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgorICAgICAg
ICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVy
ZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV90ZXh0dXJlKTsKKyAgICAgICAgZ2w6OlRl
eFBhcmFtZXRlcmYoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfTUFHX0ZJ
TFRFUiwgR0xfTElORUFSKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV9S
RUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICAg
ICAgZ2w6OlRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRV
UkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmko
R0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9U
T19FREdFKTsKKyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FO
R0xFLCAwKTsKKworICAgICAgICAvLyBDcmVhdGUgYW4gRkJPLgorICAgICAgICBnbDo6R2VuRnJh
bWVidWZmZXJzKDEsICZtX2Zibyk7CisgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJB
TUVCVUZGRVIsIG1fZmJvKTsKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyAgICAg
ICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX2NvbXBvc2l0b3JUZXh0dXJlKTsKKyAgICAgICAgZ2w6
OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX2NvbXBvc2l0b3JUZXh0
dXJlKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5H
TEUsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICAgICAgZ2w6OlRleFBh
cmFtZXRlcmYoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfTUlOX0ZJTFRF
UiwgR0xfTElORUFSKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9SRUNU
QU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICAg
ICAgZ2w6OlRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRV
UkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKworICAgICAgICBnbDo6R2VuVGV4dHVyZXMo
MSwgJm1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9U
RVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsKKyAgICAgICAg
Z2w6OlRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVf
TUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmYoR0xfVEVY
VFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsK
KyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdM
X1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICAgICAgZ2w6OlRleFBhcmFt
ZXRlcmkoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9D
TEFNUF9UT19FREdFKTsKKworICAgICAgICBnbDo6QmluZFRleHR1cmUoR0xfVEVYVFVSRV9SRUNU
QU5HTEVfQU5HTEUsIDApOworI2VuZGlmCisKKyAgICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1w
bGUgRkJPLgorICAgICAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICAgICAgICAgIGds
OjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOworICAgICAgICAgICAgZ2w6
OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CisgICAg
ICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKKyAgICAgICAgICAg
IGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOworICAg
ICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAg
ICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2ls
QnVmZmVyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEJpbmQgY2FudmFzIEZC
Ty4KKyAgICAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJv
KTsKKyAgICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKKyNpZiBVU0UoT1BFTkdM
X0VTKQorICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICAgICAgZ2w6
OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhCdWZmZXIpOworICAgICAgICAgICAgaWYgKG1f
YXR0cnMuc3RlbmNpbCkKKyAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAm
bV9zdGVuY2lsQnVmZmVyKTsKKyNlbmRpZgorICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNp
bCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJz
KDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBnbDo6
Q2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKK30KKyNlbHNlCiBHcmFwaGljc0NvbnRleHQzRDo6R3Jh
cGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhv
c3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUsIEdy
YXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0KQogICAgIDogbV9hdHRycyhhdHRyaWJ1dGVz
KQogewpAQCAtMTcxLDYgKzI2Myw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRl
eHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zCiAgICAgICAg
IH0KICAgICB9CiAKKyNpZiAhVVNFKEFOR0xFKQogI2lmICFVU0UoT1BFTkdMX0VTKQogICAgIDo6
Z2xFbmFibGUoR0xfVkVSVEVYX1BST0dSQU1fUE9JTlRfU0laRSk7CiAKQEAgLTIwMCw2ICsyOTMs
NyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvcwogI2Vsc2UKICAgICAvLyBBZGp1c3QgdGhlIHNo
YWRlciBzcGVjaWZpY2F0aW9uIGRlcGVuZGluZyBvbiB3aGV0aGVyIEdMRVMzIChpLmUuIFdlYkdM
MiBzdXBwb3J0KSB3YXMgcmVxdWVzdGVkLgogICAgIG1fY29tcGlsZXIgPSBBTkdMRVdlYktpdEJy
aWRnZShTSF9FU1NMX09VVFBVVCwgbV9hdHRycy5pc1dlYkdMMiA/IFNIX1dFQkdMMl9TUEVDIDog
U0hfV0VCR0xfU1BFQyk7CisjZW5kaWYKICNlbmRpZgogCiAgICAgLy8gQU5HTEUgaW5pdGlhbGl6
YXRpb24uCkBAIC0yMjUsNyArMzE5LDUxIEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0Nv
bnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zCiAKICAg
ICA6OmdsQ2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKIH0KKyNlbmRpZgorCisjaWYgVVNFKEFOR0xF
KQorR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCit7CisgICAgbWFrZUNv
bnRleHRDdXJyZW50KCk7CisgICAgaWYgKG1fdGV4dHVyZSkKKyAgICAgICAgZ2w6OkRlbGV0ZVRl
eHR1cmVzKDEsICZtX3RleHR1cmUpOworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyAg
ICBpZiAobV9jb21wb3NpdG9yVGV4dHVyZSkKKyAgICAgICAgZ2w6OkRlbGV0ZVRleHR1cmVzKDEs
ICZtX2NvbXBvc2l0b3JUZXh0dXJlKTsKKyNlbmRpZgorCisgICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzKSB7CisgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxl
Q29sb3JCdWZmZXIpOworICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVw
dGgpCisgICAgICAgICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBs
ZURlcHRoU3RlbmNpbEJ1ZmZlcik7CisgICAgICAgIGdsOjpEZWxldGVGcmFtZWJ1ZmZlcnMoMSwg
Jm1fbXVsdGlzYW1wbGVGQk8pOworICAgIH0gZWxzZSBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1f
YXR0cnMuZGVwdGgpIHsKKyNpZiBVU0UoT1BFTkdMX0VTKQorICAgICAgICBpZiAobV9kZXB0aEJ1
ZmZlcikKKyAgICAgICAgICAgIGdsRGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aEJ1ZmZl
cik7CisKKyAgICAgICAgaWYgKG1fc3RlbmNpbEJ1ZmZlcikKKyAgICAgICAgICAgIGdsRGVsZXRl
UmVuZGVyYnVmZmVycygxLCAmbV9zdGVuY2lsQnVmZmVyKTsKKyNlbmRpZgorICAgICAgICBpZiAo
bV9kZXB0aFN0ZW5jaWxCdWZmZXIpCisgICAgICAgICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVy
cygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOworICAgIH0KKyAgICBnbDo6RGVsZXRlRnJhbWVi
dWZmZXJzKDEsICZtX2Zibyk7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorICAgIGds
OjpEZWxldGVUZXh0dXJlcygxLCAmbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsKKyNlbmRpZgogCisj
aWYgVVNFKENBSVJPKQorICAgIGlmIChtX3ZhbykKKyAgICAgICAgZGVsZXRlVmVydGV4QXJyYXko
bV92YW8pOworI2VuZGlmCisKKyAgICBhdXRvKiBhY3RpdmVDb250ZXh0ID0gYWN0aXZlQ29udGV4
dHMoKS50YWtlTGFzdChbdGhpc10oYXV0byogaXQpIHsKKyAgICAgICAgcmV0dXJuIGl0ID09IHRo
aXM7CisgICAgfSk7CisgICAgQVNTRVJUX1VOVVNFRChhY3RpdmVDb250ZXh0LCAhIWFjdGl2ZUNv
bnRleHQpOworfQorI2Vsc2UKIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0Qo
KQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpAQCAtMjYyLDkgKzQwMCwxMiBAQCBHcmFw
aGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICAgICAgZGVsZXRlVmVydGV4
QXJyYXkobV92YW8pOwogI2VuZGlmCiAKLSAgICBhdXRvKiBhY3RpdmVDb250ZXh0ID0gYWN0aXZl
Q29udGV4dHMoKS50YWtlTGFzdChbdGhpc10oYXV0byogaXQpIHsgcmV0dXJuIGl0ID09IHRoaXM7
IH0pOworICAgIGF1dG8qIGFjdGl2ZUNvbnRleHQgPSBhY3RpdmVDb250ZXh0cygpLnRha2VMYXN0
KFt0aGlzXShhdXRvKiBpdCkgeworICAgICAgICByZXR1cm4gaXQgPT0gdGhpczsKKyAgICB9KTsK
ICAgICBBU1NFUlRfVU5VU0VEKGFjdGl2ZUNvbnRleHQsICEhYWN0aXZlQ29udGV4dCk7CiB9Cisj
ZW5kaWYgLy8gVVNFKEFOR0xFKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0
TG9zdENhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TG9zdENhbGxiYWNrPikKIHsKQEAg
LTMxOSw3ICs0NjAsNyBAQCBQbGF0Zm9ybUxheWVyKiBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZv
cm1MYXllcigpIGNvbnN0CiAjZW5kaWYKIH0KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspICYmICFVU0UoQU5HTEUpCiBFeHRlbnNpb25zM0QmIEdyYXBoaWNzQ29udGV4dDNE
OjpnZXRFeHRlbnNpb25zKCkKIHsKICAgICBpZiAoIW1fZXh0ZW5zaW9ucykgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHAKaW5kZXggNWVmYjE5
MGNiNGQyNTMxNjdjYzU0NWVjZWI3Nzg0OWI4M2QxYjY0Yi4uMmRiOGNmYjEzYjEzMWQyMTFmMmI3
OTdkOGEwMDZmZjJiMDYzMDg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJCdWZmZXIuY3BwCkBAIC05Nyw2ICs5Nyw5IEBAIHZvaWQgVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIm
IHRleHR1CiAgICAgaWYgKG1faGFzTWFuYWdlZFRleHR1cmUpIHsKICAgICAgICAgQVNTRVJUKG1f
dGV4dHVyZSk7CiAgICAgICAgIEJpdG1hcFRleHR1cmVHTCogdGV4dHVyZUdMID0gc3RhdGljX2Nh
c3Q8Qml0bWFwVGV4dHVyZUdMKj4obV90ZXh0dXJlLmdldCgpKTsKKyNpZiBVU0UoQU5HTEUpCisg
ICAgICAgIHRleHR1cmVHTC0+dXBkYXRlUGVuZGluZ0NvbnRlbnRzKEludFJlY3QoSW50UG9pbnQo
KSwgdGV4dHVyZUdMLT5jb250ZW50U2l6ZSgpKSwgSW50UG9pbnQoKSk7CisjZW5kaWYKICAgICAg
ICAgdGV4bWFwR0wuZHJhd1RleHR1cmUodGV4dHVyZUdMLT5pZCgpLCBtX2V4dHJhRmxhZ3MgfCB0
ZXh0dXJlR0wtPmNvbG9yQ29udmVydEZsYWdzKCksIHRleHR1cmVHTC0+c2l6ZSgpLCB0YXJnZXRS
ZWN0LCBtb2RlbFZpZXdNYXRyaXgsIG9wYWNpdHkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCmluZGV4
IDM3OTM2NzVhYzhkNmIzYzMyYTNiMzE4MTkzZTQ5YTdiMzdkYzQ4ODAuLjM4MTRmNjhhZTQ3YWE1
YjdmZTdmOWEwYmVjZTg0NzE2YWJjZGI0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKQEAgLTExMyw2ICsxMTMsMTIgQEAgYm9vbCBUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojppc0FjdGl2ZSgpCiB2b2lkIFRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyUHJveHk6OnB1c2hOZXh0QnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gbmV3QnVmZmVyKQogewogICAgIEFTU0VSVCht
X2xvY2suaXNIZWxkKCkpOworI2lmIFVTRShBTkdMRSkKKyAgICAvLyBXaGVuIHRoZSBuZXdCdWZm
ZXIgb3ZlcndyaXRlcyBtX3BlbmRpbmdCdWZmZXIgdGhhdCBpcyBub3Qgc3dhcHBlZCB5ZXQsCisg
ICAgLy8gdGhlIGxheWVyIHJlbGF0ZWQgdG8gbV9wZW5kaW5nQnVmZmVyIGlzIGZsaWNrZXJpbmcg
c2luY2UgaXRzIHRleHR1cmUgaXMgZGVzdHJveWVkLgorICAgIGlmIChtX3BlbmRpbmdCdWZmZXIg
JiYgbV9wZW5kaW5nQnVmZmVyLT5oYXNNYW5hZ2VkVGV4dHVyZSgpKQorICAgICAgICByZXR1cm47
CisjZW5kaWYKICAgICBtX3BlbmRpbmdCdWZmZXIgPSBXVEZNb3ZlKG5ld0J1ZmZlcik7CiAgICAg
bV93YXNCdWZmZXJEcm9wcGVkID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAK
aW5kZXggOTczYjMxNjgxZmIzMTgyMGVmZmI1M2RkNDI5ZDk0NDM0YjdkMmZlNS4uMWEzMjY0ZDg3
YTE2OTdlMjczZmQ4ZDYwMzBmYjllMWFmMGI1MjliNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFu
ZC5jcHAKQEAgLTM4LDcgKzM4LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWlyb1V0aWxpdGll
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR0xDb250ZXh0Lmg+CiAKLSNpZiBVU0UoT1BFTkdMX0VT
KQorI2lmIFVTRShBTkdMRSkKKyNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnMzREFOR0xFLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9PcGVuR0xTaGltcy5oPgorI2VsaWYgVVNFKE9QRU5HTF9FUykK
ICNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KICNpbmNsdWRlIDxHTEVTMi9nbDJleHQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmg+CkBAIC03OCw3ICs4MSw5IEBAIGJv
b2wgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1JlcXVpcmVtZW50cygpCiAg
ICAgICAgIGlmICghZWdsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSNpZiBVU0UoT1BFTkdMX0VTKQorI2lmIFVTRShBTkdMRSkKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzREFOR0xFPiBnbEV4dGVuc2lvbnMgPSBt
YWtlVW5pcXVlPEV4dGVuc2lvbnMzREFOR0xFPihudWxscHRyLCBHTENvbnRleHQ6OmN1cnJlbnQo
KS0+dmVyc2lvbigpID49IDMyMCk7CisjZWxpZiBVU0UoT1BFTkdMX0VTKQogICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMRVM+IGdsRXh0ZW5zaW9ucyA9IG1ha2VVbmlx
dWU8RXh0ZW5zaW9uczNET3BlbkdMRVM+KG51bGxwdHIsICBmYWxzZSk7CiAjZWxzZQogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBnbEV4dGVuc2lvbnMgPSBtYWtl
VW5pcXVlPEV4dGVuc2lvbnMzRE9wZW5HTD4obnVsbHB0ciwgR0xDb250ZXh0OjpjdXJyZW50KCkt
PnZlcnNpb24oKSA+PSAzMjApOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsu
Y21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCAwYWUxYmI3MTgxM2E5
MGRhNGQ4NmJhMzQyNzI5NDZkYWY1NzBjOGY0Li41NzYzOWY0ODkwODk1Y2YzYTMyZWJjYmIxOTYw
OTliMTJhZWU0ZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQor
KysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtOTAsNiArOTAsNyBAQCBXRUJL
SVRfT1BUSU9OX0RFRklORShVU0VfV1BFX1JFTkRFUkVSICJXaGV0aGVyIHRvIGVuYWJsZSBXUEUg
cmVuZGVyaW5nIiBQVUJMSUMgTwogCiAjIFByaXZhdGUgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGUg
R1RLIHBvcnQuIENoYW5naW5nIHRoZXNlIG9wdGlvbnMgaXMKICMgY29tcGxldGVseSB1bnN1cHBv
cnRlZC4gVGhleSBhcmUgaW50ZW5kZWQgZm9yIHVzZSBvbmx5IGJ5IFdlYktpdCBkZXZlbG9wZXJz
LgorV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0FOR0xFX1dFQkdMICJXaGV0aGVyIHRvIHVzZSBB
TkdMRSBhcyBXZWJHTCBiYWNrZW5kLiIgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRklO
RShVU0VfT1BFTlZSICJXaGV0aGVyIHRvIHVzZSBPcGVuVlIgYXMgV2ViVlIgYmFja2VuZC4iIFBS
SVZBVEUgT0ZGKQogCiAjIEZJWE1FOiBDYW4gd2UgdXNlIGNhaXJvLWdsZXN2MiB0byBhdm9pZCB0
aGlzIGNvbmZsaWN0PwpAQCAtMTAwLDYgKzEwMSw3IEBAIFdFQktJVF9PUFRJT05fREVQRU5EKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgRU5BQkxFX09QRU5HTCkKIFdFQktJVF9PUFRJT05f
REVQRU5EKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcgRU5BQkxFX09QRU5HTCkKIFdFQktJVF9PUFRJ
T05fREVQRU5EKEVOQUJMRV9HTEVTMiBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBF
TkQoRU5BQkxFX1dFQkdMIEVOQUJMRV9PUEVOR0wpCitXRUJLSVRfT1BUSU9OX0RFUEVORChVU0Vf
QU5HTEVfV0VCR0wgRU5BQkxFX1dFQkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoVVNFX1dQRV9S
RU5ERVJFUiBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoVVNFX1dQRV9SRU5E
RVJFUiBFTkFCTEVfV0FZTEFORF9UQVJHRVQpCiAKQEAgLTI5NCw2ICsyOTYsMTEgQEAgaWYgKEVO
QUJMRV9PUEVOR0wpCiAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX05JQ09TSUEgVFJV
RSkKIGVuZGlmICgpCiAKK2lmIChVU0VfQU5HTEVfV0VCR0wpCisgICAgU0VUX0FORF9FWFBPU0Vf
VE9fQlVJTEQoVVNFX0FOR0xFIFRSVUUpCisgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNF
X0FOR0xFX0VHTCBUUlVFKQorZW5kaWYgKCkKKwogaWYgKEVOQUJMRV9TUEVMTENIRUNLKQogICAg
IGZpbmRfcGFja2FnZShFbmNoYW50KQogICAgIGlmIChOT1QgUENfRU5DSEFOVF9GT1VORCkKZGlm
ZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4NjY3Zjg4ZmExM2E5Y2Q0ZWIy
YWY1MGQxZDc5ZjQ4Zjc1ZTBlNDFjLi5iZGVkZTRmMTFhOWIyYjBmNzRjNTE2MzZhNjg4YzEwZGE5
YWFlM2RkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTktMDktMTggIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgor
CisgICAgICAgIFtHVEtdIEFkZCBBTkdMRSBiYWNrZW5kIHRvIEdUSyBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkwNjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBicmluZ3Mg
QU5HTEUgc3VwcG9ydCBmb3IgV2ViR0wgdG8gR1RLIHBvcnQuIFVTRV9BTkdMRV9XRUJHTAorICAg
ICAgICBpcyBuZXdseSBkZWZpbmVkIGluIE9wdGlvbkdUSy5jbWFrZSwgYW5kIHR1cm5zIG9uIHRo
ZSBVU0VfQU5HTEVfRUdMIGZsYWcuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dU
Sy5jbWFrZTogVVNFX0FOR0xFX1dFQkdMIGFkZGVkLgorCiAyMDE5LTA5LTE3ICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bY3Vy
bF0gRGVmaW5lIE5PQ1JZUFQgdG8gc3VwcHJlc3MgbGlicmVzc2wgIldhcm5pbmcsIG92ZXJyaWRp
bmcgV2luQ3J5cHQgZGVmaW5lcyIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383236</attachid>
            <date>2019-11-09 21:10:21 -0800</date>
            <delta_ts>2019-11-10 00:32:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199060-20191110001020.patch</filename>
            <type>text/plain</type>
            <size>60028</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggOGY5MDJlZGY5ZGVjODAxZDY4Y2NiZWVhMjJjZGIzMjgyYTYyZjgwNi4uMWYzMzgzZjg2ZDUx
Nzg5ODM1ZWI0NDY1NDk3NTUwYjMyMmI0NmQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTExLTA5ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tA
d2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogV2hlbiBVU0VfQU5HTEVfV0VCR0wgaXMgZW5hYmxlZCwgbmVjZXNzYXJ5IGds
ZXN2MiBlbnRyeSBwb2ludHMgaGVhZGVycworICAgICAgICAgIGFyZSBpbnN0YWxsZWQgaW4gdGhl
IGRlcml2ZWQgc291cmNlIGRpcmVjdG9yeS4gQW5kIHRoZW4gYWRqdXN0LWFuZ2xlLWluY2x1ZGUt
cGF0aC5zaCBpcyBhcHBsaWVkCisgICAgICAgICAgdG8gY2hhbmdlIGluY2x1ZGUgcGF0aHMgaW4g
dGhlIGVudHJ5IHBvaW50cyBoZWFkZXIgZmlsZXMuCisgICAgICAgICogR0xFU3YyLmNtYWtlOiBs
aWJnbGVzdjJfZW50cnlfcG9pbnRzX2hlYWRlcnMgaXMgbmV3bHkgZGVmaW5lZCwgd2hpY2ggaXMg
YSBnYXRoZXJpbmcgb2YKKyAgICAgICAgICBlbnRyeSBwb2ludCBoZWFkZXJzIG9mIGxpYkdMRVN2
Mi4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogSW4gdGhpcyBmaWxlLCB3ZSBhcHBlbmQg
Z2wgYW5kIGdseCByZWxhdGVkIGFuZ2xlIGNvZGUgYXMgYSBidWlsZCB0YXJnZXQuCisgICAgICAg
ICAgU2luY2Ugd2Ugd2FudCBnbCBjb250ZXh0IGFuZCBnbGVzIGNvbnRleHQgc2ltdWx0YW5lb3Vz
bHksIHdlIHJlbW92ZSBnbCBwcm90b3R5cGUgY2FsbHMKKyAgICAgICAgICBmcm9tIHRoZSBnZW5l
cmF0ZWQgbGliR0xFU3YyIGxpYnJhcnkuIEluc3RlYWQsIHdlIGludm9rZSBlZ2wgYW5kIGdsIGNh
bGxzIG9mIEFOR0xFCisgICAgICAgICAgdmlhIHRoZWlyIG5vbi1wcm90b3R5cGUgZnVuY3Rpb24g
bmFtZXMuCisgICAgICAgICogYWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0aHMuc2g6IHNlZCBpcyBz
bGlnaHRseSBkaWZmZXJlbnQgaW4gdW5peCBhbmQgbGludXggc3lzdGVtcy4KKyAgICAgICAgICBJ
biBwYXJ0aWN1bGFyLCBpdHMgaW5wbGFjZSBvcHRpb24gbmVlZHMgdG8gYmUgY2hhbmdlZCBmb3Ig
YmV0dGVyIGNvbXBhdGliaWxpdHkgb24gbGludXguCisgICAgICAgICogaW5jbHVkZS9DTWFrZUxp
c3RzLnR4dDogQU5HTEVfV0VCR0xfSEVBREVSUyBpcyBuZXdseSBkZWZpbmVkLiBJdCBnYXRoZXJz
IGhlYWRlciBmaWxlcyBvZiBBTkdMRQorICAgICAgICAgIGZvciBXZWJHTCBzdXBwb3J0LgorCiAy
MDE5LTEwLTI5ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbQU5H
TEVdIFB1dCBBcHBsZSBwbGF0Zm9ybSBjb21waWxhdGlvbiBndWFyZHMgaW4gYSBiZXR0ZXIgcGxh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggZDQ3ZjIyZTc3YmQ1ZWZkYjZlNzA3NjM4YWIzYjcyNThhZDhmMTQ0OS4uNzdkODE0
Njg0YTM1N2YyNDZhNDU5MWU3MGE1ZDkzMDc0MGI4MjMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxOS0xMS0wOSAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgW0dUS10gQWRkIEFOR0xFIGJhY2tlbmQgdG8gR1RLIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTA2MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBHVEsgcG9ydCB1c2VzIFRFWFRVUkVf
TUFQUEVSIHRoYXQgaGFzIGEgZ2wgY29udGV4dCBmb3IgYWNjZWxlcmF0ZWQgcmVuZGVyaW5nLAor
ICAgICAgICBhbmQgQU5HTEUgaGFzIGFuIGVnbCBjb250ZXh0IGZvciBXZWJHTC4gV2Ugd2FudCB0
byBtYWtlIGJvdGggbGl2ZSB0b2dldGhlcgorICAgICAgICBzbyBhbiBleGNlcHRpb24gaXMgbWFk
ZSB3aGVyZSBURVhUVVJFX01BUFBFUiBpcyBlbmFibGVkLgorCisgICAgICAgICogd3RmL1BsYXRm
b3JtLmg6CisKIDIwMTktMTEtMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBkaWFnbm9zdGljIGxvZ2dpbmcgZm9yIGZyb250
ZW5kIGZlYXR1cmUgdXNhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2N2JlY2ViZDQxMmM3OTc1ZmQwNmZlNTE3
ODUyMzYzMzBjN2Y1ZDM5Li4wNmRmNGUwZDA5YjBlODlhNzU4MDg4NTI4NjQ3MmU4ZjZkODNmMjI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTktMTEtMDkgIENoYW5nU2VvayBPaCAg
PGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdIEFkZCBBTkdMRSBiYWNrZW5k
IHRvIEdUSyBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTkwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGNoYW5nZSBhaW1zIHRvIGJyaW5nIEFOR0xFIHN1cHBvcnQgZm9yIFdlYkdMIHRv
IEdUSyBwb3J0LiBUaGUgcG9ydAorICAgICAgICB3YW50cyB0byBoYXZlIGEgZ2wgY29udGV4dCBm
b3IgdGV4dHVyZSBtYXBwZXIgYW5kIGEgZ2xlcy9lZ2wgY29udGV4dCBmb3Igd2ViZ2wKKyAgICAg
ICAgc2ltdWx0YW5lb3VzbHksIHdlIGFkb3B0IHRoZSByZWFkUGl4ZWwtY29weVRvVGV4dHVyZSBh
cHByb2FjaCBmb3Igbm93IGJlY2F1c2UKKyAgICAgICAgc2hhcmluZyB0ZXh0dXJlcyBiZXR3ZWVu
IHRoZSB0d28gZGlmZmVyZW50IGNvbnRleHRlcyBpcyBub3QgYSBmZWFzaWJsZSBkaXJlY3Rpb24u
CisgICAgICAgIEFsc28sIHRvIGF2b2lkIGNvbmZsaWN0cyBiZXR3ZWVuIGdsIGFuZCBnbGVzIGNh
bGxzLCB3ZSB1c2Ugbm9uLXByb3RvdHlwZSBmdW5jdGlvbnMKKyAgICAgICAgb2YgQU5HTEUgZm9y
IFdlYkdMIGNvbnRleHQgKGkuZS4sIEdyYXBoaWNzQ29udGV4dDNEKS4gQWx0aG91Z2ggbWFueSBj
b21iaW5hdGlvbnMKKyAgICAgICAgb2YgZ3JhcGhpYyBjb25maWd1cmF0aW9ucyBleGlzdCwgb25s
eSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gKE5pY29zaWEgbGF5ZXJzCisgICAgICAgIHJ1bm5pbmcg
b24gQU5HTEUgKyBHTFggaXMgc3VwcG9ydGVkLiBPdGhlciBjb21iaW5hdGlvbnMgbGlrZSBBTkdM
RSArIEdMRVMgb3IgV1BFCisgICAgICAgIHdpbGwgYmUgY292ZXJlZCBieSBmb2xsb3dpbmcgcGF0
Y2hlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gZnVuY3Rpb25hbGl0eSBjaGFu
Z2VkLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5j
bWFrZToKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UZXh0
dXJlTWFwcGVyLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0
QnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL09wZW5HTFNoaW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVPcGVuR0xT
aGltcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmNwcDog
QWRkZWQuCisgICAgICAgIChOaWNvc2lhOjpHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0Ojpl
cnJvclN0cmluZyk6CisgICAgICAgIChOaWNvc2lhOjpHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250
ZXh0OjpsYXN0RXJyb3JTdHJpbmcpOgorICAgICAgICAoTmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6
OkFOR0xFQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCk6CisgICAgICAgIChOaWNvc2lh
OjpHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpBTkdMRUNvbnRleHQpOgorICAgICAgICAo
Tmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6fkFOR0xFQ29udGV4dCk6Cisg
ICAgICAgIChOaWNvc2lhOjpHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjptYWtlQ29udGV4
dEN1cnJlbnQpOgorICAgICAgICAoTmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4
dDo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKE5pY29zaWE6OkdDM0RBTkdMRUxheWVyOjpB
TkdMRUNvbnRleHQ6OmRlZmF1bHRGcmFtZUJ1ZmZlclNpemUpOgorICAgICAgICAoTmljb3NpYTo6
R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6c3dhcEludGVydmFsKToKKyAgICAgICAgKE5p
Y29zaWE6OkdDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnN3YXBCdWZmZXJzKToKKyAgICAg
ICAgKE5pY29zaWE6OkdDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OndhaXROYXRpdmUpOgor
ICAgICAgICAoTmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6OkdDM0RBTkdMRUxheWVyKToKKyAgICAg
ICAgKE5pY29zaWE6OkdDM0RBTkdMRUxheWVyOjp+R0MzREFOR0xFTGF5ZXIpOgorICAgICAgICAo
Tmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCk6CisgICAgICAgIChO
aWNvc2lhOjpHQzNEQU5HTEVMYXllcjo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdD
M0RMYXllci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpHQzNETGF5ZXI6OkdDM0RMYXllcik6Cisg
ICAgICAgIChOaWNvc2lhOjpHQzNETGF5ZXI6OnN3YXBCdWZmZXJzSWZOZWVkZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaDoK
KyAgICAgICAgKE5pY29zaWE6OkdDM0RMYXllcjo6Y29udGVudExheWVyIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6c2V0UGVuZGluZ0NvbnRlbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6dXBkYXRlUGVuZGluZ0NvbnRlbnRzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1h
cHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNE
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJCdWZmZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjpwdXNoTmV4
dEJ1ZmZlcik6CisKIDIwMTktMTEtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBEcm9wIFN1c3BlbmRhYmxlVGFza1F1ZXVlIG5vdyB0aGF0IGl0IGlzIHVudXNl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAwYTBhYTA4Yjk0Zjk4YWUyYTU4NWNhOTEyOTlmZTJmMWYxYWU4NTA0Li4x
NzRhZWM3OTYxY2IxMTE1ODhkOTM0NDM2MDUwYTRhZjEwZmIwYjNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE5LTExLTA5ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9y
Zz4KKworICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsgcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDYwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcDogRXh0ZW50aW9uM0RBTkdMRSBpcyB1c2Vk
IGluc3RlYWQsCisgICAgICAgICAgd2hlcmUgQU5HTEUgZm9yIFdlYkdMIGlzIGVuYWJsZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQuY3Bw
OiBBcHBlbmQgZ2wgZXh0ZW5zaW9ucyBmb3IgQU5HTEUuCisgICAgICAgIChXZWJLaXQ6OkFjY2Vs
ZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZDo6Y2hlY2tSZXF1aXJlbWVudHMpOgorCiAyMDE5LTEx
LTA0ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1
dGhuXSBHdWFyZCBhZ2FpbnN0IHVuZXhwZWN0ZWQgLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
IGNhbmNlbF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ01ha2VMaXN0cy50eHQKaW5kZXggYWI2OTAy
YTk1ZDEzMDE4NDg2NDI4NzdmZGEwYjE5OTFiOTJlY2U0OC4uNDNmZGRmODZlMmU1YjBjYTZmMzA0
MjE1MWE0YzhmMjlhOTExZjljMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ01ha2VMaXN0cy50
eHQKQEAgLTEzNiw2ICsxMzYsMjcgQEAgZWxzZSAoKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChV
U0VfQU5HTEVfV0VCR0wpCisgICAgV0VCS0lUX0NPUFlfRklMRVMoTGliR0xFU3YyRW50cnlQb2lu
dHNIZWFkZXJzCisgICAgICAgIERFU1RJTkFUSU9OICR7QU5HTEVfRlJBTUVXT1JLX0hFQURFUlNf
RElSfS9BTkdMRQorICAgICAgICBGSUxFUyAke2xpYmdsZXN2Ml9lbnRyeV9wb2ludHNfaGVhZGVy
c30KKyAgICAgICAgRkxBVFRFTkVECisgICAgKQorCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAor
ICAgICAgICBPVVRQVVQgJHtBTkdMRV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L0FOR0xFL2FuZ2xl
LnRpbWVzdGFtcAorICAgICAgICBERVBFTkRTIExpYkdMRVN2MkVudHJ5UG9pbnRzSGVhZGVycyBB
TkdMRVdlYkdMSGVhZGVycworICAgICAgICBDT01NQU5EIEJVSUxUX1BST0RVQ1RTX0RJUj0ke0FO
R0xFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0KKyAgICAgICAgICAgIFBVQkxJQ19IRUFERVJTX0ZP
TERFUl9QQVRIPUFOR0xFCisgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
YWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0aHMuc2gKKyAgICAgICAgVkVSQkFUSU0KKyAgICApCisg
ICAgYWRkX2N1c3RvbV90YXJnZXQoQU5HTEUtd2ViZ2wtaGVhZGVycworICAgICAgICBERVBFTkRT
ICR7QU5HTEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9BTkdMRS9hbmdsZS50aW1lc3RhbXAKKyAg
ICApCisgICAgYWRkX2RlcGVuZGVuY2llcyhBTkdMRUZyYW1ld29yayBBTkdMRS13ZWJnbC1oZWFk
ZXJzKQorZW5kaWYgKCkKKwogaWYgKENPTVBJTEVSX0lTX0dDQ19PUl9DTEFORykKICAgICBXRUJL
SVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoQU5HTEUgLVduby1jYXN0LWFsaWduCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1Xbm8tc3VnZ2VzdC1hdHRyaWJ1dGU9Zm9ybWF0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9HTEVTdjIuY21ha2UgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9HTEVTdjIuY21ha2UKaW5kZXggZTRiZTYyNTk1YTBmZWE5YjM5
YWNkY2NlYjNjZjhmZmM5MjZmY2ZlYS4uYWE1Y2MzYzhiNzk3ZjliMmU3YzAwMmM0ZGY4OThjMTc5
YzlhN2Q5YyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvR0xFU3YyLmNtYWtl
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0dMRVN2Mi5jbWFrZQpAQCAtMTEwMSw2ICsx
MTAxLDEzIEBAIHNldChsaWJnbGVzdjJfc291cmNlcwogICAgIHNyYy9saWJHTEVTdjIvcmVzb3Vy
Y2UuaAogKQogCitzZXQobGliZ2xlc3YyX2VudHJ5X3BvaW50c19oZWFkZXJzCisgICAgc3JjL2xp
YkdMRVN2Mi9lbnRyeV9wb2ludHNfZWdsLmgKKyAgICBzcmMvbGliR0xFU3YyL2VudHJ5X3BvaW50
c19nbGVzXzJfMF9hdXRvZ2VuLmgKKyAgICBzcmMvbGliR0xFU3YyL2VudHJ5X3BvaW50c19nbGVz
XzNfMF9hdXRvZ2VuLmgKKyAgICBzcmMvbGliR0xFU3YyL2VudHJ5X3BvaW50c19nbGVzX2V4dF9h
dXRvZ2VuLmgKKykKKwogc2V0KGxpYmdsZXN2MV9jbV9zb3VyY2VzCiAgICAgc3JjL2xpYkdMRVN2
MV9DTS9saWJHTEVTdjFfQ00uY3BwCiAgICAgc3JjL2xpYkdMRVN2MV9DTS9saWJHTEVTdjFfQ00u
ZGVmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9QbGF0Zm9ybUdUSy5jbWFr
ZSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGUzNWNk
YjE3NjgwMjYwOGY1MzczY2YwMWVkZTQxMjA1ODUzMmJhMGEuLjMzZTRjNjA0MGUwOWMxZWRlNzAz
NTlkZGYwMjNjZTU2MzAyMmQ1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL1BsYXRmb3Jt
R1RLLmNtYWtlCkBAIC0xMywzICsxMywyNyBAQCBlbHNlaWYgKE5PVCBFTkFCTEVfWDExX1RBUkdF
VCkKICAgICAjIEFsbG93IGJ1aWxkaW5nIEFOR0xFIG9uIHBsYXRmb3JtcyB3aGljaCBtYXkgbm90
IHByb3ZpZGUgWDExIGhlYWRlcnMuCiAgICAgbGlzdChBUFBFTkQgQU5HTEVfREVGSU5JVElPTlMg
VVNFX1NZU1RFTV9FR0wpCiBlbmRpZiAoKQorCitpZiAoVVNFX0FOR0xFX0VHTCkKKyAgICBsaXN0
KEFQUEVORCBBTkdMRV9TT1VSQ0VTCisgICAgICAgICR7YW5nbGVfc3lzdGVtX3V0aWxzX3NvdXJj
ZXNfbGludXh9CisgICAgICAgICR7YW5nbGVfc3lzdGVtX3V0aWxzX3NvdXJjZXNfcG9zaXh9Cisg
ICAgICAgICR7bGliYW5nbGVfZ2xfc291cmNlc30KKyAgICAgICAgJHtsaWJhbmdsZV9nbF9nbHhf
c291cmNlc30KKyAgICApCisKKyAgICBsaXN0KEFQUEVORCBBTkdMRV9ERUZJTklUSU9OUworICAg
ICAgICBBTkdMRV9FTkFCTEVfT1BFTkdMCisgICAgICAgIEFOR0xFX1VTRV9YMTEKKyAgICApCisK
KyAgICBsaXN0KEFQUEVORCBBTkdMRUdMRVN2Ml9MSUJSQVJJRVMKKyAgICAgICAgZGwKKyAgICAg
ICAgcHRocmVhZAorICAgICAgICBYMTEKKyAgICApCisKKyAgICBzdHJpbmcoUkVQTEFDRSBzcmMv
bGliR0xFU3YyL2xpYkdMRVN2Ml9hdXRvZ2VuLmNwcCAiIiBsaWJnbGVzdjJfc291cmNlcyAiJHts
aWJnbGVzdjJfc291cmNlc30iKQorICAgIHN0cmluZyhSRVBMQUNFIHNyYy9saWJFR0wvbGliRUdM
LmNwcCAiIiBsaWJlZ2xfc291cmNlcyAiJHtsaWJlZ2xfc291cmNlc30iKQorZW5kaWYgKCkKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvYWRqdXN0LWFuZ2xlLWluY2x1ZGUt
cGF0aHMuc2ggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9hZGp1c3QtYW5nbGUtaW5jbHVkZS1w
YXRocy5zaAppbmRleCBmYWQ5YmEwODc5ODI2Zjg4NmQyNmM4NmVkMGY4YjYyYzAxOTkxOGJjLi4x
N2ZhN2ZlOTQ5Zjk4MzM5MzEzNWJiNDYyZmM5NTBmYjljODY4YmY1IDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9hZGp1c3QtYW5nbGUtaW5jbHVkZS1wYXRocy5zaAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9hZGp1c3QtYW5nbGUtaW5jbHVkZS1wYXRocy5zaApAQCAt
MjcsNiArMjcsMTIgQEAgZWxzZQogICAgIG91dHB1dF9kaXI9JEJVSUxUX1BST0RVQ1RTX0RJUi8k
UFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEgKIGZpCiAKK2lmIFsgJCh1bmFtZSkgPT0gIkxpbnV4
IiBdOyB0aGVuCisgICAgaW5wbGFjZV9vcHQ9Ii1pIgorZWxzZQorICAgIGlucGxhY2Vfb3B0PSIt
aSAnJyIKK2ZpCisKIGZvciBpIGluICRvdXRwdXRfZGlyLyouaCA7IGRvCiAgICAgaWYgWyAhIC1m
ICRvdXRwdXRfZGlyL2FuZ2xlLnRpbWVzdGFtcCBdIHx8IFsgJGkgLW50ICRvdXRwdXRfZGlyL2Fu
Z2xlLnRpbWVzdGFtcCBdIDsgdGhlbgogICAgICAgICBzZWQgLWUgJwpAQCAtMzcsNyArNDMsNyBA
QCBzL14jaW5jbHVkZSBbPCJdR0xFUzNcL1woLipcKVs+Il0vI2luY2x1ZGUgPEFOR0xFXC9cMT4v
CiBzL14jaW5jbHVkZSBbPCJdS0hSXC9cKC4qXClbPiJdLyNpbmNsdWRlIDxBTkdMRVwvXDE+Lwog
cy9eI2luY2x1ZGUgWzwiXWV4cG9ydC5oWz4iXS8jaW5jbHVkZSA8QU5HTEVcL2V4cG9ydC5oPi8K
IHMvXiNpbmNsdWRlICJcKGVnbGV4dF9hbmdsZVx8Z2wyZXh0X2FuZ2xlXHxTaGFkZXJWYXJzXCku
aCIvI2luY2x1ZGUgPEFOR0xFXC9cMS5oPi8KLScgLWkgIiIgJGkKKycgJGlucGxhY2Vfb3B0ICRp
CiAgICAgICAgIGVjaG8gUG9zdHByb2Nlc3NlZCBBTkdMRSBoZWFkZXIzICRpCiAgICAgZmkKIGRv
bmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGY4NGVlYzc1MWFiY2E4OWQ5ZWMyNDdjZjExYjk0MThjOTlmMTY0YjEuLmZjMDAyOTFhNDM3
N2M3YTZmYmFkY2NkNjE3ZWY0ZTZkZGU4MjQ4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL2luY2x1ZGUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvaW5jbHVkZS9DTWFrZUxpc3RzLnR4dApAQCAtNDksNiArNDksMjMgQEAgaWYgKFVTRV9B
TkdMRV9FR0wpCiAgICAgKQogZW5kaWYgKCkKIAoraWYgKFVTRV9BTkdMRV9XRUJHTCkKKyAgICBz
ZXQoQU5HTEVfV0VCR0xfSEVBREVSUworICAgICAgICBleHBvcnQuaAorICAgICAgICAke2tocl9o
ZWFkZXJzfQorICAgICAgICAke2VnbF9oZWFkZXJzfQorICAgICAgICAke2dsZXNfaGVhZGVyc30K
KyAgICAgICAgJHtnbGVzMl9oZWFkZXJzfQorICAgICAgICAke2dsZXMzX2hlYWRlcnN9CisgICAg
KQorCisgICAgV0VCS0lUX0NPUFlfRklMRVMoQU5HTEVXZWJHTEhlYWRlcnMKKyAgICAgICAgREVT
VElOQVRJT04gJHtBTkdMRV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L0FOR0xFCisgICAgICAgIEZJ
TEVTICR7QU5HTEVfV0VCR0xfSEVBREVSU30KKyAgICAgICAgRkxBVFRFTkVECisgICAgKQorZW5k
aWYgKCkKKwogIyBDb2NvYSBleHBlY3RzIGhlYWRlcnMgaW4gYW4gQU5HTEUgZGlyZWN0b3J5CiBX
RUJLSVRfQ09QWV9GSUxFUyhHTFNMQU5HSGVhZGVycwogICAgIERFU1RJTkFUSU9OICR7QU5HTEVf
RlJBTUVXT1JLX0hFQURFUlNfRElSfS9BTkdMRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMjE1ODA2ZDA4ZDAw
ZjQwMjI3NzYzZTEwZmUwNTZhYmI2MjhiODg2My4uNmQ2MmQwZGU5MWY3MDIxNTNkZmY1YTM4OWU0
OTJhNGY0YzczNzUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTQ2LDcgKzExNDYsNyBAQAogI2RlZmlu
ZSBVU0VfQU5HTEUgMAogI2VuZGlmCiAKLSNpZiAoVVNFX0FOR0xFICYmIChVU0VfT1BFTkdMIHx8
IFVTRV9PUEVOR0xfRVMgfHwgKGRlZmluZWQoVVNFX0VHTCkgJiYgVVNFX0VHTCkpKQorI2lmIChV
U0VfQU5HTEUgJiYgKFVTRV9PUEVOR0wgfHwgVVNFX09QRU5HTF9FUyB8fCAoZGVmaW5lZChVU0Vf
RUdMKSAmJiBVU0VfRUdMKSkpICYmICFVU0UoVEVYVFVSRV9NQVBQRVIpCiAjZXJyb3IgVVNFX0FO
R0xFIGlzIGluY29tcGF0aWJsZSB3aXRoIFVTRV9PUEVOR0wsIFVTRV9PUEVOR0xfRVMgYW5kIFVT
RV9FR0wKICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA0OWU5NGRlZjEyOTFi
N2RlMGI2MWQzODA2MDFjZmY3NmRlZjI1ZDQ3Li5iYWFiNDlhYzIwZmU2NGI0YWNiOWUwNDA2NGQ3
Y2ViOGJhMTkzY2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExMjAsNiArMTEyMCw4IEBAIHNl
dChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9XaWR0aENhY2hlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9XaW5kUnVsZS5oCiAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRlbnNpb25zM0RBTkdMRS5oCisKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKIAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UK
aW5kZXggNzg3ZjQ5Y2NlMDYzMjg5ZGFlYjBlMGQyNmM0YTRhYzY5MmE0OWMwYS4uYTMwYTU0NWNj
NjM1MTQzMWU5MzY5Nzg2MmZhMzg5YjBmOTY5M2U3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21h
a2UKQEAgLTM2LDYgKzM2LDEyIEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvZ3RrIgogKQog
CitpZiAoVVNFX0FOR0xFX1dFQkdMKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9J
TkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFw
aGljcy9hbmdsZSIKKyAgICApCitlbmRpZiAoKQorCiBpZiAoVVNFX1dQRV9SRU5ERVJFUikKICAg
ICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2xpYndwZSIKQEAgLTExNywyMCArMTIzLDM4IEBA
IGlmIChVU0VfV1BFX1JFTkRFUkVSKQogICAgICkKIGVuZGlmICgpCiAKLWlmIChVU0VfT1BFTkdM
X0VTKQoraWYgKFVTRV9PUEVOR0wpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCi0g
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAK
LSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdM
RVMuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAogICAgICkK
IGVuZGlmICgpCiAKLWlmIChVU0VfT1BFTkdMKQoraWYgKFVTRV9BTkdMRV9XRUJHTCkKICAgICBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvT3Bl
bkdMU2hpbXMuY3BwCi0KLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnMzRE9wZW5HTC5jcHAKLSAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9FeHRl
bnNpb25zM0RBTkdMRS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhp
Y3NDb250ZXh0M0RBTkdMRS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvVGVt
cG9yYXJ5QU5HTEVTZXR0aW5nLmNwcAogICAgICkKK2Vsc2UgKCkKKyAgICBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbi5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvVGVtcG9yYXJ5T3BlbkdMU2V0dGluZy5jcHAKKyAgICApCisKKyAgICBpZiAoVVNF
X09QRU5HTF9FUykKKyAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisg
ICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0xFUy5jcHAKKyAgICAgICAgKQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoVVNFX09QRU5HTCkK
KyAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAorICAgICAgICAgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAorICAgICAg
ICApCisgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChFTkFCTEVfV0FZTEFORF9UQVJHRVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNHVEsudHh0CmluZGV4IDcwMDY2OTYwYmM5OTc1Y2VlMmZlM2RmNmE3MDY0ZTg1
ZGI3MGFlN2IuLmMyYzI3MDliODc5YTgzODY5Mjg5ZmUyODcxMzU3Y2RlNjI2YTFhYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNHVEsudHh0CkBAIC05MiwxMCArOTIsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKIAogcGxhdGZvcm0vZ3JhcGhpY3MvbGlid3Bl
L1BsYXRmb3JtRGlzcGxheUxpYldQRS5jcHAKIAotcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9U
ZW1wb3JhcnlPcGVuR0xTZXR0aW5nLmNwcAotCiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9P
cGVuVHlwZVZlcnRpY2FsRGF0YS5jcHAKIAogcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0
Zm9ybURpc3BsYXlXYXlsYW5kLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGV4dHVyZU1hcHBlci5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHR1cmVN
YXBwZXIuY21ha2UKaW5kZXggNGYzZDZlYWI1ZDcyZmM5NWMyMGE0NTNhY2ViNTlkNGMzZDRhZGEy
Ni4uMzUzYzE0MWRkYTc5NDk2MDE3YjZhYjRmZmY5ZTQzZDQ0MDdkYmI1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCkBAIC0xMTUsMyArMTE1LDkgQEAg
ZWxzZSAoKQogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRp
bGVkQmFja2luZ1N0b3JlLmNwcAogICAgICkKIGVuZGlmICgpCisKK2lmIChVU0VfQU5HTEVfV0VC
R0wpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5jcHAKKyAgICApCitl
bmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5H
TEVXZWJLaXRCcmlkZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xF
V2ViS2l0QnJpZGdlLmgKaW5kZXggZDRhNjBiYTIzYzZkYWRjM2ViNTFlMDNjNjA4YmU1YWI4YmRj
NmMxYS4uZDE0ZWM0ZmY5MWE1MDUwYzc4NTAyMDkyZjViMThjYTZjZDY2NjZkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5o
CkBAIC0zNiwxNCArMzYsMTQgQEAKICNpbmNsdWRlIDxBTkdMRS9TaGFkZXJMYW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBV
U0UoQU5HTEUpCisjaW5jbHVkZSA8QU5HTEUvZ2wyLmg+CiAKKyNlbGlmIFBMQVRGT1JNKENPQ09B
KQogI2lmIFVTRShPUEVOR0xfRVMpCiAjaW1wb3J0IDxPcGVuR0xFUy9FUzIvZ2xleHQuaD4KICNl
bGlmIFVTRShPUEVOR0wpCiAjaW5jbHVkZSA8T3BlbkdML2dsLmg+Ci0jZWxpZiBVU0UoQU5HTEUp
Ci0jaW5jbHVkZSA8QU5HTEUvZ2wyLmg+CiAjZWxzZQogI2Vycm9yIFVuc3VwcG9ydGVkIGNvbmZp
Z3VyYXRpb24KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHAKaW5kZXggMWU0Njc4M2EwN2ZhZDgzNjI2Zjc1MjA3NDZkYzJmZGQ0ZWFlOGMw
ZC4uMjdmYjIwNjI3M2NhMDU4ZDFmOTMxM2U3MTZiZTc0YjhiOGIxOTkxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCkBAIC0yNiwxMiArMjYs
NiBAQAogI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgogI2VuZGlmCiAKLSNpZiBVU0UoTElCRVBP
WFkpCi0jaW5jbHVkZSA8ZXBveHkvZ2wuaD4KLSNlbGlmIFVTRShPUEVOR0xfRVMpCi0jaW5jbHVk
ZSA8R0xFUzIvZ2wyLmg+Ci0jZW5kaWYKLQogI2lmIFVTRShHTFgpCiAjaW5jbHVkZSAiR0xDb250
ZXh0R0xYLmgiCiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKaW5kZXggYjRhMjY3MGIyNGFhNmM3NzBhNjI1OTI5
NjgzMzBjMWU3Nzg0NjQ4Ni4uOWE0NGVmY2ExMTIwNDczMDQ3NzlkZDdiYThjNWI3MDliODY3ZThh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKQEAg
LTIwLDExICsyMCwxNiBAQAogI2lmbmRlZiBHTENvbnRleHRfaAogI2RlZmluZSBHTENvbnRleHRf
aAogCi0jaW5jbHVkZSAiQU5HTEVXZWJLaXRCcmlkZ2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAKKyNpZiBVU0UoTElCRVBPWFkpCisjaW5jbHVkZSA8ZXBveHkvZ2wuaD4KKyNlbGlmIFVT
RShPUEVOR0xfRVMpCisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjZW5kaWYKKwogI2lmIFVTRShF
R0wpICYmICFQTEFURk9STShHVEspCiAjaWYgUExBVEZPUk0oV1BFKQogLy8gRklYTUU6IEZvciBu
b3cgZGVmYXVsdCB0byB0aGUgR0JNIEVHTCBwbGF0Zm9ybSwgYnV0IHRoaXMgc2hvdWxkIHJlYWxs
eSBiZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKaW5kZXggNjM3YmM3NGM3YmEzYjk2Yjk2MmMwOTNhY2RmMjIwM2FhYjk1NGI1
Yy4uMDQ5MDM2ZmQxYjllMjM2Y2RmMzYxYjA3MjJhNjdkYzk4ZDQ5OGM0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBA
IC0xMDEsMTIgKzEwMSwxMiBAQCBjb25zdCBQbGF0Zm9ybTNET2JqZWN0IE51bGxQbGF0Zm9ybTNE
T2JqZWN0ID0gMDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRXh0ZW5zaW9uczNEOwot
I2lmICFQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKKyNpZiBVU0UoQU5HTEUpCitj
bGFzcyBFeHRlbnNpb25zM0RBTkdMRTsKKyNlbGlmICFQTEFURk9STShDT0NPQSkgJiYgVVNFKE9Q
RU5HTF9FUykKIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTEVTOwogI2VsaWYgVVNFKE9QRU5HTCkg
fHwgKFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKSkKIGNsYXNzIEV4dGVuc2lvbnMz
RE9wZW5HTDsKLSNlbGlmIFVTRShBTkdMRSkKLWNsYXNzIEV4dGVuc2lvbnMzREFOR0xFOwogI2Vu
ZGlmCiBjbGFzcyBIb3N0V2luZG93OwogY2xhc3MgSW1hZ2U7CkBAIC0xNDU2LDcgKzE0NTYsMTAg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNo
TWFwRm9yU2hhZGVyczsKICNlbmRpZiAvLyAhVVNFKEFOR0xFKQogCi0jaWYgIVBMQVRGT1JNKENP
Q09BKSAmJiBVU0UoT1BFTkdMX0VTKQorI2lmIFVTRShBTkdMRSkKKyAgICBmcmllbmQgY2xhc3Mg
RXh0ZW5zaW9uczNEQU5HTEU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzREFOR0xF
PiBtX2V4dGVuc2lvbnM7CisjZWxpZiAhUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMp
CiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTEVTOwogICAgIGZyaWVuZCBjbGFz
cyBFeHRlbnNpb25zM0RPcGVuR0xDb21tb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lv
bnMzRE9wZW5HTEVTPiBtX2V4dGVuc2lvbnM7CkBAIC0xNDY0LDkgKzE0NjcsNiBAQCBwcml2YXRl
OgogICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0w7CiAgICAgZnJpZW5kIGNsYXNz
IEV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9u
czNET3BlbkdMPiBtX2V4dGVuc2lvbnM7Ci0jZWxpZiBVU0UoQU5HTEUpCi0gICAgZnJpZW5kIGNs
YXNzIEV4dGVuc2lvbnMzREFOR0xFOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RB
TkdMRT4gbV9leHRlbnNpb25zOwogI2VuZGlmCiAKICAgICBHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMgbV9hdHRyczsKQEAgLTE0OTIsNyArMTQ5Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2xheWVyQ29tcG9zaXRlZCB7IGZhbHNlIH07CiAgICAgR0MzRHVpbnQgbV9pbnRlcm5hbENvbG9y
Rm9ybWF0IHsgMCB9OwogCi0jaWYgVVNFKEFOR0xFKQorI2lmIFVTRShBTkdMRSkgJiYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRFN1cmZhY2UgbV9wYnVmZmVy
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L09wZW5HTFNoaW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5H
TFNoaW1zLmNwcAppbmRleCBkM2NmZDI3ZDU3MWUzN2U2ODc5OTY0NzI3MDI5NDQ5MWNmZDc1M2Jk
Li5mNzk3NmU2MWRkODUyNDZkMmY0ZTI3NjJjOGMxODdlMDk5ODA0ZGM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCkBAIC0xNjIsNiAr
MTYyLDcgQEAgYm9vbCBpbml0aWFsaXplT3BlbkdMU2hpbXMoKQogICAgIEFTU0lHTl9GVU5DVElP
Tl9UQUJMRV9FTlRSWShnbEdldFNoYWRlckluZm9Mb2csIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9G
VU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFNoYWRlcml2LCBzdWNjZXNzKTsKICAgICBBU1NJR05f
RlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTaGFkZXJTb3VyY2UsIHN1Y2Nlc3MpOworICAgIEFT
U0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFN0cmluZywgc3VjY2Vzcyk7CiAgICAgLy8g
Z2xHZXRTdHJpbmdpIGlzIG9ubHkgYXZhaWxhYmxlIG9uIE9wZW5HTCBvciBHTEVTIHZlcnNpb25z
ID49IDMuMC4KICAgICAvLyBBZGQgaXQgd2l0aCBfRVhUIHNvIGl0IGRvZXNuJ3QgY2F1c2UgYW4g
aW5pdGlhbGl6YXRpb24gZmFpbHVyZSBvbiBsb3dlciB2ZXJzaW9ucy4KICAgICBBU1NJR05fRlVO
Q1RJT05fVEFCTEVfRU5UUllfRVhUKGdsR2V0U3RyaW5naSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaAppbmRleCBkZTMyOTVkZjQwYjM4MjRhZGRm
ZDRhNTQ4ZjNkNjE3MjBjZjEzNWI0Li40YzM1N2RkZTk4MWYxMzZmMDU4ZDg4MzcwNzhjNDEzMGQ2
MGQ2YTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVu
R0xTaGltcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNo
aW1zLmgKQEAgLTk4LDYgKzk4LDcgQEAgdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEdldFJl
bmRlcmJ1ZmZlclBhcmFtZXRlcml2VHlwZSkgKEdMZW51bSwgR0xlbnVtLCBHTGkKIHR5cGVkZWYg
dm9pZCAoR0xBUElFTlRSWSAqZ2xHZXRTaGFkZXJJbmZvTG9nVHlwZSkgKEdMdWludCwgR0xzaXpl
aSwgR0xzaXplaSosIGNoYXIqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xHZXRTaGFk
ZXJpdlR5cGUpIChHTHVpbnQsIEdMZW51bSwgR0xpbnQqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElF
TlRSWSAqZ2xHZXRTaGFkZXJTb3VyY2VUeXBlKSAoR0x1aW50LCBHTHNpemVpLCBHTHNpemVpKiwg
Y2hhciopOwordHlwZWRlZiBjb25zdCBHTHVieXRlKiAoR0xBUElFTlRSWSAqZ2xHZXRTdHJpbmdU
eXBlKSAoR0xlbnVtKTsKIHR5cGVkZWYgY29uc3QgR0x1Ynl0ZSogKEdMQVBJRU5UUlkgKmdsR2V0
U3RyaW5naVR5cGUpIChHTGVudW0sIEdMdWludCk7CiB0eXBlZGVmIEdMaW50IChHTEFQSUVOVFJZ
ICpnbEdldFVuaWZvcm1Mb2NhdGlvblR5cGUpIChHTHVpbnQsIGNvbnN0IGNoYXIqKTsKIHR5cGVk
ZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xHZXRVbmlmb3JtZnZUeXBlKSAoR0x1aW50LCBHTGludCwg
R0xmbG9hdCopOwpAQCAtMjA1LDYgKzIwNiw3IEBAIHR5cGVkZWYgc3RydWN0IF9PcGVuR0xGdW5j
dGlvblRhYmxlIHsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFNoYWRlckluZm9Mb2cp
OwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0U2hhZGVyaXYpOwogICAgIEZVTkNUSU9O
X1RBQkxFX0VOVFJZKGdsR2V0U2hhZGVyU291cmNlKTsKKyAgICBGVU5DVElPTl9UQUJMRV9FTlRS
WShnbEdldFN0cmluZyk7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTdHJpbmdpKTsK
ICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFVuaWZvcm1mdik7CiAgICAgRlVOQ1RJT05f
VEFCTEVfRU5UUlkoZ2xHZXRVbmlmb3JtaXYpOwpAQCAtMzMzLDYgKzMzNSw3IEBAIHR5cGVkZWYg
c3RydWN0IF9PcGVuR0xGdW5jdGlvblRhYmxlIHsKICNkZWZpbmUgZ2xHZXRTaGFkZXJJbmZvTG9n
ICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2V0U2hhZGVySW5mb0xv
ZykKICNkZWZpbmUgZ2xHZXRTaGFkZXJpdiAgICAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQ
X0dMX0ZVTkNUSU9OKGdsR2V0U2hhZGVyaXYpCiAjZGVmaW5lIGdsR2V0U2hhZGVyU291cmNlICAg
ICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFNoYWRlclNvdXJjZSkK
KyNkZWZpbmUgZ2xHZXRTdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dM
X0ZVTkNUSU9OKGdsR2V0U3RyaW5nKQogI2RlZmluZSBnbEdldFN0cmluZ2kgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xHZXRTdHJpbmdpKQogI2RlZmluZSBn
bEdldFVuaWZvcm1mdiAgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04o
Z2xHZXRVbmlmb3JtZnYpCiAjZGVmaW5lIGdsR2V0VW5pZm9ybWl2ICAgICAgICAgICAgICAgICAg
ICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFVuaWZvcm1pdikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmluZGV4IGY5
NzhkYmUyNDBjODk2NTQyYWMzNTkwZTgyMGY0ZTAyZWVhOWNjZjAuLjE1NmU1YWEyYjczNWRmNjFh
MWMxOTY2ZWRiMzM2YjVkYzE5ZTBmYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcApAQCAtNTIsNiArNTIsOSBAQAogCiAj
aWYgUExBVEZPUk0oR1RLKSAmJiBQTEFURk9STShYMTEpCiAjaW5jbHVkZSA8Z2RrL2dka3guaD4K
KyNpZiBkZWZpbmVkKE5vbmUpCisjdW5kZWYgTm9uZQorI2VuZGlmCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKEdUSykgJiYgUExBVEZPUk0oV0FZTEFORCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0M0RB
TkdMRS5jcHAKaW5kZXggN2NiZGZmZThlY2QwZjM2NTZkMDhhMWEwOTk5YTFiMzU4ODA1ZWNmYi4u
ZDM4YmQyMGE4ZWM1ZTU4ZTg3ODZiZDk0NGExZGY4Nzg2YzAzNDlkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0M0RBTkdM
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhp
Y3NDb250ZXh0M0RBTkdMRS5jcHAKQEAgLTY5LDYgKzY5LDExIEBAIHR5cGVkZWYgdm9pZCogR0xl
Z2xDb250ZXh0OwogLy8gd291bGQgbmVlZCBtb3JlIHdvcmsgdG8gYmUgaW5jbHVkZWQgZnJvbSBX
ZWJDb3JlLgogI2RlZmluZSBHTF9NQVhfU0FNUExFU19FWFQgMHg4RDU3CiAKKyNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNkZWZpbmUgR0xfQ09M
T1JfQVRUQUNITUVOVDBfRVhUIDB4OENFMAorI2RlZmluZSBHTF9GUkFNRUJVRkZFUl9FWFQgMHg4
RDQwCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgY2hhciog
cGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uTmFtZSA9ICJHTF9PRVNfcGFja2VkX2RlcHRoX3N0
ZW5jaWwiOwpAQCAtMjAwLDYgKzIwNSwyMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNo
YXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogI2Vsc2UKICNlcnJvciBVbmtub3duIENvY29h
IHBsYXRmb3JtCiAjZW5kaWYKKworI2VsaWYgUExBVEZPUk0oR1RLKQorICAgIGdsOjpCaW5kVGV4
dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV90ZXh0dXJlKTsKKyAgICBnbDo6VGV4
SW1hZ2UyRChHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgMCwgbV9pbnRlcm5hbENvbG9yRm9y
bWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBjb2xvckZvcm1hdCwgR0xfVU5TSUdORURfQllURSwgMCk7
CisgICAgZ2w6OkZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9B
VFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fdGV4dHVyZSwgMCk7Cisj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorICAgIGlmIChtX2NvbXBvc2l0b3JUZXh0dXJl
KSB7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwg
bV9jb21wb3NpdG9yVGV4dHVyZSk7CisgICAgICAgIGdsOjpUZXhJbWFnZTJEKEdMX1RFWFRVUkVf
UkVDVEFOR0xFX0FOR0xFLCAwLCBtX2ludGVybmFsQ29sb3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQs
IDAsIGNvbG9yRm9ybWF0LCBHTF9VTlNJR05FRF9CWVRFLCAwKTsKKyAgICAgICAgZ2w6OkJpbmRU
ZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCAwKTsKKyAgICAgICAgZ2w6OkJpbmRU
ZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX2ludGVybWVkaWF0ZVRleHR1cmUp
OworICAgICAgICBnbDo6VGV4SW1hZ2UyRChHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgMCwg
bV9pbnRlcm5hbENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBjb2xvckZvcm1hdCwgR0xf
VU5TSUdORURfQllURSwgMCk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JF
Q1RBTkdMRV9BTkdMRSwgMCk7CisgICAgfQorI2VuZGlmCisKICNlbHNlCiAKICNlcnJvciBNdXN0
IHBvcnQgdG8gbm9uLUNvY29hIHBsYXRmb3JtcwpAQCAtNDg3LDcgKzUwOCwyMCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSgpCiAgICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKKyNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9jb21w
b3NpdG9yVGV4dHVyZSk7CisgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9pbnRlcm1lZGlhdGVU
ZXh0dXJlKTsKKyAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7
CisgICAgZ2w6OkZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9B
VFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fdGV4dHVyZSwgMCk7Cisg
ICAgZ2w6OkZsdXNoKCk7CisKKyAgICBpZiAobV9zdGF0ZS5ib3VuZEZCTyAhPSBtX2ZibykKKyAg
ICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIs
IG1fc3RhdGUuYm91bmRGQk8pOworICAgIGVsc2UKKyAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZl
cihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKKyNlbHNlCiAgICAgZ2w6
OkZsdXNoKCk7CisjZW5kaWYKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRl
cmluZ1Jlc3VsdHModW5zaWduZWQgY2hhciAqcGl4ZWxzLCBpbnQgcGl4ZWxzU2l6ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05p
Y29zaWFHQzNEQU5HTEVMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdh
ODU2ZDUwNTRjNDlhYjUxOTc4NjY3YTcwN2FlNjdiYTY5ZDJkYWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lh
R0MzREFOR0xFTGF5ZXIuY3BwCkBAIC0wLDAgKzEsMjU4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgsIDIw
MTkgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRp
c2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZAorICogICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBIT0xERVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJOaWNvc2lhR0MzREFOR0xFTGF5ZXIuaCIKKworI2lmIFVT
RShOSUNPU0lBKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5LmgiCisKKyNkZWZpbmUgRUdMX0VHTF9QUk9UT1RZ
UEVTIDAKKy8vIFNraXAgdGhlIGluY2x1c2lvbiBvZiBBTkdMRSdzIGV4cGxpY2l0IGNvbnRleHQg
ZW50cnkgcG9pbnRzIGZvciBub3cuCisjZGVmaW5lIEdMX0FOR0xFX2V4cGxpY2l0X2NvbnRleHQK
KyNkZWZpbmUgR0xfQU5HTEVfZXhwbGljaXRfY29udGV4dF9nbGVzMQordHlwZWRlZiB2b2lkKiBH
TGVnbENvbnRleHQ7CisjaW5jbHVkZSA8QU5HTEUvZWdsLmg+CisjaW5jbHVkZSA8QU5HTEUvZWds
ZXh0Lmg+CisjaW5jbHVkZSA8QU5HTEUvZWdsZXh0X2FuZ2xlLmg+CisjaW5jbHVkZSA8QU5HTEUv
ZW50cnlfcG9pbnRzX2VnbC5oPgorI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzXzJf
MF9hdXRvZ2VuLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9n
ZW4uaD4KKyNpbmNsdWRlIDxBTkdMRS9nbDJleHQuaD4KKyNpbmNsdWRlIDxBTkdMRS9nbDJleHRf
YW5nbGUuaD4KKworbmFtZXNwYWNlIE5pY29zaWEgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworY29uc3QgY2hhciogR0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6ZXJyb3JTdHJp
bmcoaW50IHN0YXR1c0NvZGUpCit7CisgICAgc3RhdGljX2Fzc2VydChzaXplb2YoaW50KSA+PSBz
aXplb2YoRUdMaW50KSwgIkVHTGludCBtdXN0IG5vdCBiZSB3aWRlciB0aGFuIGludCIpOworICAg
IHN3aXRjaCAoc3RhdHVzQ29kZSkgeworI2RlZmluZSBDQVNFX1JFVFVSTl9TVFJJTkcobmFtZSkg
Y2FzZSBuYW1lOiByZXR1cm4gI25hbWUKKyAgICAgICAgLy8gaHR0cHM6Ly93d3cua2hyb25vcy5v
cmcvcmVnaXN0cnkvRUdML3Nkay9kb2NzL21hbi9odG1sL2VnbEdldEVycm9yLnhodG1sCisgICAg
ICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfU1VDQ0VTUyk7CisgICAgICAgIENBU0VfUkVUVVJO
X1NUUklORyhFR0xfTk9UX0lOSVRJQUxJWkVEKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5H
KEVHTF9CQURfQUNDRVNTKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQUxM
T0MpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9BVFRSSUJVVEUpOworICAg
ICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9DT05URVhUKTsKKyAgICAgICAgQ0FTRV9S
RVRVUk5fU1RSSU5HKEVHTF9CQURfQ09ORklHKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5H
KEVHTF9CQURfQ1VSUkVOVF9TVVJGQUNFKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVH
TF9CQURfRElTUExBWSk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX1NVUkZB
Q0UpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9NQVRDSCk7CisgICAgICAg
IENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX1BBUkFNRVRFUik7CisgICAgICAgIENBU0VfUkVU
VVJOX1NUUklORyhFR0xfQkFEX05BVElWRV9QSVhNQVApOworICAgICAgICBDQVNFX1JFVFVSTl9T
VFJJTkcoRUdMX0JBRF9OQVRJVkVfV0lORE9XKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5H
KEVHTF9DT05URVhUX0xPU1QpOworI3VuZGVmIENBU0VfUkVUVVJOX1NUUklORworICAgIGRlZmF1
bHQ6IHJldHVybiAiVW5rbm93biBFR0wgZXJyb3IiOworICAgIH0KK30KKworY29uc3QgY2hhciog
R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6bGFzdEVycm9yU3RyaW5nKCkKK3sKKyAgICBy
ZXR1cm4gZXJyb3JTdHJpbmcoRUdMX0dldEVycm9yKCkpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8
R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dD4gR0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4
dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxh
eSkKK3sKKyAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBFR0xfR2V0RGlzcGxheShFR0xfREVGQVVM
VF9ESVNQTEFZKTsKKyAgICBpZiAoZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBFR0xpbnQgbWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb247
CisgICAgaWYgKEVHTF9Jbml0aWFsaXplKGRpc3BsYXksICZtYWpvclZlcnNpb24sICZtaW5vclZl
cnNpb24pID09IEVHTF9GQUxTRSkgeworICAgICAgICBMT0coV2ViR0wsICJFR0xEaXNwbGF5IElu
aXRpYWxpemF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
ICAgIExPRyhXZWJHTCwgIkFOR0xFIGluaXRpYWxpc2VkIE1ham9yOiAlZCBNaW5vcjogJWQiLCBt
YWpvclZlcnNpb24sIG1pbm9yVmVyc2lvbik7CisKKyAgICBjb25zdCBjaGFyKiBkaXNwbGF5RXh0
ZW5zaW9ucyA9IEVHTF9RdWVyeVN0cmluZyhkaXNwbGF5LCBFR0xfRVhURU5TSU9OUyk7CisgICAg
TE9HKFdlYkdMLCAiRXh0ZW5zaW9uczogJXMiLCBkaXNwbGF5RXh0ZW5zaW9ucyk7CisKKyAgICBF
R0xDb25maWcgY29uZmlnOworICAgIEVHTGludCBjb25maWdBdHRyaWJ1dGVzW10gPSB7CisgICAg
ICAgIEVHTF9SRU5ERVJBQkxFX1RZUEUsIEVHTF9PUEVOR0xfRVMyX0JJVCwKKyAgICAgICAgRUdM
X1JFRF9TSVpFLCA4LAorICAgICAgICBFR0xfR1JFRU5fU0laRSwgOCwKKyAgICAgICAgRUdMX0JM
VUVfU0laRSwgOCwKKyAgICAgICAgRUdMX0FMUEhBX1NJWkUsIDgsCisgICAgICAgIEVHTF9TVVJG
QUNFX1RZUEUsIEVHTF9QQlVGRkVSX0JJVCwKKyAgICAgICAgRUdMX05PTkUKKyAgICB9OworICAg
IEVHTGludCBudW1iZXJDb25maWdzUmV0dXJuZWQgPSAwOworICAgIEVHTF9DaG9vc2VDb25maWco
ZGlzcGxheSwgY29uZmlnQXR0cmlidXRlcywgJmNvbmZpZywgMSwgJm51bWJlckNvbmZpZ3NSZXR1
cm5lZCk7CisgICAgaWYgKG51bWJlckNvbmZpZ3NSZXR1cm5lZCAhPSAxKSB7CisgICAgICAgIExP
RyhXZWJHTCwgIkVHTENvbmZpZyBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKyAgICBMT0coV2ViR0wsICJHb3QgRUdMQ29uZmlnIik7CisK
KyAgICBFR0xfQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSk7CisgICAgaWYgKEVHTF9HZXRFcnJv
cigpICE9IEVHTF9TVUNDRVNTKSB7CisgICAgICAgIExPRyhXZWJHTCwgIlVuYWJsZSB0byBiaW5k
IHRvIE9QRU5HTF9FU19BUEkiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisg
ICAgc3RkOjp2ZWN0b3I8RUdMaW50PiBjb250ZXh0QXR0cmlidXRlczsKKyAgICBjb250ZXh0QXR0
cmlidXRlcy5wdXNoX2JhY2soRUdMX0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04pOworICAgIGNvbnRl
eHRBdHRyaWJ1dGVzLnB1c2hfYmFjaygyKTsKKyAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2Jh
Y2soRUdMX0NPTlRFWFRfV0VCR0xfQ09NUEFUSUJJTElUWV9BTkdMRSk7CisgICAgY29udGV4dEF0
dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9UUlVFKTsKKyAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNo
X2JhY2soRUdMX0VYVEVOU0lPTlNfRU5BQkxFRF9BTkdMRSk7CisgICAgY29udGV4dEF0dHJpYnV0
ZXMucHVzaF9iYWNrKEVHTF9UUlVFKTsKKyAgICBpZiAoc3Ryc3RyKGRpc3BsYXlFeHRlbnNpb25z
LCAiRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UiKSkgeworICAgICAgICBjb250ZXh0QXR0cmli
dXRlcy5wdXNoX2JhY2soRUdMX1BPV0VSX1BSRUZFUkVOQ0VfQU5HTEUpOworICAgICAgICAvLyBF
R0xfTE9XX1BPV0VSX0FOR0xFIGlzIHRoZSBkZWZhdWx0LiBDaGFuZ2UgdG8KKyAgICAgICAgLy8g
RUdMX0hJR0hfUE9XRVJfQU5HTEUgaWYgZGVzaXJlZC4KKyAgICAgICAgY29udGV4dEF0dHJpYnV0
ZXMucHVzaF9iYWNrKEVHTF9MT1dfUE9XRVJfQU5HTEUpOworICAgIH0KKyAgICBjb250ZXh0QXR0
cmlidXRlcy5wdXNoX2JhY2soRUdMX05PTkUpOworCisgICAgRUdMQ29udGV4dCBjb250ZXh0ID0g
RUdMX0NyZWF0ZUNvbnRleHQoZGlzcGxheSwgY29uZmlnLCBFR0xfTk9fQ09OVEVYVCwgY29udGV4
dEF0dHJpYnV0ZXMuZGF0YSgpKTsKKyAgICBpZiAoY29udGV4dCA9PSBFR0xfTk9fQ09OVEVYVCkg
eworICAgICAgICBMT0coV2ViR0wsICJFR0xDb250ZXh0IEluaXRpYWxpemF0aW9uIGZhaWxlZC4i
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIExPRyhXZWJHTCwgIkdvdCBF
R0xDb250ZXh0Iik7CisKKyAgICBzdGF0aWMgY29uc3QgaW50IHBidWZmZXJBdHRyaWJ1dGVzW10g
PSB7IEVHTF9XSURUSCwgMSwgRUdMX0hFSUdIVCwgMSwgRUdMX05PTkUgfTsKKyAgICBFR0xTdXJm
YWNlIHN1cmZhY2UgPSBFR0xfQ3JlYXRlUGJ1ZmZlclN1cmZhY2UoZGlzcGxheSwgY29uZmlnLCBw
YnVmZmVyQXR0cmlidXRlcyk7CisgICAgaWYgKHN1cmZhY2UgPT0gRUdMX05PX1NVUkZBQ0UpIHsK
KyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3JlYXRlIEVHTCBQYnVmZmVyIHN1cmZhY2U6
ICVzXG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7CisgICAgICAgIEVHTF9EZXN0cm95Q29udGV4dChk
aXNwbGF5LCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIExP
RyhXZWJHTCwgIkdvdCBFR0xQYnVmZmVyU3VyZmFjZSIpOworCisgICAgcmV0dXJuIHN0ZDo6dW5p
cXVlX3B0cjxBTkdMRUNvbnRleHQ+KG5ldyBBTkdMRUNvbnRleHQocGxhdGZvcm1EaXNwbGF5LCBk
aXNwbGF5LCBjb250ZXh0LCBzdXJmYWNlLCBTdXJmYWNlbGVzcykpOworfQorCitHQzNEQU5HTEVM
YXllcjo6QU5HTEVDb250ZXh0OjpBTkdMRUNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiBwbGF0Zm9y
bURpc3BsYXksIEVHTERpc3BsYXkgZGlzcGxheSwgRUdMQ29udGV4dCBjb250ZXh0LCBFR0xTdXJm
YWNlIHN1cmZhY2UsIEVHTFN1cmZhY2VUeXBlIHR5cGUpCisgICAgOiBHTENvbnRleHQocGxhdGZv
cm1EaXNwbGF5KQorICAgICwgbV9lZ2xEaXNwbGF5KGRpc3BsYXkpCisgICAgLCBtX2VnbENvbnRl
eHQoY29udGV4dCkKKyAgICAsIG1fZWdsU3VyZmFjZShzdXJmYWNlKQorICAgICwgbV90eXBlKHR5
cGUpCit7Cit9CisKK0dDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6On5BTkdMRUNvbnRleHQo
KQoreworICAgIGlmIChtX2VnbENvbnRleHQpIHsKKyAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZl
cihHTF9GUkFNRUJVRkZFUiwgMCk7CisgICAgICAgIEVHTF9NYWtlQ3VycmVudChtX2VnbERpc3Bs
YXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOworICAg
ICAgICBFR0xfRGVzdHJveUNvbnRleHQobV9lZ2xEaXNwbGF5LCBtX2VnbENvbnRleHQpOworICAg
IH0KKworICAgIGlmIChtX2VnbFN1cmZhY2UpCisgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZSht
X2VnbERpc3BsYXksIG1fZWdsU3VyZmFjZSk7Cit9CisKK2Jvb2wgR0MzREFOR0xFTGF5ZXI6OkFO
R0xFQ29udGV4dDo6bWFrZUNvbnRleHRDdXJyZW50KCkKK3sKKyAgICBBU1NFUlQobV9lZ2xDb250
ZXh0KTsKKworICAgIEdMQ29udGV4dDo6bWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgaWYgKEVH
TF9HZXRDdXJyZW50Q29udGV4dCgpICE9IG1fZWdsQ29udGV4dCkKKyAgICAgICAgcmV0dXJuIEVH
TF9NYWtlQ3VycmVudChtX2VnbERpc3BsYXksIG1fZWdsU3VyZmFjZSwgbV9lZ2xTdXJmYWNlLCBt
X2VnbENvbnRleHQpOworICAgIHJldHVybiB0cnVlOworfQorCitQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDNEIEdDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpCit7
CisgICAgcmV0dXJuIG1fZWdsQ29udGV4dDsKK30KKworSW50U2l6ZSBHQzNEQU5HTEVMYXllcjo6
QU5HTEVDb250ZXh0OjpkZWZhdWx0RnJhbWVCdWZmZXJTaXplKCkKK3sKKyAgICBpZiAoIWNhblJl
bmRlclRvRGVmYXVsdEZyYW1lYnVmZmVyKCkpCisgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisK
KyAgICBFR0xpbnQgd2lkdGgsIGhlaWdodDsKKyAgICBpZiAoIUVHTF9RdWVyeVN1cmZhY2UobV9l
Z2xEaXNwbGF5LCBtX2VnbFN1cmZhY2UsIEVHTF9XSURUSCwgJndpZHRoKQorICAgICAgICB8fCAh
RUdMX1F1ZXJ5U3VyZmFjZShtX2VnbERpc3BsYXksIG1fZWdsU3VyZmFjZSwgRUdMX0hFSUdIVCwg
JmhlaWdodCkpCisgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAgICByZXR1cm4gSW50U2l6
ZSh3aWR0aCwgaGVpZ2h0KTsKK30KKwordm9pZCBHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0
Ojpzd2FwSW50ZXJ2YWwoaW50IGludGVydmFsKQoreworICAgIEFTU0VSVChtX3N1cmZhY2UpOwor
ICAgIEVHTF9Td2FwSW50ZXJ2YWwobV9lZ2xEaXNwbGF5LCBpbnRlcnZhbCk7Cit9CisKK3ZvaWQg
R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6c3dhcEJ1ZmZlcnMoKQoreworICAgIEFTU0VS
VChtX3N1cmZhY2UpOworICAgIEVHTF9Td2FwQnVmZmVycyhtX2VnbERpc3BsYXksIG1fZWdsU3Vy
ZmFjZSk7Cit9CisKK3ZvaWQgR0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6d2FpdE5hdGl2
ZSgpCit7CisgICAgRUdMX1dhaXROYXRpdmUoRUdMX0NPUkVfTkFUSVZFX0VOR0lORSk7Cit9CisK
K0dDM0RBTkdMRUxheWVyOjpHQzNEQU5HTEVMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4
dCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorICAgIDogR0Mz
RExheWVyKGNvbnRleHQpCit7CisgICAgc3dpdGNoIChyZW5kZXJTdHlsZSkgeworICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbjoKKyAgICAgICAgbV9nbENvbnRleHQg
PSBBTkdMRUNvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93OgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitHQzNEQU5H
TEVMYXllcjo6fkdDM0RBTkdMRUxheWVyKCkKK3sKK30KKworYm9vbCBHQzNEQU5HTEVMYXllcjo6
bWFrZUNvbnRleHRDdXJyZW50KCkKK3sKKyAgICBBU1NFUlQobV9nbENvbnRleHQpOworICAgIHJl
dHVybiBtX2dsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CisKK30KKworUGxhdGZvcm1H
cmFwaGljc0NvbnRleHQzRCBHQzNEQU5HTEVMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkKK3sKKyAg
ICBBU1NFUlQobV9nbENvbnRleHQpOworICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1D
b250ZXh0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIE5pY29zaWEKKworI2VuZGlmIC8vIFVTRShO
SUNPU0lBKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29z
aWFHQzNEQU5HTEVMYXllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2MzllYjNjNmUzYTJhZjE1ZTE3ZjQ2MDUw
ODJhNGJjYTI4NGYxOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuaApAQCAtMCww
ICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IE1ldHJvbG9naWNhbCBHcm91cCBC
LlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgsIDIwMTkgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZAorICogICAgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKE5JQ09TSUEpICYm
IFVTRShURVhUVVJFX01BUFBFUikKKworI2luY2x1ZGUgIkdMQ29udGV4dC5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiTmljb3NpYUdDM0RMYXllci5oIgorI2lu
Y2x1ZGUgPG1lbW9yeT4KKwordHlwZWRlZiB2b2lkICpFR0xDb25maWc7Cit0eXBlZGVmIHZvaWQg
KkVHTENvbnRleHQ7Cit0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7Cit0eXBlZGVmIHZvaWQgKkVH
TFN1cmZhY2U7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEludFNpemU7CitjbGFzcyBH
TENvbnRleHQ7CitjbGFzcyBQbGF0Zm9ybURpc3BsYXk7Cit9CisKK25hbWVzcGFjZSBOaWNvc2lh
IHsKKworY2xhc3MgR0MzREFOR0xFTGF5ZXIgZmluYWwgOiBwdWJsaWMgR0MzRExheWVyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjbGFzcyBBTkdMRUNvbnRl
eHQgOiBwdWJsaWMgV2ViQ29yZTo6R0xDb250ZXh0IHsKKyAgICAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQU5HTEVDb250ZXh0KTsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBlcnJvclN0cmluZyhpbnQgc3RhdHVzQ29kZSk7CisgICAgICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBsYXN0RXJyb3JTdHJpbmcoKTsKKworICAgICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEFOR0xFQ29udGV4dD4gY3JlYXRlT2Zmc2NyZWVuQ29udGV4dChXZWJDb3JlOjpQbGF0Zm9ybURp
c3BsYXkmKTsKKyAgICAgICAgdmlydHVhbCB+QU5HTEVDb250ZXh0KCk7CisgICAgcHJpdmF0ZToK
KyAgICAgICAgZW51bSBFR0xTdXJmYWNlVHlwZSB7IFBidWZmZXJTdXJmYWNlLCBXaW5kb3dTdXJm
YWNlLCBQaXhtYXBTdXJmYWNlLCBTdXJmYWNlbGVzcyB9OworICAgICAgICBBTkdMRUNvbnRleHQo
V2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5JiwgRUdMRGlzcGxheSwgRUdMQ29udGV4dCwgRUdMU3Vy
ZmFjZSwgRUdMU3VyZmFjZVR5cGUpOworCisgICAgICAgIHZvaWQgc3dhcEJ1ZmZlcnMoKSBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCB3YWl0TmF0aXZlKCkgb3ZlcnJpZGU7CisgICAgICAgIFdlYkNv
cmU6OkludFNpemUgZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSgpIG92ZXJyaWRlOworICAgICAgICB2
b2lkIHN3YXBJbnRlcnZhbChpbnQpIG92ZXJyaWRlOworICAgICAgICBib29sIGNhblJlbmRlclRv
RGVmYXVsdEZyYW1lYnVmZmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV90eXBlID09IFdpbmRvd1N1
cmZhY2U7IH07CisgICAgICAgIGJvb2wgaXNFR0xDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQorI2lmIFVTRShDQUlSTykKKyAgICAgICAgY2Fpcm9fZGV2aWNlX3QqIGNhaXJvRGV2aWNl
KCkgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfTsKKyNlbmRpZgorI2lmIEVOQUJMRShHUkFQ
SElDU19DT05URVhUXzNEKQorICAgICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRm
b3JtQ29udGV4dCgpOworI2VuZGlmCisgICAgICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7
CisKKyAgICAgICAgRUdMRGlzcGxheSBtX2VnbERpc3BsYXkgeyBudWxscHRyIH07CisgICAgICAg
IEVHTENvbnRleHQgbV9lZ2xDb250ZXh0IHsgbnVsbHB0ciB9OworICAgICAgICBFR0xTdXJmYWNl
IG1fZWdsU3VyZmFjZSB7IG51bGxwdHIgfTsKKyAgICAgICAgRUdMU3VyZmFjZVR5cGUgbV90eXBl
OworICAgIH07CisKKyAgICBHQzNEQU5HTEVMYXllcihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSk7CisgICAgdmlydHVh
bCB+R0MzREFOR0xFTGF5ZXIoKTsKKworICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgb3Zl
cnJpZGU7CisgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIE5pY29zaWEKKworI2VuZGlmIC8vIFVTRShO
SUNPU0lBKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFH
QzNETGF5ZXIuY3BwCmluZGV4IDlhOWJkNDY4M2IyNjc0MmFmZWNiMTQ5MWY2MTQ0ZjJhNzhjNTk1
MmMuLjJkYzkxNmQwODJkZTljMWM4MTI3NGUyMmRmY2I2NTY3MmM1YWE4MjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFH
QzNETGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCkBAIC0zNywxMiArMzcsMjIgQEAKICNpbmNs
dWRlICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgiCiAjZW5kaWYKIAorI2lmIFVT
RShBTkdMRSkKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2VuZGlmCisKICNpbmNsdWRlICJH
TENvbnRleHQuaCIKIAogbmFtZXNwYWNlIE5pY29zaWEgewogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAorR0MzRExheWVyOjpHQzNETGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQp
CisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fY29udGVudExheWVyKE5pY29zaWE6
OkNvbnRlbnRMYXllcjo6Y3JlYXRlKE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJ
bXBsOjpjcmVhdGVGYWN0b3J5KCp0aGlzKSkpCit7Cit9CisKIEdDM0RMYXllcjo6R0MzRExheWVy
KEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5
bGUgcmVuZGVyU3R5bGUpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fY29udGVu
dExheWVyKE5pY29zaWE6OkNvbnRlbnRMYXllcjo6Y3JlYXRlKE5pY29zaWE6OkNvbnRlbnRMYXll
clRleHR1cmVNYXBwZXJJbXBsOjpjcmVhdGVGYWN0b3J5KCp0aGlzKSkpCkBAIC04MiwxMyArOTIs
MzggQEAgdm9pZCBHQzNETGF5ZXI6OnN3YXBCdWZmZXJzSWZOZWVkZWQoKQogCiAgICAgbV9jb250
ZXh0LnByZXBhcmVUZXh0dXJlKCk7CiAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZShtX2NvbnRleHQu
bV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC5tX2N1cnJlbnRIZWlnaHQpOwotICAgIFRleHR1cmVN
YXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEZsaXBUZXh0dXJl
IHwgKG1fY29udGV4dC5tX2F0dHJzLmFscGhhID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRCbGVu
ZCA6IDApOworICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSBtX2NvbnRleHQubV9h
dHRycy5hbHBoYSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwOworI2lmIFVTRShB
TkdMRSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1h
Z2VCdWZmZXI6OmNyZWF0ZSh0ZXh0dXJlU2l6ZSwgVW5hY2NlbGVyYXRlZCk7CisgICAgaWYgKCFp
bWFnZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb250ZXh0LnBhaW50UmVuZGVy
aW5nUmVzdWx0c1RvQ2FudmFzKGltYWdlQnVmZmVyLmdldCgpKTsKKyAgICBSZWZQdHI8SW1hZ2U+
IGltYWdlID0gaW1hZ2VCdWZmZXItPmNvcHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSk7Cisg
ICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworI2Vsc2UKKyAgICBmbGFncyB8PSBUZXh0
dXJlTWFwcGVyR0w6OlNob3VsZEZsaXBUZXh0dXJlOworI2VuZGlmCiAKICAgICB7CiAgICAgICAg
IGF1dG8mIHByb3h5ID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBl
ckltcGw+KG1fY29udGVudExheWVyLT5pbXBsKCkpLnByb3h5KCk7CisjaWYgVVNFKEFOR0xFKQor
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+
IGxheWVyQnVmZmVyOworICAgICAgICBsYXllckJ1ZmZlciA9IHByb3h5LmdldEF2YWlsYWJsZUJ1
ZmZlcih0ZXh0dXJlU2l6ZSwgbV9jb250ZXh0Lm1faW50ZXJuYWxDb2xvckZvcm1hdCk7CisgICAg
ICAgIGlmICghbGF5ZXJCdWZmZXIpIHsKKyAgICAgICAgICAgIGF1dG8gdGV4dHVyZSA9IEJpdG1h
cFRleHR1cmVHTDo6Y3JlYXRlKFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCks
IG1fY29udGV4dC5tX2ludGVybmFsQ29sb3JGb3JtYXQpOworICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8Qml0bWFwVGV4dHVyZUdMJj4odGV4dHVyZS5nZXQoKSkuc2V0UGVuZGluZ0NvbnRlbnRzKFdU
Rk1vdmUoaW1hZ2UpKTsKKyAgICAgICAgICAgIGxheWVyQnVmZmVyID0gbWFrZVVuaXF1ZTxUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4oV1RGTW92ZSh0ZXh0dXJlKSwgZmxhZ3MpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGxheWVyQnVmZmVyLT50ZXh0dXJlR0woKS5zZXRQ
ZW5kaW5nQ29udGVudHMoV1RGTW92ZShpbWFnZSkpOwogCisgICAgICAgIExvY2tIb2xkZXIgaG9s
ZGVyKHByb3h5LmxvY2soKSk7CisgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKFdURk1vdmUo
bGF5ZXJCdWZmZXIpKTsKKyNlbHNlCiAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5Lmxv
Y2soKSk7CiAgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKG1ha2VVbmlxdWU8VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+KG1fY29udGV4dC5tX2NvbXBvc2l0b3JUZXh0dXJlLCB0
ZXh0dXJlU2l6ZSwgZmxhZ3MsIG1fY29udGV4dC5tX2ludGVybmFsQ29sb3JGb3JtYXQpKTsKKyNl
bmRpZgogICAgIH0KIAogICAgIG1fY29udGV4dC5tYXJrTGF5ZXJDb21wb3NpdGVkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0MzRExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmgKaW5kZXggOWY1NDQ1YmJlMTE4M2NlNzQ4NTU5
M2NiYmJmMTY1MGVkY2NlNDMyMy4uNzE4ZGE0OWZiMTMyZGFkOGVhMTRiMDVlZGU5YTc0ZTdlMWJj
YzA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaApAQCAtNDMsMTYgKzQz
LDE3IEBAIG5hbWVzcGFjZSBOaWNvc2lhIHsKIGNsYXNzIEdDM0RMYXllciA6IHB1YmxpYyBDb250
ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKKyAgICBHQzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0QmKTsKICAgICBHQzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QmLCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUpOwogICAgIHZpcnR1YWwgfkdDM0RMYXll
cigpOwogCiAgICAgQ29udGVudExheWVyJiBjb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRlbnRMYXllcjsgfQotICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgUGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKTsKKyAgICB2aXJ0dWFsIGJv
b2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpOwogCiAgICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVlZGVk
KCkgb3ZlcnJpZGU7CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0QmIG1fY29udGV4dDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R0xD
b250ZXh0PiBtX2dsQ29udGV4dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcAppbmRleCA3OWIwMDZl
MTRkMWE5ZjMxZDAyZGM3Njc4NzIxZTcxNGIzZGNjY2JiLi5mMmQwZjY0YjNmZjc5ZGNiYTBhNmFl
NGM0Mjg0MDhmODEzMDE4N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcApAQCAtMjYsNyArMjYs
NiBAQAogCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0
aW9ucy5oIgotI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgi
CiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgpA
QCAtMTY5LDYgKzE2OCwyNSBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMo
SW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjbwogICAgIHVwZGF0ZUNv
bnRlbnRzKGltYWdlRGF0YSwgdGFyZ2V0UmVjdCwgb2Zmc2V0LCBieXRlc1BlckxpbmUpOwogfQog
CisjaWYgVVNFKEFOR0xFKQordm9pZCBCaXRtYXBUZXh0dXJlR0w6OnNldFBlbmRpbmdDb250ZW50
cyhSZWZQdHI8SW1hZ2U+IGltYWdlKQoreworICAgIG1fcGVuZGluZ0NvbnRlbnRzID0gaW1hZ2U7
Cit9CisKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVQZW5kaW5nQ29udGVudHMoY29uc3Qg
SW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIG9mZnNldCkKK3sKKyAgICBpZiAo
IW1fcGVuZGluZ0NvbnRlbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWlzVmFsaWQo
KSkgeworICAgICAgICBJbnRTaXplIHRleHR1cmVTaXplKG1fcGVuZGluZ0NvbnRlbnRzLT5zaXpl
KCkpOworICAgICAgICByZXNldCh0ZXh0dXJlU2l6ZSk7CisgICAgfQorICAgIHVwZGF0ZUNvbnRl
bnRzKG1fcGVuZGluZ0NvbnRlbnRzLmdldCgpLCB0YXJnZXRSZWN0LCBvZmZzZXQpOworfQorI2Vu
ZGlmCisKIHN0YXRpYyB1bnNpZ25lZCBnZXRQYXNzZXNSZXF1aXJlZEZvckZpbHRlcihGaWx0ZXJP
cGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBU
ZXh0dXJlR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRt
YXBUZXh0dXJlR0wuaAppbmRleCA4NzA5YTgyNTYwYzY0OTg4NzQ4OTM4YjhiODZlMTNiZjUzYTBi
ZWY2Li4wMDM3NjhlNjQwMDg4Y2Y2YTA2OGQ0Y2E0Zjc0ZWE3Nzg1ZjdkMmI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdM
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRl
eHR1cmVHTC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQml0bWFwVGV4dHVyZS5oIgog
I2luY2x1ZGUgIkNsaXBTdGFjay5oIgogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgorI2lu
Y2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlRleHR1cmVN
YXBwZXJDb250ZXh0QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgpA
QCAtNzcsNiArNzgsMTAgQEAgcHVibGljOgogICAgIEdMaW50IGludGVybmFsRm9ybWF0KCkgY29u
c3QgeyByZXR1cm4gbV9pbnRlcm5hbEZvcm1hdDsgfQogCiAgICAgdm9pZCBjb3B5RnJvbUV4dGVy
bmFsVGV4dHVyZShHTHVpbnQgdGV4dHVyZUlEKTsKKyNpZiBVU0UoQU5HTEUpCisgICAgdm9pZCBz
ZXRQZW5kaW5nQ29udGVudHMoUmVmUHRyPEltYWdlPik7CisgICAgdm9pZCB1cGRhdGVQZW5kaW5n
Q29udGVudHMoY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIG9mZnNl
dCk7CisjZW5kaWYKIAogICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgY29sb3JDb252ZXJ0Rmxh
Z3MoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yQ29udmVydEZsYWdzOyB9CiAKQEAgLTk0LDYgKzk5
LDEwIEBAIHByaXZhdGU6CiAgICAgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzIG1fY29u
dGV4dEF0dHJpYnV0ZXM7CiAgICAgVGV4dHVyZU1hcHBlckdMOjpGbGFncyBtX2NvbG9yQ29udmVy
dEZsYWdzIHsgVGV4dHVyZU1hcHBlckdMOjpOb0ZsYWcgfTsKIAorI2lmIFVTRShBTkdMRSkKKyAg
ICBSZWZQdHI8SW1hZ2U+IG1fcGVuZGluZ0NvbnRlbnRzIHsgbnVsbHB0ciB9OworI2VuZGlmCisK
ICAgICB2b2lkIGNsZWFySWZOZWVkZWQoKTsKICAgICB2b2lkIGNyZWF0ZUZib0lmTmVlZGVkKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKaW5k
ZXggOGZkM2FkNGY3MmQ3NjRiZDk1ZDIyMGY1ODFlZDJiNzk2Mjg4M2M5Yy4uZmFiODA3YjdkOGMx
YTY4YjU5ZDNhYjcyYmNkNTY4NDJkNTU2M2Q0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
Q29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKQEAgLTM3LDIxICszNyw1MCBAQAogCiAjaW5jbHVk
ZSA8QU5HTEUvU2hhZGVyTGFuZy5oPgogCi0jaWYgVVNFKExJQkVQT1hZKQorI2lmIFVTRShBTkdM
RSkKKyNkZWZpbmUgRUdMX0VHTF9QUk9UT1RZUEVTIDAKKy8vIFNraXAgdGhlIGluY2x1c2lvbiBv
ZiBBTkdMRSdzIGV4cGxpY2l0IGNvbnRleHQgZW50cnkgcG9pbnRzIGZvciBub3cuCisjZGVmaW5l
IEdMX0FOR0xFX2V4cGxpY2l0X2NvbnRleHQKKyNkZWZpbmUgR0xfQU5HTEVfZXhwbGljaXRfY29u
dGV4dF9nbGVzMQordHlwZWRlZiB2b2lkKiBHTGVnbENvbnRleHQ7CisjaW5jbHVkZSA8QU5HTEUv
ZWdsLmg+CisjaW5jbHVkZSA8QU5HTEUvZWdsZXh0Lmg+CisjaW5jbHVkZSA8QU5HTEUvZWdsZXh0
X2FuZ2xlLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2VnbC5oPgorI2luY2x1ZGUg
PEFOR0xFL2VudHJ5X3BvaW50c19nbGVzXzJfMF9hdXRvZ2VuLmg+CisjaW5jbHVkZSA8QU5HTEUv
ZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4uaD4KKyNpbmNsdWRlIDxBTkdMRS9nbDJleHQu
aD4KKyNpbmNsdWRlIDxBTkdMRS9nbDJleHRfYW5nbGUuaD4KKyNpZiBkZWZpbmVkKEFib3ZlKQor
I3VuZGVmIEFib3ZlCisjZW5kaWYKKyNpZiBkZWZpbmVkKEJlbG93KQorI3VuZGVmIEJlbG93Cisj
ZW5kaWYKKyNpZiBkZWZpbmVkKE5vbmUpCisjdW5kZWYgTm9uZQorI2VuZGlmCisjZWxpZiBVU0Uo
TElCRVBPWFkpCiAjaW5jbHVkZSA8ZXBveHkvZ2wuaD4KICNlbGlmICFVU0UoT1BFTkdMX0VTKQog
I2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAotI2lmIFVTRShPUEVOR0xfRVMpCisj
aWYgVVNFKEFOR0xFKQorI2luY2x1ZGUgIkV4dGVuc2lvbnMzREFOR0xFLmgiCisjZWxpZiBVU0Uo
T1BFTkdMX0VTKQogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTEVTLmgiCiAjZWxzZQogI2lu
Y2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgogI2VuZGlmCiAKICNpZiBVU0UoTklDT1NJQSkK
KyNpZiBVU0UoQU5HTEUpCisjaW5jbHVkZSAiTmljb3NpYUdDM0RBTkdMRUxheWVyLmgiCisjZWxz
ZQogI2luY2x1ZGUgIk5pY29zaWFHQzNETGF5ZXIuaCIKICNlbmRpZgorI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNzEsNyArMTAwLDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4
dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRl
cwogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgc3RhdGljIGJvb2wg
c3VjY2VzcyA9IHRydWU7CiAgICAgaWYgKCFpbml0aWFsaXplZCkgewotI2lmICFVU0UoT1BFTkdM
X0VTKSAmJiAhVVNFKExJQkVQT1hZKQorI2lmICFVU0UoT1BFTkdMX0VTKSAmJiAhVVNFKExJQkVQ
T1hZKSAmJiAhVVNFKEFOR0xFKQogICAgICAgICBzdWNjZXNzID0gaW5pdGlhbGl6ZU9wZW5HTFNo
aW1zKCk7CiAjZW5kaWYKICAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwpAQCAtMTAxLDYgKzEz
MCw3OSBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVh
dGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzCiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAK
KyNpZiBVU0UoQU5HTEUpCitHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGlj
c0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUsIEdyYXBoaWNzQ29udGV4dDNEKiBz
aGFyZWRDb250ZXh0KQorICAgIDogbV9hdHRycyhhdHRyaWJ1dGVzKQoreworICAgIEFTU0VSVF9V
TlVTRUQoc2hhcmVkQ29udGV4dCwgIXNoYXJlZENvbnRleHQpOworI2lmIFVTRShOSUNPU0lBKQor
ICAgIG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RBTkdMRUxh
eWVyPigqdGhpcywgcmVuZGVyU3R5bGUpOworI2Vsc2UKKyAgICBtX3RleG1hcExheWVyID0gV1RG
OjptYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcj4oKnRoaXMsIHJlbmRl
clN0eWxlKTsKKyNlbmRpZgorICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOworCisKKyAgICB2YWxp
ZGF0ZUF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5kZXJPZmZzY3Jl
ZW4pIHsKKyAgICAgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KKyAgICAg
ICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX3RleHR1cmUpOworICAgICAgICBnbDo6QmluZFRleHR1
cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fdGV4dHVyZSk7CisgICAgICAgIGdsOjpU
ZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01BR19G
SUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVf
UkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAg
ICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhU
VVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJp
KEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBf
VE9fRURHRSk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9B
TkdMRSwgMCk7CisKKyAgICAgICAgLy8gQ3JlYXRlIGFuIEZCTy4KKyAgICAgICAgZ2w6OkdlbkZy
YW1lYnVmZmVycygxLCAmbV9mYm8pOworICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBtX2Zibyk7CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisgICAg
ICAgIGdsOjpHZW5UZXh0dXJlcygxLCAmbV9jb21wb3NpdG9yVGV4dHVyZSk7CisgICAgICAgIGds
OjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV9jb21wb3NpdG9yVGV4
dHVyZSk7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FO
R0xFLCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQ
YXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01JTl9GSUxU
RVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVD
VEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAg
ICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhU
VVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisKKyAgICAgICAgZ2w6OkdlblRleHR1cmVz
KDEsICZtX2ludGVybWVkaWF0ZVRleHR1cmUpOworICAgICAgICBnbDo6QmluZFRleHR1cmUoR0xf
VEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgICAg
IGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJF
X01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RF
WFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7
CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBH
TF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgICAgIGdsOjpUZXhQYXJh
bWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX1dSQVBfVCwgR0xf
Q0xBTVBfVE9fRURHRSk7CisKKyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVD
VEFOR0xFX0FOR0xFLCAwKTsKKyNlbmRpZgorCisgICAgICAgIC8vIENyZWF0ZSBhIG11bHRpc2Ft
cGxlIEZCTy4KKyAgICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgICAgICAgICBn
bDo6R2VuRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgICAgIGds
OjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOworICAg
ICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CisgICAgICAgICAg
ICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKKyAg
ICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAg
ICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNp
bEJ1ZmZlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBCaW5kIGNhbnZhcyBG
Qk8uCisgICAgICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zi
byk7CisgICAgICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9mYm87CisjaWYgVVNFKE9QRU5H
TF9FUykKKyAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGds
OjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyKTsKKyAgICAgICAgICAgIGlmICht
X2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwg
Jm1fc3RlbmNpbEJ1ZmZlcik7CisjZW5kaWYKKyAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5j
aWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVy
cygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgZ2w6
OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7Cit9CisjZWxzZQogR3JhcGhpY3NDb250ZXh0M0Q6Okdy
YXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBI
b3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlLCBH
cmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKICAgICA6IG1fYXR0cnMoYXR0cmlidXRl
cykKIHsKQEAgLTIyNSw3ICszMjcsNTEgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29u
dGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKIAogICAg
IDo6Z2xDbGVhckNvbG9yKDAsIDAsIDAsIDApOwogfQorI2VuZGlmCiAKKyNpZiBVU0UoQU5HTEUp
CitHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKK3sKKyAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKKyAgICBpZiAobV90ZXh0dXJlKQorICAgICAgICBnbDo6RGVsZXRlVGV4
dHVyZXMoMSwgJm1fdGV4dHVyZSk7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorICAg
IGlmIChtX2NvbXBvc2l0b3JUZXh0dXJlKQorICAgICAgICBnbDo6RGVsZXRlVGV4dHVyZXMoMSwg
Jm1fY29tcG9zaXRvclRleHR1cmUpOworI2VuZGlmCisKKyAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMpIHsKKyAgICAgICAgZ2w6OkRlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVD
b2xvckJ1ZmZlcik7CisgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0
aCkKKyAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxl
RGVwdGhTdGVuY2lsQnVmZmVyKTsKKyAgICAgICAgZ2w6OkRlbGV0ZUZyYW1lYnVmZmVycygxLCAm
bV9tdWx0aXNhbXBsZUZCTyk7CisgICAgfSBlbHNlIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9h
dHRycy5kZXB0aCkgeworI2lmIFVTRShPUEVOR0xfRVMpCisgICAgICAgIGlmIChtX2RlcHRoQnVm
ZmVyKQorICAgICAgICAgICAgZ2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVy
KTsKKworICAgICAgICBpZiAobV9zdGVuY2lsQnVmZmVyKQorICAgICAgICAgICAgZ2xEZWxldGVS
ZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOworI2VuZGlmCisgICAgICAgIGlmICht
X2RlcHRoU3RlbmNpbEJ1ZmZlcikKKyAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJz
KDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CisgICAgfQorICAgIGdsOjpEZWxldGVGcmFtZWJ1
ZmZlcnMoMSwgJm1fZmJvKTsKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisgICAgZ2w6
OkRlbGV0ZVRleHR1cmVzKDEsICZtX2ludGVybWVkaWF0ZVRleHR1cmUpOworI2VuZGlmCisKKyNp
ZiBVU0UoQ0FJUk8pCisgICAgaWYgKG1fdmFvKQorICAgICAgICBkZWxldGVWZXJ0ZXhBcnJheSht
X3Zhbyk7CisjZW5kaWYKKworICAgIGF1dG8qIGFjdGl2ZUNvbnRleHQgPSBhY3RpdmVDb250ZXh0
cygpLnRha2VMYXN0KFt0aGlzXShhdXRvKiBpdCkgeworICAgICAgICByZXR1cm4gaXQgPT0gdGhp
czsKKyAgICB9KTsKKyAgICBBU1NFUlRfVU5VU0VEKGFjdGl2ZUNvbnRleHQsICEhYWN0aXZlQ29u
dGV4dCk7Cit9CisjZWxzZQogR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgp
CiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CkBAIC0yNjIsOSArNDA4LDEyIEBAIEdyYXBo
aWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogICAgICAgICBkZWxldGVWZXJ0ZXhB
cnJheShtX3Zhbyk7CiAjZW5kaWYKIAotICAgIGF1dG8qIGFjdGl2ZUNvbnRleHQgPSBhY3RpdmVD
b250ZXh0cygpLnRha2VMYXN0KFt0aGlzXShhdXRvKiBpdCkgeyByZXR1cm4gaXQgPT0gdGhpczsg
fSk7CisgICAgYXV0byogYWN0aXZlQ29udGV4dCA9IGFjdGl2ZUNvbnRleHRzKCkudGFrZUxhc3Qo
W3RoaXNdKGF1dG8qIGl0KSB7CisgICAgICAgIHJldHVybiBpdCA9PSB0aGlzOworICAgIH0pOwog
ICAgIEFTU0VSVF9VTlVTRUQoYWN0aXZlQ29udGV4dCwgISFhY3RpdmVDb250ZXh0KTsKIH0KKyNl
bmRpZiAvLyBVU0UoQU5HTEUpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRM
b3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQogewpAQCAt
MzE5LDcgKzQ2OCw3IEBAIFBsYXRmb3JtTGF5ZXIqIEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9y
bUxheWVyKCkgY29uc3QKICNlbmRpZgogfQogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRG
T1JNKEdUSykgJiYgIVVTRShBTkdMRSkKIEV4dGVuc2lvbnMzRCYgR3JhcGhpY3NDb250ZXh0M0Q6
OmdldEV4dGVuc2lvbnMoKQogewogICAgIGlmICghbV9leHRlbnNpb25zKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcAppbmRleCA1ZWZiMTkw
Y2I0ZDI1MzE2N2NjNTQ1ZWNlYjc3ODQ5YjgzZDFiNjRiLi4yZGI4Y2ZiMTNiMTMxZDIxMWYyYjc5
N2Q4YTAwNmZmMmIwNjMwODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllckJ1ZmZlci5jcHAKQEAgLTk3LDYgKzk3LDkgQEAgdm9pZCBUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllckJ1ZmZlcjo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciYg
dGV4dHUKICAgICBpZiAobV9oYXNNYW5hZ2VkVGV4dHVyZSkgewogICAgICAgICBBU1NFUlQobV90
ZXh0dXJlKTsKICAgICAgICAgQml0bWFwVGV4dHVyZUdMKiB0ZXh0dXJlR0wgPSBzdGF0aWNfY2Fz
dDxCaXRtYXBUZXh0dXJlR0wqPihtX3RleHR1cmUuZ2V0KCkpOworI2lmIFVTRShBTkdMRSkKKyAg
ICAgICAgdGV4dHVyZUdMLT51cGRhdGVQZW5kaW5nQ29udGVudHMoSW50UmVjdChJbnRQb2ludCgp
LCB0ZXh0dXJlR0wtPmNvbnRlbnRTaXplKCkpLCBJbnRQb2ludCgpKTsKKyNlbmRpZgogICAgICAg
ICB0ZXhtYXBHTC5kcmF3VGV4dHVyZSh0ZXh0dXJlR0wtPmlkKCksIG1fZXh0cmFGbGFncyB8IHRl
eHR1cmVHTC0+Y29sb3JDb252ZXJ0RmxhZ3MoKSwgdGV4dHVyZUdMLT5zaXplKCksIHRhcmdldFJl
Y3QsIG1vZGVsVmlld01hdHJpeCwgb3BhY2l0eSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKaW5kZXgg
Mzc5MzY3NWFjOGQ2YjNjMzJhM2IzMTgxOTNlNDlhN2IzN2RjNDg4MC4uMzgxNGY2OGFlNDdhYTVi
N2ZlN2Y5YTBiZWNlODQ3MTZhYmNkYjQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllclByb3h5LmNwcApAQCAtMTEzLDYgKzExMywxMiBAQCBib29sIFRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmlzQWN0aXZlKCkKIHZvaWQgVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eTo6cHVzaE5leHRCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPFRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPiBuZXdCdWZmZXIpCiB7CiAgICAgQVNTRVJUKG1f
bG9jay5pc0hlbGQoKSk7CisjaWYgVVNFKEFOR0xFKQorICAgIC8vIFdoZW4gdGhlIG5ld0J1ZmZl
ciBvdmVyd3JpdGVzIG1fcGVuZGluZ0J1ZmZlciB0aGF0IGlzIG5vdCBzd2FwcGVkIHlldCwKKyAg
ICAvLyB0aGUgbGF5ZXIgcmVsYXRlZCB0byBtX3BlbmRpbmdCdWZmZXIgaXMgZmxpY2tlcmluZyBz
aW5jZSBpdHMgdGV4dHVyZSBpcyBkZXN0cm95ZWQuCisgICAgaWYgKG1fcGVuZGluZ0J1ZmZlciAm
JiBtX3BlbmRpbmdCdWZmZXItPmhhc01hbmFnZWRUZXh0dXJlKCkpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgogICAgIG1fcGVuZGluZ0J1ZmZlciA9IFdURk1vdmUobmV3QnVmZmVyKTsKICAgICBt
X3dhc0J1ZmZlckRyb3BwZWQgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKaW5kZXggNTdl
OGE1NTc4NzQzYmUzNWEyOTJhODcyM2E3MmEzMDk0MjEzMjRhYy4uNWE4YjY0N2JhNzVlMDFkZDgx
MjZkYzczZjYyYzQ3ZjBlOGM3NTBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCkBAIC02NCw2ICs2
NCw3IEBACiAKICNpZiBVU0UoR0xYKQogI2luY2x1ZGUgPEdML2dseC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvT3BlbkdMU2hpbXMuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9y
ZVdheWxhbmQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFj
a2luZ1N0b3JlV2F5bGFuZC5jcHAKaW5kZXggOTczYjMxNjgxZmIzMTgyMGVmZmI1M2RkNDI5ZDk0
NDM0YjdkMmZlNS4uMWEzMjY0ZDg3YTE2OTdlMjczZmQ4ZDYwMzBmYjllMWFmMGI1MjliNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0
b3JlV2F5bGFuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJh
dGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAKQEAgLTM4LDcgKzM4LDEwIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9DYWlyb1V0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR0xDb250ZXh0Lmg+
CiAKLSNpZiBVU0UoT1BFTkdMX0VTKQorI2lmIFVTRShBTkdMRSkKKyNpbmNsdWRlIDxXZWJDb3Jl
L0V4dGVuc2lvbnMzREFOR0xFLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9PcGVuR0xTaGltcy5oPgor
I2VsaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KICNpbmNsdWRlIDxH
TEVTMi9nbDJleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmg+
CkBAIC03OCw3ICs4MSw5IEBAIGJvb2wgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpj
aGVja1JlcXVpcmVtZW50cygpCiAgICAgICAgIGlmICghZWdsQ29udGV4dC0+bWFrZUNvbnRleHRD
dXJyZW50KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBVU0UoT1BFTkdMX0VT
KQorI2lmIFVTRShBTkdMRSkKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzREFO
R0xFPiBnbEV4dGVuc2lvbnMgPSBtYWtlVW5pcXVlPEV4dGVuc2lvbnMzREFOR0xFPihudWxscHRy
LCBHTENvbnRleHQ6OmN1cnJlbnQoKS0+dmVyc2lvbigpID49IDMyMCk7CisjZWxpZiBVU0UoT1BF
TkdMX0VTKQogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMRVM+IGds
RXh0ZW5zaW9ucyA9IG1ha2VVbmlxdWU8RXh0ZW5zaW9uczNET3BlbkdMRVM+KG51bGxwdHIsICBm
YWxzZSk7CiAjZWxzZQogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdM
PiBnbEV4dGVuc2lvbnMgPSBtYWtlVW5pcXVlPEV4dGVuc2lvbnMzRE9wZW5HTD4obnVsbHB0ciwg
R0xDb250ZXh0OjpjdXJyZW50KCktPnZlcnNpb24oKSA+PSAzMjApOwpkaWZmIC0tZ2l0IGEvU291
cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFr
ZQppbmRleCA2YjQxMzA1NDA2MDE1ZmU0Y2I1NTkwOWIyNDczMzdlMWZkOWE0NTM0Li5iZWQ3OTRm
YzJjMWZiOTMxZTdiNjA2NzE1YzQzMDYzZDAzMmNjZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21h
a2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpA
QCAtOTAsNiArOTAsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfV1BFX1JFTkRFUkVSICJX
aGV0aGVyIHRvIGVuYWJsZSBXUEUgcmVuZGVyaW5nIiBQVUJMSUMgTwogCiAjIFByaXZhdGUgb3B0
aW9ucyBzcGVjaWZpYyB0byB0aGUgR1RLIHBvcnQuIENoYW5naW5nIHRoZXNlIG9wdGlvbnMgaXMK
ICMgY29tcGxldGVseSB1bnN1cHBvcnRlZC4gVGhleSBhcmUgaW50ZW5kZWQgZm9yIHVzZSBvbmx5
IGJ5IFdlYktpdCBkZXZlbG9wZXJzLgorV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0FOR0xFX1dF
QkdMICJXaGV0aGVyIHRvIHVzZSBBTkdMRSBhcyBXZWJHTCBiYWNrZW5kLiIgUFJJVkFURSBPRkYp
CiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfT1BFTlZSICJXaGV0aGVyIHRvIHVzZSBPcGVuVlIg
YXMgV2ViVlIgYmFja2VuZC4iIFBSSVZBVEUgT0ZGKQogCiAjIEZJWE1FOiBDYW4gd2UgdXNlIGNh
aXJvLWdsZXN2MiB0byBhdm9pZCB0aGlzIGNvbmZsaWN0PwpAQCAtMTAwLDYgKzEwMSw3IEBAIFdF
QktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgRU5BQkxFX09Q
RU5HTCkKIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcgRU5BQkxF
X09QRU5HTCkKIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9HTEVTMiBFTkFCTEVfT1BFTkdM
KQogV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX1dFQkdMIEVOQUJMRV9PUEVOR0wpCitXRUJL
SVRfT1BUSU9OX0RFUEVORChVU0VfQU5HTEVfV0VCR0wgRU5BQkxFX1dFQkdMKQogV0VCS0lUX09Q
VElPTl9ERVBFTkQoVVNFX1dQRV9SRU5ERVJFUiBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElP
Tl9ERVBFTkQoVVNFX1dQRV9SRU5ERVJFUiBFTkFCTEVfV0FZTEFORF9UQVJHRVQpCiAKQEAgLTMw
Myw2ICszMDUsMTEgQEAgaWYgKEVOQUJMRV9PUEVOR0wpCiAgICAgU0VUX0FORF9FWFBPU0VfVE9f
QlVJTEQoVVNFX05JQ09TSUEgVFJVRSkKIGVuZGlmICgpCiAKK2lmIChVU0VfQU5HTEVfV0VCR0wp
CisgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0FOR0xFIFRSVUUpCisgICAgU0VUX0FO
RF9FWFBPU0VfVE9fQlVJTEQoVVNFX0FOR0xFX0VHTCBUUlVFKQorZW5kaWYgKCkKKwogaWYgKEVO
QUJMRV9TUEVMTENIRUNLKQogICAgIGZpbmRfcGFja2FnZShFbmNoYW50KQogICAgIGlmIChOT1Qg
UENfRU5DSEFOVF9GT1VORCkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRl
eCAwMGNlNzFiNDIxMzgzYTc4OTBjZjdkM2RhZTViMmY2M2ViYTFlNzBjLi5hMmQzN2Q1NTk2OWNm
YzU2MDg3Yjg5ZDZjMTUxMWY4ZjI5MzA3MjBjIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTEtMDkgIENoYW5nU2VvayBPaCAgPGNo
YW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdIEFkZCBBTkdMRSBiYWNrZW5kIHRv
IEdUSyBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTkwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGNoYW5nZSBicmluZ3MgQU5HTEUgc3VwcG9ydCBmb3IgV2ViR0wgdG8gR1RLIHBvcnQu
IFVTRV9BTkdMRV9XRUJHTAorICAgICAgICBpcyBuZXdseSBkZWZpbmVkIGluIE9wdGlvbkdUSy5j
bWFrZSwgYW5kIHR1cm5zIG9uIHRoZSBVU0VfQU5HTEVfRUdMIGZsYWcuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZTogVVNFX0FOR0xFX1dFQkdMIGFkZGVkLgorCiAy
MDE5LTExLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBBZGQgZGlhZ25vc3RpYyBsb2dnaW5nIGZvciBmcm9udGVuZCBmZWF0dXJl
IHVzYWdlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383240</attachid>
            <date>2019-11-10 00:32:29 -0800</date>
            <delta_ts>2019-11-11 19:04:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199060-20191110033228.patch</filename>
            <type>text/plain</type>
            <size>60242</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNmQyYTlmMTgzYjVlY2Q5OTYxYjZlOTU5ODUxY2U1NDllYWNhMDg3Mi4uNzViMDZlMmY3ZDZi
MjEyMzg4Yzk3MTY0OThkMzZkZmM1YjhiNjI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTExLTEwICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tA
d2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogV2hlbiBVU0VfQU5HTEVfV0VCR0wgaXMgZW5hYmxlZCwgbmVjZXNzYXJ5IGds
ZXN2MiBlbnRyeSBwb2ludHMgaGVhZGVycworICAgICAgICAgIGFyZSBpbnN0YWxsZWQgaW4gdGhl
IGRlcml2ZWQgc291cmNlIGRpcmVjdG9yeS4gQW5kIHRoZW4gYWRqdXN0LWFuZ2xlLWluY2x1ZGUt
cGF0aC5zaCBpcyBhcHBsaWVkCisgICAgICAgICAgdG8gY2hhbmdlIGluY2x1ZGUgcGF0aHMgaW4g
dGhlIGVudHJ5IHBvaW50cyBoZWFkZXIgZmlsZXMuCisgICAgICAgICogR0xFU3YyLmNtYWtlOiBs
aWJnbGVzdjJfZW50cnlfcG9pbnRzX2hlYWRlcnMgaXMgbmV3bHkgZGVmaW5lZCwgd2hpY2ggaXMg
YSBnYXRoZXJpbmcgb2YKKyAgICAgICAgICBlbnRyeSBwb2ludCBoZWFkZXJzIG9mIGxpYkdMRVN2
Mi4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogSW4gdGhpcyBmaWxlLCB3ZSBhcHBlbmQg
Z2wgYW5kIGdseCByZWxhdGVkIGFuZ2xlIGNvZGUgYXMgYSBidWlsZCB0YXJnZXQuCisgICAgICAg
ICAgU2luY2Ugd2Ugd2FudCBnbCBjb250ZXh0IGFuZCBnbGVzIGNvbnRleHQgc2ltdWx0YW5lb3Vz
bHksIHdlIHJlbW92ZSBnbCBwcm90b3R5cGUgY2FsbHMKKyAgICAgICAgICBmcm9tIHRoZSBnZW5l
cmF0ZWQgbGliR0xFU3YyIGxpYnJhcnkuIEluc3RlYWQsIHdlIGludm9rZSBlZ2wgYW5kIGdsIGNh
bGxzIG9mIEFOR0xFCisgICAgICAgICAgdmlhIHRoZWlyIG5vbi1wcm90b3R5cGUgZnVuY3Rpb24g
bmFtZXMuCisgICAgICAgICogYWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0aHMuc2g6IHNlZCBpcyBz
bGlnaHRseSBkaWZmZXJlbnQgaW4gdW5peCBhbmQgbGludXggc3lzdGVtcy4KKyAgICAgICAgICBJ
biBwYXJ0aWN1bGFyLCBpdHMgaW5wbGFjZSBvcHRpb24gbmVlZHMgdG8gYmUgY2hhbmdlZCBmb3Ig
YmV0dGVyIGNvbXBhdGliaWxpdHkgb24gbGludXguCisgICAgICAgICogaW5jbHVkZS9DTWFrZUxp
c3RzLnR4dDogQU5HTEVfV0VCR0xfSEVBREVSUyBpcyBuZXdseSBkZWZpbmVkLiBJdCBnYXRoZXJz
IGhlYWRlciBmaWxlcyBvZiBBTkdMRQorICAgICAgICAgIGZvciBXZWJHTCBzdXBwb3J0LgorCiAy
MDE5LTExLTA4ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
QU5HTEUgYmFja2VuZCBmb3IgaU9TIGRldmljZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmZGJjZDIwNGI3M2ZiM2FiMWNlZjMy
ZTJkMWI5YzI3Y2I3ZmExMmU4Li5lZGI3NjNjMGJhZGMyYWFkOWNmYzJlYmIxYmYwNWRmMDVjNTcy
NWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTExLTEwICBDaGFuZ1Nlb2sgT2ggIDxjaGFu
Z3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBH
VEsgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk5MDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEdUSyBwb3J0IHVzZXMgVEVYVFVSRV9NQVBQRVIgdGhhdCBoYXMgYSBnbCBjb250ZXh0IGZv
ciBhY2NlbGVyYXRlZCByZW5kZXJpbmcsCisgICAgICAgIGFuZCBBTkdMRSBoYXMgYW4gZWdsIGNv
bnRleHQgZm9yIFdlYkdMLiBXZSB3YW50IHRvIG1ha2UgYm90aCBsaXZlIHRvZ2V0aGVyCisgICAg
ICAgIHNvIGFuIGV4Y2VwdGlvbiBpcyBtYWRlIHdoZXJlIFRFWFRVUkVfTUFQUEVSIGlzIGVuYWJs
ZWQuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOS0xMS0wNyAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgc3RhY2sgb3ZlcmZsb3cgY2hl
Y2sgaW4gWWFycjo6Qnl0ZUNvbXBpbGVyOjplbWl0RGlzanVuY3Rpb24oKS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA2ODFlMTYxMjFiYmQ3M2I5ZGVkM2M1MTg0ZThjN2VkMTVjYjA0NTJlLi5kZWVmMjQ1NGYwODY4
MmRjNWYwNzcxZDExMjFkY2MwM2RlNWUxYjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAK
KzIwMTktMTEtMTAgIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFtHVEtdIEFkZCBBTkdMRSBiYWNrZW5kIHRvIEdUSyBwb3J0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkwNjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBhaW1zIHRvIGJyaW5n
IEFOR0xFIHN1cHBvcnQgZm9yIFdlYkdMIHRvIEdUSyBwb3J0LiBUaGUgcG9ydAorICAgICAgICB3
YW50cyB0byBoYXZlIGEgZ2wgY29udGV4dCBmb3IgdGV4dHVyZSBtYXBwZXIgYW5kIGEgZ2xlcy9l
Z2wgY29udGV4dCBmb3Igd2ViZ2wKKyAgICAgICAgc2ltdWx0YW5lb3VzbHksIHdlIGFkb3B0IHRo
ZSByZWFkUGl4ZWwtY29weVRvVGV4dHVyZSBhcHByb2FjaCBmb3Igbm93IGJlY2F1c2UKKyAgICAg
ICAgc2hhcmluZyB0ZXh0dXJlcyBiZXR3ZWVuIHRoZSB0d28gZGlmZmVyZW50IGNvbnRleHRlcyBp
cyBub3QgYSBmZWFzaWJsZSBkaXJlY3Rpb24uCisgICAgICAgIEFsc28sIHRvIGF2b2lkIGNvbmZs
aWN0cyBiZXR3ZWVuIGdsIGFuZCBnbGVzIGNhbGxzLCB3ZSB1c2Ugbm9uLXByb3RvdHlwZSBmdW5j
dGlvbnMKKyAgICAgICAgb2YgQU5HTEUgZm9yIFdlYkdMIGNvbnRleHQgKGkuZS4sIEdyYXBoaWNz
Q29udGV4dDNEKS4gQWx0aG91Z2ggbWFueSBjb21iaW5hdGlvbnMKKyAgICAgICAgb2YgZ3JhcGhp
YyBjb25maWd1cmF0aW9ucyBleGlzdCwgb25seSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gKE5pY29z
aWEgbGF5ZXJzCisgICAgICAgIHJ1bm5pbmcgb24gQU5HTEUgKyBHTFggaXMgc3VwcG9ydGVkLiBP
dGhlciBjb21iaW5hdGlvbnMgbGlrZSBBTkdMRSArIEdMRVMgb3IgV1BFCisgICAgICAgIHdpbGwg
YmUgY292ZXJlZCBieSBmb2xsb3dpbmcgcGF0Y2hlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMg
c2luY2Ugbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2VkLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR0xDb250ZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HTENv
bnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmluaXRpYWxpemVPcGVuR0xTaGltcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvT3BlbkdMU2hpbXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bURpc3BsYXkuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNz
Q29udGV4dDNEQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OnJlc2hhcGVGQk9zKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVw
YXJlVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDM0RBTkdMRUxheWVyLmNwcDogQWRkZWQuCisgICAgICAgIChOaWNvc2lhOjpHQzNE
QU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjplcnJvclN0cmluZyk6CisgICAgICAgIChOaWNvc2lh
OjpHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpsYXN0RXJyb3JTdHJpbmcpOgorICAgICAg
ICAoTmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVu
Q29udGV4dCk6CisgICAgICAgIChOaWNvc2lhOjpHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0
OjpBTkdMRUNvbnRleHQpOgorICAgICAgICAoTmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6OkFOR0xF
Q29udGV4dDo6fkFOR0xFQ29udGV4dCk6CisgICAgICAgIChOaWNvc2lhOjpHQzNEQU5HTEVMYXll
cjo6QU5HTEVDb250ZXh0OjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAoTmljb3NpYTo6
R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAg
KE5pY29zaWE6OkdDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OmRlZmF1bHRGcmFtZUJ1ZmZl
clNpemUpOgorICAgICAgICAoTmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6
c3dhcEludGVydmFsKToKKyAgICAgICAgKE5pY29zaWE6OkdDM0RBTkdMRUxheWVyOjpBTkdMRUNv
bnRleHQ6OnN3YXBCdWZmZXJzKToKKyAgICAgICAgKE5pY29zaWE6OkdDM0RBTkdMRUxheWVyOjpB
TkdMRUNvbnRleHQ6OndhaXROYXRpdmUpOgorICAgICAgICAoTmljb3NpYTo6R0MzREFOR0xFTGF5
ZXI6OkdDM0RBTkdMRUxheWVyKToKKyAgICAgICAgKE5pY29zaWE6OkdDM0RBTkdMRUxheWVyOjp+
R0MzREFOR0xFTGF5ZXIpOgorICAgICAgICAoTmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6Om1ha2VD
b250ZXh0Q3VycmVudCk6CisgICAgICAgIChOaWNvc2lhOjpHQzNEQU5HTEVMYXllcjo6cGxhdGZv
cm1Db250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0MzREFOR0xFTGF5ZXIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5jcHA6CisgICAgICAgIChOaWNvc2lh
OjpHQzNETGF5ZXI6OkdDM0RMYXllcik6CisgICAgICAgIChOaWNvc2lhOjpHQzNETGF5ZXI6OnN3
YXBCdWZmZXJzSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
dGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaDoKKyAgICAgICAgKE5pY29zaWE6OkdDM0RMYXllcjo6
Y29udGVudExheWVyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Qml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6
c2V0UGVuZGluZ0NvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6
dXBkYXRlUGVuZGluZ0NvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvQml0bWFwVGV4dHVyZUdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI6OnBhaW50VG9UZXh0dXJl
TWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllclByb3h5OjpwdXNoTmV4dEJ1ZmZlcik6CisKIDIwMTktMTEtMTAgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFN0YWNrIGFsbG9jYXRlIFN0
eWxlUmVzb2x2ZXIgc3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzI2MDdmN2MzZjc5ZDBmODJkY2E2OTU1MzFi
NzMxOWUwMzBlNmRkNy4uN2NmYzE5NTJmMTU1ZWFiNmMxMmQxMDE2NjdhYTFmZWNlZmVhZWUyMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0xMS0xMCAgQ2hhbmdTZW9rIE9oICA8Y2hh
bmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gQWRkIEFOR0xFIGJhY2tlbmQgdG8g
R1RLIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5OTA2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHA6IEV4dGVudGlv
bjNEQU5HTEUgaXMgdXNlZCBpbnN0ZWFkLAorICAgICAgICAgIHdoZXJlIEFOR0xFIGZvciBXZWJH
TCBpcyBlbmFibGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5n
U3RvcmVXYXlsYW5kLmNwcDogQXBwZW5kIGdsIGV4dGVuc2lvbnMgZm9yIEFOR0xFLgorICAgICAg
ICAoV2ViS2l0OjpBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OmNoZWNrUmVxdWlyZW1l
bnRzKToKKwogMjAxOS0xMS0wOSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQ2xpY2t5IE9yYmluZyBzdXBwb3J0LmFwcGxlLmNvbSBjYXRlZ29yaWVzIHNob3dzIGEg
UE5HIGluc3RlYWQgb2YgdGhlIHdlYiBwYWdlIHByZXZpZXcsIHRhcHBpbmcgbG9hZHMgaW1hZ2Ug
YXNzZXQgb25seSBpbnN0ZWFkIG9mIHdlYiBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NNYWtl
TGlzdHMudHh0CmluZGV4IGFiNjkwMmE5NWQxMzAxODQ4NjQyODc3ZmRhMGIxOTkxYjkyZWNlNDgu
LjQzZmRkZjg2ZTJlNWIwY2E2ZjMwNDIxNTFhNGM4ZjI5YTkxMWY5YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL0NNYWtlTGlzdHMudHh0CkBAIC0xMzYsNiArMTM2LDI3IEBAIGVsc2UgKCkKICAg
ICApCiBlbmRpZiAoKQogCitpZiAoVVNFX0FOR0xFX1dFQkdMKQorICAgIFdFQktJVF9DT1BZX0ZJ
TEVTKExpYkdMRVN2MkVudHJ5UG9pbnRzSGVhZGVycworICAgICAgICBERVNUSU5BVElPTiAke0FO
R0xFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vQU5HTEUKKyAgICAgICAgRklMRVMgJHtsaWJnbGVz
djJfZW50cnlfcG9pbnRzX2hlYWRlcnN9CisgICAgICAgIEZMQVRURU5FRAorICAgICkKKworICAg
IGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7QU5HTEVfRlJBTUVXT1JLX0hF
QURFUlNfRElSfS9BTkdMRS9hbmdsZS50aW1lc3RhbXAKKyAgICAgICAgREVQRU5EUyBMaWJHTEVT
djJFbnRyeVBvaW50c0hlYWRlcnMgQU5HTEVXZWJHTEhlYWRlcnMKKyAgICAgICAgQ09NTUFORCBC
VUlMVF9QUk9EVUNUU19ESVI9JHtBTkdMRV9GUkFNRVdPUktfSEVBREVSU19ESVJ9CisgICAgICAg
ICAgICBQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSD1BTkdMRQorICAgICAgICAgICAgJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2FkanVzdC1hbmdsZS1pbmNsdWRlLXBhdGhzLnNoCisgICAg
ICAgIFZFUkJBVElNCisgICAgKQorICAgIGFkZF9jdXN0b21fdGFyZ2V0KEFOR0xFLXdlYmdsLWhl
YWRlcnMKKyAgICAgICAgREVQRU5EUyAke0FOR0xFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vQU5H
TEUvYW5nbGUudGltZXN0YW1wCisgICAgKQorICAgIGFkZF9kZXBlbmRlbmNpZXMoQU5HTEVGcmFt
ZXdvcmsgQU5HTEUtd2ViZ2wtaGVhZGVycykKK2VuZGlmICgpCisKIGlmIChDT01QSUxFUl9JU19H
Q0NfT1JfQ0xBTkcpCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKEFOR0xFIC1Xbm8t
Y2FzdC1hbGlnbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25vLXN1
Z2dlc3QtYXR0cmlidXRlPWZvcm1hdApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvR0xFU3YyLmNtYWtlIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvR0xFU3YyLmNtYWtlCmlu
ZGV4IGU0YmU2MjU5NWEwZmVhOWIzOWFjZGNjZWIzY2Y4ZmZjOTI2ZmNmZWEuLmFhNWNjM2M4Yjc5
N2Y5YjJlN2MwMDJjNGRmODk4YzE3OWM5YTdkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL0dMRVN2Mi5jbWFrZQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9HTEVT
djIuY21ha2UKQEAgLTExMDEsNiArMTEwMSwxMyBAQCBzZXQobGliZ2xlc3YyX3NvdXJjZXMKICAg
ICBzcmMvbGliR0xFU3YyL3Jlc291cmNlLmgKICkKIAorc2V0KGxpYmdsZXN2Ml9lbnRyeV9wb2lu
dHNfaGVhZGVycworICAgIHNyYy9saWJHTEVTdjIvZW50cnlfcG9pbnRzX2VnbC5oCisgICAgc3Jj
L2xpYkdMRVN2Mi9lbnRyeV9wb2ludHNfZ2xlc18yXzBfYXV0b2dlbi5oCisgICAgc3JjL2xpYkdM
RVN2Mi9lbnRyeV9wb2ludHNfZ2xlc18zXzBfYXV0b2dlbi5oCisgICAgc3JjL2xpYkdMRVN2Mi9l
bnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5oCispCisKIHNldChsaWJnbGVzdjFfY21fc291
cmNlcwogICAgIHNyYy9saWJHTEVTdjFfQ00vbGliR0xFU3YxX0NNLmNwcAogICAgIHNyYy9saWJH
TEVTdjFfQ00vbGliR0xFU3YxX0NNLmRlZgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9QbGF0Zm9y
bUdUSy5jbWFrZQppbmRleCBlMzVjZGIxNzY4MDI2MDhmNTM3M2NmMDFlZGU0MTIwNTg1MzJiYTBh
Li4zM2U0YzYwNDBlMDljMWVkZTcwMzU5ZGRmMDIzY2U1NjMwMjJkNTg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTMsMyArMTMsMjcgQEAgZWxzZWlm
IChOT1QgRU5BQkxFX1gxMV9UQVJHRVQpCiAgICAgIyBBbGxvdyBidWlsZGluZyBBTkdMRSBvbiBw
bGF0Zm9ybXMgd2hpY2ggbWF5IG5vdCBwcm92aWRlIFgxMSBoZWFkZXJzLgogICAgIGxpc3QoQVBQ
RU5EIEFOR0xFX0RFRklOSVRJT05TIFVTRV9TWVNURU1fRUdMKQogZW5kaWYgKCkKKworaWYgKFVT
RV9BTkdMRV9FR0wpCisgICAgbGlzdChBUFBFTkQgQU5HTEVfU09VUkNFUworICAgICAgICAke2Fu
Z2xlX3N5c3RlbV91dGlsc19zb3VyY2VzX2xpbnV4fQorICAgICAgICAke2FuZ2xlX3N5c3RlbV91
dGlsc19zb3VyY2VzX3Bvc2l4fQorICAgICAgICAke2xpYmFuZ2xlX2dsX3NvdXJjZXN9CisgICAg
ICAgICR7bGliYW5nbGVfZ2xfZ2x4X3NvdXJjZXN9CisgICAgKQorCisgICAgbGlzdChBUFBFTkQg
QU5HTEVfREVGSU5JVElPTlMKKyAgICAgICAgQU5HTEVfRU5BQkxFX09QRU5HTAorICAgICAgICBB
TkdMRV9VU0VfWDExCisgICAgKQorCisgICAgbGlzdChBUFBFTkQgQU5HTEVHTEVTdjJfTElCUkFS
SUVTCisgICAgICAgIGRsCisgICAgICAgIHB0aHJlYWQKKyAgICAgICAgWDExCisgICAgKQorCisg
ICAgc3RyaW5nKFJFUExBQ0Ugc3JjL2xpYkdMRVN2Mi9saWJHTEVTdjJfYXV0b2dlbi5jcHAgIiIg
bGliZ2xlc3YyX3NvdXJjZXMgIiR7bGliZ2xlc3YyX3NvdXJjZXN9IikKKyAgICBzdHJpbmcoUkVQ
TEFDRSBzcmMvbGliRUdML2xpYkVHTC5jcHAgIiIgbGliZWdsX3NvdXJjZXMgIiR7bGliZWdsX3Nv
dXJjZXN9IikKK2VuZGlmICgpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L2FkanVzdC1hbmdsZS1pbmNsdWRlLXBhdGhzLnNoIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
YWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0aHMuc2gKaW5kZXggZmFkOWJhMDg3OTgyNmY4ODZkMjZj
ODZlZDBmOGI2MmMwMTk5MThiYy4uMTdmYTdmZTk0OWY5ODMzOTMxMzViYjQ2MmZjOTUwZmI5Yzg2
OGJmNSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvYWRqdXN0LWFuZ2xlLWlu
Y2x1ZGUtcGF0aHMuc2gKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvYWRqdXN0LWFuZ2xl
LWluY2x1ZGUtcGF0aHMuc2gKQEAgLTI3LDYgKzI3LDEyIEBAIGVsc2UKICAgICBvdXRwdXRfZGly
PSRCVUlMVF9QUk9EVUNUU19ESVIvJFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRICiBmaQogCitp
ZiBbICQodW5hbWUpID09ICJMaW51eCIgXTsgdGhlbgorICAgIGlucGxhY2Vfb3B0PSItaSIKK2Vs
c2UKKyAgICBpbnBsYWNlX29wdD0iLWkgJyciCitmaQorCiBmb3IgaSBpbiAkb3V0cHV0X2Rpci8q
LmggOyBkbwogICAgIGlmIFsgISAtZiAkb3V0cHV0X2Rpci9hbmdsZS50aW1lc3RhbXAgXSB8fCBb
ICRpIC1udCAkb3V0cHV0X2Rpci9hbmdsZS50aW1lc3RhbXAgXSA7IHRoZW4KICAgICAgICAgc2Vk
IC1lICcKQEAgLTM3LDcgKzQzLDcgQEAgcy9eI2luY2x1ZGUgWzwiXUdMRVMzXC9cKC4qXClbPiJd
LyNpbmNsdWRlIDxBTkdMRVwvXDE+Lwogcy9eI2luY2x1ZGUgWzwiXUtIUlwvXCguKlwpWz4iXS8j
aW5jbHVkZSA8QU5HTEVcL1wxPi8KIHMvXiNpbmNsdWRlIFs8Il1leHBvcnQuaFs+Il0vI2luY2x1
ZGUgPEFOR0xFXC9leHBvcnQuaD4vCiBzL14jaW5jbHVkZSAiXChlZ2xleHRfYW5nbGVcfGdsMmV4
dF9hbmdsZVx8U2hhZGVyVmFyc1wpLmgiLyNpbmNsdWRlIDxBTkdMRVwvXDEuaD4vCi0nIC1pICIi
ICRpCisnICRpbnBsYWNlX29wdCAkaQogICAgICAgICBlY2hvIFBvc3Rwcm9jZXNzZWQgQU5HTEUg
aGVhZGVyMyAkaQogICAgIGZpCiBkb25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5j
bHVkZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmODRlZWM3NTFhYmNhODlkOWVjMjQ3Y2YxMWI5NDE4
Yzk5ZjE2NGIxLi5mYzAwMjkxYTQzNzdjN2E2ZmJhZGNjZDYxN2VmNGU2ZGRlODI0OGRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvQ01ha2VMaXN0cy50eHQKQEAgLTQ5
LDYgKzQ5LDIzIEBAIGlmIChVU0VfQU5HTEVfRUdMKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChV
U0VfQU5HTEVfV0VCR0wpCisgICAgc2V0KEFOR0xFX1dFQkdMX0hFQURFUlMKKyAgICAgICAgZXhw
b3J0LmgKKyAgICAgICAgJHtraHJfaGVhZGVyc30KKyAgICAgICAgJHtlZ2xfaGVhZGVyc30KKyAg
ICAgICAgJHtnbGVzX2hlYWRlcnN9CisgICAgICAgICR7Z2xlczJfaGVhZGVyc30KKyAgICAgICAg
JHtnbGVzM19oZWFkZXJzfQorICAgICkKKworICAgIFdFQktJVF9DT1BZX0ZJTEVTKEFOR0xFV2Vi
R0xIZWFkZXJzCisgICAgICAgIERFU1RJTkFUSU9OICR7QU5HTEVfRlJBTUVXT1JLX0hFQURFUlNf
RElSfS9BTkdMRQorICAgICAgICBGSUxFUyAke0FOR0xFX1dFQkdMX0hFQURFUlN9CisgICAgICAg
IEZMQVRURU5FRAorICAgICkKK2VuZGlmICgpCisKICMgQ29jb2EgZXhwZWN0cyBoZWFkZXJzIGlu
IGFuIEFOR0xFIGRpcmVjdG9yeQogV0VCS0lUX0NPUFlfRklMRVMoR0xTTEFOR0hlYWRlcnMKICAg
ICBERVNUSU5BVElPTiAke0FOR0xFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vQU5HTEUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCmluZGV4IDIxNTgwNmQwOGQwMGY0MDIyNzc2M2UxMGZlMDU2YWJiNjI4Yjg4NjMuLjZkNjJk
MGRlOTFmNzAyMTUzZGZmNWEzODllNDkyYTRmNGM3Mzc1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTE0
Niw3ICsxMTQ2LDcgQEAKICNkZWZpbmUgVVNFX0FOR0xFIDAKICNlbmRpZgogCi0jaWYgKFVTRV9B
TkdMRSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZpbmVkKFVTRV9FR0wp
ICYmIFVTRV9FR0wpKSkKKyNpZiAoVVNFX0FOR0xFICYmIChVU0VfT1BFTkdMIHx8IFVTRV9PUEVO
R0xfRVMgfHwgKGRlZmluZWQoVVNFX0VHTCkgJiYgVVNFX0VHTCkpKSAmJiAhVVNFKFRFWFRVUkVf
TUFQUEVSKQogI2Vycm9yIFVTRV9BTkdMRSBpcyBpbmNvbXBhdGlibGUgd2l0aCBVU0VfT1BFTkdM
LCBVU0VfT1BFTkdMX0VTIGFuZCBVU0VfRUdMCiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKaW5kZXggNDllOTRkZWYxMjkxYjdkZTBiNjFkMzgwNjAxY2ZmNzZkZWYyNWQ0Ny4uYmFhYjQ5
YWMyMGZlNjRiNGFjYjllMDQwNjRkN2NlYjhiYTE5M2NmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBA
IC0xMTIwLDYgKzExMjAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhDYWNoZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvV2luZFJ1bGUuaAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uczNE
QU5HTEUuaAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDc4N2Y0OWNjZTA2MzI4OWRhZWIwZTBkMjZjNGE0
YWM2OTJhNDljMGEuLmEzMGE1NDVjYzYzNTE0MzFlOTM2OTc4NjJmYTM4OWIwZjk2OTNlN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0zNiw2ICszNiwxMiBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS90ZXh0L2d0ayIKICkKIAoraWYgKFVTRV9BTkdMRV9XRUJHTCkKKyAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUiCisgICAgKQorZW5kaWYgKCkKKwogaWYg
KFVTRV9XUEVfUkVOREVSRVIpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVD
VE9SSUVTCiAgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9saWJ3cGUi
CkBAIC0xMTcsMjAgKzEyMywzOCBAQCBpZiAoVVNFX1dQRV9SRU5ERVJFUikKICAgICApCiBlbmRp
ZiAoKQogCi1pZiAoVVNFX09QRU5HTF9FUykKK2lmIChVU0VfT1BFTkdMKQogICAgIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwotICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMRVMuY3BwCi0gICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9P
cGVuR0xTaGltcy5jcHAKICAgICApCiBlbmRpZiAoKQogCi1pZiAoVVNFX09QRU5HTCkKK2lmIChV
U0VfQU5HTEVfV0VCR0wpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCi0gICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAotCi0gICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCi0gICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKKyAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvYW5nbGUvRXh0ZW5zaW9uczNEQU5HTEUuY3BwCisgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCisgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2FuZ2xlL1RlbXBvcmFyeUFOR0xFU2V0dGluZy5jcHAKICAgICApCitlbHNl
ICgpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCisgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKyAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RlbXBvcmFyeU9wZW5HTFNldHRpbmcuY3Bw
CisgICAgKQorCisgICAgaWYgKFVTRV9PUEVOR0xfRVMpCisgICAgICAgIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUworICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTEVTLmNwcAorICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCisgICAgICAgICkKKyAgICBlbmRpZiAoKQor
CisgICAgaWYgKFVTRV9PUEVOR0wpCisgICAgICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UworICAgICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5H
TC5jcHAKKyAgICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHQzRE9wZW5HTC5jcHAKKyAgICAgICAgKQorICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCiBpZiAo
RU5BQkxFX1dBWUxBTkRfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0dUSy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRleCA3MDA2Njk2MGJj
OTk3NWNlZTJmZTNkZjZhNzA2NGU4NWRiNzBhZTdiLi5jMmMyNzA5Yjg3OWE4Mzg2OTI4OWZlMjg3
MTM1N2NkZTYyNmExYWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAtOTIsMTAgKzkyLDYgQEAg
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCiAKIHBs
YXRmb3JtL2dyYXBoaWNzL2xpYndwZS9QbGF0Zm9ybURpc3BsYXlMaWJXUEUuY3BwCiAKLXBsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCi1wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCi1wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9yYXJ5T3BlbkdMU2V0dGluZy5jcHAKLQogcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuY3BwCiAKIHBsYXRmb3Jt
L2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCmluZGV4IDRmM2Q2ZWFiNWQ3MmZjOTVj
MjBhNDUzYWNlYjU5ZDRjM2Q0YWRhMjYuLjM1M2MxNDFkZGE3OTQ5NjAxN2I2YWI0ZmZmOWU0M2Q0
NDA3ZGJiNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHR1cmVNYXBw
ZXIuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFr
ZQpAQCAtMTE1LDMgKzExNSw5IEBAIGVsc2UgKCkKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHAKICAgICApCiBlbmRpZiAo
KQorCitpZiAoVVNFX0FOR0xFX1dFQkdMKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFO
R0xFTGF5ZXIuY3BwCisgICAgKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCmluZGV4IGQ0YTYwYmEyM2M2ZGFk
YzNlYjUxZTAzYzYwOGJlNWFiOGJkYzZjMWEuLmQxNGVjNGZmOTFhNTA1MGM3ODUwMjA5MmY1YjE4
Y2E2Y2Q2NjY2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0FOR0xFV2ViS2l0QnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQU5HTEVXZWJLaXRCcmlkZ2UuaApAQCAtMzYsMTQgKzM2LDE0IEBACiAjaW5jbHVkZSA8QU5H
TEUvU2hhZGVyTGFuZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYg
UExBVEZPUk0oQ09DT0EpCisjaWYgVVNFKEFOR0xFKQorI2luY2x1ZGUgPEFOR0xFL2dsMi5oPgog
CisjZWxpZiBQTEFURk9STShDT0NPQSkKICNpZiBVU0UoT1BFTkdMX0VTKQogI2ltcG9ydCA8T3Bl
bkdMRVMvRVMyL2dsZXh0Lmg+CiAjZWxpZiBVU0UoT1BFTkdMKQogI2luY2x1ZGUgPE9wZW5HTC9n
bC5oPgotI2VsaWYgVVNFKEFOR0xFKQotI2luY2x1ZGUgPEFOR0xFL2dsMi5oPgogI2Vsc2UKICNl
cnJvciBVbnN1cHBvcnRlZCBjb25maWd1cmF0aW9uCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCmluZGV4IDFlNDY3ODNhMDdmYWQ4MzYy
NmY3NTIwNzQ2ZGMyZmRkNGVhZThjMGQuLjI3ZmIyMDYyNzNjYTA1OGQxZjkzMTNlNzE2YmU3NGI4
YjhiMTk5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250
ZXh0LmNwcApAQCAtMjYsMTIgKzI2LDYgQEAKICNpbmNsdWRlICJHTENvbnRleHRFR0wuaCIKICNl
bmRpZgogCi0jaWYgVVNFKExJQkVQT1hZKQotI2luY2x1ZGUgPGVwb3h5L2dsLmg+Ci0jZWxpZiBV
U0UoT1BFTkdMX0VTKQotI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgotI2VuZGlmCi0KICNpZiBVU0Uo
R0xYKQogI2luY2x1ZGUgIkdMQ29udGV4dEdMWC5oIgogI2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCmluZGV4IGI0
YTI2NzBiMjRhYTZjNzcwYTYyNTkyOTY4MzMwYzFlNzc4NDY0ODYuLjlhNDRlZmNhMTEyMDQ3MzA0
Nzc5ZGQ3YmE4YzViNzA5Yjg2N2U4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dMQ29udGV4dC5oCkBAIC0yMCwxMSArMjAsMTYgQEAKICNpZm5kZWYgR0xDb250ZXh0
X2gKICNkZWZpbmUgR0xDb250ZXh0X2gKIAotI2luY2x1ZGUgIkFOR0xFV2ViS2l0QnJpZGdlLmgi
CiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCisjaWYgVVNFKExJQkVQT1hZKQorI2luY2x1ZGUg
PGVwb3h5L2dsLmg+CisjZWxpZiBVU0UoT1BFTkdMX0VTKQorI2luY2x1ZGUgPEdMRVMyL2dsMi5o
PgorI2VuZGlmCisKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZPUk0oR1RLKQogI2lmIFBMQVRGT1JN
KFdQRSkKIC8vIEZJWE1FOiBGb3Igbm93IGRlZmF1bHQgdG8gdGhlIEdCTSBFR0wgcGxhdGZvcm0s
IGJ1dCB0aGlzIHNob3VsZCByZWFsbHkgYmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDhhZGI2MzZiOTdiNjY4NzI0
OTlhZTZlMTdhNGFkNzc4NTA2YzY0ZGQuLjYxOWZiNGFiYzBiMmU3MzA3NDE3NTQzNzJlMDRlYTVh
OWQ4NTUyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMTAxLDEyICsxMDEsMTIgQEAgY29uc3QgUGxhdGZvcm0z
RE9iamVjdCBOdWxsUGxhdGZvcm0zRE9iamVjdCA9IDA7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEV4dGVuc2lvbnMzRDsKLSNpZiAhUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xf
RVMpCisjaWYgVVNFKEFOR0xFKQorY2xhc3MgRXh0ZW5zaW9uczNEQU5HTEU7CisjZWxpZiAhUExB
VEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpCiBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0xF
UzsKICNlbGlmIFVTRShPUEVOR0wpIHx8IChQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9F
UykpCiBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0w7Ci0jZWxpZiBVU0UoQU5HTEUpCi1jbGFzcyBF
eHRlbnNpb25zM0RBTkdMRTsKICNlbmRpZgogY2xhc3MgSG9zdFdpbmRvdzsKIGNsYXNzIEltYWdl
OwpAQCAtMTQ1Niw3ICsxNDU2LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNo
YWRlck5hbWVIYXNoPiBuYW1lSGFzaE1hcEZvclNoYWRlcnM7CiAjZW5kaWYgLy8gIVVTRShBTkdM
RSkKIAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKKyNpZiBVU0UoQU5H
TEUpCisgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMzREFOR0xFOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxFeHRlbnNpb25zM0RBTkdMRT4gbV9leHRlbnNpb25zOworI2VsaWYgIVBMQVRGT1JNKENP
Q09BKSAmJiBVU0UoT1BFTkdMX0VTKQogICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVu
R0xFUzsKICAgICBmcmllbmQgY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0xFUz4gbV9leHRlbnNpb25zOwpAQCAtMTQ2
NCw5ICsxNDY3LDYgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgRXh0ZW5zaW9uczNET3Bl
bkdMOwogICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0xDb21tb247CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzRE9wZW5HTD4gbV9leHRlbnNpb25zOwotI2VsaWYgVVNF
KEFOR0xFKQotICAgIGZyaWVuZCBjbGFzcyBFeHRlbnNpb25zM0RBTkdMRTsKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8RXh0ZW5zaW9uczNEQU5HTEU+IG1fZXh0ZW5zaW9uczsKICNlbmRpZgogCiAgICAg
R3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIG1fYXR0cnM7CkBAIC0xNDkyLDcgKzE0OTIsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9sYXllckNvbXBvc2l0ZWQgeyBmYWxzZSB9OwogICAgIEdD
M0R1aW50IG1faW50ZXJuYWxDb2xvckZvcm1hdCB7IDAgfTsKIAotI2lmIFVTRShBTkdMRSkKKyNp
ZiBVU0UoQU5HTEUpICYmIFBMQVRGT1JNKENPQ09BKQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0M0RTdXJmYWNlIG1fcGJ1ZmZlcjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKaW5kZXggZDNjZmQyN2Q1NzFlMzdlNjg3
OTk2NDcyNzAyOTQ0OTFjZmQ3NTNiZC4uZjc5NzZlNjFkZDg1MjQ2ZDJmNGUyNzYyYzhjMTg3ZTA5
OTgwNGRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3Bl
bkdMU2hpbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5H
TFNoaW1zLmNwcApAQCAtMTYyLDYgKzE2Miw3IEBAIGJvb2wgaW5pdGlhbGl6ZU9wZW5HTFNoaW1z
KCkKICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTaGFkZXJJbmZvTG9nLCBz
dWNjZXNzKTsKICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTaGFkZXJpdiwg
c3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0U2hhZGVyU291
cmNlLCBzdWNjZXNzKTsKKyAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTdHJp
bmcsIHN1Y2Nlc3MpOwogICAgIC8vIGdsR2V0U3RyaW5naSBpcyBvbmx5IGF2YWlsYWJsZSBvbiBP
cGVuR0wgb3IgR0xFUyB2ZXJzaW9ucyA+PSAzLjAuCiAgICAgLy8gQWRkIGl0IHdpdGggX0VYVCBz
byBpdCBkb2Vzbid0IGNhdXNlIGFuIGluaXRpYWxpemF0aW9uIGZhaWx1cmUgb24gbG93ZXIgdmVy
c2lvbnMuCiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZX0VYVChnbEdldFN0cmluZ2kp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hp
bXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmgKaW5k
ZXggZGUzMjk1ZGY0MGIzODI0YWRkZmQ0YTU0OGYzZDYxNzIwY2YxMzViNC4uNGMzNTdkZGU5ODFm
MTM2ZjA1OGQ4ODM3MDc4YzQxMzBkNjBkNmE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCkBAIC05OCw2ICs5OCw3IEBAIHR5cGVkZWYgdm9p
ZCAoR0xBUElFTlRSWSAqZ2xHZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXJpdlR5cGUpIChHTGVudW0s
IEdMZW51bSwgR0xpCiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsR2V0U2hhZGVySW5mb0xv
Z1R5cGUpIChHTHVpbnQsIEdMc2l6ZWksIEdMc2l6ZWkqLCBjaGFyKik7CiB0eXBlZGVmIHZvaWQg
KEdMQVBJRU5UUlkgKmdsR2V0U2hhZGVyaXZUeXBlKSAoR0x1aW50LCBHTGVudW0sIEdMaW50Kik7
CiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsR2V0U2hhZGVyU291cmNlVHlwZSkgKEdMdWlu
dCwgR0xzaXplaSwgR0xzaXplaSosIGNoYXIqKTsKK3R5cGVkZWYgY29uc3QgR0x1Ynl0ZSogKEdM
QVBJRU5UUlkgKmdsR2V0U3RyaW5nVHlwZSkgKEdMZW51bSk7CiB0eXBlZGVmIGNvbnN0IEdMdWJ5
dGUqIChHTEFQSUVOVFJZICpnbEdldFN0cmluZ2lUeXBlKSAoR0xlbnVtLCBHTHVpbnQpOwogdHlw
ZWRlZiBHTGludCAoR0xBUElFTlRSWSAqZ2xHZXRVbmlmb3JtTG9jYXRpb25UeXBlKSAoR0x1aW50
LCBjb25zdCBjaGFyKik7CiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsR2V0VW5pZm9ybWZ2
VHlwZSkgKEdMdWludCwgR0xpbnQsIEdMZmxvYXQqKTsKQEAgLTIwNSw2ICsyMDYsNyBAQCB0eXBl
ZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5U
UlkoZ2xHZXRTaGFkZXJJbmZvTG9nKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFNo
YWRlcml2KTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFNoYWRlclNvdXJjZSk7Cisg
ICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTdHJpbmcpOwogICAgIEZVTkNUSU9OX1RBQkxF
X0VOVFJZKGdsR2V0U3RyaW5naSk7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRVbmlm
b3JtZnYpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0VW5pZm9ybWl2KTsKQEAgLTMz
Myw2ICszMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAjZGVm
aW5lIGdsR2V0U2hhZGVySW5mb0xvZyAgICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5D
VElPTihnbEdldFNoYWRlckluZm9Mb2cpCiAjZGVmaW5lIGdsR2V0U2hhZGVyaXYgICAgICAgICAg
ICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFNoYWRlcml2KQogI2RlZmlu
ZSBnbEdldFNoYWRlclNvdXJjZSAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJ
T04oZ2xHZXRTaGFkZXJTb3VyY2UpCisjZGVmaW5lIGdsR2V0U3RyaW5nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFN0cmluZykKICNkZWZpbmUgZ2xH
ZXRTdHJpbmdpICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGds
R2V0U3RyaW5naSkKICNkZWZpbmUgZ2xHZXRVbmlmb3JtZnYgICAgICAgICAgICAgICAgICAgICAg
ICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2V0VW5pZm9ybWZ2KQogI2RlZmluZSBnbEdldFVuaWZv
cm1pdiAgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xHZXRVbmlm
b3JtaXYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1EaXNwbGF5LmNwcAppbmRleCBmOTc4ZGJlMjQwYzg5NjU0MmFjMzU5MGU4MjBmNGUwMmVlYTlj
Y2YwLi4xNTZlNWFhMmI3MzVkZjYxYTFjMTk2NmVkYjMzNmI1ZGMxOWUwZmJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAK
QEAgLTUyLDYgKzUyLDkgQEAKIAogI2lmIFBMQVRGT1JNKEdUSykgJiYgUExBVEZPUk0oWDExKQog
I2luY2x1ZGUgPGdkay9nZGt4Lmg+CisjaWYgZGVmaW5lZChOb25lKQorI3VuZGVmIE5vbmUKKyNl
bmRpZgogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspICYmIFBMQVRGT1JNKFdBWUxBTkQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGlj
c0NvbnRleHQzREFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCmluZGV4IGYxNjFlYTU5NDBhZTFmZTljMTE0
NzY4MDFmNmFjNTkwMmFmNTZmZGEuLjMyNTg2ODM2NjlkZTQzNWEwNzVkMzhiOTc1MzU0NTY3Y2E2
NGNiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCkBAIC02OSw2ICs2OSwx
MSBAQCB0eXBlZGVmIHZvaWQqIEdMZWdsQ29udGV4dDsKIC8vIHdvdWxkIG5lZWQgbW9yZSB3b3Jr
IHRvIGJlIGluY2x1ZGVkIGZyb20gV2ViQ29yZS4KICNkZWZpbmUgR0xfTUFYX1NBTVBMRVNfRVhU
IDB4OEQ1NwogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVIpCisjZGVmaW5lIEdMX0NPTE9SX0FUVEFDSE1FTlQwX0VYVCAweDhDRTAKKyNkZWZpbmUg
R0xfRlJBTUVCVUZGRVJfRVhUIDB4OEQ0MAorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IGNoYXIqIHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbk5hbWUgPSAi
R0xfT0VTX3BhY2tlZF9kZXB0aF9zdGVuY2lsIjsKQEAgLTE5MSw2ICsxOTYsMjAgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBh
bGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKICAg
ICB1cGRhdGVGcmFtZWJ1ZmZlclRleHR1cmVCYWNraW5nU3RvcmVGcm9tTGF5ZXIoKTsKICAgICBn
bDo6RnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1F
TlQwLCBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV90ZXh0dXJlLCAwKTsKKyNlbGlmIFBM
QVRGT1JNKEdUSykKKyAgICBnbDo6QmluZFRleHR1cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5H
TEUsIG1fdGV4dHVyZSk7CisgICAgZ2w6OlRleEltYWdlMkQoR0xfVEVYVFVSRV9SRUNUQU5HTEVf
QU5HTEUsIDAsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgY29sb3JG
b3JtYXQsIEdMX1VOU0lHTkVEX0JZVEUsIDApOworICAgIGdsOjpGcmFtZWJ1ZmZlclRleHR1cmUy
RChHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfUkVDVEFO
R0xFX0FOR0xFLCBtX3RleHR1cmUsIDApOworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
KyAgICBpZiAobV9jb21wb3NpdG9yVGV4dHVyZSkgeworICAgICAgICBnbDo6QmluZFRleHR1cmUo
R0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fY29tcG9zaXRvclRleHR1cmUpOworICAgICAg
ICBnbDo6VGV4SW1hZ2UyRChHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgMCwgbV9pbnRlcm5h
bENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBjb2xvckZvcm1hdCwgR0xfVU5TSUdORURf
QllURSwgMCk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9B
TkdMRSwgMCk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9B
TkdMRSwgbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsKKyAgICAgICAgZ2w6OlRleEltYWdlMkQoR0xf
VEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIDAsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgs
IGhlaWdodCwgMCwgY29sb3JGb3JtYXQsIEdMX1VOU0lHTkVEX0JZVEUsIDApOworICAgICAgICBn
bDo6QmluZFRleHR1cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIDApOworICAgIH0KKyNl
bmRpZgogI2Vsc2UKICNlcnJvciBGSVhNRTogUG9ydCB0byBub24tQ29jb2EgcGxhdGZvcm1zLgog
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpAQCAtNDc2LDcgKzQ5NSwyMCBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSgpCiAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFz
KQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCisgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9jb21wb3Np
dG9yVGV4dHVyZSk7CisgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9pbnRlcm1lZGlhdGVUZXh0
dXJlKTsKKyAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7Cisg
ICAgZ2w6OkZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRB
Q0hNRU5UMCwgR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fdGV4dHVyZSwgMCk7CisgICAg
Z2w6OkZsdXNoKCk7CisKKyAgICBpZiAobV9zdGF0ZS5ib3VuZEZCTyAhPSBtX2ZibykKKyAgICAg
ICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1f
c3RhdGUuYm91bmRGQk8pOworICAgIGVsc2UKKyAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKKyNlbHNlCiAgICAgZ2w6OkZs
dXNoKCk7CisjZW5kaWYKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmlu
Z1Jlc3VsdHModW5zaWduZWQgY2hhciAqcGl4ZWxzLCBpbnQgcGl4ZWxzU2l6ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29z
aWFHQzNEQU5HTEVMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhODU2
ZDUwNTRjNDlhYjUxOTc4NjY3YTcwN2FlNjdiYTY5ZDJkYWYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0Mz
REFOR0xFTGF5ZXIuY3BwCkBAIC0wLDAgKzEsMjU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgsIDIwMTkg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2Ns
YWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZAorICogICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBIT0xERVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJOaWNvc2lhR0MzREFOR0xFTGF5ZXIuaCIKKworI2lmIFVTRShO
SUNPU0lBKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5LmgiCisKKyNkZWZpbmUgRUdMX0VHTF9QUk9UT1RZUEVT
IDAKKy8vIFNraXAgdGhlIGluY2x1c2lvbiBvZiBBTkdMRSdzIGV4cGxpY2l0IGNvbnRleHQgZW50
cnkgcG9pbnRzIGZvciBub3cuCisjZGVmaW5lIEdMX0FOR0xFX2V4cGxpY2l0X2NvbnRleHQKKyNk
ZWZpbmUgR0xfQU5HTEVfZXhwbGljaXRfY29udGV4dF9nbGVzMQordHlwZWRlZiB2b2lkKiBHTGVn
bENvbnRleHQ7CisjaW5jbHVkZSA8QU5HTEUvZWdsLmg+CisjaW5jbHVkZSA8QU5HTEUvZWdsZXh0
Lmg+CisjaW5jbHVkZSA8QU5HTEUvZWdsZXh0X2FuZ2xlLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50
cnlfcG9pbnRzX2VnbC5oPgorI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19nbGVzXzJfMF9h
dXRvZ2VuLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4u
aD4KKyNpbmNsdWRlIDxBTkdMRS9nbDJleHQuaD4KKyNpbmNsdWRlIDxBTkdMRS9nbDJleHRfYW5n
bGUuaD4KKworbmFtZXNwYWNlIE5pY29zaWEgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworY29uc3QgY2hhciogR0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6ZXJyb3JTdHJpbmco
aW50IHN0YXR1c0NvZGUpCit7CisgICAgc3RhdGljX2Fzc2VydChzaXplb2YoaW50KSA+PSBzaXpl
b2YoRUdMaW50KSwgIkVHTGludCBtdXN0IG5vdCBiZSB3aWRlciB0aGFuIGludCIpOworICAgIHN3
aXRjaCAoc3RhdHVzQ29kZSkgeworI2RlZmluZSBDQVNFX1JFVFVSTl9TVFJJTkcobmFtZSkgY2Fz
ZSBuYW1lOiByZXR1cm4gI25hbWUKKyAgICAgICAgLy8gaHR0cHM6Ly93d3cua2hyb25vcy5vcmcv
cmVnaXN0cnkvRUdML3Nkay9kb2NzL21hbi9odG1sL2VnbEdldEVycm9yLnhodG1sCisgICAgICAg
IENBU0VfUkVUVVJOX1NUUklORyhFR0xfU1VDQ0VTUyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NU
UklORyhFR0xfTk9UX0lOSVRJQUxJWkVEKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVH
TF9CQURfQUNDRVNTKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQUxMT0Mp
OworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9BVFRSSUJVVEUpOworICAgICAg
ICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9DT05URVhUKTsKKyAgICAgICAgQ0FTRV9SRVRV
Uk5fU1RSSU5HKEVHTF9CQURfQ09ORklHKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVH
TF9CQURfQ1VSUkVOVF9TVVJGQUNFKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9C
QURfRElTUExBWSk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX1NVUkZBQ0Up
OworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9NQVRDSCk7CisgICAgICAgIENB
U0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX1BBUkFNRVRFUik7CisgICAgICAgIENBU0VfUkVUVVJO
X1NUUklORyhFR0xfQkFEX05BVElWRV9QSVhNQVApOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJ
TkcoRUdMX0JBRF9OQVRJVkVfV0lORE9XKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVH
TF9DT05URVhUX0xPU1QpOworI3VuZGVmIENBU0VfUkVUVVJOX1NUUklORworICAgIGRlZmF1bHQ6
IHJldHVybiAiVW5rbm93biBFR0wgZXJyb3IiOworICAgIH0KK30KKworY29uc3QgY2hhciogR0Mz
REFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6bGFzdEVycm9yU3RyaW5nKCkKK3sKKyAgICByZXR1
cm4gZXJyb3JTdHJpbmcoRUdMX0dldEVycm9yKCkpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8R0Mz
REFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dD4gR0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6
Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSkK
K3sKKyAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBFR0xfR2V0RGlzcGxheShFR0xfREVGQVVMVF9E
SVNQTEFZKTsKKyAgICBpZiAoZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBFR0xpbnQgbWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb247Cisg
ICAgaWYgKEVHTF9Jbml0aWFsaXplKGRpc3BsYXksICZtYWpvclZlcnNpb24sICZtaW5vclZlcnNp
b24pID09IEVHTF9GQUxTRSkgeworICAgICAgICBMT0coV2ViR0wsICJFR0xEaXNwbGF5IEluaXRp
YWxpemF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAg
IExPRyhXZWJHTCwgIkFOR0xFIGluaXRpYWxpc2VkIE1ham9yOiAlZCBNaW5vcjogJWQiLCBtYWpv
clZlcnNpb24sIG1pbm9yVmVyc2lvbik7CisKKyAgICBjb25zdCBjaGFyKiBkaXNwbGF5RXh0ZW5z
aW9ucyA9IEVHTF9RdWVyeVN0cmluZyhkaXNwbGF5LCBFR0xfRVhURU5TSU9OUyk7CisgICAgTE9H
KFdlYkdMLCAiRXh0ZW5zaW9uczogJXMiLCBkaXNwbGF5RXh0ZW5zaW9ucyk7CisKKyAgICBFR0xD
b25maWcgY29uZmlnOworICAgIEVHTGludCBjb25maWdBdHRyaWJ1dGVzW10gPSB7CisgICAgICAg
IEVHTF9SRU5ERVJBQkxFX1RZUEUsIEVHTF9PUEVOR0xfRVMyX0JJVCwKKyAgICAgICAgRUdMX1JF
RF9TSVpFLCA4LAorICAgICAgICBFR0xfR1JFRU5fU0laRSwgOCwKKyAgICAgICAgRUdMX0JMVUVf
U0laRSwgOCwKKyAgICAgICAgRUdMX0FMUEhBX1NJWkUsIDgsCisgICAgICAgIEVHTF9TVVJGQUNF
X1RZUEUsIEVHTF9QQlVGRkVSX0JJVCwKKyAgICAgICAgRUdMX05PTkUKKyAgICB9OworICAgIEVH
TGludCBudW1iZXJDb25maWdzUmV0dXJuZWQgPSAwOworICAgIEVHTF9DaG9vc2VDb25maWcoZGlz
cGxheSwgY29uZmlnQXR0cmlidXRlcywgJmNvbmZpZywgMSwgJm51bWJlckNvbmZpZ3NSZXR1cm5l
ZCk7CisgICAgaWYgKG51bWJlckNvbmZpZ3NSZXR1cm5lZCAhPSAxKSB7CisgICAgICAgIExPRyhX
ZWJHTCwgIkVHTENvbmZpZyBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKyAgICBMT0coV2ViR0wsICJHb3QgRUdMQ29uZmlnIik7CisKKyAg
ICBFR0xfQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSk7CisgICAgaWYgKEVHTF9HZXRFcnJvcigp
ICE9IEVHTF9TVUNDRVNTKSB7CisgICAgICAgIExPRyhXZWJHTCwgIlVuYWJsZSB0byBiaW5kIHRv
IE9QRU5HTF9FU19BUEkiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAg
c3RkOjp2ZWN0b3I8RUdMaW50PiBjb250ZXh0QXR0cmlidXRlczsKKyAgICBjb250ZXh0QXR0cmli
dXRlcy5wdXNoX2JhY2soRUdMX0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04pOworICAgIGNvbnRleHRB
dHRyaWJ1dGVzLnB1c2hfYmFjaygyKTsKKyAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2so
RUdMX0NPTlRFWFRfV0VCR0xfQ09NUEFUSUJJTElUWV9BTkdMRSk7CisgICAgY29udGV4dEF0dHJp
YnV0ZXMucHVzaF9iYWNrKEVHTF9UUlVFKTsKKyAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2Jh
Y2soRUdMX0VYVEVOU0lPTlNfRU5BQkxFRF9BTkdMRSk7CisgICAgY29udGV4dEF0dHJpYnV0ZXMu
cHVzaF9iYWNrKEVHTF9UUlVFKTsKKyAgICBpZiAoc3Ryc3RyKGRpc3BsYXlFeHRlbnNpb25zLCAi
RUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UiKSkgeworICAgICAgICBjb250ZXh0QXR0cmlidXRl
cy5wdXNoX2JhY2soRUdMX1BPV0VSX1BSRUZFUkVOQ0VfQU5HTEUpOworICAgICAgICAvLyBFR0xf
TE9XX1BPV0VSX0FOR0xFIGlzIHRoZSBkZWZhdWx0LiBDaGFuZ2UgdG8KKyAgICAgICAgLy8gRUdM
X0hJR0hfUE9XRVJfQU5HTEUgaWYgZGVzaXJlZC4KKyAgICAgICAgY29udGV4dEF0dHJpYnV0ZXMu
cHVzaF9iYWNrKEVHTF9MT1dfUE9XRVJfQU5HTEUpOworICAgIH0KKyAgICBjb250ZXh0QXR0cmli
dXRlcy5wdXNoX2JhY2soRUdMX05PTkUpOworCisgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gRUdM
X0NyZWF0ZUNvbnRleHQoZGlzcGxheSwgY29uZmlnLCBFR0xfTk9fQ09OVEVYVCwgY29udGV4dEF0
dHJpYnV0ZXMuZGF0YSgpKTsKKyAgICBpZiAoY29udGV4dCA9PSBFR0xfTk9fQ09OVEVYVCkgewor
ICAgICAgICBMT0coV2ViR0wsICJFR0xDb250ZXh0IEluaXRpYWxpemF0aW9uIGZhaWxlZC4iKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIExPRyhXZWJHTCwgIkdvdCBFR0xD
b250ZXh0Iik7CisKKyAgICBzdGF0aWMgY29uc3QgaW50IHBidWZmZXJBdHRyaWJ1dGVzW10gPSB7
IEVHTF9XSURUSCwgMSwgRUdMX0hFSUdIVCwgMSwgRUdMX05PTkUgfTsKKyAgICBFR0xTdXJmYWNl
IHN1cmZhY2UgPSBFR0xfQ3JlYXRlUGJ1ZmZlclN1cmZhY2UoZGlzcGxheSwgY29uZmlnLCBwYnVm
ZmVyQXR0cmlidXRlcyk7CisgICAgaWYgKHN1cmZhY2UgPT0gRUdMX05PX1NVUkZBQ0UpIHsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3JlYXRlIEVHTCBQYnVmZmVyIHN1cmZhY2U6ICVz
XG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7CisgICAgICAgIEVHTF9EZXN0cm95Q29udGV4dChkaXNw
bGF5LCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIExPRyhX
ZWJHTCwgIkdvdCBFR0xQYnVmZmVyU3VyZmFjZSIpOworCisgICAgcmV0dXJuIHN0ZDo6dW5pcXVl
X3B0cjxBTkdMRUNvbnRleHQ+KG5ldyBBTkdMRUNvbnRleHQocGxhdGZvcm1EaXNwbGF5LCBkaXNw
bGF5LCBjb250ZXh0LCBzdXJmYWNlLCBTdXJmYWNlbGVzcykpOworfQorCitHQzNEQU5HTEVMYXll
cjo6QU5HTEVDb250ZXh0OjpBTkdMRUNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiBwbGF0Zm9ybURp
c3BsYXksIEVHTERpc3BsYXkgZGlzcGxheSwgRUdMQ29udGV4dCBjb250ZXh0LCBFR0xTdXJmYWNl
IHN1cmZhY2UsIEVHTFN1cmZhY2VUeXBlIHR5cGUpCisgICAgOiBHTENvbnRleHQocGxhdGZvcm1E
aXNwbGF5KQorICAgICwgbV9lZ2xEaXNwbGF5KGRpc3BsYXkpCisgICAgLCBtX2VnbENvbnRleHQo
Y29udGV4dCkKKyAgICAsIG1fZWdsU3VyZmFjZShzdXJmYWNlKQorICAgICwgbV90eXBlKHR5cGUp
Cit7Cit9CisKK0dDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6On5BTkdMRUNvbnRleHQoKQor
eworICAgIGlmIChtX2VnbENvbnRleHQpIHsKKyAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihH
TF9GUkFNRUJVRkZFUiwgMCk7CisgICAgICAgIEVHTF9NYWtlQ3VycmVudChtX2VnbERpc3BsYXks
IEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOworICAgICAg
ICBFR0xfRGVzdHJveUNvbnRleHQobV9lZ2xEaXNwbGF5LCBtX2VnbENvbnRleHQpOworICAgIH0K
KworICAgIGlmIChtX2VnbFN1cmZhY2UpCisgICAgICAgIEVHTF9EZXN0cm95U3VyZmFjZShtX2Vn
bERpc3BsYXksIG1fZWdsU3VyZmFjZSk7Cit9CisKK2Jvb2wgR0MzREFOR0xFTGF5ZXI6OkFOR0xF
Q29udGV4dDo6bWFrZUNvbnRleHRDdXJyZW50KCkKK3sKKyAgICBBU1NFUlQobV9lZ2xDb250ZXh0
KTsKKworICAgIEdMQ29udGV4dDo6bWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgaWYgKEVHTF9H
ZXRDdXJyZW50Q29udGV4dCgpICE9IG1fZWdsQ29udGV4dCkKKyAgICAgICAgcmV0dXJuIEVHTF9N
YWtlQ3VycmVudChtX2VnbERpc3BsYXksIG1fZWdsU3VyZmFjZSwgbV9lZ2xTdXJmYWNlLCBtX2Vn
bENvbnRleHQpOworICAgIHJldHVybiB0cnVlOworfQorCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEIEdDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpCit7Cisg
ICAgcmV0dXJuIG1fZWdsQ29udGV4dDsKK30KKworSW50U2l6ZSBHQzNEQU5HTEVMYXllcjo6QU5H
TEVDb250ZXh0OjpkZWZhdWx0RnJhbWVCdWZmZXJTaXplKCkKK3sKKyAgICBpZiAoIWNhblJlbmRl
clRvRGVmYXVsdEZyYW1lYnVmZmVyKCkpCisgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAg
ICBFR0xpbnQgd2lkdGgsIGhlaWdodDsKKyAgICBpZiAoIUVHTF9RdWVyeVN1cmZhY2UobV9lZ2xE
aXNwbGF5LCBtX2VnbFN1cmZhY2UsIEVHTF9XSURUSCwgJndpZHRoKQorICAgICAgICB8fCAhRUdM
X1F1ZXJ5U3VyZmFjZShtX2VnbERpc3BsYXksIG1fZWdsU3VyZmFjZSwgRUdMX0hFSUdIVCwgJmhl
aWdodCkpCisgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAgICByZXR1cm4gSW50U2l6ZSh3
aWR0aCwgaGVpZ2h0KTsKK30KKwordm9pZCBHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0Ojpz
d2FwSW50ZXJ2YWwoaW50IGludGVydmFsKQoreworICAgIEFTU0VSVChtX3N1cmZhY2UpOworICAg
IEVHTF9Td2FwSW50ZXJ2YWwobV9lZ2xEaXNwbGF5LCBpbnRlcnZhbCk7Cit9CisKK3ZvaWQgR0Mz
REFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6c3dhcEJ1ZmZlcnMoKQoreworICAgIEFTU0VSVCht
X3N1cmZhY2UpOworICAgIEVHTF9Td2FwQnVmZmVycyhtX2VnbERpc3BsYXksIG1fZWdsU3VyZmFj
ZSk7Cit9CisKK3ZvaWQgR0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6d2FpdE5hdGl2ZSgp
Cit7CisgICAgRUdMX1dhaXROYXRpdmUoRUdMX0NPUkVfTkFUSVZFX0VOR0lORSk7Cit9CisKK0dD
M0RBTkdMRUxheWVyOjpHQzNEQU5HTEVMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCwg
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorICAgIDogR0MzRExh
eWVyKGNvbnRleHQpCit7CisgICAgc3dpdGNoIChyZW5kZXJTdHlsZSkgeworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbjoKKyAgICAgICAgbV9nbENvbnRleHQgPSBB
TkdMRUNvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoUGxhdGZvcm1EaXNwbGF5OjpzaGFy
ZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitHQzNEQU5HTEVM
YXllcjo6fkdDM0RBTkdMRUxheWVyKCkKK3sKK30KKworYm9vbCBHQzNEQU5HTEVMYXllcjo6bWFr
ZUNvbnRleHRDdXJyZW50KCkKK3sKKyAgICBBU1NFUlQobV9nbENvbnRleHQpOworICAgIHJldHVy
biBtX2dsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CisKK30KKworUGxhdGZvcm1HcmFw
aGljc0NvbnRleHQzRCBHQzNEQU5HTEVMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkKK3sKKyAgICBB
U1NFUlQobV9nbENvbnRleHQpOworICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1Db250
ZXh0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIE5pY29zaWEKKworI2VuZGlmIC8vIFVTRShOSUNP
U0lBKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFH
QzNEQU5HTEVMYXllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2MzllYjNjNmUzYTJhZjE1ZTE3ZjQ2MDUwODJh
NGJjYTI4NGYxOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuaApAQCAtMCwwICsx
LDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IE1ldHJvbG9naWNhbCBHcm91cCBCLlYu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTgsIDIwMTkgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZAorICogICAgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKE5JQ09TSUEpICYmIFVT
RShURVhUVVJFX01BUFBFUikKKworI2luY2x1ZGUgIkdMQ29udGV4dC5oIgorI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiTmljb3NpYUdDM0RMYXllci5oIgorI2luY2x1
ZGUgPG1lbW9yeT4KKwordHlwZWRlZiB2b2lkICpFR0xDb25maWc7Cit0eXBlZGVmIHZvaWQgKkVH
TENvbnRleHQ7Cit0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7Cit0eXBlZGVmIHZvaWQgKkVHTFN1
cmZhY2U7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEludFNpemU7CitjbGFzcyBHTENv
bnRleHQ7CitjbGFzcyBQbGF0Zm9ybURpc3BsYXk7Cit9CisKK25hbWVzcGFjZSBOaWNvc2lhIHsK
KworY2xhc3MgR0MzREFOR0xFTGF5ZXIgZmluYWwgOiBwdWJsaWMgR0MzRExheWVyIHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjbGFzcyBBTkdMRUNvbnRleHQg
OiBwdWJsaWMgV2ViQ29yZTo6R0xDb250ZXh0IHsKKyAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQU5HTEVDb250ZXh0KTsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBlcnJvclN0cmluZyhpbnQgc3RhdHVzQ29kZSk7CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBsYXN0RXJyb3JTdHJpbmcoKTsKKworICAgICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEFO
R0xFQ29udGV4dD4gY3JlYXRlT2Zmc2NyZWVuQ29udGV4dChXZWJDb3JlOjpQbGF0Zm9ybURpc3Bs
YXkmKTsKKyAgICAgICAgdmlydHVhbCB+QU5HTEVDb250ZXh0KCk7CisgICAgcHJpdmF0ZToKKyAg
ICAgICAgZW51bSBFR0xTdXJmYWNlVHlwZSB7IFBidWZmZXJTdXJmYWNlLCBXaW5kb3dTdXJmYWNl
LCBQaXhtYXBTdXJmYWNlLCBTdXJmYWNlbGVzcyB9OworICAgICAgICBBTkdMRUNvbnRleHQoV2Vi
Q29yZTo6UGxhdGZvcm1EaXNwbGF5JiwgRUdMRGlzcGxheSwgRUdMQ29udGV4dCwgRUdMU3VyZmFj
ZSwgRUdMU3VyZmFjZVR5cGUpOworCisgICAgICAgIHZvaWQgc3dhcEJ1ZmZlcnMoKSBvdmVycmlk
ZTsKKyAgICAgICAgdm9pZCB3YWl0TmF0aXZlKCkgb3ZlcnJpZGU7CisgICAgICAgIFdlYkNvcmU6
OkludFNpemUgZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSgpIG92ZXJyaWRlOworICAgICAgICB2b2lk
IHN3YXBJbnRlcnZhbChpbnQpIG92ZXJyaWRlOworICAgICAgICBib29sIGNhblJlbmRlclRvRGVm
YXVsdEZyYW1lYnVmZmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV90eXBlID09IFdpbmRvd1N1cmZh
Y2U7IH07CisgICAgICAgIGJvb2wgaXNFR0xDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQorI2lmIFVTRShDQUlSTykKKyAgICAgICAgY2Fpcm9fZGV2aWNlX3QqIGNhaXJvRGV2aWNlKCkg
b3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfTsKKyNlbmRpZgorI2lmIEVOQUJMRShHUkFQSElD
U19DT05URVhUXzNEKQorICAgICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3Jt
Q29udGV4dCgpOworI2VuZGlmCisgICAgICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CisK
KyAgICAgICAgRUdMRGlzcGxheSBtX2VnbERpc3BsYXkgeyBudWxscHRyIH07CisgICAgICAgIEVH
TENvbnRleHQgbV9lZ2xDb250ZXh0IHsgbnVsbHB0ciB9OworICAgICAgICBFR0xTdXJmYWNlIG1f
ZWdsU3VyZmFjZSB7IG51bGxwdHIgfTsKKyAgICAgICAgRUdMU3VyZmFjZVR5cGUgbV90eXBlOwor
ICAgIH07CisKKyAgICBHQzNEQU5HTEVMYXllcihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRCYs
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSk7CisgICAgdmlydHVhbCB+
R0MzREFOR0xFTGF5ZXIoKTsKKworICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgb3ZlcnJp
ZGU7CisgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKSBvdmVy
cmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIE5pY29zaWEKKworI2VuZGlmIC8vIFVTRShOSUNP
U0lBKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNE
TGF5ZXIuY3BwCmluZGV4IDlhOWJkNDY4M2IyNjc0MmFmZWNiMTQ5MWY2MTQ0ZjJhNzhjNTk1MmMu
LjJkYzkxNmQwODJkZTljMWM4MTI3NGUyMmRmY2I2NTY3MmM1YWE4MjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNE
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
dGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCkBAIC0zNywxMiArMzcsMjIgQEAKICNpbmNsdWRl
ICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgiCiAjZW5kaWYKIAorI2lmIFVTRShB
TkdMRSkKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2VuZGlmCisKICNpbmNsdWRlICJHTENv
bnRleHQuaCIKIAogbmFtZXNwYWNlIE5pY29zaWEgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAorR0MzRExheWVyOjpHQzNETGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQpCisg
ICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fY29udGVudExheWVyKE5pY29zaWE6OkNv
bnRlbnRMYXllcjo6Y3JlYXRlKE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBs
OjpjcmVhdGVGYWN0b3J5KCp0aGlzKSkpCit7Cit9CisKIEdDM0RMYXllcjo6R0MzRExheWVyKEdy
YXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUg
cmVuZGVyU3R5bGUpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fY29udGVudExh
eWVyKE5pY29zaWE6OkNvbnRlbnRMYXllcjo6Y3JlYXRlKE5pY29zaWE6OkNvbnRlbnRMYXllclRl
eHR1cmVNYXBwZXJJbXBsOjpjcmVhdGVGYWN0b3J5KCp0aGlzKSkpCkBAIC04MiwxMyArOTIsMzgg
QEAgdm9pZCBHQzNETGF5ZXI6OnN3YXBCdWZmZXJzSWZOZWVkZWQoKQogCiAgICAgbV9jb250ZXh0
LnByZXBhcmVUZXh0dXJlKCk7CiAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZShtX2NvbnRleHQubV9j
dXJyZW50V2lkdGgsIG1fY29udGV4dC5tX2N1cnJlbnRIZWlnaHQpOwotICAgIFRleHR1cmVNYXBw
ZXJHTDo6RmxhZ3MgZmxhZ3MgPSBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEZsaXBUZXh0dXJlIHwg
KG1fY29udGV4dC5tX2F0dHJzLmFscGhhID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6
IDApOworICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSBtX2NvbnRleHQubV9hdHRy
cy5hbHBoYSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwOworI2lmIFVTRShBTkdM
RSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZSh0ZXh0dXJlU2l6ZSwgVW5hY2NlbGVyYXRlZCk7CisgICAgaWYgKCFpbWFn
ZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb250ZXh0LnBhaW50UmVuZGVyaW5n
UmVzdWx0c1RvQ2FudmFzKGltYWdlQnVmZmVyLmdldCgpKTsKKyAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlID0gaW1hZ2VCdWZmZXItPmNvcHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSk7CisgICAg
aWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworI2Vsc2UKKyAgICBmbGFncyB8PSBUZXh0dXJl
TWFwcGVyR0w6OlNob3VsZEZsaXBUZXh0dXJlOworI2VuZGlmCiAKICAgICB7CiAgICAgICAgIGF1
dG8mIHByb3h5ID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlcklt
cGw+KG1fY29udGVudExheWVyLT5pbXBsKCkpLnByb3h5KCk7CisjaWYgVVNFKEFOR0xFKQorICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+IGxh
eWVyQnVmZmVyOworICAgICAgICBsYXllckJ1ZmZlciA9IHByb3h5LmdldEF2YWlsYWJsZUJ1ZmZl
cih0ZXh0dXJlU2l6ZSwgbV9jb250ZXh0Lm1faW50ZXJuYWxDb2xvckZvcm1hdCk7CisgICAgICAg
IGlmICghbGF5ZXJCdWZmZXIpIHsKKyAgICAgICAgICAgIGF1dG8gdGV4dHVyZSA9IEJpdG1hcFRl
eHR1cmVHTDo6Y3JlYXRlKFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCksIG1f
Y29udGV4dC5tX2ludGVybmFsQ29sb3JGb3JtYXQpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
Qml0bWFwVGV4dHVyZUdMJj4odGV4dHVyZS5nZXQoKSkuc2V0UGVuZGluZ0NvbnRlbnRzKFdURk1v
dmUoaW1hZ2UpKTsKKyAgICAgICAgICAgIGxheWVyQnVmZmVyID0gbWFrZVVuaXF1ZTxUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4oV1RGTW92ZSh0ZXh0dXJlKSwgZmxhZ3MpOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIGxheWVyQnVmZmVyLT50ZXh0dXJlR0woKS5zZXRQZW5k
aW5nQ29udGVudHMoV1RGTW92ZShpbWFnZSkpOwogCisgICAgICAgIExvY2tIb2xkZXIgaG9sZGVy
KHByb3h5LmxvY2soKSk7CisgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKFdURk1vdmUobGF5
ZXJCdWZmZXIpKTsKKyNlbHNlCiAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5LmxvY2so
KSk7CiAgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXI+KG1fY29udGV4dC5tX2NvbXBvc2l0b3JUZXh0dXJlLCB0ZXh0
dXJlU2l6ZSwgZmxhZ3MsIG1fY29udGV4dC5tX2ludGVybmFsQ29sb3JGb3JtYXQpKTsKKyNlbmRp
ZgogICAgIH0KIAogICAgIG1fY29udGV4dC5tYXJrTGF5ZXJDb21wb3NpdGVkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNv
c2lhR0MzRExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmgKaW5kZXggOWY1NDQ1YmJlMTE4M2NlNzQ4NTU5M2Ni
YmJmMTY1MGVkY2NlNDMyMy4uNzE4ZGE0OWZiMTMyZGFkOGVhMTRiMDVlZGU5YTc0ZTdlMWJjYzA3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDM0RMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaApAQCAtNDMsMTYgKzQzLDE3
IEBAIG5hbWVzcGFjZSBOaWNvc2lhIHsKIGNsYXNzIEdDM0RMYXllciA6IHB1YmxpYyBDb250ZW50
TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKKyAgICBHQzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Qm
KTsKICAgICBHQzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QmLCBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUpOwogICAgIHZpcnR1YWwgfkdDM0RMYXllcigp
OwogCiAgICAgQ29udGVudExheWVyJiBjb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2Nv
bnRlbnRMYXllcjsgfQotICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKTsKKyAgICB2aXJ0dWFsIGJvb2wg
bWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEIHBsYXRmb3JtQ29udGV4dCgpOwogCiAgICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVlZGVkKCkg
b3ZlcnJpZGU7CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0QmIG1fY29udGV4dDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R0xDb250
ZXh0PiBtX2dsQ29udGV4dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcAppbmRleCA3OWIwMDZlMTRk
MWE5ZjMxZDAyZGM3Njc4NzIxZTcxNGIzZGNjY2JiLi5mMmQwZjY0YjNmZjc5ZGNiYTBhNmFlNGM0
Mjg0MDhmODEzMDE4N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcApAQCAtMjYsNyArMjYsNiBA
QAogCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9u
cy5oIgotI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCiAj
aW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgpAQCAt
MTY5LDYgKzE2OCwyNSBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoSW1h
Z2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjbwogICAgIHVwZGF0ZUNvbnRl
bnRzKGltYWdlRGF0YSwgdGFyZ2V0UmVjdCwgb2Zmc2V0LCBieXRlc1BlckxpbmUpOwogfQogCisj
aWYgVVNFKEFOR0xFKQordm9pZCBCaXRtYXBUZXh0dXJlR0w6OnNldFBlbmRpbmdDb250ZW50cyhS
ZWZQdHI8SW1hZ2U+IGltYWdlKQoreworICAgIG1fcGVuZGluZ0NvbnRlbnRzID0gaW1hZ2U7Cit9
CisKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVQZW5kaW5nQ29udGVudHMoY29uc3QgSW50
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIG9mZnNldCkKK3sKKyAgICBpZiAoIW1f
cGVuZGluZ0NvbnRlbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWlzVmFsaWQoKSkg
eworICAgICAgICBJbnRTaXplIHRleHR1cmVTaXplKG1fcGVuZGluZ0NvbnRlbnRzLT5zaXplKCkp
OworICAgICAgICByZXNldCh0ZXh0dXJlU2l6ZSk7CisgICAgfQorICAgIHVwZGF0ZUNvbnRlbnRz
KG1fcGVuZGluZ0NvbnRlbnRzLmdldCgpLCB0YXJnZXRSZWN0LCBvZmZzZXQpOworfQorI2VuZGlm
CisKIHN0YXRpYyB1bnNpZ25lZCBnZXRQYXNzZXNSZXF1aXJlZEZvckZpbHRlcihGaWx0ZXJPcGVy
YXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0
dXJlR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBU
ZXh0dXJlR0wuaAppbmRleCA4NzA5YTgyNTYwYzY0OTg4NzQ4OTM4YjhiODZlMTNiZjUzYTBiZWY2
Li4wMDM3NjhlNjQwMDg4Y2Y2YTA2OGQ0Y2E0Zjc0ZWE3Nzg1ZjdkMmI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1
cmVHTC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQml0bWFwVGV4dHVyZS5oIgogI2lu
Y2x1ZGUgIkNsaXBTdGFjay5oIgogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgorI2luY2x1
ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJDb250ZXh0QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgpAQCAt
NzcsNiArNzgsMTAgQEAgcHVibGljOgogICAgIEdMaW50IGludGVybmFsRm9ybWF0KCkgY29uc3Qg
eyByZXR1cm4gbV9pbnRlcm5hbEZvcm1hdDsgfQogCiAgICAgdm9pZCBjb3B5RnJvbUV4dGVybmFs
VGV4dHVyZShHTHVpbnQgdGV4dHVyZUlEKTsKKyNpZiBVU0UoQU5HTEUpCisgICAgdm9pZCBzZXRQ
ZW5kaW5nQ29udGVudHMoUmVmUHRyPEltYWdlPik7CisgICAgdm9pZCB1cGRhdGVQZW5kaW5nQ29u
dGVudHMoY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIG9mZnNldCk7
CisjZW5kaWYKIAogICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgY29sb3JDb252ZXJ0RmxhZ3Mo
KSBjb25zdCB7IHJldHVybiBtX2NvbG9yQ29udmVydEZsYWdzOyB9CiAKQEAgLTk0LDYgKzk5LDEw
IEBAIHByaXZhdGU6CiAgICAgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzIG1fY29udGV4
dEF0dHJpYnV0ZXM7CiAgICAgVGV4dHVyZU1hcHBlckdMOjpGbGFncyBtX2NvbG9yQ29udmVydEZs
YWdzIHsgVGV4dHVyZU1hcHBlckdMOjpOb0ZsYWcgfTsKIAorI2lmIFVTRShBTkdMRSkKKyAgICBS
ZWZQdHI8SW1hZ2U+IG1fcGVuZGluZ0NvbnRlbnRzIHsgbnVsbHB0ciB9OworI2VuZGlmCisKICAg
ICB2b2lkIGNsZWFySWZOZWVkZWQoKTsKICAgICB2b2lkIGNyZWF0ZUZib0lmTmVlZGVkKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKaW5kZXgg
OGZkM2FkNGY3MmQ3NjRiZDk1ZDIyMGY1ODFlZDJiNzk2Mjg4M2M5Yy4uZmFiODA3YjdkOGMxYTY4
YjU5ZDNhYjcyYmNkNTY4NDJkNTU2M2Q0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29u
dGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKQEAgLTM3LDIxICszNyw1MCBAQAogCiAjaW5jbHVkZSA8
QU5HTEUvU2hhZGVyTGFuZy5oPgogCi0jaWYgVVNFKExJQkVQT1hZKQorI2lmIFVTRShBTkdMRSkK
KyNkZWZpbmUgRUdMX0VHTF9QUk9UT1RZUEVTIDAKKy8vIFNraXAgdGhlIGluY2x1c2lvbiBvZiBB
TkdMRSdzIGV4cGxpY2l0IGNvbnRleHQgZW50cnkgcG9pbnRzIGZvciBub3cuCisjZGVmaW5lIEdM
X0FOR0xFX2V4cGxpY2l0X2NvbnRleHQKKyNkZWZpbmUgR0xfQU5HTEVfZXhwbGljaXRfY29udGV4
dF9nbGVzMQordHlwZWRlZiB2b2lkKiBHTGVnbENvbnRleHQ7CisjaW5jbHVkZSA8QU5HTEUvZWds
Lmg+CisjaW5jbHVkZSA8QU5HTEUvZWdsZXh0Lmg+CisjaW5jbHVkZSA8QU5HTEUvZWdsZXh0X2Fu
Z2xlLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2VnbC5oPgorI2luY2x1ZGUgPEFO
R0xFL2VudHJ5X3BvaW50c19nbGVzXzJfMF9hdXRvZ2VuLmg+CisjaW5jbHVkZSA8QU5HTEUvZW50
cnlfcG9pbnRzX2dsZXNfZXh0X2F1dG9nZW4uaD4KKyNpbmNsdWRlIDxBTkdMRS9nbDJleHQuaD4K
KyNpbmNsdWRlIDxBTkdMRS9nbDJleHRfYW5nbGUuaD4KKyNpZiBkZWZpbmVkKEFib3ZlKQorI3Vu
ZGVmIEFib3ZlCisjZW5kaWYKKyNpZiBkZWZpbmVkKEJlbG93KQorI3VuZGVmIEJlbG93CisjZW5k
aWYKKyNpZiBkZWZpbmVkKE5vbmUpCisjdW5kZWYgTm9uZQorI2VuZGlmCisjZWxpZiBVU0UoTElC
RVBPWFkpCiAjaW5jbHVkZSA8ZXBveHkvZ2wuaD4KICNlbGlmICFVU0UoT1BFTkdMX0VTKQogI2lu
Y2x1ZGUgIk9wZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAotI2lmIFVTRShPUEVOR0xfRVMpCisjaWYg
VVNFKEFOR0xFKQorI2luY2x1ZGUgIkV4dGVuc2lvbnMzREFOR0xFLmgiCisjZWxpZiBVU0UoT1BF
TkdMX0VTKQogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTEVTLmgiCiAjZWxzZQogI2luY2x1
ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgogI2VuZGlmCiAKICNpZiBVU0UoTklDT1NJQSkKKyNp
ZiBVU0UoQU5HTEUpCisjaW5jbHVkZSAiTmljb3NpYUdDM0RBTkdMRUxheWVyLmgiCisjZWxzZQog
I2luY2x1ZGUgIk5pY29zaWFHQzNETGF5ZXIuaCIKICNlbmRpZgorI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNzEsNyArMTAwLDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwog
ICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgc3RhdGljIGJvb2wgc3Vj
Y2VzcyA9IHRydWU7CiAgICAgaWYgKCFpbml0aWFsaXplZCkgewotI2lmICFVU0UoT1BFTkdMX0VT
KSAmJiAhVVNFKExJQkVQT1hZKQorI2lmICFVU0UoT1BFTkdMX0VTKSAmJiAhVVNFKExJQkVQT1hZ
KSAmJiAhVVNFKEFOR0xFKQogICAgICAgICBzdWNjZXNzID0gaW5pdGlhbGl6ZU9wZW5HTFNoaW1z
KCk7CiAjZW5kaWYKICAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwpAQCAtMTAxLDYgKzEzMCw3
OSBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUo
R3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzCiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKKyNp
ZiBVU0UoQU5HTEUpCitHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhp
Y3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0Nv
bnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUsIEdyYXBoaWNzQ29udGV4dDNEKiBzaGFy
ZWRDb250ZXh0KQorICAgIDogbV9hdHRycyhhdHRyaWJ1dGVzKQoreworICAgIEFTU0VSVF9VTlVT
RUQoc2hhcmVkQ29udGV4dCwgIXNoYXJlZENvbnRleHQpOworI2lmIFVTRShOSUNPU0lBKQorICAg
IG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RBTkdMRUxheWVy
PigqdGhpcywgcmVuZGVyU3R5bGUpOworI2Vsc2UKKyAgICBtX3RleG1hcExheWVyID0gV1RGOjpt
YWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcj4oKnRoaXMsIHJlbmRlclN0
eWxlKTsKKyNlbmRpZgorICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOworCisKKyAgICB2YWxpZGF0
ZUF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5kZXJPZmZzY3JlZW4p
IHsKKyAgICAgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KKyAgICAgICAg
Z2w6OkdlblRleHR1cmVzKDEsICZtX3RleHR1cmUpOworICAgICAgICBnbDo6QmluZFRleHR1cmUo
R0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fdGV4dHVyZSk7CisgICAgICAgIGdsOjpUZXhQ
YXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01BR19GSUxU
RVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVD
VEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAg
IGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJF
X1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdM
X1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9f
RURHRSk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdM
RSwgMCk7CisKKyAgICAgICAgLy8gQ3JlYXRlIGFuIEZCTy4KKyAgICAgICAgZ2w6OkdlbkZyYW1l
YnVmZmVycygxLCAmbV9mYm8pOworICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1F
QlVGRkVSLCBtX2Zibyk7CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisgICAgICAg
IGdsOjpHZW5UZXh0dXJlcygxLCAmbV9jb21wb3NpdG9yVGV4dHVyZSk7CisgICAgICAgIGdsOjpC
aW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV9jb21wb3NpdG9yVGV4dHVy
ZSk7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xF
LCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJh
bWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01JTl9GSUxURVIs
IEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFO
R0xFX0FOR0xFLCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgICAg
IGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJF
X1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisKKyAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEs
ICZtX2ludGVybWVkaWF0ZVRleHR1cmUpOworICAgICAgICBnbDo6QmluZFRleHR1cmUoR0xfVEVY
VFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgICAgIGds
OjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01B
R19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJmKEdMX1RFWFRV
UkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Cisg
ICAgICAgIGdsOjpUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9U
RVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgICAgIGdsOjpUZXhQYXJhbWV0
ZXJpKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xB
TVBfVE9fRURHRSk7CisKKyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFO
R0xFX0FOR0xFLCAwKTsKKyNlbmRpZgorCisgICAgICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxl
IEZCTy4KKyAgICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgICAgICAgICBnbDo6
R2VuRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKKyAgICAgICAgICAgIGdsOjpC
aW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOworICAgICAg
ICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CisgICAgICAgICAgICBn
bDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKKyAgICAg
ICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAg
ICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1
ZmZlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBCaW5kIGNhbnZhcyBGQk8u
CisgICAgICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zibyk7
CisgICAgICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9mYm87CisjaWYgVVNFKE9QRU5HTF9F
UykKKyAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGdsOjpH
ZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyKTsKKyAgICAgICAgICAgIGlmIChtX2F0
dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1f
c3RlbmNpbEJ1ZmZlcik7CisjZW5kaWYKKyAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwg
fHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygx
LCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgZ2w6OkNs
ZWFyQ29sb3IoMCwgMCwgMCwgMCk7Cit9CisjZWxzZQogR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBo
aWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0
V2luZG93KiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlLCBHcmFw
aGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKICAgICA6IG1fYXR0cnMoYXR0cmlidXRlcykK
IHsKQEAgLTIyNSw3ICszMjcsNTEgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4
dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKIAogICAgIDo6
Z2xDbGVhckNvbG9yKDAsIDAsIDAsIDApOwogfQorI2VuZGlmCiAKKyNpZiBVU0UoQU5HTEUpCitH
cmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKK3sKKyAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKKyAgICBpZiAobV90ZXh0dXJlKQorICAgICAgICBnbDo6RGVsZXRlVGV4dHVy
ZXMoMSwgJm1fdGV4dHVyZSk7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorICAgIGlm
IChtX2NvbXBvc2l0b3JUZXh0dXJlKQorICAgICAgICBnbDo6RGVsZXRlVGV4dHVyZXMoMSwgJm1f
Y29tcG9zaXRvclRleHR1cmUpOworI2VuZGlmCisKKyAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMp
IHsKKyAgICAgICAgZ2w6OkRlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xv
ckJ1ZmZlcik7CisgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkK
KyAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVw
dGhTdGVuY2lsQnVmZmVyKTsKKyAgICAgICAgZ2w6OkRlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9t
dWx0aXNhbXBsZUZCTyk7CisgICAgfSBlbHNlIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRy
cy5kZXB0aCkgeworI2lmIFVTRShPUEVOR0xfRVMpCisgICAgICAgIGlmIChtX2RlcHRoQnVmZmVy
KQorICAgICAgICAgICAgZ2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyKTsK
KworICAgICAgICBpZiAobV9zdGVuY2lsQnVmZmVyKQorICAgICAgICAgICAgZ2xEZWxldGVSZW5k
ZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOworI2VuZGlmCisgICAgICAgIGlmIChtX2Rl
cHRoU3RlbmNpbEJ1ZmZlcikKKyAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEs
ICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CisgICAgfQorICAgIGdsOjpEZWxldGVGcmFtZWJ1ZmZl
cnMoMSwgJm1fZmJvKTsKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisgICAgZ2w6OkRl
bGV0ZVRleHR1cmVzKDEsICZtX2ludGVybWVkaWF0ZVRleHR1cmUpOworI2VuZGlmCisKKyNpZiBV
U0UoQ0FJUk8pCisgICAgaWYgKG1fdmFvKQorICAgICAgICBkZWxldGVWZXJ0ZXhBcnJheShtX3Zh
byk7CisjZW5kaWYKKworICAgIGF1dG8qIGFjdGl2ZUNvbnRleHQgPSBhY3RpdmVDb250ZXh0cygp
LnRha2VMYXN0KFt0aGlzXShhdXRvKiBpdCkgeworICAgICAgICByZXR1cm4gaXQgPT0gdGhpczsK
KyAgICB9KTsKKyAgICBBU1NFUlRfVU5VU0VEKGFjdGl2ZUNvbnRleHQsICEhYWN0aXZlQ29udGV4
dCk7Cit9CisjZWxzZQogR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiB7
CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CkBAIC0yNjIsOSArNDA4LDEyIEBAIEdyYXBoaWNz
Q29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogICAgICAgICBkZWxldGVWZXJ0ZXhBcnJh
eShtX3Zhbyk7CiAjZW5kaWYKIAotICAgIGF1dG8qIGFjdGl2ZUNvbnRleHQgPSBhY3RpdmVDb250
ZXh0cygpLnRha2VMYXN0KFt0aGlzXShhdXRvKiBpdCkgeyByZXR1cm4gaXQgPT0gdGhpczsgfSk7
CisgICAgYXV0byogYWN0aXZlQ29udGV4dCA9IGFjdGl2ZUNvbnRleHRzKCkudGFrZUxhc3QoW3Ro
aXNdKGF1dG8qIGl0KSB7CisgICAgICAgIHJldHVybiBpdCA9PSB0aGlzOworICAgIH0pOwogICAg
IEFTU0VSVF9VTlVTRUQoYWN0aXZlQ29udGV4dCwgISFhY3RpdmVDb250ZXh0KTsKIH0KKyNlbmRp
ZiAvLyBVU0UoQU5HTEUpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0
Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQogewpAQCAtMzE5
LDcgKzQ2OCw3IEBAIFBsYXRmb3JtTGF5ZXIqIEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxh
eWVyKCkgY29uc3QKICNlbmRpZgogfQogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JN
KEdUSykgJiYgIVVTRShBTkdMRSkKIEV4dGVuc2lvbnMzRCYgR3JhcGhpY3NDb250ZXh0M0Q6Omdl
dEV4dGVuc2lvbnMoKQogewogICAgIGlmICghbV9leHRlbnNpb25zKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcAppbmRleCA1ZWZiMTkwY2I0
ZDI1MzE2N2NjNTQ1ZWNlYjc3ODQ5YjgzZDFiNjRiLi4yZGI4Y2ZiMTNiMTMxZDIxMWYyYjc5N2Q4
YTAwNmZmMmIwNjMwODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllckJ1ZmZlci5jcHAKQEAgLTk3LDYgKzk3LDkgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllckJ1ZmZlcjo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciYgdGV4
dHUKICAgICBpZiAobV9oYXNNYW5hZ2VkVGV4dHVyZSkgewogICAgICAgICBBU1NFUlQobV90ZXh0
dXJlKTsKICAgICAgICAgQml0bWFwVGV4dHVyZUdMKiB0ZXh0dXJlR0wgPSBzdGF0aWNfY2FzdDxC
aXRtYXBUZXh0dXJlR0wqPihtX3RleHR1cmUuZ2V0KCkpOworI2lmIFVTRShBTkdMRSkKKyAgICAg
ICAgdGV4dHVyZUdMLT51cGRhdGVQZW5kaW5nQ29udGVudHMoSW50UmVjdChJbnRQb2ludCgpLCB0
ZXh0dXJlR0wtPmNvbnRlbnRTaXplKCkpLCBJbnRQb2ludCgpKTsKKyNlbmRpZgogICAgICAgICB0
ZXhtYXBHTC5kcmF3VGV4dHVyZSh0ZXh0dXJlR0wtPmlkKCksIG1fZXh0cmFGbGFncyB8IHRleHR1
cmVHTC0+Y29sb3JDb252ZXJ0RmxhZ3MoKSwgdGV4dHVyZUdMLT5zaXplKCksIHRhcmdldFJlY3Qs
IG1vZGVsVmlld01hdHJpeCwgb3BhY2l0eSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKaW5kZXggMzc5
MzY3NWFjOGQ2YjNjMzJhM2IzMTgxOTNlNDlhN2IzN2RjNDg4MC4uMzgxNGY2OGFlNDdhYTViN2Zl
N2Y5YTBiZWNlODQ3MTZhYmNkYjQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllclByb3h5LmNwcApAQCAtMTEzLDYgKzExMywxMiBAQCBib29sIFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmlzQWN0aXZlKCkKIHZvaWQgVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJQcm94eTo6cHVzaE5leHRCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPiBuZXdCdWZmZXIpCiB7CiAgICAgQVNTRVJUKG1fbG9j
ay5pc0hlbGQoKSk7CisjaWYgVVNFKEFOR0xFKQorICAgIC8vIFdoZW4gdGhlIG5ld0J1ZmZlciBv
dmVyd3JpdGVzIG1fcGVuZGluZ0J1ZmZlciB0aGF0IGlzIG5vdCBzd2FwcGVkIHlldCwKKyAgICAv
LyB0aGUgbGF5ZXIgcmVsYXRlZCB0byBtX3BlbmRpbmdCdWZmZXIgaXMgZmxpY2tlcmluZyBzaW5j
ZSBpdHMgdGV4dHVyZSBpcyBkZXN0cm95ZWQuCisgICAgaWYgKG1fcGVuZGluZ0J1ZmZlciAmJiBt
X3BlbmRpbmdCdWZmZXItPmhhc01hbmFnZWRUZXh0dXJlKCkpCisgICAgICAgIHJldHVybjsKKyNl
bmRpZgogICAgIG1fcGVuZGluZ0J1ZmZlciA9IFdURk1vdmUobmV3QnVmZmVyKTsKICAgICBtX3dh
c0J1ZmZlckRyb3BwZWQgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5jcHAKaW5kZXggNTdlOGE1
NTc4NzQzYmUzNWEyOTJhODcyM2E3MmEzMDk0MjEzMjRhYy4uNWE4YjY0N2JhNzVlMDFkZDgxMjZk
YzczZjYyYzQ3ZjBlOGM3NTBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCkBAIC02NCw2ICs2NCw3
IEBACiAKICNpZiBVU0UoR0xYKQogI2luY2x1ZGUgPEdML2dseC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvT3BlbkdMU2hpbXMuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdh
eWxhbmQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2lu
Z1N0b3JlV2F5bGFuZC5jcHAKaW5kZXggOTczYjMxNjgxZmIzMTgyMGVmZmI1M2RkNDI5ZDk0NDM0
YjdkMmZlNS4uMWEzMjY0ZDg3YTE2OTdlMjczZmQ4ZDYwMzBmYjllMWFmMGI1MjliNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3Jl
V2F5bGFuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVk
QmFja2luZ1N0b3JlV2F5bGFuZC5jcHAKQEAgLTM4LDcgKzM4LDEwIEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9DYWlyb1V0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR0xDb250ZXh0Lmg+CiAK
LSNpZiBVU0UoT1BFTkdMX0VTKQorI2lmIFVTRShBTkdMRSkKKyNpbmNsdWRlIDxXZWJDb3JlL0V4
dGVuc2lvbnMzREFOR0xFLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9PcGVuR0xTaGltcy5oPgorI2Vs
aWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KICNpbmNsdWRlIDxHTEVT
Mi9nbDJleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmg+CkBA
IC03OCw3ICs4MSw5IEBAIGJvb2wgQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpjaGVj
a1JlcXVpcmVtZW50cygpCiAgICAgICAgIGlmICghZWdsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJy
ZW50KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBVU0UoT1BFTkdMX0VTKQor
I2lmIFVTRShBTkdMRSkKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzREFOR0xF
PiBnbEV4dGVuc2lvbnMgPSBtYWtlVW5pcXVlPEV4dGVuc2lvbnMzREFOR0xFPihudWxscHRyLCBH
TENvbnRleHQ6OmN1cnJlbnQoKS0+dmVyc2lvbigpID49IDMyMCk7CisjZWxpZiBVU0UoT1BFTkdM
X0VTKQogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMRVM+IGdsRXh0
ZW5zaW9ucyA9IG1ha2VVbmlxdWU8RXh0ZW5zaW9uczNET3BlbkdMRVM+KG51bGxwdHIsICBmYWxz
ZSk7CiAjZWxzZQogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBn
bEV4dGVuc2lvbnMgPSBtYWtlVW5pcXVlPEV4dGVuc2lvbnMzRE9wZW5HTD4obnVsbHB0ciwgR0xD
b250ZXh0OjpjdXJyZW50KCktPnZlcnNpb24oKSA+PSAzMjApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpp
bmRleCBjY2UxMGMwYzIxZDU2YjRjNDE1YWVjZTI5OWMwMmY5Mzc3ZDc5MWFlLi40NmNmZjlkMzg0
ZmNkODY1NzRjOWM2MmUxYjVmYTA2MWY5MzQ5OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAt
OTAsNiArOTAsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfV1BFX1JFTkRFUkVSICJXaGV0
aGVyIHRvIGVuYWJsZSBXUEUgcmVuZGVyaW5nIiBQVUJMSUMgTwogCiAjIFByaXZhdGUgb3B0aW9u
cyBzcGVjaWZpYyB0byB0aGUgR1RLIHBvcnQuIENoYW5naW5nIHRoZXNlIG9wdGlvbnMgaXMKICMg
Y29tcGxldGVseSB1bnN1cHBvcnRlZC4gVGhleSBhcmUgaW50ZW5kZWQgZm9yIHVzZSBvbmx5IGJ5
IFdlYktpdCBkZXZlbG9wZXJzLgorV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0FOR0xFX1dFQkdM
ICJXaGV0aGVyIHRvIHVzZSBBTkdMRSBhcyBXZWJHTCBiYWNrZW5kLiIgUFJJVkFURSBPRkYpCiBX
RUJLSVRfT1BUSU9OX0RFRklORShVU0VfT1BFTlZSICJXaGV0aGVyIHRvIHVzZSBPcGVuVlIgYXMg
V2ViVlIgYmFja2VuZC4iIFBSSVZBVEUgT0ZGKQogCiAjIEZJWE1FOiBDYW4gd2UgdXNlIGNhaXJv
LWdsZXN2MiB0byBhdm9pZCB0aGlzIGNvbmZsaWN0PwpAQCAtMTAwLDYgKzEwMSw3IEBAIFdFQktJ
VF9PUFRJT05fREVQRU5EKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgRU5BQkxFX09QRU5H
TCkKIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9BU1lOQ19TQ1JPTExJTkcgRU5BQkxFX09Q
RU5HTCkKIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9HTEVTMiBFTkFCTEVfT1BFTkdMKQog
V0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX1dFQkdMIEVOQUJMRV9PUEVOR0wpCitXRUJLSVRf
T1BUSU9OX0RFUEVORChVU0VfQU5HTEVfV0VCR0wgRU5BQkxFX1dFQkdMKQogV0VCS0lUX09QVElP
Tl9ERVBFTkQoVVNFX1dQRV9SRU5ERVJFUiBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9E
RVBFTkQoVVNFX1dQRV9SRU5ERVJFUiBFTkFCTEVfV0FZTEFORF9UQVJHRVQpCiAKQEAgLTMwNCw2
ICszMDYsMTEgQEAgaWYgKEVOQUJMRV9PUEVOR0wpCiAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJ
TEQoVVNFX05JQ09TSUEgVFJVRSkKIGVuZGlmICgpCiAKK2lmIChVU0VfQU5HTEVfV0VCR0wpCisg
ICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0FOR0xFIFRSVUUpCisgICAgU0VUX0FORF9F
WFBPU0VfVE9fQlVJTEQoVVNFX0FOR0xFX0VHTCBUUlVFKQorZW5kaWYgKCkKKwogaWYgKEVOQUJM
RV9TUEVMTENIRUNLKQogICAgIGZpbmRfcGFja2FnZShFbmNoYW50KQogICAgIGlmIChOT1QgUENf
RU5DSEFOVF9GT1VORCkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA1
YzBmYTU3N2MxYWU1MWY1YzRmODc3NDM2MjhjZGI0NWUyN2IyMzEzLi5kZDIxZWNiNjZkMjI0Nzgz
ZmNkNjExNTUwZjZhMDY0NWNjYzI4OTBjIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTEtMTAgIENoYW5nU2VvayBPaCAgPGNoYW5n
c2Vva0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdIEFkZCBBTkdMRSBiYWNrZW5kIHRvIEdU
SyBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTkwNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGNoYW5nZSBicmluZ3MgQU5HTEUgc3VwcG9ydCBmb3IgV2ViR0wgdG8gR1RLIHBvcnQuIFVT
RV9BTkdMRV9XRUJHTAorICAgICAgICBpcyBuZXdseSBkZWZpbmVkIGluIE9wdGlvbkdUSy5jbWFr
ZSwgYW5kIHR1cm5zIG9uIHRoZSBVU0VfQU5HTEVfRUdMIGZsYWcuCisKKyAgICAgICAgKiBTb3Vy
Y2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZTogVVNFX0FOR0xFX1dFQkdMIGFkZGVkLgorCiAyMDE5
LTExLTA2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgUG9pbnRlciBMb2NrIEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383330</attachid>
            <date>2019-11-11 19:03:30 -0800</date>
            <delta_ts>2019-11-20 15:59:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199060-20191111220329.patch</filename>
            <type>text/plain</type>
            <size>57694</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNmQyYTlmMTgzYjVlY2Q5OTYxYjZlOTU5ODUxY2U1NDllYWNhMDg3Mi4uYjkxOWIzODUxYWQ4
M2Y2YTdjNDY1OTg3MjE2ZGJmN2NlN2Q0MmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTExLTExICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tA
d2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogV2hlbiBVU0VfQU5HTEVfV0VCR0wgaXMgZW5hYmxlZCwgbmVjZXNzYXJ5IGds
ZXN2MiBlbnRyeSBwb2ludHMgaGVhZGVycworICAgICAgICAgIGFyZSBpbnN0YWxsZWQgaW4gdGhl
IGRlcml2ZWQgc291cmNlIGRpcmVjdG9yeS4gQW5kIHRoZW4gYWRqdXN0LWFuZ2xlLWluY2x1ZGUt
cGF0aC5zaCBpcyBhcHBsaWVkCisgICAgICAgICAgdG8gY2hhbmdlIGluY2x1ZGUgcGF0aHMgaW4g
dGhlIGVudHJ5IHBvaW50cyBoZWFkZXIgZmlsZXMuCisgICAgICAgICogR0xFU3YyLmNtYWtlOiBs
aWJnbGVzdjJfZW50cnlfcG9pbnRzX2hlYWRlcnMgaXMgbmV3bHkgZGVmaW5lZCwgd2hpY2ggaXMg
YSBnYXRoZXJpbmcgb2YKKyAgICAgICAgICBlbnRyeSBwb2ludCBoZWFkZXJzIG9mIGxpYkdMRVN2
Mi4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogSW4gdGhpcyBmaWxlLCB3ZSBhcHBlbmQg
Z2wgYW5kIGdseCByZWxhdGVkIGFuZ2xlIGNvZGUgYXMgYSBidWlsZCB0YXJnZXQuCisgICAgICAg
ICAgU2luY2Ugd2Ugd2FudCBnbCBjb250ZXh0IGFuZCBnbGVzIGNvbnRleHQgc2ltdWx0YW5lb3Vz
bHksIHdlIHJlbW92ZSBnbCBwcm90b3R5cGUgY2FsbHMKKyAgICAgICAgICBmcm9tIHRoZSBnZW5l
cmF0ZWQgbGliR0xFU3YyIGxpYnJhcnkuIEluc3RlYWQsIHdlIGludm9rZSBlZ2wgYW5kIGdsIGNh
bGxzIG9mIEFOR0xFCisgICAgICAgICAgdmlhIHRoZWlyIG5vbi1wcm90b3R5cGUgZnVuY3Rpb24g
bmFtZXMuCisgICAgICAgICogYWRqdXN0LWFuZ2xlLWluY2x1ZGUtcGF0aHMuc2g6IHNlZCBpcyBz
bGlnaHRseSBkaWZmZXJlbnQgaW4gdW5peCBhbmQgbGludXggc3lzdGVtcy4KKyAgICAgICAgICBJ
biBwYXJ0aWN1bGFyLCBpdHMgaW5wbGFjZSBvcHRpb24gbmVlZHMgdG8gYmUgY2hhbmdlZCBmb3Ig
YmV0dGVyIGNvbXBhdGliaWxpdHkgb24gbGludXguCisgICAgICAgICogaW5jbHVkZS9DTWFrZUxp
c3RzLnR4dDogQU5HTEVfV0VCR0xfSEVBREVSUyBpcyBuZXdseSBkZWZpbmVkLiBJdCBnYXRoZXJz
IGhlYWRlciBmaWxlcyBvZiBBTkdMRQorICAgICAgICAgIGZvciBXZWJHTCBzdXBwb3J0LgorCiAy
MDE5LTExLTA4ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
QU5HTEUgYmFja2VuZCBmb3IgaU9TIGRldmljZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmZGJjZDIwNGI3M2ZiM2FiMWNlZjMy
ZTJkMWI5YzI3Y2I3ZmExMmU4Li5lZjAwYzMxMjAyYjg0MWU4Yzg3N2YzZjk5ZDJiMzhmMDkwYTM1
OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTExLTExICBDaGFuZ1Nlb2sgT2ggIDxjaGFu
Z3Nlb2tAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBH
VEsgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk5MDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIEdUSyBwb3J0IHVzZXMgVEVYVFVSRV9NQVBQRVIgdGhhdCBoYXMgYSBnbCBjb250ZXh0IGZv
ciBhY2NlbGVyYXRlZCByZW5kZXJpbmcsCisgICAgICAgIGFuZCBBTkdMRSBoYXMgYW4gZWdsIGNv
bnRleHQgZm9yIFdlYkdMLiBXZSB3YW50IHRvIG1ha2UgYm90aCBsaXZlIHRvZ2V0aGVyCisgICAg
ICAgIHNvIGFuIGV4Y2VwdGlvbiBpcyBtYWRlIHdoZXJlIFRFWFRVUkVfTUFQUEVSIGlzIGVuYWJs
ZWQuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOS0xMS0wNyAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgc3RhY2sgb3ZlcmZsb3cgY2hl
Y2sgaW4gWWFycjo6Qnl0ZUNvbXBpbGVyOjplbWl0RGlzanVuY3Rpb24oKS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA2ODFlMTYxMjFiYmQ3M2I5ZGVkM2M1MTg0ZThjN2VkMTVjYjA0NTJlLi4xZjc1MTU2YmM1MDll
ZjhjOTBiYTdhNjM4ZWZiMDk4MGZjMzA3MGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAK
KzIwMTktMTEtMTEgIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFtHVEtdIEFkZCBBTkdMRSBiYWNrZW5kIHRvIEdUSyBwb3J0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkwNjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBhaW1zIHRvIGJyaW5n
IEFOR0xFIHN1cHBvcnQgZm9yIFdlYkdMIHRvIEdUSyBwb3J0LiBUaGUgcG9ydAorICAgICAgICB3
YW50cyB0byBoYXZlIGEgZ2wgY29udGV4dCBmb3IgdGV4dHVyZSBtYXBwZXIgYW5kIGEgZ2xlcy9l
Z2wgY29udGV4dCBmb3Igd2ViZ2wKKyAgICAgICAgc2ltdWx0YW5lb3VzbHksIHdlIGFkb3B0IHRo
ZSByZWFkUGl4ZWwtY29weVRvVGV4dHVyZSBhcHByb2FjaCBmb3Igbm93IGJlY2F1c2UKKyAgICAg
ICAgc2hhcmluZyB0ZXh0dXJlcyBiZXR3ZWVuIHRoZSB0d28gZGlmZmVyZW50IGNvbnRleHRlcyBp
cyBub3QgYSBmZWFzaWJsZSBkaXJlY3Rpb24uCisgICAgICAgIEFsc28sIHRvIGF2b2lkIGNvbmZs
aWN0cyBiZXR3ZWVuIGdsIGFuZCBnbGVzIGNhbGxzLCB3ZSB1c2Ugbm9uLXByb3RvdHlwZSBmdW5j
dGlvbnMKKyAgICAgICAgb2YgQU5HTEUgZm9yIFdlYkdMIGNvbnRleHQgKGkuZS4sIEdyYXBoaWNz
Q29udGV4dDNEKS4gQWx0aG91Z2ggbWFueSBjb21iaW5hdGlvbnMKKyAgICAgICAgb2YgZ3JhcGhp
YyBjb25maWd1cmF0aW9ucyBleGlzdCwgb25seSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gKE5pY29z
aWEgbGF5ZXJzCisgICAgICAgIHJ1bm5pbmcgb24gQU5HTEUgKyBHTFggaXMgc3VwcG9ydGVkLiBP
dGhlciBjb21iaW5hdGlvbnMgbGlrZSBBTkdMRSArIEdMRVMgb3IgV1BFCisgICAgICAgIHdpbGwg
YmUgY292ZXJlZCBieSBmb2xsb3dpbmcgcGF0Y2hlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMg
c2luY2Ugbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2VkLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR0xDb250ZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HTENv
bnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmluaXRpYWxpemVPcGVuR0xTaGltcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvT3BlbkdMU2hpbXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bURpc3BsYXkuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNz
Q29udGV4dDNEQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OnJlc2hhcGVGQk9zKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVw
YXJlVGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDM0RBTkdMRUxheWVyLmNwcDogQWRkZWQuCisgICAgICAgIChOaWNvc2lhOjpHQzNE
QU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjplcnJvclN0cmluZyk6CisgICAgICAgIChOaWNvc2lh
OjpHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpsYXN0RXJyb3JTdHJpbmcpOgorICAgICAg
ICAoTmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dCk6
CisgICAgICAgIChOaWNvc2lhOjpHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpBTkdMRUNv
bnRleHQpOgorICAgICAgICAoTmljb3NpYTo6R0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6
fkFOR0xFQ29udGV4dCk6CisgICAgICAgIChOaWNvc2lhOjpHQzNEQU5HTEVMYXllcjo6QU5HTEVD
b250ZXh0OjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAoTmljb3NpYTo6R0MzREFOR0xF
TGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZvcm1Db250ZXh0KToKKyAgICAgICAgKE5pY29zaWE6
OkdDM0RBTkdMRUxheWVyOjpHQzNEQU5HTEVMYXllcik6CisgICAgICAgIChOaWNvc2lhOjpHQzNE
QU5HTEVMYXllcjo6fkdDM0RBTkdMRUxheWVyKToKKyAgICAgICAgKE5pY29zaWE6OkdDM0RBTkdM
RUxheWVyOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAoTmljb3NpYTo6R0MzREFOR0xF
TGF5ZXI6OnBsYXRmb3JtQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIu
aC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0Mz
RExheWVyLmNwcDoKKyAgICAgICAgKE5pY29zaWE6OkdDM0RMYXllcjo6R0MzRExheWVyKToKKyAg
ICAgICAgKE5pY29zaWE6OkdDM0RMYXllcjo6c3dhcEJ1ZmZlcnNJZk5lZWRlZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjpzZXRQZW5kaW5nQ29udGVudHMpOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjp1cGRhdGVQZW5kaW5nQ29udGVudHMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RUZXh0
dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4
dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250
ZXh0M0QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllckJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllckJ1ZmZlcjo6cGFpbnRUb1RleHR1cmVNYXBwZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnB1
c2hOZXh0QnVmZmVyKToKKwogMjAxOS0xMS0xMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3RhY2sgYWxsb2NhdGUgU3R5bGVSZXNvbHZlciBzdGF0ZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBjMjYwN2Y3YzNmNzlkMGY4MmRjYTY5NTUzMWI3MzE5ZTAzMGU2ZGQ3Li4zMmFjY2Nj
NDU4MGY0ZGRmZTMzMTU5M2FjMzc0ZGE3ZThlY2I3ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE5LTExLTExICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBbR1RLXSBBZGQgQU5HTEUgYmFja2VuZCB0byBHVEsgcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MDYwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0UHJvdG9jb2xIYW5kbGVyLmNwcDogRXh0ZW50aW9uM0RBTkdMRSBpcyB1c2VkIGluc3Rl
YWQKKyAgICAgICAgICB3aGVyZSBBTkdMRSBmb3IgV2ViR0wgaXMgZW5hYmxlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvZ3RrL0FjY2VsZXJhdGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHA6IEFwcGVu
ZCBnbCBleHRlbnNpb25zIGZvciBBTkdMRS4KKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRC
YWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1JlcXVpcmVtZW50cyk6CisKIDIwMTktMTEtMDkgIERl
YW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIENsaWNreSBPcmJpbmcgc3Vw
cG9ydC5hcHBsZS5jb20gY2F0ZWdvcmllcyBzaG93cyBhIFBORyBpbnN0ZWFkIG9mIHRoZSB3ZWIg
cGFnZSBwcmV2aWV3LCB0YXBwaW5nIGxvYWRzIGltYWdlIGFzc2V0IG9ubHkgaW5zdGVhZCBvZiB3
ZWIgcGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DTWFrZUxpc3RzLnR4dAppbmRleCBhYjY5MDJh
OTVkMTMwMTg0ODY0Mjg3N2ZkYTBiMTk5MWI5MmVjZTQ4Li40M2ZkZGY4NmUyZTViMGNhNmYzMDQy
MTUxYTRjOGYyOWE5MTFmOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DTWFrZUxpc3RzLnR4
dApAQCAtMTM2LDYgKzEzNiwyNyBAQCBlbHNlICgpCiAgICAgKQogZW5kaWYgKCkKIAoraWYgKFVT
RV9BTkdMRV9XRUJHTCkKKyAgICBXRUJLSVRfQ09QWV9GSUxFUyhMaWJHTEVTdjJFbnRyeVBvaW50
c0hlYWRlcnMKKyAgICAgICAgREVTVElOQVRJT04gJHtBTkdMRV9GUkFNRVdPUktfSEVBREVSU19E
SVJ9L0FOR0xFCisgICAgICAgIEZJTEVTICR7bGliZ2xlc3YyX2VudHJ5X3BvaW50c19oZWFkZXJz
fQorICAgICAgICBGTEFUVEVORUQKKyAgICApCisKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisg
ICAgICAgIE9VVFBVVCAke0FOR0xFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vQU5HTEUvYW5nbGUu
dGltZXN0YW1wCisgICAgICAgIERFUEVORFMgTGliR0xFU3YyRW50cnlQb2ludHNIZWFkZXJzIEFO
R0xFV2ViR0xIZWFkZXJzCisgICAgICAgIENPTU1BTkQgQlVJTFRfUFJPRFVDVFNfRElSPSR7QU5H
TEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfQorICAgICAgICAgICAgUFVCTElDX0hFQURFUlNfRk9M
REVSX1BBVEg9QU5HTEUKKyAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9h
ZGp1c3QtYW5nbGUtaW5jbHVkZS1wYXRocy5zaAorICAgICAgICBWRVJCQVRJTQorICAgICkKKyAg
ICBhZGRfY3VzdG9tX3RhcmdldChBTkdMRS13ZWJnbC1oZWFkZXJzCisgICAgICAgIERFUEVORFMg
JHtBTkdMRV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L0FOR0xFL2FuZ2xlLnRpbWVzdGFtcAorICAg
ICkKKyAgICBhZGRfZGVwZW5kZW5jaWVzKEFOR0xFRnJhbWV3b3JrIEFOR0xFLXdlYmdsLWhlYWRl
cnMpCitlbmRpZiAoKQorCiBpZiAoQ09NUElMRVJfSVNfR0NDX09SX0NMQU5HKQogICAgIFdFQktJ
VF9BRERfVEFSR0VUX0NYWF9GTEFHUyhBTkdMRSAtV25vLWNhc3QtYWxpZ24KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLVduby1zdWdnZXN0LWF0dHJpYnV0ZT1mb3JtYXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0dMRVN2Mi5jbWFrZSBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL0dMRVN2Mi5jbWFrZQppbmRleCBlNGJlNjI1OTVhMGZlYTliMzlh
Y2RjY2ViM2NmOGZmYzkyNmZjZmVhLi5hYTVjYzNjOGI3OTdmOWIyZTdjMDAyYzRkZjg5OGMxNzlj
OWE3ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9HTEVTdjIuY21ha2UK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvR0xFU3YyLmNtYWtlCkBAIC0xMTAxLDYgKzEx
MDEsMTMgQEAgc2V0KGxpYmdsZXN2Ml9zb3VyY2VzCiAgICAgc3JjL2xpYkdMRVN2Mi9yZXNvdXJj
ZS5oCiApCiAKK3NldChsaWJnbGVzdjJfZW50cnlfcG9pbnRzX2hlYWRlcnMKKyAgICBzcmMvbGli
R0xFU3YyL2VudHJ5X3BvaW50c19lZ2wuaAorICAgIHNyYy9saWJHTEVTdjIvZW50cnlfcG9pbnRz
X2dsZXNfMl8wX2F1dG9nZW4uaAorICAgIHNyYy9saWJHTEVTdjIvZW50cnlfcG9pbnRzX2dsZXNf
M18wX2F1dG9nZW4uaAorICAgIHNyYy9saWJHTEVTdjIvZW50cnlfcG9pbnRzX2dsZXNfZXh0X2F1
dG9nZW4uaAorKQorCiBzZXQobGliZ2xlc3YxX2NtX3NvdXJjZXMKICAgICBzcmMvbGliR0xFU3Yx
X0NNL2xpYkdMRVN2MV9DTS5jcHAKICAgICBzcmMvbGliR0xFU3YxX0NNL2xpYkdMRVN2MV9DTS5k
ZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZTM1Y2Ri
MTc2ODAyNjA4ZjUzNzNjZjAxZWRlNDEyMDU4NTMyYmEwYS4uMzNlNGM2MDQwZTA5YzFlZGU3MDM1
OWRkZjAyM2NlNTYzMDIyZDU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
UGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvUGxhdGZvcm1H
VEsuY21ha2UKQEAgLTEzLDMgKzEzLDI3IEBAIGVsc2VpZiAoTk9UIEVOQUJMRV9YMTFfVEFSR0VU
KQogICAgICMgQWxsb3cgYnVpbGRpbmcgQU5HTEUgb24gcGxhdGZvcm1zIHdoaWNoIG1heSBub3Qg
cHJvdmlkZSBYMTEgaGVhZGVycy4KICAgICBsaXN0KEFQUEVORCBBTkdMRV9ERUZJTklUSU9OUyBV
U0VfU1lTVEVNX0VHTCkKIGVuZGlmICgpCisKK2lmIChVU0VfQU5HTEVfRUdMKQorICAgIGxpc3Qo
QVBQRU5EIEFOR0xFX1NPVVJDRVMKKyAgICAgICAgJHthbmdsZV9zeXN0ZW1fdXRpbHNfc291cmNl
c19saW51eH0KKyAgICAgICAgJHthbmdsZV9zeXN0ZW1fdXRpbHNfc291cmNlc19wb3NpeH0KKyAg
ICAgICAgJHtsaWJhbmdsZV9nbF9zb3VyY2VzfQorICAgICAgICAke2xpYmFuZ2xlX2dsX2dseF9z
b3VyY2VzfQorICAgICkKKworICAgIGxpc3QoQVBQRU5EIEFOR0xFX0RFRklOSVRJT05TCisgICAg
ICAgIEFOR0xFX0VOQUJMRV9PUEVOR0wKKyAgICAgICAgQU5HTEVfVVNFX1gxMQorICAgICkKKwor
ICAgIGxpc3QoQVBQRU5EIEFOR0xFR0xFU3YyX0xJQlJBUklFUworICAgICAgICBkbAorICAgICAg
ICBwdGhyZWFkCisgICAgICAgIFgxMQorICAgICkKKworICAgIHN0cmluZyhSRVBMQUNFIHNyYy9s
aWJHTEVTdjIvbGliR0xFU3YyX2F1dG9nZW4uY3BwICIiIGxpYmdsZXN2Ml9zb3VyY2VzICIke2xp
YmdsZXN2Ml9zb3VyY2VzfSIpCisgICAgc3RyaW5nKFJFUExBQ0Ugc3JjL2xpYkVHTC9saWJFR0wu
Y3BwICIiIGxpYmVnbF9zb3VyY2VzICIke2xpYmVnbF9zb3VyY2VzfSIpCitlbmRpZiAoKQorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9hZGp1c3QtYW5nbGUtaW5jbHVkZS1w
YXRocy5zaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2FkanVzdC1hbmdsZS1pbmNsdWRlLXBh
dGhzLnNoCmluZGV4IGZhZDliYTA4Nzk4MjZmODg2ZDI2Yzg2ZWQwZjhiNjJjMDE5OTE4YmMuLjE3
ZmE3ZmU5NDlmOTgzMzkzMTM1YmI0NjJmYzk1MGZiOWM4NjhiZjUgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL2FkanVzdC1hbmdsZS1pbmNsdWRlLXBhdGhzLnNoCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2FkanVzdC1hbmdsZS1pbmNsdWRlLXBhdGhzLnNoCkBAIC0y
Nyw2ICsyNywxMiBAQCBlbHNlCiAgICAgb3V0cHV0X2Rpcj0kQlVJTFRfUFJPRFVDVFNfRElSLyRQ
VUJMSUNfSEVBREVSU19GT0xERVJfUEFUSAogZmkKIAoraWYgWyAkKHVuYW1lKSA9PSAiTGludXgi
IF07IHRoZW4KKyAgICBpbnBsYWNlX29wdD0iLWkiCitlbHNlCisgICAgaW5wbGFjZV9vcHQ9Ii1p
ICcnIgorZmkKKwogZm9yIGkgaW4gJG91dHB1dF9kaXIvKi5oIDsgZG8KICAgICBpZiBbICEgLWYg
JG91dHB1dF9kaXIvYW5nbGUudGltZXN0YW1wIF0gfHwgWyAkaSAtbnQgJG91dHB1dF9kaXIvYW5n
bGUudGltZXN0YW1wIF0gOyB0aGVuCiAgICAgICAgIHNlZCAtZSAnCkBAIC0zNyw3ICs0Myw3IEBA
IHMvXiNpbmNsdWRlIFs8Il1HTEVTM1wvXCguKlwpWz4iXS8jaW5jbHVkZSA8QU5HTEVcL1wxPi8K
IHMvXiNpbmNsdWRlIFs8Il1LSFJcL1woLipcKVs+Il0vI2luY2x1ZGUgPEFOR0xFXC9cMT4vCiBz
L14jaW5jbHVkZSBbPCJdZXhwb3J0LmhbPiJdLyNpbmNsdWRlIDxBTkdMRVwvZXhwb3J0Lmg+Lwog
cy9eI2luY2x1ZGUgIlwoZWdsZXh0X2FuZ2xlXHxnbDJleHRfYW5nbGVcfFNoYWRlclZhcnNcKS5o
Ii8jaW5jbHVkZSA8QU5HTEVcL1wxLmg+LwotJyAtaSAiIiAkaQorJyAkaW5wbGFjZV9vcHQgJGkK
ICAgICAgICAgZWNobyBQb3N0cHJvY2Vzc2VkIEFOR0xFIGhlYWRlcjMgJGkKICAgICBmaQogZG9u
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggZjg0ZWVjNzUxYWJjYTg5ZDllYzI0N2NmMTFiOTQxOGM5OWYxNjRiMS4uZmMwMDI5MWE0Mzc3
YzdhNmZiYWRjY2Q2MTdlZjRlNmRkZTgyNDhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvaW5jbHVkZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9pbmNsdWRlL0NNYWtlTGlzdHMudHh0CkBAIC00OSw2ICs0OSwyMyBAQCBpZiAoVVNFX0FO
R0xFX0VHTCkKICAgICApCiBlbmRpZiAoKQogCitpZiAoVVNFX0FOR0xFX1dFQkdMKQorICAgIHNl
dChBTkdMRV9XRUJHTF9IRUFERVJTCisgICAgICAgIGV4cG9ydC5oCisgICAgICAgICR7a2hyX2hl
YWRlcnN9CisgICAgICAgICR7ZWdsX2hlYWRlcnN9CisgICAgICAgICR7Z2xlc19oZWFkZXJzfQor
ICAgICAgICAke2dsZXMyX2hlYWRlcnN9CisgICAgICAgICR7Z2xlczNfaGVhZGVyc30KKyAgICAp
CisKKyAgICBXRUJLSVRfQ09QWV9GSUxFUyhBTkdMRVdlYkdMSGVhZGVycworICAgICAgICBERVNU
SU5BVElPTiAke0FOR0xFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vQU5HTEUKKyAgICAgICAgRklM
RVMgJHtBTkdMRV9XRUJHTF9IRUFERVJTfQorICAgICAgICBGTEFUVEVORUQKKyAgICApCitlbmRp
ZiAoKQorCiAjIENvY29hIGV4cGVjdHMgaGVhZGVycyBpbiBhbiBBTkdMRSBkaXJlY3RvcnkKIFdF
QktJVF9DT1BZX0ZJTEVTKEdMU0xBTkdIZWFkZXJzCiAgICAgREVTVElOQVRJT04gJHtBTkdMRV9G
UkFNRVdPUktfSEVBREVSU19ESVJ9L0FOR0xFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCAyMTU4MDZkMDhkMDBm
NDAyMjc3NjNlMTBmZTA1NmFiYjYyOGI4ODYzLi42ZDYyZDBkZTkxZjcwMjE1M2RmZjVhMzg5ZTQ5
MmE0ZjRjNzM3NTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTExNDYsNyArMTE0Niw3IEBACiAjZGVmaW5l
IFVTRV9BTkdMRSAwCiAjZW5kaWYKIAotI2lmIChVU0VfQU5HTEUgJiYgKFVTRV9PUEVOR0wgfHwg
VVNFX09QRU5HTF9FUyB8fCAoZGVmaW5lZChVU0VfRUdMKSAmJiBVU0VfRUdMKSkpCisjaWYgKFVT
RV9BTkdMRSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZpbmVkKFVTRV9F
R0wpICYmIFVTRV9FR0wpKSkgJiYgIVVTRShURVhUVVJFX01BUFBFUikKICNlcnJvciBVU0VfQU5H
TEUgaXMgaW5jb21wYXRpYmxlIHdpdGggVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBhbmQgVVNF
X0VHTAogI2VuZGlmCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDQ5ZTk0ZGVmMTI5MWI3
ZGUwYjYxZDM4MDYwMWNmZjc2ZGVmMjVkNDcuLmJhYWI0OWFjMjBmZTY0YjRhY2I5ZTA0MDY0ZDdj
ZWI4YmExOTNjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEyMCw2ICsxMTIwLDggQEAgc2V0
KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L1dpZHRoQ2FjaGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dpbmRSdWxlLmgKIAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVuc2lvbnMzREFOR0xFLmgKKwogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaAogCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpp
bmRleCA3ODdmNDljY2UwNjMyODlkYWViMGUwZDI2YzRhNGFjNjkyYTQ5YzBhLi5hMzBhNTQ1Y2M2
MzUxNDMxZTkzNjk3ODYyZmEzODliMGY5NjkzZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFr
ZQpAQCAtMzYsNiArMzYsMTIgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vdGV4dC9ndGsiCiApCiAK
K2lmIChVU0VfQU5HTEVfV0VCR0wpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lO
Q0xVREVfRElSRUNUT1JJRVMKKyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlIgorICAgICkKK2VuZGlmICgpCisKIGlmIChVU0VfV1BFX1JFTkRFUkVSKQogICAg
IGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvbGlid3BlIgpAQCAtMTE3LDIwICsxMjMsMzggQEAg
aWYgKFVTRV9XUEVfUkVOREVSRVIpCiAgICAgKQogZW5kaWYgKCkKIAotaWYgKFVTRV9PUEVOR0xf
RVMpCitpZiAoVVNFX09QRU5HTCkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKLSAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAot
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xF
Uy5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCiAgICAgKQog
ZW5kaWYgKCkKIAotaWYgKFVTRV9PUEVOR0wpCitpZiAoVVNFX0FOR0xFX1dFQkdMKQogICAgIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwotICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVu
R0xTaGltcy5jcHAKLQotICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
czNET3BlbkdMLmNwcAotICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0wuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0V4dGVu
c2lvbnMzREFOR0xFLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGlj
c0NvbnRleHQzREFOR0xFLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9UZW1w
b3JhcnlBTkdMRVNldHRpbmcuY3BwCiAgICAgKQorZWxzZSAoKQorICAgIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
czNET3BlbkdMQ29tbW9uLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5nLmNwcAorICAgICkKKworICAgIGlmIChVU0Vf
T1BFTkdMX0VTKQorICAgICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAKKyAg
ICAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5H
TEVTLmNwcAorICAgICAgICApCisgICAgZW5kaWYgKCkKKworICAgIGlmIChVU0VfT1BFTkdMKQor
ICAgICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCisgICAgICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCisgICAgICAg
ICkKKyAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAogaWYgKEVOQUJMRV9XQVlMQU5EX1RBUkdFVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlc0dUSy50eHQKaW5kZXggNzAwNjY5NjBiYzk5NzVjZWUyZmUzZGY2YTcwNjRlODVk
YjcwYWU3Yi4uYzJjMjcwOWI4NzlhODM4NjkyODlmZTI4NzEzNTdjZGU2MjZhMWFhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0dUSy50eHQKQEAgLTkyLDEwICs5Miw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAogCiBwbGF0Zm9ybS9ncmFwaGljcy9saWJ3cGUv
UGxhdGZvcm1EaXNwbGF5TGliV1BFLmNwcAogCi1wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcAotcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAotcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1Rl
bXBvcmFyeU9wZW5HTFNldHRpbmcuY3BwCi0KIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlVmVydGljYWxEYXRhLmNwcAogCiBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRm
b3JtRGlzcGxheVdheWxhbmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UZXh0dXJlTWFwcGVyLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1h
cHBlci5jbWFrZQppbmRleCA0ZjNkNmVhYjVkNzJmYzk1YzIwYTQ1M2FjZWI1OWQ0YzNkNGFkYTI2
Li4zNTNjMTQxZGRhNzk0OTYwMTdiNmFiNGZmZjllNDNkNDQwN2RiYjViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2UKQEAgLTExNSwzICsxMTUsOSBAQCBl
bHNlICgpCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGls
ZWRCYWNraW5nU3RvcmUuY3BwCiAgICAgKQogZW5kaWYgKCkKKworaWYgKFVTRV9BTkdMRV9XRUJH
TCkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmNwcAorICAgICkKK2Vu
ZGlmICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdM
RVdlYktpdEJyaWRnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVX
ZWJLaXRCcmlkZ2UuaAppbmRleCBkNGE2MGJhMjNjNmRhZGMzZWI1MWUwM2M2MDhiZTVhYjhiZGM2
YzFhLi5kMTRlYzRmZjkxYTUwNTBjNzg1MDIwOTJmNWIxOGNhNmNkNjY2NmQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
QEAgLTM2LDE0ICszNiwxNCBAQAogI2luY2x1ZGUgPEFOR0xFL1NoYWRlckxhbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIFVT
RShBTkdMRSkKKyNpbmNsdWRlIDxBTkdMRS9nbDIuaD4KIAorI2VsaWYgUExBVEZPUk0oQ09DT0Ep
CiAjaWYgVVNFKE9QRU5HTF9FUykKICNpbXBvcnQgPE9wZW5HTEVTL0VTMi9nbGV4dC5oPgogI2Vs
aWYgVVNFKE9QRU5HTCkKICNpbmNsdWRlIDxPcGVuR0wvZ2wuaD4KLSNlbGlmIFVTRShBTkdMRSkK
LSNpbmNsdWRlIDxBTkdMRS9nbDIuaD4KICNlbHNlCiAjZXJyb3IgVW5zdXBwb3J0ZWQgY29uZmln
dXJhdGlvbgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HTENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xD
b250ZXh0LmNwcAppbmRleCAxZTQ2NzgzYTA3ZmFkODM2MjZmNzUyMDc0NmRjMmZkZDRlYWU4YzBk
Li4yN2ZiMjA2MjczY2EwNThkMWY5MzEzZTcxNmJlNzRiOGI4YjE5OTExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTI2LDEyICsyNiw2
IEBACiAjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCiAjZW5kaWYKIAotI2lmIFVTRShMSUJFUE9Y
WSkKLSNpbmNsdWRlIDxlcG94eS9nbC5oPgotI2VsaWYgVVNFKE9QRU5HTF9FUykKLSNpbmNsdWRl
IDxHTEVTMi9nbDIuaD4KLSNlbmRpZgotCiAjaWYgVVNFKEdMWCkKICNpbmNsdWRlICJHTENvbnRl
eHRHTFguaCIKICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAppbmRleCBiNGEyNjcwYjI0YWE2Yzc3MGE2MjU5Mjk2
ODMzMGMxZTc3ODQ2NDg2Li45YTQ0ZWZjYTExMjA0NzMwNDc3OWRkN2JhOGM1YjcwOWI4NjdlOGFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApAQCAt
MjAsMTEgKzIwLDE2IEBACiAjaWZuZGVmIEdMQ29udGV4dF9oCiAjZGVmaW5lIEdMQ29udGV4dF9o
CiAKLSNpbmNsdWRlICJBTkdMRVdlYktpdEJyaWRnZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KIAorI2lmIFVTRShMSUJFUE9YWSkKKyNpbmNsdWRlIDxlcG94eS9nbC5oPgorI2VsaWYgVVNF
KE9QRU5HTF9FUykKKyNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KKyNlbmRpZgorCiAjaWYgVVNFKEVH
TCkgJiYgIVBMQVRGT1JNKEdUSykKICNpZiBQTEFURk9STShXUEUpCiAvLyBGSVhNRTogRm9yIG5v
dyBkZWZhdWx0IHRvIHRoZSBHQk0gRUdMIHBsYXRmb3JtLCBidXQgdGhpcyBzaG91bGQgcmVhbGx5
IGJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaAppbmRleCA4YWRiNjM2Yjk3YjY2ODcyNDk5YWU2ZTE3YTRhZDc3ODUwNmM2NGRk
Li42MTlmYjRhYmMwYjJlNzMwNzQxNzU0MzcyZTA0ZWE1YTlkODU1MjgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAg
LTEwMSwxMiArMTAxLDEyIEBAIGNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3JtM0RP
YmplY3QgPSAwOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zM0Q7Ci0j
aWYgIVBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKQorI2lmIFVTRShBTkdMRSkKK2Ns
YXNzIEV4dGVuc2lvbnMzREFOR0xFOworI2VsaWYgIVBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BF
TkdMX0VTKQogY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdMRVM7CiAjZWxpZiBVU0UoT1BFTkdMKSB8
fCAoUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpKQogY2xhc3MgRXh0ZW5zaW9uczNE
T3BlbkdMOwotI2VsaWYgVVNFKEFOR0xFKQotY2xhc3MgRXh0ZW5zaW9uczNEQU5HTEU7CiAjZW5k
aWYKIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZTsKQEAgLTE0NTYsNyArMTQ1NiwxMCBA
QCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTaGFkZXJOYW1lSGFzaD4gbmFtZUhhc2hN
YXBGb3JTaGFkZXJzOwogI2VuZGlmIC8vICFVU0UoQU5HTEUpCiAKLSNpZiAhUExBVEZPUk0oQ09D
T0EpICYmIFVTRShPUEVOR0xfRVMpCisjaWYgVVNFKEFOR0xFKQorICAgIGZyaWVuZCBjbGFzcyBF
eHRlbnNpb25zM0RBTkdMRTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNEQU5HTEU+
IG1fZXh0ZW5zaW9uczsKKyNlbGlmICFQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykK
ICAgICBmcmllbmQgY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdMRVM7CiAgICAgZnJpZW5kIGNsYXNz
IEV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9u
czNET3BlbkdMRVM+IG1fZXh0ZW5zaW9uczsKQEAgLTE0NjQsOSArMTQ2Nyw2IEBAIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTDsKICAgICBmcmllbmQgY2xhc3Mg
RXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25z
M0RPcGVuR0w+IG1fZXh0ZW5zaW9uczsKLSNlbGlmIFVTRShBTkdMRSkKLSAgICBmcmllbmQgY2xh
c3MgRXh0ZW5zaW9uczNEQU5HTEU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzREFO
R0xFPiBtX2V4dGVuc2lvbnM7CiAjZW5kaWYKIAogICAgIEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcyBtX2F0dHJzOwpAQCAtMTQ5Miw3ICsxNDkyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
bGF5ZXJDb21wb3NpdGVkIHsgZmFsc2UgfTsKICAgICBHQzNEdWludCBtX2ludGVybmFsQ29sb3JG
b3JtYXQgeyAwIH07CiAKLSNpZiBVU0UoQU5HTEUpCisjaWYgVVNFKEFOR0xFKSAmJiBQTEFURk9S
TShDT0NPQSkKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEU3VyZmFjZSBtX3BidWZmZXI7
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
T3BlbkdMU2hpbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdM
U2hpbXMuY3BwCmluZGV4IGQzY2ZkMjdkNTcxZTM3ZTY4Nzk5NjQ3MjcwMjk0NDkxY2ZkNzUzYmQu
LmY3OTc2ZTYxZGQ4NTI0NmQyZjRlMjc2MmM4YzE4N2UwOTk4MDRkYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKQEAgLTE2Miw2ICsx
NjIsNyBAQCBib29sIGluaXRpYWxpemVPcGVuR0xTaGltcygpCiAgICAgQVNTSUdOX0ZVTkNUSU9O
X1RBQkxFX0VOVFJZKGdsR2V0U2hhZGVySW5mb0xvZywgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZV
TkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0U2hhZGVyaXYsIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9G
VU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFNoYWRlclNvdXJjZSwgc3VjY2Vzcyk7CisgICAgQVNT
SUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0U3RyaW5nLCBzdWNjZXNzKTsKICAgICAvLyBn
bEdldFN0cmluZ2kgaXMgb25seSBhdmFpbGFibGUgb24gT3BlbkdMIG9yIEdMRVMgdmVyc2lvbnMg
Pj0gMy4wLgogICAgIC8vIEFkZCBpdCB3aXRoIF9FWFQgc28gaXQgZG9lc24ndCBjYXVzZSBhbiBp
bml0aWFsaXphdGlvbiBmYWlsdXJlIG9uIGxvd2VyIHZlcnNpb25zLgogICAgIEFTU0lHTl9GVU5D
VElPTl9UQUJMRV9FTlRSWV9FWFQoZ2xHZXRTdHJpbmdpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCmluZGV4IGRlMzI5NWRmNDBiMzgyNGFkZGZk
NGE1NDhmM2Q2MTcyMGNmMTM1YjQuLjRjMzU3ZGRlOTgxZjEzNmYwNThkODgzNzA3OGM0MTMwZDYw
ZDZhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5H
TFNoaW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hp
bXMuaApAQCAtOTgsNiArOTgsNyBAQCB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsR2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyaXZUeXBlKSAoR0xlbnVtLCBHTGVudW0sIEdMaQogdHlwZWRlZiB2
b2lkIChHTEFQSUVOVFJZICpnbEdldFNoYWRlckluZm9Mb2dUeXBlKSAoR0x1aW50LCBHTHNpemVp
LCBHTHNpemVpKiwgY2hhciopOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEdldFNoYWRl
cml2VHlwZSkgKEdMdWludCwgR0xlbnVtLCBHTGludCopOwogdHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbEdldFNoYWRlclNvdXJjZVR5cGUpIChHTHVpbnQsIEdMc2l6ZWksIEdMc2l6ZWkqLCBj
aGFyKik7Cit0eXBlZGVmIGNvbnN0IEdMdWJ5dGUqIChHTEFQSUVOVFJZICpnbEdldFN0cmluZ1R5
cGUpIChHTGVudW0pOwogdHlwZWRlZiBjb25zdCBHTHVieXRlKiAoR0xBUElFTlRSWSAqZ2xHZXRT
dHJpbmdpVHlwZSkgKEdMZW51bSwgR0x1aW50KTsKIHR5cGVkZWYgR0xpbnQgKEdMQVBJRU5UUlkg
KmdsR2V0VW5pZm9ybUxvY2F0aW9uVHlwZSkgKEdMdWludCwgY29uc3QgY2hhciopOwogdHlwZWRl
ZiB2b2lkIChHTEFQSUVOVFJZICpnbEdldFVuaWZvcm1mdlR5cGUpIChHTHVpbnQsIEdMaW50LCBH
TGZsb2F0Kik7CkBAIC0yMDUsNiArMjA2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX09wZW5HTEZ1bmN0
aW9uVGFibGUgewogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0U2hhZGVySW5mb0xvZyk7
CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRTaGFkZXJpdik7CiAgICAgRlVOQ1RJT05f
VEFCTEVfRU5UUlkoZ2xHZXRTaGFkZXJTb3VyY2UpOworICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZ
KGdsR2V0U3RyaW5nKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldFN0cmluZ2kpOwog
ICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0VW5pZm9ybWZ2KTsKICAgICBGVU5DVElPTl9U
QUJMRV9FTlRSWShnbEdldFVuaWZvcm1pdik7CkBAIC0zMzMsNiArMzM1LDcgQEAgdHlwZWRlZiBz
dHJ1Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUgewogI2RlZmluZSBnbEdldFNoYWRlckluZm9Mb2cg
ICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xHZXRTaGFkZXJJbmZvTG9n
KQogI2RlZmluZSBnbEdldFNoYWRlcml2ICAgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBf
R0xfRlVOQ1RJT04oZ2xHZXRTaGFkZXJpdikKICNkZWZpbmUgZ2xHZXRTaGFkZXJTb3VyY2UgICAg
ICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2V0U2hhZGVyU291cmNlKQor
I2RlZmluZSBnbEdldFN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xf
RlVOQ1RJT04oZ2xHZXRTdHJpbmcpCiAjZGVmaW5lIGdsR2V0U3RyaW5naSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldFN0cmluZ2kpCiAjZGVmaW5lIGds
R2V0VW5pZm9ybWZ2ICAgICAgICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihn
bEdldFVuaWZvcm1mdikKICNkZWZpbmUgZ2xHZXRVbmlmb3JtaXYgICAgICAgICAgICAgICAgICAg
ICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2V0VW5pZm9ybWl2KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggZjk3
OGRiZTI0MGM4OTY1NDJhYzM1OTBlODIwZjRlMDJlZWE5Y2NmMC4uMTU2ZTVhYTJiNzM1ZGY2MWEx
YzE5NjZlZGIzMzZiNWRjMTllMGZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCkBAIC01Miw2ICs1Miw5IEBACiAKICNp
ZiBQTEFURk9STShHVEspICYmIFBMQVRGT1JNKFgxMSkKICNpbmNsdWRlIDxnZGsvZ2RreC5oPgor
I2lmIGRlZmluZWQoTm9uZSkKKyN1bmRlZiBOb25lCisjZW5kaWYKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oR1RLKSAmJiBQTEFURk9STShXQVlMQU5EKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHQzREFO
R0xFLmNwcAppbmRleCBmMTYxZWE1OTQwYWUxZmU5YzExNDc2ODAxZjZhYzU5MDJhZjU2ZmRhLi42
YjViZTEwNGJkMDNjYWQ2MzdlYzIwMmU3OTM5MWRmYzEzNmQ0OTBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHQzREFOR0xF
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGlj
c0NvbnRleHQzREFOR0xFLmNwcApAQCAtNjksNiArNjksMTEgQEAgdHlwZWRlZiB2b2lkKiBHTGVn
bENvbnRleHQ7CiAvLyB3b3VsZCBuZWVkIG1vcmUgd29yayB0byBiZSBpbmNsdWRlZCBmcm9tIFdl
YkNvcmUuCiAjZGVmaW5lIEdMX01BWF9TQU1QTEVTX0VYVCAweDhENTcKIAorI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2RlZmluZSBHTF9DT0xP
Ul9BVFRBQ0hNRU5UMF9FWFQgMHg4Q0UwCisjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0VYVCAweDhE
NDAKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBw
YWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25OYW1lID0gIkdMX09FU19wYWNrZWRfZGVwdGhfc3Rl
bmNpbCI7CkBAIC0xOTEsNiArMTk2LDE4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hh
cGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgYWxsb2NhdGVJT1N1cmZhY2VCYWNraW5n
U3RvcmUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CiAgICAgdXBkYXRlRnJhbWVidWZmZXJUZXh0
dXJlQmFja2luZ1N0b3JlRnJvbUxheWVyKCk7CiAgICAgZ2w6OkZyYW1lYnVmZmVyVGV4dHVyZTJE
KEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV9SRUNUQU5H
TEVfQU5HTEUsIG1fdGV4dHVyZSwgMCk7CisjZWxpZiBQTEFURk9STShHVEspCisgICAgZ2w6OkJp
bmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX3RleHR1cmUpOworICAgIGds
OjpUZXhJbWFnZTJEKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCAwLCBtX2ludGVybmFsQ29s
b3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIDAsIGNvbG9yRm9ybWF0LCBHTF9VTlNJR05FRF9CWVRF
LCAwKTsKKyAgICBnbDo6RnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NP
TE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV90ZXh0dXJlLCAw
KTsKKyAgICBpZiAobV9jb21wb3NpdG9yVGV4dHVyZSkgeworICAgICAgICBnbDo6QmluZFRleHR1
cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIG1fY29tcG9zaXRvclRleHR1cmUpOworICAg
ICAgICBnbDo6VGV4SW1hZ2UyRChHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgMCwgbV9pbnRl
cm5hbENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBjb2xvckZvcm1hdCwgR0xfVU5TSUdO
RURfQllURSwgMCk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdM
RV9BTkdMRSwgMCk7CisgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdM
RV9BTkdMRSwgbV9pbnRlcm1lZGlhdGVUZXh0dXJlKTsKKyAgICAgICAgZ2w6OlRleEltYWdlMkQo
R0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIDAsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgMCwgY29sb3JGb3JtYXQsIEdMX1VOU0lHTkVEX0JZVEUsIDApOworICAgICAg
ICBnbDo6QmluZFRleHR1cmUoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIDApOworICAgIH0K
ICNlbHNlCiAjZXJyb3IgRklYTUU6IFBvcnQgdG8gbm9uLUNvY29hIHBsYXRmb3Jtcy4KICNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkKQEAgLTQ3Niw3ICs0OTMsMjAgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6cHJlcGFyZVRleHR1cmUoKQogICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykKICAg
ICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwogCisjaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQorICAgIHN0ZDo6c3dhcChtX3RleHR1cmUsIG1fY29tcG9zaXRvclRl
eHR1cmUpOworICAgIHN0ZDo6c3dhcChtX3RleHR1cmUsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7
CisgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOworICAgIGds
OjpGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVO
VDAsIEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX3RleHR1cmUsIDApOwogICAgIGdsOjpG
bHVzaCgpOworCisgICAgaWYgKG1fc3RhdGUuYm91bmRGQk8gIT0gbV9mYm8pCisgICAgICAgIGds
OjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX3N0YXRl
LmJvdW5kRkJPKTsKKyAgICBlbHNlCisgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CisjZWxzZQorICAgIGdsOjpGbHVzaCgp
OworI2VuZGlmCiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1
bHRzKHVuc2lnbmVkIGNoYXIgKnBpeGVscywgaW50IHBpeGVsc1NpemUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0Mz
REFOR0xFTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS90ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2NmNWQxMzUz
ZWIyZDNiZWZmZDhlYjgzYzI2MWU3NThlZTQyZTk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdM
RUxheWVyLmNwcApAQCAtMCwwICsxLDIxNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBN
ZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgorICogQ29weXJpZ2h0IChDKSAyMDE4LCAyMDE5IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVy
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAq
ICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTmljb3NpYUdDM0RBTkdMRUxheWVyLmgiCisKKyNpZiBVU0UoTklDT1NJ
QSkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCisjZGVm
aW5lIEVHTF9FR0xfUFJPVE9UWVBFUyAwCisvLyBTa2lwIHRoZSBpbmNsdXNpb24gb2YgQU5HTEUn
cyBleHBsaWNpdCBjb250ZXh0IGVudHJ5IHBvaW50cyBmb3Igbm93LgorI2RlZmluZSBHTF9BTkdM
RV9leHBsaWNpdF9jb250ZXh0CisjZGVmaW5lIEdMX0FOR0xFX2V4cGxpY2l0X2NvbnRleHRfZ2xl
czEKK3R5cGVkZWYgdm9pZCogR0xlZ2xDb250ZXh0OworI2luY2x1ZGUgPEFOR0xFL2VnbC5oPgor
I2luY2x1ZGUgPEFOR0xFL2VnbGV4dC5oPgorI2luY2x1ZGUgPEFOR0xFL2VnbGV4dF9hbmdsZS5o
PgorI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3BvaW50c19lZ2wuaD4KKyNpbmNsdWRlIDxBTkdMRS9l
bnRyeV9wb2ludHNfZ2xlc18yXzBfYXV0b2dlbi5oPgorI2luY2x1ZGUgPEFOR0xFL2VudHJ5X3Bv
aW50c19nbGVzX2V4dF9hdXRvZ2VuLmg+CisjaW5jbHVkZSA8QU5HTEUvZ2wyZXh0Lmg+CisjaW5j
bHVkZSA8QU5HTEUvZ2wyZXh0X2FuZ2xlLmg+CisKK25hbWVzcGFjZSBOaWNvc2lhIHsKKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2NvbnN0IGNoYXIqIEdDM0RBTkdMRUxheWVyOjpBTkdM
RUNvbnRleHQ6OmVycm9yU3RyaW5nKGludCBzdGF0dXNDb2RlKQoreworICAgIHN0YXRpY19hc3Nl
cnQoc2l6ZW9mKGludCkgPj0gc2l6ZW9mKEVHTGludCksICJFR0xpbnQgbXVzdCBub3QgYmUgd2lk
ZXIgdGhhbiBpbnQiKTsKKyAgICBzd2l0Y2ggKHN0YXR1c0NvZGUpIHsKKyNkZWZpbmUgQ0FTRV9S
RVRVUk5fU1RSSU5HKG5hbWUpIGNhc2UgbmFtZTogcmV0dXJuICNuYW1lCisgICAgICAgIC8vIGh0
dHBzOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lzdHJ5L0VHTC9zZGsvZG9jcy9tYW4vaHRtbC9lZ2xH
ZXRFcnJvci54aHRtbAorICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX1NVQ0NFU1MpOwor
ICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX05PVF9JTklUSUFMSVpFRCk7CisgICAgICAg
IENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0FDQ0VTUyk7CisgICAgICAgIENBU0VfUkVUVVJO
X1NUUklORyhFR0xfQkFEX0FMTE9DKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9C
QURfQVRUUklCVVRFKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQ09OVEVY
VCk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0NPTkZJRyk7CisgICAgICAg
IENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0NVUlJFTlRfU1VSRkFDRSk7CisgICAgICAgIENB
U0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0RJU1BMQVkpOworICAgICAgICBDQVNFX1JFVFVSTl9T
VFJJTkcoRUdMX0JBRF9TVVJGQUNFKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9C
QURfTUFUQ0gpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9QQVJBTUVURVIp
OworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9OQVRJVkVfUElYTUFQKTsKKyAg
ICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfTkFUSVZFX1dJTkRPVyk7CisgICAgICAg
IENBU0VfUkVUVVJOX1NUUklORyhFR0xfQ09OVEVYVF9MT1NUKTsKKyN1bmRlZiBDQVNFX1JFVFVS
Tl9TVFJJTkcKKyAgICBkZWZhdWx0OiByZXR1cm4gIlVua25vd24gRUdMIGVycm9yIjsKKyAgICB9
Cit9CisKK2NvbnN0IGNoYXIqIEdDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6Omxhc3RFcnJv
clN0cmluZygpCit7CisgICAgcmV0dXJuIGVycm9yU3RyaW5nKEVHTF9HZXRFcnJvcigpKTsKK30K
Kworc3RkOjp1bmlxdWVfcHRyPEdDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ+IEdDM0RBTkdM
RUxheWVyOjpBTkdMRUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQoKQoreworICAgIEVHTERpc3BsYXkg
ZGlzcGxheSA9IEVHTF9HZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpOworICAgIGlmIChk
aXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IEVHTGludCBtYWpvclZlcnNpb24sIG1pbm9yVmVyc2lvbjsKKyAgICBpZiAoRUdMX0luaXRpYWxp
emUoZGlzcGxheSwgJm1ham9yVmVyc2lvbiwgJm1pbm9yVmVyc2lvbikgPT0gRUdMX0ZBTFNFKSB7
CisgICAgICAgIExPRyhXZWJHTCwgIkVHTERpc3BsYXkgSW5pdGlhbGl6YXRpb24gZmFpbGVkLiIp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgTE9HKFdlYkdMLCAiQU5HTEUg
aW5pdGlhbGlzZWQgTWFqb3I6ICVkIE1pbm9yOiAlZCIsIG1ham9yVmVyc2lvbiwgbWlub3JWZXJz
aW9uKTsKKworICAgIGNvbnN0IGNoYXIqIGRpc3BsYXlFeHRlbnNpb25zID0gRUdMX1F1ZXJ5U3Ry
aW5nKGRpc3BsYXksIEVHTF9FWFRFTlNJT05TKTsKKyAgICBMT0coV2ViR0wsICJFeHRlbnNpb25z
OiAlcyIsIGRpc3BsYXlFeHRlbnNpb25zKTsKKworICAgIEVHTENvbmZpZyBjb25maWc7CisgICAg
RUdMaW50IGNvbmZpZ0F0dHJpYnV0ZXNbXSA9IHsKKyAgICAgICAgRUdMX1JFTkRFUkFCTEVfVFlQ
RSwgRUdMX09QRU5HTF9FUzJfQklULAorICAgICAgICBFR0xfUkVEX1NJWkUsIDgsCisgICAgICAg
IEVHTF9HUkVFTl9TSVpFLCA4LAorICAgICAgICBFR0xfQkxVRV9TSVpFLCA4LAorICAgICAgICBF
R0xfQUxQSEFfU0laRSwgOCwKKyAgICAgICAgRUdMX05PTkUKKyAgICB9OworICAgIEVHTGludCBu
dW1iZXJDb25maWdzUmV0dXJuZWQgPSAwOworICAgIEVHTF9DaG9vc2VDb25maWcoZGlzcGxheSwg
Y29uZmlnQXR0cmlidXRlcywgJmNvbmZpZywgMSwgJm51bWJlckNvbmZpZ3NSZXR1cm5lZCk7Cisg
ICAgaWYgKG51bWJlckNvbmZpZ3NSZXR1cm5lZCAhPSAxKSB7CisgICAgICAgIExPRyhXZWJHTCwg
IkVHTENvbmZpZyBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKyAgICBMT0coV2ViR0wsICJHb3QgRUdMQ29uZmlnIik7CisKKyAgICBFR0xf
QmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSk7CisgICAgaWYgKEVHTF9HZXRFcnJvcigpICE9IEVH
TF9TVUNDRVNTKSB7CisgICAgICAgIExPRyhXZWJHTCwgIlVuYWJsZSB0byBiaW5kIHRvIE9QRU5H
TF9FU19BUEkiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgc3RkOjp2
ZWN0b3I8RUdMaW50PiBjb250ZXh0QXR0cmlidXRlczsKKyAgICBjb250ZXh0QXR0cmlidXRlcy5w
dXNoX2JhY2soRUdMX0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04pOworICAgIGNvbnRleHRBdHRyaWJ1
dGVzLnB1c2hfYmFjaygyKTsKKyAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soRUdMX0NP
TlRFWFRfV0VCR0xfQ09NUEFUSUJJTElUWV9BTkdMRSk7CisgICAgY29udGV4dEF0dHJpYnV0ZXMu
cHVzaF9iYWNrKEVHTF9UUlVFKTsKKyAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soRUdM
X0VYVEVOU0lPTlNfRU5BQkxFRF9BTkdMRSk7CisgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9i
YWNrKEVHTF9UUlVFKTsKKyAgICBpZiAoc3Ryc3RyKGRpc3BsYXlFeHRlbnNpb25zLCAiRUdMX0FO
R0xFX3Bvd2VyX3ByZWZlcmVuY2UiKSkgeworICAgICAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNo
X2JhY2soRUdMX1BPV0VSX1BSRUZFUkVOQ0VfQU5HTEUpOworICAgICAgICAvLyBFR0xfTE9XX1BP
V0VSX0FOR0xFIGlzIHRoZSBkZWZhdWx0LiBDaGFuZ2UgdG8KKyAgICAgICAgLy8gRUdMX0hJR0hf
UE9XRVJfQU5HTEUgaWYgZGVzaXJlZC4KKyAgICAgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9i
YWNrKEVHTF9MT1dfUE9XRVJfQU5HTEUpOworICAgIH0KKyAgICBjb250ZXh0QXR0cmlidXRlcy5w
dXNoX2JhY2soRUdMX05PTkUpOworCisgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gRUdMX0NyZWF0
ZUNvbnRleHQoZGlzcGxheSwgY29uZmlnLCBFR0xfTk9fQ09OVEVYVCwgY29udGV4dEF0dHJpYnV0
ZXMuZGF0YSgpKTsKKyAgICBpZiAoY29udGV4dCA9PSBFR0xfTk9fQ09OVEVYVCkgeworICAgICAg
ICBMT0coV2ViR0wsICJFR0xDb250ZXh0IEluaXRpYWxpemF0aW9uIGZhaWxlZC4iKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIExPRyhXZWJHTCwgIkdvdCBFR0xDb250ZXh0
Iik7CisKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEFOR0xFQ29udGV4dD4obmV3IEFOR0xF
Q29udGV4dChkaXNwbGF5LCBjb250ZXh0LCBFR0xfTk9fU1VSRkFDRSkpOworfQorCitHQzNEQU5H
TEVMYXllcjo6QU5HTEVDb250ZXh0OjpBTkdMRUNvbnRleHQoRUdMRGlzcGxheSBkaXNwbGF5LCBF
R0xDb250ZXh0IGNvbnRleHQsIEVHTFN1cmZhY2Ugc3VyZmFjZSkKKyAgICA6IG1fZGlzcGxheShk
aXNwbGF5KQorICAgICwgbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX3N1cmZhY2Uoc3VyZmFj
ZSkKK3sKK30KKworR0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6fkFOR0xFQ29udGV4dCgp
Cit7CisgICAgaWYgKG1fY29udGV4dCkgeworICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdM
X0ZSQU1FQlVGRkVSLCAwKTsKKyAgICAgICAgRUdMX01ha2VDdXJyZW50KG1fZGlzcGxheSwgRUdM
X05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CisgICAgICAgIEVH
TF9EZXN0cm95Q29udGV4dChtX2Rpc3BsYXksIG1fY29udGV4dCk7CisgICAgfQorCisgICAgaWYg
KG1fc3VyZmFjZSkKKyAgICAgICAgRUdMX0Rlc3Ryb3lTdXJmYWNlKG1fZGlzcGxheSwgbV9zdXJm
YWNlKTsKK30KKworYm9vbCBHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjptYWtlQ29udGV4
dEN1cnJlbnQoKQoreworICAgIEFTU0VSVChtX2NvbnRleHQpOworCisgICAgaWYgKEVHTF9HZXRD
dXJyZW50Q29udGV4dCgpICE9IG1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIEVHTF9NYWtlQ3Vy
cmVudChtX2Rpc3BsYXksIG1fc3VyZmFjZSwgbV9zdXJmYWNlLCBtX2NvbnRleHQpOworICAgIHJl
dHVybiB0cnVlOworfQorCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RBTkdMRUxheWVy
OjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpCit7CisgICAgcmV0dXJuIG1fY29udGV4
dDsKK30KKworR0MzREFOR0xFTGF5ZXI6OkdDM0RBTkdMRUxheWVyKEdyYXBoaWNzQ29udGV4dDNE
JiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCisg
ICAgOiBHQzNETGF5ZXIoY29udGV4dCkKK3sKKyAgICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgorICAgICAgICBtX2Fu
Z2xlQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dCgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRv
dzoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0K
K30KKworR0MzREFOR0xFTGF5ZXI6On5HQzNEQU5HTEVMYXllcigpCit7Cit9CisKK2Jvb2wgR0Mz
REFOR0xFTGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCgpCit7CisgICAgQVNTRVJUKG1fYW5nbGVD
b250ZXh0KTsKKyAgICByZXR1cm4gbV9hbmdsZUNvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgp
OworCit9CisKK1BsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR0MzREFOR0xFTGF5ZXI6OnBsYXRm
b3JtQ29udGV4dCgpCit7CisgICAgQVNTRVJUKG1fYW5nbGVDb250ZXh0KTsKKyAgICByZXR1cm4g
bV9hbmdsZUNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBO
aWNvc2lhCisKKyNlbmRpZiAvLyBVU0UoTklDT1NJQSkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YzJmNmVmYzc4YWMyNWE0MGM0ZmEyYjljZmQ5YjhiMmRlZmMxNGVjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3Np
YUdDM0RBTkdMRUxheWVyLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgorICogQ29weXJpZ2h0IChDKSAyMDE4LCAyMDE5
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQKKyAqICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIFVTRShOSUNPU0lBKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisKKyNpbmNsdWRl
ICJHTENvbnRleHQuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1ZGUg
Ik5pY29zaWFHQzNETGF5ZXIuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CisKK3R5cGVkZWYgdm9pZCAq
RUdMQ29uZmlnOwordHlwZWRlZiB2b2lkICpFR0xDb250ZXh0OwordHlwZWRlZiB2b2lkICpFR0xE
aXNwbGF5OwordHlwZWRlZiB2b2lkICpFR0xTdXJmYWNlOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBJbnRTaXplOworY2xhc3MgR0xDb250ZXh0OworY2xhc3MgUGxhdGZvcm1EaXNwbGF5
OworfQorCituYW1lc3BhY2UgTmljb3NpYSB7CisKK2NsYXNzIEdDM0RBTkdMRUxheWVyIGZpbmFs
IDogcHVibGljIEdDM0RMYXllciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgY2xhc3MgQU5HTEVDb250ZXh0IHsKKyAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQU5HTEVDb250ZXh0KTsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBlcnJvclN0cmluZyhpbnQgc3RhdHVzQ29kZSk7CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBsYXN0RXJyb3JTdHJpbmcoKTsKKworICAgICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEFO
R0xFQ29udGV4dD4gY3JlYXRlQ29udGV4dCgpOworICAgICAgICB2aXJ0dWFsIH5BTkdMRUNvbnRl
eHQoKTsKKworICAgICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOworI2lmIEVOQUJMRShH
UkFQSElDU19DT05URVhUXzNEKQorICAgICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBs
YXRmb3JtQ29udGV4dCgpOworI2VuZGlmCisKKyAgICBwcml2YXRlOgorICAgICAgICBBTkdMRUNv
bnRleHQoRUdMRGlzcGxheSwgRUdMQ29udGV4dCwgRUdMU3VyZmFjZSk7CisKKyAgICAgICAgRUdM
RGlzcGxheSBtX2Rpc3BsYXkgeyBudWxscHRyIH07CisgICAgICAgIEVHTENvbnRleHQgbV9jb250
ZXh0IHsgbnVsbHB0ciB9OworICAgICAgICBFR0xTdXJmYWNlIG1fc3VyZmFjZSB7IG51bGxwdHIg
fTsKKyAgICB9OworCisgICAgR0MzREFOR0xFTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0QmLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUpOworICAgIHZpcnR1
YWwgfkdDM0RBTkdMRUxheWVyKCk7CisKKyAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpIG92
ZXJyaWRlOworICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCkg
b3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPEFOR0xFQ29udGV4dD4g
bV9hbmdsZUNvbnRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBOaWNvc2lhCisKKyNlbmRpZiAv
LyBVU0UoTklDT1NJQSkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0MzRExheWVyLmNwcAppbmRleCA5YTliZDQ2ODNiMjY3NDJhZmVjYjE0OTFmNjE0NGYy
YTc4YzU5NTJjLi4yZGM5MTZkMDgyZGU5YzFjODEyNzRlMjJkZmNiNjU2NzJjNWFhODI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0MzRExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcApAQCAtMzcsMTIgKzM3LDIyIEBA
CiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oIgogI2VuZGlmCiAK
KyNpZiBVU0UoQU5HTEUpCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKKyNlbmRpZgorCiAjaW5j
bHVkZSAiR0xDb250ZXh0LmgiCiAKIG5hbWVzcGFjZSBOaWNvc2lhIHsKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKK0dDM0RMYXllcjo6R0MzRExheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBj
b250ZXh0KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2NvbnRlbnRMYXllcihO
aWNvc2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJl
TWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQoreworfQorCiBHQzNETGF5ZXI6OkdD
M0RMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJl
bmRlclN0eWxlIHJlbmRlclN0eWxlKQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBt
X2NvbnRlbnRMYXllcihOaWNvc2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250
ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQpAQCAtODIs
MTMgKzkyLDM4IEBAIHZvaWQgR0MzRExheWVyOjpzd2FwQnVmZmVyc0lmTmVlZGVkKCkKIAogICAg
IG1fY29udGV4dC5wcmVwYXJlVGV4dHVyZSgpOwogICAgIEludFNpemUgdGV4dHVyZVNpemUobV9j
b250ZXh0Lm1fY3VycmVudFdpZHRoLCBtX2NvbnRleHQubV9jdXJyZW50SGVpZ2h0KTsKLSAgICBU
ZXh0dXJlTWFwcGVyR0w6OkZsYWdzIGZsYWdzID0gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRGbGlw
VGV4dHVyZSB8IChtX2NvbnRleHQubV9hdHRycy5hbHBoYSA/IFRleHR1cmVNYXBwZXJHTDo6U2hv
dWxkQmxlbmQgOiAwKTsKKyAgICBUZXh0dXJlTWFwcGVyR0w6OkZsYWdzIGZsYWdzID0gbV9jb250
ZXh0Lm1fYXR0cnMuYWxwaGEgPyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIDogMDsKKyNp
ZiBVU0UoQU5HTEUpCisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZl
ciA9IEltYWdlQnVmZmVyOjpjcmVhdGUodGV4dHVyZVNpemUsIFVuYWNjZWxlcmF0ZWQpOworICAg
IGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29udGV4dC5wYWlu
dFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhpbWFnZUJ1ZmZlci5nZXQoKSk7CisgICAgUmVmUHRy
PEltYWdlPiBpbWFnZSA9IGltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3Rv
cmUpOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyNlbHNlCisgICAgZmxhZ3Mg
fD0gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRGbGlwVGV4dHVyZTsKKyNlbmRpZgogCiAgICAgewog
ICAgICAgICBhdXRvJiBwcm94eSA9IGRvd25jYXN0PE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1
cmVNYXBwZXJJbXBsPihtX2NvbnRlbnRMYXllci0+aW1wbCgpKS5wcm94eSgpOworI2lmIFVTRShB
TkdMRSkKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
QnVmZmVyPiBsYXllckJ1ZmZlcjsKKyAgICAgICAgbGF5ZXJCdWZmZXIgPSBwcm94eS5nZXRBdmFp
bGFibGVCdWZmZXIodGV4dHVyZVNpemUsIG1fY29udGV4dC5tX2ludGVybmFsQ29sb3JGb3JtYXQp
OworICAgICAgICBpZiAoIWxheWVyQnVmZmVyKSB7CisgICAgICAgICAgICBhdXRvIHRleHR1cmUg
PSBCaXRtYXBUZXh0dXJlR0w6OmNyZWF0ZShUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXM6
OmdldCgpLCBtX2NvbnRleHQubV9pbnRlcm5hbENvbG9yRm9ybWF0KTsKKyAgICAgICAgICAgIHN0
YXRpY19jYXN0PEJpdG1hcFRleHR1cmVHTCY+KHRleHR1cmUuZ2V0KCkpLnNldFBlbmRpbmdDb250
ZW50cyhXVEZNb3ZlKGltYWdlKSk7CisgICAgICAgICAgICBsYXllckJ1ZmZlciA9IG1ha2VVbmlx
dWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+KFdURk1vdmUodGV4dHVyZSksIGZs
YWdzKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBsYXllckJ1ZmZlci0+dGV4dHVyZUdM
KCkuc2V0UGVuZGluZ0NvbnRlbnRzKFdURk1vdmUoaW1hZ2UpKTsKIAorICAgICAgICBMb2NrSG9s
ZGVyIGhvbGRlcihwcm94eS5sb2NrKCkpOworICAgICAgICBwcm94eS5wdXNoTmV4dEJ1ZmZlcihX
VEZNb3ZlKGxheWVyQnVmZmVyKSk7CisjZWxzZQogICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihw
cm94eS5sb2NrKCkpOwogICAgICAgICBwcm94eS5wdXNoTmV4dEJ1ZmZlcihtYWtlVW5pcXVlPFRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPihtX2NvbnRleHQubV9jb21wb3NpdG9yVGV4
dHVyZSwgdGV4dHVyZVNpemUsIGZsYWdzLCBtX2NvbnRleHQubV9pbnRlcm5hbENvbG9yRm9ybWF0
KSk7CisjZW5kaWYKICAgICB9CiAKICAgICBtX2NvbnRleHQubWFya0xheWVyQ29tcG9zaXRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDM0RMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5oCmluZGV4IDlmNTQ0NWJiZTExODNj
ZTc0ODU1OTNjYmJiZjE2NTBlZGNjZTQzMjMuLjMyNmQ2ZTU1MDZlNmU5MjdlNDBkNmY1NjI0ODU3
MWJhYzlkZTNkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmgKQEAgLTQz
LDEyICs0MywxNCBAQCBuYW1lc3BhY2UgTmljb3NpYSB7CiBjbGFzcyBHQzNETGF5ZXIgOiBwdWJs
aWMgQ29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OkNsaWVudCB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgR0MzRExheWVyKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEJik7CiAgICAgR0MzRExheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKwogICAg
IHZpcnR1YWwgfkdDM0RMYXllcigpOwogCiAgICAgQ29udGVudExheWVyJiBjb250ZW50TGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRMYXllcjsgfQotICAgIGJvb2wgbWFrZUNvbnRleHRD
dXJyZW50KCk7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQo
KTsKKyAgICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgdmlydHVhbCBQ
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpOwogCiAgICAgdm9pZCBz
d2FwQnVmZmVyc0lmTmVlZGVkKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5k
ZXggNzliMDA2ZTE0ZDFhOWYzMWQwMmRjNzY3ODcyMWU3MTRiM2RjY2NiYi4uMGZiNjNkOTc4MWMz
MTA0OWNhOTRjNWZmZDg4YTA4ZTIyN2JiNzA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAg
LTI2LDcgKzI2LDYgQEAKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1ZGUgIkZp
bHRlck9wZXJhdGlvbnMuaCIKLSNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkxlbmd0aEZ1
bmN0aW9ucy5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKQEAgLTE2OSw2ICsxNjgsMjUgQEAgdm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0
ZUNvbnRlbnRzKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY28KICAg
ICB1cGRhdGVDb250ZW50cyhpbWFnZURhdGEsIHRhcmdldFJlY3QsIG9mZnNldCwgYnl0ZXNQZXJM
aW5lKTsKIH0KIAorI2lmIFVTRShBTkdMRSkKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjpzZXRQZW5k
aW5nQ29udGVudHMoUmVmUHRyPEltYWdlPiYmIGltYWdlKQoreworICAgIG1fcGVuZGluZ0NvbnRl
bnRzID0gaW1hZ2U7Cit9CisKK3ZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVQZW5kaW5nQ29u
dGVudHMoY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIG9mZnNldCkK
K3sKKyAgICBpZiAoIW1fcGVuZGluZ0NvbnRlbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIWlzVmFsaWQoKSkgeworICAgICAgICBJbnRTaXplIHRleHR1cmVTaXplKG1fcGVuZGluZ0Nv
bnRlbnRzLT5zaXplKCkpOworICAgICAgICByZXNldCh0ZXh0dXJlU2l6ZSk7CisgICAgfQorICAg
IHVwZGF0ZUNvbnRlbnRzKG1fcGVuZGluZ0NvbnRlbnRzLmdldCgpLCB0YXJnZXRSZWN0LCBvZmZz
ZXQpOworfQorI2VuZGlmCisKIHN0YXRpYyB1bnNpZ25lZCBnZXRQYXNzZXNSZXF1aXJlZEZvckZp
bHRlcihGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2gg
KHR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaAppbmRleCA4NzA5YTgyNTYwYzY0OTg4NzQ4OTM4Yjhi
ODZlMTNiZjUzYTBiZWY2Li41YjE2M2Y2MGYxZmQ3NTk3ZjAzNTBjYzUxMzg3YzE5Njg4OTI0Mjcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0
bWFwVGV4dHVyZUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0JpdG1hcFRleHR1cmVHTC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQml0bWFw
VGV4dHVyZS5oIgogI2luY2x1ZGUgIkNsaXBTdGFjay5oIgogI2luY2x1ZGUgIkZpbHRlck9wZXJh
dGlvbi5oIgorI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1
ZGUgIlRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlRleHR1cmVN
YXBwZXJHTC5oIgpAQCAtNzcsNiArNzgsMTAgQEAgcHVibGljOgogICAgIEdMaW50IGludGVybmFs
Rm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbEZvcm1hdDsgfQogCiAgICAgdm9pZCBj
b3B5RnJvbUV4dGVybmFsVGV4dHVyZShHTHVpbnQgdGV4dHVyZUlEKTsKKyNpZiBVU0UoQU5HTEUp
CisgICAgdm9pZCBzZXRQZW5kaW5nQ29udGVudHMoUmVmUHRyPEltYWdlPiYmKTsKKyAgICB2b2lk
IHVwZGF0ZVBlbmRpbmdDb250ZW50cyhjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJ
bnRQb2ludCYgb2Zmc2V0KTsKKyNlbmRpZgogCiAgICAgVGV4dHVyZU1hcHBlckdMOjpGbGFncyBj
b2xvckNvbnZlcnRGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3JDb252ZXJ0RmxhZ3M7IH0K
IApAQCAtOTQsNiArOTksMTAgQEAgcHJpdmF0ZToKICAgICBUZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMgbV9jb250ZXh0QXR0cmlidXRlczsKICAgICBUZXh0dXJlTWFwcGVyR0w6OkZsYWdz
IG1fY29sb3JDb252ZXJ0RmxhZ3MgeyBUZXh0dXJlTWFwcGVyR0w6Ok5vRmxhZyB9OwogCisjaWYg
VVNFKEFOR0xFKQorICAgIFJlZlB0cjxJbWFnZT4gbV9wZW5kaW5nQ29udGVudHMgeyBudWxscHRy
IH07CisjZW5kaWYKKwogICAgIHZvaWQgY2xlYXJJZk5lZWRlZCgpOwogICAgIHZvaWQgY3JlYXRl
RmJvSWZOZWVkZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RUZXh0dXJl
TWFwcGVyLmNwcAppbmRleCA4ZmQzYWQ0ZjcyZDc2NGJkOTVkMjIwZjU4MWVkMmI3OTYyODgzYzlj
Li5mYWI4MDdiN2Q4YzFhNjhiNTlkM2FiNzJiY2Q1Njg0MmQ1NTYzZDQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RU
ZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzcsMjEgKzM3LDUw
IEBACiAKICNpbmNsdWRlIDxBTkdMRS9TaGFkZXJMYW5nLmg+CiAKLSNpZiBVU0UoTElCRVBPWFkp
CisjaWYgVVNFKEFOR0xFKQorI2RlZmluZSBFR0xfRUdMX1BST1RPVFlQRVMgMAorLy8gU2tpcCB0
aGUgaW5jbHVzaW9uIG9mIEFOR0xFJ3MgZXhwbGljaXQgY29udGV4dCBlbnRyeSBwb2ludHMgZm9y
IG5vdy4KKyNkZWZpbmUgR0xfQU5HTEVfZXhwbGljaXRfY29udGV4dAorI2RlZmluZSBHTF9BTkdM
RV9leHBsaWNpdF9jb250ZXh0X2dsZXMxCit0eXBlZGVmIHZvaWQqIEdMZWdsQ29udGV4dDsKKyNp
bmNsdWRlIDxBTkdMRS9lZ2wuaD4KKyNpbmNsdWRlIDxBTkdMRS9lZ2xleHQuaD4KKyNpbmNsdWRl
IDxBTkdMRS9lZ2xleHRfYW5nbGUuaD4KKyNpbmNsdWRlIDxBTkdMRS9lbnRyeV9wb2ludHNfZWds
Lmg+CisjaW5jbHVkZSA8QU5HTEUvZW50cnlfcG9pbnRzX2dsZXNfMl8wX2F1dG9nZW4uaD4KKyNp
bmNsdWRlIDxBTkdMRS9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5oPgorI2luY2x1ZGUg
PEFOR0xFL2dsMmV4dC5oPgorI2luY2x1ZGUgPEFOR0xFL2dsMmV4dF9hbmdsZS5oPgorI2lmIGRl
ZmluZWQoQWJvdmUpCisjdW5kZWYgQWJvdmUKKyNlbmRpZgorI2lmIGRlZmluZWQoQmVsb3cpCisj
dW5kZWYgQmVsb3cKKyNlbmRpZgorI2lmIGRlZmluZWQoTm9uZSkKKyN1bmRlZiBOb25lCisjZW5k
aWYKKyNlbGlmIFVTRShMSUJFUE9YWSkKICNpbmNsdWRlIDxlcG94eS9nbC5oPgogI2VsaWYgIVVT
RShPUEVOR0xfRVMpCiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKICNlbmRpZgogCi0jaWYgVVNF
KE9QRU5HTF9FUykKKyNpZiBVU0UoQU5HTEUpCisjaW5jbHVkZSAiRXh0ZW5zaW9uczNEQU5HTEUu
aCIKKyNlbGlmIFVTRShPUEVOR0xfRVMpCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNET3BlbkdMRVMu
aCIKICNlbHNlCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNET3BlbkdMLmgiCiAjZW5kaWYKIAogI2lm
IFVTRShOSUNPU0lBKQorI2lmIFVTRShBTkdMRSkKKyNpbmNsdWRlICJOaWNvc2lhR0MzREFOR0xF
TGF5ZXIuaCIKKyNlbHNlCiAjaW5jbHVkZSAiTmljb3NpYUdDM0RMYXllci5oIgogI2VuZGlmCisj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03MSw3ICsxMDAsNyBAQCBSZWZQdHI8
R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250
ZXh0M0RBdHRyaWJ1dGVzCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAg
ICBzdGF0aWMgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKICAgICBpZiAoIWluaXRpYWxpemVkKSB7Ci0j
aWYgIVVTRShPUEVOR0xfRVMpICYmICFVU0UoTElCRVBPWFkpCisjaWYgIVVTRShPUEVOR0xfRVMp
ICYmICFVU0UoTElCRVBPWFkpICYmICFVU0UoQU5HTEUpCiAgICAgICAgIHN1Y2Nlc3MgPSBpbml0
aWFsaXplT3BlbkdMU2hpbXMoKTsKICNlbmRpZgogICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7
CkBAIC0xMDEsNiArMTMwLDc5IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3ND
b250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMKICAgICByZXR1cm4g
Y29udGV4dDsKIH0KIAorI2lmIFVTRShBTkdMRSkKK0dyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGlj
c0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdp
bmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSwgR3JhcGhp
Y3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCisgICAgOiBtX2F0dHJzKGF0dHJpYnV0ZXMpCit7
CisgICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CisjaWYg
VVNFKE5JQ09TSUEpCisgICAgbV9uaWNvc2lhTGF5ZXIgPSBXVEY6Om1ha2VVbmlxdWU8Tmljb3Np
YTo6R0MzREFOR0xFTGF5ZXI+KCp0aGlzLCByZW5kZXJTdHlsZSk7CisjZWxzZQorICAgIG1fdGV4
bWFwTGF5ZXIgPSBXVEY6Om1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVy
PigqdGhpcywgcmVuZGVyU3R5bGUpOworI2VuZGlmCisgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7
CisKKworICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOworCisgICAgaWYgKHJlbmRlclN0eWxlID09
IFJlbmRlck9mZnNjcmVlbikgeworICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRl
ciBpbnRvLgorICAgICAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CisgICAgICAg
IGdsOjpCaW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV90ZXh0dXJlKTsK
KyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdM
X1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRl
cmYoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xf
TElORUFSKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9SRUNUQU5HTEVf
QU5HTEUsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICAgICAgZ2w6
OlRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfV1JB
UF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRV
UkVfUkVDVEFOR0xFX0FOR0xFLCAwKTsKKworICAgICAgICAvLyBDcmVhdGUgYW4gRkJPLgorICAg
ICAgICBnbDo6R2VuRnJhbWVidWZmZXJzKDEsICZtX2Zibyk7CisgICAgICAgIGdsOjpCaW5kRnJh
bWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKKworI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDUykKKyAgICAgICAgZ2w6OkdlblRleHR1cmVzKDEsICZtX2NvbXBvc2l0b3JUZXh0dXJl
KTsKKyAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBt
X2NvbXBvc2l0b3JUZXh0dXJlKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmYoR0xfVEVYVFVS
RV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAg
ICAgICAgZ2w6OlRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RF
WFRVUkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmko
R0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9U
T19FREdFKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9SRUNUQU5HTEVf
QU5HTEUsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKworICAgICAgICBn
bDo6R2VuVGV4dHVyZXMoMSwgJm1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CisgICAgICAgIGdsOjpC
aW5kVGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV9pbnRlcm1lZGlhdGVUZXh0
dXJlKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5H
TEUsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICAgICAgZ2w6OlRleFBh
cmFtZXRlcmYoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfTUlOX0ZJTFRF
UiwgR0xfTElORUFSKTsKKyAgICAgICAgZ2w6OlRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9SRUNU
QU5HTEVfQU5HTEUsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICAg
ICAgZ2w6OlRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIEdMX1RFWFRV
UkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKworICAgICAgICBnbDo6QmluZFRleHR1cmUo
R0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsIDApOworI2VuZGlmCisKKyAgICAgICAgLy8gQ3Jl
YXRlIGEgbXVsdGlzYW1wbGUgRkJPLgorICAgICAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsK
KyAgICAgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwor
ICAgICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNh
bXBsZUZCTyk7CisgICAgICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9tdWx0aXNhbXBsZUZC
TzsKKyAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29s
b3JCdWZmZXIpOworICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRl
cHRoKQorICAgICAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2Ft
cGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8v
IEJpbmQgY2FudmFzIEZCTy4KKyAgICAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJB
TUVCVUZGRVIsIG1fZmJvKTsKKyAgICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX2ZibzsK
KyNpZiBVU0UoT1BFTkdMX0VTKQorICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAg
ICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhCdWZmZXIpOworICAg
ICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkKKyAgICAgICAgICAgICAgICBnbDo6R2VuUmVu
ZGVyYnVmZmVycygxLCAmbV9zdGVuY2lsQnVmZmVyKTsKKyNlbmRpZgorICAgICAgICAgICAgaWYg
KG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGdsOjpH
ZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBnbDo6Q2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKK30KKyNlbHNlCiBHcmFwaGlj
c0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUg
cmVuZGVyU3R5bGUsIEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0KQogICAgIDogbV9h
dHRycyhhdHRyaWJ1dGVzKQogewpAQCAtMjI1LDcgKzMyNyw1MSBAQCBHcmFwaGljc0NvbnRleHQz
RDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMsIEhvcwogCiAgICAgOjpnbENsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiB9CisjZW5kaWYKIAor
I2lmIFVTRShBTkdMRSkKK0dyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQor
eworICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOworICAgIGlmIChtX3RleHR1cmUpCisgICAgICAg
IGdsOjpEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKKyNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCisgICAgaWYgKG1fY29tcG9zaXRvclRleHR1cmUpCisgICAgICAgIGdsOjpEZWxl
dGVUZXh0dXJlcygxLCAmbV9jb21wb3NpdG9yVGV4dHVyZSk7CisjZW5kaWYKKworICAgIGlmICht
X2F0dHJzLmFudGlhbGlhcykgeworICAgICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVycygxLCAm
bV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKKyAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8
fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgZ2w6OkRlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwg
Jm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOworICAgICAgICBnbDo6RGVsZXRlRnJh
bWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKKyAgICB9IGVsc2UgaWYgKG1fYXR0cnMu
c3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7CisjaWYgVVNFKE9QRU5HTF9FUykKKyAgICAgICAg
aWYgKG1fZGVwdGhCdWZmZXIpCisgICAgICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwg
Jm1fZGVwdGhCdWZmZXIpOworCisgICAgICAgIGlmIChtX3N0ZW5jaWxCdWZmZXIpCisgICAgICAg
ICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fc3RlbmNpbEJ1ZmZlcik7CisjZW5kaWYK
KyAgICAgICAgaWYgKG1fZGVwdGhTdGVuY2lsQnVmZmVyKQorICAgICAgICAgICAgZ2w6OkRlbGV0
ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKKyAgICB9CisgICAgZ2w6
OkRlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9mYm8pOworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQ
SElDUykKKyAgICBnbDo6RGVsZXRlVGV4dHVyZXMoMSwgJm1faW50ZXJtZWRpYXRlVGV4dHVyZSk7
CisjZW5kaWYKKworI2lmIFVTRShDQUlSTykKKyAgICBpZiAobV92YW8pCisgICAgICAgIGRlbGV0
ZVZlcnRleEFycmF5KG1fdmFvKTsKKyNlbmRpZgorCisgICAgYXV0byogYWN0aXZlQ29udGV4dCA9
IGFjdGl2ZUNvbnRleHRzKCkudGFrZUxhc3QoW3RoaXNdKGF1dG8qIGl0KSB7CisgICAgICAgIHJl
dHVybiBpdCA9PSB0aGlzOworICAgIH0pOworICAgIEFTU0VSVF9VTlVTRUQoYWN0aXZlQ29udGV4
dCwgISFhY3RpdmVDb250ZXh0KTsKK30KKyNlbHNlCiBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBo
aWNzQ29udGV4dDNEKCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKQEAgLTI2Miw5ICs0
MDgsMTIgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgICAg
IGRlbGV0ZVZlcnRleEFycmF5KG1fdmFvKTsKICNlbmRpZgogCi0gICAgYXV0byogYWN0aXZlQ29u
dGV4dCA9IGFjdGl2ZUNvbnRleHRzKCkudGFrZUxhc3QoW3RoaXNdKGF1dG8qIGl0KSB7IHJldHVy
biBpdCA9PSB0aGlzOyB9KTsKKyAgICBhdXRvKiBhY3RpdmVDb250ZXh0ID0gYWN0aXZlQ29udGV4
dHMoKS50YWtlTGFzdChbdGhpc10oYXV0byogaXQpIHsKKyAgICAgICAgcmV0dXJuIGl0ID09IHRo
aXM7CisgICAgfSk7CiAgICAgQVNTRVJUX1VOVVNFRChhY3RpdmVDb250ZXh0LCAhIWFjdGl2ZUNv
bnRleHQpOwogfQorI2VuZGlmIC8vIFVTRShBTkdMRSkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dExvc3RDYWxs
YmFjaz4pCiB7CkBAIC0zMTksNyArNDY4LDcgQEAgUGxhdGZvcm1MYXllciogR3JhcGhpY3NDb250
ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogI2VuZGlmCiB9CiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEFOR0xFKQogRXh0ZW5zaW9uczNEJiBHcmFw
aGljc0NvbnRleHQzRDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgaWYgKCFtX2V4dGVuc2lvbnMp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3Bw
CmluZGV4IDVlZmIxOTBjYjRkMjUzMTY3Y2M1NDVlY2ViNzc4NDliODNkMWI2NGIuLjJkYjhjZmIx
M2IxMzFkMjExZjJiNzk3ZDhhMDA2ZmYyYjA2MzA4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1
ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcApAQCAtOTcsNiArOTcsOSBAQCB2b2lk
IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyOjpwYWludFRvVGV4dHVyZU1hcHBlcihU
ZXh0dXJlTWFwcGVyJiB0ZXh0dQogICAgIGlmIChtX2hhc01hbmFnZWRUZXh0dXJlKSB7CiAgICAg
ICAgIEFTU0VSVChtX3RleHR1cmUpOwogICAgICAgICBCaXRtYXBUZXh0dXJlR0wqIHRleHR1cmVH
TCA9IHN0YXRpY19jYXN0PEJpdG1hcFRleHR1cmVHTCo+KG1fdGV4dHVyZS5nZXQoKSk7CisjaWYg
VVNFKEFOR0xFKQorICAgICAgICB0ZXh0dXJlR0wtPnVwZGF0ZVBlbmRpbmdDb250ZW50cyhJbnRS
ZWN0KEludFBvaW50KCksIHRleHR1cmVHTC0+Y29udGVudFNpemUoKSksIEludFBvaW50KCkpOwor
I2VuZGlmCiAgICAgICAgIHRleG1hcEdMLmRyYXdUZXh0dXJlKHRleHR1cmVHTC0+aWQoKSwgbV9l
eHRyYUZsYWdzIHwgdGV4dHVyZUdMLT5jb2xvckNvbnZlcnRGbGFncygpLCB0ZXh0dXJlR0wtPnNp
emUoKSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4LCBvcGFjaXR5KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclBy
b3h5LmNwcAppbmRleCAzNzkzNjc1YWM4ZDZiM2MzMmEzYjMxODE5M2U0OWE3YjM3ZGM0ODgwLi4z
ODE0ZjY4YWU0N2FhNWI3ZmU3ZjlhMGJlY2U4NDcxNmFiY2RiNDAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCkBAIC0xMTMsNiArMTEzLDEy
IEBAIGJvb2wgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6aXNBY3RpdmUoKQogdm9p
ZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjpwdXNoTmV4dEJ1ZmZlcihzdGQ6OnVu
aXF1ZV9wdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+IG5ld0J1ZmZlcikKIHsK
ICAgICBBU1NFUlQobV9sb2NrLmlzSGVsZCgpKTsKKyNpZiBVU0UoQU5HTEUpCisgICAgLy8gV2hl
biB0aGUgbmV3QnVmZmVyIG92ZXJ3cml0ZXMgbV9wZW5kaW5nQnVmZmVyIHRoYXQgaXMgbm90IHN3
YXBwZWQgeWV0LAorICAgIC8vIHRoZSBsYXllciByZWxhdGVkIHRvIG1fcGVuZGluZ0J1ZmZlciBp
cyBmbGlja2VyaW5nIHNpbmNlIGl0cyB0ZXh0dXJlIGlzIGRlc3Ryb3llZC4KKyAgICBpZiAobV9w
ZW5kaW5nQnVmZmVyICYmIG1fcGVuZGluZ0J1ZmZlci0+aGFzTWFuYWdlZFRleHR1cmUoKSkKKyAg
ICAgICAgcmV0dXJuOworI2VuZGlmCiAgICAgbV9wZW5kaW5nQnVmZmVyID0gV1RGTW92ZShuZXdC
dWZmZXIpOwogICAgIG1fd2FzQnVmZmVyRHJvcHBlZCA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJvdG9jb2xIYW5kbGVy
LmNwcAppbmRleCA1N2U4YTU1Nzg3NDNiZTM1YTI5MmE4NzIzYTcyYTMwOTQyMTMyNGFjLi41YThi
NjQ3YmE3NWUwMWRkODEyNmRjNzNmNjJjNDdmMGU4Yzc1MGZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRQcm90b2NvbEhhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFByb3RvY29sSGFuZGxlci5j
cHAKQEAgLTY0LDYgKzY0LDcgQEAKIAogI2lmIFVTRShHTFgpCiAjaW5jbHVkZSA8R0wvZ2x4Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9PcGVuR0xTaGltcy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJh
dGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcAppbmRleCA5NzNiMzE2ODFmYjMxODIw
ZWZmYjUzZGQ0MjlkOTQ0MzRiN2QyZmU1Li4xYTMyNjRkODdhMTY5N2UyNzNmZDhkNjAzMGZiOWUx
YWYwYjUyOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxl
cmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvQWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcApAQCAtMzgsNyArMzgsMTAg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0NhaXJvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9HTENvbnRleHQuaD4KIAotI2lmIFVTRShPUEVOR0xfRVMpCisjaWYgVVNFKEFOR0xFKQorI2lu
Y2x1ZGUgPFdlYkNvcmUvRXh0ZW5zaW9uczNEQU5HTEUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL09w
ZW5HTFNoaW1zLmg+CisjZWxpZiBVU0UoT1BFTkdMX0VTKQogI2luY2x1ZGUgPEdMRVMyL2dsMi5o
PgogI2luY2x1ZGUgPEdMRVMyL2dsMmV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXh0ZW5zaW9u
czNET3BlbkdMRVMuaD4KQEAgLTc4LDcgKzgxLDkgQEAgYm9vbCBBY2NlbGVyYXRlZEJhY2tpbmdT
dG9yZVdheWxhbmQ6OmNoZWNrUmVxdWlyZW1lbnRzKCkKICAgICAgICAgaWYgKCFlZ2xDb250ZXh0
LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lm
IFVTRShPUEVOR0xfRVMpCisjaWYgVVNFKEFOR0xFKQorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RXh0ZW5zaW9uczNEQU5HTEU+IGdsRXh0ZW5zaW9ucyA9IG1ha2VVbmlxdWU8RXh0ZW5zaW9uczNE
QU5HTEU+KG51bGxwdHIsIEdMQ29udGV4dDo6Y3VycmVudCgpLT52ZXJzaW9uKCkgPj0gMzIwKTsK
KyNlbGlmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25z
M0RPcGVuR0xFUz4gZ2xFeHRlbnNpb25zID0gbWFrZVVuaXF1ZTxFeHRlbnNpb25zM0RPcGVuR0xF
Uz4obnVsbHB0ciwgIGZhbHNlKTsKICNlbHNlCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRl
bnNpb25zM0RPcGVuR0w+IGdsRXh0ZW5zaW9ucyA9IG1ha2VVbmlxdWU8RXh0ZW5zaW9uczNET3Bl
bkdMPihudWxscHRyLCBHTENvbnRleHQ6OmN1cnJlbnQoKS0+dmVyc2lvbigpID49IDMyMCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9P
cHRpb25zR1RLLmNtYWtlCmluZGV4IGNjZTEwYzBjMjFkNTZiNGM0MTVhZWNlMjk5YzAyZjkzNzdk
NzkxYWUuLjQ2Y2ZmOWQzODRmY2Q4NjU3NGM5YzYyZTFiNWZhMDYxZjkzNDk5NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zR1RLLmNtYWtlCkBAIC05MCw2ICs5MCw3IEBAIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9X
UEVfUkVOREVSRVIgIldoZXRoZXIgdG8gZW5hYmxlIFdQRSByZW5kZXJpbmciIFBVQkxJQyBPCiAK
ICMgUHJpdmF0ZSBvcHRpb25zIHNwZWNpZmljIHRvIHRoZSBHVEsgcG9ydC4gQ2hhbmdpbmcgdGhl
c2Ugb3B0aW9ucyBpcwogIyBjb21wbGV0ZWx5IHVuc3VwcG9ydGVkLiBUaGV5IGFyZSBpbnRlbmRl
ZCBmb3IgdXNlIG9ubHkgYnkgV2ViS2l0IGRldmVsb3BlcnMuCitXRUJLSVRfT1BUSU9OX0RFRklO
RShVU0VfQU5HTEVfV0VCR0wgIldoZXRoZXIgdG8gdXNlIEFOR0xFIGFzIFdlYkdMIGJhY2tlbmQu
IiBQUklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9PUEVOVlIgIldoZXRoZXIg
dG8gdXNlIE9wZW5WUiBhcyBXZWJWUiBiYWNrZW5kLiIgUFJJVkFURSBPRkYpCiAKICMgRklYTUU6
IENhbiB3ZSB1c2UgY2Fpcm8tZ2xlc3YyIHRvIGF2b2lkIHRoaXMgY29uZmxpY3Q/CkBAIC0xMDAs
NiArMTAxLDcgQEAgV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUyBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0FTWU5DX1ND
Uk9MTElORyBFTkFCTEVfT1BFTkdMKQogV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0dMRVMy
IEVOQUJMRV9PUEVOR0wpCiBXRUJLSVRfT1BUSU9OX0RFUEVORChFTkFCTEVfV0VCR0wgRU5BQkxF
X09QRU5HTCkKK1dFQktJVF9PUFRJT05fREVQRU5EKFVTRV9BTkdMRV9XRUJHTCBFTkFCTEVfV0VC
R0wpCiBXRUJLSVRfT1BUSU9OX0RFUEVORChVU0VfV1BFX1JFTkRFUkVSIEVOQUJMRV9PUEVOR0wp
CiBXRUJLSVRfT1BUSU9OX0RFUEVORChVU0VfV1BFX1JFTkRFUkVSIEVOQUJMRV9XQVlMQU5EX1RB
UkdFVCkKIApAQCAtMzA0LDYgKzMwNiwxMSBAQCBpZiAoRU5BQkxFX09QRU5HTCkKICAgICBTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfTklDT1NJQSBUUlVFKQogZW5kaWYgKCkKIAoraWYgKFVT
RV9BTkdMRV9XRUJHTCkKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQU5HTEUgVFJV
RSkKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQU5HTEVfRUdMIFRSVUUpCitlbmRp
ZiAoKQorCiBpZiAoRU5BQkxFX1NQRUxMQ0hFQ0spCiAgICAgZmluZF9wYWNrYWdlKEVuY2hhbnQp
CiAgICAgaWYgKE5PVCBQQ19FTkNIQU5UX0ZPVU5EKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIv
Q2hhbmdlTG9nCmluZGV4IDVjMGZhNTc3YzFhZTUxZjVjNGY4Nzc0MzYyOGNkYjQ1ZTI3YjIzMTMu
LmU1MWQzODAyOTg0Y2NkMjAwMDAxYWNlYTdmY2U0NDE1ZTljMWUwNzEgMTAwNjQ0Ci0tLSBhL0No
YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0xMS0xMSAgQ2hh
bmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0dUS10gQWRkIEFO
R0xFIGJhY2tlbmQgdG8gR1RLIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5OTA2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGJyaW5ncyBBTkdMRSBzdXBwb3J0IGZvciBXZWJH
TCB0byBHVEsgcG9ydC4gVVNFX0FOR0xFX1dFQkdMCisgICAgICAgIGlzIG5ld2x5IGRlZmluZWQg
aW4gT3B0aW9uR1RLLmNtYWtlLCBhbmQgdHVybnMgb24gdGhlIFVTRV9BTkdMRV9FR0wgZmxhZy4K
KworICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOiBVU0VfQU5HTEVfV0VC
R0wgYWRkZWQuCisKIDIwMTktMTEtMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBzdXBwb3J0IGZvciBQb2ludGVy
IExvY2sgQVBJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>