<?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>217554</bug_id>
          
          <creation_ts>2020-10-09 20:44:10 -0700</creation_ts>
          <short_desc>[GPU Process][Resource caching 2/7]: Introduce RemoteResourceCache to manage the resources in the GPU Process</short_desc>
          <delta_ts>2020-10-16 23:46:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>217550</dependson>
          <blocked>217342</blocked>
    
    <blocked>217558</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696479</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-09 20:44:10 -0700</bug_when>
    <thetext>RemoteRenderingBackendProxy will own an instance of RemoteResourceCacheProxy. One type of these resources will be the RemoteImageBufferProxy. We can split the responsibilities of the remote rendering among these classes like this:

-- RemoteRenderingBackendProxy: is responsible for sending messages to and receiving messages from the RemoteRenderingBackend. It will delegate all the resource management to its RemoteResourceCacheProxy
-- RemoteResourceCacheProxy: is responsible for managing the remote resources including the actual life cycle of these resources.
-- RemoteImageBufferProxy: is responsible for the ImageBuffer functionalities taking into consideration it is a remote resource, i.e drawing is recorded in WebProcess and backend lives in the GPU Process.

This makes it easy to get rid of RemoteImageBufferMessageHandlerProxy because all it does is sending messages to WebProcess but we can simplify the interface of RemoteImageBufferProxy by removing it and moving sending the messages to RemoteRenderingBackendProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696481</commentid>
    <comment_count>1</comment_count>
      <attachid>411005</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-09 20:53:19 -0700</bug_when>
    <thetext>Created attachment 411005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696485</commentid>
    <comment_count>2</comment_count>
      <attachid>411006</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-09 21:43:19 -0700</bug_when>
    <thetext>Created attachment 411006
Patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697098</commentid>
    <comment_count>3</comment_count>
      <attachid>411006</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-12 16:01:29 -0700</bug_when>
    <thetext>Comment on attachment 411006
Patch for review

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

&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:74
&gt; +void RemoteRenderingBackendProxy::remoteCreateImageBufferBackend(const FloatSize&amp; logicalSize, const IntSize&amp; backendSize, float resolutionScale, ColorSpace colorSpace, ImageBufferBackendHandle handle, RemoteResourceIdentifier remoteResourceIdentifier)

Or createRemoteImageBufferBackend?

Does this have to do IPC? Could we create the image buffer backend lazily the first time it&apos;s referenced by something?

&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.cpp:76
&gt; +    if (auto image = flushDrawingContext(displayList, remoteResourceIdentifier)) {
&gt; +        image-&gt;flushContext();

It&apos;s confusing that we have both flushDrawingContext() and flushContext(), but we also have the &quot;commit&quot; terminology for flushContext().

&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.h:50
&gt; +    WebCore::ImageBuffer* flushDrawingContext(const WebCore::DisplayList::DisplayList&amp;, WebCore::RemoteResourceIdentifier);
&gt; +    WebCore::ImageBuffer* flushDrawingContextAndCommit(const WebCore::DisplayList::DisplayList&amp;, WebCore::RemoteResourceIdentifier);

I&apos;m a bit confused by flushDrawing() need to take a DisplayList argument. In my mind, &quot;flush&quot; means &quot;execute drawing commands that you&apos;ve already received&quot;.

&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.h:58
&gt; +    RemoteImageBufferHashMap m_remoteImageBufferHashMap;

Don&apos;t put &quot;HashMap&quot; in the name. Maybe m_identifierToBufferMap, or just m_imageBuffers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697182</commentid>
    <comment_count>4</comment_count>
      <attachid>411199</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-12 23:55:13 -0700</bug_when>
    <thetext>Created attachment 411199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697183</commentid>
    <comment_count>5</comment_count>
      <attachid>411006</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-13 00:03:55 -0700</bug_when>
    <thetext>Comment on attachment 411006
Patch for review

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

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:74
&gt;&gt; +void RemoteRenderingBackendProxy::remoteCreateImageBufferBackend(const FloatSize&amp; logicalSize, const IntSize&amp; backendSize, float resolutionScale, ColorSpace colorSpace, ImageBufferBackendHandle handle, RemoteResourceIdentifier remoteResourceIdentifier)
&gt; 
&gt; Or createRemoteImageBufferBackend?
&gt; 
&gt; Does this have to do IPC? Could we create the image buffer backend lazily the first time it&apos;s referenced by something?

Name was changed. Eventually we will not send this message to the Web Process because we do not want it to have access to the backend. We need it now because the canvas ImageBuffer is still drawn to the layer in Web Process which should not happen.

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.cpp:76
&gt;&gt; +        image-&gt;flushContext();
&gt; 
&gt; It&apos;s confusing that we have both flushDrawingContext() and flushContext(), but we also have the &quot;commit&quot; terminology for flushContext().

I renamed it to applyDisplayList() since all RemoteImageBufferProxy does is applying a DisplayList to the backend.

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.h:58
&gt;&gt; +    RemoteImageBufferHashMap m_remoteImageBufferHashMap;
&gt; 
&gt; Don&apos;t put &quot;HashMap&quot; in the name. Maybe m_identifierToBufferMap, or just m_imageBuffers.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697796</commentid>
    <comment_count>6</comment_count>
      <attachid>411199</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-14 11:23:25 -0700</bug_when>
    <thetext>Comment on attachment 411199
Patch

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

&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:76
&gt; +    send(Messages::RemoteRenderingBackend::CreateRemoteImageBufferBackend(logicalSize, backendSize, resolutionScale, colorSpace, WTFMove(handle), remoteResourceIdentifier), m_renderingBackendIdentifier);

Do we need separate IPC to create the remote buffer backend, or can we just create them when first referenced, and send the IDs in a reply?

&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:79
&gt; +void RemoteRenderingBackendProxy::commitApplyDisplayList(ImageBufferFlushIdentifier flushIdentifier, RemoteResourceIdentifier remoteResourceIdentifier)

&quot;commitApply&quot; is weird naming. Can this just use &apos;flush&quot;?

&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.cpp:41
&gt; +void RemoteResourceCacheProxy::createImageBuffer(const FloatSize&amp; logicalSize, RenderingMode renderingMode, float resolutionScale, ColorSpace colorSpace, RemoteResourceIdentifier remoteResourceIdentifier)

Should the cache be the one to create the buffer? Normally you just add things to caches, not have the cache create things.

&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.cpp:75
&gt; +        image-&gt;flushContext();
&gt; +        m_remoteRenderingBackendProxy.commitApplyDisplayList(flushIdentifier, remoteResourceIdentifier);

The mixture of &quot;commit&quot; and &quot;flush&quot; is confusing here.

Should the function on m_remoteRenderingBackendProxy be called didFlushDrawingForResource?

&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.cpp:79
&gt; +RefPtr&lt;ImageData&gt; RemoteResourceCacheProxy::getImageData(AlphaPremultiplication outputFormat, const IntRect&amp; srcRect, RemoteResourceIdentifier remoteResourceIdentifier) const

This doesn&apos;t seem like it should live on the resource cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698176</commentid>
    <comment_count>7</comment_count>
      <attachid>411459</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-15 10:44:32 -0700</bug_when>
    <thetext>Created attachment 411459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698185</commentid>
    <comment_count>8</comment_count>
      <attachid>411199</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-15 11:03:54 -0700</bug_when>
    <thetext>Comment on attachment 411199
Patch

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

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:76
&gt;&gt; +    send(Messages::RemoteRenderingBackend::CreateRemoteImageBufferBackend(logicalSize, backendSize, resolutionScale, colorSpace, WTFMove(handle), remoteResourceIdentifier), m_renderingBackendIdentifier);
&gt; 
&gt; Do we need separate IPC to create the remote buffer backend, or can we just create them when first referenced, and send the IDs in a reply?

When ImageBuffer::create() is called for a GPU based ImageBuffer, we have to create an instance of RemoteImageBuffer. RemoteImageBuffer offers the GraphicsContext which is backed by a DisplayList::Recorder. Usually the caller will not need the backend immediately because it has to draw first. At this time RemoteImageBufferProxy is created in GPU Process and it sends its ImageBufferHandle to RemoteImageBuffer. So this workflow works nicely with the common case of using ImageBuffer and at the same time it is asynchronous. So I am not sure why do we have to delay sending this message till the backend is needed? This should cause a delay while sending the message, waiting for the replay and creating the backend.

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:79
&gt;&gt; +void RemoteRenderingBackendProxy::commitApplyDisplayList(ImageBufferFlushIdentifier flushIdentifier, RemoteResourceIdentifier remoteResourceIdentifier)
&gt; 
&gt; &quot;commitApply&quot; is weird naming. Can this just use &apos;flush&quot;?

Function was renamed commitFlushDisplayList().

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.cpp:41
&gt;&gt; +void RemoteResourceCacheProxy::createImageBuffer(const FloatSize&amp; logicalSize, RenderingMode renderingMode, float resolutionScale, ColorSpace colorSpace, RemoteResourceIdentifier remoteResourceIdentifier)
&gt; 
&gt; Should the cache be the one to create the buffer? Normally you just add things to caches, not have the cache create things.

I was seeing RemoteResourceCacheProxy not only a resource cache but also a resource manager. But having the &quot;Cache&quot; in the name makes it confusing to make it create the objects as well. So I moved creating the ImageBuffers back to RemoteRenderingBackendProxy.

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.cpp:75
&gt;&gt; +        m_remoteRenderingBackendProxy.commitApplyDisplayList(flushIdentifier, remoteResourceIdentifier);
&gt; 
&gt; The mixture of &quot;commit&quot; and &quot;flush&quot; is confusing here.
&gt; 
&gt; Should the function on m_remoteRenderingBackendProxy be called didFlushDrawingForResource?

I moved this function back to RemoteRenderingBackendProxy.

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.cpp:79
&gt;&gt; +RefPtr&lt;ImageData&gt; RemoteResourceCacheProxy::getImageData(AlphaPremultiplication outputFormat, const IntRect&amp; srcRect, RemoteResourceIdentifier remoteResourceIdentifier) const
&gt; 
&gt; This doesn&apos;t seem like it should live on the resource cache.

I moved this function back to RemoteRenderingBackendProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698833</commentid>
    <comment_count>9</comment_count>
      <attachid>411634</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-16 17:16:54 -0700</bug_when>
    <thetext>Created attachment 411634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698851</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-16 18:43:21 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #8)
&gt; Comment on attachment 411199 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411199&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:76
&gt; &gt;&gt; +    send(Messages::RemoteRenderingBackend::CreateRemoteImageBufferBackend(logicalSize, backendSize, resolutionScale, colorSpace, WTFMove(handle), remoteResourceIdentifier), m_renderingBackendIdentifier);
&gt; &gt; 
&gt; &gt; Do we need separate IPC to create the remote buffer backend, or can we just create them when first referenced, and send the IDs in a reply?
&gt; 
&gt; When ImageBuffer::create() is called for a GPU based ImageBuffer, we have to
&gt; create an instance of RemoteImageBuffer. RemoteImageBuffer offers the
&gt; GraphicsContext which is backed by a DisplayList::Recorder. Usually the
&gt; caller will not need the backend immediately because it has to draw first.
&gt; At this time RemoteImageBufferProxy is created in GPU Process and it sends
&gt; its ImageBufferHandle to RemoteImageBuffer. So this workflow works nicely
&gt; with the common case of using ImageBuffer and at the same time it is
&gt; asynchronous. So I am not sure why do we have to delay sending this message
&gt; till the backend is needed? This should cause a delay while sending the
&gt; message, waiting for the replay and creating the backend.

This is in GPUProcess/graphics/RemoteRenderingBackendProxy, so I assume it&apos;s sending IPC from GPU to WebProcess, which is confusing because the WebProcess should be the one creating buffer proxies which are then materialized in the GPU process.

&gt; 
&gt; &gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:79
&gt; &gt;&gt; +void RemoteRenderingBackendProxy::commitApplyDisplayList(ImageBufferFlushIdentifier flushIdentifier, RemoteResourceIdentifier remoteResourceIdentifier)
&gt; &gt; 
&gt; &gt; &quot;commitApply&quot; is weird naming. Can this just use &apos;flush&quot;?
&gt; 
&gt; Function was renamed commitFlushDisplayList().

Not ideal but we can wordsmith later.

&gt; &gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteResourceCacheProxy.cpp:41
&gt; &gt;&gt; +void RemoteResourceCacheProxy::createImageBuffer(const FloatSize&amp; logicalSize, RenderingMode renderingMode, float resolutionScale, ColorSpace colorSpace, RemoteResourceIdentifier remoteResourceIdentifier)
&gt; &gt; 
&gt; &gt; Should the cache be the one to create the buffer? Normally you just add things to caches, not have the cache create things.
&gt; 
&gt; I was seeing RemoteResourceCacheProxy not only a resource cache but also a
&gt; resource manager. But having the &quot;Cache&quot; in the name makes it confusing to
&gt; make it create the objects as well. So I moved creating the ImageBuffers
&gt; back to RemoteRenderingBackendProxy.

Seems better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698872</commentid>
    <comment_count>11</comment_count>
      <attachid>411645</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-16 20:06:07 -0700</bug_when>
    <thetext>Created attachment 411645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698873</commentid>
    <comment_count>12</comment_count>
      <attachid>411199</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-16 20:06:55 -0700</bug_when>
    <thetext>Comment on attachment 411199
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:76
&gt;&gt;&gt;&gt; +    send(Messages::RemoteRenderingBackend::CreateRemoteImageBufferBackend(logicalSize, backendSize, resolutionScale, colorSpace, WTFMove(handle), remoteResourceIdentifier), m_renderingBackendIdentifier);
&gt;&gt;&gt; 
&gt;&gt;&gt; Do we need separate IPC to create the remote buffer backend, or can we just create them when first referenced, and send the IDs in a reply?
&gt;&gt; 
&gt;&gt; When ImageBuffer::create() is called for a GPU based ImageBuffer, we have to create an instance of RemoteImageBuffer. RemoteImageBuffer offers the GraphicsContext which is backed by a DisplayList::Recorder. Usually the caller will not need the backend immediately because it has to draw first. At this time RemoteImageBufferProxy is created in GPU Process and it sends its ImageBufferHandle to RemoteImageBuffer. So this workflow works nicely with the common case of using ImageBuffer and at the same time it is asynchronous. So I am not sure why do we have to delay sending this message till the backend is needed? This should cause a delay while sending the message, waiting for the replay and creating the backend.
&gt; 
&gt; This is in GPUProcess/graphics/RemoteRenderingBackendProxy, so I assume it&apos;s sending IPC from GPU to WebProcess, which is confusing because the WebProcess should be the one creating buffer proxies which are then materialized in the GPU process.

RemoteRenderingBackendProxy messages were renamed: ImageBufferBackendWasCreated and FlushDisplayListWasCommitted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698890</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-16 20:45:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/70401828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698916</commentid>
    <comment_count>14</comment_count>
      <attachid>411656</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-10-16 22:52:13 -0700</bug_when>
    <thetext>Created attachment 411656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698921</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-16 23:46:30 -0700</bug_when>
    <thetext>Committed r268637: &lt;https://trac.webkit.org/changeset/268637&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411656.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411005</attachid>
            <date>2020-10-09 20:53:19 -0700</date>
            <delta_ts>2020-10-12 23:55:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217554-20201009205319.patch</filename>
            <type>text/plain</type>
            <size>70321</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMxYWE4Njk0MDM0ZjFl
ZDg1MGRmZjdlYzFlNmViYThkZTNiNGJiZS4uNjJmYjFmMGIyZjM5MGNhYjEzYTM3Zjc3MWI0OThi
YjdjYWViZjQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTEwLTA5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbnRyb2R1Y2UgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHRvIG1hbmFnZSB0aGUg
cmVzb3VyY2VzIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHZpcnR1YWwgbWV0aG9kcyB0byBJbWFnZUJ1
ZmZlciB3aGljaCB1c2VkIHRvIGJlIGEgdmlydHVhbCBtZXRob2QKKyAgICAgICAgb2YgUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LiBUaGlzIG1ldGhvZCBpcyBhbHJlYWR5IG92
ZXJyaWRkZW4KKyAgICAgICAgYnkgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSBhbmQgaXMgY2FsbGVk
IGJ5IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS4gQnV0CisgICAgICAgIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eSBrZWVwcyBhIEhhc2hNYXAgb2YgSW1hZ2VCdWZmZXJzLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyOjpmbHVzaERyYXdpbmdDb250ZXh0KToKKworMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc106
IFJlcGxhY2UgIkltYWdlQnVmZmVySWRlbnRpZmllciIgYnkgYSBnZW5lcmljIGlkZW50aWZpZXIg
bmFtZWQgIlJlbW90ZVJlc291cmNlSWRlbnRpZmllciIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzU1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciB3aWxsIGJl
IHVzZWQgaW4gV2ViQ29yZSB3aGVuIHJlY29yZGluZyBkcmF3aW5nCisgICAgICAgIGEgcmVtb3Rl
IEltYWdlQnVmZmVyIHRvIGFub3RoZXIgcmVtb3RlIEltYWdlQnVmZmVyLiBFdmVudHVhbGx5IGl0
IHdpbGwKKyAgICAgICAgYmUgdXNlZCBkcmF3aW5nIGEgcmVtb3RlIE5hdGl2ZUltYWdlIHRvIGEg
cmVtb3RlIEltYWdlQnVmZmVyIG9yIERPTSBsYXllci4KKworICAgICAgICAqIEhlYWRlcnMuY21h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oOiBBZGRlZC4K
KwogMjAyMC0xMC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIFtHUFUgUHJvY2Vzc10gTWVjaGFuaWNhbCBjbGVhbnVwIGluIERpc3BsYXlMaXN0
UmVjb3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggYTViYTM0N2IxYTFmZmYyOTFkZWE4NDEyM2MwNDY2ZTlhMGU2
NDc4ZS4uMmI5NjcxMDEwOGFlZjY3NjhmYWQ5ZDhhOWQ0MGZmMDg2MWVmNDU3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw5NyBAQAorMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhh
bGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9kdWNlIFJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eSB0byBtYW5hZ2UgdGhlIHJlc291cmNlcyBpbiB0aGUgR1BVIFBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eSB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0
aGUgcmVtb3RlIHJlc291cmNlcworICAgICAgICBpbmNsdWRpbmcgdGhlaXIgYWN0dWFsIGxpZmUg
Y3ljbGUuIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSB3aWxsIGJlIAorICAgICAgICByZXNw
b25zaWJsZSBmb3IgdGhlIElQQyBjb21tdW5pY2F0aW9ucyB3aXRoIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuIEl0IHdpbGwKKyAgICAgICAgZGVsZWdhdGUgYWxsIHRoZSByZXNvdXJjZSBtYW5hZ2Vt
ZW50IHRvIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAgV2UgY2FuIGdl
dCByaWQgb2YgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5IGJlY2F1c2UgYWxs
IGl0IGRvZXMKKyAgICAgICAgaXMgc2VuZGluZyBtZXNzYWdlcyB0byBXZWJQcm9jZXNzLiBSZW1v
dmluZyBpdCB3aWxsIHNpbXBsaWZ5IHRoZSBpbnRlcmZhY2UKKyAgICAgICAgb2YgUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS4gU2VuZGluZyB0aGUgbWVzc2FnZXMgd2lsbCBiZSBtb3ZlZCB0bworICAg
ICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyUHJveHkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VC
dWZmZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyUHJveHk6OmFwcGx5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVtb3RlQ3JlYXRl
SW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVm
ZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmdldEltYWdlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlSW1hZ2VCdWZmZXIp
OiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpnZXRJbWFnZURhdGEgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDogQWRkZWQuCisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgICogR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKKzIwMjAtMTAtMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxs
YXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJbWFnZUJ1
ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBHUFUgUHJvY2VzcyBuZWVkcyBhIHVuaXZlcnNhbCBpZGVudGlmaWVyIGZvciBkcmF3
aW5nIGNhY2hlZCByZXNvdXJjZXMgYW5kIAorICAgICAgICBkcmF3aW5nIGJ1ZmZlcnMgYW5kIGxh
eWVycy4gVGhlIG1lYW5pbmcgb2YgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHdpbGwKKyAgICAg
ICAgZGVwZW5kIG9uIHRoZSBjb250ZXh0IGl0IGlzIHVzZWQgaW4uCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpjcmVhdGVCYWNrZW5kKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Ojpjb21t
aXRGbHVzaENvbnRleHQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVm
ZmVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyUHJveHkpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJl
c291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpn
ZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpyZWxlYXNlSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
Ojp+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmdldEltYWdlRGF0YSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2lu
Z0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpyZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyOjppbWFnZUJ1ZmZlcklkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFn
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVh
c2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZUltYWdlQnVmZmVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKwogMjAyMC0xMC0wOSAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIEFkZCBhZGRpdGlv
bmFsIHN1cHBvcnQgZm9yIHBhaW50aW5nIHZpZGVvIGVsZW1lbnRzIHRvIDJEIGNvbnRleHRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCBhODQ3YjA1YWI0NGU1Y2Q0YTcwNmJlMzA4YzhiNjQ1YjUyNTQw
MGZlLi5hZDE2MGFlMGY1MThlZjRmNzE2YzYwZDQ4ODMxYTg1ZWJmN2E0MzUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTEyMDcsNiArMTIwNyw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRleHRUcmFjay5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9SZWdpb24uaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlSWRl
bnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ01vZGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L1JvdW5kZWRSZWN0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA3ZDYxZTA1YjM1NzczMDRjMTgzYzUwM2Y4MzFlYzg5NDEwMTAw
MDIxLi4zODU4ZTFjMzJlOWQwZTI3ZGU5YjNlMzdiNjg4OTgxNDk0OTg5ZGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTYx
LDYgKzIxNjEsNyBAQAogCQk3MjdBN0YzQTI0MDc4Qjg0MDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJJ
T1N1cmZhY2VCYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MkJBQzNBQjIzRTFFNTQ0MDA4RDc0MUMgLyogSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzI5OUJDNjcyM0Q2QTUzMjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOTlCQzY0MjNE
Njg2QTYwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI5OUJDNjgyM0Q2QTUzRTAwQ0M2
ODgzIC8qIFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzI5RDA1
MzAyNTMxNDI0MzAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5RDA1MkUyNTMxM0UyNjAw
NDIyMDk4IC8qIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyQTczQkVGMjQ1QTNGOTAwMDFDOUQwMyAv
KiBBbmltYXRpb25GcmFtZVJhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBBbmltYXRpb25GcmFtZVJh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
MkJBQzNBRTIzRTFGMEIwMDA4RDc0MUMgLyogSW1hZ2VCdWZmZXJCYWNrZW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MkJBQzNBNTIzRTE3MzI4MDA4
RDc0MUMgLyogSW1hZ2VCdWZmZXJCYWNrZW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzU1M0NGRTgxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oICovOyB9OwpAQCAtOTkyMyw2ICs5OTI0LDcgQEAKIAkJNzI3QUZFRDMxQTJFQTZBMDAwMDQ0
MkU4IC8qIEVYVHNSR0IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVHNSR0IuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyog
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbHBoYVByZW11bHRpcGxp
Y2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOTlCQzY2MjNENjg2QzYw
MENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ01vZGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4
IC8qIFJlbW90ZVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJCQUMzQTQy
M0UxNzMyNzAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MkJBQzNBNTIzRTE3MzI4MDA4RDc0MUMgLyogSW1hZ2VCdWZm
ZXJCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQnVmZmVy
QmFja2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkJBQzNBNjIzRTE3MzI4
MDA4RDc0MUMgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQbGF0Zm9ybUltYWdlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yNjIzOSw2ICsyNjI0MSw3IEBACiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRD
IC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovLAogCQkJCUJDQUI0MTdGMTNFMzU2RTgwMEQ4QUFG
MyAvKiBSZWdpb24uY3BwICovLAogCQkJCUJDQUI0MTgwMTNFMzU2RTgwMEQ4QUFGMyAvKiBSZWdp
b24uaCAqLywKKwkJCQk3MjlEMDUyRTI1MzEzRTI2MDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyLmggKi8sCiAJCQkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJlbW90ZVZp
ZGVvU2FtcGxlLmNwcCAqLywKIAkJCQkwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3Rl
VmlkZW9TYW1wbGUuaCAqLywKIAkJCQk3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVy
aW5nTW9kZS5oICovLApAQCAtMzM1NDEsNiArMzM1NDQsNyBAQAogCQkJCTQ2Qjk1MTlBMjA3RDYz
NTQwMEE3RDJERCAvKiBSZW1vdGVGcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDMzEyRTky
MkZDRDdDMDAwMTIwNEVDIC8qIFJlbW90ZVBsYXliYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
REMzMTJFQjIyRkNEN0M5MDAxMjA0RUMgLyogUmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxs
YmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI5RDA1MzAyNTMxNDI0MzAwNDIyMDk4IC8qIFJl
bW90ZVJlc291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDczQTE1NTQyMTc3
QTQyNjAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
MDZDMEQ4RjBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlFMDUwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oCmluZGV4IGQxNDY0OTJjNGE4ZGY5MzVjYWY5NGI5ZmI5NTU5MDlhYWQxY2Jh
ZjAuLmRiZTAyNWVlOWUxYTQ0MGYwMmVhOTY2NGEzNGY5OGEwZjZjNTFhMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMzMsNiArMzMs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgeworY2xh
c3MgRGlzcGxheUxpc3Q7CiBjbGFzcyBEcmF3aW5nQ29udGV4dDsKIH0KIApAQCAtNjQsNiArNjUs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIERpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dCog
ZHJhd2luZ0NvbnRleHQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIGZs
dXNoRHJhd2luZ0NvbnRleHQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29u
dGV4dChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKSB7IH0KIAogICAgIHZpcnR1YWwg
QWZmaW5lVHJhbnNmb3JtIGJhc2VUcmFuc2Zvcm0oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJ
bnRTaXplIGxvZ2ljYWxTaXplKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yYWY1NDJkZmVjODQ3YWJjMzcxYWEyZjFlOGU0YjhkZDlmYjExMGU1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50
aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFJlbW90ZVJlc291cmNlSWRl
bnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyID0gT2JqZWN0
SWRlbnRpZmllcjxSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2UyNDdhN2FkNGNkMjk1MzhlNGVhZjQwYmQ4MDM2OTY4NjAwOGI4Ni4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclBy
b3h5LmgiCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlICJSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHksIEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklk
ZW50aWZpZXIpCi0gICAgOiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllcihpbWFnZUJ1
ZmZlcklkZW50aWZpZXIpCi17Ci19Ci0KLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlclByb3h5OjpjcmVhdGVCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNv
bnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKLXsKLSAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRT
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSwgbV9pbWFn
ZUJ1ZmZlcklkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyUHJveHk6OmNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRp
ZmllciBmbHVzaElkZW50aWZpZXIpCi17Ci0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q29tbWl0SW1hZ2VCdWZm
ZXJGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyLCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciks
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRkMDVlYWVmNTQ5NDE2ZmRiNjQyNTk1MmUw
YjRjZjNhYTIwNWVjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlclByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQot
Ci0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlLmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIKLSNpbmNs
dWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3Bh
Y2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9GbG9hdFNpemUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotZW51bSBjbGFzcyBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uIDogdWludDhfdDsKLWNsYXNzIEltYWdlRGF0YTsKLX0KLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKLQotY2xh
c3MgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5IHsKLXB1YmxpYzoKLSAgICB2
aXJ0dWFsIH5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkoKSA9IGRlZmF1bHQ7
Ci0KLSAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4gU2VlIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5tZXNzYWdlcy5pbi4KLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29u
dGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIpID0g
MDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShX
ZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3QgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSYsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0KLSAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50
LiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbi4KLSAgICB2b2lkIGNyZWF0
ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKLSAgICB2b2lkIGNvbW1p
dEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcik7Ci0KLSAgICBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkmIGJhY2tlbmQoKSB7IHJldHVybiBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTsgfQotCi1wcml2YXRlOgotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7Ci0gICAgSW1hZ2VCdWZmZXJJZGVu
dGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApp
bmRleCA3NzIxY2NlODQ1NjI2OWFlZjkwMjBiOGJkODk2NWRkMzViNzIyZGRjLi42MTQ1ODZjYTU3
ZTA2YThjNGFkNzM0ZWVlODE0MWQyMTVmYWFiYmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAg
LTI4LDI5ICsyOCwyOSBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbmNyZXRlSW1hZ2VCdWZm
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgotY2xhc3MgUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVy
PEJhY2tlbmRUeXBlPiwgcHVibGljIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eSwgcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgeworY2xh
c3MgUmVtb3RlSW1hZ2VCdWZmZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdl
QnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXll
cjo6RGVsZWdhdGUgewogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyID0gV2ViQ29y
ZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAgICAgdXNpbmcgQmFzZUNvbmNy
ZXRlSW1hZ2VCdWZmZXI6OmNvbnRleHQ7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZm
ZXI6Om1fYmFja2VuZDsKKyAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6cHV0SW1h
Z2VEYXRhOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlm
aWVyKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNl
LCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVt
cGxhdGUgY3JlYXRlPFJlbW90ZUltYWdlQnVmZmVyUHJveHk+KHNpemUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgbnVsbHB0ciwgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIpOworICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZm
ZXI6OnRlbXBsYXRlIGNyZWF0ZTxSZW1vdGVJbWFnZUJ1ZmZlclByb3h5PihzaXplLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG51bGxwdHIsIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKLSAgICBSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kLCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgSW1hZ2VC
dWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKKyAgICBSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kLCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgV2ViQ29y
ZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKICAg
ICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihXVEZNb3ZlKGJhY2tlbmQpKQotICAgICAg
ICAsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eShyZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHksIGltYWdlQnVmZmVySWRlbnRpZmllcikKKyAgICAgICAgLCBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgewot
ICAgICAgICBjcmVhdGVCYWNrZW5kKG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSwgbV9iYWNrZW5k
LT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgpLCBtX2JhY2tlbmQt
PmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUo
KSk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbW90ZUNyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZChtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCksIG1fYmFja2VuZC0+YmFj
a2VuZFNpemUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9uU2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xv
clNwYWNlKCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCksIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgflJlbW90ZUltYWdlQnVmZmVy
UHJveHkoKQpAQCAtNjIsOSArNjIsNiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAg
IHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpmbHVzaERyYXdpbmdDb250ZXh0OwotICAg
IHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7Ci0KICAgICB2b2lk
IGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0JiBkaXNwbGF5TGlzdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChkaXNwbGF5TGlz
dC5pdGVtQ291bnQoKSkgewpAQCAtNzMsMTggKzcwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBm
bHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKLSAgICAgICAgbV9iYWNrZW5kLT5mbHVz
aENvbnRleHQoKTsKLSAgICAgICAgY29tbWl0Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllcik7
Ci0gICAgfQotCi0gICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdl
YkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBvdmVycmlkZQotICAgIHsKLSAgICAgICAgcmV0dXJu
IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpnZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNS
ZWN0KTsKLSAgICB9Ci0KICAgICBib29sIGFwcGx5KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
JiBpdGVtLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBpZiAoaXRlbS50eXBlKCkgPT0gV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpQdXRJbWFnZURhdGEpIHsKQEAgLTEwMyw3ICs4OCw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGFwcGx5KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQYWludEZyYW1lRm9yTWVkaWEmIGl0ZW0s
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICB7Ci0gICAgICAgIGF1dG8g
cHJvY2VzcyA9IGJhY2tlbmQoKS5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7CisgICAgICAg
IGF1dG8gcHJvY2VzcyA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKTsKICAgICAgICAgaWYgKCFwcm9jZXNzKQogICAgICAgICAgICAgcmV0
dXJuOwogCkBAIC0xMTcsNiArMTAyLDggQEAgcHJpdmF0ZToKIAogICAgICAgICBjb250ZXh0LnBh
aW50RnJhbWVGb3JNZWRpYSgqcGxheWVyLCBpdGVtLmRlc3RpbmF0aW9uKCkpOwogICAgIH0KKwor
ICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAKaW5kZXggNzUzYTVjOGJhOTdmZTcyMDgzMTA1OGU4NGM1Y2Q4M2I0YjE3NTU3
OS4uMjVkNDUzMTBhOWQ5M2Q3MDIwNzVmNDk4NjUxMjdjMWI4NDQwYzEyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5j
bHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5TWVzc2FnZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NCw2ICs1NCwx
MSBAQCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6On5SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkoKQogICAgICAgICBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5tZXNzYWdlUmVjZWl2
ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyLnRvVUludDY0KCkpOwogfQogCitHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25z
dAoreworICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7Cit9CisK
IElQQzo6Q29ubmVjdGlvbiogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2Vu
ZGVyQ29ubmVjdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIGdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCkpCkBAIC02Niw2NCAr
NzEsMzYgQEAgdWludDY0X3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2Vu
ZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIudG9VSW50NjQoKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UsIEltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIp
Cit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVtb3RlQ3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJh
Y2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvKiBncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmdldCgpOwotICAgIGlmICgh
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1f
aW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5jb250YWlucyhpbWFnZUJ1ZmZlcklkZW50aWZp
ZXIpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNj
ZWxlcmF0ZWQpIHsKLSAgICAgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCAqdGhpcywgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkgewotICAgICAgICAg
ICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmFkZChpbWFnZUJ1ZmZlcklkZW50aWZp
ZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJlbW90
ZUFjY2VsZXJhdGVkIHx8IHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5h
Y2NlbGVyYXRlZCkgewotICAgICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0
ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIGltYWdlQnVmZmVySWRlbnRpZmllcikpIHsKLSAgICAg
ICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5hZGQoaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyLCBXVEZNb3ZlKGltYWdlQnVmZmVyKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobG9n
aWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1v
dmUoaGFuZGxlKSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxl
YXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmll
cikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAg
IC8vIENyZWF0ZUltYWdlQnVmZmVyIG1lc3NhZ2Ugc2hvdWxkIGhhdmUgYmVlbiByZWNlaXZlZCBi
ZWZvcmUgdGhpcyBvbmUuCi0gICAgYm9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlck1hcC5yZW1vdmUoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICBBU1NFUlRfVU5VU0VE
KGZvdW5kLCBmb3VuZCk7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3JlYXRlSW1h
Z2VCdWZmZXIobG9naWNhbFNpemUsIHJlbmRlcmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxp
Y2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBJbWFnZUJ1ZmZl
cklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4
dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAg
IGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdl
dChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKSB7Ci0gICAgICAgIGF1dG8gaW1hZ2VEYXRhID0gaW1h
Z2VCdWZmZXItPmdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOwotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihJUEM6OkltYWdlRGF0YVJlZmVyZW5jZShXVEZNb3ZlKGltYWdlRGF0
YSkpKTsKLSAgICB9CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuZmx1c2hEcmF3aW5n
Q29udGV4dChkaXNwbGF5TGlzdCwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAotdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29u
dGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0
LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFu
ZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlM
aXN0LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1
dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KGltYWdl
QnVmZmVySWRlbnRpZmllcikpCi0gICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250
ZXh0KGRpc3BsYXlMaXN0KTsKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5mbHVzaERy
YXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpOworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNvbW1pdElt
YWdlQnVmZmVyRmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllciwgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRD
b21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlz
dCwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZl
cklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9u
IG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAg
IGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdl
dChpbWFnZUJ1ZmZlcklkZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3
aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgZmx1c2hJZGVudGlmaWVyKTsKKyAgICBh
dXRvIGltYWdlRGF0YSA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmdldEltYWdlRGF0YShv
dXRwdXRGb3JtYXQsIHNyY1JlY3QsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgY29t
cGxldGlvbkhhbmRsZXIoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UoV1RGTW92ZShpbWFnZURhdGEp
KSk7CiB9CiAKLUdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0Cit2b2lkIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIG1fZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQoKTsKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5k
ZXggYTA5NTJiYWZiM2MxNTMyZDdkYzk5MDA2ZWI0MGYzMWJmOTFkMjUzYi4uOWY2OGYyYjQ3Mzdl
ZDM0ZGYxOTY4Mjk0ZWEwMzcwMGZhN2M1NzAxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuaApAQCAtMjgsMjQgKzI4LDI0IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5o
IgogI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiSW1h
Z2VCdWZmZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhUmVmZXJlbmNlLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgot
I2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIgorI2luY2x1
ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNp
emUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4KLSNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiBjbGFzcyBEaXNwbGF5TGlzdDsKIH0KK2NsYXNz
IEZsb2F0U2l6ZTsKK2VudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNz
IFJlbmRlcmluZ01vZGUgOiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU5
LDggKzU5LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBS
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5KCk7CiAKLSAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXI7IH0KICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKCkgY29uc3Q7CisgICAgYm9vbCBhcHBseVJlc291cmNlSXRlbShXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpOworCisgICAg
Ly8gTWVzc2FnZXMgdG8gYmUgc2VudC4KKyAgICB2b2lkIHJlbW90ZUNyZWF0ZUltYWdlQnVmZmVy
QmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3Jl
OjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRp
Zmllcik7CkBAIC03NCwxNCArNzcsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVj
ZWl2ZWQuCi0gICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVySWRlbnRpZmllcik7Ci0gICAg
dm9pZCByZWxlYXNlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKLSAgICB2b2lk
IGZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIHZvaWQgZmx1c2hJ
bWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZl
cklkZW50aWZpZXIpOwotICAgIHZvaWQgZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIEltYWdl
QnVmZmVySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJl
ZmVyZW5jZSYmKT4mJik7Ci0KLSAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFw
ID0gSGFzaE1hcDxJbWFnZUJ1ZmZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk+PjsKLSAgICBJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcDsKKyAgICB2b2lkIGNyZWF0
ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNv
cmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JT
cGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZsdXNo
SW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlz
cGxheUxpc3QmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgZ2V0SW1hZ2VEYXRhKFdl
YkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRS
ZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4mJik7CisgICAgdm9pZCBy
ZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KworICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eSB7ICp0aGlzIH07CiAgICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIg
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3OThjOGI0ZWRiNTdmNWFkMDgyYmE4MWMx
MDA4YjBkY2RlZmRmMThhLi4yNmNmMTM2MWZkYWIwZWIwZDNmYWY3N2U1ZjdkMmQxYzU2Zjk0MGI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KQEAg
LTIzLDExICsyMywxMSBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4g
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIHZvaWQgQ3Jl
YXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBp
bWFnZUJ1ZmZlcklkZW50aWZpZXIpCi0gICAgdm9pZCBSZWxlYXNlSW1hZ2VCdWZmZXIoV2ViS2l0
OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQotICAgIHZvaWQg
Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VC
dWZmZXJJZGVudGlmaWVyKQotICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwg
V2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYktp
dDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICBHZXRJ
bWFnZURhdGEoZW51bTp1aW50OF90IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0
cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikgLT4gKElQQzo6SW1hZ2VEYXRhUmVmZXJl
bmNlIGltYWdlRGF0YSkgU3luY2hyb25vdXMKKyAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyKFdl
YkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29s
b3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikKKyAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYkNvcmU6OlJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgdm9pZCBG
bHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVu
dGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICBHZXRJbWFnZURhdGEoZW51bTp1aW50OF90
IFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJ
bnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpIC0+IChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSBpbWFnZURhdGEp
IFN5bmNocm9ub3VzCisgICAgdm9pZCBSZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWNmMjAzOWI4MWRhOGNmODk0YTAxN2I3ZWRiODdkZGVhYjI3OGM5OAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVJlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHko
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkp
CisgICAgOiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkpCit7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjcmVhdGVJ
bWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdNb2RlIHJl
bmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorewor
ICAgIGlmIChtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC5jb250YWlucyhyZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVy
PiBpbWFnZTsKKworICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJlbW90
ZUFjY2VsZXJhdGVkKQorICAgICAgICBpbWFnZSA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2Us
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
OworCisgICAgaWYgKCFpbWFnZSB8fCByZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJl
bW90ZVVuYWNjZWxlcmF0ZWQpCisgICAgICAgIGltYWdlID0gVW5hY2NlbGVyYXRlZFJlbW90ZUlt
YWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKTsKKworICAgIGlmIChpbWFnZSkgeworICAgICAgICBtX3JlbW90ZUltYWdlQnVmZmVy
SGFzaE1hcC5hZGQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwor
SW1hZ2VCdWZmZXIqIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4
dChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRv
IGltYWdlID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcikpIHsKKyAgICAgICAgaW1hZ2UtPmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxp
c3QpOworICAgICAgICByZXR1cm4gaW1hZ2U7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOwor
fQorCitJbWFnZUJ1ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpmbHVzaERyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxp
c3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7
CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKSB7CisgICAgICAgIGltYWdlLT5mbHVzaENvbnRleHQo
KTsKKyAgICAgICAgcmV0dXJuIGltYWdlOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworUmVmUHRyPEltYWdlRGF0YT4gUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpnZXRJbWFnZURh
dGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNy
Y1JlY3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
IGNvbnN0Cit7CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1h
cC5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGltYWdlLT5n
ZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorewor
ICAgIGlmIChtX3JlbW90ZUltYWdlQnVmZmVySGFzaE1hcC5yZW1vdmUocmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworICAgIC8vIENhY2hpbmcgdGhlIHJlbW90ZSBy
ZXNvdXJjZSBzaG91bGQgaGF2ZSBoYXBwZW5lZCBiZWZvcmUgcmVsZWFzaW5nIGl0LgorICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNzg4NjFlYzE3NDc2ZjZkYjUwZGY0MTNiNjljOTk0ZTQ3MGI0N2JjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBEaXNw
bGF5TGlzdCB7CitjbGFzcyBEaXNwbGF5TGlzdDsKK2NsYXNzIEl0ZW07Cit9Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CisKK2Ns
YXNzIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB7CitwdWJsaWM6CisgICAgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYpOworCisgICAgdm9pZCBj
cmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBX
ZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgV2ViQ29y
ZTo6SW1hZ2VCdWZmZXIqIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChj
b25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBXZWJDb3JlOjpSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpOworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldElt
YWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKSBjb25zdDsKKworICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgdXNpbmcgUmVtb3Rl
SW1hZ2VCdWZmZXJIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4+OworCisgICAgUmVt
b3RlSW1hZ2VCdWZmZXJIYXNoTWFwIG1fcmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwOworICAgIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIuY3BwCmluZGV4IDQwMTdhMmE4ZjIyY2VjZWNjMjE1MWEzMGEzMjc4ZmY5
MDZlYWYzMmEuLjY3NDhkMWY1ZDgwMGQ5NTc0ZjIzODA3NWIxODkwYjRlNGFjZWU5MTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdS
SVRFUkRFTEVHQVRFKQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA5NzdmOTNmZjVjM2MyYjgxNzg0NmM5YTlhNzU1MTc4
OWM4ZWZlMDVjLi42MWI4OTBkYzc4NjdjMzNiMDA1ZjIyZTkzYmIxYWY0N2RkZDNiMTdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKQEAgLTMwLDYg
KzMwLDcgQEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiR1BVUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgogI2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQppbmRleCBmYWNkMmY3YWZiNWEzOTJlZTIwOTY3YTc2ZmQ0MWUxNGRmYjE1MGI5
Li44NTljYzc1NjllOTJkMTY0NTU1ZDY5ODA5NzIyMDBiYWI5YmQ1OTA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIyMiw2ICsyMjIsNyBAQCBkZWYgdHlw
ZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6
UG9pbnRlcklEJywKICAgICAgICAgJ1dlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyJywKKyAgICAgICAgJ1dl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpSZW5k
ZXJpbmdNb2RlJywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyJywKQEAgLTI0MCw3
ICsyNDEsNiBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgog
ICAgICAgICAnV2ViS2l0OjpHZW9sb2NhdGlvbklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUnLAogICAgICAgICAnV2ViS2l0OjpJbWFnZUJ1ZmZl
ckZsdXNoSWRlbnRpZmllcicsCi0gICAgICAgICdXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRCcsCiAgICAgICAgICdX
ZWJLaXQ6OkxlZ2FjeUN1c3RvbVByb3RvY29sSUQnLAogICAgICAgICAnV2ViS2l0OjpMaWJXZWJS
VENSZXNvbHZlcklkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZGFmNWZiNzMxM2JkZDk4MDY4
ZGVkZDM5Y2JhYzRkZmJlOTM3N2NhOC4uNjdjMTMzZTY3ZDNkZTQ2NjE3MjUwZmY1OTAyMmMwMWFk
NDkwMmQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNCw4ICsyNCw4IEBACiBHUFVQcm9jZXNzL0dQVVBy
b2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQ
cm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCi1HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAKIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eU1hbmFnZXIuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94
eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDk4NDM0Y2JhYzBjMmY2MWEyZDZlMjgwNzE2ZWNkNzI4ODI4ODkyODIuLjM0NWJiZmI1
MzYwNjFlNjFmNTRiZmZhMGU0ZmE3YjA1NzJjOTA2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzg4OSw3ICszODg5LDYgQEAKIAkJ
NTUwNjQwQTIyNDA3MUE2MTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTA2NDBBMzI0MDcxQTYxMDBBQUUwNDUgLyog
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTA2NDBB
NDI0MDcxQzIxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTUwNjQwQTUyNDA3MUND
MDAwQUFFMDQ1IC8qIEltYWdlQnVmZmVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFn
ZUJ1ZmZlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBRDA5
NDIyNDA4QTAyRTAwREU0RDJGIC8qIFJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NUFEMDk0MzI0MDhBMEU2MDBERTREMkYgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUFEMDk0NDI0MDhBQkIzMDBERTREMkYg
LyogSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZm
ZXJGbHVzaElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQxODAs
OCArNDE3OSw2IEBACiAJCTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQbGF0Zm9ybVJlbW90
ZUltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyNzgwMEMyNDA5N0EwMjAwN0QzNzZC
IC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyMjc4MDBEMjQwOTdBMDIwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzIyNzgwMTEyNDA5OTA2
RTAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3MjI3ODAxMjI0MDk5MDZFMDA3RDM3NkIg
LyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MjdBN0YzNDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM1MjQwNzg1N0YwMDREMjkzMSAvKiBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM2MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00MTkxLDYgKzQxODgsOCBAQAogCQk3MjdBN0Y0OTI0MDhBRUU2MDA0
RDI5MzEgLyogUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VC
dWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAw
ODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyOEU4NkYwMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUzMjI1MzE0RkVGMDA0MjIwOTggLyog
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOUQw
NTMzMjUzMTRGRUYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc1QThEMkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAv
KiBXS1dlYnNpdGVEYXRhU3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1dlYnNpdGVEYXRhU3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYnNpdGVEYXRhU3RvcmVJ
bnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODA3Niw3ICs4MDc1LDYg
QEAKIAkJCQk3MjdBN0YzMzI0MDc4NTI3MDA0RDI5MzEgLyogY29jb2EgKi8sCiAJCQkJNzI3QTdG
MzkyNDA3ODhGMTAwNEQyOTMxIC8qIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oICovLAogCQkJ
CTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5o
ICovLAotCQkJCTU1MDY0MEE1MjQwNzFDQzAwMEFBRTA0NSAvKiBJbWFnZUJ1ZmZlcklkZW50aWZp
ZXIuaCAqLywKIAkJCQk3MjdBN0YzNzI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmNwcCAqLywKIAkJCQk3MjdBN0YzNjI0MDc4OEYwMDA0RDI5MzEg
LyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmggKi8sCiAJCQkJNzI3QTdGMzgy
NDA3ODhGMDAwNEQyOTMxIC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmgg
Ki8sCkBAIC04MDk2LDEyICs4MDk0LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTU1QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaCAqLywKLQkJCQk3MjI3ODAxMTI0MDk5MDZFMDA3RDM3NkIgLyogUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcCAqLywKLQkJCQk3MjI3ODAxMjI0
MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmgg
Ki8sCiAJCQkJNTVBRDA5NDIyNDA4QTAyRTAwREU0RDJGIC8qIFJlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaCAqLywKIAkJCQk1NTA2NDBBMjI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmNwcCAqLywKIAkJCQk1NTA2NDBBMzI0MDcxQTYxMDBBQUUwNDUgLyogUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggKi8sCiAJCQkJNTUwNjQwQTQyNDA3MUMyMTAwQUFF
MDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQk3
MjlEMDUzMjI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCAq
LywKKwkJCQk3MjlEMDUzMzI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGdyYXBoaWNzOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL0ltYWdlQnVmZmVySWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5YTFiYzlhZTg3ZGM4ZDcyNDI4YTBiODA5Y2FkMGQ4MGE0Y2QxY2I5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJJZGVudGlmaWVyLmgKKysrIC9kZXYvbnVs
bApAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotZW51bSBJbWFnZUJ1ZmZlcklkZW50aWZpZXJUeXBlIHsgfTsK
LXVzaW5nIEltYWdlQnVmZmVySWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VCdWZm
ZXJJZGVudGlmaWVyVHlwZT47Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8g
RU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlci5jcHAKaW5kZXggNzcxNTBjN2IwNzkzYWZlOWFjNWM4M2E5YWM3NDZiYTMxOGU1MWI4
Zi4uNGU5Yjc2MmQ4ZTBjZjVmZmY4N2YxYzQyODQ1YWYwMDRhOGRhMWRhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwCkBAIC00MCw3ICs0MCw3IEBA
IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXIoY29uc3QgRmxvYXRTaXplCiAgICAgOiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQo
bWFrZVdlYWtQdHIocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkpCiB7CiAgICAgLy8gQ3JlYXRlIHRo
ZSBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5LgotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+
c2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpDcmVhdGVJbWFnZUJ1
ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIG1f
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcigpKTsKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q3JlYXRlSW1hZ2VCdWZm
ZXIoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX3Jl
bW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIoKSk7CiB9CiAKIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXI6On5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKCkKQEAgLTQ4LDEzICs0OCwx
MyBAQCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjp+UmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlcigpCiAgICAgLy8gUmVsZWFzZSB0aGUgUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS4KICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKICAgICAgICAgcmV0dXJuOwot
ICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpSZWxlYXNlSW1hZ2VCdWZmZXIobV9pbWFnZUJ1ZmZlcklkZW50aWZp
ZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
KCkpOworICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjpSZWxlYXNlUmVtb3RlUmVzb3VyY2UobV9yZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKCkpOwogfQogCiBSZWZQdHI8SW1hZ2VEYXRhPiBSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyOjpnZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRw
dXRGb3JtYXQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QpIGNvbnN0CiB7CiAgICAgSVBDOjpJbWFn
ZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhUmVmZXJlbmNlOwotICAgIG1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZC0+c2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
R2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCwgbV9pbWFnZUJ1ZmZlcklkZW50aWZp
ZXIpLCBNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpHZXRJbWFnZURhdGE6
OlJlcGx5KGltYWdlRGF0YVJlZmVyZW5jZSksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSwgMV9zKTsKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQtPnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Okdl
dEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKSwgTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6R2V0SW1hZ2VEYXRh
OjpSZXBseShpbWFnZURhdGFSZWZlcmVuY2UpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCksIDFfcyk7CiAgICAgcmV0dXJuIGltYWdlRGF0YVJl
ZmVyZW5jZS5idWZmZXIoKTsKIH0KIApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OgogICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQogICAgICAgICByZXR1
cm47CiAgICAgCi0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4
dChkaXNwbGF5TGlzdCwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQtPnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOworICAgIG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QsIG1fcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllcigpKTsKICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwogfQogCkBAIC04NCw3
ICs4NCw3IEBAIHZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3
aW5nQ29udGV4dEFuZFdhaXRDb21taXQoV2ViQ29yZTo6CiAgICAgaWYgKCFtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQpCiAgICAgICAgIHJldHVybjsKICAgICBtX3NlbnRGbHVzaElkZW50aWZpZXIg
PSBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBt
X3NlbnRGbHVzaElkZW50aWZpZXIsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKKyAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlM
aXN0LCBtX3NlbnRGbHVzaElkZW50aWZpZXIsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsK
ICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwogICAgIHdhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZs
dXNoQ29udGV4dCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXIuaAppbmRleCA2MjA0MThkNzhjMjdmMjhjNTc0OTAyYzJlMWJhOWEyMzcxNzUxN2I5Li42Y2Zj
ODU4OTVhNTE4YWE0Zjc4ZTk1NDJiOTBjOGExMzRiZGE4NmI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaApAQCAtMjksMTAgKzI5LDEwIEBACiAKICNpbmNs
dWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVySWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxp
c3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdN
b2RlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcigpOwogCi0gICAgSW1hZ2VCdWZmZXJJZGVudGlm
aWVyIGltYWdlQnVmZmVySWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyOyB9CisgICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyOyB9CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4gU2VlIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4uCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUJhY2tl
bmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29s
b3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKSA9IDA7CkBAIC03Miw3ICs3Miw3IEBA
IHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBXZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ+IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKLSAgICBJbWFnZUJ1ZmZlcklkZW50aWZpZXIg
bV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIgeyBJbWFnZUJ1ZmZlcklkZW50aWZpZXI6OmdlbmVyYXRl
KCkgfTsKKyAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgeyBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVy
YXRlKCkgfTsKIAogICAgIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIG1fc2VudEZsdXNoSWRl
bnRpZmllcjsKICAgICBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBtX3JlY2VpdmVkRmx1c2hJ
ZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggOTk1MzQxNzg3
ZWRhMjBhNTU0ZTRkNjdiYTUzZGM2OThhNTM3MGNjMC4uZGJiZTliODMwMzZmYmU2YTBkNDAzYWNm
ZDhiOWU3ZTllNjcwZDUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC05
MCwzNSArOTAsMzUgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG8KIHsKICAgICBpZiAoc2hvdWxk
QWNjZWxlcmF0ZSA9PSBTaG91bGRBY2NlbGVyYXRlOjpZZXMpIHsKICAgICAgICAgaWYgKGF1dG8g
aW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwg
UmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgKnRoaXMpKSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJN
YXAuYWRkKGltYWdlQnVmZmVyLT5pbWFnZUJ1ZmZlcklkZW50aWZpZXIoKSwgaW1hZ2VCdWZmZXIu
Z2V0KCkpOworICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmFkZChp
bWFnZUJ1ZmZlci0+cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCksIGltYWdlQnVmZmVyLmdldCgp
KTsKICAgICAgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKICAgICAgICAgfQogICAgIH0KIAog
ICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVy
OjpjcmVhdGUoc2l6ZSwgUmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5hY2NlbGVyYXRlZCwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcykpIHsKLSAgICAgICAgbV9pbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyTWFwLmFkZChpbWFnZUJ1ZmZlci0+aW1hZ2VCdWZmZXJJZGVudGlmaWVyKCks
IGltYWdlQnVmZmVyLmdldCgpKTsKKyAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
TWFwLmFkZChpbWFnZUJ1ZmZlci0+cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKCksIGltYWdlQnVm
ZmVyLmdldCgpKTsKICAgICAgICAgcmV0dXJuIGltYWdlQnVmZmVyOwogICAgIH0KIAogICAgIHJl
dHVybiBudWxscHRyOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQor
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKICAgICAvLyBD
cmVhdGVJbWFnZUJ1ZmZlciBtZXNzYWdlIHNob3VsZCBoYXZlIGJlZW4gcmVjZWl2ZWQgYmVmb3Jl
IHRoaXMgb25lLgotICAgIGJvb2wgZm91bmQgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJN
YXAucmVtb3ZlKGltYWdlQnVmZmVySWRlbnRpZmllcik7CisgICAgYm9vbCBmb3VuZCA9IG1faW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5yZW1vdmUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KTsKICAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYg
bG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhh
bmRsZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKK3ZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZs
b2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlck1hcC5nZXQoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkKKyAgICBpZiAoYXV0byBp
bWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQocmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKSkKICAgICAgICAgaW1hZ2VCdWZmZXItPmNyZWF0ZUJhY2tlbmQobG9n
aWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1v
dmUoaGFuZGxlKSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y29tbWl0SW1h
Z2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVu
dGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1h
Z2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KGltYWdlQnVmZmVy
SWRlbnRpZmllcikpCisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIGlt
YWdlQnVmZmVyLT5jb21taXRGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCBmNDk2MTU4ZTdkNDBlZWIwNWFjMzk0MzRhZjI0
NjMzYmFiYzdmMGVmLi4yOGE2NDNhNDhhZjU1OGFjZTRjZjgxZDc0MTI0Zjc1MThlODE2YjAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5j
bHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oIgpAQCAtMzcsNiArMzYsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlz
cGxheUxpc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5k
ZXJpbmdNb2RlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6U2hvdWxkQWNjZWxlcmF0ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlKTsKLSAgICB2b2lkIHJlbGVhc2VJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIHZvaWQgcmVsZWFzZVJlbW90
ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAKICAgICBib29s
IHdhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsKICAgICBib29sIHdhaXRGb3JDb21t
aXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOwpAQCAtNzEsMTAgKzcxLDEwIEBAIHByaXZhdGU6
CiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUg
cmVjZWl2ZWQuCi0gICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2Vu
ZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIHZvaWQgY29t
bWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIElt
YWdlQnVmZmVySWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQo
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JT
cGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOworICAgIHZvaWQgY29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoSW1hZ2VC
dWZmZXJGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7
CiAKLSAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwID0gSGFzaE1hcDxJbWFn
ZUJ1ZmZlcklkZW50aWZpZXIsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIqPjsKKyAg
ICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIq
PjsKICAgICBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlck1hcDsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyIHsgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI6OmdlbmVyYXRlKCkg
fTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KaW5k
ZXggMTJhN2JmOGRhNGM4MjU3MGJjYTM2YTEzNWZkNzFhZjI1ODhiNjRkNS4uMmMwZjdlOGExMjAz
ZjI2ODY1MmEwMGZjMWY3YjE3ZGE1OTlkMmFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5tZXNzYWdlcy5pbgpAQCAtMjMsOCArMjMsOCBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3Vu
dGVkIHsKLSAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChXZWJDb3JlOjpGbG9hdFNp
emUgbG9naWNhbFNpemUsIFdlYkNvcmU6OkludFNpemUgYmFja2VuZFNpemUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJLaXQ6OkltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVy
IGltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICB2b2lkIENvbW1pdEltYWdlQnVmZmVyRmx1c2hD
b250ZXh0KFdlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVy
LCBXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCisg
ICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2lj
YWxTaXplLCBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHZvaWQgQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENv
bnRleHQoV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIs
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411006</attachid>
            <date>2020-10-09 21:43:19 -0700</date>
            <delta_ts>2020-10-12 23:55:11 -0700</delta_ts>
            <desc>Patch for review</desc>
            <filename>resource-cache-2.patch</filename>
            <type>text/plain</type>
            <size>38355</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNzI0NWZjOGNhODAuLjYyZmIxZjBiMmYzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDIwLTEwLTA5ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbnRyb2R1Y2UgUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5IHRvIG1hbmFnZSB0aGUgcmVzb3VyY2VzIGluIHRoZSBHUFUgUHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTU0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
bmV3IHZpcnR1YWwgbWV0aG9kcyB0byBJbWFnZUJ1ZmZlciB3aGljaCB1c2VkIHRvIGJlIGEgdmly
dHVhbCBtZXRob2QKKyAgICAgICAgb2YgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclBy
b3h5LiBUaGlzIG1ldGhvZCBpcyBhbHJlYWR5IG92ZXJyaWRkZW4KKyAgICAgICAgYnkgUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eSBhbmQgaXMgY2FsbGVkIGJ5IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS4gQnV0CisgICAgICAgIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSBrZWVwcyBhIEhhc2hNYXAg
b2YgSW1hZ2VCdWZmZXJzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpmbHVzaERyYXdpbmdDb250ZXh0
KToKKwogMjAyMC0xMC0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc106IFJlcGxhY2UgIkltYWdlQnVmZmVySWRlbnRp
ZmllciIgYnkgYSBnZW5lcmljIGlkZW50aWZpZXIgbmFtZWQgIlJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
CmluZGV4IGQxNDY0OTJjNGE4ZC4uZGJlMDI1ZWU5ZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTMzLDYgKzMzLDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKK2NsYXNzIERpc3BsYXlM
aXN0OwogY2xhc3MgRHJhd2luZ0NvbnRleHQ7CiB9CiAKQEAgLTY0LDYgKzY1LDcgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBEaXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRleHQqIGRyYXdpbmdDb250
ZXh0KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdD
b250ZXh0KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3Qg
RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JikgeyB9CiAKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5z
Zm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50U2l6ZSBsb2dp
Y2FsU2l6ZSgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmFkNjJkZjUzNzE3Li4yYjk2NzEwMTA4
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMjAtMTAtMDkgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIElu
dHJvZHVjZSBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgdG8gbWFuYWdlIHRoZSByZXNvdXJjZXMg
aW4gdGhlIEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc1NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkgd2lsbCBiZSByZXNwb25zaWJsZSBm
b3IgbWFuYWdpbmcgdGhlIHJlbW90ZSByZXNvdXJjZXMKKyAgICAgICAgaW5jbHVkaW5nIHRoZWly
IGFjdHVhbCBsaWZlIGN5Y2xlLiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgd2lsbCBiZSAK
KyAgICAgICAgcmVzcG9uc2libGUgZm9yIHRoZSBJUEMgY29tbXVuaWNhdGlvbnMgd2l0aCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLiBJdCB3aWxsCisgICAgICAgIGRlbGVnYXRlIGFsbCB0aGUgcmVz
b3VyY2UgbWFuYWdlbWVudCB0byBpdHMgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LgorCisgICAg
ICAgIFdlIGNhbiBnZXQgcmlkIG9mIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eSBiZWNhdXNlIGFsbCBpdCBkb2VzCisgICAgICAgIGlzIHNlbmRpbmcgbWVzc2FnZXMgdG8gV2Vi
UHJvY2Vzcy4gUmVtb3ZpbmcgaXQgd2lsbCBzaW1wbGlmeSB0aGUgaW50ZXJmYWNlCisgICAgICAg
IG9mIFJlbW90ZUltYWdlQnVmZmVyUHJveHkuIFNlbmRpbmcgdGhlIG1lc3NhZ2VzIHdpbGwgYmUg
bW92ZWQgdG8KKyAgICAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LgorCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJv
eHkuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmg6IFJlbW92ZWQuCisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUltYWdlQnVmZmVyUHJveHk6OlJlbW90ZUltYWdlQnVmZmVyUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjphcHBseSk6CisgICAgICAgICogR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OnJlbW90ZUNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5n
Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpnZXRJbWFnZURhdGEpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFz
ZUltYWdlQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZl
cik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Zmx1c2hEcmF3
aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
Zmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6Z2V0SW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg6IEFkZGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwOgor
ICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuY3BwOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTEwLTA5ICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXTogUmVw
bGFjZSAiSW1hZ2VCdWZmZXJJZGVudGlmaWVyIiBieSBhIGdlbmVyaWMgaWRlbnRpZmllciBuYW1l
ZCAiUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlclByb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Uy
NDdhN2FkNGNkLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIgotCi0jaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1l
c3NhZ2VzLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCi0KLW5h
bWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
clByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQotICAg
IDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkocmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5KQotICAgICwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVy
KQotewotfQotCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Y3Jl
YXRlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBi
YWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCi17Ci0gICAgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q3Jl
YXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIG1faW1hZ2VCdWZmZXJJZGVudGlm
aWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIoKSk7Ci19Ci0KLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
Ojpjb21taXRGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVu
dGlmaWVyKQotewotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0
KGZsdXNoSWRlbnRpZmllciwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGE0ZDA1ZWFlZjU0OS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKLSNp
bmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkltYWdlQnVm
ZmVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1lbnVtIGNsYXNzIEFscGhhUHJlbXVsdGlwbGljYXRp
b24gOiB1aW50OF90OwotY2xhc3MgSW1hZ2VEYXRhOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwotCi1jbGFzcyBSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkgewotcHVibGljOgotICAgIHZpcnR1YWwgflJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eSgpID0gZGVmYXVsdDsKLQotICAgIC8vIE1l
c3NhZ2VzIHRvIGJlIHJlY2VpdmVkLiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1l
c3NhZ2VzLmluLgotICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1
YWwgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhh
UHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBz
cmNSZWN0KSBjb25zdCA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICBSZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiwgSW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKTsKLQotICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuIFNlZSBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluLgotICAgIHZvaWQgY3JlYXRlQmFja2VuZChjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNl
LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpOwotICAgIHZvaWQgY29tbWl0Rmx1c2hDb250ZXh0
KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyKTsKLQotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSYgYmFja2VuZCgpIHsgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKLSAgICBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgbV9pbWFn
ZUJ1ZmZlcklkZW50aWZpZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IGIxNTdhYmJj
MGQ1MC4uNjE0NTg2Y2E1N2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTI4LDE3ICsyOCwx
NyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgotY2xhc3MgUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBl
PiwgcHVibGljIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eSwgcHVibGljIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgeworY2xhc3MgUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tl
bmRUeXBlPiwgcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUg
ewogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyID0gV2ViQ29yZTo6Q29uY3JldGVJ
bWFnZUJ1ZmZlcjxCYWNrZW5kVHlwZT47CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZm
ZXI6OmNvbnRleHQ7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6Om1fYmFja2Vu
ZDsKKyAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6cHV0SW1hZ2VEYXRhOwogCiBw
dWJsaWM6CiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
c2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKQpAQCAtNDgsOSArNDgsOSBAQCBwdWJsaWM6CiAKICAgICBSZW1vdGVJbWFnZUJ1ZmZl
clByb3h5KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kLCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKICAgICAg
ICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihXVEZNb3ZlKGJhY2tlbmQpKQotICAgICAgICAs
IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAgLCBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgewot
ICAgICAgICBjcmVhdGVCYWNrZW5kKG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSwgbV9iYWNrZW5k
LT5iYWNrZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgpLCBtX2JhY2tlbmQt
PmNvbG9yU3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUo
KSk7CisgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbW90ZUNyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZChtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCksIG1fYmFja2VuZC0+YmFj
a2VuZFNpemUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9uU2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xv
clNwYWNlKCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCksIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgflJlbW90ZUltYWdlQnVmZmVy
UHJveHkoKQpAQCAtNjIsOSArNjIsNiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAg
IHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpmbHVzaERyYXdpbmdDb250ZXh0OwotICAg
IHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7Ci0KICAgICB2b2lk
IGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0JiBkaXNwbGF5TGlzdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChkaXNwbGF5TGlz
dC5pdGVtQ291bnQoKSkgewpAQCAtNzMsMTggKzcwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBm
bHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKLSAgICAgICAgbV9iYWNrZW5kLT5mbHVz
aENvbnRleHQoKTsKLSAgICAgICAgY29tbWl0Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllcik7
Ci0gICAgfQotCi0gICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdl
YkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBvdmVycmlkZQotICAgIHsKLSAgICAgICAgcmV0dXJu
IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpnZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNS
ZWN0KTsKLSAgICB9Ci0KICAgICBib29sIGFwcGx5KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
JiBpdGVtLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBpZiAoaXRlbS50eXBlKCkgPT0gV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpQdXRJbWFnZURhdGEpIHsKQEAgLTEwMyw3ICs4OCw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGFwcGx5KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQYWludEZyYW1lRm9yTWVkaWEmIGl0ZW0s
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICB7Ci0gICAgICAgIGF1dG8g
cHJvY2VzcyA9IGJhY2tlbmQoKS5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7CisgICAgICAg
IGF1dG8gcHJvY2VzcyA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKTsKICAgICAgICAgaWYgKCFwcm9jZXNzKQogICAgICAgICAgICAgcmV0
dXJuOwogCkBAIC0xMTcsNiArMTAyLDggQEAgcHJpdmF0ZToKIAogICAgICAgICBjb250ZXh0LnBh
aW50RnJhbWVGb3JNZWRpYSgqcGxheWVyLCBpdGVtLmRlc3RpbmF0aW9uKCkpOwogICAgIH0KKwor
ICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAKaW5kZXggMmEyZTE4YTE4MzBmLi4yNWQ0NTMxMGE5ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2lu
Y2x1ZGUgIlBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eU1lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTQsNiArNTQs
MTEgQEAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp+UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5KCkKICAgICAgICAgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+bWVzc2FnZVJlY2Vp
dmVyTWFwKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAorR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmdldCgpOworfQor
CiBJUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6bWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSBjb25zdAogewogICAgIGlmIChhdXRvKiBncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmdldCgpKQpAQCAtNjYsNjQg
KzcxLDM2IEBAIHVpbnQ2NF90IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6bWVzc2FnZVNl
bmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogICAgIHJldHVybiBtX3JlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyLnRvVUludDY0KCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZW5k
ZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbW90
ZUNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBj
b25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byog
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5n
ZXQoKTsKLSAgICBpZiAoIWdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmIChtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuY29udGFpbnMocmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRl
cmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkKSB7Ci0gICAgICAgIGlmIChhdXRvIGltYWdlQnVm
ZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUobG9naWNhbFNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcikpIHsKLSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5h
ZGQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlQnVmZmVyKSk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAocmVuZGVyaW5nTW9k
ZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCB8fCByZW5kZXJpbmdNb2RlID09
IFJlbmRlcmluZ01vZGU6OlJlbW90ZVVuYWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgaWYgKGF1dG8g
aW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRl
KGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJNYXAuYWRkKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShpbWFnZUJ1ZmZl
cikpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi12b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBs
b2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICAvLyBDcmVhdGVJbWFnZUJ1
ZmZlciBtZXNzYWdlIHNob3VsZCBoYXZlIGJlZW4gcmVjZWl2ZWQgYmVmb3JlIHRoaXMgb25lLgot
ICAgIGJvb2wgZm91bmQgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAucmVtb3ZlKHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0gICAgQVNTRVJUX1VOVVNFRChmb3VuZCwgZm91bmQp
OworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNyZWF0ZUltYWdlQnVmZmVyKGxvZ2lj
YWxTaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRG
b3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6Oklt
YWdlRGF0YVJlZmVyZW5jZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3Qg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0
byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQocmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKSkgewotICAgICAgICBhdXRvIGltYWdlRGF0YSA9IGltYWdlQnVm
ZmVyLT5nZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UoV1RGTW92ZShpbWFnZURhdGEpKSk7
Ci0gICAgfQorICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmZsdXNoRHJhd2luZ0NvbnRl
eHQoZGlzcGxheUxpc3QsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRB
bmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5
TGlzdCwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmIChh
dXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChyZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3aW5n
Q29udGV4dChkaXNwbGF5TGlzdCk7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuZmx1
c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlzdCwgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDb21t
aXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChmbHVzaElkZW50aWZpZXIsIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi12b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxh
eUxpc3QsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjpnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0
aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlck1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKLSAgICAgICAgaW1hZ2VCdWZm
ZXItPmZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoZGlzcGxheUxpc3QsIGZsdXNoSWRlbnRp
Zmllcik7CisgICAgYXV0byBpbWFnZURhdGEgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5n
ZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlKFdURk1v
dmUoaW1hZ2VEYXRhKSkpOwogfQogCi1HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdAor
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAg
IHJldHVybiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7CisgICAgbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5oCmluZGV4IGM2MTAzNTdlNDE1OC4uOWY2OGYyYjQ3MzdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oCkBAIC0yOCwyNCArMjgsMjQgQEAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJJbWFnZURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0
SXRlbXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJp
bmdNb2RlLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogY2xh
c3MgRGlzcGxheUxpc3Q7CiB9CitjbGFzcyBGbG9hdFNpemU7CitlbnVtIGNsYXNzIENvbG9yU3Bh
Y2UgOiB1aW50OF90OworZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogdWludDhfdDsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC01OSw4ICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IGNyZWF0ZShHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogICAg
IHZpcnR1YWwgflJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpOwogCi0gICAgUmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOyB9CiAgICAgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyogZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0OworICAgIGJvb2wg
YXBwbHlSZXNvdXJjZUl0ZW0oV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0mLCBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmKTsKKworICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuCisgICAgdm9p
ZCByZW1vdGVDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgog
ICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwpAQCAtNzUsMTMgKzc4LDEyIEBAIHByaXZh
dGU6CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAgICB2b2lkIGNyZWF0ZUlt
YWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6
OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbGVhc2VS
ZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZv
aWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAg
ICAgdm9pZCBmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBnZXRJbWFn
ZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNv
cmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsKKyAg
ICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOwogCi0gICAgdXNpbmcgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hN
YXA8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Pj47Ci0gICAgSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlck1hcCBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXA7CisgICAgUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHsgKnRoaXMgfTsK
ICAgICBXZWFrUHRyPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2VzczsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKaW5kZXggOGIx
Mzc4OTE3OTFmLi45Y2YyMDM5YjgxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCkBA
IC0xICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAgIDogbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkocmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQoreworfQorCit2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9yZW1vdGVJbWFnZUJ1
ZmZlckhhc2hNYXAuY29udGFpbnMocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gaW1hZ2U7CisKKyAgICBpZiAocmVu
ZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCkKKyAgICAgICAg
aW1hZ2UgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dpY2Fs
U2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIGlmICghaW1hZ2UgfHwg
cmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2VsZXJhdGVkKQorICAg
ICAgICBpbWFnZSA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUo
bG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBpZiAoaW1h
Z2UpIHsKKyAgICAgICAgbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuYWRkKHJlbW90ZVJlc291
cmNlSWRlbnRpZmllciwgV1RGTW92ZShpbWFnZSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK0ltYWdlQnVmZmVyKiBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OmZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgRGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBpbWFnZSA9IG1fcmVtb3RlSW1hZ2VC
dWZmZXJIYXNoTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKSB7CisgICAgICAgIGlt
YWdlLT5mbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgcmV0dXJuIGlt
YWdlOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSW1hZ2VCdWZmZXIqIFJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGltYWdlID0g
Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KSkgeworICAgICAgICBpbWFnZS0+Zmx1c2hDb250ZXh0KCk7CisgICAgICAgIHJldHVybiBpbWFn
ZTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxJbWFnZURhdGE+IFJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRp
b24gb3V0cHV0Rm9ybWF0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSBjb25zdAoreworICAgIGlmIChhdXRv
IGltYWdlID0gbV9yZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcikpCisgICAgICAgIHJldHVybiBpbWFnZS0+Z2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1h
dCwgc3JjUmVjdCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9yZW1vdGVJbWFnZUJ1
ZmZlckhhc2hNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJl
dHVybjsKKyAgICAvLyBDYWNoaW5nIHRoZSByZW1vdGUgcmVzb3VyY2Ugc2hvdWxkIGhhdmUgaGFw
cGVuZWQgYmVmb3JlIHJlbGVhc2luZyBpdC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKaW5kZXggOGIxMzc4OTE3OTFmLi5jNzg4NjFlYzE3NDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTEgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KIAorI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVJlc291cmNlSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K25hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CitjbGFzcyBEaXNwbGF5TGlzdDsKK2NsYXNzIEl0ZW07
Cit9Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk7CisKK2NsYXNzIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB7CitwdWJsaWM6Cisg
ICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYp
OworCisgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CisgICAgV2ViQ29yZTo6SW1hZ2VCdWZmZXIqIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3Qg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogZmx1c2hEcmF3aW5nQ29u
dGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIFJlZlB0cjxXZWJDb3JlOjpJ
bWFnZURhdGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91
dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgV2ViQ29yZTo6UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKSBjb25zdDsKKworICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJl
c291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKK3ByaXZhdGU6Cisg
ICAgdXNpbmcgUmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZl
cj4+OworCisgICAgUmVtb3RlSW1hZ2VCdWZmZXJIYXNoTWFwIG1fcmVtb3RlSW1hZ2VCdWZmZXJI
YXNoTWFwOworICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCmluZGV4IDQwMTdhMmE4ZjIyYy4uNjc0
OGQxZjVkODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAm
JiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIK
KyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKaW5kZXggOTc3ZjkzZmY1YzNjLi42
MWI4OTBkYzc4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1
ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzLmgi
CiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCiAjaW5jbHVkZSAi
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IGRhZjVmYjczMTNiZC4uNjdjMTMzZTY3ZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI0LDggKzI0
LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKLUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
clByb3h5LmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY3BwCitHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAK
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3BwCiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTZmZDFlZWIxM2IxLi4zNDViYmZiNTM2MDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNDE3OSw4ICs0MTc5LDYgQEAKIAkJNzIyNzgwMEIyNDA4QkQ3RDAwN0QzNzZCIC8qIFBsYXRm
b3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFn
ZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjI3ODAwQzI0MDk3QTAy
MDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyNzgwMEQyNDA5N0EwMjAwN0QzNzZCIC8qIFJlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3MjI3ODAx
MTI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTcyMjc4MDEyMjQwOTkwNkUw
MDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM0MjQwNzg1N0QwMDREMjkzMSAvKiBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QTdGMzUyNDA3ODU3RjAwNEQyOTMxIC8q
IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QTdGMzYyNDA3ODhGMDAwNEQyOTMxIC8q
IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQxOTAsNiArNDE4OCw4IEBACiAJCTcyN0E3RjQ5MjQw
OEFFRTYwMDREMjkzMSAvKiBSZW1vdGVJbWFnZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVJbWFnZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZFRjE3
OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzI4RTg2RjAxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOUQwNTMyMjUzMTRGRUYwMDQy
MjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzI5RDA1MzMyNTMxNEZFRjAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURh
dGFTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYnNpdGVEYXRh
U3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzVBOEQyQzUxODdDQ0Y5RjAw
QzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLV2Vic2l0ZURhdGFTdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9y
ZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2Vic2l0ZURh
dGFTdG9yZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MDk0LDEy
ICs4MDk0LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTU1
QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHku
aCAqLywKLQkJCQk3MjI3ODAxMTI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlclByb3h5LmNwcCAqLywKLQkJCQk3MjI3ODAxMjI0MDk5MDZFMDA3RDM3NkIg
LyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmggKi8sCiAJCQkJNTVBRDA5
NDIyNDA4QTAyRTAwREU0RDJGIC8qIFJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLywKIAkJCQk1
NTA2NDBBMjI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNw
cCAqLywKIAkJCQk1NTA2NDBBMzI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmggKi8sCiAJCQkJNTUwNjQwQTQyNDA3MUMyMTAwQUFFMDQ1IC8qIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQk3MjlEMDUzMjI1MzE0RkVG
MDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCAqLywKKwkJCQk3MjlEMDUz
MzI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggKi8sCiAJCQkp
OwogCQkJcGF0aCA9IGdyYXBoaWNzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411199</attachid>
            <date>2020-10-12 23:55:13 -0700</date>
            <delta_ts>2020-10-15 10:44:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217554-20201012235512.patch</filename>
            <type>text/plain</type>
            <size>54083</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRjYTU2ZjYwYTRjYTVm
ZmMzN2M3ZWRkYmI3Zjk1OTkzYTgzYmQzNC4uMDFmYTNmNmY3MWIxNjM3MzgzYmE1Y2I5M2Q0Mjgy
M2ZjYzNhMzI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTEwLTEyICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbnRyb2R1Y2UgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHRvIG1hbmFnZSB0aGUg
cmVzb3VyY2VzIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBuZXcgdmlydHVhbCBtZXRob2QgSW1hZ2VCdWZm
ZXI6OmFwcGx5RGlzcGxheUxpc3QoKSB3aGljaCBhcHBsaWVzCisgICAgICAgIGEgRGlzcGxheUxp
c3QgdG8gdGhlIGNvbnRleHQuIFJlbW90ZUltYWdlQnVmZmVyUHJveHkgb3ZlcnJpZGVzIHRoaXMg
bWV0aG9kLgorICAgICAgICBJdCB1c2VkIHRvIGJlIGEgbWV0aG9kIG9mIFJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJQcm94eSB3aXRoIHRoZQorICAgICAgICBuYW1lIGZsdXNoRHJhd2lu
Z0NvbnRleHQoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6YXBwbHlEaXNwbGF5TGlzdCk6CisKIDIw
MjAtMTAtMTIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJbWFnZUJ1ZmZlcklkZW50aWZpZXIiIGJ5
IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGVjNDA1OTI2NjgwZjg5NDQ1MGVjOGIyYjFkZTNlNmIyYzUwMDIwNDkuLmI4ODUy
MThmYmRlNDRlNzIwNTZkZmZlNWU1ZmRkNzA4OWQ2YjViYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NzMgQEAKKzIwMjAtMTAtMTIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxl
LmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIEludHJvZHVjZSBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkgd2hpY2ggbWFuYWdlcyB0aGUgcmVzb3VyY2VzIGluIHRoZSBHUFUgUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTU0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5IHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIHRoZSBsaWZl
IGN5Y2xlIAorICAgICAgICBvZiB0aGUgcmVtb3RlIHJlc291cmNlcy4gUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5IHdpbGwgYmUgIHJlc3BvbnNpYmxlCisgICAgICAgIGZvciB0aGUgSVBDIGNv
bW11bmljYXRpb25zIHdpdGggUmVtb3RlUmVuZGVyaW5nQmFja2VuZC4gSXQgd2lsbCBkZWxlZ2F0
ZQorICAgICAgICBhbGwgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgdG8gaXRzIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS4KKworICAgICAgICBXZSBjYW4gZ2V0IHJpZCBvZiBSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkgYmVjYXVzZSBhbGwgaXQgZG9lcworICAgICAgICBpcyBz
ZW5kaW5nIG1lc3NhZ2VzIHRvIFdlYlByb2Nlc3MuIFJlbW92aW5nIGl0IHdpbGwgc2ltcGxpZnkg
dGhlIGludGVyZmFjZQorICAgICAgICBvZiBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5LiBTZW5kaW5n
IHRoZSBtZXNzYWdlcyB3aWxsIGJlIG1vdmVkIHRvCisgICAgICAgIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS4KKworICAgICAgICBSZW5hbWUgZmx1c2hEcmF3aW5nQ29udGV4dCgpIHRvIGFw
cGx5RGlzcGxheUxpc3QoKSBiZWNhdXNlIHRoZSBuYW1lIGlzIAorICAgICAgICBjb25mdXNpbmcu
IFRoaXMgZnVuY3Rpb24gYXBwbGllcyBhIERpc3BsYXlMaXN0IHRvIHRoZSBjb250ZXh0LiBObwor
ICAgICAgICBEcmF3aW5nQ29udGV4dCBpcyBpbnZvbHZlZCBoZXJlIGFuZCB0aGVyZSBpcyBhbm90
aGVyIGZ1bmN0aW9uIHdpdGggdGhlCisgICAgICAgIHNhbWUgbmFtZSB3aGljaCBkb2VzIG5vdCB0
YWtlIGFueSBhcmd1bWVudC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5o
OiBSZW1vdmVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eTo6YXBwbHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVSZW1vdGVJbWFnZUJ1ZmZl
ckJhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OmNvbW1pdEFwcGx5RGlzcGxheUxpc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjphcHBseURpc3BsYXlMaXN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjphcHBseURpc3BsYXlMaXN0QW5kQ29t
bWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpnZXRJ
bWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdl
QnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6UmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjcmVhdGVJ
bWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
YXBwbHlEaXNwbGF5TGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6YXBwbHlEaXNwbGF5TGlzdEFuZENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6Z2V0SW1hZ2VEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg6IEFk
ZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3Bw
OgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuY3BwOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmFwcGx5RGlzcGxheUxpc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjphcHBseURp
c3BsYXlMaXN0QW5kV2FpdENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdD
b250ZXh0QW5kV2FpdENvbW1pdCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6d2Fp
dEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlUmVtb3RlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y29tbWl0QXBwbHlEaXNwbGF5
TGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbjoKKwogMjAyMC0xMC0xMiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhh
bGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc106IFJlcGxhY2UgIkltYWdl
QnVmZmVySWRlbnRpZmllciIgYnkgYSBnZW5lcmljIGlkZW50aWZpZXIgbmFtZWQgIlJlbW90ZVJl
c291cmNlSWRlbnRpZmllciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oCmluZGV4IGQxNDY0OTJjNGE4ZGY5MzVjYWY5NGI5ZmI5NTU5MDlhYWQxY2Jh
ZjAuLmQ2MDVkYjRkMjU0YTEwMjViMGUxYmY4NTllOTg2ZTNjNjU4YzdjMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMzMsNiArMzMs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgeworY2xh
c3MgRGlzcGxheUxpc3Q7CiBjbGFzcyBEcmF3aW5nQ29udGV4dDsKIH0KIApAQCAtNjUsNiArNjYs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBEaXNwbGF5TGlzdDo6RHJhd2luZ0NvbnRleHQqIGRy
YXdpbmdDb250ZXh0KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBmbHVz
aERyYXdpbmdDb250ZXh0KCkgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlEaXNwbGF5TGlz
dChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKSB7IH0KKwogICAgIHZpcnR1YWwgQWZm
aW5lVHJhbnNmb3JtIGJhc2VUcmFuc2Zvcm0oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRT
aXplIGxvZ2ljYWxTaXplKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50U2l6ZSBiYWNrZW5k
U2l6ZSgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmOWQxNTJiNjc0NDJk
YTY3MmVhZTVhOGE4NWRhODFjMjZhYjY4MjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1
NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIgotCi0jaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQotCi0jaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgiCi0j
aW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCi0KLW5hbWVzcGFjZSBXZWJL
aXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQot
ICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkocmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5KQotICAgICwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIocmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKQotewotfQotCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eTo6Y3JlYXRlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJ
bnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCi17Ci0gICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIG1fcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIoKSk7Ci19Ci0KLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlclByb3h5Ojpjb21taXRGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZp
ZXIgZmx1c2hJZGVudGlmaWVyKQotewotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNvbW1pdEltYWdlQnVmZmVy
Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllciwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
LCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cigpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiM2RiNGQ2OGI3OTQ2NTc3Yzk0ZWFlNDI0
YWQ2N2Y1MzBjOWYwZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLQotI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZS5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCi0jaW5j
bHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlz
dC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9S
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotZW51bSBj
bGFzcyBBbHBoYVByZW11bHRpcGxpY2F0aW9uIDogdWludDhfdDsKLWNsYXNzIEltYWdlRGF0YTsK
LX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTsKLQotY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5IHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIH5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHko
KSA9IGRlZmF1bHQ7Ci0KLSAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4gU2VlIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbi4KLSAgICB2aXJ0dWFsIHZvaWQgZmx1
c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Qm
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29u
c3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElk
ZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdl
dEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3QgPSAwOwotCi1wcm90ZWN0ZWQ6
Ci0gICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eSYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0KLSAg
ICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNz
YWdlcy5pbi4KLSAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKLSAgICB2b2lkIGNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRl
bnRpZmllcik7Ci0KLSAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIGJhY2tlbmQoKSB7
IHJldHVybiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsgfQotCi1wcml2YXRlOgotICAg
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk7Ci0gICAgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCBiMTU3YWJiYzBkNTA5
N2U2ZDk4ZmI1NjZjNmMzMDAwMTYwMmJjYWU1Li41MjA4ZGZhZWE3N2NjMzdiOGU1YzYyMDJhNWRk
MGFlNWNlNTRkNzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTI4LDE3ICsyOCwxNyBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCIKLSNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHku
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgotY2xhc3MgUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eSA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVi
bGljIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eSwgcHVibGljIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgeworY2xhc3MgUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBl
PiwgcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgewogICAg
IHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyID0gV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1
ZmZlcjxCYWNrZW5kVHlwZT47CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNv
bnRleHQ7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6Om1fYmFja2VuZDsKKyAg
ICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6cHV0SW1hZ2VEYXRhOwogCiBwdWJsaWM6
CiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KQpAQCAtNDgsOSArNDgsOSBAQCBwdWJsaWM6CiAKICAgICBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5
KHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kLCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSwgV2ViQ29yZTo6UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKICAgICAgICAgOiBC
YXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihXVEZNb3ZlKGJhY2tlbmQpKQotICAgICAgICAsIFJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgewotICAgICAg
ICBjcmVhdGVCYWNrZW5kKG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNr
ZW5kU2l6ZSgpLCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9y
U3BhY2UoKSwgbV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSk7Cisg
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNyZWF0ZVJlbW90ZUltYWdlQnVm
ZmVyQmFja2VuZChtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCksIG1fYmFja2VuZC0+YmFja2VuZFNp
emUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9uU2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xvclNwYWNl
KCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCksIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgflJlbW90ZUltYWdlQnVmZmVyUHJveHko
KQpAQCAtNjIsMTAgKzYyLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB1c2lu
ZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dDsKLSAgICB1c2lu
ZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6cHV0SW1hZ2VEYXRhOwotCi0gICAgdm9pZCBmbHVz
aERyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYg
ZGlzcGxheUxpc3QpIG92ZXJyaWRlCisgICAgdm9pZCBhcHBseURpc3BsYXlMaXN0KGNvbnN0IFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpIG92ZXJyaWRlCiAg
ICAgewogICAgICAgICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50KCkpIHsKICAgICAgICAgICAg
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllciByZXBsYXllcihCYXNlQ29uY3JldGVJbWFn
ZUJ1ZmZlcjo6Y29udGV4dCgpLCBkaXNwbGF5TGlzdCwgdGhpcyk7CkBAIC03MywxOCArNzAsNiBA
QCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBmbHVzaERyYXdpbmdDb250
ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlz
cGxheUxpc3QsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikgb3Zl
cnJpZGUKLSAgICB7Ci0gICAgICAgIGZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOwot
ICAgICAgICBtX2JhY2tlbmQtPmZsdXNoQ29udGV4dCgpOwotICAgICAgICBjb21taXRGbHVzaENv
bnRleHQoZmx1c2hJZGVudGlmaWVyKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1h
Z2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRw
dXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0IG92ZXJyaWRl
Ci0gICAgewotICAgICAgICByZXR1cm4gQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmdldEltYWdl
RGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOwotICAgIH0KLQogICAgIGJvb2wgYXBwbHkoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0mIGl0ZW0sIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChpdGVtLnR5cGUoKSA9PSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlB1dEltYWdlRGF0YSkgewpAQCAtMTAzLDcgKzg4
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYXBwbHkoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlBh
aW50RnJhbWVGb3JNZWRpYSYgaXRlbSwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
KQogICAgIHsKLSAgICAgICAgYXV0byBwcm9jZXNzID0gYmFja2VuZCgpLmdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoKTsKKyAgICAgICAgYXV0byBwcm9jZXNzID0gbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpOwogICAgICAgICBpZiAoIXBy
b2Nlc3MpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTExNyw2ICsxMDIsOCBAQCBwcml2YXRl
OgogCiAgICAgICAgIGNvbnRleHQucGFpbnRGcmFtZUZvck1lZGlhKCpwbGF5ZXIsIGl0ZW0uZGVz
dGluYXRpb24oKSk7CiAgICAgfQorCisgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCAyYTJlMThhMTgzMGY4YTg0
ZGNhMTdjNzE4YWUwYTA0MGFkNmQ1MDdmLi43MjQ2MDFhYTkwYjA0OTkzY2QzYTgxZmEyNzU2ODUx
ZmJlODIzZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtMjksNyAr
MjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaCIKKyNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlcy5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTU0LDYgKzU0LDExIEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
flJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpCiAgICAgICAgIGdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MtPm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKK0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MqIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5nZXQoKTsKK30KKwogSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAo
YXV0byogZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5nZXQoKSkKQEAgLTY2LDY0ICs3MSw0MCBAQCB1aW50NjRfdCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKICAgICByZXR1
cm4gbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci50b1VJbnQ2NCgpOwogfQogCi12b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRT
aXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpjcmVhdGVSZW1vdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUgaGFuZGxlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKQogewotICAgIGF1dG8qIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgPSBtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7Ci0gICAgaWYgKCFncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9pbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyTWFwLmNvbnRhaW5zKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
cmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCkgewotICAg
ICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0
aGlzLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJNYXAuYWRkKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92
ZShpbWFnZUJ1ZmZlcikpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0
ZWQgfHwgcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2VsZXJhdGVk
KSB7Ci0gICAgICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZFJlbW90ZUlt
YWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCAqdGhpcywgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgewotICAgICAgICAgICAg
bV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmFkZChyZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHNlbmQoTWVzc2FnZXM6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNyZWF0ZVJlbW90ZUltYWdlQnVmZmVyQmFja2VuZChs
b2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RG
TW92ZShoYW5kbGUpLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJl
bGVhc2VSZW1vdGVSZXNvdXJjZShSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNvbW1pdEFw
cGx5RGlzcGxheUxpc3QoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVy
LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewot
ICAgIC8vIENyZWF0ZUltYWdlQnVmZmVyIG1lc3NhZ2Ugc2hvdWxkIGhhdmUgYmVlbiByZWNlaXZl
ZCBiZWZvcmUgdGhpcyBvbmUuCi0gICAgYm9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlck1hcC5yZW1vdmUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICBBU1NFUlRf
VU5VU0VEKGZvdW5kLCBmb3VuZCk7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Q29tbWl0QXBwbHlEaXNwbGF5TGlzdChmbHVzaElkZW50aWZpZXIsIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi12
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFs
cGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1Jl
Y3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1h
Z2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlck1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgewotICAgICAgICBhdXRvIGlt
YWdlRGF0YSA9IGltYWdlQnVmZmVyLT5nZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0
KTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UoV1RG
TW92ZShpbWFnZURhdGEpKSk7Ci0gICAgfQorICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmNyZWF0ZUltYWdlQnVmZmVyKGxvZ2ljYWxTaXplLCByZW5kZXJpbmdNb2RlLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRl
eHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwg
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3ZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjphcHBseURpc3BsYXlMaXN0KGNvbnN0IFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1h
Z2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikpCi0gICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250ZXh0
KGRpc3BsYXlMaXN0KTsKKyAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5hcHBseURpc3Bs
YXlMaXN0KGRpc3BsYXlMaXN0LCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogfQogCi12b2lk
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250
ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlz
cGxheUxpc3QsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjphcHBseURpc3BsYXlMaXN0QW5kQ29tbWl0KGNvbnN0
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIEltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZl
ciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKSkKLSAgICAgICAgaW1hZ2VCdWZmZXItPmZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21t
aXQoZGlzcGxheUxpc3QsIGZsdXNoSWRlbnRpZmllcik7CisgICAgbV9yZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkuYXBwbHlEaXNwbGF5TGlzdEFuZENvbW1pdChkaXNwbGF5TGlzdCwgZmx1c2hJZGVu
dGlmaWVyLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogfQogCi1HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoKSBjb25zdAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldElt
YWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2Vi
Q29yZTo6SW50UmVjdCBzcmNSZWN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRhUmVm
ZXJlbmNlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHJldHVybiBtX2dwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7CisgICAgYXV0byBpbWFnZURhdGEgPSBtX3JlbW90ZVJl
c291cmNlQ2FjaGVQcm94eS5nZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0LCByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6SW1hZ2VE
YXRhUmVmZXJlbmNlKFdURk1vdmUoaW1hZ2VEYXRhKSkpOworfQorCit2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJlc291cmNlSWRl
bnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgbV9yZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5oCmluZGV4IGM2MTAzNTdlNDE1ODYyY2YyZTA5MzE4YzY2MzFkMzgxOWIwZWQ0OGYuLjg5Nzkx
ZDM2OTkzZTVjNzg4MGUxNGVkMTE4ZTdiMDA0YmViNjg3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmgKQEAgLTI4LDI0ICsyOCwyNCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
IAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIkltYWdlRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKLSNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
aCIKICNpbmNsdWRlICJSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUu
aD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiBjbGFzcyBEaXNw
bGF5TGlzdDsKIH0KK2NsYXNzIEZsb2F0U2l6ZTsKK2VudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVp
bnQ4X3Q7CitlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiB1aW50OF90OwogfQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTU5LDggKzU5LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiAgICAgdmlydHVh
bCB+UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCk7CiAKLSAgICBSZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI7IH0KICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkgY29uc3Q7CisgICAgYm9vbCBhcHBseVJl
c291cmNlSXRlbShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYsIFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dCYpOworCisgICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4KKyAgICB2b2lkIGNyZWF0
ZVJlbW90ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2lj
YWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUs
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBjb21taXRBcHBs
eURpc3BsYXlMaXN0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIpOwpAQCAtNzUsMTMgKzc5LDEyIEBAIHByaXZhdGU6CiAKICAgICAvLyBNZXNzYWdlcyB0
byBiZSByZWNlaXZlZC4KICAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdp
bmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdlYkNv
cmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBmbHVzaEltYWdlQnVmZmVy
RHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBhcHBseURpc3BsYXlMaXN0KGNvbnN0IFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
Zmllcik7CisgICAgdm9pZCBhcHBseURpc3BsYXlMaXN0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZ2V0SW1hZ2VEYXRh
KFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJ
bnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4mJik7CisgICAgdm9p
ZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KTsKIAotICAgIHVzaW5nIEltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAgPSBIYXNoTWFwPFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eT4+OwotICAgIEltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJNYXAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwOworICAgIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eSBtX3JlbW90ZVJlc291cmNlQ2FjaGVQcm94eSB7ICp0aGlzIH07CiAgICAg
V2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNz
YWdlcy5pbgppbmRleCAyNmNmMTM2MWZkYWIwZWIwZDNmYWY3N2U1ZjdkMmQxYzU2Zjk0MGI3Li40
YmUzNmMyNjE4MzA0NWRlOWY4ZmMzNjM5YTIwNDk2ZDYwMjhiMmVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDggKzI0LDggQEAKIAog
bWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IE5vdFJlZkNvdW50ZWQgewog
ICAgIHZvaWQgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXpl
LCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQotICAgIHZvaWQgRmx1c2hJ
bWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlz
dCBkaXNwbGF5TGlzdCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcikKLSAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4
dEFuZENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3Qs
IFdlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQor
ICAgIHZvaWQgQXBwbHlEaXNwbGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QgZGlzcGxheUxpc3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCisgICAgdm9pZCBBcHBseURpc3BsYXlMaXN0QW5kQ29tbWl0KFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViS2l0OjpJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgR2V0SW1hZ2VE
YXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZv
cm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZl
cmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cwogICAgIHZvaWQgUmVsZWFzZVJlbW90ZVJlc291
cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4NjI0MjE3
MGQ5MjE2ZDBlYzRlZTYyZjYwYmYyNWQ3ZWE1NjNiZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNw
cApAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQorICAgIDogbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkocmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQoreworfQor
Cit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3Qg
RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9pbWFnZUJ1
ZmZlcnMuY29udGFpbnMocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gaW1hZ2U7CisKKyAgICBpZiAocmVuZGVyaW5n
TW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCkKKyAgICAgICAgaW1hZ2Ug
PSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmNyZWF0ZShsb2dpY2FsU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIGlmICghaW1hZ2UgfHwgcmVuZGVy
aW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2VsZXJhdGVkKQorICAgICAgICBp
bWFnZSA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUobG9naWNh
bFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBpZiAoaW1hZ2UpIHsK
KyAgICAgICAgbV9pbWFnZUJ1ZmZlcnMuYWRkKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgV1RG
TW92ZShpbWFnZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjphcHBseURpc3Bs
YXlMaXN0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8gaW1hZ2UgPSBtX2ltYWdlQnVmZmVycy5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KSkKKyAgICAgICAgaW1hZ2UtPmFwcGx5RGlzcGxheUxpc3QoZGlzcGxheUxpc3QpOworfQorCit2
b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6YXBwbHlEaXNwbGF5TGlzdEFuZENvbW1pdChj
b25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBtX2ltYWdl
QnVmZmVycy5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAgICBpbWFnZS0+
YXBwbHlEaXNwbGF5TGlzdChkaXNwbGF5TGlzdCk7CisgICAgICAgIGltYWdlLT5mbHVzaENvbnRl
eHQoKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY29tbWl0QXBwbHlE
aXNwbGF5TGlzdChmbHVzaElkZW50aWZpZXIsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Cisg
ICAgfQorfQorCitSZWZQdHI8SW1hZ2VEYXRhPiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6Omdl
dEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgSW50
UmVjdCYgc3JjUmVjdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRl
bnRpZmllcikgY29uc3QKK3sKKyAgICBpZiAoYXV0byBpbWFnZSA9IG1faW1hZ2VCdWZmZXJzLmdl
dChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gaW1hZ2UtPmdldElt
YWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOworICAgIHJldHVybiBudWxscHRyOworfQor
Cit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAg
aWYgKG1faW1hZ2VCdWZmZXJzLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAg
ICAgICByZXR1cm47CisgICAgLy8gQ2FjaGluZyB0aGUgcmVtb3RlIHJlc291cmNlIHNob3VsZCBo
YXZlIGhhcHBlbmVkIGJlZm9yZSByZWxlYXNpbmcgaXQuCisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9Q
Uk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhNGRiZTRiNzliZjUy
MGRkMzI3NDdmOTBmOWY0YmFhZTY3NmQyN2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTAs
MCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdl
YkNvcmUvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKK2NsYXNz
IERpc3BsYXlMaXN0OworY2xhc3MgSXRlbTsKK30KK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKKworY2xhc3MgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5IHsKK3B1YmxpYzoKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Jik7CisKKyAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVy
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmlu
Z01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29y
ZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGFwcGx5RGlzcGxheUxpc3Qo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGFwcGx5RGlzcGxheUxpc3RBbmRDb21taXQo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgUmVm
UHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVs
dGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpIGNvbnN0OworCisgICAgdm9pZCBy
ZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KworcHJpdmF0ZToKKyAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAgPSBIYXNoTWFw
PFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkltYWdlQnVmZmVyPj47CisKKyAgICBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hNYXAgbV9pbWFn
ZUJ1ZmZlcnM7CisgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggNDAxN2EyYThmMjJjZWNl
Y2MyMTUxYTMwYTMyNzhmZjkwNmVhZjMyYS4uNjc0OGQxZjVkODAwZDk1NzRmMjM4MDc1YjE4OTBi
NGU0YWNlZTkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCmluZGV4IDk3N2Y5M2ZmNWMzYzJi
ODE3ODQ2YzlhOWE3NTUxNzg5YzhlZmUwNWMuLjYxYjg5MGRjNzg2N2MzM2IwMDVmMjJlOTNiYjFh
ZjQ3ZGRkM2IxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1
ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzLmgi
CiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCiAjaW5jbHVkZSAi
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IGRhZjVmYjczMTNiZGQ5ODA2OGRlZGQzOWNiYWM0ZGZiZTkzNzdjYTguLjY3YzEzM2U2N2Qz
ZGU0NjYxNzI1MGZmNTkwMjJjMDFhZDQ5MDJkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjQsOCArMjQs
OCBAQAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAotR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHkuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAKIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMjE1MzgxNDhlNjk5YzY4ZDc2MjA2OTIzYjUz
OWJlNzlhZjY3NDkyLi5hMmRiNDgwNzY5ZTQxNWE5YjIxM2QyYjgwZWM5MDE5ZDNkNzUzYmNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQxODAsOCArNDE4MCw2IEBACiAJCTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQbGF0Zm9y
bVJlbW90ZUltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VC
dWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyNzgwMEMyNDA5N0EwMjAw
N0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4MDBEMjQwOTdBMDIwMDdEMzc2QiAvKiBSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzIyNzgwMTEy
NDA5OTA2RTAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3MjI3ODAxMjI0MDk5MDZFMDA3
RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MjdBN0YzNDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM1MjQwNzg1N0YwMDREMjkzMSAvKiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM2MjQwNzg4RjAwMDREMjkzMSAvKiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTkxLDYgKzQxODksOCBAQAogCQk3MjdBN0Y0OTI0MDhB
RUU2MDA0RDI5MzEgLyogUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
SW1hZ2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1
MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTcyOEU4NkYwMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjlEMDUzMjI1MzE0RkVGMDA0MjIw
OTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTcyOUQwNTMzMjUzMTRGRUYwMDQyMjA5OCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc1QThEMkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRh
U3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0
b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1QThEMkM1MTg3Q0NGOUYwMEMz
OUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS1dlYnNpdGVEYXRhU3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVJ
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYnNpdGVEYXRh
U3RvcmVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODA5NiwxMiAr
ODA5NiwxMiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1NUFE
MDk0MzI0MDhBMEU2MDBERTREMkYgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmgg
Ki8sCi0JCQkJNzIyNzgwMTEyNDA5OTA2RTAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJQcm94eS5jcHAgKi8sCi0JCQkJNzIyNzgwMTIyNDA5OTA2RTAwN0QzNzZCIC8q
IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oICovLAogCQkJCTU1QUQwOTQy
MjQwOEEwMkUwMERFNEQyRiAvKiBSZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggKi8sCiAJCQkJNTUw
NjQwQTIyNDA3MUE2MTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAg
Ki8sCiAJCQkJNTUwNjQwQTMyNDA3MUE2MTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5oICovLAogCQkJCTU1MDY0MEE0MjQwNzFDMjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJNzI5RDA1MzIyNTMxNEZFRjAw
NDIyMDk4IC8qIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgKi8sCisJCQkJNzI5RDA1MzMy
NTMxNEZFRjAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oICovLAogCQkJKTsK
IAkJCXBhdGggPSBncmFwaGljczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmgKaW5kZXggZTg0OTE2NjQ1MTQ1OTYyODdlZjJjNzhmOTA3NmUxZDQzODIxOTFmMi4u
MTY3NGJlZTNkZjk3NzhlZjFjZWYwOWExN2U4NTAzMTJhMDI3MjE2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXIuaApAQCAtODEsNyArODEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPFdlYkNvcmU6Oklt
YWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0
cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBvdmVycmlk
ZQogICAgIHsKICAgICAgICAgYXV0byYgZGlzcGxheUxpc3QgPSBjb25zdF9jYXN0PFJlbW90ZUlt
YWdlQnVmZmVyKj4odGhpcyktPm1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKTsKLSAgICAg
ICAgY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlcio+KHRoaXMpLT5SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKKyAgICAg
ICAgY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlcio+KHRoaXMpLT5SZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyOjphcHBseURpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KTsKICAgICAgICAg
YXV0byByZXN1bHQgPSBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyKj4odGhpcyktPlJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNy
Y1JlY3QpOwogICAgICAgICAvLyBnZXRJbWFnZURhdGEgaXMgc3luY2hyb25vdXMsIHdoaWNoIG1l
YW5zIHdlJ3ZlIGFscmVhZHkgcmVjZWl2ZWQgdGhlIENvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250
ZXh0IG1lc3NhZ2UuCiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDUsNyArMTA1LDcgQEAg
cHJvdGVjdGVkOgogICAgIHsKICAgICAgICAgYXV0byYgZGlzcGxheUxpc3QgPSBtX2RyYXdpbmdD
b250ZXh0LmRpc3BsYXlMaXN0KCk7CiAgICAgICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQo
KSkKLSAgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJh
d2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgICAgIFJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmFwcGx5RGlzcGxheUxpc3RBbmRXYWl0Q29tbWl0
KGRpc3BsYXlMaXN0KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCB3aWxsQXBwZW5kSXRlbShjb25z
dCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYpIG92ZXJyaWRlCkBAIC0xMTMsNyArMTEzLDcg
QEAgcHJvdGVjdGVkOgogICAgICAgICBjb25zdGV4cHIgc2l6ZV90IERpc3BsYXlMaXN0QmF0Y2hT
aXplID0gNTEyOwogICAgICAgICBhdXRvJiBkaXNwbGF5TGlzdCA9IG1fZHJhd2luZ0NvbnRleHQu
ZGlzcGxheUxpc3QoKTsKICAgICAgICAgaWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpID49IERp
c3BsYXlMaXN0QmF0Y2hTaXplKQotICAgICAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7CisgICAgICAgICAgICBS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjphcHBseURpc3BsYXlMaXN0KGRpc3BsYXlM
aXN0KTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyLmNwcAppbmRleCA0ZTliNzYyZDhlMGNmNWZmZjg3ZjFjNDI4NDVhZjAwNGE4ZGExZGFi
Li44MjMyZWY4M2NmMGEwOGM1MWNjY2RkOGNmZGNhMzFhOWJkMDMxY2IyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAKQEAgLTcwLDIxICs3MCwyMSBA
QCB2b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OndhaXRGb3JDb21taXRJbWFn
ZUJ1ZmZlckZsdXNoQ29udGV4dCgpCiAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+
d2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCk7CiB9CiAKLXZvaWQgUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KQordm9pZCBSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyOjphcHBseURpc3BsYXlMaXN0KFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCiB7CiAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJ
bWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBtX3JlbW90ZVJlc291cmNlSWRl
bnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIoKSk7CisgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkFwcGx5RGlzcGxheUxpc3QoZGlzcGxheUxpc3Qs
IG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5y
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwog
fQogCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0Nv
bnRleHRBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlz
cGxheUxpc3QpCit2b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmFwcGx5RGlz
cGxheUxpc3RBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYg
ZGlzcGxheUxpc3QpCiB7CiAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCiAgICAg
ICAgIHJldHVybjsKICAgICBtX3NlbnRGbHVzaElkZW50aWZpZXIgPSBJbWFnZUJ1ZmZlckZsdXNo
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJbWFnZUJ1ZmZl
ckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBtX3NlbnRGbHVzaElkZW50aWZp
ZXIsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6QXBwbHlE
aXNwbGF5TGlzdEFuZENvbW1pdChkaXNwbGF5TGlzdCwgbV9zZW50Rmx1c2hJZGVudGlmaWVyLCBt
X3JlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7CiAgICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKICAg
ICB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgKaW5kZXggNmNmYzg1ODk1YTUxOGFhNGY3
OGU5NTQyYjkwYzhhMTM0YmRhODZiOC4uOTIxZDZiNGIyZWVmNDUyZDQwMjg2ZjYxNzhjMTg0MDY5
OTI4YzFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgK
QEAgLTY3LDggKzY3LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgd2FpdEZvckNvbW1pdEltYWdl
QnVmZmVyRmx1c2hDb250ZXh0KCk7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LiBTZWUg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluLgotICAgIHZvaWQgZmx1c2hE
cmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKTsKLSAgICB2
b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdCYpOworICAgIHZvaWQgYXBwbHlEaXNwbGF5TGlzdChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6RGlzcGxheUxpc3QmKTsKKyAgICB2b2lkIGFwcGx5RGlzcGxheUxpc3RBbmRXYWl0
Q29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpOwogCiBwcml2YXRlOgog
ICAgIFdlYWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZGJiZTliODMwMzZmYmU2
YTBkNDAzYWNmZDhiOWU3ZTllNjcwZDUxOC4uNDljOWExMmZlYzM1OGFjNWViNjY2YjY3MmY4NzE4
NTRjOTRjYTVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC03NywxMyAr
NzcsMTMgQEAgdWludDY0X3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVNlbmRlckRl
c3RpbmF0aW9uSUQoKSBjb25zdAogYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3YWl0Rm9y
Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCkKIHsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBj
b25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCk7Ci0gICAgcmV0dXJuIGNvbm5lY3Rpb24tPndhaXRGb3JBbmRE
aXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpDcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmQ+KG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIDFfcywg
SVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMp
OworICAgIHJldHVybiBjb25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxN
ZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q3JlYXRlUmVtb3RlSW1hZ2VCdWZmZXJC
YWNrZW5kPihtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCAxX3MsIElQQzo6V2FpdEZvck9w
dGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVzKTsKIH0KIAogYm9vbCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRl
eHQoKQogewogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsK
LSAgICByZXR1cm4gY29ubmVjdGlvbi0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250
ZXh0PihtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLCAxX3MsIElQQzo6V2FpdEZvck9wdGlv
bjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVzKTsKKyAgICByZXR1cm4gY29u
bmVjdGlvbi0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OkNvbW1pdEFwcGx5RGlzcGxheUxpc3Q+KG1fcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1cHRXYWl0aW5nSWZT
eW5jTWVzc2FnZUFycml2ZXMpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYg
c2l6ZSwgU2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKQEAgLTExMCwxMyArMTEwLDEzIEBAIHZvaWQg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJlc291
cmNlSWRlbnRpZmllciByZW1vCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwgZm91bmQpOwogfQog
Ci12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZVJlbW90
ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJ
bnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKGF1dG8gaW1h
Z2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikpCiAgICAgICAgIGltYWdlQnVmZmVyLT5jcmVhdGVCYWNrZW5kKGxvZ2lj
YWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3Zl
KGhhbmRsZSkpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdl
QnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRp
ZmllciwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikK
K3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y29tbWl0QXBwbHlEaXNwbGF5TGlzdChJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRl
bnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKGF1dG8gaW1hZ2VC
dWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikpCiAgICAgICAgIGltYWdlQnVmZmVyLT5jb21taXRGbHVzaENvbnRleHQoZmx1
c2hJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggMjhhNjQzYTQ4
YWY1NThhY2U0Y2Y4MWQ3NDEyNGY3NTE4ZTgxNmIwMC4uYzhlZjlhYThlYzE0YmU0ZDdkYzJkZTFh
YTQ1ZjZiYmI4ODdhOGY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTcxLDgg
KzcxLDggQEAgcHJpdmF0ZToKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKCk7CiAKICAgICAv
LyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KLSAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpD
b2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKTsKKyAgICB2b2lkIGNyZWF0ZVJlbW90ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNr
ZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7
CisgICAgdm9pZCBjb21taXRBcHBseURpc3BsYXlMaXN0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgdXNpbmcgSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKj47CiAgICAgSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggMmMw
ZjdlOGExMjAzZjI2ODY1MmEwMGZjMWY3YjE3ZGE1OTlkMmFhOC4uZDFlNmIwMjI5MGRhMTYwZjk2
MjdiMTMxNWZiMjQ2NDBlMDFlZTcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbgpAQCAtMjMsOCArMjMsOCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKIAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVkIHsK
LSAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChXZWJDb3JlOjpGbG9hdFNpemUgbG9n
aWNhbFNpemUsIFdlYkNvcmU6OkludFNpemUgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJLaXQ6OkltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgdm9pZCBDb21taXRJbWFnZUJ1ZmZlckZsdXNo
Q29udGV4dChXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcikKKyAgICB2b2lkIENyZWF0ZVJlbW90ZUltYWdlQnVmZmVyQmFja2VuZChXZWJDb3JlOjpG
bG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OkludFNpemUgYmFja2VuZFNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJLaXQ6
OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgdm9pZCBDb21taXRBcHBs
eURpc3BsYXlMaXN0KFdlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411459</attachid>
            <date>2020-10-15 10:44:32 -0700</date>
            <delta_ts>2020-10-16 17:16:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217554-20201015104431.patch</filename>
            <type>text/plain</type>
            <size>49657</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjVhZWNhNTc2NzA2NGI0
MGRmODYyYzI0YTRjYzMyOTRmZmNlOWFlZS4uY2RiYTBlYWU4Zjg3ZmUwMzE3MjU5YjRiMTJmZDVm
NTVlZjg0YjkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTE1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbnRyb2R1Y2UgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHRvIG1hbmFnZSB0aGUg
cmVzb3VyY2VzIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHZpcnR1YWwgbWV0aG9kIG5hbWVkIEltYWdl
QnVmZmVyOjpmbHVzaERpc3BsYXlMaXN0KCkgd2hpY2ggaXQKKyAgICAgICAgc3VwcG9zZWQgdG8g
YXBwbHkgYSBEaXNwbGF5TGlzdCB0byB0aGUgSW1hZ2VCdWZmZXI6OmNvbnRleHQoKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6Zmx1c2hEaXNwbGF5TGlzdCk6CisKIDIwMjAtMTAtMTUgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQWRkIHN1cHBvcnQg
Zm9yIHNtb290aCBzY3JvbGxpbmcgYW5pbWF0aW9uIHdpdGggYXN5bmMgc2Nyb2xsaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDUzMzkyYzllYjYyMzU4NDhmOTFmMGRiMDViOTU4OWRjYjVkZDYzZDIuLjViM2YzOTZi
ZWNlYjYwYjA1MzFiZDI5YjY4NGEyNzYyMjViOGFjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUg
QEAKKzIwMjAtMTAtMTUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIEludHJvZHVjZSBSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkgd2hpY2ggbWFuYWdlcyB0aGUgcmVzb3VyY2VzIGluIHRoZSBHUFUgUHJvY2VzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTU0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5IHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIGNhY2hpbmcgdGhlIHJlbW90ZSBy
ZXNvdXJjZXMuCisgICAgICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSB3aWxsIGJlICBy
ZXNwb25zaWJsZSBmb3IgdGhlIElQQyBjb21tdW5pY2F0aW9ucworICAgICAgICB3aXRoIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuIEl0IHdpbGwgZGVsZWdhdGUgYWxsIHRoZSByZXNvdXJjZSBjYWNo
aW5nIHRvCisgICAgICAgIGl0cyBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuCisKKyAgICAgICAg
V2UgY2FuIGdldCByaWQgb2YgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5IGJl
Y2F1c2UgYWxsIGl0IGRvZXMKKyAgICAgICAgaXMgc2VuZGluZyBtZXNzYWdlcyB0byBXZWJQcm9j
ZXNzLiBSZW1vdmluZyBpdCB3aWxsIHNpbXBsaWZ5IHRoZSBpbnRlcmZhY2UKKyAgICAgICAgb2Yg
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eS4gU2VuZGluZyB0aGUgbWVzc2FnZXMgd2lsbCBiZSBtb3Zl
ZCB0bworICAgICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuCisKKyAgICAgICAgUmVu
YW1lIGZsdXNoRHJhd2luZ0NvbnRleHQoKSB0byBmbHVzaERpc3BsYXlMaXN0KCkgYmVjYXVzZSB0
aGUgbmFtZSBpcyAKKyAgICAgICAgY29uZnVzaW5nLiBUaGlzIGZ1bmN0aW9uIGZsdXNoZXMgYSBE
aXNwbGF5TGlzdCB0byB0aGUgY29udGV4dC4gTm8KKyAgICAgICAgRHJhd2luZ0NvbnRleHQgaXMg
aW52b2x2ZWQgaGVyZSBhbmQgdGhlcmUgaXMgYW5vdGhlciBmdW5jdGlvbiB3aXRoIHRoZQorICAg
ICAgICBzYW1lIG5hbWUgd2hpY2ggZG9lcyBub3QgdGFrZSBhbnkgYXJndW1lbnQuCisKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmFwcGx5KToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpjb21taXRGbHVzaERpc3BsYXlMaXN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpjcmVhdGVJ
bWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Zmx1c2hEaXNwbGF5TGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6Zmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1h
Z2VCdWZmZXJEcmF3aW5nQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5k
Q29tbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUltYWdlQnVmZmVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZWRJbWFnZUJ1
ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFz
ZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlQ2FjaGVQcm94eS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oLgorICAgICAg
ICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAq
IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
Y3BwOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRGlzcGxheUxpc3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERpc3BsYXlMaXN0QW5k
V2FpdENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2Fp
dENvbW1pdCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRl
eHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjb21taXRGbHVz
aERpc3BsYXlMaXN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Y29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmlu
OgorCiAyMDIwLTEwLTE1ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXVtXUEVdIEFkZCBzdXBwb3J0IGZvciBzbW9vdGggc2Nyb2xsaW5nIGFuaW1hdGlvbiB3
aXRoIGFzeW5jIHNjcm9sbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmgKaW5kZXggZDE0NjQ5MmM0YThkZjkzNWNhZjk0YjlmYjk1NTkwOWFhZDFj
YmFmMC4uODA3ZjIzMDE0NjhkNzUzNDVmMWEyYWU4MjgzNjRiMTI0OGNiYjIyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0zMyw2ICsz
Myw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7Citj
bGFzcyBEaXNwbGF5TGlzdDsKIGNsYXNzIERyYXdpbmdDb250ZXh0OwogfQogCkBAIC02NSw2ICs2
Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIERpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dCog
ZHJhd2luZ0NvbnRleHQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIGZs
dXNoRHJhd2luZ0NvbnRleHQoKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBmbHVzaERpc3BsYXlM
aXN0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpIHsgfQorCiAgICAgdmlydHVhbCBB
ZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIElu
dFNpemUgbG9naWNhbFNpemUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIGJhY2tl
bmRTaXplKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlclByb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY5ZDE1MmI2NzQ0
MmRhNjcyZWFlNWE4YTg1ZGE4MWMyNmFiNjgyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgiCi0KLSNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCi0KLSNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVzc2FnZXMuaCIK
LSNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlclByb3h5OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkoUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHksIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
Ci0gICAgOiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShyZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkpCi0gICAgLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcihyZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIpCi17Ci19Ci0KLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
clByb3h5OjpjcmVhdGVCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0
IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSkKLXsKLSAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIFdURk1vdmUoaGFuZGxlKSwgbV9yZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyUHJveHk6OmNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRp
ZmllciBmbHVzaElkZW50aWZpZXIpCi17Ci0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q29tbWl0SW1hZ2VCdWZm
ZXJGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmll
ciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHku
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmIzZGI0ZDY4Yjc5NDY1NzdjOTRlYWU0
MjRhZDY3ZjUzMGM5ZjBmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlclByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlLmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlM
aXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1JlbW90ZVJlc291cmNlSWRlbnRpZmllci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1lbnVt
IGNsYXNzIEFscGhhUHJlbXVsdGlwbGljYXRpb24gOiB1aW50OF90OwotY2xhc3MgSW1hZ2VEYXRh
OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OwotCi1jbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkgewot
cHVibGljOgotICAgIHZpcnR1YWwgflJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eSgpID0gZGVmYXVsdDsKLQotICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLiBTZWUgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluLgotICAgIHZpcnR1YWwgdm9pZCBm
bHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlz
dCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChj
b25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZsdXNo
SWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4g
Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCA9IDA7Ci0KLXByb3RlY3Rl
ZDoKLSAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkoUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKLQot
ICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuIFNlZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1l
c3NhZ2VzLmluLgotICAgIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUpOwotICAgIHZvaWQgY29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJ
ZGVudGlmaWVyKTsKLQotICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgYmFja2VuZCgp
IHsgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OyB9Ci0KLXByaXZhdGU6Ci0g
ICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTsKLSAgICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IGIxNTdhYmJjMGQ1
MDk3ZTZkOThmYjU2NmM2YzMwMDAxNjAyYmNhZTUuLjFmYjIxYjFjNmZjY2E2NjM1MDk0MzI5ODA3
MGY2OTYxNzU2Y2Y3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMjgsMTcgKzI4LDE3IEBA
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIgotI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29uY3JldGVJbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRGlzcGxheUxpc3RSZXBsYXllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgQmFja2VuZFR5cGU+Ci1jbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5IDogcHVibGljIFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+LCBw
dWJsaWMgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LCBwdWJsaWMgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSB7CitjbGFzcyBSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5IDogcHVibGljIFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5
cGU+LCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSB7CiAg
ICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpDb25jcmV0ZUltYWdl
QnVmZmVyPEJhY2tlbmRUeXBlPjsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6
Y29udGV4dDsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6bV9iYWNrZW5kOwor
ICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7CiAKIHB1Ymxp
YzoKICAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHks
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCkBAIC00OCw5ICs0OCw5IEBAIHB1YmxpYzoKIAogICAgIFJlbW90ZUltYWdlQnVmZmVyUHJv
eHkoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQsIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eSYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LCBXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogICAgICAgICA6
IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKFdURk1vdmUoYmFja2VuZCkpCi0gICAgICAgICwgUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICAsIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5KHJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKICAgICB7Ci0gICAg
ICAgIGNyZWF0ZUJhY2tlbmQobV9iYWNrZW5kLT5sb2dpY2FsU2l6ZSgpLCBtX2JhY2tlbmQtPmJh
Y2tlbmRTaXplKCksIG1fYmFja2VuZC0+cmVzb2x1dGlvblNjYWxlKCksIG1fYmFja2VuZC0+Y29s
b3JTcGFjZSgpLCBtX2JhY2tlbmQtPmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpKTsK
KyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3JlYXRlSW1hZ2VCdWZmZXJC
YWNrZW5kKG1fYmFja2VuZC0+bG9naWNhbFNpemUoKSwgbV9iYWNrZW5kLT5iYWNrZW5kU2l6ZSgp
LCBtX2JhY2tlbmQtPnJlc29sdXRpb25TY2FsZSgpLCBtX2JhY2tlbmQtPmNvbG9yU3BhY2UoKSwg
bV9iYWNrZW5kLT5jcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSwgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICB+UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSgpCkBA
IC02MiwxMCArNjIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHVzaW5nIEJh
c2VDb25jcmV0ZUltYWdlQnVmZmVyOjpmbHVzaERyYXdpbmdDb250ZXh0OwotICAgIHVzaW5nIEJh
c2VDb25jcmV0ZUltYWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7Ci0KLSAgICB2b2lkIGZsdXNoRHJh
d2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNw
bGF5TGlzdCkgb3ZlcnJpZGUKKyAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3QoY29uc3QgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSkgewogICAgICAgICAgICAgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyIHJlcGxheWVyKEJhc2VDb25jcmV0ZUltYWdlQnVm
ZmVyOjpjb250ZXh0KCksIGRpc3BsYXlMaXN0LCB0aGlzKTsKQEAgLTczLDE4ICs3MCw2IEBAIHBy
aXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRB
bmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5
TGlzdCwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyKSBvdmVycmlk
ZQotICAgIHsKLSAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7Ci0gICAg
ICAgIG1fYmFja2VuZC0+Zmx1c2hDb250ZXh0KCk7Ci0gICAgICAgIGNvbW1pdEZsdXNoQ29udGV4
dChmbHVzaElkZW50aWZpZXIpOwotICAgIH0KLQotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURh
dGE+IGdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZv
cm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3Qgb3ZlcnJpZGUKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Z2V0SW1hZ2VEYXRh
KG91dHB1dEZvcm1hdCwgc3JjUmVjdCk7Ci0gICAgfQotCiAgICAgYm9vbCBhcHBseShXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbSYgaXRlbSwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGl0ZW0udHlwZSgpID09IFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhKSB7CkBAIC0xMDMsNyArODgsNyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBhcHBseShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UGFpbnRG
cmFtZUZvck1lZGlhJiBpdGVtLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAg
ICAgewotICAgICAgICBhdXRvIHByb2Nlc3MgPSBiYWNrZW5kKCkuZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2VzcygpOworICAgICAgICBhdXRvIHByb2Nlc3MgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7CiAgICAgICAgIGlmICghcHJvY2Vz
cykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTE3LDYgKzEwMiw4IEBAIHByaXZhdGU6CiAK
ICAgICAgICAgY29udGV4dC5wYWludEZyYW1lRm9yTWVkaWEoKnBsYXllciwgaXRlbS5kZXN0aW5h
dGlvbigpKTsKICAgICB9CisKKyAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IDJhMmUxOGExODMwZjhhODRkY2Ex
N2M3MThhZTBhMDQwYWQ2ZDUwN2YuLjEzN2Q0ODdjMDA5ODIzNDcyODJmMTlmOWUyOTZjNzEzZjFm
Mzc4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlUmVuZGVy
aW5nQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5TWVzc2FnZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NCw2ICs1NSwxMSBAQCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6On5SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHko
KQogICAgICAgICBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5tZXNzYWdlUmVjZWl2ZXJNYXAo
KS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
LnRvVUludDY0KCkpOwogfQogCitHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7Cit9CisKIElQQzo6
Q29ubmVjdGlvbiogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCkpCkBAIC02Niw2NCArNzIsNjAg
QEAgdWludDY0X3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIudG9VSW50NjQoKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25z
dCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbW90ZVJlc291
cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNz
YWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGxv
Z2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZN
b3ZlKGhhbmRsZSksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y29t
bWl0Rmx1c2hEaXNwbGF5TGlzdChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50
aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Q29tbWl0Rmx1
c2hEaXNwbGF5TGlzdChmbHVzaElkZW50aWZpZXIsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciks
IG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworfQorCiB2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvKiBncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmdldCgpOwotICAgIGlmICgh
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAgICAgICAgcmV0dXJuOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gaW1hZ2U7CiAKLSAgICBpZiAobV9pbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmNvbnRhaW5zKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikp
IHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
CisgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlQWNjZWxlcmF0
ZWQpCisgICAgICAgIGltYWdlID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Ojpj
cmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAKLSAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5k
ZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCkgewotICAgICAgICBpZiAoYXV0byBpbWFnZUJ1
ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKGxvZ2ljYWxT
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpKSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAu
YWRkKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShpbWFnZUJ1ZmZlcikpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmICghaW1hZ2UgfHwgcmVu
ZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVVbmFjY2VsZXJhdGVkKQorICAgICAg
ICBpbWFnZSA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjpjcmVhdGUobG9n
aWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcik7CiAKLSAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2Rl
OjpSZW1vdGVBY2NlbGVyYXRlZCB8fCByZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJl
bW90ZVVuYWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBVbmFj
Y2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
KSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuYWRkKHJlbW90
ZVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShpbWFnZUJ1ZmZlcikpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9CisgICAgaWYgKGltYWdlKSB7CisgICAgICAgIG1fcmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LmNhY2hlSW1hZ2VCdWZmZXIocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCBXVEZNb3ZlKGltYWdlKSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJl
bGVhc2VSZW1vdGVSZXNvdXJjZShSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoRGlz
cGxheUxpc3QoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5
TGlzdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikK
IHsKLSAgICAvLyBDcmVhdGVJbWFnZUJ1ZmZlciBtZXNzYWdlIHNob3VsZCBoYXZlIGJlZW4gcmVj
ZWl2ZWQgYmVmb3JlIHRoaXMgb25lLgotICAgIGJvb2wgZm91bmQgPSBtX2ltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJNYXAucmVtb3ZlKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0gICAgQVNT
RVJUX1VOVVNFRChmb3VuZCwgZm91bmQpOworICAgIGlmIChhdXRvIGltYWdlID0gbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkuY2FjaGVkSW1hZ2VCdWZmZXIocmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKSkKKyAgICAgICAgaW1hZ2UtPmZsdXNoRGlzcGxheUxpc3QoZGlzcGxheUxpc3QpOwogfQog
Ci12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6
OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNy
Y1JlY3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hE
aXNwbGF5TGlzdEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZp
ZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7
Ci0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJN
YXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpIHsKLSAgICAgICAgYXV0byBpbWFnZURh
dGEgPSBpbWFnZUJ1ZmZlci0+Z2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCk7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlKFdURk1vdmUo
aW1hZ2VEYXRhKSkpOworICAgIGlmIChhdXRvIGltYWdlID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuY2FjaGVkSW1hZ2VCdWZmZXIocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAg
ICAgICBpbWFnZS0+Zmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlzdCk7CisgICAgICAgIGltYWdl
LT5mbHVzaENvbnRleHQoKTsKKyAgICAgICAgY29tbWl0Rmx1c2hEaXNwbGF5TGlzdChmbHVzaElk
ZW50aWZpZXIsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogfQogCi12b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCi17Ci0gICAg
aWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0
KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCi0gICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERy
YXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKLX0KLQotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZl
ckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0
Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJ
bWFnZURhdGFSZWZlcmVuY2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKGF1
dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikpCi0gICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBmbHVzaElkZW50aWZpZXIpOworICAgIFJlZlB0
cjxJbWFnZURhdGE+IGltYWdlRGF0YTsKKyAgICBpZiAoYXV0byBpbWFnZSA9IG1fcmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LmNhY2hlZEltYWdlQnVmZmVyKHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cikpCisgICAgICAgIGltYWdlRGF0YSA9IGltYWdlLT5nZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0
LCBzcmNSZWN0KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6OkltYWdlRGF0YVJlZmVyZW5j
ZShXVEZNb3ZlKGltYWdlRGF0YSkpKTsKIH0KIAotR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyog
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkg
Y29uc3QKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVz
b3VyY2UoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikK
IHsKLSAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmdldCgpOworICAgIG1f
cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuaAppbmRleCBjNjEwMzU3ZTQxNTg2MmNmMmUwOTMxOGM2NjMxZDM4MTli
MGVkNDhmLi44OTIxOGU4NTQxYWM0YWNhNjM1MDJjZjk4MWM0MWE2NDFkYzg1NTMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC0yOCwyNCArMjgsMjQgQEAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJJbWFnZURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCi0jaW5jbHVkZSAiUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3Bs
YXlMaXN0SXRlbXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9S
ZW5kZXJpbmdNb2RlLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3Qg
ewogY2xhc3MgRGlzcGxheUxpc3Q7CiB9CitjbGFzcyBGbG9hdFNpemU7CitlbnVtIGNsYXNzIENv
bG9yU3BhY2UgOiB1aW50OF90OworZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogdWludDhfdDsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01OSw5ICs1OSwxMiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IGNyZWF0
ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIp
OwogICAgIHZpcnR1YWwgflJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpOwogCi0gICAgUmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSBjb25z
dCB7IHJldHVybiBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOyB9CiAgICAgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyogZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0OwogCisg
ICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4KKyAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpD
b2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBjb21taXRGbHVzaERpc3BsYXlMaXN0KEltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwor
CiBwcml2YXRlOgogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eShHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogCkBAIC03NSwxMyAr
NzgsMTIgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgogICAg
IHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwotICAg
IHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
Zmllcik7Ci0gICAgdm9pZCBmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKLSAgICB2b2lkIGZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENv
bW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZl
ckZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGZsdXNoRGlzcGxheUxpc3QoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZs
dXNoRGlzcGxheUxpc3RBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQ
Qzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsKKyAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNv
dXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogCi0gICAgdXNpbmcgSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlclByb3h5Pj47Ci0gICAgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCBtX2ltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJNYXA7CisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IG1fcmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5OwogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJ
ZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjZjZjEzNjFmZGFiMGVi
MGQzZmFmNzdlNWY3ZDJkMWM1NmY5NDBiNy4uYmNmNGM4ZTYzOThlYjI3MTMyOTBlMTU1NmJjZDI3
NjMxNTAxMGRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yNCw4ICsyNCw4IEBACiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyKFdl
YkNvcmU6OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29s
b3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikKLSAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYkNvcmU6OlJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgdm9pZCBG
bHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVu
dGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICB2b2lkIEZsdXNoRGlzcGxheUxpc3QoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHZvaWQg
Rmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QgZGlzcGxheUxpc3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKQogICAgIEdldEltYWdlRGF0YShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVj
dCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcikgLT4gKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlIGltYWdlRGF0YSkgU3luY2hyb25vdXMK
ICAgICB2b2lkIFJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42YTUyODQ5ZTliYjRlZWNiZWJkMmFjZmM2NTcyY2Y4ODlhNDQy
ZWFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OmNhY2hlSW1hZ2VCdWZmZXIoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmIGltYWdlKQoreworICAg
IGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMuYWRkKHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciwgV1RGTW92ZShpbWFnZSkpOworICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRS
ZXN1bHQuaXNOZXdFbnRyeSk7Cit9CisKK1dlYkNvcmU6OkltYWdlQnVmZmVyKiBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OmNhY2hlZEltYWdlQnVmZmVyKFJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXJz
LmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKG1faW1hZ2VCdWZmZXJzLnJl
bW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm47CisgICAgLy8g
Q2FjaGluZyB0aGUgcmVtb3RlIHJlc291cmNlIHNob3VsZCBoYXZlIGhhcHBlbmVkIGJlZm9yZSBy
ZWxlYXNpbmcgaXQuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlZWE4YmVlYWMwZGRkY2VjYzVkY2ZhOWU1ZTYzOWJjZmFk
NGFjM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgSW1hZ2VCdWZmZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CisKK2NsYXNzIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eSB7CitwdWJsaWM6CisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkgPSBkZWZh
dWx0OworCisgICAgdm9pZCBjYWNoZUltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbW90ZVJlc291cmNl
SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiYmKTsKKyAg
ICBXZWJDb3JlOjpJbWFnZUJ1ZmZlciogY2FjaGVkSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCitwcml2YXRlOgorICAgIHVzaW5nIFJl
bW90ZUltYWdlQnVmZmVySGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+PjsKKworICAg
IFJlbW90ZUltYWdlQnVmZmVySGFzaE1hcCBtX2ltYWdlQnVmZmVyczsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHAKaW5kZXggNDAxN2EyYThmMjJjZWNlY2MyMTUxYTMwYTMyNzhmZjkwNmVhZjMyYS4uNjc0OGQx
ZjVkODAwZDk1NzRmMjM4MDc1YjE4OTBiNGU0YWNlZTkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCkBAIC0y
OSw2ICsyOSw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAK
ICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
Y3BwCmluZGV4IDk3N2Y5M2ZmNWMzYzJiODE3ODQ2YzlhOWE3NTUxNzg5YzhlZmUwNWMuLjYxYjg5
MGRjNzg2N2MzM2IwMDVmMjJlOTNiYjFhZjQ3ZGRkM2IxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5j
bHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlICJHUFVQcm9jZXNzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGRhZjVmYjczMTNiZGQ5ODA2OGRlZGQzOWNiYWM0
ZGZiZTkzNzdjYTguLjY3YzEzM2U2N2QzZGU0NjYxNzI1MGZmNTkwMjJjMDFhZDQ5MDJkOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dApAQCAtMjQsOCArMjQsOCBAQAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAog
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAotR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Np
b25Qcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZWRh
MTVhMzVmZGJhNWM3MjI0MmMxMzg1OGY3MzhjNGFjNmY4YTBlLi5kZWRhMWM4ZTNmYWU4MDgyM2Ez
NzNmNTRkY2M2NTFlMGY0NTJmZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxODQsOCArNDE4NCw2IEBACiAJCTcyMjc4MDBCMjQw
OEJEN0QwMDdEMzc2QiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzIyNzgwMEMyNDA5N0EwMjAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4MDBEMjQwOTdB
MDIwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNzIyNzgwMTEyNDA5OTA2RTAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk3MjI3ODAxMjI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBN0YzNDI0MDc4
NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxl
SU9TdXJmYWNlQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3
RjM1MjQwNzg1N0YwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tl
bmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFi
bGVJT1N1cmZhY2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3
RjM2MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTk1LDYgKzQx
OTMsOCBAQAogCQk3MjdBN0Y0OTI0MDhBRUU2MDA0RDI5MzEgLyogUmVtb3RlSW1hZ2VCdWZmZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkYwMTc5NTE4OEMwMDg3ODc5RSAv
KiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3MjlEMDUzMjI1MzE0RkVGMDA0MjIwOTggLyogUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOUQwNTMzMjUzMTRGRUYwMDQyMjA5OCAvKiBSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1QThEMkM0MTg3Q0NGOUYw
MEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmUubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYnNpdGVEYXRhU3RvcmUu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5
RSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtODEwOCwxMiArODEwOCwxMiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKIAkJCQk1NUFEMDk0MzI0MDhBMEU2MDBERTREMkYgLyogUGxhdGZvcm1S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggKi8sCi0JCQkJNzIyNzgwMTEyNDA5OTA2RTAwN0QzNzZC
IC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgKi8sCi0JCQkJNzIy
NzgwMTIyNDA5OTA2RTAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eS5oICovLAogCQkJCTU1QUQwOTQyMjQwOEEwMkUwMERFNEQyRiAvKiBSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5LmggKi8sCiAJCQkJNTUwNjQwQTIyNDA3MUE2MTAwQUFFMDQ1IC8qIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgKi8sCiAJCQkJNTUwNjQwQTMyNDA3MUE2MTAwQUFFMDQ1
IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oICovLAogCQkJCTU1MDY0MEE0MjQwNzFD
MjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4gKi8s
CisJCQkJNzI5RDA1MzIyNTMxNEZFRjAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5jcHAgKi8sCisJCQkJNzI5RDA1MzMyNTMxNEZFRjAwNDIyMDk4IC8qIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBncmFwaGljczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggZTg0OTE2NjQ1MTQ1OTYyODdl
ZjJjNzhmOTA3NmUxZDQzODIxOTFmMi4uMmI4MDc1Mjc3NDEzYjYyYzA2NjQ0ODAwNmZhMDRlNWM5
YjI0ZDk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtODEsNyArODEsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFs
cGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBzcmNSZWN0KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgYXV0byYgZGlzcGxheUxp
c3QgPSBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyKj4odGhpcyktPm1fZHJhd2luZ0NvbnRl
eHQuZGlzcGxheUxpc3QoKTsKLSAgICAgICAgY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlcio+
KHRoaXMpLT5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250
ZXh0KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlcio+
KHRoaXMpLT5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERpc3BsYXlMaXN0
KGRpc3BsYXlMaXN0KTsKICAgICAgICAgYXV0byByZXN1bHQgPSBjb25zdF9jYXN0PFJlbW90ZUlt
YWdlQnVmZmVyKj4odGhpcyktPlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmdldElt
YWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOwogICAgICAgICAvLyBnZXRJbWFnZURhdGEg
aXMgc3luY2hyb25vdXMsIHdoaWNoIG1lYW5zIHdlJ3ZlIGFscmVhZHkgcmVjZWl2ZWQgdGhlIENv
bW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0IG1lc3NhZ2UuCiAgICAgICAgIHJldHVybiByZXN1
bHQ7CkBAIC0xMDUsNyArMTA1LDcgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICAgICAgYXV0byYg
ZGlzcGxheUxpc3QgPSBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCk7CiAgICAgICAgIGlm
IChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSkKLSAgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KGRpc3BsYXlM
aXN0KTsKKyAgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNo
RGlzcGxheUxpc3RBbmRXYWl0Q29tbWl0KGRpc3BsYXlMaXN0KTsKICAgICB9CiAgICAgCiAgICAg
dm9pZCB3aWxsQXBwZW5kSXRlbShjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbSYpIG92
ZXJyaWRlCkBAIC0xMTMsNyArMTEzLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBjb25zdGV4cHIg
c2l6ZV90IERpc3BsYXlMaXN0QmF0Y2hTaXplID0gNTEyOwogICAgICAgICBhdXRvJiBkaXNwbGF5
TGlzdCA9IG1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKTsKICAgICAgICAgaWYgKGRpc3Bs
YXlMaXN0Lml0ZW1Db3VudCgpID49IERpc3BsYXlMaXN0QmF0Y2hTaXplKQotICAgICAgICAgICAg
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNw
bGF5TGlzdCk7CisgICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpm
bHVzaERpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcAppbmRleCA0ZTliNzYyZDhlMGNmNWZm
Zjg3ZjFjNDI4NDVhZjAwNGE4ZGExZGFiLi5kZjFjM2ZlMjNiYjVhN2EyYTE0MmJmYTVjOTg5MWVm
OTMwZWJkOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
ci5jcHAKQEAgLTcwLDIxICs3MCwyMSBAQCB2b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXI6OndhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpCiAgICAgICAgIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+d2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250
ZXh0KCk7CiB9CiAKLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hE
cmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlM
aXN0KQordm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERpc3BsYXlM
aXN0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCiB7CiAg
ICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGRpc3BsYXlM
aXN0LCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7CisgICAgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNo
RGlzcGxheUxpc3QoZGlzcGxheUxpc3QsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKICAg
ICBkaXNwbGF5TGlzdC5jbGVhcigpOwogfQogCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCit2b2lkIFJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXI6OmZsdXNoRGlzcGxheUxpc3RBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCiB7CiAgICAgaWYgKCFtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQpCiAgICAgICAgIHJldHVybjsKICAgICBtX3NlbnRGbHVzaElkZW50
aWZpZXIgPSBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKLSAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlM
aXN0LCBtX3NlbnRGbHVzaElkZW50aWZpZXIsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsK
KyAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hEaXNwbGF5TGlzdEFuZENvbW1pdChkaXNwbGF5TGlzdCwg
bV9zZW50Rmx1c2hJZGVudGlmaWVyLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7CiAgICAg
ZGlzcGxheUxpc3QuY2xlYXIoKTsKICAgICB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENv
bnRleHQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgK
aW5kZXggNmNmYzg1ODk1YTUxOGFhNGY3OGU5NTQyYjkwYzhhMTM0YmRhODZiOC4uNDhlMWNmZTcx
ZTc1NDc1MDE1MGY3M2FjYmEzYzNhMmFlZjYyZTc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgKQEAgLTY3LDggKzY3LDggQEAgcHJvdGVjdGVkOgogICAg
IHZvaWQgd2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCk7CiAKICAgICAvLyBN
ZXNzYWdlcyB0byBiZSBzZW50LiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3Nh
Z2VzLmluLgotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3QmKTsKLSAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29t
bWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpOworICAgIHZvaWQgZmx1c2hE
aXNwbGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKTsKKyAgICB2b2lk
IGZsdXNoRGlzcGxheUxpc3RBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCYpOwogCiBwcml2YXRlOgogICAgIFdlYWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZD4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5j
cHAKaW5kZXggZGJiZTliODMwMzZmYmU2YTBkNDAzYWNmZDhiOWU3ZTllNjcwZDUxOC4uNzM1ZDUz
NmNjNDIxNmQyNGIwMjVkMzBkODMwM2MxMjRiODU4NjQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwCkBAIC04Myw3ICs4Myw3IEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpCiBib29sIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OndhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpCiB7CiAgICAg
UmVmPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwotICAgIHJldHVybiBj
b25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQ+KG1fcmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1cHRX
YWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOworICAgIHJldHVybiBjb25uZWN0aW9uLT53YWl0
Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6Q29tbWl0Rmx1c2hEaXNwbGF5TGlzdD4obV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciwg
MV9zLCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJy
aXZlcyk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBTaG91bGRB
Y2NlbGVyYXRlIHNob3VsZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBjb2xvclNwYWNlKQpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpCiAgICAgICAgIGltYWdlQnVmZmVyLT5jcmVhdGVCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNr
ZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSkpOwog
fQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hD
b250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Y29tbWl0Rmx1c2hEaXNwbGF5TGlzdChJbWFnZUJ1ZmZlckZsdXNo
SWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2lt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikp
CiAgICAgICAgIGltYWdlQnVmZmVyLT5jb21taXRGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggMjhhNjQzYTQ4YWY1NThhY2U0Y2Y4
MWQ3NDEyNGY3NTE4ZTgxNmIwMC4uYzQ4OTY1M2QyNmU3M2IzNjc1NzM1OGMyYTEyYWNjMGRmZjYz
ZjBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHJp
dmF0ZToKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgogICAgIHZvaWQgY3JlYXRl
SW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29y
ZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIGNvbW1pdEltYWdlQnVmZmVy
Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgY29tbWl0Rmx1c2hEaXNwbGF5TGlzdChJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KTsKIAogICAgIHVzaW5nIEltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAgPSBIYXNoTWFwPFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlcio+OwogICAgIEltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAgbV9pbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1l
c3NhZ2VzLmluCmluZGV4IDJjMGY3ZThhMTIwM2YyNjg2NTJhMDBmYzFmN2IxN2RhNTk5ZDJhYTgu
LjJhZmQ1ZTNmMDU3NGNkNWU3MTZiNWFjMzVhNGEyZTc5YmYyN2I5YjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKIAog
bWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVkIHsKICAgICB2
b2lkIENyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNp
emUsIFdlYkNvcmU6OkludFNpemUgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
V2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgdm9pZCBDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4
dChXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikK
KyAgICB2b2lkIENvbW1pdEZsdXNoRGlzcGxheUxpc3QoV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNo
SWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411634</attachid>
            <date>2020-10-16 17:16:54 -0700</date>
            <delta_ts>2020-10-16 20:06:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217554-20201016171653.patch</filename>
            <type>text/plain</type>
            <size>64064</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVmZmM0MDQ2Njg3OTk2
MjRkMzM5ZDliNTJmOWRjYjEyYTlmOTFkZi4uZWFlZTU4NzlkM2E5ZDFjMzczNGUyZTM4ZmZmMjRl
OTYwNjZmZTU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTE2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbnRyb2R1Y2UgUmVtb3RlUmVzb3VyY2VDYWNoZSB0byBtYW5hZ2UgdGhlIHJlc291
cmNlcyBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB2aXJ0dWFsIG1ldGhvZCBuYW1lZCBJbWFnZUJ1ZmZl
cjo6Zmx1c2hEaXNwbGF5TGlzdCgpIHdoaWNoCisgICAgICAgIGFwcGxpZXMgYSBEaXNwbGF5TGlz
dCB0byB0aGUgSW1hZ2VCdWZmZXI6OmNvbnRleHQoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Zmx1
c2hEaXNwbGF5TGlzdCk6CisKIDIwMjAtMTAtMTYgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCBBWENvcmVPYmplY3Q6OnRvcERvY3VtZW50
RnJhbWVWaWV3IGNoYW5nZSB0aGF0IGNhdXNlZCBidWlsZCBmYWlsdXJlIG9uIGlPUyBkZWJ1Zy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZDg5YzdjZTE1ZDBjYjNlOWNiZGQ0YTM2M2RkNjhmYmRkNzAyMmRiZC4uYjll
NmVkZGQ4NDBlZGZlODlhOGI5OWQzNWU0YzQ2MzBmOTU1NjYxYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw3MCBAQAorMjAyMC0xMC0xNiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBw
bGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9kdWNlIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eSB3aGljaCBtYW5hZ2VzIHRoZSByZXNvdXJjZXMgaW4gdGhlIEdQVSBQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdGVS
ZXNvdXJjZUNhY2hlIHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIGNhY2hpbmcgdGhlIHJlbW90ZSBy
ZXNvdXJjZXMuCisgICAgICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgd2lsbCBkZWxlZ2F0ZSBh
bGwgdGhlIHJlc291cmNlIGNhY2hpbmcgdG8gaXRzCisgICAgICAgIFJlbW90ZVJlc291cmNlQ2Fj
aGUuCisKKyAgICAgICAgV2UgY2FuIGdldCByaWQgb2YgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlciBiZWNhdXNlIGFsbCBpdCBkb2VzIGlzCisgICAgICAgIGlzIHNlbmRpbmcgbWVzc2Fn
ZXMgdG8gV2ViUHJvY2Vzcy4gUmVtb3ZpbmcgaXQgd2lsbCBzaW1wbGlmeSB0aGUgaW50ZXJmYWNl
CisgICAgICAgIG9mIFJlbW90ZUltYWdlQnVmZmVyLiBTZW5kaW5nIHRoZSBtZXNzYWdlcyB3aWxs
IGJlIG1vdmVkIHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuCisKKyAgICAgICAgUmVuYW1lIGZs
dXNoRHJhd2luZ0NvbnRleHQoKSB0byBmbHVzaERpc3BsYXlMaXN0KCkgYmVjYXVzZSB0aGUgbmFt
ZSBpcyAKKyAgICAgICAgY29uZnVzaW5nLiBUaGlzIGZ1bmN0aW9uIGZsdXNoZXMgYSBEaXNwbGF5
TGlzdCB0byB0aGUgY29udGV4dC4gTm8KKyAgICAgICAgRHJhd2luZ0NvbnRleHQgaXMgaW52b2x2
ZWQgaGVyZSBhbmQgdGhlcmUgaXMgYW5vdGhlciBmdW5jdGlvbiB3aXRoIHRoZQorICAgICAgICBz
YW1lIG5hbWUgd2hpY2ggZG9lcyBub3QgdGFrZSBhbnkgYXJndW1lbnQuCisKKyAgICAgICAgUmVu
YW1lIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIHRvIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlm
aWVyIHRvIG1ha2UKKyAgICAgICAgbW9yZSBnZW5lcmFsIG5hbWUgYW5kIGJlIHJlYWR5IGZvciBH
UFUgRE9NIHJlbmRlcmluZy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OlJlbW90
ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OmFwcGx5
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Y29tbWl0Rmx1c2hEaXNwbGF5TGlzdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3RB
bmRDb21taXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRJ
bWFnZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxl
YXNlUmVtb3RlUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0Nv
bnRleHRBbmRDb21taXQpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpyZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlc291cmNlQ2FjaGU6OmNhY2hlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZXNvdXJjZUNhY2hlOjpjYWNoZWRJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6CisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmg6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFu
ZGxlci5oLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0Rpc3BsYXlMaXN0Rmx1c2hJZGVu
dGlmaWVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL0ltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Ojp3YWl0
Rm9yQ29tbWl0Rmx1c2hEaXNwbGF5TGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Zmx1c2hEaXNwbGF5TGlzdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Zmx1c2hEaXNwbGF5
TGlzdEFuZFdhaXRDb21taXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHk6OmNvbW1pdEZsdXNoQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6d2FpdEZvckNvbW1pdEltYWdl
QnVmZmVyRmx1c2hDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
OjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdCk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclBy
b3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6d2FpdEZvckNvbW1pdEZsdXNoRGlzcGxheUxpc3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNvbW1pdEZsdXNoRGlzcGxheUxpc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OndhaXRGb3JD
b21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRl
eHQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjoKKwogMjAyMC0xMC0xNiAg
U2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtH
UFUgUHJvY2Vzc10gRXhjaGFuZ2UgUmVtb3RlSW1hZ2VCdWZmZXIgYW5kIFJlbW90ZUltYWdlQnVm
ZmVyUHJveHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5oCmluZGV4IGQxNDY0OTJjNGE4ZGY5MzVjYWY5NGI5ZmI5NTU5MDlhYWQxY2JhZjAuLjBhZTlm
Y2JkMDU4OGQ0YzRlMWVmNWFmM2NjN2YxMmI2MTJiZjc4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMzMsNiArMzMsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgeworY2xhc3MgRGlzcGxh
eUxpc3Q7CiBjbGFzcyBEcmF3aW5nQ29udGV4dDsKIH0KIApAQCAtNjQsNiArNjUsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIERpc3BsYXlMaXN0OjpEcmF3aW5nQ29udGV4dCogZHJhd2luZ0Nv
bnRleHQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2lu
Z0NvbnRleHQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEaXNwbGF5TGlzdChjb25zdCBE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKSB7IH0KIAogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNm
b3JtIGJhc2VUcmFuc2Zvcm0oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRTaXplIGxvZ2lj
YWxTaXplKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCBkZjViODdhMjgwN2I3ZjQwYWM0ZmYw
ZjU3ZmJmNGNlMTIwMWUyYzgwLi45NzY3YzE3MWM0OGQwMjc3ODE3ZjkzYmU5ZTMyY2E2ZTQ3YjE1
OTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaApAQCAtMjgsMTcgKzI4LDE3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUg
IlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQ29uY3JldGVJbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RS
ZXBsYXllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQmFj
a2VuZFR5cGU+Ci1jbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlciA6IHB1YmxpYyBXZWJDb3JlOjpDb25j
cmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIsIHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OkRlbGVn
YXRlIHsKK2NsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OkNvbmNyZXRl
SW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+LCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
cGxheWVyOjpEZWxlZ2F0ZSB7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIgPSBX
ZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPjsKICAgICB1c2luZyBCYXNl
Q29uY3JldGVJbWFnZUJ1ZmZlcjo6Y29udGV4dDsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFn
ZUJ1ZmZlcjo6bV9iYWNrZW5kOworICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpw
dXRJbWFnZURhdGE7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNv
bG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3RlUmVuZGVy
aW5nQmFja2VuZCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikKQEAgLTQ4LDkgKzQ4LDkgQEAgcHVibGljOgogCiAgICAgUmVtb3RlSW1h
Z2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYmIGJhY2tlbmQsIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgICAgIDogQmFz
ZUNvbmNyZXRlSW1hZ2VCdWZmZXIoV1RGTW92ZShiYWNrZW5kKSkKLSAgICAgICAgLCBSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcikKKyAgICAgICAgLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQocmVt
b3RlUmVuZGVyaW5nQmFja2VuZCkKICAgICB7Ci0gICAgICAgIGNyZWF0ZUJhY2tlbmQobV9iYWNr
ZW5kLT5sb2dpY2FsU2l6ZSgpLCBtX2JhY2tlbmQtPmJhY2tlbmRTaXplKCksIG1fYmFja2VuZC0+
cmVzb2x1dGlvblNjYWxlKCksIG1fYmFja2VuZC0+Y29sb3JTcGFjZSgpLCBtX2JhY2tlbmQtPmNy
ZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChtX2JhY2tlbmQtPmxvZ2ljYWxTaXpl
KCksIG1fYmFja2VuZC0+YmFja2VuZFNpemUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9uU2NhbGUo
KSwgbV9iYWNrZW5kLT5jb2xvclNwYWNlKCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlKCksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAg
flJlbW90ZUltYWdlQnVmZmVyKCkKQEAgLTYyLDEwICs2Miw3IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmZsdXNoRHJhd2lu
Z0NvbnRleHQ7Ci0gICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnB1dEltYWdlRGF0
YTsKLQotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KSBvdmVycmlkZQorICAgIHZvaWQgZmx1c2hE
aXNwbGF5TGlzdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3Bs
YXlMaXN0KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3Vu
dCgpKSB7CiAgICAgICAgICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXIgcmVwbGF5
ZXIoQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmNvbnRleHQoKSwgZGlzcGxheUxpc3QsIHRoaXMp
OwpAQCAtNzMsMTggKzcwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KIAotICAgIHZv
aWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBm
bHVzaElkZW50aWZpZXIpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBmbHVzaERyYXdpbmdDb250
ZXh0KGRpc3BsYXlMaXN0KTsKLSAgICAgICAgbV9iYWNrZW5kLT5mbHVzaENvbnRleHQoKTsKLSAg
ICAgICAgY29tbWl0Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllcik7Ci0gICAgfQotCi0gICAg
UmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJl
bXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNS
ZWN0KSBjb25zdCBvdmVycmlkZQotICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUlt
YWdlQnVmZmVyOjpnZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICB9Ci0K
ICAgICBib29sIGFwcGx5KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiBpdGVtLCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAo
aXRlbS50eXBlKCkgPT0gV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRJbWFnZURh
dGEpIHsKQEAgLTEwMyw3ICs4OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFwcGx5KFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpQYWludEZyYW1lRm9yTWVkaWEmIGl0ZW0sIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCkKICAgICB7Ci0gICAgICAgIGF1dG8gcHJvY2VzcyA9IGJhY2tl
bmQoKS5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7CisgICAgICAgIGF1dG8gcHJvY2VzcyA9
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7CiAg
ICAgICAgIGlmICghcHJvY2VzcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTE3LDYgKzEw
Miw4IEBAIHByaXZhdGU6CiAKICAgICAgICAgY29udGV4dC5wYWludEZyYW1lRm9yTWVkaWEoKnBs
YXllciwgaXRlbS5kZXN0aW5hdGlvbigpKTsKICAgICB9CisgICAgCisgICAgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZCYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2OTdkYzgxOGEyYjJiZGI1OTNjNjRiMzE0ZGZiNzAw
NWFjOWRjOTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyLmgiCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlICJSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmgiCi0jaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
TWVzc2FnZXMuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6UmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlcihSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKQotICAgIDogbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQpCi0gICAgLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcihyZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpCi17Ci19Ci0KLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6
Y3JlYXRlQmFja2VuZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXpl
JiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUpCi17Ci0gICAgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6
Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIG1fcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyKCkpOwotfQotCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmNv
bW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZp
ZXIpCi17Ci0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoZmx1
c2hJZGVudGlmaWVyLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YzhjYmYxNTBlYTNlMjI5NDE2OWUxOWU1MzRmMWM2YWI4MzA2NjM0Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCisrKyAvZGV2L251bGwK
QEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLQotI2luY2x1
ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1
c2hJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotZW51bSBjbGFzcyBBbHBoYVByZW11bHRpcGxpY2F0aW9uIDogdWludDhf
dDsKLWNsYXNzIEltYWdlRGF0YTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ7Ci0KLWNsYXNzIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgflJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXIoKSA9IGRlZmF1bHQ7Ci0KLSAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4gU2Vl
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4uCi0gICAgdmlydHVhbCB2b2lkIGZs
dXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNv
bnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVyRmx1c2hJ
ZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBn
ZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0ID0gMDsKLQotcHJvdGVjdGVk
OgotICAgIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0KLSAgICAvLyBNZXNz
YWdlcyB0byBiZSBzZW50LiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbi4K
LSAgICB2b2lkIGNyZWF0ZUJhY2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsK
LSAgICB2b2lkIGNvbW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcik7
Ci0KLSAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiBiYWNrZW5kKCkgeyByZXR1cm4gbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwotICAgIFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllciBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllcjsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwCmluZGV4IDc3MGY0NWNjODEzNzU0ZjU5NGQ0NjVlYjBjYmEzYjE5NWNiMGQ4
MWUuLmFhYzBhOWI3NWJjMWY3MjM4MjM4Y2ViODcwNGE3YTQ5Y2Q3ZmI2ODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oIgog
I2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01NCw2ICs1NSwxMSBAQCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjp+UmVtb3RlUmVuZGVyaW5nQmFja2VuZCgpCiAgICAgICAgIGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MtPm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCitHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmdldCgpOworfQorCiBJUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoYXV0byog
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5n
ZXQoKSkKQEAgLTY2LDY0ICs3Miw2MiBAQCB1aW50NjRfdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50NjQoKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxl
LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorewor
ICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q3JlYXRlSW1h
Z2VCdWZmZXJCYWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRsZSksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciks
IG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmNvbW1pdEZsdXNoRGlzcGxheUxpc3QoRGlzcGxheUxpc3RGbHVzaElkZW50aWZp
ZXIgZmx1c2hJZGVudGlmaWVyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6Q29tbWl0Rmx1c2hEaXNwbGF5TGlzdChmbHVzaElkZW50aWZpZXIsIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworfQorCiB2
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0
U2l6ZSYgbG9naWNhbFNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byogZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQo
KTsKLSAgICBpZiAoIWdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgICAgIHJldHVybjsK
KyAgICBBU1NFUlQocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVy
YXRlZCB8fCByZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJlbW90ZVVuYWNjZWxlcmF0
ZWQpOwogCi0gICAgaWYgKG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5jb250YWlucyhy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJ
bWFnZUJ1ZmZlcj4gaW1hZ2U7CiAKLSAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdN
b2RlOjpSZW1vdGVBY2NlbGVyYXRlZCkgewotICAgICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9
IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkg
ewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmFkZChyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgIH0KKyAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJp
bmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCkKKyAgICAgICAgaW1hZ2UgPSBBY2NlbGVyYXRlZFJl
bW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgKnRoaXMsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAKLSAgICBpZiAocmVu
ZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCB8fCByZW5kZXJp
bmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJlbW90ZVVuYWNjZWxlcmF0ZWQpIHsKLSAgICAgICAg
aWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyTWFwLmFkZChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2VC
dWZmZXIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgIGlmICghaW1hZ2Up
CisgICAgICAgIGltYWdlID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUo
bG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllcik7CisKKyAgICBpZiAoaW1hZ2UpIHsKKyAgICAgICAgbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlLmNhY2hlSW1hZ2VCdWZmZXIocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBX
VEZNb3ZlKGltYWdlKSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVt
b3RlUmVzb3VyY2UoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdChjb25z
dCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIC8vIENy
ZWF0ZUltYWdlQnVmZmVyIG1lc3NhZ2Ugc2hvdWxkIGhhdmUgYmVlbiByZWNlaXZlZCBiZWZvcmUg
dGhpcyBvbmUuCi0gICAgYm9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1h
cC5yZW1vdmUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICBBU1NFUlRfVU5VU0VEKGZv
dW5kLCBmb3VuZCk7CisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNl
Q2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAg
ICAgaW1hZ2VCdWZmZXItPmZsdXNoRGlzcGxheUxpc3QoZGlzcGxheUxpc3QpOwogfQogCi12b2lk
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11
bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0QW5kQ29t
bWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3Qs
IERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBp
bWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQocmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKSkgewotICAgICAgICBhdXRvIGltYWdlRGF0YSA9IGltYWdlQnVmZmVy
LT5nZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UoV1RGTW92ZShpbWFnZURhdGEpKSk7Cisg
ICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1h
Z2VCdWZmZXIocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAgICBpbWFnZUJ1ZmZl
ci0+Zmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlzdCk7CisgICAgICAgIGltYWdlQnVmZmVyLT5m
bHVzaENvbnRleHQoKTsKKyAgICAgICAgY29tbWl0Rmx1c2hEaXNwbGF5TGlzdChmbHVzaElkZW50
aWZpZXIsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogfQogCi12b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQotewotICAgIGlmIChhdXRv
IGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3aW5nQ29u
dGV4dChkaXNwbGF5TGlzdCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1
c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlm
aWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0SW1hZ2VEYXRh
KFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJ
bnRSZWN0IHNyY1JlY3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2Um
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBt
X2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cikpCi0gICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRp
c3BsYXlMaXN0LCBmbHVzaElkZW50aWZpZXIpOworICAgIFJlZlB0cjxJbWFnZURhdGE+IGltYWdl
RGF0YTsKKyAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5j
YWNoZWRJbWFnZUJ1ZmZlcihyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICBpbWFn
ZURhdGEgPSBpbWFnZUJ1ZmZlci0+Z2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCk7
CisgICAgY29tcGxldGlvbkhhbmRsZXIoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UoV1RGTW92ZShp
bWFnZURhdGEpKSk7CiB9CiAKLUdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdAordm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gbV9ncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmdldCgpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5y
ZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCA2NGQxMWFkYjVhMjRh
NDkwMzM4NGUzZTYxNmE4YWI5MWVhYmU4MGQ2Li4yOWVlOGNhOGYyMTY1NGI5OWZiNmE5NzNlZDVk
YTU5ZTE1ZTE1NzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTI4LDI0ICsyOCwyNCBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNs
dWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0
Rmx1c2hJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgi
CiAjaW5jbHVkZSAiSW1hZ2VEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgIlJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlLmgi
CiAjaW5jbHVkZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2RlLmg+
Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogY2xhc3MgRGlzcGxh
eUxpc3Q7CiB9CitjbGFzcyBGbG9hdFNpemU7CitlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50
OF90OworZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC01OSw5ICs1OSwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYsIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kKCk7CiAKLSAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBy
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXI7IH0KICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKCkgY29uc3Q7CiAKKyAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50
LgorICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lk
IGNvbW1pdEZsdXNoRGlzcGxheUxpc3QoRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIsIFdlYkNv
cmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZChHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIpOwogCkBAIC03NSwxMyArNzgsMTIgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1l
c3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBmbHVzaEltYWdlQnVm
ZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIGZsdXNoSW1h
Z2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3QoY29uc3Qg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoY29uc3Qg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgRGlzcGxheUxpc3RGbHVzaElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBnZXRJ
bWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdl
YkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsK
KyAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOwogCi0gICAgdXNpbmcgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhh
c2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcj4+OwotICAgIEltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJNYXAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwOworICAgIFJlbW90ZVJl
c291cmNlQ2FjaGUgbV9yZW1vdGVSZXNvdXJjZUNhY2hlOwogICAgIFdlYWtQdHI8R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIFJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgppbmRleCBiNDFhYmMzMjg0M2Ez
ZDdmMjA3YTc5OWQzZWY2NmJjYjY4OWQxYWE4Li4wMzVkNmJiNDYyYzFhYzJjOTI2NjEyMDAzNTg1
Mjc1NzY3OGMzMDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpA
QCAtMjQsOCArMjQsOCBAQAogCiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIE5v
dFJlZkNvdW50ZWQgewogICAgIHZvaWQgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRT
aXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQot
ICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKLSAgICB2b2lkIEZsdXNoSW1hZ2VCdWZm
ZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QgZGlzcGxheUxpc3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKQorICAgIHZvaWQgRmx1c2hEaXNwbGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRl
bnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgdm9pZCBGbHVzaERpc3BsYXlM
aXN0QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlz
dCwgV2ViS2l0OjpEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdl
YkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
CiAgICAgR2V0SW1hZ2VEYXRhKGVudW06dWludDhfdCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxp
Y2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoSVBD
OjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJvbm91cwogICAgIHZvaWQgUmVs
ZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQw
NDcyNjI1MjE5Njc5NDY0OTRjOGFjN2E1NDkwMzEwYTdkN2IxMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNw
cApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBS
ZW1vdGVSZXNvdXJjZUNhY2hlOjpjYWNoZUltYWdlQnVmZmVyKFJlbW90ZVJlc291cmNlSWRlbnRp
ZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4mJiBpbWFnZSkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1faW1hZ2VCdWZmZXJzLmFkZChy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2UpKTsKKyAgICBBU1NFUlRfVU5V
U0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOworfQorCitXZWJDb3JlOjpJbWFn
ZUJ1ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y2FjaGVkSW1hZ2VCdWZmZXIoUmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4g
bV9pbWFnZUJ1ZmZlcnMuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQg
UmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbW90ZVJlc291cmNl
SWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKG1faW1hZ2VC
dWZmZXJzLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm47
CisgICAgLy8gQ2FjaGluZyB0aGUgcmVtb3RlIHJlc291cmNlIHNob3VsZCBoYXZlIGhhcHBlbmVk
IGJlZm9yZSByZWxlYXNpbmcgaXQuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNl
Q2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVkOGNlMGFjYzE1ZGYzNzMxYzdmMWE2ODRjM2RkMDg5NmM1
NjA4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgSW1hZ2VCdWZmZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOworCitjbGFzcyBSZW1vdGVSZXNvdXJjZUNhY2hlIHsKK3B1Ymxp
YzoKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBjYWNo
ZUltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiYmKTsKKyAgICBXZWJDb3JlOjpJbWFnZUJ1ZmZl
ciogY2FjaGVkSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpOworCitwcml2YXRlOgorICAgIHVzaW5nIFJlbW90ZUltYWdlQnVmZmVySGFzaE1h
cCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+PjsKKworICAgIFJlbW90ZUltYWdlQnVmZmVySGFz
aE1hcCBtX2ltYWdlQnVmZmVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggYTFkYjI2YzA4ODdkZDg5MDRhYmQxNjYxNDJkMTE0MDIxMDQxNzE5NC4u
N2Q2ZWRiNDkzMDhkN2NlNDRjNTViODcwOWMzZTVlMzM0NjFhNzgwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMzcsMTAgKzIzNywxMCBAQCBkZWYgdHlw
ZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpDb250ZW50V29ybGRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6RGlzcGxheUxpbmtP
YnNlcnZlcklEJywKKyAgICAgICAgJ1dlYktpdDo6RGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIn
LAogICAgICAgICAnV2ViS2l0OjpEb3dubG9hZElEJywKICAgICAgICAgJ1dlYktpdDo6R2VvbG9j
YXRpb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlJywKLSAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXInLAogICAg
ICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpM
ZWdhY3lDdXN0b21Qcm90b2NvbElEJywKICAgICAgICAgJ1dlYktpdDo6TGliV2ViUlRDUmVzb2x2
ZXJJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGY2ZTEzYTM1Yzc2ZTczMjIxOWNkZWExYzc4
ZDhiMjU2ZTFhMTI3OTkuLjc5NmRiNjk5NmVlZGZlNWI3ZTkyODAwMTM3MjA1NGNmNjljMzgwNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dApAQCAtMjQsOCArMjQsOCBAQAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNw
cAogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9H
UFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAotR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eS5jcHAK
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyLmNwcAogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3MTRkYzM0NjcxZjg4YTNi
ODg1ZDE1NzZmMDVlN2RiYmZlZjA2OWRiLi4xOTQ0ZTA5MmFmZjFjOGM3NjNkNDg1OTUwOWFjMWZi
NWQ4Yjg0Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTEwOTYsOSArMTA5Niw2IEBACiAJCTU3MERBQUMyMjMwMzczMDMwMEU4RkMw
NCAvKiBOZmNDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzBEQUFDMDIzMDM3MzAzMDBFOEZDMDQgLyogTmZjQ29ubmVjdGlvbi5oICov
OyB9OwogCQk1NzBEQUFDNjIzMDM3RjdGMDBFOEZDMDQgLyogV0tORlJlYWRlclNlc3Npb25EZWxl
Z2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcw
REFBQzQyMzAzN0Y3RTAwRThGQzA0IC8qIFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUuaCAqLzsg
fTsKIAkJNTcwREFBQ0EyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERBQUM4MjMwMzg1RkQw
MEU4RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggKi87IH07Ci0JCTU3MkVCQkRBMjUzOEY2QjQwMDA1
NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCRDgyNTM4RjZBMTAwMDU1MkIzIC8qIEFw
cEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi87IH07Ci0JCTU3MkVCQkRCMjUzOEY2QjYwMDA1
NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEOTI1MzhGNkExMDAwNTUyQjMgLyogQXBw
QXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oICovOyB9OwotCQk1NzJFQkJERDI1MzkyMTgxMDAwNTUy
QjMgLyogQXBwQXR0ZXN0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzJFQkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi87
IH07CiAJCTU3MkVCQkJGMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQkIyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29u
bmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTU3MkVCQkMw
MjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJC
QkMyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3Nh
Z2VzLmggKi87IH07CiAJCTU3MkVCQkMxMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nl
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTcyRUJCQkQyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0xMTEwLDYgKzExMDcsOSBAQAogCQk1NzJFQkJE
MDI1MzZCQjExMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQ0UyNTM2QkIx
MDAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJNTcy
RUJCRDUyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkQyMjUzNkM4
ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggKi87IH07CiAJCTU3MkVC
QkQ3MjUzN0VCQUUwMDA1NTJCMyAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUNBNjgwRDMxRTY5MDRC
NTAwNzMxRDIwIC8qIEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmggKi87IH07CisJCTU3MkVC
QkRBMjUzOEY2QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCRDgyNTM4RjZB
MTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi87IH07CisJCTU3MkVC
QkRCMjUzOEY2QjYwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEOTI1MzhGNkEx
MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oICovOyB9OworCQk1NzJFQkJE
RDI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBw
QXR0ZXN0U1BJLmggKi87IH07CiAJCTU3MkZENDQzMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3
RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MkZENDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3RGlkTW92
ZVRvV2luZG93T2JzZXJ2ZXIuaCAqLzsgfTsKIAkJNTc0MjE3OTIyNDAwRTI4NjAwMkIzMDNEIC8q
IExvY2FsQXV0aGVudGljYXRpb25TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3NDIxNzkxMjQwMEUwOTgwMDJCMzAzRCAvKiBMb2NhbEF1dGhlbnRp
Y2F0aW9uU1BJLmggKi87IH07CiAJCTU3NDJBMkVCMjUzNTYxM0YwMEI3QkExNCAvKiBBdXhpbGlh
cnlQcm9jZXNzTWFpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Q0U5MTIwRjIyOTNDMjVGMDA1QkVDNzggLyogQXV4aWxpYXJ5UHJvY2Vzc01haW4u
Y3BwICovOyB9OwpAQCAtMzkxNSw3ICszOTE1LDcgQEAKIAkJNTUwNjQwQTQyNDA3MUMyMTAwQUFF
MDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTVBRDA5NDIyNDA4QTAyRTAwREU0RDJGIC8qIFJlbW90ZUltYWdl
QnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU1QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQbGF0Zm9ybVJl
bW90ZUltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZm
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTVBRDA5NDQyNDA4QUJCMzAwREU0
RDJGIC8qIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdl
QnVmZmVyRmx1c2hJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1
QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NzBBQjhGMjIwQUUzQkQ3MDBCOEJFODcgLyogU2VjS2V5UHJveHlT
dG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTZWNLZXlQcm94eVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3MEFCOTAwMjBCMjUxNzQwMEI4QkU4NyAvKiBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3MEFCOTAzMjBCMjU0MUMwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVN0b3JlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2VjS2V5UHJveHlTdG9yZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM5MjksOSArMzkyOSw2IEBACiAJCTU3MERBQUM1
MjMwMzdGN0UwMEU4RkMwNCAvKiBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTcwREFBQzgyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ3RhcE5mY0RyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzBEQUFDOTIzMDM4NUZEMDBFOEZDMDQgLyogQ3RhcE5mY0RyaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwTmZjRHJpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNTcyRUJCRDgyNTM4RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFs
U29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRM
aW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJEOTI1MzhGNkExMDAw
NTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBB
dHRlc3RJbnRlcm5hbFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3
MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwQXR0ZXN0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkI5MjUz
NkEwNkUwMDA1NTJCMyAvKiBJbmZvLWlPUy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Q7IG5hbWUgPSAiSW5mby1pT1MucGxp
c3QiOyBwYXRoID0gIldlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2Uv
V2ViQXV0aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0Ijsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09U
OyB9OwogCQk1NzJFQkJCQTI1MzZBMDZFMDAwNTUyQjMgLyogSW5mby1PU1gucGxpc3QgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0OyBu
YW1lID0gIkluZm8tT1NYLnBsaXN0IjsgcGF0aCA9ICJXZWJBdXRoblByb2Nlc3MvRW50cnlQb2lu
dC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLU9TWC5wbGlzdCI7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNTcyRUJCQkIyNTM2QTYwQTAwMDU1MkIzIC8qIFdl
YkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzk0
OCw2ICszOTQ1LDkgQEAKIAkJNTcyRUJCRDEyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3MkVCQkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCRDMyNTM2Qzg4NTAw
MDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyRUJCRDgyNTM4RjZBMTAwMDU1MkIzIC8qIEFw
cEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBcHBBdHRl
c3RJbnRlcm5hbFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJF
QkJEOTI1MzhGNkExMDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXBwQXR0ZXN0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3MkZENDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2Jz
ZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDIxNzkxMjQwMEUwOTgwMDJCMzAzRCAv
KiBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsQXV0aGVudGlj
YXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0MkEyRjcyNTM1NjEz
RjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4ueHBjICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAid3JhcHBlci54cGMtc2VydmljZSI7
IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4ueHBj
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDIyOCw4ICs0MjI4LDgg
QEAKIAkJNzIyNzgwMEIyNDA4QkQ3RDAwN0QzNzZCIC8qIFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyNzgwMEMyNDA5N0EwMjAwN0QzNzZC
IC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MjI3ODAwRDI0MDk3QTAyMDA3RDM3NkIgLyogUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk3MjI3ODAxMTI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzIyNzgwMTIyNDA5OTA2
RTAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3MjZENTZERDI1M0E2NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VD
YWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI2RDU2REUyNTNBNjQ4MTAwMDJFRjkwIC8qIFJl
bW90ZVJlc291cmNlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBN0YzNDI0MDc4NTdEMDA0RDI5MzEg
LyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFj
a2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM1MjQwNzg1N0Yw
MDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0E3RjM2MjQwNzg4RjAw
MDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTM2LDggKzgxMzYsOCBAQAogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3MjdBN0YzMzI0MDc4NTI3MDA0
RDI5MzEgLyogY29jb2EgKi8sCisJCQkJNTVBRDA5NDQyNDA4QUJCMzAwREU0RDJGIC8qIERpc3Bs
YXlMaXN0Rmx1c2hJZGVudGlmaWVyLmggKi8sCiAJCQkJNzI3QTdGMzkyNDA3ODhGMTAwNEQyOTMx
IC8qIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oICovLAotCQkJCTU1QUQwOTQ0MjQwOEFCQjMw
MERFNEQyRiAvKiBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oICovLAogCQkJCTcyN0E3RjM3
MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3Bw
ICovLAogCQkJCTcyN0E3RjM2MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQuaCAqLywKIAkJCQk3MjdBN0YzODI0MDc4OEYwMDA0RDI5MzEgLyogUGxh
dGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaCAqLywKQEAgLTgxNTgsMTEgKzgxNTgs
MTEgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTU1QUQwOTQzMjQwOEEwRTYwMERFNEQyRiAvKiBQ
bGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmggKi8sCiAJCQkJNTVBRDA5NDIyNDA4QTAyRTAwREU0
RDJGIC8qIFJlbW90ZUltYWdlQnVmZmVyLmggKi8sCi0JCQkJNzIyNzgwMTEyNDA5OTA2RTAwN0Qz
NzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwICovLAotCQkJCTcyMjc4
MDEyMjQwOTkwNkUwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgg
Ki8sCiAJCQkJNTUwNjQwQTIyNDA3MUE2MTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwICovLAogCQkJCTU1MDY0MEEzMjQwNzFBNjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmggKi8sCiAJCQkJNTUwNjQwQTQyNDA3MUMyMTAwQUFFMDQ1IC8qIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gKi8sCisJCQkJNzI2RDU2REQyNTNBNjQ4MTAwMDJF
RjkwIC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuY3BwICovLAorCQkJCTcyNkQ1NkRFMjUzQTY0ODEw
MDAyRUY5MCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGdy
YXBoaWNzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvRGlzcGxheUxpc3RGbHVz
aElkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzM1OTNhYWY4NmUwMjZmN2ViY2MwNGUxZmRmZjY4
ZmFjNDljOWE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9EaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitlbnVtIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBEaXNwbGF5
TGlzdEZsdXNoSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RGlzcGxheUxpc3RGbHVzaElk
ZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL0ltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0MmNmMjQ1ZTM0NWUxZGZlYzYyZGMxZDdhM2VjYWVm
Y2Q5YWI1ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlckZsdXNoSWRl
bnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5jbHVkZSA8d3RmL09i
amVjdElkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0gSW1hZ2VCdWZm
ZXJGbHVzaElkZW50aWZpZXJUeXBlIHsgfTsKLXVzaW5nIEltYWdlQnVmZmVyRmx1c2hJZGVudGlm
aWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllclR5cGU+Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNw
cAppbmRleCBlNjBhYWQ4ZTMwNzkzNjMxMzc2ODBkNTRhNDRmOTAwYjJhMzI1YzBkLi43NDJiYTQ2
Mzc4N2I0NzE3MDIwNmIzMzNhN2QxNTgxNWYzMGQ4MjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwCkBAIC02NCwzMiArNjQsMzIg
QEAgdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OndhaXRGb3JDcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmQoKQogICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS0+d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOwogfQogCi12b2lkIFJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6d2FpdEZvckNvbW1pdEltYWdlQnVmZmVy
Rmx1c2hDb250ZXh0KCkKK3ZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
Ojp3YWl0Rm9yQ29tbWl0Rmx1c2hEaXNwbGF5TGlzdCgpCiB7CiAgICAgaWYgKG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5ICYmIGlzUGVuZGluZ0ZsdXNoKCkpCi0gICAgICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LT53YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRl
eHQoKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPndhaXRGb3JDb21t
aXRGbHVzaERpc3BsYXlMaXN0KCk7CiB9CiAKLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlclByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
aXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCit2b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJQcm94eTo6Zmx1c2hEaXNwbGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxh
eUxpc3QmIGRpc3BsYXlMaXN0KQogewogICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hJbWFn
ZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBtX3JlbW90ZVJlc291cmNlSWRlbnRp
ZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllcigpKTsKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+c2VuZChNZXNz
YWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlz
dCwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7CiAgICAgZGlzcGxheUxpc3QuY2xl
YXIoKTsKIH0KIAotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmZs
dXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCYgZGlzcGxheUxpc3QpCit2b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJQcm94eTo6Zmx1c2hEaXNwbGF5TGlzdEFuZFdhaXRDb21taXQoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkKIHsKICAgICBpZiAoIW1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5KQogICAgICAgICByZXR1cm47Ci0gICAgbV9zZW50Rmx1c2hJZGVudGlm
aWVyID0gSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChkaXNwbGF5TGlz
dCwgbV9zZW50Rmx1c2hJZGVudGlmaWVyLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigp
KTsKKyAgICBtX3NlbnRGbHVzaElkZW50aWZpZXIgPSBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+c2VuZChN
ZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hEaXNwbGF5TGlzdEFuZENvbW1p
dChkaXNwbGF5TGlzdCwgbV9zZW50Rmx1c2hJZGVudGlmaWVyLCBtX3JlbW90ZVJlc291cmNlSWRl
bnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcigpKTsKICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwotICAgIHdhaXRGb3JDb21t
aXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOworICAgIHdhaXRGb3JDb21taXRGbHVzaERpc3Bs
YXlMaXN0KCk7CiB9CiAKLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5
Ojpjb21taXRGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVu
dGlmaWVyKQordm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmNvbW1p
dEZsdXNoQ29udGV4dChEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIp
CiB7CiAgICAgbV9yZWNlaXZlZEZsdXNoSWRlbnRpZmllciA9IGZsdXNoSWRlbnRpZmllcjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oCmlu
ZGV4IGU3YTBhY2ViNjczZmUzMGM3ZTA3NDY5NmJiZWI1NDY3YzYzNTNmYWYuLjkwZWE4ZTI4YzZj
YWUzZWVhOWM5ZDQ1M2IyNGQzNTgwMWU5ZWUwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaApAQCAtMjcsOCArMjcsOCBAQAogCiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiRGlzcGxheUxpc3RGbHVzaElkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKLSNpbmNsdWRlICJJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JTcGFj
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0Zsb2F0U2l6ZS5oPgpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgLy8gTWVzc2FnZXMg
dG8gYmUgcmVjZWl2ZWQuIFNlZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluLgog
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVCYWNrZW5kKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
bG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZSkgPSAwOwogCi0gICAgdm9pZCBjb21taXRGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXIpOworICAgIHZvaWQgY29tbWl0Rmx1c2hDb250ZXh0KERpc3BsYXlMaXN0Rmx1
c2hJZGVudGlmaWVyKTsKIAogcHJvdGVjdGVkOgogICAgIFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJQcm94eShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpSZW5kZXJp
bmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYpOwpAQCAtNjQsMTggKzY0LDE4IEBAIHByb3RlY3RlZDoK
ICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHNyY1JlY3QpIGNvbnN0OwogCiAgICAgdm9pZCB3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kKCk7Ci0gICAgdm9pZCB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsK
KyAgICB2b2lkIHdhaXRGb3JDb21taXRGbHVzaERpc3BsYXlMaXN0KCk7CiAKICAgICAvLyBNZXNz
YWdlcyB0byBiZSBzZW50LiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2Vz
LmluLgotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RGlzcGxheUxpc3QmKTsKLSAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpOworICAgIHZvaWQgZmx1c2hEaXNw
bGF5TGlzdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKTsKKyAgICB2b2lkIGZs
dXNoRGlzcGxheUxpc3RBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdCYpOwogCiBwcml2YXRlOgogICAgIFdlYWtQdHI8UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5PiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKICAgICBXZWJDb3JlOjpSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgeyBXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKIAotICAgIEltYWdlQnVmZmVy
Rmx1c2hJZGVudGlmaWVyIG1fc2VudEZsdXNoSWRlbnRpZmllcjsKLSAgICBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllciBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVyOworICAgIERpc3BsYXlMaXN0
Rmx1c2hJZGVudGlmaWVyIG1fc2VudEZsdXNoSWRlbnRpZmllcjsKKyAgICBEaXNwbGF5TGlzdEZs
dXNoSWRlbnRpZmllciBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDFmNjYyZTAwOTE4
NmM2YjZmNDk1YjU4ZGIzMmYwMzU4OTkyZDM0M2QuLmZhN2Y3MWNkNzlmYzgwNmQzMjk4ZTRlYmY3
MDdiYjI1Y2IyNWQ5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC04MSw3ICs4
MSw3IEBAIHByb3RlY3RlZDoKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFn
ZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAg
ICBhdXRvJiBkaXNwbGF5TGlzdCA9IGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSo+
KHRoaXMpLT5tX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCk7Ci0gICAgICAgIGNvbnN0X2Nh
c3Q8UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSo+KHRoaXMpLT5SZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyUHJveHk6OmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgICAg
ICBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyUHJveHkqPih0aGlzKS0+UmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpmbHVzaERpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KTsK
ICAgICAgICAgYXV0byByZXN1bHQgPSBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyUHJveHkq
Pih0aGlzKS0+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpnZXRJbWFnZURh
dGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKICAgICAgICAgLy8gZ2V0SW1hZ2VEYXRhIGlzIHN5
bmNocm9ub3VzLCB3aGljaCBtZWFucyB3ZSd2ZSBhbHJlYWR5IHJlY2VpdmVkIHRoZSBDb21taXRJ
bWFnZUJ1ZmZlckZsdXNoQ29udGV4dCBtZXNzYWdlLgogICAgICAgICByZXR1cm4gcmVzdWx0OwpA
QCAtMTA1LDcgKzEwNSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIGF1dG8mIGRpc3Bs
YXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpOwogICAgICAgICBpZiAoZGlz
cGxheUxpc3QuaXRlbUNvdW50KCkpCi0gICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyUHJveHk6OmZsdXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KGRpc3BsYXlM
aXN0KTsKKyAgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6
Zmx1c2hEaXNwbGF5TGlzdEFuZFdhaXRDb21taXQoZGlzcGxheUxpc3QpOwogICAgIH0KICAgICAK
ICAgICB2b2lkIHdpbGxBcHBlbmRJdGVtKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
Jikgb3ZlcnJpZGUKQEAgLTExMyw3ICsxMTMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGNvbnN0
ZXhwciBzaXplX3QgRGlzcGxheUxpc3RCYXRjaFNpemUgPSA1MTI7CiAgICAgICAgIGF1dG8mIGRp
c3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgpOwogICAgICAgICBpZiAo
ZGlzcGxheUxpc3QuaXRlbUNvdW50KCkgPj0gRGlzcGxheUxpc3RCYXRjaFNpemUpCi0gICAgICAg
ICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmZsdXNoRHJhd2luZ0Nv
bnRleHQoZGlzcGxheUxpc3QpOworICAgICAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlclByb3h5OjpmbHVzaERpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KTsKICAgICB9CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggMTExNjAyYWZj
N2RhZDdhYWE2NTFmZmE1MjY2ZDg2ODcwMzRmYWExNi4uYmU4MTUxNGUwYmRiODNkMzRkZTk0ZDVh
Y2ZjZjVlMzcxZWQ1NDRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNwcApAQCAtODAsMTAgKzgwLDEwIEBAIGJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
Ojp3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCkKICAgICByZXR1cm4gY29ubmVjdGlv
bi0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6Q3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kPihtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyLCAxX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lm
U3luY01lc3NhZ2VBcnJpdmVzKTsKIH0KIAotYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OndhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpCitib29sIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6d2FpdEZvckNvbW1pdEZsdXNoRGlzcGxheUxpc3QoKQogewog
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKLSAgICByZXR1
cm4gY29ubmVjdGlvbi0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQ+
KG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJ
bnRlcnJ1cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOworICAgIHJldHVybiBjb25uZWN0
aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpDb21taXRGbHVzaERpc3BsYXlMaXN0PihtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyLCAxX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lm
U3luY01lc3NhZ2VBcnJpdmVzKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0
U2l6ZSYgc2l6ZSwgU2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKQEAgLTExNiw3ICsxMTYsNyBAQCB2
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5k
KGNvbnN0IEZsb2F0U2l6ZSYgbG9naQogICAgICAgICBpbWFnZUJ1ZmZlci0+Y3JlYXRlQmFja2Vu
ZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwg
V1RGTW92ZShoYW5kbGUpKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVy
IGZsdXNoSWRlbnRpZmllciwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNl
SWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpjb21taXRGbHVz
aERpc3BsYXlMaXN0KERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwg
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKICAg
ICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5n
ZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKICAgICAgICAgaW1hZ2VCdWZmZXItPmNvbW1p
dEZsdXNoQ29udGV4dChmbHVzaElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmgKaW5kZXggZTdiN2UxY2ZlNWYyMmY3NmQ4ZTJkNWFkMmE0ZjJlNmViNWM1ZmIz
Zi4uNjcxZWZmNDRhNjUyZGUyOGMxNGIxYTUyMWQ2Mjg2Y2ZmYzhiYzVhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgotI2luY2x1ZGUgIkltYWdl
QnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJQcm94eS5oIgpAQCAtNjUsMTQgKzY1LDE0IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
OwogCiAgICAgYm9vbCB3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCk7Ci0gICAgYm9v
bCB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsKKyAgICBib29sIHdhaXRG
b3JDb21taXRGbHVzaERpc3BsYXlMaXN0KCk7CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5KCk7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAg
ICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBjb21t
aXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbW1pdEZsdXNoRGlz
cGxheUxpc3QoRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllcik7CiAKICAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFw
ID0gSGFzaE1hcDxXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eSo+OwogICAgIEltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJNYXAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0M2Y3N2NjYjcyMjYw
NDE1YWZjMzg5OWQxYThkYTczMGJiZjFhYWUwLi4wMzA4YWE3ZDM0MjljNjkzNzRkOWQ2ZTMxZTFj
ZDExYmVkNDk5Mjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogCiBtZXNzYWdlcyAtPiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgdm9pZCBDcmVhdGVJbWFn
ZUJ1ZmZlckJhY2tlbmQoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpJ
bnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxl
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKQotICAgIHZvaWQgQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoV2ViS2l0OjpJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgdm9pZCBDb21t
aXRGbHVzaERpc3BsYXlMaXN0KFdlYktpdDo6RGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgZmx1
c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411645</attachid>
            <date>2020-10-16 20:06:07 -0700</date>
            <delta_ts>2020-10-16 20:50:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217554-20201016200607.patch</filename>
            <type>text/plain</type>
            <size>67885</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVmZmM0MDQ2Njg3OTk2
MjRkMzM5ZDliNTJmOWRjYjEyYTlmOTFkZi4uZWFlZTU4NzlkM2E5ZDFjMzczNGUyZTM4ZmZmMjRl
OTYwNjZmZTU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTE2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbnRyb2R1Y2UgUmVtb3RlUmVzb3VyY2VDYWNoZSB0byBtYW5hZ2UgdGhlIHJlc291
cmNlcyBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB2aXJ0dWFsIG1ldGhvZCBuYW1lZCBJbWFnZUJ1ZmZl
cjo6Zmx1c2hEaXNwbGF5TGlzdCgpIHdoaWNoCisgICAgICAgIGFwcGxpZXMgYSBEaXNwbGF5TGlz
dCB0byB0aGUgSW1hZ2VCdWZmZXI6OmNvbnRleHQoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Zmx1
c2hEaXNwbGF5TGlzdCk6CisKIDIwMjAtMTAtMTYgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCBBWENvcmVPYmplY3Q6OnRvcERvY3VtZW50
RnJhbWVWaWV3IGNoYW5nZSB0aGF0IGNhdXNlZCBidWlsZCBmYWlsdXJlIG9uIGlPUyBkZWJ1Zy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZDg5YzdjZTE1ZDBjYjNlOWNiZGQ0YTM2M2RkNjhmYmRkNzAyMmRiZC4uNzVh
MWM5ZjVkMDVkZjFkNmVhZWRkZTZiYzlmMTAzZjlkOTllYjY0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw4NCBAQAorMjAyMC0xMC0xNiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBw
bGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gSW50cm9kdWNlIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eSB3aGljaCBtYW5hZ2VzIHRoZSByZXNvdXJjZXMgaW4gdGhlIEdQVSBQcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1NTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdGVS
ZXNvdXJjZUNhY2hlIHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIGNhY2hpbmcgdGhlIHJlbW90ZSBy
ZXNvdXJjZXMuCisgICAgICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgd2lsbCBkZWxlZ2F0ZSBh
bGwgdGhlIHJlc291cmNlIGNhY2hpbmcgdG8gaXRzCisgICAgICAgIFJlbW90ZVJlc291cmNlQ2Fj
aGUuCisKKyAgICAgICAgV2UgY2FuIGdldCByaWQgb2YgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlciBiZWNhdXNlIGFsbCBpdCBkb2VzIGlzCisgICAgICAgIGlzIHNlbmRpbmcgbWVzc2Fn
ZXMgdG8gV2ViUHJvY2Vzcy4gUmVtb3ZpbmcgaXQgd2lsbCBzaW1wbGlmeSB0aGUgaW50ZXJmYWNl
CisgICAgICAgIG9mIFJlbW90ZUltYWdlQnVmZmVyLiBTZW5kaW5nIHRoZSBtZXNzYWdlcyB3aWxs
IGJlIG1vdmVkIHRvIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuCisKKyAgICAgICAgUmVuYW1lIGZs
dXNoRHJhd2luZ0NvbnRleHQoKSB0byBmbHVzaERpc3BsYXlMaXN0KCkgYmVjYXVzZSB0aGUgbmFt
ZSBpcyAKKyAgICAgICAgY29uZnVzaW5nLiBUaGlzIGZ1bmN0aW9uIGZsdXNoZXMgYSBEaXNwbGF5
TGlzdCB0byB0aGUgY29udGV4dC4gTm8KKyAgICAgICAgRHJhd2luZ0NvbnRleHQgaXMgaW52b2x2
ZWQgaGVyZSBhbmQgdGhlcmUgaXMgYW5vdGhlciBmdW5jdGlvbiB3aXRoIHRoZQorICAgICAgICBz
YW1lIG5hbWUgd2hpY2ggZG9lcyBub3QgdGFrZSBhbnkgYXJndW1lbnQuCisKKyAgICAgICAgUmVu
YW1lIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIHRvIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlm
aWVyIHRvIG1ha2UKKyAgICAgICAgbW9yZSBnZW5lcmFsIG5hbWUgYW5kIGJlIHJlYWR5IGZvciBH
UFUgRE9NIHJlbmRlcmluZy4KKworICAgICAgICBSZW5hbWUgdGhlIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSBtZXNzYWdlczogQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kCisgICAgICAgIGFu
ZCBDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCB0byBiZSBJbWFnZUJ1ZmZlckJhY2tlbmRX
YXNDcmVhdGVkIGFuZAorICAgICAgICBGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkLiBXZSBu
ZWVkIHRvIGluY2x1ZGUgcGFzc2l2ZSB2ZXJicyBpbiB0aGVtIHRvCisgICAgICAgIHJlZmxlY3Qg
dGhhdCB0aGUgYWN0aW9ucyB3ZXJlIHRha2VuIHBsYWNlIGluIHRoZSBHUFUgUHJvY2Vzcy4gVGhl
eSBhcmUKKyAgICAgICAgc2VudCBvbmx5IHRvIGluZm9ybSB0aGUgV2ViIFByb2Nlc3Mgd2l0aCB0
aGUgY3VycmVudCBzdGF0ZS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OlJlbW90
ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OmFwcGx5
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6aW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZl
cik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxh
eUxpc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERp
c3BsYXlMaXN0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgV2Ugc2hvdWxkIGNhbGwgdGhlIGNvbXBsZXRp
b24gaGFuZGxlciBldmVuIGlmIHRoZSBJbWFnZUJ1ZmZlciB3YXMgbm90IGZvdW5kLgorCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoSW1hZ2VC
dWZmZXJEcmF3aW5nQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdCk6
IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW46CisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyLmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6
Y2FjaGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGU6
OmNhY2hlZEltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNo
ZTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlc291cmNlQ2FjaGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmguCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJG
bHVzaElkZW50aWZpZXIuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OndhaXRGb3JJbWFnZUJ1ZmZlckJh
Y2tlbmRXYXNDcmVhdGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlclByb3h5Ojp3YWl0Rm9yRmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Zmx1
c2hEaXNwbGF5TGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJQcm94eTo6Zmx1c2hEaXNwbGF5TGlzdEFuZFdhaXRDb21taXQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmNvbW1pdEZsdXNo
Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJQcm94eTo6d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6d2FpdEZv
ckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpmbHVzaERyYXdpbmdDb250
ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlclByb3h5OjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdCk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6d2FpdEZvckltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OndhaXRG
b3JGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjppbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaERpc3BsYXlM
aXN0V2FzQ29tbWl0dGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5Ojp3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3YWl0Rm9yQ29tbWl0SW1h
Z2VCdWZmZXJGbHVzaENvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y29tbWl0SW1h
Z2VCdWZmZXJGbHVzaENvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5p
bjoKKwogMjAyMC0xMC0xNiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gRXhjaGFuZ2UgUmVtb3RlSW1hZ2VCdWZmZXIg
YW5kIFJlbW90ZUltYWdlQnVmZmVyUHJveHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IGQxNDY0OTJjNGE4ZGY5MzVjYWY5NGI5ZmI5NTU5
MDlhYWQxY2JhZjAuLjBhZTlmY2JkMDU4OGQ0YzRlMWVmNWFmM2NjN2YxMmI2MTJiZjc4ZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAt
MzMsNiArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgRGlzcGxheUxp
c3QgeworY2xhc3MgRGlzcGxheUxpc3Q7CiBjbGFzcyBEcmF3aW5nQ29udGV4dDsKIH0KIApAQCAt
NjQsNiArNjUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIERpc3BsYXlMaXN0OjpEcmF3aW5n
Q29udGV4dCogZHJhd2luZ0NvbnRleHQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVh
bCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hE
aXNwbGF5TGlzdChjb25zdCBEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKSB7IH0KIAogICAgIHZp
cnR1YWwgQWZmaW5lVHJhbnNmb3JtIGJhc2VUcmFuc2Zvcm0oKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBJbnRTaXplIGxvZ2ljYWxTaXplKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCBkZjVi
ODdhMjgwN2I3ZjQwYWM0ZmYwZjU3ZmJmNGNlMTIwMWUyYzgwLi43OGQ4MmY4YzQ0YmMzN2QyMTNh
ODA4ODRhYmU4NGZjZjAyYTA0ZjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtMjgsMTcgKzI4LDE3IEBACiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIgotI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvQ29uY3JldGVJbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRGlzcGxheUxpc3RSZXBsYXllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdGVt
cGxhdGU8dHlwZW5hbWUgQmFja2VuZFR5cGU+Ci1jbGFzcyBSZW1vdGVJbWFnZUJ1ZmZlciA6IHB1
YmxpYyBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIsIHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVwbGF5ZXI6OkRlbGVnYXRlIHsKK2NsYXNzIFJlbW90ZUltYWdlQnVmZmVyIDogcHVibGlj
IFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+LCBwdWJsaWMgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSB7CiAgICAgdXNpbmcgQmFzZUNvbmNy
ZXRlSW1hZ2VCdWZmZXIgPSBXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBl
PjsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Y29udGV4dDsKICAgICB1c2lu
ZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6bV9iYWNrZW5kOworICAgIHVzaW5nIEJhc2VDb25j
cmV0ZUltYWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgYXV0
byBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKQEAgLTQ4LDkgKzQ4LDkgQEAgcHVibGlj
OgogCiAgICAgUmVtb3RlSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEJhY2tlbmRUeXBlPiYm
IGJhY2tlbmQsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQs
IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIpCiAgICAgICAgIDogQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIoV1RGTW92ZShiYWNrZW5kKSkK
LSAgICAgICAgLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKHJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQsIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICAgICAgLCBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQocmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKICAgICB7Ci0gICAgICAgIGNy
ZWF0ZUJhY2tlbmQobV9iYWNrZW5kLT5sb2dpY2FsU2l6ZSgpLCBtX2JhY2tlbmQtPmJhY2tlbmRT
aXplKCksIG1fYmFja2VuZC0+cmVzb2x1dGlvblNjYWxlKCksIG1fYmFja2VuZC0+Y29sb3JTcGFj
ZSgpLCBtX2JhY2tlbmQtPmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpKTsKKyAgICAg
ICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQo
bV9iYWNrZW5kLT5sb2dpY2FsU2l6ZSgpLCBtX2JhY2tlbmQtPmJhY2tlbmRTaXplKCksIG1fYmFj
a2VuZC0+cmVzb2x1dGlvblNjYWxlKCksIG1fYmFja2VuZC0+Y29sb3JTcGFjZSgpLCBtX2JhY2tl
bmQtPmNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpLCByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOwogICAgIH0KIAogICAgIH5SZW1vdGVJbWFnZUJ1ZmZlcigpCkBAIC02MiwxMCArNjIs
NyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHVzaW5nIEJhc2VDb25jcmV0ZUlt
YWdlQnVmZmVyOjpmbHVzaERyYXdpbmdDb250ZXh0OwotICAgIHVzaW5nIEJhc2VDb25jcmV0ZUlt
YWdlQnVmZmVyOjpwdXRJbWFnZURhdGE7Ci0KLSAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3Zl
cnJpZGUKKyAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3QoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlm
IChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSkgewogICAgICAgICAgICAgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlcGxheWVyIHJlcGxheWVyKEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpjb250ZXh0
KCksIGRpc3BsYXlMaXN0LCB0aGlzKTsKQEAgLTczLDE4ICs3MCw2IEBAIHByaXZhdGU6CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29u
c3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgSW1hZ2VC
dWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyKSBvdmVycmlkZQotICAgIHsKLSAg
ICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7Ci0gICAgICAgIG1fYmFja2Vu
ZC0+Zmx1c2hDb250ZXh0KCk7Ci0gICAgICAgIGNvbW1pdEZsdXNoQ29udGV4dChmbHVzaElkZW50
aWZpZXIpOwotICAgIH0KLQotICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdl
RGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3Qgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAg
IHJldHVybiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Z2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1h
dCwgc3JjUmVjdCk7Ci0gICAgfQotCiAgICAgYm9vbCBhcHBseShXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbSYgaXRlbSwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBvdmVycmlk
ZQogICAgIHsKICAgICAgICAgaWYgKGl0ZW0udHlwZSgpID09IFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhKSB7CkBAIC0xMDMsNyArODgsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBhcHBseShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UGFpbnRGcmFtZUZvck1lZGlh
JiBpdGVtLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgewotICAgICAg
ICBhdXRvIHByb2Nlc3MgPSBiYWNrZW5kKCkuZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpOwor
ICAgICAgICBhdXRvIHByb2Nlc3MgPSBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzcygpOwogICAgICAgICBpZiAoIXByb2Nlc3MpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKQEAgLTExNyw2ICsxMDIsOCBAQCBwcml2YXRlOgogCiAgICAgICAgIGNvbnRleHQu
cGFpbnRGcmFtZUZvck1lZGlhKCpwbGF5ZXIsIGl0ZW0uZGVzdGluYXRpb24oKSk7CiAgICAgfQor
ICAgIAorICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjk3ZGM4MThh
MmIyYmRiNTkzYzY0YjMxNGRmYjcwMDVhYzlkYzk5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU1
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oIgotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQotCi0jaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIgotI2luY2x1ZGUgIlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eU1lc3NhZ2VzLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXI6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCYgcmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKLSAgICA6IG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZChyZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQotICAgICwgbV9yZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQotewotfQotCi12b2lkIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXI6OmNyZWF0ZUJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dp
Y2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxl
KQotewotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OkNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChsb2dpY2FsU2l6
ZSwgYmFja2VuZFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5k
bGUpLCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotdm9pZCBSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyOjpjb21taXRGbHVzaENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElk
ZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyKQotewotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkNvbW1pdEltYWdl
QnVmZmVyRmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllciwgbV9yZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQucmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIoKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4Y2JmMTUwZWEzZTIyOTQxNjllMTllNTM0ZjFjNmFiODMw
NjYzNDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKLSNp
bmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
Q29sb3JTcGFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWVudW0gY2xhc3MgQWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiA6IHVpbnQ4X3Q7Ci1jbGFzcyBJbWFnZURhdGE7Ci19Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1jbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwotCi1jbGFzcyBSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5SZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyKCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWVzc2Fn
ZXMgdG8gYmUgcmVjZWl2ZWQuIFNlZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmlu
LgotICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3
aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRy
PFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlw
bGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBj
b25zdCA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyKFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpOwotCi0gICAgLy8gTWVzc2FnZXMgdG8gYmUgc2VudC4gU2VlIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQubWVzc2FnZXMuaW4uCi0gICAgdm9pZCBjcmVhdGVCYWNrZW5kKGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tl
bmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSk7Ci0gICAgdm9pZCBjb21taXRGbHVzaENvbnRleHQoSW1hZ2VC
dWZmZXJGbHVzaElkZW50aWZpZXIpOwotCi0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgYmFj
a2VuZCgpIHsgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZDsgfQotCi1wcml2YXRlOgot
ICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKLSAg
ICBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCA3NzBmNDVjYzgxMzc1NGY1
OTRkNDY1ZWIwY2JhM2IxOTVjYjBkODFlLi4xZWYyOGVlMmYyNTIxZGNhNTU0ZjQ4MDUwMmY3Mjc0
YzljYzI5YjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
UmVtb3RlSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdlcy5o
IgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTQs
NiArNTUsMTEgQEAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6flJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQoKQogICAgICAgICBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5tZXNzYWdlUmVjZWl2ZXJN
YXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci50
b1VJbnQ2NCgpKTsKIH0KIAorR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQoKTsKK30KKwogSVBDOjpDb25uZWN0
aW9uKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNv
bnN0CiB7CiAgICAgaWYgKGF1dG8qIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgPSBtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCkpCkBAIC02Niw2NCArNzIsNjIgQEAgdWludDY0X3Qg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dAogICAgIHJldHVybiBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLnRvVUludDY0KCk7CiB9
CiAKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6aW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3Jl
YXRlZChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5k
U2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGxvZ2ljYWxTaXpl
LCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBXVEZNb3ZlKGhhbmRs
ZSksIHJlbW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3RX
YXNDb21taXR0ZWQoRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAg
IHNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hEaXNwbGF5
TGlzdFdhc0NvbW1pdHRlZChmbHVzaElkZW50aWZpZXIsIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworfQorCiB2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNp
emUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBD
b2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byogZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQoKTsKLSAgICBpZiAoIWdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQocmVu
ZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCB8fCByZW5kZXJp
bmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJlbW90ZVVuYWNjZWxlcmF0ZWQpOwogCi0gICAgaWYg
KG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5jb250YWlucyhyZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gaW1h
Z2U7CiAKLSAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2Nl
bGVyYXRlZCkgewotICAgICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVt
b3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xv
clNwYWNlLCAqdGhpcywgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkgewotICAgICAgICAgICAg
bV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmFkZChyZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgIH0KKyAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpSZW1vdGVB
Y2NlbGVyYXRlZCkKKyAgICAgICAgaW1hZ2UgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVy
OjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMs
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAKLSAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBS
ZW5kZXJpbmdNb2RlOjpSZW1vdGVBY2NlbGVyYXRlZCB8fCByZW5kZXJpbmdNb2RlID09IFJlbmRl
cmluZ01vZGU6OlJlbW90ZVVuYWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgaWYgKGF1dG8gaW1hZ2VC
dWZmZXIgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6
ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKSkgewotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmFk
ZChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2VCdWZmZXIpKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgIGlmICghaW1hZ2UpCisgICAgICAgIGltYWdl
ID0gVW5hY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgKnRoaXMsIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CisKKyAgICBpZiAoaW1hZ2UpIHsKKyAgICAgICAgbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNh
Y2hlSW1hZ2VCdWZmZXIocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlKSk7
CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdChjb25zdCBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIC8vIENyZWF0ZUltYWdlQnVmZmVy
IG1lc3NhZ2Ugc2hvdWxkIGhhdmUgYmVlbiByZWNlaXZlZCBiZWZvcmUgdGhpcyBvbmUuCi0gICAg
Ym9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5yZW1vdmUocmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7Cisg
ICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1h
Z2VCdWZmZXIocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgaW1hZ2VCdWZmZXIt
PmZsdXNoRGlzcGxheUxpc3QoZGlzcGxheUxpc3QpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmdldEltYWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91
dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBzcmNSZWN0LCBSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQ
Qzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KGNvbnN0IFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIERpc3BsYXlMaXN0Rmx1
c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1f
aW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KSkgewotICAgICAgICBhdXRvIGltYWdlRGF0YSA9IGltYWdlQnVmZmVyLT5nZXRJbWFnZURhdGEo
b3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoSVBDOjpJ
bWFnZURhdGFSZWZlcmVuY2UoV1RGTW92ZShpbWFnZURhdGEpKSk7CisgICAgaWYgKGF1dG8gaW1h
Z2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIocmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKSkgeworICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEaXNwbGF5
TGlzdChkaXNwbGF5TGlzdCk7CisgICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaENvbnRleHQoKTsK
KyAgICAgICAgZmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChmbHVzaElkZW50aWZpZXIsIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogfQogCi12b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQotewotICAgIGlmIChhdXRvIGltYWdlQnVm
ZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChyZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNw
bGF5TGlzdCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hJbWFnZUJ1
ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
aXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNo
SWRlbnRpZmllciwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRp
ZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6
OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNy
Y1JlY3QsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCi0gICAg
ICAgIGltYWdlQnVmZmVyLT5mbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0
LCBmbHVzaElkZW50aWZpZXIpOworICAgIFJlZlB0cjxJbWFnZURhdGE+IGltYWdlRGF0YTsKKyAg
ICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFn
ZUJ1ZmZlcihyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAgICAgICBpbWFnZURhdGEgPSBp
bWFnZUJ1ZmZlci0+Z2V0SW1hZ2VEYXRhKG91dHB1dEZvcm1hdCwgc3JjUmVjdCk7CisgICAgY29t
cGxldGlvbkhhbmRsZXIoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UoV1RGTW92ZShpbWFnZURhdGEp
KSk7CiB9CiAKLUdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdAordm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmdldCgpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5yZWxlYXNlUmVt
b3RlUmVzb3VyY2UocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCA2NGQxMWFkYjVhMjRhNDkwMzM4NGUz
ZTYxNmE4YWI5MWVhYmU4MGQ2Li5lZmZiYTQ0OWIxODhlYTJiNTRkMzYyYzJhYzU0YzI4ZmMwY2Ni
M2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTI4LDI0ICsyOCwyNCBAQAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkRpc3BsYXlMaXN0Rmx1c2hJZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVk
ZSAiSW1hZ2VEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgotI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9y
U3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2RlLmg+Ci0jaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogY2xhc3MgRGlzcGxheUxpc3Q7CiB9
CitjbGFzcyBGbG9hdFNpemU7CitlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50OF90OworZW51
bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC01OSw5ICs1OSwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYs
IFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kKCk7CiAKLSAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXI7IH0KICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKCkgY29uc3Q7CiAKKyAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LgorICAgIHZv
aWQgaW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBmbHVz
aERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyLCBXZWJD
b3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFJlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKTsKIApAQCAtNzUsMTMgKzc4LDEyIEBAIHByaXZhdGU6CiAKICAgICAvLyBN
ZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgV2ViQ29yZTo6UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgZmx1c2hJbWFnZUJ1
ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlz
dCYsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBmbHVzaElt
YWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0KGNvbnN0
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KGNvbnN0
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIERpc3BsYXlMaXN0Rmx1c2hJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZ2V0
SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBX
ZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJlZmVyZW5jZSYmKT4mJik7
CisgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKIAotICAgIHVzaW5nIEltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAgPSBI
YXNoTWFwPFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI+PjsKLSAgICBJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcDsKKyAgICBSZW1vdGVS
ZXNvdXJjZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNoZTsKICAgICBXZWFrUHRyPEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBSZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggYjQxYWJjMzI4NDNh
M2Q3ZjIwN2E3OTlkM2VmNjZiY2I2ODlkMWFhOC4uMDM1ZDZiYjQ2MmMxYWMyYzkyNjYxMjAwMzU4
NTI3NTc2NzhjMzAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4K
QEAgLTI0LDggKzI0LDggQEAKIAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBO
b3RSZWZDb3VudGVkIHsKICAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyKFdlYkNvcmU6OkZsb2F0
U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikK
LSAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRl
bnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgdm9pZCBGbHVzaEltYWdlQnVm
ZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0IGRpc3BsYXlMaXN0LCBXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNo
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291
cmNlSWRlbnRpZmllcikKKyAgICB2b2lkIEZsdXNoRGlzcGxheUxpc3QoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHZvaWQgRmx1c2hEaXNwbGF5
TGlzdEFuZENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxp
c3QsIFdlYktpdDo6RGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KQogICAgIEdldEltYWdlRGF0YShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikgLT4gKElQ
Qzo6SW1hZ2VEYXRhUmVmZXJlbmNlIGltYWdlRGF0YSkgU3luY2hyb25vdXMKICAgICB2b2lkIFJl
bGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFk
MDQ3MjYyNTIxOTY3OTQ2NDk0YzhhYzdhNTQ5MDMxMGE3ZDdiMTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5j
cHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3ZvaWQg
UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y2FjaGVJbWFnZUJ1ZmZlcihSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+JiYgaW1hZ2UpCit7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX2ltYWdlQnVmZmVycy5hZGQo
cmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlKSk7CisgICAgQVNTRVJUX1VO
VVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKK30KKworV2ViQ29yZTo6SW1h
Z2VCdWZmZXIqIFJlbW90ZVJlc291cmNlQ2FjaGU6OmNhY2hlZEltYWdlQnVmZmVyKFJlbW90ZVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgcmV0dXJu
IG1faW1hZ2VCdWZmZXJzLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworfQorCit2b2lk
IFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW1vdGVSZXNvdXJj
ZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIGlmIChtX2ltYWdl
QnVmZmVycy5yZW1vdmUocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJu
OworICAgIC8vIENhY2hpbmcgdGhlIHJlbW90ZSByZXNvdXJjZSBzaG91bGQgaGF2ZSBoYXBwZW5l
ZCBiZWZvcmUgcmVsZWFzaW5nIGl0LgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlZDhjZTBhY2MxNWRmMzczMWM3ZjFhNjg0YzNkZDA4OTZj
NTYwOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVJlc291cmNlSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIEltYWdlQnVmZmVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDsKKworY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZSB7CitwdWJs
aWM6CisgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSgpID0gZGVmYXVsdDsKKworICAgIHZvaWQgY2Fj
aGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4mJik7CisgICAgV2ViQ29yZTo6SW1hZ2VCdWZm
ZXIqIGNhY2hlZEltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7
CisgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBSZW1vdGVJbWFnZUJ1ZmZlckhhc2hN
YXAgPSBIYXNoTWFwPFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPj47CisKKyAgICBSZW1vdGVJbWFnZUJ1ZmZlckhh
c2hNYXAgbV9pbWFnZUJ1ZmZlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CmluZGV4IGExZGIyNmMwODg3ZGQ4OTA0YWJkMTY2MTQyZDExNDAyMTA0MTcxOTQu
LjdkNmVkYjQ5MzA4ZDdjZTQ0YzU1Yjg3MDljM2U1ZTMzNDYxYTc4MGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjM3LDEwICsyMzcsMTAgQEAgZGVmIHR5
cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktp
dDo6Q29udGVudFdvcmxkSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkRpc3BsYXlMaW5r
T2JzZXJ2ZXJJRCcsCisgICAgICAgICdXZWJLaXQ6OkRpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVy
JywKICAgICAgICAgJ1dlYktpdDo6RG93bmxvYWRJRCcsCiAgICAgICAgICdXZWJLaXQ6Okdlb2xv
Y2F0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZScsCi0gICAgICAgICdXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6
TGVnYWN5Q3VzdG9tUHJvdG9jb2xJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxpYldlYlJUQ1Jlc29s
dmVySWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBmNmUxM2EzNWM3NmU3MzIyMTljZGVhMWM3
OGQ4YjI1NmUxYTEyNzk5Li43OTZkYjY5OTZlZWRmZTViN2U5MjgwMDEzNzIwNTRjZjY5YzM4MDQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKQEAgLTI0LDggKzI0LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5j
cHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3Mv
R1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKLUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAKIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkuY3Bw
CiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlci5jcHAKIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzE0ZGMzNDY3MWY4OGEz
Yjg4NWQxNTc2ZjA1ZTdkYmJmZWYwNjlkYi4uMTk0NGUwOTJhZmYxYzhjNzYzZDQ4NTk1MDlhYzFm
YjVkOGI4NGM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMDk2LDkgKzEwOTYsNiBAQAogCQk1NzBEQUFDMjIzMDM3MzAzMDBFOEZD
MDQgLyogTmZjQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTcwREFBQzAyMzAzNzMwMzAwRThGQzA0IC8qIE5mY0Nvbm5lY3Rpb24uaCAq
LzsgfTsKIAkJNTcwREFBQzYyMzAzN0Y3RjAwRThGQzA0IC8qIFdLTkZSZWFkZXJTZXNzaW9uRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MERBQUM0MjMwMzdGN0UwMEU4RkMwNCAvKiBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlLmggKi87
IH07CiAJCTU3MERBQUNBMjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQUFDODIzMDM4NUZE
MDBFOEZDMDQgLyogQ3RhcE5mY0RyaXZlci5oICovOyB9OwotCQk1NzJFQkJEQTI1MzhGNkI0MDAw
NTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkQ4MjUzOEY2QTEwMDA1NTJCMyAvKiBB
cHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tICovOyB9OwotCQk1NzJFQkJEQjI1MzhGNkI2MDAw
NTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCRDkyNTM4RjZBMTAwMDU1MkIzIC8qIEFw
cEF0dGVzdEludGVybmFsU29mdExpbmsuaCAqLzsgfTsKLQkJNTcyRUJCREQyNTM5MjE4MTAwMDU1
MkIzIC8qIEFwcEF0dGVzdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5oICov
OyB9OwogCQk1NzJFQkJCRjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkJCMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1NzJFQkJD
MDI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVC
QkJDMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNz
YWdlcy5oICovOyB9OwogCQk1NzJFQkJDMTI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3MkVCQkJEMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMTExMCw2ICsxMTA3LDkgQEAKIAkJNTcyRUJC
RDAyNTM2QkIxMTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkNFMjUzNkJC
MTAwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTU3
MkVCQkQ1MjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEMjI1MzZD
ODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oICovOyB9OwogCQk1NzJF
QkJENzI1MzdFQkFFMDAwNTUyQjMgLyogRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQTY4MEQzMUU2OTA0
QjUwMDczMUQyMCAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oICovOyB9OworCQk1NzJF
QkJEQTI1MzhGNkI0MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkQ4MjUzOEY2
QTEwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tICovOyB9OworCQk1NzJF
QkJEQjI1MzhGNkI2MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCRDkyNTM4RjZB
MTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsuaCAqLzsgfTsKKwkJNTcyRUJC
REQyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFw
cEF0dGVzdFNQSS5oICovOyB9OwogCQk1NzJGRDQ0MzIyMjY1Q0UyMDBBMUVDQzMgLyogV2ViVmll
d0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzJGRDQ0MTIyMjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1v
dmVUb1dpbmRvd09ic2VydmVyLmggKi87IH07CiAJCTU3NDIxNzkyMjQwMEUyODYwMDJCMzAzRCAv
KiBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0QgLyogTG9jYWxBdXRoZW50
aWNhdGlvblNQSS5oICovOyB9OwogCQk1NzQyQTJFQjI1MzU2MTNGMDBCN0JBMTQgLyogQXV4aWxp
YXJ5UHJvY2Vzc01haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUNFOTEyMEYyMjkzQzI1RjAwNUJFQzc4IC8qIEF1eGlsaWFyeVByb2Nlc3NNYWlu
LmNwcCAqLzsgfTsKQEAgLTM5MTUsNyArMzkxNSw3IEBACiAJCTU1MDY0MEE0MjQwNzFDMjEwMEFB
RTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU1QUQwOTQyMjQwOEEwMkUwMERFNEQyRiAvKiBSZW1vdGVJbWFn
ZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NUFEMDk0MzI0MDhBMEU2MDBERTREMkYgLyogUGxhdGZvcm1S
ZW1vdGVJbWFnZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVJlbW90ZUltYWdlQnVm
ZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU1QUQwOTQ0MjQwOEFCQjMwMERF
NEQyRiAvKiBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
NUFEMDk0NDI0MDhBQkIzMDBERTREMkYgLyogRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTcwQUI4RjIyMEFFM0JENzAwQjhCRTg3IC8qIFNlY0tleVByb3h5
U3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VjS2V5UHJveHlTdG9yZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NzBBQjkwMDIwQjI1MTc0MDBCOEJFODcgLyogQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NzBBQjkwMzIwQjI1NDFDMDBCOEJFODcgLyogU2VjS2V5UHJveHlTdG9yZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlY0tleVByb3h5U3RvcmUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zOTI5LDkgKzM5MjksNiBAQAogCQk1NzBEQUFD
NTIzMDM3RjdFMDBFOEZDMDQgLyogV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3MERBQUM4MjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZjRHJp
dmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN0YXBOZmNEcml2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTcwREFBQzkyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ3RhcE5mY0RyaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTU3MkVCQkQ4MjUzOEY2QTEwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5h
bFNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0
TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCRDkyNTM4RjZBMTAw
MDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBw
QXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
NzJFQkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFwcEF0dGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJCOTI1
MzZBMDZFMDAwNTUyQjMgLyogSW5mby1pT1MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0OyBuYW1lID0gIkluZm8taU9TLnBs
aXN0IjsgcGF0aCA9ICJXZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNl
L1dlYkF1dGhuU2VydmljZS9JbmZvLWlPUy5wbGlzdCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKIAkJNTcyRUJCQkEyNTM2QTA2RTAwMDU1MkIzIC8qIEluZm8tT1NYLnBsaXN0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdDsg
bmFtZSA9ICJJbmZvLU9TWC5wbGlzdCI7IHBhdGggPSAiV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9p
bnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1PU1gucGxpc3QiOyBzb3Vy
Y2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTU3MkVCQkJCMjUzNkE2MEEwMDA1NTJCMyAvKiBX
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM5
NDgsNiArMzk0NSw5IEBACiAJCTU3MkVCQkQxMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NzJFQkJEMjI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkQzMjUzNkM4ODUw
MDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkVCQkQ4MjUzOEY2QTEwMDA1NTJCMyAvKiBB
cHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXBwQXR0
ZXN0SW50ZXJuYWxTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcy
RUJCRDkyNTM4RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1NzJFQkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFwcEF0dGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NzJGRDQ0MTIyMjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dpbmRvd09i
c2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0Qg
LyogTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbEF1dGhlbnRp
Y2F0aW9uU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDJBMkY3MjUzNTYx
M0YwMEI3QkExNCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuLnhwYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gIndyYXBwZXIueHBjLXNlcnZpY2Ui
OyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuLnhw
Yzsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTQyMjgsOCArNDIyOCw4
IEBACiAJCTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2QiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4MDBDMjQwOTdBMDIwMDdEMzc2
QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyNzgwMEQyNDA5N0EwMjAwN0QzNzZCIC8qIFJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNzIyNzgwMTEyNDA5OTA2RTAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdl
SGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTcyMjc4MDEyMjQwOTkw
NkUwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNzI2RDU2REQyNTNBNjQ4MTAwMDJFRjkwIC8qIFJlbW90ZVJlc291cmNl
Q2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyNkQ1NkRFMjUzQTY0ODEwMDAyRUY5MCAvKiBS
ZW1vdGVSZXNvdXJjZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QTdGMzQyNDA3ODU3RDAwNEQyOTMx
IC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJh
Y2tlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBN0YzNTI0MDc4NTdG
MDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNl
QmFja2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBN0YzNjI0MDc4OEYw
MDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2Vu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODEzNiw4ICs4MTM2LDggQEAKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNzI3QTdGMzMyNDA3ODUyNzAw
NEQyOTMxIC8qIGNvY29hICovLAorCQkJCTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBEaXNw
bGF5TGlzdEZsdXNoSWRlbnRpZmllci5oICovLAogCQkJCTcyN0E3RjM5MjQwNzg4RjEwMDREMjkz
MSAvKiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCAqLywKLQkJCQk1NUFEMDk0NDI0MDhBQkIz
MDBERTREMkYgLyogSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCAqLywKIAkJCQk3MjdBN0Yz
NzI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNw
cCAqLywKIAkJCQk3MjdBN0YzNjI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCaXRtYXBCYWNrZW5kLmggKi8sCiAJCQkJNzI3QTdGMzgyNDA3ODhGMDAwNEQyOTMxIC8qIFBs
YXRmb3JtSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kLmggKi8sCkBAIC04MTU4LDExICs4MTU4
LDExIEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1NUFEMDk0MzI0MDhBMEU2MDBERTREMkYgLyog
UGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oICovLAogCQkJCTU1QUQwOTQyMjQwOEEwMkUwMERF
NEQyRiAvKiBSZW1vdGVJbWFnZUJ1ZmZlci5oICovLAotCQkJCTcyMjc4MDExMjQwOTkwNkUwMDdE
Mzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLywKLQkJCQk3MjI3
ODAxMjI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5o
ICovLAogCQkJCTU1MDY0MEEyMjQwNzFBNjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcCAqLywKIAkJCQk1NTA2NDBBMzI0MDcxQTYxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5oICovLAogCQkJCTU1MDY0MEE0MjQwNzFDMjEwMEFBRTA0NSAvKiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluICovLAorCQkJCTcyNkQ1NkREMjUzQTY0ODEwMDAy
RUY5MCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCAqLywKKwkJCQk3MjZENTZERTI1M0E2NDgx
MDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBn
cmFwaGljczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0Rpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0Rpc3BsYXlMaXN0Rmx1
c2hJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTczNTkzYWFmODZlMDI2ZjdlYmNjMDRlMWZkZmY2
OGZhYzQ5YzlhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIuaApAQCAtMCwwICsxLDM5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
KyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworZW51bSBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgRGlzcGxh
eUxpc3RGbHVzaElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPERpc3BsYXlMaXN0Rmx1c2hJ
ZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9JbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDJjZjI0NWUzNDVlMWRmZWM2MmRjMWQ3YTNlY2Fl
ZmNkOWFiNWQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJGbHVzaElk
ZW50aWZpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLQotI2luY2x1ZGUgPHd0Zi9P
YmplY3RJZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVtIEltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyVHlwZSB7IH07Ci11c2luZyBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRp
ZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXJUeXBlPjsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5j
cHAKaW5kZXggZTYwYWFkOGUzMDc5MzYzMTM3NjgwZDU0YTQ0ZjkwMGIyYTMyNWMwZC4uMDU1Njgw
ZWEyYjEzODdmMzM4MDVhZWRiYzZmNjFkMDIwOTlkOGE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5k
bGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcApAQCAtNTgsMzggKzU4LDM4
IEBAIFJlZlB0cjxJbWFnZURhdGE+IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eTo6Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsCiAgICAgcmV0dXJuIGltYWdlRGF0YVJlZmVyZW5j
ZS5idWZmZXIoKTsKIH0KIAotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJv
eHk6OndhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKQordm9pZCBSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OndhaXRGb3JJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVh
dGVkKCkKIHsKICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgJiYgIWlzQmFj
a2VuZENyZWF0ZWQoKSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPndh
aXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHktPndhaXRGb3JJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKCk7CiB9
CiAKLXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Ojp3YWl0Rm9yQ29t
bWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKQordm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyUHJveHk6OndhaXRGb3JGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKCkKIHsK
ICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgJiYgaXNQZW5kaW5nRmx1c2go
KSkKLSAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPndhaXRGb3JDb21taXRJ
bWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS0+d2FpdEZvckZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoKTsKIH0KIAotdm9p
ZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmZsdXNoRHJhd2luZ0NvbnRl
eHQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkKK3ZvaWQg
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpmbHVzaERpc3BsYXlMaXN0KFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCiB7CiAgICAgaWYg
KCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKICAgICAgICAgcmV0dXJuOwogICAgIAot
ICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoZGlzcGxheUxp
c3QsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHktPnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOworICAgIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpG
bHVzaERpc3BsYXlMaXN0KGRpc3BsYXlMaXN0LCBtX3JlbW90ZVJlc291cmNlSWRlbnRpZmllciks
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cigpKTsKICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwogfQogCi12b2lkIFJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRDb21taXQo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkKK3ZvaWQgUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpmbHVzaERpc3BsYXlMaXN0QW5kV2Fp
dENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KQog
ewogICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBtX3NlbnRGbHVzaElkZW50aWZpZXIgPSBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+c2VuZChN
ZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdD
b250ZXh0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBtX3NlbnRGbHVzaElkZW50aWZpZXIsIG1fcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnJl
bmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOworICAgIG1fc2VudEZsdXNoSWRlbnRpZmllciA9
IERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpGbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KGRpc3BsYXlMaXN0LCBtX3NlbnRGbHVzaElkZW50
aWZpZXIsIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHktPnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOwogICAgIGRpc3BsYXlMaXN0
LmNsZWFyKCk7Ci0gICAgd2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCk7Cisg
ICAgd2FpdEZvckZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoKTsKIH0KIAotdm9pZCBSZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmNvbW1pdEZsdXNoQ29udGV4dChJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCit2b2lkIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Y29tbWl0Rmx1c2hDb250ZXh0KERpc3BsYXlMaXN0
Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikKIHsKICAgICBtX3JlY2VpdmVkRmx1c2hJ
ZGVudGlmaWVyID0gZmx1c2hJZGVudGlmaWVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgKaW5kZXggZTdhMGFjZWI2NzNmZTMwYzdlMDc0
Njk2YmJlYjU0NjdjNjM1M2ZhZi4uYjlhMDI2YTgxMjk4Nzk2ZTdiZDM1ZmE5NmVlZTkwNGRlNGJm
YjVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eS5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNp
bmNsdWRlICJEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZS5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9E
aXNwbGF5TGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CkBAIC01Myw3ICs1
Myw3IEBAIHB1YmxpYzoKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4gU2VlIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4uCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUJh
Y2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6
Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKSA9IDA7CiAKLSAgICB2b2lkIGNv
bW1pdEZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcik7CisgICAgdm9pZCBj
b21taXRGbHVzaENvbnRleHQoRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIpOwogCiBwcm90ZWN0
ZWQ6CiAgICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5KGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Jik7
CkBAIC02MywxOSArNjMsMTkgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVmUHRyPFdlYkNvcmU6Oklt
YWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0
cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdDsKIAotICAg
IHZvaWQgd2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOwotICAgIHZvaWQgd2FpdEZv
ckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCk7CisgICAgdm9pZCB3YWl0Rm9ySW1hZ2VC
dWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCgpOworICAgIHZvaWQgd2FpdEZvckZsdXNoRGlzcGxheUxp
c3RXYXNDb21taXR0ZWQoKTsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuIFNlZSBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4uCi0gICAgdm9pZCBmbHVzaERyYXdp
bmdDb250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpOwotICAgIHZvaWQg
Zmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRDb21taXQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0Jik7CisgICAgdm9pZCBmbHVzaERpc3BsYXlMaXN0KFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEaXNwbGF5TGlzdCYpOworICAgIHZvaWQgZmx1c2hEaXNwbGF5TGlzdEFuZFdhaXRDb21t
aXQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Jik7CiAKIHByaXZhdGU6CiAgICAg
V2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OwogICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciBtX3JlbW90
ZVJlc291cmNlSWRlbnRpZmllciB7IFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcjo6
Z2VuZXJhdGUoKSB9OwogCi0gICAgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgbV9zZW50Rmx1
c2hJZGVudGlmaWVyOwotICAgIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIG1fcmVjZWl2ZWRG
bHVzaElkZW50aWZpZXI7CisgICAgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgbV9zZW50Rmx1
c2hJZGVudGlmaWVyOworICAgIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIG1fcmVjZWl2ZWRG
bHVzaElkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5LmgKaW5kZXggMWY2NjJlMDA5MTg2YzZiNmY0OTViNThkYjMyZjAzNTg5OTJk
MzQzZC4uMjBmYmY4MWM5ODI1NTJlZjc2YmI2Y2QxNWRjM2ExZTlkMzg4MGVjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTc0LDE0ICs3NCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAg
QmFja2VuZFR5cGUqIGVuc3VyZUJhY2tlbmRDcmVhdGVkKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIGlmICghbV9iYWNrZW5kKQotICAgICAgICAgICAgY29uc3RfY2FzdDxSZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5Jj4oKnRoaXMpLlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQ
cm94eTo6d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOworICAgICAgICAgICAgY29u
c3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Jj4oKnRoaXMpLlJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJQcm94eTo6d2FpdEZvckltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQo
KTsKICAgICAgICAgcmV0dXJuIG1fYmFja2VuZC5nZXQoKTsKICAgICB9CiAKICAgICBSZWZQdHI8
V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QpIGNv
bnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBhdXRvJiBkaXNwbGF5TGlzdCA9IGNvbnN0X2Nh
c3Q8UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSo+KHRoaXMpLT5tX2RyYXdpbmdDb250ZXh0LmRpc3Bs
YXlMaXN0KCk7Ci0gICAgICAgIGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSo+KHRo
aXMpLT5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmZsdXNoRHJhd2luZ0Nv
bnRleHQoZGlzcGxheUxpc3QpOworICAgICAgICBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVy
UHJveHkqPih0aGlzKS0+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpmbHVz
aERpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KTsKICAgICAgICAgYXV0byByZXN1bHQgPSBjb25zdF9j
YXN0PFJlbW90ZUltYWdlQnVmZmVyUHJveHkqPih0aGlzKS0+UmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlclByb3h5OjpnZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKICAg
ICAgICAgLy8gZ2V0SW1hZ2VEYXRhIGlzIHN5bmNocm9ub3VzLCB3aGljaCBtZWFucyB3ZSd2ZSBh
bHJlYWR5IHJlY2VpdmVkIHRoZSBDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCBtZXNzYWdl
LgogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA1LDcgKzEwNSw3IEBAIHByb3RlY3RlZDoK
ICAgICB7CiAgICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4dC5kaXNw
bGF5TGlzdCgpOwogICAgICAgICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50KCkpCi0gICAgICAg
ICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmZsdXNoRHJhd2luZ0Nv
bnRleHRBbmRXYWl0Q29tbWl0KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgICAgIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Zmx1c2hEaXNwbGF5TGlzdEFuZFdhaXRDb21taXQo
ZGlzcGxheUxpc3QpOwogICAgIH0KICAgICAKICAgICB2b2lkIHdpbGxBcHBlbmRJdGVtKGNvbnN0
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJikgb3ZlcnJpZGUKQEAgLTExMyw3ICsxMTMsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIGNvbnN0ZXhwciBzaXplX3QgRGlzcGxheUxpc3RCYXRjaFNp
emUgPSA1MTI7CiAgICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4dC5k
aXNwbGF5TGlzdCgpOwogICAgICAgICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50KCkgPj0gRGlz
cGxheUxpc3RCYXRjaFNpemUpCi0gICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyUHJveHk6OmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgICAgICAg
ICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpmbHVzaERpc3BsYXlMaXN0
KGRpc3BsYXlMaXN0KTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAKaW5kZXggMTExNjAyYWZjN2RhZDdhYWE2NTFmZmE1MjY2ZDg2ODcwMzRmYWEx
Ni4uYjE0NjFiNDgyMTQ4ZDJiNzViNDBmMDk4ZDk0MGNkZTEwYWI0ZmZjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtNzQsMTYgKzc0LDE2IEBAIHVpbnQ2
NF90IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQoKSBjb25zdAogICAgIHJldHVybiBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyLnRvVUlu
dDY0KCk7CiB9CiAKLWJvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3YWl0Rm9yQ3Jl
YXRlSW1hZ2VCdWZmZXJCYWNrZW5kKCkKK2Jvb2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
Ojp3YWl0Rm9ySW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCgpCiB7CiAgICAgUmVmPElQQzo6
Q29ubmVjdGlvbj4gY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQ
VVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwotICAgIHJldHVybiBjb25uZWN0aW9u
LT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5OjpDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQ+KG1fcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1cHRXYWl0aW5nSWZT
eW5jTWVzc2FnZUFycml2ZXMpOworICAgIHJldHVybiBjb25uZWN0aW9uLT53YWl0Rm9yQW5kRGlz
cGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpJ
bWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkPihtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
LCAxX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VB
cnJpdmVzKTsKIH0KIAotYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OndhaXRGb3JD
b21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpCitib29sIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6d2FpdEZvckZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoKQogewogICAgIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKLSAgICByZXR1cm4gY29u
bmVjdGlvbi0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQ+KG1fcmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1
cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOworICAgIHJldHVybiBjb25uZWN0aW9uLT53
YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5OjpGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkPihtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyLCAxX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lm
U3luY01lc3NhZ2VBcnJpdmVzKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0
U2l6ZSYgc2l6ZSwgU2hvdWxkQWNjZWxlcmF0ZSBzaG91bGRBY2NlbGVyYXRlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKQEAgLTExMCwxMyArMTEwLDEzIEBA
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2Uo
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwgZm91bmQp
OwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRlSW1hZ2VCdWZm
ZXJCYWNrZW5kKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IEludFNpemUmIGJh
Y2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwg
SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjppbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENvbG9yU3BhY2UgY29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwg
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKICAg
ICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5n
ZXQocmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSkKICAgICAgICAgaW1hZ2VCdWZmZXItPmNyZWF0
ZUJhY2tlbmQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9y
U3BhY2UsIFdURk1vdmUoaGFuZGxlKSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5Ojpjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRl
bnRpZmllciBmbHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1
c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBmbHVz
aElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIpCiB7CiAgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJNYXAuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIGltYWdl
QnVmZmVyLT5jb21taXRGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IGU3YjdlMWNmZTVmMjJmNzZkOGUyZDVhZDJh
NGYyZTZlYjVjNWZiM2YuLjlkMjkwMDIzZDQ5NzIxZWFkNmNiOTg3OTlkMjZmNWE4ZDBlZDRkYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApAQCAtMjcsOCArMjcsOCBA
QAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiRGlzcGxheUxpc3RGbHVz
aElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCIKLSNp
bmNsdWRlICJJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCIKQEAgLTY0LDE1ICs2NCwxNSBAQCBwdWJs
aWM6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFn
ZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpTaG91bGRBY2NlbGVy
YXRlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UpOwogICAgIHZv
aWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CiAKLSAgICBib29sIHdhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKTsKLSAgICBi
b29sIHdhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOworICAgIGJvb2wgd2Fp
dEZvckltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQoKTsKKyAgICBib29sIHdhaXRGb3JGbHVz
aERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKCk7CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5KCk7CiAKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KLSAg
ICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBjb21t
aXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGltYWdlQnVmZmVyQmFj
a2VuZFdhc0NyZWF0ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
V2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLCBXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgZmx1c2hEaXNwbGF5TGlzdFdhc0Nv
bW1pdHRlZChEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKIAogICAgIHVzaW5nIEltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAg
PSBIYXNoTWFwPFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Kj47CiAgICAgSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
ck1hcCBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQzZjc3Y2NiNzIyNjA0
MTVhZmMzODk5ZDFhOGRhNzMwYmJmMWFhZTAuLmUwMGRjZDc1YjRlM2IxNTdmMzdhNjJhNGJlZjk5
YzQ1YjU4MGZkNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yMyw4ICsyMyw4IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCiBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRl
ZCB7Ci0gICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoV2ViQ29yZTo6RmxvYXRTaXpl
IGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpJbnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZp
ZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQotICAgIHZvaWQgQ29tbWl0SW1hZ2VCdWZmZXJG
bHVzaENvbnRleHQoV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpCisgICAgdm9pZCBJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKFdlYkNvcmU6
OkZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6SW50U2l6ZSBiYWNrZW5kU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYktp
dDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICB2b2lkIEZsdXNoRGlz
cGxheUxpc3RXYXNDb21taXR0ZWQoV2ViS2l0OjpEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBm
bHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCg==
</data>
<flag name="review"
          id="427918"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411656</attachid>
            <date>2020-10-16 22:52:13 -0700</date>
            <delta_ts>2020-10-16 23:46:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217554-20201016225212.patch</filename>
            <type>text/plain</type>
            <size>68022</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWIyY2MxNGM0ODMyYjdi
ZTI0NDY4M2I0MzExNDY3NzA1NmFkZTE3Mi4uMDEzZDMwNmVjNDYzOWY5YzRiM2Y5MThhOWIxMjlk
ZDIzYWM4ZjRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTE2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQ
cm9jZXNzXSBJbnRyb2R1Y2UgUmVtb3RlUmVzb3VyY2VDYWNoZSB0byBtYW5hZ2UgdGhlIHJlc291
cmNlcyBpbiB0aGUgR1BVIFByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KKworICAgICAgICBBZGQgYSBuZXcgdmlydHVhbCBtZXRob2QgbmFtZWQgSW1hZ2VCdWZmZXI6
OmZsdXNoRGlzcGxheUxpc3QoKSB3aGljaAorICAgICAgICBhcHBsaWVzIGEgRGlzcGxheUxpc3Qg
dG8gdGhlIEltYWdlQnVmZmVyOjpjb250ZXh0KCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmZsdXNo
RGlzcGxheUxpc3QpOgorCiAyMDIwLTEwLTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZW5hbWUgYEhpZ2hsaWdodGAgc28gaXQg
ZG9lc24ndCBjb25mbGljdCB3aXRoIENTUyBgSGlnaGxpZ2h0YApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3OGNiNzJl
NGIwYWVmNjJmYzYwODU5ZGFkMGY3NDEwMzI4MGZhY2Y3Li5iZGU4ODExMWZmZThmODBkNWE5YzAz
OTU1NmQ5YTQ4ZmJhYzQ0OTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIwLTEwLTE2
ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0dQVSBQcm9jZXNzXSBJbnRyb2R1Y2UgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5IHRvIG1hbmFn
ZSB0aGUgcmVzb3VyY2VzIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgorCisgICAgICAgIFJlbW90ZVJlc291cmNlQ2FjaGUgd2lsbCBiZSByZXNw
b25zaWJsZSBmb3IgY2FjaGluZyB0aGUgcmVtb3RlIHJlc291cmNlcy4KKyAgICAgICAgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCB3aWxsIGRlbGVnYXRlIGFsbCB0aGUgcmVzb3VyY2UgY2FjaGluZyB0
byBpdHMKKyAgICAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZS4KKworICAgICAgICBXZSBjYW4gZ2V0
IHJpZCBvZiBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyIGJlY2F1c2UgYWxsIGl0IGRv
ZXMgaXMKKyAgICAgICAgaXMgc2VuZGluZyBtZXNzYWdlcyB0byBXZWJQcm9jZXNzLiBSZW1vdmlu
ZyBpdCB3aWxsIHNpbXBsaWZ5IHRoZSBpbnRlcmZhY2UKKyAgICAgICAgb2YgUmVtb3RlSW1hZ2VC
dWZmZXIuIFNlbmRpbmcgdGhlIG1lc3NhZ2VzIHdpbGwgYmUgbW92ZWQgdG8gUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC4KKworICAgICAgICBSZW5hbWUgZmx1c2hEcmF3aW5nQ29udGV4dCgpIHRvIGZs
dXNoRGlzcGxheUxpc3QoKSBiZWNhdXNlIHRoZSBuYW1lIGlzIAorICAgICAgICBjb25mdXNpbmcu
IFRoaXMgZnVuY3Rpb24gZmx1c2hlcyBhIERpc3BsYXlMaXN0IHRvIHRoZSBjb250ZXh0LiBObwor
ICAgICAgICBEcmF3aW5nQ29udGV4dCBpcyBpbnZvbHZlZCBoZXJlIGFuZCB0aGVyZSBpcyBhbm90
aGVyIGZ1bmN0aW9uIHdpdGggdGhlCisgICAgICAgIHNhbWUgbmFtZSB3aGljaCBkb2VzIG5vdCB0
YWtlIGFueSBhcmd1bWVudC4KKworICAgICAgICBSZW5hbWUgSW1hZ2VCdWZmZXJGbHVzaElkZW50
aWZpZXIgdG8gRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgdG8gbWFrZQorICAgICAgICBtb3Jl
IGdlbmVyYWwgbmFtZSBhbmQgYmUgcmVhZHkgZm9yIEdQVSBET00gcmVuZGVyaW5nLgorCisgICAg
ICAgIFJlbmFtZSB0aGUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IG1lc3NhZ2VzOiBDcmVh
dGVJbWFnZUJ1ZmZlckJhY2tlbmQKKyAgICAgICAgYW5kIENvbW1pdEltYWdlQnVmZmVyRmx1c2hD
b250ZXh0IHRvIGJlIEltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQgYW5kCisgICAgICAgIEZs
dXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQuIFdlIG5lZWQgdG8gaW5jbHVkZSBwYXNzaXZlIHZl
cmJzIGluIHRoZW0gdG8KKyAgICAgICAgcmVmbGVjdCB0aGF0IHRoZSBhY3Rpb25zIHdlcmUgdGFr
ZW4gcGxhY2UgaW4gdGhlIEdQVSBQcm9jZXNzLiBUaGV5IGFyZQorICAgICAgICBzZW50IG9ubHkg
dG8gaW5mb3JtIHRoZSBXZWIgUHJvY2VzcyB3aXRoIHRoZSBjdXJyZW50IHN0YXRlLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6UmVtb3RlSW1hZ2VCdWZmZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6YXBwbHkpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjppbWFnZUJ1ZmZlckJhY2tl
bmRXYXNDcmVhdGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Zmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hEaXNwbGF5TGlzdCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRJbWFnZURhdGEpOgorICAg
ICAgICBXZSBzaG91bGQgY2FsbCB0aGUgY29tcGxldGlvbiBoYW5kbGVyIGV2ZW4gaWYgdGhlIElt
YWdlQnVmZmVyIHdhcyBub3QgZm91bmQuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6cmVsZWFzZVJlbW90ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hJbWFn
ZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlc291cmNlQ2FjaGUuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpjYWNoZUltYWdlQnVmZmVyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZTo6Y2FjaGVkSW1hZ2VCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2Up
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXIuaC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9EaXNw
bGF5TGlzdEZsdXNoSWRlbnRpZmllci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXJQcm94eTo6d2FpdEZvckltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OndhaXRGb3JG
bHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpmbHVzaERpc3BsYXlMaXN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpmbHVzaERpc3Bs
YXlMaXN0QW5kV2FpdENvbW1pdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJQcm94eTo6Y29tbWl0Rmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Ojp3YWl0Rm9yQ3JlYXRlSW1h
Z2VCdWZmZXJCYWNrZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Ojp3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENv
bnRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyUHJveHk6OmZsdXNoRHJhd2luZ0NvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmZsdXNoRHJhd2lu
Z0NvbnRleHRBbmRXYWl0Q29tbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3
YWl0Rm9ySW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6d2FpdEZvckZsdXNoRGlzcGxheUxpc3RXYXNDb21t
aXR0ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6Omlt
YWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OndhaXRGb3JDcmVhdGVJbWFn
ZUJ1ZmZlckJhY2tlbmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHk6OndhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3Jl
YXRlSW1hZ2VCdWZmZXJCYWNrZW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5Ojpjb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluOgorCiAyMDIwLTEwLTE2ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzeXN0ZW0gdHJh
Y2UgcG9pbnRzIGZvciBmbHVzaGluZyByZW1vdGUgaW1hZ2UgYnVmZmVycwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggZDE0NjQ5MmM0YThk
ZjkzNWNhZjk0YjlmYjk1NTkwOWFhZDFjYmFmMC4uMGFlOWZjYmQwNTg4ZDRjNGUxZWY1YWYzY2M3
ZjEyYjYxMmJmNzhkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oCkBAIC0zMyw2ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5h
bWVzcGFjZSBEaXNwbGF5TGlzdCB7CitjbGFzcyBEaXNwbGF5TGlzdDsKIGNsYXNzIERyYXdpbmdD
b250ZXh0OwogfQogCkBAIC02NCw2ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgRGlz
cGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0KiBkcmF3aW5nQ29udGV4dCgpIHsgcmV0dXJuIG51bGxw
dHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dCgpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBmbHVzaERpc3BsYXlMaXN0KGNvbnN0IERpc3BsYXlMaXN0OjpEaXNwbGF5TGlz
dCYpIHsgfQogCiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFNpemUgbG9naWNhbFNpemUoKSBjb25zdCA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlci5oCmluZGV4IGRmNWI4N2EyODA3YjdmNDBhYzRmZjBmNTdmYmY0Y2UxMjAxZTJjODAuLjc4
ZDgyZjhjNDRiYzM3ZDIxM2E4MDg4NGFiZTg0ZmNmMDJhMDRmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCkBAIC0y
OCwxNyArMjgsMTcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db25jcmV0ZUltYWdlQnVmZmVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdFJlcGxheWVyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBCYWNrZW5kVHlwZT4KLWNsYXNzIFJlbW90
ZUltYWdlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2Vu
ZFR5cGU+LCBwdWJsaWMgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlciwgcHVibGljIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6RGVsZWdhdGUgeworY2xhc3MgUmVtb3RlSW1h
Z2VCdWZmZXIgOiBwdWJsaWMgV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxCYWNrZW5kVHlw
ZT4sIHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXI6OkRlbGVnYXRlIHsKICAg
ICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlciA9IFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VC
dWZmZXI8QmFja2VuZFR5cGU+OwogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpj
b250ZXh0OwogICAgIHVzaW5nIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjptX2JhY2tlbmQ7Cisg
ICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnB1dEltYWdlRGF0YTsKIAogcHVibGlj
OgogICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBXZWJDb3JlOjpS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQpAQCAtNDgs
OSArNDgsOSBAQCBwdWJsaWM6CiAKICAgICBSZW1vdGVJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9w
dHI8QmFja2VuZFR5cGU+JiYgYmFja2VuZCwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZVJlc291cmNlSWRlbnRpZmllcikKICAgICAgICAgOiBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcihX
VEZNb3ZlKGJhY2tlbmQpKQotICAgICAgICAsIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXIocmVtb3RlUmVuZGVyaW5nQmFja2VuZCwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAg
ICAgICAsIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZChyZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQog
ICAgIHsKLSAgICAgICAgY3JlYXRlQmFja2VuZChtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCksIG1f
YmFja2VuZC0+YmFja2VuZFNpemUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9uU2NhbGUoKSwgbV9i
YWNrZW5kLT5jb2xvclNwYWNlKCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKCkpOworICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaW1hZ2VCdWZmZXJC
YWNrZW5kV2FzQ3JlYXRlZChtX2JhY2tlbmQtPmxvZ2ljYWxTaXplKCksIG1fYmFja2VuZC0+YmFj
a2VuZFNpemUoKSwgbV9iYWNrZW5kLT5yZXNvbHV0aW9uU2NhbGUoKSwgbV9iYWNrZW5kLT5jb2xv
clNwYWNlKCksIG1fYmFja2VuZC0+Y3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCksIHJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgflJlbW90ZUltYWdlQnVmZmVy
KCkKQEAgLTYyLDEwICs2Miw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdXNp
bmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQ7Ci0gICAgdXNp
bmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXI6OnB1dEltYWdlRGF0YTsKLQotICAgIHZvaWQgZmx1
c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Qm
IGRpc3BsYXlMaXN0KSBvdmVycmlkZQorICAgIHZvaWQgZmx1c2hEaXNwbGF5TGlzdChjb25zdCBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgaWYgKGRpc3BsYXlMaXN0Lml0ZW1Db3VudCgpKSB7CiAgICAgICAgICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVwbGF5ZXIgcmVwbGF5ZXIoQmFzZUNvbmNyZXRlSW1h
Z2VCdWZmZXI6OmNvbnRleHQoKSwgZGlzcGxheUxpc3QsIHRoaXMpOwpAQCAtNzMsMTggKzcwLDYg
QEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29u
dGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRp
c3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpIG92
ZXJyaWRlCi0gICAgewotICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsK
LSAgICAgICAgbV9iYWNrZW5kLT5mbHVzaENvbnRleHQoKTsKLSAgICAgICAgY29tbWl0Rmx1c2hD
b250ZXh0KGZsdXNoSWRlbnRpZmllcik7Ci0gICAgfQotCi0gICAgUmVmUHRyPFdlYkNvcmU6Oklt
YWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0
cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0KSBjb25zdCBvdmVycmlk
ZQotICAgIHsKLSAgICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjpnZXRJbWFn
ZURhdGEob3V0cHV0Rm9ybWF0LCBzcmNSZWN0KTsKLSAgICB9Ci0KICAgICBib29sIGFwcGx5KFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJiBpdGVtLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoaXRlbS50eXBlKCkgPT0gV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRJbWFnZURhdGEpIHsKQEAgLTEwMyw3ICs4
OCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFwcGx5KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQ
YWludEZyYW1lRm9yTWVkaWEmIGl0ZW0sIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCkKICAgICB7Ci0gICAgICAgIGF1dG8gcHJvY2VzcyA9IGJhY2tlbmQoKS5ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKCk7CisgICAgICAgIGF1dG8gcHJvY2VzcyA9IG1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7CiAgICAgICAgIGlmICghcHJvY2Vz
cykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTE3LDYgKzEwMiw4IEBAIHByaXZhdGU6CiAK
ICAgICAgICAgY29udGV4dC5wYWludEZyYW1lRm9yTWVkaWEoKnBsYXllciwgaXRlbS5kZXN0aW5h
dGlvbigpKTsKICAgICB9CisgICAgCisgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDE2OTdkYzgxOGEyYjJiZGI1OTNjNjRiMzE0ZGZiNzAwNWFjOWRjOTkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmgiCi0KLSNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCi0KLSNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgi
Ci0jaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5TWVzc2FnZXMuaCIKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlcjo6UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcihSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCBXZWJDb3JlOjpSZW1v
dGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQotICAgIDogbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kKHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpCi0gICAgLCBtX3Jl
bW90ZVJlc291cmNlSWRlbnRpZmllcihyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCi17Ci19Ci0K
LXZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Y3JlYXRlQmFja2VuZChjb25z
dCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSBoYW5kbGUpCi17Ci0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnNlbmQo
TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Q3JlYXRlSW1hZ2VCdWZmZXJC
YWNrZW5kKGxvZ2ljYWxTaXplLCBiYWNrZW5kU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNw
YWNlLCBXVEZNb3ZlKGhhbmRsZSksIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkpOwotfQotCi12
b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmNvbW1pdEZsdXNoQ29udGV4dChJ
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpCi17Ci0gICAgbV9yZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6Q29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoZmx1c2hJZGVudGlmaWVyLCBtX3Jl
bW90ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcigpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzhjYmYxNTBlYTNlMjI5NDE2
OWUxOWU1MzRmMWM2YWI4MzA2NjM0Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLQotI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZS5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5
TGlzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotZW51
bSBjbGFzcyBBbHBoYVByZW11bHRpcGxpY2F0aW9uIDogdWludDhfdDsKLWNsYXNzIEltYWdlRGF0
YTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ7Ci0KLWNsYXNzIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIgewotcHVibGljOgot
ICAgIHZpcnR1YWwgflJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIoKSA9IGRlZmF1bHQ7
Ci0KLSAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4gU2VlIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQubWVzc2FnZXMuaW4uCi0gICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQo
Y29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyKSA9IDA7Ci0g
ICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29y
ZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHNyY1JlY3QpIGNvbnN0ID0gMDsKLQotcHJvdGVjdGVkOgotICAgIFJlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXIoUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYsIFdlYkNvcmU6OlJl
bW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0KLSAgICAvLyBNZXNzYWdlcyB0byBiZSBzZW50LiBT
ZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbi4KLSAgICB2b2lkIGNyZWF0ZUJh
Y2tlbmQoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6
Q29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKLSAgICB2b2lkIGNvbW1pdEZs
dXNoQ29udGV4dChJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcik7Ci0KLSAgICBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kJiBiYWNrZW5kKCkgeyByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOwotICAgIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciBtX3Jl
bW90ZVJlc291cmNlSWRlbnRpZmllcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0j
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4
IDc3MGY0NWNjODEzNzU0ZjU5NGQ0NjVlYjBjYmEzYjE5NWNiMGQ4MWUuLjFlZjI4ZWUyZjI1MjFk
Y2E1NTRmNDgwNTAyZjcyNzRjOWNjMjliMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eU1lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC01NCw2ICs1NSwxMSBAQCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjp+UmVt
b3RlUmVuZGVyaW5nQmFja2VuZCgpCiAgICAgICAgIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mt
Pm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3JlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCitHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmdldCgpOwor
fQorCiBJUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Om1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoYXV0byogZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2VzcyA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5nZXQoKSkKQEAgLTY2LDY0ICs3
Miw2MiBAQCB1aW50NjRfdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIudG9VSW50NjQoKTsKIH0KIAordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjppbWFnZUJ1
ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0
IEludFNpemUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhhbmRsZSwgUmVtb3RlUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkltYWdlQnVmZmVyQmFja2VuZFdhc0Ny
ZWF0ZWQobG9naWNhbFNpemUsIGJhY2tlbmRTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3Bh
Y2UsIFdURk1vdmUoaGFuZGxlKSwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
Zmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBm
bHVzaElkZW50aWZpZXIsIFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlk
ZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpGbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKGZsdXNoSWRlbnRpZmllciwgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7Cit9CisK
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxv
YXRTaXplJiBsb2dpY2FsU2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgV2ViQ29yZTo6UmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBhdXRvKiBn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmdl
dCgpOwotICAgIGlmICghZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAgICAgICAgcmV0dXJu
OworICAgIEFTU0VSVChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJlbW90ZUFjY2Vs
ZXJhdGVkIHx8IHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5hY2NlbGVy
YXRlZCk7CiAKLSAgICBpZiAobV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmNvbnRhaW5z
KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OkltYWdlQnVmZmVyPiBpbWFnZTsKIAotICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmlu
Z01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkKSB7Ci0gICAgICAgIGlmIChhdXRvIGltYWdlQnVmZmVy
ID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
KSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuYWRkKHJlbW90
ZVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShpbWFnZUJ1ZmZlcikpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRl
cmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkKQorICAgICAgICBpbWFnZSA9IEFjY2VsZXJhdGVk
UmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCAqdGhpcywgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIAotICAgIGlmIChy
ZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OlJlbW90ZUFjY2VsZXJhdGVkIHx8IHJlbmRl
cmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6UmVtb3RlVW5hY2NlbGVyYXRlZCkgewotICAgICAg
ICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IFVuYWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsICp0aGlzLCBy
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0gICAgICAgICAgICBtX2ltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXJNYXAuYWRkKHJlbW90ZVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShpbWFn
ZUJ1ZmZlcikpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgaWYgKCFpbWFn
ZSkKKyAgICAgICAgaW1hZ2UgPSBVbmFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0
ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCAqdGhpcywgcmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIGlmIChpbWFnZSkgeworICAgICAgICBtX3JlbW90
ZVJlc291cmNlQ2FjaGUuY2FjaGVJbWFnZUJ1ZmZlcihyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIs
IFdURk1vdmUoaW1hZ2UpKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VS
ZW1vdGVSZXNvdXJjZShSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpmbHVzaERpc3BsYXlMaXN0KGNv
bnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJlbW90
ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgLy8g
Q3JlYXRlSW1hZ2VCdWZmZXIgbWVzc2FnZSBzaG91bGQgaGF2ZSBiZWVuIHJlY2VpdmVkIGJlZm9y
ZSB0aGlzIG9uZS4KLSAgICBib29sIGZvdW5kID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
TWFwLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIEFTU0VSVF9VTlVTRUQo
Zm91bmQsIGZvdW5kKTsKKyAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3Vy
Y2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQorICAg
ICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEaXNwbGF5TGlzdChkaXNwbGF5TGlzdCk7CiB9CiAKLXZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJl
bXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRSZWN0IHNyY1JlY3QsIFJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmZsdXNoRGlzcGxheUxpc3RBbmRD
b21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlz
dCwgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmIChhdXRv
IGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChyZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0gICAgICAgIGF1dG8gaW1hZ2VEYXRhID0gaW1hZ2VCdWZm
ZXItPmdldEltYWdlRGF0YShvdXRwdXRGb3JtYXQsIHNyY1JlY3QpOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihJUEM6OkltYWdlRGF0YVJlZmVyZW5jZShXVEZNb3ZlKGltYWdlRGF0YSkpKTsK
KyAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJ
bWFnZUJ1ZmZlcihyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKSB7CisgICAgICAgIGltYWdlQnVm
ZmVyLT5mbHVzaERpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KTsKKyAgICAgICAgaW1hZ2VCdWZmZXIt
PmZsdXNoQ29udGV4dCgpOworICAgICAgICBmbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKGZs
dXNoSWRlbnRpZmllciwgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiB9CiAKLXZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIFJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCi17Ci0gICAg
aWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAuZ2V0
KHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCi0gICAgICAgIGltYWdlQnVmZmVyLT5mbHVzaERy
YXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKLX0KLQotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgSW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXRJ
bWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIFdl
YkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJl
c291cmNlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkltYWdlRGF0YVJl
ZmVyZW5jZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoYXV0byBpbWFnZUJ1
ZmZlciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQocmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKSkKLSAgICAgICAgaW1hZ2VCdWZmZXItPmZsdXNoRHJhd2luZ0NvbnRleHRBbmRD
b21taXQoZGlzcGxheUxpc3QsIGZsdXNoSWRlbnRpZmllcik7CisgICAgUmVmUHRyPEltYWdlRGF0
YT4gaW1hZ2VEYXRhOworICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJj
ZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikpCisgICAg
ICAgIGltYWdlRGF0YSA9IGltYWdlQnVmZmVyLT5nZXRJbWFnZURhdGEob3V0cHV0Rm9ybWF0LCBz
cmNSZWN0KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6OkltYWdlRGF0YVJlZmVyZW5jZShX
VEZNb3ZlKGltYWdlRGF0YSkpKTsKIH0KIAotR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0Cit2
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIHJldHVy
biBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ2V0KCk7CisgICAgbV9yZW1vdGVSZXNvdXJj
ZUNhY2hlLnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDY0ZDEx
YWRiNWEyNGE0OTAzMzg0ZTNlNjE2YThhYjkxZWFiZTgwZDYuLmVmZmJhNDQ5YjE4OGVhMmI1NGQz
NjJjMmFjNTRjMjhmYzBjY2IzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtMjgsMjQgKzI4
LDI0IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgotI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiRGlz
cGxheUxpc3RGbHVzaElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUuaCIKICNpbmNsdWRlICJJbWFnZURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCi0jaW5jbHVkZSAiUmVt
b3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oIgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNl
Q2FjaGUuaCIKICNpbmNsdWRlICJSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJ
dGVtcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9SZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmlu
Z01vZGUuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiBjbGFz
cyBEaXNwbGF5TGlzdDsKIH0KK2NsYXNzIEZsb2F0U2l6ZTsKK2VudW0gY2xhc3MgQ29sb3JTcGFj
ZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiB1aW50OF90OwogfQogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU5LDkgKzU5LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IGNyZWF0ZShHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogICAgIHZpcnR1
YWwgflJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoKTsKIAotICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyIHJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllcjsgfQogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mq
IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdDsKIAorICAgIC8vIE1lc3NhZ2VzIHRv
IGJlIHNlbnQuCisgICAgdm9pZCBpbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJh
Y2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3BhY2UsIElt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoRGlzcGxheUxpc3RGbHVz
aElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisKIHByaXZh
dGU6CiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiwgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogCkBAIC03NSwxMyArNzgsMTIgQEAgcHJp
dmF0ZToKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgogICAgIHZvaWQgY3JlYXRl
SW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgV2ViQ29y
ZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNw
YWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgcmVsZWFz
ZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7Ci0gICAg
dm9pZCBmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsK
LSAgICB2b2lkIGZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZsdXNo
RGlzcGxheUxpc3QoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgV2Vi
Q29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZsdXNoRGlzcGxheUxp
c3RBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgRGlz
cGxheUxpc3RGbHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmll
cik7CiAgICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlv
biBvdXRwdXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgV2ViQ29yZTo6UmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRh
UmVmZXJlbmNlJiYpPiYmKTsKKyAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3Jl
OjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogCi0gICAgdXNpbmcgSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlck1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVy
LCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcj4+OwotICAg
IEltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAgbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
TWFwOworICAgIFJlbW90ZVJlc291cmNlQ2FjaGUgbV9yZW1vdGVSZXNvdXJjZUNhY2hlOwogICAg
IFdlYWtQdHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgpp
bmRleCBiNDFhYmMzMjg0M2EzZDdmMjA3YTc5OWQzZWY2NmJjYjY4OWQxYWE4Li4wMzVkNmJiNDYy
YzFhYzJjOTI2NjEyMDAzNTg1Mjc1NzY3OGMzMDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbgpAQCAtMjQsOCArMjQsOCBAQAogCiBtZXNzYWdlcyAtPiBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kIE5vdFJlZkNvdW50ZWQgewogICAgIHZvaWQgQ3JlYXRlSW1hZ2VCdWZm
ZXIoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSBjb2xvclNwYWNlLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKQotICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKLSAgICB2
b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENvbW1pdChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQorICAgIHZvaWQgRmx1c2hEaXNwbGF5TGlz
dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCisgICAg
dm9pZCBGbHVzaERpc3BsYXlMaXN0QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNw
bGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViS2l0OjpEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBm
bHVzaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVS
ZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgR2V0SW1hZ2VEYXRhKGVudW06dWludDhfdCBXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgV2ViQ29yZTo6SW50UmVjdCBz
cmNSZWN0LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyKSAtPiAoSVBDOjpJbWFnZURhdGFSZWZlcmVuY2UgaW1hZ2VEYXRhKSBTeW5jaHJv
bm91cwogICAgIHZvaWQgUmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbW90ZVJlc291
cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWQwNDcyNjI1MjE5Njc5NDY0OTRjOGFjN2E1NDkwMzEwYTdkN2IxMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpjYWNoZUltYWdlQnVmZmVyKFJl
bW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBpbWFnZSkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1f
aW1hZ2VCdWZmZXJzLmFkZChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoaW1hZ2Up
KTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwor
fQorCitXZWJDb3JlOjpJbWFnZUJ1ZmZlciogUmVtb3RlUmVzb3VyY2VDYWNoZTo6Y2FjaGVkSW1h
Z2VCdWZmZXIoUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmll
cikKK3sKKyAgICByZXR1cm4gbV9pbWFnZUJ1ZmZlcnMuZ2V0KHJlbW90ZVJlc291cmNlSWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFzZVJlbW90ZVJlc291
cmNlKFJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCit7
CisgICAgaWYgKG1faW1hZ2VCdWZmZXJzLnJlbW92ZShyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
KQorICAgICAgICByZXR1cm47CisgICAgLy8gQ2FjaGluZyB0aGUgcmVtb3RlIHJlc291cmNlIHNo
b3VsZCBoYXZlIGhhcHBlbmVkIGJlZm9yZSByZWxlYXNpbmcgaXQuCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVkOGNlMGFjYzE1ZGYzNzMx
YzdmMWE2ODRjM2RkMDg5NmM1NjA4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKQEAgLTAsMCArMSw1NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSW1hZ2VCdWZmZXI7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOworCitjbGFzcyBSZW1vdGVSZXNv
dXJjZUNhY2hlIHsKK3B1YmxpYzoKKyAgICBSZW1vdGVSZXNvdXJjZUNhY2hlKCkgPSBkZWZhdWx0
OworCisgICAgdm9pZCBjYWNoZUltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRl
bnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiYmKTsKKyAgICBX
ZWJDb3JlOjpJbWFnZUJ1ZmZlciogY2FjaGVkSW1hZ2VCdWZmZXIoV2ViQ29yZTo6UmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3Jl
OjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOworCitwcml2YXRlOgorICAgIHVzaW5nIFJlbW90
ZUltYWdlQnVmZmVySGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+PjsKKworICAgIFJl
bW90ZUltYWdlQnVmZmVySGFzaE1hcCBtX2ltYWdlQnVmZmVyczsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZTMzNGJmOWNjZDc3YjY3YTUzZGE5OTFk
OWU1OTAyOWVmYjJkYmFlYS4uMjUzMjg3MzE4Y2Y0Y2I3OTc4YWMxZjM5MDZjMTFjMWI4NmRhNDY1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMzcsMTAg
KzIzNywxMCBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgog
ICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIn
LAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyJywKICAgICAgICAgJ1dl
YktpdDo6RGlzcGxheUxpbmtPYnNlcnZlcklEJywKKyAgICAgICAgJ1dlYktpdDo6RGlzcGxheUxp
c3RGbHVzaElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpEb3dubG9hZElEJywKICAgICAg
ICAgJ1dlYktpdDo6R2VvbG9jYXRpb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6SW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlJywKLSAgICAgICAgJ1dlYktpdDo6SW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAog
ICAgICAgICAnV2ViS2l0OjpMZWdhY3lDdXN0b21Qcm90b2NvbElEJywKICAgICAgICAgJ1dlYktp
dDo6TGliV2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGY2ZTEzYTM1
Yzc2ZTczMjIxOWNkZWExYzc4ZDhiMjU2ZTFhMTI3OTkuLjc5NmRiNjk5NmVlZGZlNWI3ZTkyODAw
MTM3MjA1NGNmNjljMzgwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjQsOCArMjQsOCBAQAogR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAotR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcAogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b1Nlc3Npb25Qcm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyYWExYWNhMmEzNTIzZmE5NmY0MTBmNDUyMDYwMmVkODkxMmJlMTI1Li42YmQ5YWM0NWYzMWFj
NDNjMmZjMDk2NGFmNWZkZGU0YTc4ZTY4NDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwOTYsOSArMTA5Niw2IEBACiAJCTU3MERB
QUMyMjMwMzczMDMwMEU4RkMwNCAvKiBOZmNDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQUFDMDIzMDM3MzAzMDBFOEZDMDQgLyog
TmZjQ29ubmVjdGlvbi5oICovOyB9OwogCQk1NzBEQUFDNjIzMDM3RjdGMDBFOEZDMDQgLyogV0tO
RlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTcwREFBQzQyMzAzN0Y3RTAwRThGQzA0IC8qIFdLTkZSZWFkZXJTZXNz
aW9uRGVsZWdhdGUuaCAqLzsgfTsKIAkJNTcwREFBQ0EyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBO
ZmNEcml2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3MERBQUM4MjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggKi87IH07Ci0JCTU3
MkVCQkRBMjUzOEY2QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCRDgyNTM4
RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi87IH07Ci0JCTU3
MkVCQkRCMjUzOEY2QjYwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEOTI1MzhG
NkExMDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oICovOyB9OwotCQk1NzJF
QkJERDI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEQzI1MzkyMTgxMDAwNTUyQjMgLyog
QXBwQXR0ZXN0U1BJLmggKi87IH07CiAJCTU3MkVCQkJGMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQkIyNTM2QTYwQTAwMDU1
MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CiAJCTU3MkVCQkMwMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTcyRUJCQkMyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTU3MkVCQkMxMjUzNkE2MEEwMDA1NTJC
MyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQkQyNTM2QTYwQTAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0xMTEwLDYgKzEx
MDcsOSBAQAogCQk1NzJFQkJEMDI1MzZCQjExMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTcyRUJCQ0UyNTM2QkIxMDAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCAqLzsgfTsKIAkJNTcyRUJCRDUyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3MkVCQkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
LmggKi87IH07CiAJCTU3MkVCQkQ3MjUzN0VCQUUwMDA1NTJCMyAvKiBFeHRyYVByaXZhdGVTeW1i
b2xzRm9yVEFQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRUNBNjgwRDMxRTY5MDRCNTAwNzMxRDIwIC8qIEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJ
LmggKi87IH07CisJCTU3MkVCQkRBMjUzOEY2QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5h
bFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTcyRUJCRDgyNTM4RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsu
bW0gKi87IH07CisJCTU3MkVCQkRCMjUzOEY2QjYwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5h
bFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzJFQkJEOTI1MzhGNkExMDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5o
ICovOyB9OworCQk1NzJFQkJERDI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEQzI1Mzky
MTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi87IH07CiAJCTU3MkZENDQzMjIyNjVDRTIw
MEExRUNDMyAvKiBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkZENDQxMjIyNjVDRTIwMEExRUND
MyAvKiBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCAqLzsgfTsKIAkJNTc0MjE3OTIy
NDAwRTI4NjAwMkIzMDNEIC8qIExvY2FsQXV0aGVudGljYXRpb25TUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NDIxNzkxMjQwMEUwOTgwMDJCMzAz
RCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggKi87IH07CiAJCTU3NDJBMkVCMjUzNTYxM0Yw
MEI3QkExNCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0U5MTIwRjIyOTNDMjVGMDA1QkVDNzggLyogQXV4
aWxpYXJ5UHJvY2Vzc01haW4uY3BwICovOyB9OwpAQCAtMzkxMyw3ICszOTEzLDcgQEAKIAkJNTUw
NjQwQTQyNDA3MUMyMTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVBRDA5NDIyNDA4QTAyRTAwREU0
RDJGIC8qIFJlbW90ZUltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlQnVm
ZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1QUQwOTQzMjQwOEEwRTYwMERF
NEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRm
b3JtUmVtb3RlSW1hZ2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTVB
RDA5NDQyNDA4QUJCMzAwREU0RDJGIC8qIEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEZs
dXNoSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzBBQjhGMjIwQUUzQkQ3MDBCOEJF
ODcgLyogU2VjS2V5UHJveHlTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWNLZXlQcm94eVN0b3Jl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MEFCOTAwMjBCMjUxNzQwMEI4QkU4
NyAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3MEFCOTAzMjBCMjU0MUMwMEI4QkU4NyAvKiBTZWNLZXlQcm94
eVN0b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2VjS2V5
UHJveHlTdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM5MjcsOSArMzky
Nyw2IEBACiAJCTU3MERBQUM1MjMwMzdGN0UwMEU4RkMwNCAvKiBXS05GUmVhZGVyU2Vzc2lvbkRl
bGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwREFBQzgyMzAzODVGRDAwRThG
QzA0IC8qIEN0YXBOZmNEcml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3RhcE5mY0RyaXZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzBEQUFDOTIzMDM4NUZEMDBFOEZDMDQgLyog
Q3RhcE5mY0RyaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwTmZjRHJpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCRDgyNTM4RjZBMTAwMDU1MkIzIC8q
IEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBcHBB
dHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
NzJFQkJEOTI1MzhGNkExMDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXBwQXR0ZXN0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3MkVCQkI5MjUzNkEwNkUwMDA1NTJCMyAvKiBJbmZvLWlPUy5wbGlzdCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Q7IG5h
bWUgPSAiSW5mby1pT1MucGxpc3QiOyBwYXRoID0gIldlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50
L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0Ijsgc291cmNl
VHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk1NzJFQkJCQTI1MzZBMDZFMDAwNTUyQjMgLyogSW5m
by1PU1gucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnBsaXN0OyBuYW1lID0gIkluZm8tT1NYLnBsaXN0IjsgcGF0aCA9ICJXZWJBdXRo
blByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZv
LU9TWC5wbGlzdCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNTcyRUJCQkIyNTM2
QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRobkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzk0Niw2ICszOTQzLDkgQEAKIAkJNTcyRUJCRDEyNTM2Qzg4NTAwMDU1
MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTcyRUJCRDMyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyRUJCRDgyNTM4
RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1NzJFQkJEOTI1MzhGNkExMDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJu
YWxTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAv
KiBBcHBBdHRlc3RTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwQXR0ZXN0U1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkZENDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3
RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlld0RpZE1vdmVU
b1dpbmRvd09ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDIxNzkx
MjQwMEUwOTgwMDJCMzAzRCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IExvY2FsQXV0aGVudGljYXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTc0MkEyRjcyNTM1NjEzRjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4u
eHBjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAid3Jh
cHBlci54cGMtc2VydmljZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGNvbS5hcHBsZS5X
ZWJLaXQuV2ViQXV0aG4ueHBjOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpA
QCAtNDIyNiw4ICs0MjI2LDggQEAKIAkJNzIyNzgwMEIyNDA4QkQ3RDAwN0QzNzZCIC8qIFBsYXRm
b3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVJlbW90
ZUltYWdlQnVmZmVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIyNzgw
MEMyNDA5N0EwMjAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjI3ODAwRDI0MDk3QTAy
MDA3RDM3NkIgLyogUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk3MjI3ODAxMTI0MDk5MDZFMDA3RDM3NkIgLyogUmVtb3Rl
SW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNzIyNzgwMTIyNDA5OTA2RTAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhh
bmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjZENTZERDI1M0E2NDgxMDAwMkVGOTAg
LyogUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZXNv
dXJjZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI2RDU2REUyNTNB
NjQ4MTAwMDJFRjkwIC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlUmVzb3VyY2VDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBN0Yz
NDI0MDc4NTdEMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQnVmZmVyU2hh
cmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyN0E3RjM1MjQwNzg1N0YwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJT
aGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyN0E3RjM2MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTMy
LDggKzgxMzIsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3
MjdBN0YzMzI0MDc4NTI3MDA0RDI5MzEgLyogY29jb2EgKi8sCisJCQkJNTVBRDA5NDQyNDA4QUJC
MzAwREU0RDJGIC8qIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyLmggKi8sCiAJCQkJNzI3QTdG
MzkyNDA3ODhGMTAwNEQyOTMxIC8qIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oICovLAotCQkJ
CTU1QUQwOTQ0MjQwOEFCQjMwMERFNEQyRiAvKiBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5o
ICovLAogCQkJCTcyN0E3RjM3MjQwNzg4RjAwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQuY3BwICovLAogCQkJCTcyN0E3RjM2MjQwNzg4RjAwMDREMjkzMSAvKiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCAqLywKIAkJCQk3MjdBN0YzODI0MDc4
OEYwMDA0RDI5MzEgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQuaCAqLywK
QEAgLTgxNTQsMTEgKzgxNTQsMTEgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTU1QUQwOTQzMjQw
OEEwRTYwMERFNEQyRiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyLmggKi8sCiAJCQkJNTVB
RDA5NDIyNDA4QTAyRTAwREU0RDJGIC8qIFJlbW90ZUltYWdlQnVmZmVyLmggKi8sCi0JCQkJNzIy
NzgwMTEyNDA5OTA2RTAwN0QzNzZCIC8qIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIu
Y3BwICovLAotCQkJCTcyMjc4MDEyMjQwOTkwNkUwMDdEMzc2QiAvKiBSZW1vdGVJbWFnZUJ1ZmZl
ck1lc3NhZ2VIYW5kbGVyLmggKi8sCiAJCQkJNTUwNjQwQTIyNDA3MUE2MTAwQUFFMDQ1IC8qIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwICovLAogCQkJCTU1MDY0MEEzMjQwNzFBNjEwMEFBRTA0
NSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggKi8sCiAJCQkJNTUwNjQwQTQyNDA3MUMyMTAw
QUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gKi8sCisJCQkJNzI2
RDU2REQyNTNBNjQ4MTAwMDJFRjkwIC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuY3BwICovLAorCQkJ
CTcyNkQ1NkRFMjUzQTY0ODEwMDAyRUY5MCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGdyYXBoaWNzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvRGlzcGxheUxp
c3RGbHVzaElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzM1OTNhYWY4NmUw
MjZmN2ViY2MwNGUxZmRmZjY4ZmFjNDljOWE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9EaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllci5o
CkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitlbnVtIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyVHlwZSB7
IH07Cit1c2luZyBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8
RGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyRmx1c2hJ
ZGVudGlmaWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0MmNmMjQ1ZTM0NWUx
ZGZlYzYyZGMxZDdhM2VjYWVmY2Q5YWI1ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9J
bWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQot
Ci0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWVudW0gSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXJUeXBlIHsgfTsKLXVzaW5nIEltYWdl
QnVmZmVyRmx1c2hJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUJ1ZmZlckZsdXNo
SWRlbnRpZmllclR5cGU+OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlclByb3h5LmNwcAppbmRleCA5YTc3MmQ0YjI2MWViM2I2MWIzYzFlNGJjMmQ3MmMz
NmM4OTJjYjRlLi5lOTU2MmEzNjhlNjllNDIzMGU3MjYyYzI2MzZkZjI4NmQ3NDZlYWM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuY3Bw
CkBAIC01OSw0MSArNTksNDEgQEAgUmVmUHRyPEltYWdlRGF0YT4gUmVtb3RlSW1hZ2VCdWZmZXJN
ZXNzYWdlSGFuZGxlclByb3h5OjpnZXRJbWFnZURhdGEoQWxwaGFQcmVtdWwKICAgICByZXR1cm4g
aW1hZ2VEYXRhUmVmZXJlbmNlLmJ1ZmZlcigpOwogfQogCi12b2lkIFJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJQcm94eTo6d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpCit2
b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6d2FpdEZvckltYWdlQnVm
ZmVyQmFja2VuZFdhc0NyZWF0ZWQoKQogewogICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eSAmJiAhaXNCYWNrZW5kQ3JlYXRlZCgpKQotICAgICAgICBtX3JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS0+d2FpdEZvckNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZCgpOworICAgICAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+d2FpdEZvckltYWdlQnVmZmVyQmFja2Vu
ZFdhc0NyZWF0ZWQoKTsKIH0KIAotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHk6OndhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpCit2b2lkIFJlbW90
ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6d2FpdEZvckZsdXNoRGlzcGxheUxpc3RX
YXNDb21taXR0ZWQoKQogewogICAgIGlmIChtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSAm
JiBpc1BlbmRpbmdGbHVzaCgpKQotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS0+d2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCk7CisgICAgICAgIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT53YWl0Rm9yRmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1p
dHRlZCgpOwogfQogCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6
Zmx1c2hEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRp
c3BsYXlMaXN0KQordm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmZs
dXNoRGlzcGxheUxpc3QoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5
TGlzdCkKIHsKICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoRmx1c2hSZW1vdGVJ
bWFnZUJ1ZmZlclN0YXJ0LCBGbHVzaFJlbW90ZUltYWdlQnVmZmVyRW5kKTsKLSAgICBtX3JlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBtX3JlbW90
ZVJlc291cmNlSWRlbnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Rmx1c2hEaXNwbGF5
TGlzdChkaXNwbGF5TGlzdCwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7CiAgICAg
ZGlzcGxheUxpc3QuY2xlYXIoKTsKIH0KIAotdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyUHJveHk6OmZsdXNoRHJhd2luZ0NvbnRleHRBbmRXYWl0Q29tbWl0KFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QpCit2b2lkIFJlbW90ZUltYWdlQnVm
ZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Zmx1c2hEaXNwbGF5TGlzdEFuZFdhaXRDb21taXQoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCkKIHsKICAgICBpZiAo
IW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KQogICAgICAgICByZXR1cm47CiAKICAgICBU
cmFjZVNjb3BlIHRyYWNpbmdTY29wZShGbHVzaFJlbW90ZUltYWdlQnVmZmVyU3RhcnQsIEZsdXNo
UmVtb3RlSW1hZ2VCdWZmZXJFbmQsIDEpOwotICAgIG1fc2VudEZsdXNoSWRlbnRpZmllciA9IElt
YWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpG
bHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoZGlzcGxheUxpc3QsIG1fc2Vu
dEZsdXNoSWRlbnRpZmllciwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7CisgICAg
bV9zZW50Rmx1c2hJZGVudGlmaWVyID0gRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXI6OmdlbmVy
YXRlKCk7CisgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHktPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkZsdXNoRGlzcGxheUxpc3RBbmRDb21taXQoZGlzcGxh
eUxpc3QsIG1fc2VudEZsdXNoSWRlbnRpZmllciwgbV9yZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIp
LCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIoKSk7CiAgICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKLSAgICB3YWl0Rm9yQ29tbWl0SW1hZ2VC
dWZmZXJGbHVzaENvbnRleHQoKTsKKyAgICB3YWl0Rm9yRmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1p
dHRlZCgpOwogfQogCi12b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6
Y29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRp
ZmllcikKK3ZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Ojpjb21taXRG
bHVzaENvbnRleHQoRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyKQog
ewogICAgIG1fcmVjZWl2ZWRGbHVzaElkZW50aWZpZXIgPSBmbHVzaElkZW50aWZpZXI7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaAppbmRl
eCBlN2EwYWNlYjY3M2ZlMzBjN2UwNzQ2OTZiYmViNTQ2N2M2MzUzZmFmLi5iOWEwMjZhODEyOTg3
OTZlN2JkMzVmYTk2ZWVlOTA0ZGU0YmZiNWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgKQEAgLTI3LDggKzI3LDggQEAKIAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkRpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCi0jaW5jbHVkZSAiSW1h
Z2VCdWZmZXJGbHVzaElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFNpemUuaD4KQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIC8vIE1lc3NhZ2VzIHRv
IGJlIHJlY2VpdmVkLiBTZWUgUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbi4KICAg
ICB2aXJ0dWFsIHZvaWQgY3JlYXRlQmFja2VuZChjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGxv
Z2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUpID0gMDsKIAotICAgIHZvaWQgY29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbW1pdEZsdXNoQ29udGV4dChEaXNwbGF5TGlzdEZsdXNo
SWRlbnRpZmllcik7CiAKIHByb3RlY3RlZDoKICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyUHJveHkoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5n
TW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkmKTsKQEAgLTYzLDE5ICs2MywxOSBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHNyY1JlY3QpIGNvbnN0OwogCi0gICAgdm9pZCB3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kKCk7Ci0gICAgdm9pZCB3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQoKTsK
KyAgICB2b2lkIHdhaXRGb3JJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVhdGVkKCk7CisgICAgdm9p
ZCB3YWl0Rm9yRmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZCgpOwogCiAgICAgLy8gTWVzc2Fn
ZXMgdG8gYmUgc2VudC4gU2VlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5p
bi4KLSAgICB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRp
c3BsYXlMaXN0Jik7Ci0gICAgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmKTsKKyAgICB2b2lkIGZsdXNoRGlzcGxh
eUxpc3QoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0Jik7CisgICAgdm9pZCBmbHVz
aERpc3BsYXlMaXN0QW5kV2FpdENvbW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QmKTsKIAogcHJpdmF0ZToKICAgICBXZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eT4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiAgICAgV2ViQ29yZTo6UmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIG1fcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyIHsgV2ViQ29yZTo6UmVt
b3RlUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpIH07CiAKLSAgICBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllciBtX3NlbnRGbHVzaElkZW50aWZpZXI7Ci0gICAgSW1hZ2VCdWZmZXJGbHVz
aElkZW50aWZpZXIgbV9yZWNlaXZlZEZsdXNoSWRlbnRpZmllcjsKKyAgICBEaXNwbGF5TGlzdEZs
dXNoSWRlbnRpZmllciBtX3NlbnRGbHVzaElkZW50aWZpZXI7CisgICAgRGlzcGxheUxpc3RGbHVz
aElkZW50aWZpZXIgbV9yZWNlaXZlZEZsdXNoSWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCAxZjY2MmUwMDkxODZj
NmI2ZjQ5NWI1OGRiMzJmMDM1ODk5MmQzNDNkLi4yMGZiZjgxYzk4MjU1MmVmNzZiYjZjZDE1ZGMz
YTFlOWQzODgwZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtNzQsMTQgKzc0
LDE0IEBAIHByb3RlY3RlZDoKICAgICBCYWNrZW5kVHlwZSogZW5zdXJlQmFja2VuZENyZWF0ZWQo
KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFtX2JhY2tlbmQpCi0gICAgICAg
ICAgICBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyUHJveHkmPigqdGhpcykuUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Ojp3YWl0Rm9yQ3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kKCk7CisgICAgICAgICAgICBjb25zdF9jYXN0PFJlbW90ZUltYWdlQnVmZmVyUHJveHkmPigq
dGhpcykuUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Ojp3YWl0Rm9ySW1hZ2VC
dWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCgpOwogICAgICAgICByZXR1cm4gbV9iYWNrZW5kLmdldCgp
OwogICAgIH0KIAogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZURhdGE+IGdldEltYWdlRGF0YShX
ZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgc3JjUmVjdCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGF1dG8m
IGRpc3BsYXlMaXN0ID0gY29uc3RfY2FzdDxSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Kj4odGhpcykt
Pm1fZHJhd2luZ0NvbnRleHQuZGlzcGxheUxpc3QoKTsKLSAgICAgICAgY29uc3RfY2FzdDxSZW1v
dGVJbWFnZUJ1ZmZlclByb3h5Kj4odGhpcyktPlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlzdCk7CisgICAgICAgIGNvbnN0
X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSo+KHRoaXMpLT5SZW1vdGVJbWFnZUJ1ZmZlck1l
c3NhZ2VIYW5kbGVyUHJveHk6OmZsdXNoRGlzcGxheUxpc3QoZGlzcGxheUxpc3QpOwogICAgICAg
ICBhdXRvIHJlc3VsdCA9IGNvbnN0X2Nhc3Q8UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSo+KHRoaXMp
LT5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk6OmdldEltYWdlRGF0YShvdXRw
dXRGb3JtYXQsIHNyY1JlY3QpOwogICAgICAgICAvLyBnZXRJbWFnZURhdGEgaXMgc3luY2hyb25v
dXMsIHdoaWNoIG1lYW5zIHdlJ3ZlIGFscmVhZHkgcmVjZWl2ZWQgdGhlIENvbW1pdEltYWdlQnVm
ZmVyRmx1c2hDb250ZXh0IG1lc3NhZ2UuCiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDUs
NyArMTA1LDcgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICAgICAgYXV0byYgZGlzcGxheUxpc3Qg
PSBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCk7CiAgICAgICAgIGlmIChkaXNwbGF5TGlz
dC5pdGVtQ291bnQoKSkKLSAgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXJQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRDb21taXQoZGlzcGxheUxpc3QpOwor
ICAgICAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5OjpmbHVzaERp
c3BsYXlMaXN0QW5kV2FpdENvbW1pdChkaXNwbGF5TGlzdCk7CiAgICAgfQogICAgIAogICAgIHZv
aWQgd2lsbEFwcGVuZEl0ZW0oY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW0mKSBvdmVy
cmlkZQpAQCAtMTEzLDcgKzExMyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgY29uc3RleHByIHNp
emVfdCBEaXNwbGF5TGlzdEJhdGNoU2l6ZSA9IDUxMjsKICAgICAgICAgYXV0byYgZGlzcGxheUxp
c3QgPSBtX2RyYXdpbmdDb250ZXh0LmRpc3BsYXlMaXN0KCk7CiAgICAgICAgIGlmIChkaXNwbGF5
TGlzdC5pdGVtQ291bnQoKSA+PSBEaXNwbGF5TGlzdEJhdGNoU2l6ZSkKLSAgICAgICAgICAgIFJl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eTo6Zmx1c2hEcmF3aW5nQ29udGV4dChk
aXNwbGF5TGlzdCk7CisgICAgICAgICAgICBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
UHJveHk6OmZsdXNoRGlzcGxheUxpc3QoZGlzcGxheUxpc3QpOwogICAgIH0KIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCAxMTE2MDJhZmM3ZGFkN2Fh
YTY1MWZmYTUyNjZkODY4NzAzNGZhYTE2Li5iMTQ2MWI0ODIxNDhkMmI3NWI0MGYwOThkOTQwY2Rl
MTBhYjRmZmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBA
IC03NCwxNiArNzQsMTYgQEAgdWludDY0X3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojpt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIudG9VSW50NjQoKTsKIH0KIAotYm9vbCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OndhaXRGb3JDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoKQorYm9vbCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OndhaXRGb3JJbWFnZUJ1ZmZlckJhY2tlbmRXYXNDcmVh
dGVkKCkKIHsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7
Ci0gICAgcmV0dXJuIGNvbm5lY3Rpb24tPndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1l
c3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkNyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZD4obV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciwgMV9zLCBJUEM6OldhaXRGb3JPcHRp
b246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZlcyk7CisgICAgcmV0dXJuIGNv
bm5lY3Rpb24tPndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OkltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQ+KG1fcmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1
cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOwogfQogCi1ib29sIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6d2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCkKK2Jv
b2wgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Ojp3YWl0Rm9yRmx1c2hEaXNwbGF5TGlzdFdh
c0NvbW1pdHRlZCgpCiB7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpOwotICAgIHJldHVybiBjb25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlh
dGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpDb21taXRJbWFnZUJ1
ZmZlckZsdXNoQ29udGV4dD4obV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciwgMV9zLCBJUEM6
OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZlcyk7Cisg
ICAgcmV0dXJuIGNvbm5lY3Rpb24tPndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3Nh
Z2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoRGlzcGxheUxpc3RXYXNDb21t
aXR0ZWQ+KG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIsIDFfcywgSVBDOjpXYWl0Rm9yT3B0
aW9uOjpJbnRlcnJ1cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOwogfQogCiBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Y3JlYXRl
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBTaG91bGRBY2NlbGVyYXRlIHNob3Vs
ZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQpAQCAtMTEwLDEzICsxMTAsMTMgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIKICAgICBBU1NF
UlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2Fs
U2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBS
ZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmltYWdlQnVmZmVyQmFja2VuZFdhc0NyZWF0ZWQo
Y29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgSW50U2l6ZSYgYmFja2VuZFNpemUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUgaGFuZGxlLCBSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyKQogewogICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChyZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpKQogICAg
ICAgICBpbWFnZUJ1ZmZlci0+Y3JlYXRlQmFja2VuZChsb2dpY2FsU2l6ZSwgYmFja2VuZFNpemUs
IHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgV1RGTW92ZShoYW5kbGUpKTsKIH0KIAotdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250
ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKERpc3BsYXlM
aXN0Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgUmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZl
ciA9IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQocmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKSkKICAgICAgICAgaW1hZ2VCdWZmZXItPmNvbW1pdEZsdXNoQ29udGV4dChmbHVzaElk
ZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggZTdi
N2UxY2ZlNWYyMmY3NmQ4ZTJkNWFkMmE0ZjJlNmViNWM1ZmIzZi4uOWQyOTAwMjNkNDk3MjFlYWQ2
Y2I5ODc5OWQyNmY1YThkMGVkNGRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNp
bmNsdWRlICJEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZS5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRl
ci5oIgogI2luY2x1ZGUgIlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJQcm94eS5oIgpA
QCAtNjQsMTUgKzY0LDE1IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYs
IFdlYkNvcmU6OlNob3VsZEFjY2VsZXJhdGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6Q29sb3JTcGFjZSk7CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6
UmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyKTsKIAotICAgIGJvb2wgd2FpdEZvckNyZWF0ZUltYWdl
QnVmZmVyQmFja2VuZCgpOwotICAgIGJvb2wgd2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hD
b250ZXh0KCk7CisgICAgYm9vbCB3YWl0Rm9ySW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZCgp
OworICAgIGJvb2wgd2FpdEZvckZsdXNoRGlzcGxheUxpc3RXYXNDb21taXR0ZWQoKTsKIAogcHJp
dmF0ZToKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKIAogICAgIC8vIE1lc3Nh
Z2VzIHRvIGJlIHJlY2VpdmVkLgotICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9yU3Bh
Y2UsIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyKTsKLSAgICB2b2lkIGNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KEltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgaW1hZ2VCdWZmZXJCYWNrZW5kV2FzQ3JlYXRlZChjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIGxvZ2ljYWxTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiYWNrZW5kU2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlLCBJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUsIFdlYkNvcmU6OlJlbW90ZVJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9p
ZCBmbHVzaERpc3BsYXlMaXN0V2FzQ29tbWl0dGVkKERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgdXNpbmcgSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlck1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJ
ZGVudGlmaWVyLCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkqPjsKICAgICBJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggNDNmNzdjY2I3MjI2MDQxNWFmYzM4OTlkMWE4ZGE3MzBiYmYxYWFlMC4uZTAwZGNk
NzViNGUzYjE1N2YzN2E2MmE0YmVmOTljNDViNTgwZmQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDggKzIzLDggQEAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICB2b2lkIENyZWF0ZUltYWdlQnVmZmVyQmFj
a2VuZChXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUsIFdlYkNvcmU6OkludFNpemUgYmFj
a2VuZFNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xv
clNwYWNlLCBXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFdlYkNvcmU6
OlJlbW90ZVJlc291cmNlSWRlbnRpZmllciByZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIpCi0gICAg
dm9pZCBDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dChXZWJLaXQ6OkltYWdlQnVmZmVyRmx1
c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKKyAgICB2b2lkIEltYWdlQnVmZmVyQmFj
a2VuZFdhc0NyZWF0ZWQoV2ViQ29yZTo6RmxvYXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpJ
bnRTaXplIGJhY2tlbmRTaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIFdlYkNvcmU6OkNvbG9y
U3BhY2UgY29sb3JTcGFjZSwgV2ViS2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgaGFuZGxl
LCBXZWJDb3JlOjpSZW1vdGVSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlUmVzb3VyY2VJZGVudGlm
aWVyKQorICAgIHZvaWQgRmx1c2hEaXNwbGF5TGlzdFdhc0NvbW1pdHRlZChXZWJLaXQ6OkRpc3Bs
YXlMaXN0Rmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZVJlc291cmNlSWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>